diff --git a/forge-game/src/main/java/forge/game/GameActionUtil.java b/forge-game/src/main/java/forge/game/GameActionUtil.java index b9095a0b440..4dfa0c3c54d 100644 --- a/forge-game/src/main/java/forge/game/GameActionUtil.java +++ b/forge-game/src/main/java/forge/game/GameActionUtil.java @@ -248,7 +248,7 @@ public final class GameActionUtil { // do only non intrinsic if (iSa.isSpell() && !iSa.isIntrinsic()) { alternatives.add(iSa); - alternatives.addAll(getMayPlaySpellOptions(iSa, source, activator, altCostOnly)); + alternatives.addAll(getMayPlaySpellOptions(iSa, stackCopy, activator, altCostOnly)); // currently only AltCost get added this way } } diff --git a/forge-gui/res/cardsfolder/d/demilich.txt b/forge-gui/res/cardsfolder/d/demilich.txt index 28f98b30f67..31c30e4313d 100644 --- a/forge-gui/res/cardsfolder/d/demilich.txt +++ b/forge-gui/res/cardsfolder/d/demilich.txt @@ -7,7 +7,7 @@ T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigExile | TriggerZones$ Batt SVar:TrigExile:DB$ ChangeZone | TargetMin$ 0 | TargetMax$ 1 | Origin$ Graveyard | Destination$ Exile | TgtPrompt$ Choose up to one target instant or sorcery card in your graveyard | ValidTgts$ Instant.YouCtrl,Sorcery.YouCtrl | RememberChanged$ True | SubAbility$ DBPlay SVar:DBPlay:DB$ Play | Defined$ Remembered | ValidSA$ Spell | Optional$ True | CopyCard$ True | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True -S:Mode$ Continuous | Affected$ Card.Self | MayPlay$ True | AffectedZone$ Graveyard | EffectZone$ Graveyard | MayPlayAltManaCost$ U U U U ExileFromGrave<4/Instant;Sorcery/instant or sorcery cards> | Description$ You may cast CARDNAME from your graveyard by exiling four instant and/or sorcery cards from your graveyard in addition to paying its other costs. +S:Mode$ Continuous | Affected$ Card.Self | MayPlay$ True | AffectedZone$ Graveyard | EffectZone$ Graveyard | RaiseCost$ ExileFromGrave<4/Instant;Sorcery/instant or sorcery cards> | Description$ You may cast CARDNAME from your graveyard by exiling four instant and/or sorcery cards from your graveyard in addition to paying its other costs. SVar:X:Count$ThisTurnCast_Instant.YouCtrl,Sorcery.YouCtrl DeckNeeds:Type$Instant|Sorcery Oracle:This spell costs {U} less to cast for each instant and sorcery spell you've cast this turn.\nWhenever Demilich attacks, exile up to one target instant or sorcery card from your graveyard. Copy it. You may cast the copy.\nYou may cast Demilich from your graveyard by exiling four instant and/or sorcery cards from your graveyard in addition to paying its other costs. diff --git a/forge-gui/res/cardsfolder/d/demonic_embrace.txt b/forge-gui/res/cardsfolder/d/demonic_embrace.txt index 1a71fec52e0..c044346f410 100644 --- a/forge-gui/res/cardsfolder/d/demonic_embrace.txt +++ b/forge-gui/res/cardsfolder/d/demonic_embrace.txt @@ -4,7 +4,7 @@ Types:Enchantment Aura K:Enchant creature A:SP$ Attach | Cost$ 1 B B | ValidTgts$ Creature | AILogic$ Pump S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddPower$ 3 | AddToughness$ 1 | AddKeyword$ Flying | AddType$ Demon | Description$ Enchanted creature gets +3/+1, has flying, and is a Demon in addition to its other types. -S:Mode$ Continuous | Affected$ Card.Self | MayPlay$ True | AffectedZone$ Graveyard | EffectZone$ Graveyard | MayPlayAltManaCost$ 1 B B PayLife<3> Discard<1/Card> | Description$ You may cast CARDNAME from your graveyard by paying 3 life and discarding a card in addition to paying its other costs. +S:Mode$ Continuous | Affected$ Card.Self | MayPlay$ True | AffectedZone$ Graveyard | EffectZone$ Graveyard | RaiseCost$ PayLife<3> Discard<1/Card> | Description$ You may cast CARDNAME from your graveyard by paying 3 life and discarding a card in addition to paying its other costs. DeckHas:Ability$Discard|Graveyard SVar:DiscardMe:1 Oracle:Enchant creature\nEnchanted creature gets +3/+1, has flying, and is a Demon in addition to its other types.\nYou may cast Demonic Embrace from your graveyard by paying 3 life and discarding a card in addition to paying its other costs. diff --git a/forge-gui/res/cardsfolder/h/helbrute.txt b/forge-gui/res/cardsfolder/h/helbrute.txt index 96ccf879263..6f4d0590373 100644 --- a/forge-gui/res/cardsfolder/h/helbrute.txt +++ b/forge-gui/res/cardsfolder/h/helbrute.txt @@ -3,6 +3,6 @@ ManaCost:3 B R Types:Artifact Creature Astartes Dreadnought PT:5/4 K:Haste -S:Mode$ Continuous | Affected$ Card.Self | MayPlay$ True | AffectedZone$ Graveyard | EffectZone$ Graveyard | MayPlayAltManaCost$ 3 B R ExileFromGrave<1/Creature.Other/another creature card> | Description$ Sarcophagus — You may cast CARDNAME from your graveyard by exiling another creature card from your graveyard in addition to paying its other costs. +S:Mode$ Continuous | Affected$ Card.Self | MayPlay$ True | AffectedZone$ Graveyard | EffectZone$ Graveyard | RaiseCost$ ExileFromGrave<1/Creature.Other/another creature card> | Description$ Sarcophagus — You may cast CARDNAME from your graveyard by exiling another creature card from your graveyard in addition to paying its other costs. DeckHas:Ability$Graveyard Oracle:Haste\nSarcophagus — You may cast Helbrute from your graveyard by exiling another creature card from your graveyard in addition to paying its other costs. diff --git a/forge-gui/res/cardsfolder/m/me_the_immortal.txt b/forge-gui/res/cardsfolder/m/me_the_immortal.txt index ab963fc14fc..9670c09c963 100644 --- a/forge-gui/res/cardsfolder/m/me_the_immortal.txt +++ b/forge-gui/res/cardsfolder/m/me_the_immortal.txt @@ -5,7 +5,7 @@ PT:3/3 T:Mode$ Phase | Phase$ BeginCombat | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigCounter | TriggerDescription$ At the beginning of combat on your turn, put your choice of a +1/+1, first strike, vigilance, or menace counter on CARDNAME. SVar:TrigCounter:DB$ PutCounter | Defined$ Self | CounterType$ P1P1,First Strike,Vigilance,Menace | CounterNum$ 1 K:Counters remain on CARDNAME as it moves to any zone other than a player's hand or library. -S:Mode$ Continuous | Affected$ Card.Self | MayPlay$ True | AffectedZone$ Graveyard | EffectZone$ Graveyard | MayPlayAltManaCost$ 2 G U R Discard<2/Card> | Description$ You may cast NICKNAME from your graveyard by discarding two cards in addition to paying its other costs. +S:Mode$ Continuous | Affected$ Card.Self | MayPlay$ True | AffectedZone$ Graveyard | EffectZone$ Graveyard | RaiseCost$ Discard<2/Card> | Description$ You may cast NICKNAME from your graveyard by discarding two cards in addition to paying its other costs. DeckHas:Ability$Counters|Discard DeckHints:Ability$Counters Oracle:At the beginning of combat on your turn, put your choice of a +1/+1, first strike, vigilance, or menace counter on Me, the Immortal.\nCounters remain on Me as it moves to any zone other than a player's hand or library.\nYou may cast Me from your graveyard by discarding two cards in addition to paying its other costs. diff --git a/forge-gui/res/cardsfolder/p/primitive_justice.txt b/forge-gui/res/cardsfolder/p/primitive_justice.txt index 44fd26f2c64..907ac10bade 100644 --- a/forge-gui/res/cardsfolder/p/primitive_justice.txt +++ b/forge-gui/res/cardsfolder/p/primitive_justice.txt @@ -1,12 +1,12 @@ Name:Primitive Justice ManaCost:1 R Types:Sorcery -A:SP$ Destroy | AnnounceTitle$ how many times to pay the additional cost | Announce$ AdditionalCostPayTimesR,AdditionalCostPayTimesG | ValidTgts$ Artifact | TgtPrompt$ Select target artifact | TargetMin$ TargetNum | TargetMax$ TargetNum | SubAbility$ DBGainLife | SpellDescription$ Destroy target artifact. For each additional {1}{R} you paid, destroy another target artifact. For each additional {1}{G} you paid, destroy another target artifact, and you gain 1 life. +A:SP$ Destroy | AnnounceTitle$ how many times to pay the additional cost | Announce$ AdditionalCostPayTimesR,AdditionalCostPayTimesG | ValidTgts$ Artifact | SubAbility$ DBDestroy2 | SpellDescription$ Destroy target artifact. For each additional {1}{R} you paid, destroy another target artifact. For each additional {1}{G} you paid, destroy another target artifact, and you gain 1 life. +SVar:DBDestroy2:DB$ Destroy | ValidTgts$ Artifact | TargetUnique$ True | TargetMin$ AdditionalCostPayTimesR | TargetMax$ AdditionalCostPayTimesR | SubAbility$ DBDestroy3 +SVar:DBDestroy3:DB$ Destroy | ValidTgts$ Artifact | TargetUnique$ True | TargetMin$ AdditionalCostPayTimesG | TargetMax$ AdditionalCostPayTimesG | SubAbility$ DBGainLife S:Mode$ RaiseCost | ValidCard$ Card.Self | Type$ Spell | Cost$ 1 R | Amount$ AdditionalCostPayTimesR | EffectZone$ All | Description$ As an additional cost to cast this spell, you may pay {1}{R} and/or {1}{G} any number of times. S:Mode$ RaiseCost | ValidCard$ Card.Self | Type$ Spell | Cost$ 1 G | Amount$ AdditionalCostPayTimesG | EffectZone$ All SVar:DBGainLife:DB$ GainLife | Defined$ You | LifeAmount$ AdditionalCostPayTimesG SVar:AdditionalCostPayTimesR:Number$0 SVar:AdditionalCostPayTimesG:Number$0 -SVar:TargetNum:SVar$AdditionalCostPayTimesR/Plus.TargetNum2 -SVar:TargetNum2:SVar$AdditionalCostPayTimesG/Plus.1 Oracle:As an additional cost to cast this spell, you may pay {1}{R} and/or {1}{G} any number of times.\nDestroy target artifact. For each additional {1}{R} you paid, destroy another target artifact. For each additional {1}{G} you paid, destroy another target artifact, and you gain 1 life. diff --git a/forge-gui/res/cardsfolder/r/rona_sheoldreds_faithful.txt b/forge-gui/res/cardsfolder/r/rona_sheoldreds_faithful.txt index a8a35864762..54eeb4cae10 100644 --- a/forge-gui/res/cardsfolder/r/rona_sheoldreds_faithful.txt +++ b/forge-gui/res/cardsfolder/r/rona_sheoldreds_faithful.txt @@ -4,7 +4,7 @@ Types:Legendary Creature Human Wizard PT:3/4 T:Mode$ SpellCast | ValidCard$ Instant,Sorcery | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigDrain | TriggerDescription$ Whenever you cast an instant or sorcery spell, each opponent loses 1 life. SVar:TrigDrain:DB$ LoseLife | Defined$ Opponent | LifeAmount$ 1 -S:Mode$ Continuous | Affected$ Card.Self | MayPlay$ True | AffectedZone$ Graveyard | EffectZone$ Graveyard | MayPlayAltManaCost$ 1 U B B Discard<2/Card> | ActivationZone$ Graveyard | Description$ You may cast CARDNAME from your graveyard by discarding two cards in addition to paying its other costs. +S:Mode$ Continuous | Affected$ Card.Self | MayPlay$ True | AffectedZone$ Graveyard | EffectZone$ Graveyard | RaiseCost$ Discard<2/Card> | ActivationZone$ Graveyard | Description$ You may cast CARDNAME from your graveyard by discarding two cards in addition to paying its other costs. DeckHas:Ability$Discard|Graveyard DeckNeeds:Type$Instant|Sorcery SVar:DiscardMe:1 diff --git a/forge-gui/res/cardsfolder/upcoming/powerbalance.txt b/forge-gui/res/cardsfolder/upcoming/powerbalance.txt index 4ade80732a2..5ce46236ba6 100644 --- a/forge-gui/res/cardsfolder/upcoming/powerbalance.txt +++ b/forge-gui/res/cardsfolder/upcoming/powerbalance.txt @@ -5,5 +5,5 @@ T:Mode$ SpellCast | ValidCard$ Card | ValidActivatingPlayer$ Opponent | Optional SVar:TrigReveal:DB$ PeekAndReveal | PeekAmount$ 1 | RevealOptional$ True | RememberRevealed$ True | SubAbility$ DBPlay SVar:DBPlay:DB$ Play | Defined$ Remembered | ValidSA$ Spell.cmcEQX | WithoutManaCost$ True | Optional$ True | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True -SVar:X:Count$TopOfLibraryCMC +SVar:X:TriggeredStackInstance$CardManaCostLKI Oracle:Whenever an opponent casts a spell, you may reveal the top card of your library. If you do, you may cast that card without paying its mana cost if the two spells have the same mana value.