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 0c787d1a121..bee4bff7b1b 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -4131,12 +4131,14 @@ public class CardFactoryUtil { } else if (keyword.startsWith("Cycling")) { final String[] k = keyword.split(":"); final String manacost = k[1]; + final Cost cost = new Cost(manacost, true); StringBuilder sb = new StringBuilder(); sb.append("AB$ Draw | Cost$ "); sb.append(manacost); - sb.append(" Discard<1/CARDNAME> | ActivationZone$ Hand | PrecostDesc$ Cycling | CostDesc$ "); - sb.append(ManaCostParser.parse(manacost)); + sb.append(" Discard<1/CARDNAME> | ActivationZone$ Hand | PrecostDesc$ Cycling"); + sb.append(cost.isOnlyManaCost() ? " " : "—"); + sb.append("| CostDesc$ " + cost.toSimpleString() + " "); sb.append("| SpellDescription$ (").append(inst.getReminderText()).append(")"); SpellAbility sa = AbilityFactory.getAbility(sb.toString(), card); diff --git a/forge-gui/res/cardsfolder/d/defense_of_the_heart.txt b/forge-gui/res/cardsfolder/d/defense_of_the_heart.txt index 6edc9f1d255..158c4389722 100644 --- a/forge-gui/res/cardsfolder/d/defense_of_the_heart.txt +++ b/forge-gui/res/cardsfolder/d/defense_of_the_heart.txt @@ -1,8 +1,9 @@ Name:Defense of the Heart ManaCost:3 G Types:Enchantment -T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigSac | IsPresent$ Creature.OppCtrl | PresentCompare$ GE3 | TriggerDescription$ At the beginning of your upkeep, if an opponent controls three or more creatures, sacrifice CARDNAME, search your library for up to two creature cards, and put those cards onto the battlefield. Then shuffle your library. +T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigSac | CheckSVar$ X | SVarCompare$ GE3 | TriggerDescription$ At the beginning of your upkeep, if an opponent controls three or more creatures, sacrifice CARDNAME, search your library for up to two creature cards, and put those cards onto the battlefield. Then shuffle your library. SVar:TrigSac:DB$Sacrifice | SubAbility$ DBChange SVar:DBChange:DB$ChangeZone | Origin$ Library | Destination$ Battlefield | ChangeType$ Creature | ChangeNum$ 2 +SVar:X:PlayerCountOpponents$HighestValid Creature.YouCtrl SVar:Picture:http://www.wizards.com/global/images/magic/general/defense_of_the_heart.jpg Oracle:At the beginning of your upkeep, if an opponent controls three or more creatures, sacrifice Defense of the Heart, search your library for up to two creature cards, and put those cards onto the battlefield. Then shuffle your library. diff --git a/forge-gui/res/cardsfolder/k/knight_of_the_white_orchid.txt b/forge-gui/res/cardsfolder/k/knight_of_the_white_orchid.txt index 9e1f4ff48b8..abee552c245 100644 --- a/forge-gui/res/cardsfolder/k/knight_of_the_white_orchid.txt +++ b/forge-gui/res/cardsfolder/k/knight_of_the_white_orchid.txt @@ -3,8 +3,9 @@ ManaCost:W W Types:Creature Human Knight PT:2/2 K:First Strike -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | Execute$ TrigChange | IsPresent$ Land.OppCtrl | PresentCompare$ GTX | OptionalDecider$ You | TriggerDescription$ When CARDNAME enters the battlefield, if an opponent controls more lands than you, you may search your library for a Plains card, put it onto the battlefield, then shuffle your library. +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | Execute$ TrigChange | CheckSVar$ Y | SVarCompare$ GTX | OptionalDecider$ You | TriggerDescription$ When CARDNAME enters the battlefield, if an opponent controls more lands than you, you may search your library for a Plains card, put it onto the battlefield, then shuffle your library. SVar:TrigChange:DB$ChangeZone | Origin$ Library | Destination$ Battlefield | ChangeType$ Card.Plains | ChangeNum$ 1 | ShuffleNonMandatory$ True SVar:X:Count$Valid Land.YouCtrl +SVar:Y:PlayerCountOpponents$HighestValid Land.YouCtrl SVar:Picture:http://www.wizards.com/global/images/magic/general/knight_of_the_white_orchid.jpg Oracle:First strike\nWhen Knight of the White Orchid enters the battlefield, if an opponent controls more lands than you, you may search your library for a Plains card, put it onto the battlefield, then shuffle your library. diff --git a/forge-gui/res/cardsfolder/l/land_tax.txt b/forge-gui/res/cardsfolder/l/land_tax.txt index bcace10c009..06c3a152993 100644 --- a/forge-gui/res/cardsfolder/l/land_tax.txt +++ b/forge-gui/res/cardsfolder/l/land_tax.txt @@ -1,8 +1,9 @@ Name:Land Tax ManaCost:W Types:Enchantment -T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | OptionalDecider$ You | Execute$ TrigChange | IsPresent$ Land.OppCtrl | PresentCompare$ GTX | TriggerDescription$ At the beginning of your upkeep, if an opponent controls more lands than you, you may search your library for up to three basic land cards, reveal them, and put them into your hand. If you do, shuffle your library. +T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | OptionalDecider$ You | Execute$ TrigChange | CheckSVar$ Y | SVarCompare$ GTX | TriggerDescription$ At the beginning of your upkeep, if an opponent controls more lands than you, you may search your library for up to three basic land cards, reveal them, and put them into your hand. If you do, shuffle your library. SVar:TrigChange:DB$ChangeZone | Origin$ Library | Destination$ Hand | ChangeType$ Land.Basic | ChangeNum$ 3 | ShuffleNonMandatory$ True SVar:X:Count$Valid Land.YouCtrl +SVar:Y:PlayerCountOpponents$HighestValid Land.YouCtrl SVar:Picture:http://www.wizards.com/global/images/magic/general/land_tax.jpg Oracle:At the beginning of your upkeep, if an opponent controls more lands than you, you may search your library for up to three basic land cards, reveal them, and put them into your hand. If you do, shuffle your library. diff --git a/forge-gui/res/cardsfolder/l/linvala_the_preserver.txt b/forge-gui/res/cardsfolder/l/linvala_the_preserver.txt index f2147301c76..939e0c50737 100644 --- a/forge-gui/res/cardsfolder/l/linvala_the_preserver.txt +++ b/forge-gui/res/cardsfolder/l/linvala_the_preserver.txt @@ -5,10 +5,11 @@ PT:5/5 K:Flying T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | Execute$ TrigGainLife | CheckSVar$ X | SVarCompare$ GTZ | References$ X,Z | TriggerDescription$ When CARDNAME enters the battlefield, if an opponent has more life than you, you gain 5 life. SVar:TrigGainLife:DB$GainLife | Defined$ You | LifeAmount$ 5 -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | Execute$ TrigToken | IsPresent$ Creature.OppCtrl | PresentCompare$ GTY | TriggerDescription$ When CARDNAME enters the battlefield, if an opponent controls more creatures than you, create a 3/3 white Angel creature token with flying. +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | Execute$ TrigToken | CheckSVar$ W | SVarCompare$ GTY | TriggerDescription$ When CARDNAME enters the battlefield, if an opponent controls more creatures than you, create a 3/3 white Angel creature token with flying. SVar:TrigToken:DB$ Token | TokenAmount$ 1 | TokenName$ Angel | TokenTypes$ Creature,Angel | TokenOwner$ You | TokenColors$ White | TokenPower$ 3 | TokenToughness$ 3 | TokenKeywords$ Flying | TokenImage$ w 3 3 angel SVar:X:PlayerCountOpponents$HighestLifeTotal SVar:Y:Count$Valid Creature.YouCtrl SVar:Z:Count$YourLifeTotal +SVar:W:PlayerCountOpponents$HighestValid Creature.YouCtrl SVar:Picture:http://www.wizards.com/global/images/magic/general/linvala_the_preserver.jpg Oracle:Flying\nWhen Linvala, the Preserver enters the battlefield, if an opponent has more life than you, you gain 5 life.\nWhen Linvala enters the battlefield, if an opponent controls more creatures than you, create a 3/3 white Angel creature token with flying. diff --git a/forge-gui/res/cardsfolder/upcoming/cabal_evangel.txt b/forge-gui/res/cardsfolder/upcoming/cabal_evangel.txt new file mode 100644 index 00000000000..ec5315517a6 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/cabal_evangel.txt @@ -0,0 +1,5 @@ +Name:Cabal Evangel +ManaCost:1 B +Types:Creature Human Cleric +PT:2/2 +Oracle: diff --git a/forge-gui/res/cardsfolder/upcoming/cabal_paladin.txt b/forge-gui/res/cardsfolder/upcoming/cabal_paladin.txt new file mode 100644 index 00000000000..a07f072dcb6 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/cabal_paladin.txt @@ -0,0 +1,7 @@ +Name:Cabal Paladin +ManaCost:3 B +Types:Creature Human Knight +PT:4/2 +T:Mode$ SpellCast | ValidCard$ Card.Historic | ValidActivatingPlayer$ You | Execute$ TrigDamage | TriggerZones$ Battlefield | TriggerDescription$ Whenever you cast a historic spell, CARDNAME deals 2 damage to each opponent. (Artifacts, legendaries, and Sagas are historic.) +SVar:TrigDamage:DB$ DealDamage | Defined$ Player.Opponent | NumDmg$ 2 +Oracle:Whenever you cast a historic spell, Cabal Paladin deals 2 damage to each opponent. (Artifacts, legendaries, and Sagas are historic.) diff --git a/forge-gui/res/cardsfolder/upcoming/caligo_skin_witch.txt b/forge-gui/res/cardsfolder/upcoming/caligo_skin_witch.txt new file mode 100644 index 00000000000..741aae84ef4 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/caligo_skin_witch.txt @@ -0,0 +1,8 @@ +Name:Caligo Skin-Witch +ManaCost:1 B +Types:Creature Beast +PT:1/3 +K:Kicker:3 B +T:Mode$ ChangesZone | ValidCard$ Card.Self+kicked | Origin$ Any | Destination$ Battlefield | Execute$ TrigDiscard | TriggerDescription$ When CARDNAME enters the battlefield, if it was kicked, each opponent discards two cards. +SVar:TrigDiscard:DB$ Discard | Defined$ Player.Opponent | NumCards$ 2 | Mode$ TgtChoose +Oracle:Kicker {3}{B} (You may pay an additional {3}{B} as you cast this spell.)\nWhen Caligo Skin-Witch enters the battlefield, if it was kicked, each opponent discards two cards. diff --git a/forge-gui/res/cardsfolder/upcoming/raff_capashen_ships_mage.txt b/forge-gui/res/cardsfolder/upcoming/raff_capashen_ships_mage.txt new file mode 100644 index 00000000000..6c18f62a25b --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/raff_capashen_ships_mage.txt @@ -0,0 +1,10 @@ +Name:Raff Capashen, Ship's Mage +ManaCost:2 W U +Types:Legendary Creature Human Wizard +PT:3/3 +K:Flash +K:Flying +S:Mode$ Continuous | Affected$ Card.Historic+YouCtrl+nonToken | AddHiddenKeyword$ Flash | AffectedZone$ Exile,Graveyard,Hand,Library,Command | Description$ You may cast historic spells as though they had flash. (Artifacts, legendaries, and Sagas are historic.) +SVar:NonStackingEffect:True +Oracle:Flash\nFlying\nYou may cast historic spells as though they had flash. (Artifacts, legendaries, and Sagas are historic.) + diff --git a/forge-gui/res/cardsfolder/upcoming/tolarian_scholar.txt b/forge-gui/res/cardsfolder/upcoming/tolarian_scholar.txt new file mode 100644 index 00000000000..a8ec6aa8da4 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/tolarian_scholar.txt @@ -0,0 +1,5 @@ +Name:Tolarian Scholar +ManaCost:2 U +Types:Creature Human Wizard +PT:2/3 +Oracle: