diff --git a/forge-game/src/main/java/forge/game/ability/effects/ControlGainVariantEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ControlGainVariantEffect.java index 48123229288..44c2deddebe 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ControlGainVariantEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ControlGainVariantEffect.java @@ -21,6 +21,8 @@ public class ControlGainVariantEffect extends SpellAbilityEffect { @Override public void resolve(SpellAbility sa) { // Aminatou, the Fateshifter (multiple players gain control of multiple permanents in an effect) + // Consider migrating cards with similar effects + // GainControl embedded in RepeatEach effects don't work well with timestamps final Card source = sa.getHostCard(); final Game game = source.getGame(); diff --git a/forge-gui/res/cardsfolder/upcoming/aminatou_the_fateshifter.txt b/forge-gui/res/cardsfolder/a/aminatou_the_fateshifter.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/aminatou_the_fateshifter.txt rename to forge-gui/res/cardsfolder/a/aminatou_the_fateshifter.txt diff --git a/forge-gui/res/cardsfolder/d/darkblade_agent.txt b/forge-gui/res/cardsfolder/d/darkblade_agent.txt index 0f933fee1e8..a3ce8c4a4ae 100644 --- a/forge-gui/res/cardsfolder/d/darkblade_agent.txt +++ b/forge-gui/res/cardsfolder/d/darkblade_agent.txt @@ -2,7 +2,7 @@ Name:Darkblade Agent ManaCost:1 U B Types:Creature Human Assassin PT:2/3 -S:Mode$ Continuous | Affected$ Card.Self | AddKeyword$ Deathtouch | AddTrigger$ Trig1 | AddSVar$ TrigDraw | CheckSVar$ X | SVarCompare$ GE1 | Description$ As long as you've surveilled this turn, CARDNAME has deathtouch and and whenever Whenever this creature deals combat damage to a player, draw a card. +S:Mode$ Continuous | Affected$ Card.Self | AddKeyword$ Deathtouch | AddTrigger$ Trig1 | AddSVar$ TrigDraw | CheckSVar$ X | SVarCompare$ GE1 | Description$ As long as you've surveilled this turn, CARDNAME has deathtouch and "Whenever this creature deals combat damage to a player, draw a card." SVar:Trig1:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigDraw | TriggerDescription$ Whenever this creature deals combat damage to a player, draw a card. SVar:TrigDraw:DB$ Draw | Defined$ You | NumCards$ 1 SVar:X:Count$YouSurveilThisTurn diff --git a/forge-gui/res/cardsfolder/d/disinformation_campaign.txt b/forge-gui/res/cardsfolder/d/disinformation_campaign.txt index 3af7a783fff..17be691d384 100644 --- a/forge-gui/res/cardsfolder/d/disinformation_campaign.txt +++ b/forge-gui/res/cardsfolder/d/disinformation_campaign.txt @@ -4,6 +4,6 @@ Types:Enchantment T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigDraw | TriggerDescription$ When CARDNAME enters the battlefield, you draw a card and each opponent discards a card. SVar:TrigDraw:DB$ Draw | Defined$ You | NumCards$ 1 | SubAbility$ DBDiscard SVar:DBDiscard:DB$ Discard | Defined$ Player.Opponent | NumCards$ 1 | Mode$ TgtChoose -T:Mode$ Surveil | ValidPlayer$ You | Execute$ TrigBounce | TriggerZones$ Battlefield | TriggerDescription$ Whenever you surveil, return Disinformation Campaign to its owner's hand. +T:Mode$ Surveil | ValidPlayer$ You | Execute$ TrigBounce | TriggerZones$ Battlefield | TriggerDescription$ Whenever you surveil, return CARDNAME to its owner's hand. SVar:TrigBounce:DB$ChangeZone | Origin$ Battlefield | Destination$ Hand | Defined$ Self Oracle:When Disinformation Campaign enters the battlefield, you draw a card and each opponent discards a card.\nWhenever you surveil, return Disinformation Campaign to its owner's hand. diff --git a/forge-gui/res/cardsfolder/g/guild_summit.txt b/forge-gui/res/cardsfolder/g/guild_summit.txt index 8d3e5aefb68..24608dbed49 100644 --- a/forge-gui/res/cardsfolder/g/guild_summit.txt +++ b/forge-gui/res/cardsfolder/g/guild_summit.txt @@ -6,7 +6,7 @@ SVar:GuestList:DB$ ChooseCard | Defined$ You | MinAmount$ 0 | Amount$ X | Refere SVar:TrigTap:DB$ Tap | Defined$ Remembered | SubAbility$ DBDraw SVar:DBDraw:DB$ Draw | Defined$ You | NumCards$ Y | SubAbility$ DBCleanup | References$ Y SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True -SVar:X:Count$Valid Creature.YouCtrl +SVar:X:Count$Valid Gate.untapped+YouCtrl SVar:Y:Remembered$Amount T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Gate.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigDraw | TriggerDescription$ Whenever a Gate enters the battlefield under your control, draw a card. SVar:TrigDraw:DB$ Draw | Defined$ You | NumCards$ 1 diff --git a/forge-gui/res/cardsfolder/r/ravenous_slime.txt b/forge-gui/res/cardsfolder/r/ravenous_slime.txt index 39d9a888cb1..8714289faff 100644 --- a/forge-gui/res/cardsfolder/r/ravenous_slime.txt +++ b/forge-gui/res/cardsfolder/r/ravenous_slime.txt @@ -6,5 +6,5 @@ K:CantBeBlockedBy Creature.powerLE2 R:Event$ Moved | ActiveZones$ Battlefield | Origin$ Battlefield | Destination$ Graveyard | ValidLKI$ Creature.OppCtrl | ReplaceWith$ Exile | Description$ If a creature an opponent controls would die, instead exile it and put a number of +1/+1 counters equal to that creature's power on CARDNAME. SVar:Exile:DB$ ChangeZone | Defined$ ReplacedCard | Origin$ Battlefield | Destination$ Exile | SubAbility$ DBPutCounter SVar:DBPutCounter:DB$ PutCounter | CounterType$ P1P1 | CounterNum$ X | References$ X | Defined$ Self -SVar:X:ReplacedCard$CardPower +SVar:X:ReplacedCardLKI$CardPower Oracle:Ravenous Slime can't be blocked by creatures with power 2 or less.\nIf a creature an opponent controls would die, instead exile it and put a number of +1/+1 counters equal to that creature's power on Ravenous Slime. diff --git a/forge-gui/res/cardsfolder/s/saheeli_the_gifted.txt b/forge-gui/res/cardsfolder/s/saheeli_the_gifted.txt index acb0906840c..86f5b00299f 100644 --- a/forge-gui/res/cardsfolder/s/saheeli_the_gifted.txt +++ b/forge-gui/res/cardsfolder/s/saheeli_the_gifted.txt @@ -10,7 +10,7 @@ SVar:RemoveEffect:DB$ ChangeZone | Origin$ Command | Destination$ Exile SVar:X:Count$Valid Artifact.YouCtrl SVar:RemRandomDeck A:AB$ RepeatEach | Cost$ SubCounter<7/LOYALTY> | Planeswalker$ True | Ultimate$ True | RepeatSubAbility$ DBClone | RepeatCards$ Artifact.YouCtrl | AtEOT$ ExileCombat | AddSVars$ SneakAttackEOT | SpellDescription$ For each artifact you control, create a token that's a copy of it. Those tokens gain haste. Exile those tokens at the beginning of the next end step. -SVar:DBClone:DB$ CopyPermanent | Defined$ Remembered | Keywords$ Haste | AtEOT$ Exile | AddSVars$ SneakAttackEOT | AtEOT$ Exile +SVar:DBClone:DB$ CopyPermanent | Defined$ Remembered | Keywords$ Haste | AtEOT$ Exile | AddSVars$ SneakAttackEOT SVar:SneakAttackEOT:SVar:EndOfTurnLeavePlay:True K:CARDNAME can be your commander. -Oracle:[+1]: Create a 1/1 colorless Servo artifact creature token.\n[+1]: The next spell you cast this turn costs {1} less to cast for each artifact you control as you cast it.\n[-7]: For each artifact you control, create a token that's a copy of it. Those tokens gain haste. Exile those tokens at the beginning of the next end step.\nSaheeli, the Gifted can be your commander. \ No newline at end of file +Oracle:[+1]: Create a 1/1 colorless Servo artifact creature token.\n[+1]: The next spell you cast this turn costs {1} less to cast for each artifact you control as you cast it.\n[-7]: For each artifact you control, create a token that's a copy of it. Those tokens gain haste. Exile those tokens at the beginning of the next end step.\nSaheeli, the Gifted can be your commander. diff --git a/forge-gui/res/cardsfolder/t/turntimber_sower.txt b/forge-gui/res/cardsfolder/t/turntimber_sower.txt index b8c871a0564..972f5da9136 100644 --- a/forge-gui/res/cardsfolder/t/turntimber_sower.txt +++ b/forge-gui/res/cardsfolder/t/turntimber_sower.txt @@ -2,7 +2,7 @@ Name:Turntimber Sower ManaCost:2 G Types:Creature Elf Druid PT:3/3 -T:Mode$ ChangesZone | ValidCard$ Land.YouOwn | Origin$ Any | Destination$ Graveyard | Execute$ TrigToken | TriggerZones$ Battlefield | TriggerDescription$ Whenever one or more land cards are put into your graveyard from anywhere, create a 0/1 green Plant creature token. +T:Mode$ ChangesZone | ValidCard$ Land.YouOwn | Origin$ Any | Destination$ Graveyard | Execute$ TrigToken | OncePerEffect$ True | TriggerZones$ Battlefield | TriggerDescription$ Whenever one or more land cards are put into your graveyard from anywhere, create a 0/1 green Plant creature token. SVar:TrigToken:DB$Token | TokenAmount$ 1 | TokenName$ Plant | TokenTypes$ Creature,Plant | TokenOwner$ You | TokenColors$ Green | TokenPower$ 0 | TokenToughness$ 1 | TokenImage$ g 0 1 plant c18 SVar:RemRandomDeck:True A:AB$ ChangeZone | Cost$ G Sac<3/Creature> | TgtPrompt$ Choose target land card in your graveyard | ValidTgts$ Land.YouCtrl | Origin$ Graveyard | Destination$ Hand | SpellDescription$ Return target land card from your graveyard to your hand. diff --git a/forge-gui/res/cardsfolder/t/tuvasa_the_sunlit.txt b/forge-gui/res/cardsfolder/t/tuvasa_the_sunlit.txt index 54e048fd514..49c79afd743 100644 --- a/forge-gui/res/cardsfolder/t/tuvasa_the_sunlit.txt +++ b/forge-gui/res/cardsfolder/t/tuvasa_the_sunlit.txt @@ -4,7 +4,7 @@ Types:Legendary Creature Merfolk Shaman PT:1/1 S:Mode$ Continuous | Affected$ Card.Self | AddPower$ X | AddToughness$ X | Description$ CARDNAME gets +1/+1 for each enchantment you control. SVar:X:Count$Valid Enchantment.YouCtrl -T:Mode$ SpellCast | ValidCard$ Enchantment | ValidActivatingPlayer$ You | CheckSVar$ Y | SVarCompare$ EQ1 | References$ Y | TriggerZones$ Battlefield | Execute$ TrigDraw | TriggerDescription$ Whenever you cast your first enchantment spell each turn, draw a card. +T:Mode$ SpellCast | ValidCard$ Enchantment | ValidActivatingPlayer$ You | CheckSVar$ Y | SVarCompare$ EQ1 | References$ Y | NoResolvingCheck$ True | TriggerZones$ Battlefield | Execute$ TrigDraw | TriggerDescription$ Whenever you cast your first enchantment spell each turn, draw a card. SVar:Y:Count$ThisTurnCast_Enchantment.YouCtrl SVar:TrigDraw:DB$ Draw | NumCards$ 1 | Defined$ You SVar:BuffedBy:Enchantment diff --git a/forge-gui/res/cardsfolder/v/varchild_betrayer_of_kjeldor.txt b/forge-gui/res/cardsfolder/v/varchild_betrayer_of_kjeldor.txt index 667ecd11252..9c248f8890d 100644 --- a/forge-gui/res/cardsfolder/v/varchild_betrayer_of_kjeldor.txt +++ b/forge-gui/res/cardsfolder/v/varchild_betrayer_of_kjeldor.txt @@ -5,8 +5,8 @@ PT:3/3 T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigToken | TriggerDescription$ When CARDNAME deals combat damage to a player, that player creates that many 1/1 red Survivor creature tokens. SVar:TrigToken:DB$ Token | TokenOwner$ TriggeredTarget | TokenAmount$ X | References$ X | TokenName$ Survivor | TokenTypes$ Creature,Survivor | TokenColors$ Red | TokenPower$ 1 | TokenToughness$ 1 | TokenImage$ r 1 1 survivor C18 SVar:X:TriggerCount$DamageAmount -S:Mode$ Continuous | Affected$ Survivor | AddHiddenKeyword$ CantBlock Creature | Description$ Survivors can't block. -S:Mode$ CantAttack | ValidCard$ Creature.Survivor | Target$ You,Planeswalker.YouCtrl | Description$ Survivors your opponent control can't attack you or planeswalkers you control. +S:Mode$ Continuous | Affected$ Survivor.OppCtrl | AddHiddenKeyword$ CantBlock Creature | Description$ Survivors your opponents control can't block. +S:Mode$ CantAttack | ValidCard$ Creature.Survivor+OppCtrl | Target$ You,Planeswalker.YouCtrl | Description$ Survivors your opponents control can't attack you or planeswalkers you control. T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.Self | Execute$ TrigGainControl | TriggerDescription$ When CARDNAME leaves the battlefield, gain control of all Survivors. SVar:TrigGainControl:DB$ GainControl | AllValid$ Survivor | NewController$ You -Oracle:When Varchild, Betrayer of Kjeldor deals combat damage to a player, that player creates that many 1/1 red Survivor creature tokens.\nSurvivors your opponent control can't attack you or planeswalkers you control.\nWhen Varchild, Betrayer of Kjeldor leaves the battlefield, gain control of all Survivors. \ No newline at end of file +Oracle:When Varchild, Betrayer of Kjeldor deals combat damage to a player, that player creates that many 1/1 red Survivor creature tokens.\nSurvivors your opponents control can't block, and they can't attack you or a planeswalker you control.\nWhen Varchild, Betrayer of Kjeldor leaves the battlefield, gain control of all Survivors.