From 3bf978991c9b59e8f09713f3dc807982aeb41f28 Mon Sep 17 00:00:00 2001 From: tool4EvEr Date: Sat, 4 Sep 2021 11:33:44 +0200 Subject: [PATCH 1/2] Revert Comment out some currently unsupported cards in Commander precons --- forge-core/src/main/java/forge/card/CardRules.java | 8 ++++---- .../src/main/java/forge/card/CardRulesPredicates.java | 1 - forge-core/src/main/java/forge/item/PaperToken.java | 2 +- forge-core/src/main/java/forge/token/TokenDb.java | 2 +- .../src/main/java/forge/game/card/TokenCreateTable.java | 9 ++++----- .../src/main/java/forge/game/card/token/TokenInfo.java | 2 +- forge-gui/res/cardsfolder/c/chrome_mox.txt | 2 +- forge-gui/res/cardsfolder/c/cold_storage.txt | 2 +- .../quest/commanderprecons/Built from Scratch (2018).dck | 2 +- .../res/quest/commanderprecons/Built from Scratch.dck | 2 +- .../res/quest/commanderprecons/Entropic Uprising.dck | 2 +- forge-gui/res/quest/commanderprecons/Feline Ferocity.dck | 2 +- 12 files changed, 17 insertions(+), 19 deletions(-) diff --git a/forge-core/src/main/java/forge/card/CardRules.java b/forge-core/src/main/java/forge/card/CardRules.java index ff8b6dd08fc..b981a8cc4ab 100644 --- a/forge-core/src/main/java/forge/card/CardRules.java +++ b/forge-core/src/main/java/forge/card/CardRules.java @@ -67,7 +67,7 @@ public final class CardRules implements ICardCharacteristics { } void reinitializeFromRules(CardRules newRules) { - if(!newRules.getName().equals(this.getName())) + if (!newRules.getName().equals(this.getName())) throw new UnsupportedOperationException("You cannot rename the card using the same CardRules object"); splitType = newRules.splitType; @@ -91,7 +91,7 @@ public final class CardRules implements ICardCharacteristics { } } int len = oracleText.length(); - for(int i = 0; i < len; i++) { + for (int i = 0; i < len; i++) { char c = oracleText.charAt(i); // This is to avoid needless allocations performed by toCharArray() switch(c) { case('('): isReminder = i > 0; break; // if oracle has only reminder, consider it valid rules (basic and true lands need this) @@ -99,7 +99,7 @@ public final class CardRules implements ICardCharacteristics { case('{'): isSymbol = true; break; case('}'): isSymbol = false; break; default: - if(isSymbol && !isReminder) { + if (isSymbol && !isReminder) { switch(c) { case('W'): res |= MagicColor.WHITE; break; case('U'): res |= MagicColor.BLUE; break; @@ -317,7 +317,7 @@ public final class CardRules implements ICardCharacteristics { /** Instantiates class, reads a card. For batch operations better create you own reader instance. */ public static CardRules fromScript(Iterable script) { Reader crr = new Reader(); - for(String line : script) { + for (String line : script) { crr.parseLine(line); } return crr.getCard(); diff --git a/forge-core/src/main/java/forge/card/CardRulesPredicates.java b/forge-core/src/main/java/forge/card/CardRulesPredicates.java index be11a1ee5d3..935c7d56aff 100644 --- a/forge-core/src/main/java/forge/card/CardRulesPredicates.java +++ b/forge-core/src/main/java/forge/card/CardRulesPredicates.java @@ -270,7 +270,6 @@ public final class CardRulesPredicates { return new PredicateSuperType(type, isEqual); } - /** * Checks for color. * diff --git a/forge-core/src/main/java/forge/item/PaperToken.java b/forge-core/src/main/java/forge/item/PaperToken.java index 5467ca2cb1b..b240c4644b6 100644 --- a/forge-core/src/main/java/forge/item/PaperToken.java +++ b/forge-core/src/main/java/forge/item/PaperToken.java @@ -122,7 +122,7 @@ public class PaperToken implements InventoryItemFromSet, IPaperCard { String formatEdition = null == edition || CardEdition.UNKNOWN == edition ? "" : "_" + edition.getCode().toLowerCase(); this.imageFileName.add(String.format("%s%s", imageFileName, formatEdition)); - for(int idx = 2; idx <= this.artIndex; idx++) { + for (int idx = 2; idx <= this.artIndex; idx++) { this.imageFileName.add(String.format("%s%d%s", imageFileName, idx, formatEdition)); } } diff --git a/forge-core/src/main/java/forge/token/TokenDb.java b/forge-core/src/main/java/forge/token/TokenDb.java index 1175c231f4b..4e5876131af 100644 --- a/forge-core/src/main/java/forge/token/TokenDb.java +++ b/forge-core/src/main/java/forge/token/TokenDb.java @@ -40,7 +40,7 @@ public class TokenDb implements ITokenDatabase { } public void preloadTokens() { - for(CardEdition edition : this.editions) { + for (CardEdition edition : this.editions) { for (String name : edition.getTokens().keySet()) { try { getToken(name, edition.getCode()); diff --git a/forge-game/src/main/java/forge/game/card/TokenCreateTable.java b/forge-game/src/main/java/forge/game/card/TokenCreateTable.java index a61586898f0..537e512a492 100644 --- a/forge-game/src/main/java/forge/game/card/TokenCreateTable.java +++ b/forge-game/src/main/java/forge/game/card/TokenCreateTable.java @@ -33,20 +33,20 @@ public class TokenCreateTable extends ForwardingTable { this.put(p, c, newValue); return newValue; } - + public int getFilterAmount(String validOwner, String validToken, final CardTraitBase ctb) { final Card host = ctb.getHostCard(); int result = 0; List filteredCards = null; List filteredPlayer = null; - + if (validOwner == null && validToken == null) { for (Integer i : values()) { result += i; } return result; } - + if (validOwner != null) { filteredPlayer = Lists.newArrayList(Iterables.filter(rowKeySet(), GameObjectPredicates.restriction(validOwner.split(","), host.getController(), host, ctb))); @@ -78,7 +78,7 @@ public class TokenCreateTable extends ForwardingTable { } return result; } - + for (Table.Cell c : this.cellSet()) { if (!filteredPlayer.contains(c.getRowKey())) { continue; @@ -89,7 +89,6 @@ public class TokenCreateTable extends ForwardingTable { result += c.getValue(); } - return result; } } diff --git a/forge-game/src/main/java/forge/game/card/token/TokenInfo.java b/forge-game/src/main/java/forge/game/card/token/TokenInfo.java index 82cd621cc94..a0df70f1261 100644 --- a/forge-game/src/main/java/forge/game/card/token/TokenInfo.java +++ b/forge-game/src/main/java/forge/game/card/token/TokenInfo.java @@ -152,7 +152,7 @@ public class TokenInfo { } static protected void protoTypeApplyTextChange(final Card result, final SpellAbility sa) { - // update Token with CardTextChanges + // update Token with CardTextChanges Map colorMap = sa.getChangedTextColors(); Map typeMap = sa.getChangedTextTypes(); if (!colorMap.isEmpty()) { diff --git a/forge-gui/res/cardsfolder/c/chrome_mox.txt b/forge-gui/res/cardsfolder/c/chrome_mox.txt index e301b8b767b..088c660ae2f 100644 --- a/forge-gui/res/cardsfolder/c/chrome_mox.txt +++ b/forge-gui/res/cardsfolder/c/chrome_mox.txt @@ -2,7 +2,7 @@ Name:Chrome Mox ManaCost:0 Types:Artifact T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Any | Destination$ Battlefield | OptionalDecider$ You | Execute$ TrigExile | TriggerDescription$ Imprint — When CARDNAME enters the battlefield, you may exile a nonartifact, nonland card from your hand. -SVar:TrigExile:DB$ChangeZone | Imprint$ True | Origin$ Hand | Destination$ Exile | ChangeType$ Card.nonArtifact+nonLand | ChangeNum$ 1 +SVar:TrigExile:DB$ ChangeZone | Imprint$ True | Origin$ Hand | Destination$ Exile | ChangeType$ Card.nonArtifact+nonLand | ChangeNum$ 1 A:AB$ ManaReflected | Cost$ T | Valid$ Defined.Imprinted | ColorOrType$ Color | ReflectProperty$ Is | SpellDescription$ Add one mana of any of the exiled card's colors. T:Mode$ ChangesZone | Origin$ Battlefield | ValidCard$ Card.Self | Destination$ Any | Execute$ DBCleanup | Static$ True T:Mode$ ChangesZone | Origin$ Exile | Destination$ Any | Static$ True | ValidCard$ Card.IsImprinted+ExiledWithSource | Execute$ DBForget diff --git a/forge-gui/res/cardsfolder/c/cold_storage.txt b/forge-gui/res/cardsfolder/c/cold_storage.txt index 706870e99f0..1267fd23909 100644 --- a/forge-gui/res/cardsfolder/c/cold_storage.txt +++ b/forge-gui/res/cardsfolder/c/cold_storage.txt @@ -6,7 +6,7 @@ A:AB$ ChangeZoneAll | Cost$ Sac<1/CARDNAME> | ChangeType$ Card.Creature+IsRememb T:Mode$ ChangesZone | Origin$ Exile | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered+ExiledWithSource | Execute$ DBForget SVar:DBForget:DB$ Pump | ForgetObjects$ TriggeredCard T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | Static$ True | ValidCard$ Card.Self | Execute$ DBCleanup -SVar:DBCleanup:DB$Cleanup | ClearRemembered$ True +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:NonStackingEffect:True AI:RemoveDeck:All SVar:Picture:http://www.wizards.com/global/images/magic/general/cold_storage.jpg diff --git a/forge-gui/res/quest/commanderprecons/Built from Scratch (2018).dck b/forge-gui/res/quest/commanderprecons/Built from Scratch (2018).dck index 1005f239486..c9178a3bebd 100644 --- a/forge-gui/res/quest/commanderprecons/Built from Scratch (2018).dck +++ b/forge-gui/res/quest/commanderprecons/Built from Scratch (2018).dck @@ -32,7 +32,7 @@ Name=Built from Scratch (2018) 1 Great Furnace|CM2 1 Hoard-Smelter Dragon|CM2 1 Ichor Wellspring|CM2 -#1 Impact Resonance|CM2 +1 Impact Resonance|CM2 1 Incite Rebellion|CM2 1 Ingot Chewer|CM2 1 Jalum Tome|CM2 diff --git a/forge-gui/res/quest/commanderprecons/Built from Scratch.dck b/forge-gui/res/quest/commanderprecons/Built from Scratch.dck index f247e6da845..455cc8b5ced 100644 --- a/forge-gui/res/quest/commanderprecons/Built from Scratch.dck +++ b/forge-gui/res/quest/commanderprecons/Built from Scratch.dck @@ -32,7 +32,7 @@ Name=Built from Scratch 1 Great Furnace|C14 1 Hoard-Smelter Dragon|C14 1 Ichor Wellspring|C14 -#1 Impact Resonance|C14 +1 Impact Resonance|C14 1 Incite Rebellion|C14 1 Ingot Chewer|C14 1 Jalum Tome|C14 diff --git a/forge-gui/res/quest/commanderprecons/Entropic Uprising.dck b/forge-gui/res/quest/commanderprecons/Entropic Uprising.dck index 1aa1d82891b..daa28afdf00 100644 --- a/forge-gui/res/quest/commanderprecons/Entropic Uprising.dck +++ b/forge-gui/res/quest/commanderprecons/Entropic Uprising.dck @@ -83,6 +83,6 @@ Name=Entropic Uprising 1 Curtains' Call|C16 1 Parting Thoughts|C16 1 Grave Upheaval|C16 -#1 Cruel Entertainment|C16 +1 Cruel Entertainment|C16 1 Treacherous Terrain|C16 1 Ash Barrens|C16 diff --git a/forge-gui/res/quest/commanderprecons/Feline Ferocity.dck b/forge-gui/res/quest/commanderprecons/Feline Ferocity.dck index 55b220d0d43..ede58f094b2 100644 --- a/forge-gui/res/quest/commanderprecons/Feline Ferocity.dck +++ b/forge-gui/res/quest/commanderprecons/Feline Ferocity.dck @@ -77,7 +77,7 @@ Name=Feline Ferocity 1 Soul's Majesty|C17 1 Spirit of the Hearth|C17 1 Staff of Nin|C17 -#1 Stalking Leonin|C17 +1 Stalking Leonin|C17 1 Stirring Wildwood|C17 1 Sunspear Shikari|C17 1 Swiftfoot Boots|C17 From 50a1cf3a8ff4d709aaac949686c075056835c468 Mon Sep 17 00:00:00 2001 From: tool4EvEr Date: Sat, 4 Sep 2021 19:42:43 +0200 Subject: [PATCH 2/2] Clean up --- .../java/forge/game/ability/effects/ChangeZoneAllEffect.java | 1 - .../main/java/forge/game/ability/effects/LifeGainEffect.java | 3 +-- forge-gui/res/cardsfolder/b/brushland.txt | 2 +- forge-gui/res/cardsfolder/c/city_of_brass.txt | 2 +- forge-gui/res/cardsfolder/s/skyshroud_forest.txt | 2 +- 5 files changed, 4 insertions(+), 6 deletions(-) diff --git a/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneAllEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneAllEffect.java index b53383ed315..396a33268ee 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneAllEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneAllEffect.java @@ -166,7 +166,6 @@ public class ChangeZoneAllEffect extends SpellAbilityEffect { Map moveParams = Maps.newEnumMap(AbilityKey.class); if (destination == ZoneType.Battlefield) { - if (sa.hasAdditionalAbility("AnimateSubAbility")) { // need LKI before Animate does apply moveParams.put(AbilityKey.CardLKI, CardUtil.getLKICopy(c)); diff --git a/forge-game/src/main/java/forge/game/ability/effects/LifeGainEffect.java b/forge-game/src/main/java/forge/game/ability/effects/LifeGainEffect.java index 457a92f8b74..16a78793898 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/LifeGainEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/LifeGainEffect.java @@ -1,6 +1,5 @@ package forge.game.ability.effects; - import java.util.List; import forge.game.ability.AbilityUtils; @@ -40,7 +39,7 @@ public class LifeGainEffect extends SpellAbilityEffect { final int lifeAmount = AbilityUtils.calculateAmount(sa.getHostCard(), sa.getParam("LifeAmount"), sa); List tgtPlayers = getDefinedPlayersOrTargeted(sa); - if( tgtPlayers.isEmpty() ) { + if (tgtPlayers.isEmpty()) { tgtPlayers.add(sa.getActivatingPlayer()); } diff --git a/forge-gui/res/cardsfolder/b/brushland.txt b/forge-gui/res/cardsfolder/b/brushland.txt index 634ea28bee5..f69444e99bf 100644 --- a/forge-gui/res/cardsfolder/b/brushland.txt +++ b/forge-gui/res/cardsfolder/b/brushland.txt @@ -4,6 +4,6 @@ Types:Land A:AB$ Mana | Cost$ T | Produced$ C | SpellDescription$ Add {C}. A:AB$ Mana | Cost$ T | Produced$ W | SubAbility$ DBPain | SpellDescription$ Add {W}. CARDNAME deals 1 damage to you. A:AB$ Mana | Cost$ T | Produced$ G | SubAbility$ DBPain | SpellDescription$ Add {G}. CARDNAME deals 1 damage to you. -SVar:DBPain:DB$DealDamage | NumDmg$ 1 | Defined$ You +SVar:DBPain:DB$ DealDamage | NumDmg$ 1 | Defined$ You SVar:Picture:http://www.wizards.com/global/images/magic/general/brushland.jpg Oracle:{T}: Add {C}.\n{T}: Add {G} or {W}. Brushland deals 1 damage to you. diff --git a/forge-gui/res/cardsfolder/c/city_of_brass.txt b/forge-gui/res/cardsfolder/c/city_of_brass.txt index d98f99d64b0..a3b6851720f 100644 --- a/forge-gui/res/cardsfolder/c/city_of_brass.txt +++ b/forge-gui/res/cardsfolder/c/city_of_brass.txt @@ -3,6 +3,6 @@ ManaCost:no cost Types:Land A:AB$ Mana | Cost$ T | Produced$ Any | Amount$ 1 | SpellDescription$ Add one mana of any color. T:Mode$ Taps | ValidCard$ Card.Self | Execute$ TrigDamage | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME becomes tapped, it deals 1 damage to you. -SVar:TrigDamage:DB$DealDamage | Defined$ You | NumDmg$ 1 +SVar:TrigDamage:DB$ DealDamage | Defined$ You | NumDmg$ 1 SVar:Picture:http://www.wizards.com/global/images/magic/general/city_of_brass.jpg Oracle:Whenever City of Brass becomes tapped, it deals 1 damage to you.\n{T}: Add one mana of any color. diff --git a/forge-gui/res/cardsfolder/s/skyshroud_forest.txt b/forge-gui/res/cardsfolder/s/skyshroud_forest.txt index 6a7b52c22e8..f7d693eda75 100644 --- a/forge-gui/res/cardsfolder/s/skyshroud_forest.txt +++ b/forge-gui/res/cardsfolder/s/skyshroud_forest.txt @@ -5,6 +5,6 @@ A:AB$ Mana | Cost$ T | Produced$ C | SpellDescription$ Add {C}. A:AB$ Mana | Cost$ T | Produced$ U | SubAbility$ DBPain | SpellDescription$ Add {U}. CARDNAME deals 1 damage to you. A:AB$ Mana | Cost$ T | Produced$ G | SubAbility$ DBPain | SpellDescription$ Add {G}. CARDNAME deals 1 damage to you. K:CARDNAME enters the battlefield tapped. -SVar:DBPain:DB$DealDamage | NumDmg$ 1 | Defined$ You +SVar:DBPain:DB$ DealDamage | NumDmg$ 1 | Defined$ You SVar:Picture:http://www.wizards.com/global/images/magic/general/skyshroud_forest.jpg Oracle:Skyshroud Forest enters the battlefield tapped.\n{T}: Add {C}.\n{T}: Add {G} or {U}. Skyshroud Forest deals 1 damage to you.