Skip to content

Commit 4effd7e

Browse files
tool4EvErtool4EvEr
authored andcommitted
More spring cleaning
1 parent 4283af6 commit 4effd7e

File tree

26 files changed

+113
-165
lines changed

26 files changed

+113
-165
lines changed

forge-ai/src/main/java/forge/ai/PlayerControllerAi.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ public boolean pilotsNonAggroDeck() {
7373
}
7474

7575
public void setupAutoProfile(Deck deck) {
76-
pilotsNonAggroDeck = deck.getName().contains("Control") || Deck.getAverageCMC(deck) > 3;
76+
pilotsNonAggroDeck = deck.getName().contains("Control") || deck.getAverageCMC() > 3;
7777
}
7878

7979
public void setUseSimulation(boolean value) {

forge-core/src/main/java/forge/deck/Deck.java

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,15 @@
2525
import forge.card.CardType;
2626
import forge.item.IPaperCard;
2727
import forge.item.PaperCard;
28+
import forge.util.StreamUtil;
2829
import org.apache.commons.lang3.StringUtils;
2930
import org.apache.commons.lang3.tuple.Pair;
3031

3132
import java.io.ObjectStreamException;
3233
import java.io.Serial;
3334
import java.util.*;
3435
import java.util.Map.Entry;
36+
import java.util.stream.Collectors;
3537

3638
/**
3739
* <p>
@@ -697,10 +699,10 @@ public boolean equals(final Object o) {
697699
return false;
698700
}
699701

700-
public static int getAverageCMC(Deck deck) {
702+
public int getAverageCMC() {
701703
int totalCMC = 0;
702704
int totalCount = 0;
703-
for (final Entry<DeckSection, CardPool> deckEntry : deck) {
705+
for (final Entry<DeckSection, CardPool> deckEntry : this) {
704706
switch (deckEntry.getKey()) {
705707
case Main:
706708
case Commander:
@@ -719,4 +721,29 @@ public static int getAverageCMC(Deck deck) {
719721
}
720722
return totalCount == 0 ? 0 : Math.round(totalCMC / totalCount);
721723
}
724+
725+
public String generateTextExport() {
726+
final String nl = System.lineSeparator();
727+
final StringBuilder deckList = new StringBuilder();
728+
String dName = getName();
729+
//fix copying a commander netdeck then importing it again...
730+
if (dName.startsWith("[Commander")||dName.contains("Commander"))
731+
dName = "";
732+
deckList.append(dName == null ? "" : "Deck: "+dName + nl + nl);
733+
734+
for (DeckSection s : DeckSection.values()) {
735+
CardPool cp = get(s);
736+
if (cp == null || cp.isEmpty()) {
737+
continue;
738+
}
739+
deckList.append(s.toString()).append(": ");
740+
deckList.append(nl);
741+
742+
for (final Entry<String, Integer> ev: StreamUtil.stream(cp).collect(Collectors.groupingBy(ev -> ev.getKey().getCardName(), TreeMap::new, Collectors.summingInt(ev -> ev.getValue()))).entrySet()) {
743+
deckList.append(ev.getValue()).append(" ").append(ev.getKey()).append(nl);
744+
}
745+
deckList.append(nl);
746+
}
747+
return deckList.toString();
748+
}
722749
}

forge-game/src/main/java/forge/game/GameLogFormatter.java

Lines changed: 15 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,7 @@ public GameLogEntry visit(GameEventGameOutcome ev) {
3636

3737
@Override
3838
public GameLogEntry visit(GameEventScry ev) {
39-
String scryOutcome = "";
40-
39+
String scryOutcome;
4140
if (ev.toTop() > 0 && ev.toBottom() > 0) {
4241
scryOutcome = localizer.getMessage("lblLogScryTopBottomLibrary").replace("%s", ev.player().toString()).replace("%top", String.valueOf(ev.toTop())).replace("%bottom", String.valueOf(ev.toBottom()));
4342
} else if (ev.toBottom() == 0) {
@@ -51,14 +50,13 @@ public GameLogEntry visit(GameEventScry ev) {
5150

5251
@Override
5352
public GameLogEntry visit(GameEventSurveil ev) {
54-
String surveilOutcome = "";
55-
53+
String surveilOutcome;
5654
if (ev.toLibrary() > 0 && ev.toGraveyard() > 0) {
57-
surveilOutcome = localizer.getMessage("lblLogSurveiledToLibraryGraveyard", ev.player().toString(), String.valueOf(ev.toLibrary()), String.valueOf(ev.toGraveyard()));
55+
surveilOutcome = localizer.getMessage("lblLogSurveiledToLibraryGraveyard", ev.player(), ev.toLibrary(), ev.toGraveyard());
5856
} else if (ev.toGraveyard() == 0) {
59-
surveilOutcome = localizer.getMessage("lblLogSurveiledToLibrary", ev.player().toString(), String.valueOf(ev.toLibrary()));
57+
surveilOutcome = localizer.getMessage("lblLogSurveiledToLibrary", ev.player(), ev.toLibrary());
6058
} else {
61-
surveilOutcome = localizer.getMessage("lblLogSurveiledToGraveyard", ev.player().toString(), String.valueOf(ev.toGraveyard()));
59+
surveilOutcome = localizer.getMessage("lblLogSurveiledToGraveyard", ev.player(), ev.toGraveyard());
6260
}
6361

6462
return new GameLogEntry(GameLogEntryType.STACK_RESOLVE, surveilOutcome);
@@ -148,9 +146,9 @@ public GameLogEntry visit(GameEventCardDamaged event) {
148146
additionalLog = localizer.getMessage("lblAsM1M1Counters");
149147
}
150148
if (event.type() == DamageType.LoyaltyLoss) {
151-
additionalLog = localizer.getMessage("lblRemovingNLoyaltyCounter", String.valueOf(event.amount()));
149+
additionalLog = localizer.getMessage("lblRemovingNLoyaltyCounter", event.amount());
152150
}
153-
String message = localizer.getMessage("lblSourceDealsNDamageToDest", event.source().toString(), String.valueOf(event.amount()), additionalLog.isEmpty() ? "" : " (" + additionalLog + ")", event.card().toString());
151+
String message = localizer.getMessage("lblSourceDealsNDamageToDest", event.source(), event.amount(), additionalLog.isEmpty() ? "" : " (" + additionalLog + ")", event.card().toString());
154152
return new GameLogEntry(GameLogEntryType.DAMAGE, message, event.source());
155153
}
156154

@@ -159,38 +157,35 @@ public GameLogEntry visit(GameEventCardDamaged event) {
159157
*/
160158
@Override
161159
public GameLogEntry visit(GameEventLandPlayed ev) {
162-
String message = localizer.getMessage("lblLogPlayerPlayedLand", ev.player().toString(), ev.land().toString());
160+
String message = localizer.getMessage("lblLogPlayerPlayedLand", ev.player(), ev.land());
163161
return new GameLogEntry(GameLogEntryType.LAND, message, ev.land());
164162
}
165163

166164
@Override
167165
public GameLogEntry visit(GameEventTurnBegan event) {
168-
String message = localizer.getMessage("lblLogTurnNOwnerByPlayer", String.valueOf(event.turnNumber()), event.turnOwner().toString());
166+
String message = localizer.getMessage("lblLogTurnNOwnerByPlayer", event.turnNumber(), event.turnOwner());
169167
return new GameLogEntry(GameLogEntryType.TURN, message);
170168
}
171169

172170
@Override
173171
public GameLogEntry visit(GameEventPlayerDamaged ev) {
174172
String extra = ev.infect() ? localizer.getMessage("lblLogAsPoisonCounters") : "";
175173
String damageType = ev.combat() ? localizer.getMessage("lblCombat") : localizer.getMessage("lblNonCombat");
176-
String message = localizer.getMessage("lblLogSourceDealsNDamageOfTypeToDest", ev.source().toString(),
177-
String.valueOf(ev.amount()), damageType, ev.target().toString(), extra);
174+
String message = localizer.getMessage("lblLogSourceDealsNDamageOfTypeToDest", ev.source(),
175+
ev.amount(), damageType, ev.target(), extra);
178176
return new GameLogEntry(GameLogEntryType.DAMAGE, message, ev.source());
179177
}
180178

181179
@Override
182180
public GameLogEntry visit(GameEventPlayerLivesChanged ev) {
183-
String message = localizer.getMessage("lblLogPlayerLifeChange",
184-
ev.player().toString(),
185-
String.valueOf(ev.oldLives()),
186-
String.valueOf(ev.newLives()));
181+
String message = localizer.getMessage("lblLogPlayerLifeChange", ev.player(), ev.oldLives(), ev.newLives());
187182
return new GameLogEntry(GameLogEntryType.LIFE, message);
188183
}
189184

190185
@Override
191186
public GameLogEntry visit(GameEventPlayerPoisoned ev) {
192187
String message = localizer.getMessage("lblLogPlayerReceivesNPosionCounterFrom",
193-
ev.receiver().toString(), String.valueOf(ev.amount()), ev.source().toString());
188+
ev.receiver(), ev.amount(), ev.source());
194189
return new GameLogEntry(GameLogEntryType.DAMAGE, message);
195190
}
196191

