diff --git a/forge-game/src/main/java/forge/game/cost/CostCollectEvidence.java b/forge-game/src/main/java/forge/game/cost/CostCollectEvidence.java index 772c452acbc..e585c4e8de5 100644 --- a/forge-game/src/main/java/forge/game/cost/CostCollectEvidence.java +++ b/forge-game/src/main/java/forge/game/cost/CostCollectEvidence.java @@ -31,7 +31,10 @@ public class CostCollectEvidence extends CostPartWithList { } @Override - public int paymentOrder() { return 13; } + public int paymentOrder() { + // needs to be aligned with CostExile because of Lamplight Phoenix + return 15; + } @Override public boolean canPay(SpellAbility ability, Player payer, boolean effect) { diff --git a/forge-gui/res/cardsfolder/upcoming/fae_flight.txt b/forge-gui/res/cardsfolder/upcoming/fae_flight.txt new file mode 100644 index 00000000000..4af25223d94 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/fae_flight.txt @@ -0,0 +1,10 @@ +Name:Fae Flight +ManaCost:1 U +Types:Enchantment Aura +K:Flash +K:Enchant creature +A:SP$ Attach | ValidTgts$ Creature | AILogic$ Pump +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPump | TriggerDescription$ When CARDNAME enters the battlefield, enchanted creature gains hexproof until end of turn. +SVar:TrigPump:DB$ Pump | Defined$ Enchanted | KW$ Hexproof +S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddPower$ 1 | AddKeyword$ Flying | Description$ Enchanted creature gets +1/+0 and has flying. +Oracle:Flash\nEnchant creature\nWhen Fae Flight enters the battlefield, enchanted creature gains hexproof until end of turn.\nEnchanted creature gets +1/+0 and has flying. diff --git a/forge-gui/res/cardsfolder/upcoming/kyloxs_voltstrider.txt b/forge-gui/res/cardsfolder/upcoming/kyloxs_voltstrider.txt new file mode 100644 index 00000000000..82d3a3b22dc --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/kyloxs_voltstrider.txt @@ -0,0 +1,15 @@ +Name:Kylox's Voltstrider +ManaCost:1 U R +Types:Artifact Vehicle +PT:4/4 +A:AB$ Animate | Cost$ CollectEvidence<6> | Defined$ Self | Types$ Artifact,Creature | SpellDescription$ CARDNAME becomes an artifact creature until end of turn. +T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigPlay | OptionalDecider$ You | TriggerDescription$ Whenever CARDNAME attacks, you may cast an instant or sorcery spell from among cards exiled with it. If that spell would be put into a graveyard, put it on the bottom of its owner's library instead. +SVar:TrigPlay:DB$ Play | ValidZone$ Exile | Valid$ Card.ExiledWithSource | ValidSA$ Instant,Sorcery | Controller$ You | Optional$ True | RememberPlayed$ True | Amount$ 1 | SubAbility$ DBEffect +SVar:DBEffect:DB$ Effect | ReplacementEffects$ StaticReplace | RememberObjects$ Remembered +SVar:StaticReplace:Event$ Moved | ValidLKI$ Card.IsRemembered | Origin$ Stack | Destination$ Graveyard | ReplaceWith$ MoveLibrary +SVar:MoveLibrary:DB$ ChangeZone | Defined$ ReplacedCard | Origin$ Stack | Destination$ Library | LibraryPosition$ -1 | SubAbility$ ExileSelf +SVar:ExileSelf:DB$ ChangeZone | Defined$ Self | Origin$ Command | Destination$ Exile +K:Crew:2 +DeckHints:Type$Instant|Sorcery & Ability$Graveyard|Mill|Discard|Dredge +SVar:HasAttackEffect:TRUE +Oracle:Collect evidence 6: Kylox's Voltstrider becomes an artifact creature until end of turn.\nWhenever Kylox's Voltstrider attacks, you may cast an instant or sorcery spell from among cards exiled with it. If that spell would be put into a graveyard, put it on the bottom of its owner’s library instead.\nCrew 2 diff --git a/forge-gui/res/cardsfolder/upcoming/lamplight_phoenix.txt b/forge-gui/res/cardsfolder/upcoming/lamplight_phoenix.txt new file mode 100644 index 00000000000..84856279a56 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/lamplight_phoenix.txt @@ -0,0 +1,9 @@ +Name:Lamplight Phoenix +ManaCost:1 R R +Types:Creature Phoenix +PT:3/3 +K:Flying +T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigExile | TriggerDescription$ When CARDNAME dies, you may exile it and collect evidence 4. If you do, return CARDNAME to the battlefield tapped. (To collect evidence 4, exile cards with total mana value 4 or greater from your graveyard.) +SVar:TrigExile:AB$ ChangeZone | Cost$ ExileAnyGrave<1/Card.TriggeredNewCard> CollectEvidence<4> | Origin$ Exile | Destination$ Battlefield | Defined$ ExiledCards | Tapped$ True +DeckHints:Ability$Graveyard|Mill|Discard +Oracle:Flying\nWhen Lamplight Phoenix dies, you may exile it and collect evidence 4. If you do, return Lamplight Phoenix to the battlefield tapped. (To collect evidence 4, exile cards with total mana value 4 or greater from your graveyard.) diff --git a/forge-gui/res/cardsfolder/upcoming/marketwatch_phantom.txt b/forge-gui/res/cardsfolder/upcoming/marketwatch_phantom.txt new file mode 100644 index 00000000000..78f7725cdf2 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/marketwatch_phantom.txt @@ -0,0 +1,8 @@ +Name:Marketwatch Phantom +ManaCost:1 W +Types:Creature Spirit Detective +PT:2/2 +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.powerLE2+YouCtrl+Other | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever another creature with power 2 or less enters the battlefield under your control, CARDNAME gains flying until end of turn. +SVar:TrigPump:DB$ Pump | Defined$ Self | KW$ Flying +SVar:BuffedBy:Creature.powerLE2 +Oracle:Whenever another creature with power 2 or less enters the battlefield under your control, Marketwatch Phantom gains flying until end of turn. diff --git a/forge-gui/res/cardsfolder/upcoming/public_thoroughfare.txt b/forge-gui/res/cardsfolder/upcoming/public_thoroughfare.txt new file mode 100644 index 00000000000..fcbe391268e --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/public_thoroughfare.txt @@ -0,0 +1,10 @@ +Name:Public Thoroughfare +ManaCost:no cost +Types:Land +K:CARDNAME enters the battlefield tapped. +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigSac | TriggerDescription$ When CARDNAME enters the battlefield, sacrifice it unless you tap an untapped artifact or land you control. +SVar:TrigSac:DB$ Sacrifice | UnlessCost$ tapXType<1/Artifact;Land/artifact or land> | UnlessPayer$ You +A:AB$ Mana | Cost$ T | Produced$ Any | SpellDescription$ Add one mana of any color. +DeckHints:Type$Artifact +SVar:NeedsToPlay:Land.untapped+YouCtrl;Artifact.untapped+YouCtrl +Oracle:Public Thoroughfare enters the battlefield tapped.\nWhen Public Thoroughfare enters the battlefield, sacrifice it unless you tap an untapped artifact or land you control.\n{T}: Add one mana of any color. diff --git a/forge-gui/src/main/java/forge/player/HumanPlay.java b/forge-gui/src/main/java/forge/player/HumanPlay.java index 878280dc9f9..7534d2b0369 100644 --- a/forge-gui/src/main/java/forge/player/HumanPlay.java +++ b/forge-gui/src/main/java/forge/player/HumanPlay.java @@ -250,7 +250,8 @@ public class HumanPlay { || part instanceof CostRemoveCounter || part instanceof CostRemoveAnyCounter || part instanceof CostMill - || part instanceof CostSacrifice) { + || part instanceof CostSacrifice + || part instanceof CostCollectEvidence) { PaymentDecision pd = part.accept(hcd); if (pd == null) {