From d61aeb09c02631bbbb45100ac6845ff273f1bb28 Mon Sep 17 00:00:00 2001 From: swordshine Date: Thu, 5 Apr 2018 21:28:15 +0800 Subject: [PATCH 1/5] - Fixed Sage of Ancient Lore --- .../java/forge/game/card/CardFactoryUtil.java | 36 +++++++++---------- ...ncient_lore_werewolf_of_ancient_hunger.txt | 4 +-- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java index bee4bff7b1b..e188c2535f2 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -1422,41 +1422,41 @@ public class CardFactoryUtil { } if (sq[0].contains("OppCtrl")) { - for (final Player p : opps) { - someCards.addAll(p.getZone(ZoneType.Battlefield).getCards()); - } + for (final Player p : opps) { + someCards.addAll(p.getZone(ZoneType.Battlefield).getCards()); + } } if (sq[0].contains("InOppYard")) { - for (final Player p : opps) { - someCards.addAll(p.getCardsIn(ZoneType.Graveyard)); - } + for (final Player p : opps) { + someCards.addAll(p.getCardsIn(ZoneType.Graveyard)); + } } if (sq[0].contains("InOppHand")) { - for (final Player p : opps) { - someCards.addAll(p.getCardsIn(ZoneType.Hand)); - } + for (final Player p : opps) { + someCards.addAll(p.getCardsIn(ZoneType.Hand)); + } } if (sq[0].contains("InChosenHand")) { - if (c.getChosenPlayer() != null) { - someCards.addAll(c.getChosenPlayer().getCardsIn(ZoneType.Hand)); - } + if (c.getChosenPlayer() != null) { + someCards.addAll(c.getChosenPlayer().getCardsIn(ZoneType.Hand)); + } } if (sq[0].contains("InChosenYard")) { - if (c.getChosenPlayer() != null) { - someCards.addAll(c.getChosenPlayer().getCardsIn(ZoneType.Graveyard)); - } + if (c.getChosenPlayer() != null) { + someCards.addAll(c.getChosenPlayer().getCardsIn(ZoneType.Graveyard)); + } } if (sq[0].contains("OnBattlefield")) { - someCards.addAll(game.getCardsIn(ZoneType.Battlefield)); + someCards.addAll(game.getCardsIn(ZoneType.Battlefield)); } if (sq[0].contains("InAllYards")) { - someCards.addAll(game.getCardsIn(ZoneType.Graveyard)); + someCards.addAll(game.getCardsIn(ZoneType.Graveyard)); } if (sq[0].contains("SpellsOnStack")) { @@ -1464,7 +1464,7 @@ public class CardFactoryUtil { } if (sq[0].contains("InAllHands")) { - someCards.addAll(game.getCardsIn(ZoneType.Hand)); + someCards.addAll(game.getCardsIn(ZoneType.Hand)); } // Count$InTargetedHand (targeted player's cards in hand) diff --git a/forge-gui/res/cardsfolder/s/sage_of_ancient_lore_werewolf_of_ancient_hunger.txt b/forge-gui/res/cardsfolder/s/sage_of_ancient_lore_werewolf_of_ancient_hunger.txt index eb9ba9d329b..9c8f28f3481 100644 --- a/forge-gui/res/cardsfolder/s/sage_of_ancient_lore_werewolf_of_ancient_hunger.txt +++ b/forge-gui/res/cardsfolder/s/sage_of_ancient_lore_werewolf_of_ancient_hunger.txt @@ -24,8 +24,8 @@ Types:Creature Werewolf PT:*/* K:Vigilance K:Trample -S:Mode$ Continuous | EffectZone$ All | CharacteristicDefining$ True | SetPower$ X | SetToughness$ X | References$ X | Description$ CARDNAME's power and toughness are each equal to the total number of cards in all players' hands. -SVar:X:Count$NumInAllHands +S:Mode$ Continuous | EffectZone$ All | CharacteristicDefining$ True | SetPower$ Y | SetToughness$ Y | References$ Y | Description$ CARDNAME's power and toughness are each equal to the total number of cards in all players' hands. +SVar:Y:Count$NumInAllHands T:Mode$Phase | Phase$ Upkeep | WerewolfUntransformCondition$ True | TriggerZones$ Battlefield | Execute$ TrigTransform | TriggerDescription$ At the beginning of each upkeep, if a player cast two or more spells last turn, transform CARDNAME. SVar:TrigTransform:DB$ SetState | Defined$ Self | Mode$ Transform SVar:Picture:http://www.wizards.com/global/images/magic/general/werewolf_of_ancient_hunger.jpg From 45b6f1a6ef0734395fd87e9054d57ef530836bdc Mon Sep 17 00:00:00 2001 From: swordshine Date: Thu, 5 Apr 2018 22:07:15 +0800 Subject: [PATCH 2/5] - Fixed "precombat main phase" triggers --- forge-game/src/main/java/forge/game/trigger/Trigger.java | 6 ++++++ forge-gui/res/cardsfolder/a/altar_of_shadows.txt | 2 +- forge-gui/res/cardsfolder/b/black_market.txt | 2 +- forge-gui/res/cardsfolder/b/blinkmoth_urn.txt | 2 +- forge-gui/res/cardsfolder/b/bounty_of_the_luxa.txt | 2 +- forge-gui/res/cardsfolder/c/coalition_relic.txt | 2 +- .../res/cardsfolder/e/eladamri_lord_of_leaves_avatar.txt | 2 +- forge-gui/res/cardsfolder/e/eladamris_vineyard.txt | 2 +- forge-gui/res/cardsfolder/e/elemental_resonance.txt | 2 +- forge-gui/res/cardsfolder/k/kilnspire_district.txt | 2 +- forge-gui/res/cardsfolder/m/magus_of_the_vineyard.txt | 2 +- forge-gui/res/cardsfolder/o/orcish_squatters_avatar.txt | 2 +- forge-gui/res/cardsfolder/p/plasm_capture.txt | 2 +- forge-gui/res/cardsfolder/v/ventifact_bottle.txt | 2 +- 14 files changed, 19 insertions(+), 13 deletions(-) diff --git a/forge-game/src/main/java/forge/game/trigger/Trigger.java b/forge-game/src/main/java/forge/game/trigger/Trigger.java index 2835e658c28..8700ff560be 100644 --- a/forge-game/src/main/java/forge/game/trigger/Trigger.java +++ b/forge-game/src/main/java/forge/game/trigger/Trigger.java @@ -235,6 +235,12 @@ public abstract class Trigger extends TriggerReplacementBase { } } + if (this.mapParams.containsKey("PreCombatMain")) { + if (!phaseHandler.isPreCombatMain()) { + return false; + } + } + if (this.mapParams.containsKey("PlayerTurn")) { if (!phaseHandler.isPlayerTurn(this.getHostCard().getController())) { return false; diff --git a/forge-gui/res/cardsfolder/a/altar_of_shadows.txt b/forge-gui/res/cardsfolder/a/altar_of_shadows.txt index 52e7f5a4c35..5c566284828 100644 --- a/forge-gui/res/cardsfolder/a/altar_of_shadows.txt +++ b/forge-gui/res/cardsfolder/a/altar_of_shadows.txt @@ -1,7 +1,7 @@ Name:Altar of Shadows ManaCost:7 Types:Artifact -T:Mode$ Phase | Phase$ Main1 | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigGetMana | TriggerDescription$ At the beginning of your precombat main phase, add {B} to your mana pool for each charge counter on CARDNAME. +T:Mode$ Phase | Phase$ Main1 | PreCombatMain$ True | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigGetMana | TriggerDescription$ At the beginning of your precombat main phase, add {B} to your mana pool for each charge counter on CARDNAME. SVar:TrigGetMana:DB$ Mana | Produced$ B | Amount$ X | References$ X | SpellDescription$ Add {X}{B} to your mana pool A:AB$ Destroy | Cost$ 7 T | ValidTgts$ Creature | TgtPrompt$ Select target creature | SubAbility$ DBPutCounter | SpellDescription$ Destroy target creature. Then put a charge counter on CARDNAME. SVar:DBPutCounter:DB$PutCounter | Defined$ Self | CounterType$ CHARGE | CounterNum$ 1 diff --git a/forge-gui/res/cardsfolder/b/black_market.txt b/forge-gui/res/cardsfolder/b/black_market.txt index 6d8ccfcfc9e..d778476f2f6 100644 --- a/forge-gui/res/cardsfolder/b/black_market.txt +++ b/forge-gui/res/cardsfolder/b/black_market.txt @@ -3,7 +3,7 @@ ManaCost:3 B B Types:Enchantment T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature | TriggerZones$ Battlefield | Execute$ TrigPutCounter | TriggerDescription$ Whenever a creature dies, put a charge counter on CARDNAME. SVar:TrigPutCounter:DB$PutCounter | Defined$ Self | CounterType$ CHARGE | CounterNum$ 1 -T:Mode$ Phase | Phase$ Main1 | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigGetMana | TriggerDescription$ At the beginning of your precombat main phase, add {B} to your mana pool for each charge counter on CARDNAME. +T:Mode$ Phase | Phase$ Main1 | PreCombatMain$ True | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigGetMana | TriggerDescription$ At the beginning of your precombat main phase, add {B} to your mana pool for each charge counter on CARDNAME. SVar:TrigGetMana:DB$ Mana | Produced$ B | Amount$ X | References$ X | SpellDescription$ Add {X}{B} to your mana pool SVar:X:Count$CardCounters.CHARGE SVar:Picture:http://www.wizards.com/global/images/magic/general/black_market.jpg diff --git a/forge-gui/res/cardsfolder/b/blinkmoth_urn.txt b/forge-gui/res/cardsfolder/b/blinkmoth_urn.txt index 701221e7a40..f6c525433db 100644 --- a/forge-gui/res/cardsfolder/b/blinkmoth_urn.txt +++ b/forge-gui/res/cardsfolder/b/blinkmoth_urn.txt @@ -1,7 +1,7 @@ Name:Blinkmoth Urn ManaCost:5 Types:Artifact -T:Mode$ Phase | Phase$ Main1 | ValidPlayer$ Player | TriggerZones$ Battlefield | IsPresent$ Card.Self+untapped | Execute$ TrigGetMana | TriggerDescription$ At the beginning of each player's precombat main phase, if CARDNAME is untapped, that player adds {C} to his or her mana pool for each artifact he or she controls. +T:Mode$ Phase | Phase$ Main1 | PreCombatMain$ True | ValidPlayer$ Player | TriggerZones$ Battlefield | IsPresent$ Card.Self+untapped | Execute$ TrigGetMana | TriggerDescription$ At the beginning of each player's precombat main phase, if CARDNAME is untapped, that player adds {C} to his or her mana pool for each artifact he or she controls. SVar:TrigGetMana:DB$ Mana | Produced$ C | Amount$ X | References$ X | Defined$ TriggeredPlayer SVar:X:Count$Valid Artifact.ActivePlayerCtrl SVar:RemRandomDeck:True diff --git a/forge-gui/res/cardsfolder/b/bounty_of_the_luxa.txt b/forge-gui/res/cardsfolder/b/bounty_of_the_luxa.txt index 83440c262f0..37f1924c4db 100644 --- a/forge-gui/res/cardsfolder/b/bounty_of_the_luxa.txt +++ b/forge-gui/res/cardsfolder/b/bounty_of_the_luxa.txt @@ -1,7 +1,7 @@ Name:Bounty of the Luxa ManaCost:2 G U Types:Enchantment -T:Mode$ Phase | Phase$ Main1 | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigRemove | TriggerDescription$ At the beginning of your precombat main phase, remove all flood counters from CARDNAME. If no counters were removed this way, put a flood counter on CARDNAME and draw a card. Otherwise, add {C}{G}{U} to your mana pool. +T:Mode$ Phase | Phase$ Main1 | PreCombatMain$ True | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigRemove | TriggerDescription$ At the beginning of your precombat main phase, remove all flood counters from CARDNAME. If no counters were removed this way, put a flood counter on CARDNAME and draw a card. Otherwise, add {C}{G}{U} to your mana pool. SVar:TrigRemove:DB$ RemoveCounter | CounterType$ FLOOD | CounterNum$ All | RememberRemoved$ True | SubAbility$ DBPutCounter SVar:DBPutCounter:DB$PutCounter | Defined$ Self | ConditionCheckSVar$ X | References$ X | ConditionSVarCompare$ EQ0 | CounterType$ FLOOD | CounterNum$ 1 | SubAbility$ DBDraw SVar:DBDraw:DB$ Draw | NumCards$ 1 | ConditionCheckSVar$ X | References$ X | ConditionSVarCompare$ EQ0 | SubAbility$ DBGetMana diff --git a/forge-gui/res/cardsfolder/c/coalition_relic.txt b/forge-gui/res/cardsfolder/c/coalition_relic.txt index 56ac352c590..6140718b951 100644 --- a/forge-gui/res/cardsfolder/c/coalition_relic.txt +++ b/forge-gui/res/cardsfolder/c/coalition_relic.txt @@ -3,7 +3,7 @@ ManaCost:3 Types:Artifact A:AB$ Mana | Cost$ T | Produced$ Any | Amount$ 1 | SpellDescription$ Add one mana of any color to your mana pool. A:AB$ PutCounter | Cost$ T | CounterType$ CHARGE | CounterNum$ 1 | SpellDescription$ Put a charge counter on CARDNAME. -T:Mode$ Phase | Phase$ Main1 | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigRemove | TriggerDescription$ At the beginning of your precombat main phase, remove all charge counters from CARDNAME. Add one mana of any color to your mana pool for each charge counter removed this way. +T:Mode$ Phase | Phase$ Main1 | PreCombatMain$ True | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigRemove | TriggerDescription$ At the beginning of your precombat main phase, remove all charge counters from CARDNAME. Add one mana of any color to your mana pool for each charge counter removed this way. SVar:TrigRemove:DB$ RemoveCounter | CounterType$ CHARGE | CounterNum$ All | RememberRemoved$ True | SubAbility$ TrigGetMana SVar:TrigGetMana:DB$ Mana | Produced$ Combo Any | Amount$ NumRemoved | References$ NumRemoved | AILogic$ MostProminentInComputerHand | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True diff --git a/forge-gui/res/cardsfolder/e/eladamri_lord_of_leaves_avatar.txt b/forge-gui/res/cardsfolder/e/eladamri_lord_of_leaves_avatar.txt index 19eedb69663..8ffdf7cd54e 100644 --- a/forge-gui/res/cardsfolder/e/eladamri_lord_of_leaves_avatar.txt +++ b/forge-gui/res/cardsfolder/e/eladamri_lord_of_leaves_avatar.txt @@ -2,7 +2,7 @@ Name:Eladamri, Lord of Leaves Avatar ManaCost:no cost Types:Vanguard HandLifeModifier:-1/+2 -T:Mode$ Phase | Phase$ Main1 | ValidPlayer$ Player | TriggerZones$ Command | Execute$ TrigAddMana | TriggerDescription$ At the beginning of each player's precombat main phase, that player adds {G}{G} to his or her mana pool. +T:Mode$ Phase | Phase$ Main1 | PreCombatMain$ True | ValidPlayer$ Player | TriggerZones$ Command | Execute$ TrigAddMana | TriggerDescription$ At the beginning of each player's precombat main phase, that player adds {G}{G} to his or her mana pool. SVar:TrigAddMana:DB$ Mana | Produced$ G | Amount$ 2 | Defined$ TriggeredPlayer SVar:RemRandomDeck:True SVar:Picture:https://downloads.cardforge.org/images/cards/VAN/Eladamri, Lord of Leaves Avatar.full.jpg diff --git a/forge-gui/res/cardsfolder/e/eladamris_vineyard.txt b/forge-gui/res/cardsfolder/e/eladamris_vineyard.txt index 2e107211202..c11a1f41a34 100644 --- a/forge-gui/res/cardsfolder/e/eladamris_vineyard.txt +++ b/forge-gui/res/cardsfolder/e/eladamris_vineyard.txt @@ -1,7 +1,7 @@ Name:Eladamri's Vineyard ManaCost:G Types:Enchantment -T:Mode$ Phase | Phase$ Main1 | ValidPlayer$ Player | TriggerZones$ Battlefield | Execute$ TrigMana | TriggerDescription$ At the beginning of each player's precombat main phase, add {G}{G} to that player's mana pool. +T:Mode$ Phase | Phase$ Main1 | PreCombatMain$ True | ValidPlayer$ Player | TriggerZones$ Battlefield | Execute$ TrigMana | TriggerDescription$ At the beginning of each player's precombat main phase, add {G}{G} to that player's mana pool. SVar:TrigMana:DB$Mana | Produced$ G | Amount$ 2 | Defined$ TriggeredPlayer SVar:Picture:http://www.wizards.com/global/images/magic/general/eladamris_vineyard.jpg Oracle:At the beginning of each player's precombat main phase, add {G}{G} to that player's mana pool. diff --git a/forge-gui/res/cardsfolder/e/elemental_resonance.txt b/forge-gui/res/cardsfolder/e/elemental_resonance.txt index 3709882672b..a25125a0b58 100644 --- a/forge-gui/res/cardsfolder/e/elemental_resonance.txt +++ b/forge-gui/res/cardsfolder/e/elemental_resonance.txt @@ -3,7 +3,7 @@ ManaCost:2 G G Types:Enchantment Aura K:Enchant permanent A:SP$ Attach | Cost$ 2 G G | ValidTgts$ Permanent | AILogic$ Pump -T:Mode$ Phase | Phase$ Main1 | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigMana | TriggerDescription$ At the beginning of your precombat main phase, add mana equal to enchanted permanent's mana cost to your mana pool. (Mana cost includes color. If a mana symbol has multiple colors, choose one.) +T:Mode$ Phase | Phase$ Main1 | PreCombatMain$ True | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigMana | TriggerDescription$ At the beginning of your precombat main phase, add mana equal to enchanted permanent's mana cost to your mana pool. (Mana cost includes color. If a mana symbol has multiple colors, choose one.) SVar:TrigMana:DB$ Mana | Produced$ Special EnchantedManaCost SVar:Picture:http://www.wizards.com/global/images/magic/general/elemental_resonance.jpg Oracle:Enchant permanent\nAt the beginning of your precombat main phase, add mana equal to enchanted permanent's mana cost to your mana pool. (Mana cost includes color. If a mana symbol has multiple colors, choose one.) diff --git a/forge-gui/res/cardsfolder/k/kilnspire_district.txt b/forge-gui/res/cardsfolder/k/kilnspire_district.txt index 7e2e685ade3..23128cdc0f7 100644 --- a/forge-gui/res/cardsfolder/k/kilnspire_district.txt +++ b/forge-gui/res/cardsfolder/k/kilnspire_district.txt @@ -2,7 +2,7 @@ Name:Kilnspire District ManaCost:no cost Types:Plane Ravnica T:Mode$ PlaneswalkedTo | ValidCard$ Card.Self | TriggerZones$ Command | Execute$ PutCounter | TriggerDescription$ When you planeswalk to CARDNAME or at the beginning of your precombat main phase, put a charge counter on CARDNAME, then add {R} to your mana pool for each charge counter on it. -T:Mode$ Phase | Phase$ Main1 | ValidPlayer$ You | TriggerZones$ Command | Execute$ PutCounter | Secondary$ True | TriggerDescription$ When you planeswalk to CARDNAME or at the beginning of your precombat main phase, put a charge counter on CARDNAME, then add {R} to your mana pool for each charge counter on it. +T:Mode$ Phase | Phase$ Main1 | PreCombatMain$ True | ValidPlayer$ You | TriggerZones$ Command | Execute$ PutCounter | Secondary$ True | TriggerDescription$ When you planeswalk to CARDNAME or at the beginning of your precombat main phase, put a charge counter on CARDNAME, then add {R} to your mana pool for each charge counter on it. SVar:PutCounter:DB$PutCounter | Defined$ Self | CounterType$ CHARGE | CounterNum$ 1 | SubAbility$ DBMana SVar:DBMana:DB$ Mana | Produced$ R | Amount$ Y | References$ Y T:Mode$ PlanarDice | Result$ Chaos | TriggerZones$ Command | Execute$ DBPay | TriggerDescription$ Whenever you roll {CHAOS}, you may pay {X}. If you do, CARDNAME deals X damage to target creature or player. diff --git a/forge-gui/res/cardsfolder/m/magus_of_the_vineyard.txt b/forge-gui/res/cardsfolder/m/magus_of_the_vineyard.txt index de6c2929715..e5e59ca0e72 100644 --- a/forge-gui/res/cardsfolder/m/magus_of_the_vineyard.txt +++ b/forge-gui/res/cardsfolder/m/magus_of_the_vineyard.txt @@ -2,7 +2,7 @@ Name:Magus of the Vineyard ManaCost:G Types:Creature Human Wizard PT:1/1 -T:Mode$ Phase | Phase$ Main1 | ValidPlayer$ Player | Execute$ TrigMana | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of each player's precombat main phase, add {G}{G} to that player's mana pool. +T:Mode$ Phase | Phase$ Main1 | PreCombatMain$ True | ValidPlayer$ Player | Execute$ TrigMana | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of each player's precombat main phase, add {G}{G} to that player's mana pool. SVar:TrigMana:DB$Mana | Produced$ G | Amount$ 2 | Defined$ TriggeredPlayer SVar:Picture:http://www.wizards.com/global/images/magic/general/magus_of_the_vineyard.jpg Oracle:At the beginning of each player's precombat main phase, add {G}{G} to that player's mana pool. diff --git a/forge-gui/res/cardsfolder/o/orcish_squatters_avatar.txt b/forge-gui/res/cardsfolder/o/orcish_squatters_avatar.txt index c3325629b9c..86fef9dc028 100644 --- a/forge-gui/res/cardsfolder/o/orcish_squatters_avatar.txt +++ b/forge-gui/res/cardsfolder/o/orcish_squatters_avatar.txt @@ -2,7 +2,7 @@ Name:Orcish Squatters Avatar ManaCost:no cost Types:Vanguard HandLifeModifier:-1/-1 -T:Mode$ Phase | Phase$ Main1 | ValidPlayer$ You | TriggerZones$ Command | Execute$ TrigGetMana | TriggerDescription$ At the beginning of your precombat main phase, add an amount of {C} to your mana pool equal to the number of lands target opponent controls. +T:Mode$ Phase | Phase$ Main1 | PreCombatMain$ True | ValidPlayer$ You | TriggerZones$ Command | Execute$ TrigGetMana | TriggerDescription$ At the beginning of your precombat main phase, add an amount of {C} to your mana pool equal to the number of lands target opponent controls. SVar:TrigGetMana:DB$ Pump | ValidTgts$ Player | RememberObjects$ Targeted | SubAbility$ DBMana SVar:DBMana:DB$ Mana | Produced$ C | Amount$ X | References$ X | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True diff --git a/forge-gui/res/cardsfolder/p/plasm_capture.txt b/forge-gui/res/cardsfolder/p/plasm_capture.txt index 1137f140b08..0eb1003fea9 100644 --- a/forge-gui/res/cardsfolder/p/plasm_capture.txt +++ b/forge-gui/res/cardsfolder/p/plasm_capture.txt @@ -2,7 +2,7 @@ Name:Plasm Capture ManaCost:G G U U Types:Instant A:SP$ Counter | Cost$ G G U U | TargetType$ Spell | RememberCounteredCMC$ True | ValidTgts$ Card | SubAbility$ DBDelTrig | SpellDescription$ Counter target spell. At the beginning of your next precombat main phase, add X mana in any combination of colors to your mana pool, where X is that spell's converted mana cost. -SVar:DBDelTrig:DB$ DelayedTrigger | Mode$ Phase | Phase$ Main1 | ValidPlayer$ You | Execute$ AddMana | TriggerDescription$ At the beginning of your next precombat main phase, add X mana in any combination of colors to your mana pool, where X is that spell's converted mana cost. | RememberNumber$ True | SubAbility$ DBCleanup +SVar:DBDelTrig:DB$ DelayedTrigger | Mode$ Phase | Phase$ Main1 | PreCombatMain$ True | ValidPlayer$ You | Execute$ AddMana | TriggerDescription$ At the beginning of your next precombat main phase, add X mana in any combination of colors to your mana pool, where X is that spell's converted mana cost. | RememberNumber$ True | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:AddMana:DB$ Mana | Produced$ Combo Any | Amount$ X | References$ X | AILogic$ MostProminentInComputerHand SVar:X:Count$TriggerRememberAmount diff --git a/forge-gui/res/cardsfolder/v/ventifact_bottle.txt b/forge-gui/res/cardsfolder/v/ventifact_bottle.txt index 452e305915a..7350b7e3cfe 100644 --- a/forge-gui/res/cardsfolder/v/ventifact_bottle.txt +++ b/forge-gui/res/cardsfolder/v/ventifact_bottle.txt @@ -2,7 +2,7 @@ Name:Ventifact Bottle ManaCost:3 Types:Artifact A:AB$ PutCounter | Cost$ X 1 T | CounterType$ CHARGE | CounterNum$ X | References$ X | SorcerySpeed$ True | SpellDescription$ Put X charge counters on Ventifact Bottle. Activate this ability only any time you could cast a sorcery. -T:Mode$ Phase | Phase$ Main1 | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigGetMana | CheckSVar$ Y | SVarCompare$ GE1 | TriggerDescription$ At the beginning of your precombat main phase, if CARDNAME has a charge counter on it, tap it and remove all charge counters from it. Add {C} to your mana pool for each charge counter removed this way. +T:Mode$ Phase | Phase$ Main1 | PreCombatMain$ True | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigGetMana | CheckSVar$ Y | SVarCompare$ GE1 | TriggerDescription$ At the beginning of your precombat main phase, if CARDNAME has a charge counter on it, tap it and remove all charge counters from it. Add {C} to your mana pool for each charge counter removed this way. SVar:TrigGetMana:DB$ Mana | Produced$ C | Amount$ Y | SubAbility$ TrigRemove SVar:TrigRemove:DB$ RemoveCounter | CounterType$ CHARGE | CounterNum$ Y | References$ Y | SubAbility$ DBTap SVar:DBTap:DB$ Tap | Defined$ Self From ecac92d9b3632234e98f5828e53b07fd77563aa6 Mon Sep 17 00:00:00 2001 From: swordshine Date: Thu, 5 Apr 2018 22:16:54 +0800 Subject: [PATCH 3/5] - Skipping your "next" untap step is cumulative. --- forge-game/src/main/java/forge/game/phase/PhaseHandler.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-game/src/main/java/forge/game/phase/PhaseHandler.java b/forge-game/src/main/java/forge/game/phase/PhaseHandler.java index 14d291d893a..4ffc1d30099 100644 --- a/forge-game/src/main/java/forge/game/phase/PhaseHandler.java +++ b/forge-game/src/main/java/forge/game/phase/PhaseHandler.java @@ -192,7 +192,7 @@ public class PhaseHandler implements java.io.Serializable { switch (phase) { case UNTAP: if (playerTurn.hasKeyword("Skip your next untap step.")) { - playerTurn.removeKeyword("Skip your next untap step."); + playerTurn.removeKeyword("Skip your next untap step.", false); // Skipping your "next" untap step is cumulative. return true; } return playerTurn.hasKeyword("Skip the untap step of this turn.") || playerTurn.hasKeyword("Skip your untap step."); From b44bf4bb47a4fbd2411dd8e1d8b856fa57047d3b Mon Sep 17 00:00:00 2001 From: swordshine Date: Thu, 5 Apr 2018 22:33:46 +0800 Subject: [PATCH 4/5] - Fixed Etali, Primal Storm --- forge-gui/res/cardsfolder/e/etali_primal_storm.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/e/etali_primal_storm.txt b/forge-gui/res/cardsfolder/e/etali_primal_storm.txt index 784ba5c9a29..eb2e4b2bb3f 100644 --- a/forge-gui/res/cardsfolder/e/etali_primal_storm.txt +++ b/forge-gui/res/cardsfolder/e/etali_primal_storm.txt @@ -4,7 +4,8 @@ Types:Legendary Creature Elder Dinosaur PT:6/6 T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigMill | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME attacks, exile the top card of each player's library, then you may cast any number of nonland cards exiled this way without paying their mana costs. SVar:TrigMill:DB$ Mill | NumCards$ 1 | Defined$ Player | Destination$ Exile | RememberMilled$ True | SubAbility$ DBPlay -SVar:DBPlay:DB$ Play | Valid$ Card.nonLand+IsRemembered | ValidZone$ Exile | Controller$ You | WithoutManaCost$ True | Optional$ True | Amount$ All +SVar:DBPlay:DB$ Play | Valid$ Card.nonLand+IsRemembered | ValidZone$ Exile | Controller$ You | WithoutManaCost$ True | Optional$ True | Amount$ All | SubAbility$ DBCleanup +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:HasAttackEffect:TRUE SVar:Picture:http://www.wizards.com/global/images/magic/general/etali_primal_storm.jpg Oracle:Whenever Etali, Primal Storm attacks, exile the top card of each player's library, then you may cast any number of nonland cards exiled this way without paying their mana costs. \ No newline at end of file From e61c8d83f5515f02b090034400372fefd1a82614 Mon Sep 17 00:00:00 2001 From: swordshine Date: Fri, 6 Apr 2018 12:46:16 +0800 Subject: [PATCH 5/5] - Cleanup --- forge-gui/res/cardsfolder/upcoming/history_of_benalia.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/upcoming/history_of_benalia.txt b/forge-gui/res/cardsfolder/upcoming/history_of_benalia.txt index 789b5dfb7b0..f10dc39843f 100644 --- a/forge-gui/res/cardsfolder/upcoming/history_of_benalia.txt +++ b/forge-gui/res/cardsfolder/upcoming/history_of_benalia.txt @@ -3,6 +3,6 @@ ManaCost:1 W W Types:Enchantment Saga K:Saga:3:DBToken,DBToken,DBPump SVar:DBToken:DB$ Token | TokenAmount$ 1 | TokenName$ Knight | TokenTypes$ Creature,Knight | TokenOwner$ You | TokenColors$ White | TokenPower$ 2 | TokenToughness$ 2 | TokenKeywords$ Vigilance | TokenImage$ w 2 2 knight dom | SpellDescription$ Create a 2/2 white Knight creature token with vigilance. -SVar:DBPump:DB$ PumpAll | Cost$ 1 W | ValidCards$ Knight.YouCtrl | NumAtt$ +2 | NumDef$ +1 | SpellDescription$ Knights you control get +2/+1 until end of turn. +SVar:DBPump:DB$ PumpAll | ValidCards$ Knight.YouCtrl | NumAtt$ +2 | NumDef$ +1 | SpellDescription$ Knights you control get +2/+1 until end of turn. SVar:Picture:http://www.wizards.com/global/images/magic/general/history_of_benalia.jpg Oracle:(As this Saga enters and after your draw step, add a lore counter. Sacrifice after III.)\nI, II - Create a 2/2 white Knight creature token with vigilance.\nIII - Knights you control get +2/+1 until end of turn.