@@ -271,7 +266,7 @@ public GameLogEntry visit(final GameEventBlockersDeclared ev) {
271266

272267
@Override
273268
public GameLogEntry visit(GameEventMulligan ev) {
274-
String message = localizer.getMessage("lblPlayerHasMulliganedDownToNCards").replace("%d", String.valueOf(ev.player().getHandSize())).replace("%s", ev.player().toString());
269+
String message = localizer.getMessage("lblPlayerHasMulliganedDownToNCards").replace("%d", String.valueOf(ev.player().getZoneSize(ZoneType.Hand))).replace("%s", ev.player().toString());
275270
return new GameLogEntry(GameLogEntryType.MULLIGAN, message);
276271
}
277272

@@ -303,7 +298,7 @@ public GameLogEntry visit(GameEventCardChangeZone ev) {
303298
return null;
304299
}
305300
final String cardName = ev.card() != null ? ev.card().toString() : "a card";
306-
final String message = localizer.getMessage("lblLogZoneChange", cardName, to.toString(), from.toString());
301+
final String message = localizer.getMessage("lblLogZoneChange", cardName, to, from);
307302
return new GameLogEntry(GameLogEntryType.ZONE_CHANGE, message, ev.card());
308303
}
309304

forge-game/src/main/java/forge/game/ability/effects/BidLifeEffect.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ public void resolve(SpellAbility sa) {
5757
if (result) { // a different choose number
5858
bid += p.getController().chooseNumber(sa, Localizer.getInstance().getMessage("lblBidLife") + ":", 1, 9);
5959
winner = p;
60-
host.getGame().getAction().notifyOfValue(sa, p, Localizer.getInstance().getMessage("lblTopBidWithValueLife", String.valueOf(bid)), p);
60+
host.getGame().getAction().notifyOfValue(sa, p, Localizer.getInstance().getMessage("lblTopBidWithValueLife", bid), p);
6161
}
6262
}
6363
}

forge-game/src/main/java/forge/game/ability/effects/ChooseNumberEffect.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ public void resolve(SpellAbility sa) {
127127
for (Entry<Player, Integer> ev : chooseMap.entrySet()) {
128128
int num = ev.getValue();
129129
Player player = ev.getKey();
130-
sb.append(Localizer.getInstance().getMessage("lblPlayerChoseNum", player.getName(), String.valueOf(num)));
130+
sb.append(Localizer.getInstance().getMessage("lblPlayerChoseNum", player.getName(), num));
131131
sb.append("\r\n");
132132
if (num > highest) {
133133
highestNum.clear();

forge-game/src/main/java/forge/game/ability/effects/DamageDealEffect.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ public void resolve(SpellAbility sa) {
180180

181181
if (sa.hasParam("OptionalDecider")) {
182182
Player decider = Iterables.getFirst(AbilityUtils.getDefinedPlayers(hostCard, sa.getParam("OptionalDecider"), sa), null);
183-
if (decider != null && !decider.getController().confirmAction(sa, null, Localizer.getInstance().getMessage("lblDoyouWantDealTargetDamageToTarget", String.valueOf(dmg), tgts.toString()), null)) {
183+
if (decider != null && !decider.getController().confirmAction(sa, null, Localizer.getInstance().getMessage("lblDoyouWantDealTargetDamageToTarget", dmg, tgts), null)) {
184184
return;
185185
}
186186
}

forge-game/src/main/java/forge/game/ability/effects/DiscardEffect.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ public void resolve(SpellAbility sa) {
165165
continue;
166166
} else if (discarders.size() > 1) {
167167
// later players need to know the decision
168-
message = Localizer.getInstance().getMessage("lblPlayerKeepNCardsHand", p.getName(), String.valueOf(p.getZone(ZoneType.Hand).size()));
168+
message = Localizer.getInstance().getMessage("lblPlayerKeepNCardsHand", p.getName(), p.getZone(ZoneType.Hand).size());
169169
game.getAction().notifyOfValue(sa, p, message, p);
170170
}
171171
}
@@ -184,7 +184,7 @@ public void resolve(SpellAbility sa) {
184184
continue;
185185
}
186186

187-
String message = Localizer.getInstance().getMessage("lblWouldYouLikeRandomDiscardTargetCard", String.valueOf(numCards));
187+
String message = Localizer.getInstance().getMessage("lblWouldYouLikeRandomDiscardTargetCard", numCards);
188188
if (sa.hasParam("Optional") && !p.getController().confirmAction(sa, PlayerActionConfirmMode.Random, message, null)) {
189189
continue;
190190
}

forge-game/src/main/java/forge/game/ability/effects/MultiplePilesEffect.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ public void resolve(SpellAbility sa) {
7979

8080
for (int i = 1; i < piles; i++) {
8181
int size = pool.size();
82-
CardCollectionView pile = p.getController().chooseCardsForEffect(pool, sa, Localizer.getInstance().getMessage("lblChooseCardsInTargetPile", String.valueOf(i)), 0, size, false, null);
82+
CardCollectionView pile = p.getController().chooseCardsForEffect(pool, sa, Localizer.getInstance().getMessage("lblChooseCardsInTargetPile", i), 0, size, false, null);
8383
pileList.add(pile);
8484
pool.removeAll(pile);
8585
}

forge-game/src/main/java/forge/game/mana/Mana.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ public AbilityManaPart getManaAbility() {
141141
return this.manaAbility;
142142
}
143143

144-
public final Player getPlayer() {
144+
public Player getPlayer() {
145145
return this.player;
146146
}
147147

forge-game/src/main/java/forge/game/player/PlayerView.java

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -112,13 +112,13 @@ public final String getCommanderInfo(CardView v) {
112112

113113
final StringBuilder sb = new StringBuilder();
114114

115-
sb.append(Localizer.getInstance().getMessage("lblCommanderCastCard", String.valueOf(getCommanderCast(v))));
115+
sb.append(Localizer.getInstance().getMessage("lblCommanderCastCard", getCommanderCast(v)));
116116
sb.append("\n");
117117

118118
for (final PlayerView p : Iterables.concat(Collections.singleton(this), getOpponents())) {
119119
final int damage = p.getCommanderDamage(v);
120120
if (damage > 0) {
121-
sb.append(Localizer.getInstance().getMessage("lblCommanderDealNDamageToPlayer", p.toString(), CardTranslation.getTranslatedName(v.getName()), String.valueOf(damage)));
121+
sb.append(Localizer.getInstance().getMessage("lblCommanderDealNDamageToPlayer", p, CardTranslation.getTranslatedName(v.getName()), damage));
122122
sb.append("\n");
123123
}
124124
}
@@ -142,14 +142,14 @@ public final List<String> getPlayerCommanderInfo() {
142142

143143
info.add("Commanders:");
144144
for (final CardView v : commanders) {
145-
info.add(Localizer.getInstance().getMessage("lblCommanderCastPlayer", CardTranslation.getTranslatedName(v.getName()), String.valueOf(getCommanderCast(v))));
145+
info.add(Localizer.getInstance().getMessage("lblCommanderCastPlayer", CardTranslation.getTranslatedName(v.getName()), getCommanderCast(v)));
146146
}
147147

148148
// own commanders
149149
for (final CardView v : commanders) {
150150
final int damage = getCommanderDamage(v);
151151
if (damage > 0) {
152-
info.add(Localizer.getInstance().getMessage("lblNCommanderDamageFromOwnCommander", CardTranslation.getTranslatedName(v.getName()), String.valueOf(damage)));
152+
info.add(Localizer.getInstance().getMessage("lblNCommanderDamageFromOwnCommander", CardTranslation.getTranslatedName(v.getName()), damage));
153153
}
154154
}
155155

@@ -158,7 +158,7 @@ public final List<String> getPlayerCommanderInfo() {
158158
for (final CardView v : p.getCommanders()) {
159159
final int damage = getCommanderDamage(v);
160160
if (damage > 0) {
161-
info.add(Localizer.getInstance().getMessage("lblNCommanderDamageFromPlayerCommander", p.toString(), CardTranslation.getTranslatedName(v.getName()), String.valueOf(damage)));
161+
info.add(Localizer.getInstance().getMessage("lblNCommanderDamageFromPlayerCommander", p, CardTranslation.getTranslatedName(v.getName()), damage));
162162
}
163163
}
164164
}
@@ -438,9 +438,6 @@ public FCollectionView<CardView> getGraveyard() {
438438
public FCollectionView<CardView> getHand() {
439439
return get(TrackableProperty.Hand);
440440
}
441-
public int getHandSize() {
442-
return getZoneSize(TrackableProperty.Hand);
443-
}
444441

445442
public FCollectionView<CardView> getLibrary() {
446443
return get(TrackableProperty.Library);
@@ -552,29 +549,29 @@ void updateMana(Player p) {
552549

553550
private List<String> getDetailsList() {
554551
final List<String> details = Lists.newArrayListWithCapacity(8);
555-
details.add(Localizer.getInstance().getMessage("lblLifeHas", String.valueOf(getLife())));
552+
details.add(Localizer.getInstance().getMessage("lblLifeHas", getLife()));
556553

557554
Map<CounterType, Integer> counters = getCounters();
558555
if (counters != null) {
559556
for (Entry<CounterType, Integer> p : counters.entrySet()) {
560557
if (p.getValue() > 0) {
561-
details.add(Localizer.getInstance().getMessage("lblTypeCounterHas", p.getKey().getName(), String.valueOf(p.getValue())));
558+
details.add(Localizer.getInstance().getMessage("lblTypeCounterHas", p.getKey().getName(), p.getValue()));
562559
}
563560
}
564561
}
565562

566-
details.add(Localizer.getInstance().getMessage("lblCardInHandHas", String.valueOf(getHandSize()), getMaxHandString()));
567-
details.add(Localizer.getInstance().getMessage("lblLandsPlayed", String.valueOf(getNumLandThisTurn()), this.getMaxLandString()));
568-
details.add(Localizer.getInstance().getMessage("lblCardDrawnThisTurnHas", String.valueOf(getNumDrawnThisTurn())));
569-
details.add(Localizer.getInstance().getMessage("lblDamagepreventionHas", String.valueOf(getPreventNextDamage())));
563+
details.add(Localizer.getInstance().getMessage("lblCardInHandHas", getZoneSize(ZoneType.Hand), getMaxHandString()));
564+
details.add(Localizer.getInstance().getMessage("lblLandsPlayed", getNumLandThisTurn(), getMaxLandString()));
565+
details.add(Localizer.getInstance().getMessage("lblCardDrawnThisTurnHas", getNumDrawnThisTurn()));
566+
details.add(Localizer.getInstance().getMessage("lblDamagepreventionHas", getPreventNextDamage()));
570567

571568
int v = getAdditionalVote();
572569
if (v > 0) {
573-
details.add(Localizer.getInstance().getMessage("lblAdditionalVotes", String.valueOf(v)));
570+
details.add(Localizer.getInstance().getMessage("lblAdditionalVotes", v));
574571
}
575572
v = getOptionalAdditionalVote();
576573
if (v > 0) {
577-
details.add(Localizer.getInstance().getMessage("lblOptionalAdditionalVotes", String.valueOf(v)));
574+
details.add(Localizer.getInstance().getMessage("lblOptionalAdditionalVotes", v));
578575
}
579576

580577
if (getControlVote()) {
@@ -584,7 +581,7 @@ private List<String> getDetailsList() {
584581
if (getIsExtraTurn()) {
585582
details.add(Localizer.getInstance().getMessage("lblIsExtraTurn"));
586583
}
587-
details.add(Localizer.getInstance().getMessage("lblExtraTurnCountHas", String.valueOf(getExtraTurnCount())));
584+
details.add(Localizer.getInstance().getMessage("lblExtraTurnCountHas", getExtraTurnCount()));
588585

589586
final String keywords = Lang.joinHomogenous(getDisplayableKeywords());
590587
if (!keywords.isEmpty()) {

0 commit comments

Comments
 (0)