From 3e3b14779e9ccface9b44c7693f8cd6bf104f58a Mon Sep 17 00:00:00 2001 From: Hythonia Date: Thu, 1 Apr 2021 11:26:34 +0200 Subject: [PATCH] STX: Golden Ratio, Strixhaven Stadium and more --- .../java/forge/game/card/CardFactoryUtil.java | 14 ++++++++++++++ .../java/forge/game/card/CounterEnumType.java | 4 ++++ .../upcoming/crushing_disappointment.txt | 6 ++++++ forge-gui/res/cardsfolder/upcoming/expel.txt | 5 +++++ .../res/cardsfolder/upcoming/golden_ratio.txt | 6 ++++++ .../res/cardsfolder/upcoming/kelpie_guide.txt | 7 +++++++ .../cardsfolder/upcoming/secret_rendezvous.txt | 6 ++++++ forge-gui/res/cardsfolder/upcoming/square_up.txt | 6 ++++++ .../cardsfolder/upcoming/strixhaven_stadium.txt | 15 +++++++++++++++ 9 files changed, 69 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/crushing_disappointment.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/expel.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/golden_ratio.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/kelpie_guide.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/secret_rendezvous.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/square_up.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/strixhaven_stadium.txt 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 3465e014479..bb9d73442d4 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -796,6 +796,20 @@ public class CardFactoryUtil { return doXMath(crdname.size(), m, c); } + if (l[0].startsWith("DifferentPower_")) { + final List powers = Lists.newArrayList(); + final String restriction = l[0].substring(15); + final String[] rest = restriction.split(","); + CardCollection list = CardLists.getValidCards(cc.getGame().getCardsInGame(), rest, cc, c, null); + for (final Card card : list) { + Integer pow = card.getNetPower(); + if (!powers.contains(pow)) { + powers.add(pow); + } + } + return doXMath(powers.size(), m, c); + } + if (l[0].startsWith("RememberedSize")) { return doXMath(c.getRememberedCount(), m, c); } diff --git a/forge-game/src/main/java/forge/game/card/CounterEnumType.java b/forge-game/src/main/java/forge/game/card/CounterEnumType.java index 3c5b8aca4d1..e5096c9c6c9 100644 --- a/forge-game/src/main/java/forge/game/card/CounterEnumType.java +++ b/forge-game/src/main/java/forge/game/card/CounterEnumType.java @@ -141,6 +141,8 @@ public enum CounterEnumType { HIT("HIT", 255, 245, 195), + HONE("HONE", 51, 227, 255), + HOOFPRINT("HOOF", 233, 189, 170), HOUR("HOUR", 198, 197, 210), @@ -231,6 +233,8 @@ public enum CounterEnumType { PHYLACTERY("PHYLA", 117, 219, 153), + POINT("POINT", 153, 255, 130), + POLYP("POLYP", 236, 185, 198), PREY("PREY", 240, 0, 0), diff --git a/forge-gui/res/cardsfolder/upcoming/crushing_disappointment.txt b/forge-gui/res/cardsfolder/upcoming/crushing_disappointment.txt new file mode 100644 index 00000000000..14fcfc2c32d --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/crushing_disappointment.txt @@ -0,0 +1,6 @@ +Name:Crushing Disappointment +ManaCost:3 B +Types:Instant +A:SP$ LoseLife | Cost$ 3 B | Defined$ Player | LifeAmount$ 2 | SubAbility$ DBDraw | SpellDescription$ Each player loses 2 life. +SVar:DBDraw:DB$ Draw | NumCards$ 2 | SpellDescription$ You draw two cards. +Oracle:Each player loses 2 life. You draw two cards. diff --git a/forge-gui/res/cardsfolder/upcoming/expel.txt b/forge-gui/res/cardsfolder/upcoming/expel.txt new file mode 100644 index 00000000000..bf39ba121b8 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/expel.txt @@ -0,0 +1,5 @@ +Name:Expel +ManaCost:2 W +Types:Instant +A:SP$ ChangeZone | Cost$ 2 W | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Creature.tapped | TgtPrompt$ Select target tapped creature | SpellDescription$ Exile target tapped creature. +Oracle:Exile target tapped creature. diff --git a/forge-gui/res/cardsfolder/upcoming/golden_ratio.txt b/forge-gui/res/cardsfolder/upcoming/golden_ratio.txt new file mode 100644 index 00000000000..43ea10a8a1d --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/golden_ratio.txt @@ -0,0 +1,6 @@ +Name:Golden Ratio +ManaCost:1 G U +Types:Sorcery +A:SP$ Draw | Cost$ 1 G U | NumCards$ X | SpellDescription$ Draw a card for each different power among creatures you control. +SVar:X:Count$DifferentPower_Creature.YouCtrl +Oracle:Draw a card for each different power among creatures you control. diff --git a/forge-gui/res/cardsfolder/upcoming/kelpie_guide.txt b/forge-gui/res/cardsfolder/upcoming/kelpie_guide.txt new file mode 100644 index 00000000000..bf89d1585c3 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/kelpie_guide.txt @@ -0,0 +1,7 @@ +Name:Kelpie Guide +ManaCost:2 U +Types:Creature Beast +PT:2/2 +A:AB$ Untap | Cost$ T | ValidTgts$ Permanent.Other+YouCtrl | TgtPrompt$ Select another target permanent you control | SpellDescription$ Untap another target permanent you control. +A:AB$ Tap | Cost$ T | ValidTgts$ Permanent | TgtPrompt$ Select target permanent | IsPresent$ Land.YouCtrl | PresentCompare$ GE8 | SpellDescription$ Tap target permanent. Activate only if you control eight or more lands. +Oracle:{T}: Untap another target permanent you control.\n{T}: Tap target permanent. Activate only if you control eight or more lands. diff --git a/forge-gui/res/cardsfolder/upcoming/secret_rendezvous.txt b/forge-gui/res/cardsfolder/upcoming/secret_rendezvous.txt new file mode 100644 index 00000000000..c91de628322 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/secret_rendezvous.txt @@ -0,0 +1,6 @@ +Name:Secret Rendezvous +ManaCost:1 W W +Types:Sorcery +A:SP$ Draw | Cost$ 1 W W | NumCards$ 3 | SubAbility$ DBDraw | SpellDescription$ You and target opponent each draw three cards. +SVar:DBDraw:DB$ Draw | NumCards$ 3 | ValidTgts$ Opponent | TgtPrompt$ Select target opponent +Oracle:You and target opponent each draw three cards. diff --git a/forge-gui/res/cardsfolder/upcoming/square_up.txt b/forge-gui/res/cardsfolder/upcoming/square_up.txt new file mode 100644 index 00000000000..759ac5128eb --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/square_up.txt @@ -0,0 +1,6 @@ +Name:Square Up +ManaCost:1 GU +Types:Instant +A:SP$ Animate | Cost$ 1 GU | ValidTgts$ Creature | TgtPrompt$ Select target creature | Power$ 4 | Toughness$ 4 | SpellDescription$ Target creature has base power and toughness 4/4 until end of turn. +AI:RemoveDeck:All +Oracle:Target creature has base power and toughness 4/4 until end of turn. diff --git a/forge-gui/res/cardsfolder/upcoming/strixhaven_stadium.txt b/forge-gui/res/cardsfolder/upcoming/strixhaven_stadium.txt new file mode 100644 index 00000000000..cc422b96a76 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/strixhaven_stadium.txt @@ -0,0 +1,15 @@ +Name:Strixhaven Stadium +ManaCost:3 +Types:Artifact +A:AB$ Mana | Cost$ T | Produced$ C | SubAbility$ DBPutCounter | SpellDescription$ Add {C}. Put a point counter on CARDNAME. +SVar:DBPutCounter:DB$ PutCounter | Defined$ Self | CounterType$ POINT | CounterNum$ 1 +T:Mode$ DamageDone | ValidSource$ Creature | ValidTarget$ You | CombatDamage$ True | Execute$ TrigRemove | TriggerZones$ Battlefield | TriggerDescription$ Whenever a creature deals combat damage to you, remove a point counter from CARDNAME. +SVar:TrigRemove:DB$ RemoveCounter | Defined$ Self | CounterType$ POINT | CounterNum$ 1 +T:Mode$ DamageDone | ValidSource$ Creature.YouCtrl | ValidTarget$ Opponent | CombatDamage$ True | Execute$ TrigPutCounter | TriggerDescription$ Whenever a creature you control deals combat damage to an opponent, put a point counter on CARDNAME. Then if it has ten or more point counters on it, remove them all and that player loses the game. +SVar:TrigPutCounter:DB$ PutCounter | Defined$ Self | CounterType$ POINT | CounterNum$ 1 | SubAbility$ DBBranch +SVar:DBBranch:DB$ Branch | BranchConditionSVar$ X | BranchConditionSVarCompare$ GE10 | TrueSubAbility$ DBRemoveAll +SVar:DBRemoveAll:DB$ RemoveCounter | Defined$ Self | CounterType$ POINT | CounterNum$ All | SubAbility$ DBLosesGame +SVar:DBLosesGame:DB$ LosesGame | Defined$ TriggeredTarget +SVar:X:Count$CardCounters.POINT +DeckHas:Ability$Counters +Oracle:{T}: Add {C}. Put a point counter on Strixhaven Stadium.\nWhenever a creature deals combat damage to you, remove a point counter from Strixhaven Stadium.\nWhenever a creature you control deals combat damage to an opponent, put a point counter on Strixhaven Stadium. Then if it has ten or more point counters on it, remove them all and that player loses the game.