From a4011d850016f524da04a91dbaabc5216dc4944f Mon Sep 17 00:00:00 2001 From: Simisays <67333662+Simisays@users.noreply.github.com> Date: Fri, 11 Aug 2023 20:28:51 +0200 Subject: [PATCH] WHO 6 cards (#3578) --- .../game/ability/effects/PlaneswalkEffect.java | 5 +++++ .../res/cardsfolder/upcoming/bad_wolf_bay.txt | 13 +++++++++++++ .../res/cardsfolder/upcoming/exterminate.txt | 8 ++++++++ forge-gui/res/cardsfolder/upcoming/tardis.txt | 15 +++++++++++++++ forge-gui/res/cardsfolder/upcoming/tardis_bay.txt | 9 +++++++++ .../res/cardsfolder/upcoming/the_doctors_tomb.txt | 9 +++++++++ .../upcoming/time_lord_regeneration.txt | 9 +++++++++ forge-gui/res/languages/de-DE.properties | 2 ++ forge-gui/res/languages/en-US.properties | 2 ++ forge-gui/res/languages/es-ES.properties | 2 ++ forge-gui/res/languages/fr-FR.properties | 2 ++ forge-gui/res/languages/it-IT.properties | 2 ++ forge-gui/res/languages/ja-JP.properties | 2 ++ forge-gui/res/languages/pt-BR.properties | 2 ++ forge-gui/res/languages/zh-CN.properties | 2 ++ forge-gui/res/lists/TypeLists.txt | 5 +++++ 16 files changed, 89 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/bad_wolf_bay.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/exterminate.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/tardis.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/tardis_bay.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/the_doctors_tomb.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/time_lord_regeneration.txt diff --git a/forge-game/src/main/java/forge/game/ability/effects/PlaneswalkEffect.java b/forge-game/src/main/java/forge/game/ability/effects/PlaneswalkEffect.java index 84d8827c0b4..ae92058d713 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/PlaneswalkEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/PlaneswalkEffect.java @@ -6,6 +6,7 @@ import forge.game.ability.SpellAbilityEffect; import forge.game.card.CardCollectionView; import forge.game.player.Player; import forge.game.spellability.SpellAbility; +import forge.util.Localizer; public class PlaneswalkEffect extends SpellAbilityEffect { @@ -16,6 +17,10 @@ public class PlaneswalkEffect extends SpellAbilityEffect { if (game.getActivePlanes() == null) { // not a planechase game, nothing happens return; } + if (sa.hasParam("Optional") && !sa.getActivatingPlayer().getController().confirmAction(sa, null, + Localizer.getInstance().getMessage("lblWouldYouLikeToPlaneswalk"), null)) { + return; + } if (!sa.hasParam("DontPlaneswalkAway")) { for (Player p : game.getPlayers()) { diff --git a/forge-gui/res/cardsfolder/upcoming/bad_wolf_bay.txt b/forge-gui/res/cardsfolder/upcoming/bad_wolf_bay.txt new file mode 100644 index 00000000000..d030c83c3f5 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/bad_wolf_bay.txt @@ -0,0 +1,13 @@ +Name:Bad Wolf Bay +ManaCost:no cost +Types:Plane Earth +T:Mode$ Phase | Phase$ BeginCombat | ValidPlayer$ You | TriggerZones$ Command | Execute$ TrigExile | TriggerDescription$ At the beginning of combat on your turn, exile up to one target creature. Return it to the battlefield under its owner's control at the beginning of the next end step. +SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | RememberChanged$ True | ValidTgts$ Creature | TargetMin$ 0 | TargetMax$ 1 | TgtPrompt$ Select up to one target creature | SubAbility$ DelTrig +SVar:DelTrig:DB$ DelayedTrigger | Mode$ Phase | Phase$ End of Turn | Execute$ TrigBounce | RememberObjects$ RememberedLKI | SubAbility$ DBCleanup | TriggerDescription$ Return it to the battlefield under its owner's control at the beginning of the next end step. +SVar:TrigBounce:DB$ ChangeZone | Origin$ Exile | Destination$ Battlefield | Defined$ DelayTriggerRememberedLKI +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +T:Mode$ ChaosEnsues | TriggerZones$ Command | Execute$ TrigEffect | TriggerDescription$ When chaos ensues, cards can't enter the battlefield from exile this turn. Then planeswalk. +SVar:TrigEffect:DB$ Effect | ReplacementEffects$ ETBPrevent | SubAbility$ DBPlaneswalk +SVar:DBPlaneswalk:DB$ Planeswalk +SVar:ETBPrevent:Event$ Moved | ActiveZones$ Battlefield | Origin$ Exile | Destination$ Battlefield | ValidLKI$ Card | Prevent$ True | Layer$ CantHappen | Description$ cards can't enter the battlefield from exile this turn. +Oracle:At the beginning of combat on your turn, exile up to one target creature. Return it to the battlefield under its owner's control at the beginning of the next end step.\nWhen chaos ensues, cards can't enter the battlefield from exile this turn. Then planeswalk. diff --git a/forge-gui/res/cardsfolder/upcoming/exterminate.txt b/forge-gui/res/cardsfolder/upcoming/exterminate.txt new file mode 100644 index 00000000000..a028b118817 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/exterminate.txt @@ -0,0 +1,8 @@ +Name:Exterminate! +ManaCost:2 B +Types:Sorcery +K:Replicate:tapXType<1/Dalek> +A:SP$ Destroy | ValidTgts$ Creature | SubAbility$ DBDrain | SpellDescription$ Destroy target creature. +SVar:DBDrain:DB$ LoseLife | Defined$ TargetedController | StackDescription$ SpellDescription | LifeAmount$ 3 | SpellDescription$ Its controller loses 3 life. +DeckNeeds:Type$Dalek +Oracle:Replicate—Tap an untapped Dalek you control. (When you cast this spell, copy it for each time you paid its replicate cost. You may choose new targets for the copies.)\nDestroy target creature. Its controller loses 3 life. diff --git a/forge-gui/res/cardsfolder/upcoming/tardis.txt b/forge-gui/res/cardsfolder/upcoming/tardis.txt new file mode 100644 index 00000000000..3a3c0ef7738 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/tardis.txt @@ -0,0 +1,15 @@ +Name:TARDIS +ManaCost:2 +Types:Artifact Vehicle +PT:2/4 +K:Flying +T:Mode$ Attacks | ValidCard$ Card.Self | IsPresent$ Card.Time Lord+YouCtrl | TriggerZones$ Battlefield | Execute$ TrigEffect | TriggerDescription$ Whenever CARDNAME attacks, if you control a Time Lord, the next spell you cast this turn has cascade and you may planeswalk. +SVar:TrigEffect:DB$ Effect | StaticAbilities$ GrantCascade | Triggers$ ExileEffect | SubAbility$ DBPlaneswalk +SVar:DBPlaneswalk:DB$ Planeswalk | Optional$ True +SVar:GrantCascade:Mode$ Continuous | EffectZone$ Command | Affected$ Card.YouCtrl | AffectedZone$ Stack | AddKeyword$ Cascade | Description$ The next spell you cast this turn has cascade and you may planeswalk. +SVar:ExileEffect:Mode$ SpellCast | EffectZone$ Command | ValidCard$ Card.YouCtrl | Execute$ RemoveEffect | Static$ True +SVar:RemoveEffect:DB$ ChangeZone | Origin$ Command | Destination$ Exile | Defined$ Self +K:Crew:2 +DeckNeeds:Type$Time Lord +SVar:HasAttackEffect:TRUE +Oracle:Flying\nWhenever TARDIS attacks, if you control a Time Lord, the next spell you cast this turn has cascade and you may planeswalk.\nCrew 2 (Tap any number of creatures you control with total power 2 or more: This Vehicle becomes an artifact creature until end of turn.) \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/tardis_bay.txt b/forge-gui/res/cardsfolder/upcoming/tardis_bay.txt new file mode 100644 index 00000000000..a20ec3e18bf --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/tardis_bay.txt @@ -0,0 +1,9 @@ +Name:TARDIS Bay +ManaCost:no cost +Types:Plane Gallifrey +S:Mode$ Continuous | Affected$ Card.YouCtrl+cmcGE2 | EffectZone$ Command | Condition$ PlayerTurn | AffectedZone$ Stack | AddKeyword$ Cascade | CheckSVar$ Y | SVarCompare$ EQ0 | Description$ The first spell you cast during each of your turns with mana value 2 or greater has cascade. (When you cast that spell, exile cards from the top of your library until you exile a nonland card that costs less. You may cast it without paying its mana cost. Put the exiled cards on the bottom in a random order.) +SVar:Y:Count$ThisTurnCast_Card.YouCtrl+cmcGE2 +T:Mode$ ChaosEnsues | TriggerZones$ Command | Execute$ TrigSteal | TriggerDescription$ When chaos ensues, gain control of target artifact. Then planeswalk. +SVar:TrigSteal:DB$ GainControl | ValidTgts$ Artifact | SubAbility$ DBPlaneswalk +SVar:DBPlaneswalk:DB$ Planeswalk +Oracle:The first spell you cast during each of your turns with mana value 2 or greater has cascade. (When you cast that spell, exile cards from the top of your library until you exile a nonland card that costs less. You may cast it without paying its mana cost. Put the exiled cards on the bottom in a random order.)\nWhen chaos ensues, gain control of target artifact. Then planeswalk. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/the_doctors_tomb.txt b/forge-gui/res/cardsfolder/upcoming/the_doctors_tomb.txt new file mode 100644 index 00000000000..ff1b9da46ce --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/the_doctors_tomb.txt @@ -0,0 +1,9 @@ +Name:The Doctor's Tomb +ManaCost:no cost +Types:Plane Trenzalore +R:Event$ Moved | ActiveZones$ Command | Destination$ Graveyard | ValidCard$ Card.Creature | ReplaceWith$ Exile | Description$ If a creature would die, instead exile it and that creature's controller loses 2 life. +SVar:Exile:DB$ ChangeZone | Hidden$ True | Origin$ All | Destination$ Exile | Defined$ ReplacedCard | SubAbility$ DBLoseLife +SVar:DBLoseLife:DB$ LoseLife | Defined$ ReplacedCardController | LifeAmount$ 2 +T:Mode$ ChaosEnsues | TriggerZones$ Command | Execute$ TrigRedistribute | TriggerDescription$ Whenever chaos ensues, redistribute any number of players' life totals. (Each of those players gets one life total back.) +SVar:TrigRedistribute:DB$ SetLife | PlayerChoices$ Player | ChoiceAmount$ Any | ChoicePrompt$ Choose any number of players | Redistribute$ True +Oracle:If a creature would die, instead exile it and that creature's controller loses 2 life.\nWhenever chaos ensues, redistribute any number of players' life totals. (Each of those players gets one life total back.) \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/time_lord_regeneration.txt b/forge-gui/res/cardsfolder/upcoming/time_lord_regeneration.txt new file mode 100644 index 00000000000..f42bb971f71 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/time_lord_regeneration.txt @@ -0,0 +1,9 @@ +Name:Time Lord Regeneration +ManaCost:U +Types:Instant +A:SP$ Animate | ValidTgts$ Time Lord.YouCtrl | TgtPrompt$ Select target Time Lord you control | Triggers$ DiesTrig | SpellDescription$ Until end of turn, target Time Lord you control gains "When this creature dies, reveal cards from the top of your library until you reveal a Time Lord creature card. Put that card onto the battlefield and the rest on the bottom of your library in a random order." +SVar:DiesTrig:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigReveal | TriggerDescription$ When this creature dies, reveal cards from the top of your library until you reveal a Time Lord creature card. Put that card onto the battlefield and the rest on the bottom of your library in a random order. +SVar:TrigReveal:DB$ DigUntil | Defined$ You | Valid$ Creature.Time Lord | FoundDestination$ Battlefield | RevealedDestination$ Library | RevealedLibraryPosition$ -1 | RevealRandomOrder$ True | StackDescription$ None +DeckNeeds:Type$Time Lord +DeckHints:Type$Changeling +Oracle:Until end of turn, target Time Lord you control gains "When this creature dies, reveal cards from the top of your library until you reveal a Time Lord creature card. Put that card onto the battlefield and the rest on the bottom of your library in a random order." diff --git a/forge-gui/res/languages/de-DE.properties b/forge-gui/res/languages/de-DE.properties index 1fae1ce3737..5ba24fc6a61 100644 --- a/forge-gui/res/languages/de-DE.properties +++ b/forge-gui/res/languages/de-DE.properties @@ -2038,6 +2038,8 @@ lblChooseAnyNumberToPhase=Wähle eine beliebige Anzahl zum Destabilisieren #PlayEffect.java lblChooseUpTo=Wähle bis zu lblSelectCardToPlay=Wähle Karte zum Spielen +#PlaneswalkEffect.java +lblWouldYouLikeToPlaneswalk=Would you like to planeswalk? #ProtectAllEffect.java lblChooseAProtection=Wähle eine Schutz #PumpEffect.java diff --git a/forge-gui/res/languages/en-US.properties b/forge-gui/res/languages/en-US.properties index eb2ab534259..a5337c04a5f 100644 --- a/forge-gui/res/languages/en-US.properties +++ b/forge-gui/res/languages/en-US.properties @@ -2043,6 +2043,8 @@ lblChooseAnyNumberToPhase=Choose any number to phase out #PlayEffect.java lblChooseUpTo=Choose up to lblSelectCardToPlay=Select a card to play +#PlaneswalkEffect.java +lblWouldYouLikeToPlaneswalk=Would you like to planeswalk? #ProtectAllEffect.java lblChooseAProtection=Choose a protection #PumpEffect.java diff --git a/forge-gui/res/languages/es-ES.properties b/forge-gui/res/languages/es-ES.properties index 01c0d0a9438..e4b031e9ddb 100644 --- a/forge-gui/res/languages/es-ES.properties +++ b/forge-gui/res/languages/es-ES.properties @@ -2039,6 +2039,8 @@ lblChooseAnyNumberToPhase=Choose any number to phase out #PlayEffect.java lblChooseUpTo=Elige hasta lblSelectCardToPlay=Selecciona una carta para jugar +#PlaneswalkEffect.java +lblWouldYouLikeToPlaneswalk=Would you like to planeswalk? #ProtectAllEffect.java lblChooseAProtection=Elige una protección #PumpEffect.java diff --git a/forge-gui/res/languages/fr-FR.properties b/forge-gui/res/languages/fr-FR.properties index f9905ddca4e..8e8a48a1501 100644 --- a/forge-gui/res/languages/fr-FR.properties +++ b/forge-gui/res/languages/fr-FR.properties @@ -2043,6 +2043,8 @@ lblChooseAnyNumberToPhase=Choisissez n''importe quel nombre à supprimer progres #PlayEffect.java lblChooseUpTo=Choisir jusqu''à lblSelectCardToPlay=Sélectionnez une carte à jouer +#PlaneswalkEffect.java +lblWouldYouLikeToPlaneswalk=Would you like to planeswalk? #ProtectAllEffect.java lblChooseAProtection=Choisir une protection #PumpEffect.java diff --git a/forge-gui/res/languages/it-IT.properties b/forge-gui/res/languages/it-IT.properties index ff6525b6c22..38d30b26132 100644 --- a/forge-gui/res/languages/it-IT.properties +++ b/forge-gui/res/languages/it-IT.properties @@ -2039,6 +2039,8 @@ lblChooseAnyNumberToPhase=Choose any number to phase out #PlayEffect.java lblChooseUpTo=Scegli fino a lblSelectCardToPlay=Seleziona una carta da giocare +#PlaneswalkEffect.java +lblWouldYouLikeToPlaneswalk=Would you like to planeswalk? #ProtectAllEffect.java lblChooseAProtection=Scegli una protezione #PumpEffect.java diff --git a/forge-gui/res/languages/ja-JP.properties b/forge-gui/res/languages/ja-JP.properties index 8ab2272a09d..1f351493c8f 100644 --- a/forge-gui/res/languages/ja-JP.properties +++ b/forge-gui/res/languages/ja-JP.properties @@ -2038,6 +2038,8 @@ lblChooseAnyNumberToPhase=Choose any number to phase out #PlayEffect.java lblChooseUpTo=選択、最大 lblSelectCardToPlay=プレイするカードを選ぶ +#PlaneswalkEffect.java +lblWouldYouLikeToPlaneswalk=Would you like to planeswalk? #ProtectAllEffect.java lblChooseAProtection=プロテクションを 1つ選択 #PumpEffect.java diff --git a/forge-gui/res/languages/pt-BR.properties b/forge-gui/res/languages/pt-BR.properties index b0b2cf5ab9f..5c715f369b4 100644 --- a/forge-gui/res/languages/pt-BR.properties +++ b/forge-gui/res/languages/pt-BR.properties @@ -2100,6 +2100,8 @@ lblChooseAnyNumberToPhase=Choose any number to phase out #PlayEffect.java lblChooseUpTo=Escolha até lblSelectCardToPlay=Escolha uma carta para jogar +#PlaneswalkEffect.java +lblWouldYouLikeToPlaneswalk=Would you like to planeswalk? #ProtectAllEffect.java lblChooseAProtection=Escolha a proteção #PumpEffect.java diff --git a/forge-gui/res/languages/zh-CN.properties b/forge-gui/res/languages/zh-CN.properties index 5dd013eb8e2..c603d13f0d0 100644 --- a/forge-gui/res/languages/zh-CN.properties +++ b/forge-gui/res/languages/zh-CN.properties @@ -2043,6 +2043,8 @@ lblChooseAnyNumberToPhase=选择任意要跃离的数量 #PlayEffect.java lblChooseUpTo=最多选择 lblSelectCardToPlay=选择要使用的牌 +#PlaneswalkEffect.java +lblWouldYouLikeToPlaneswalk=Would you like to planeswalk? #ProtectAllEffect.java lblChooseAProtection=选择一个保护 #PumpEffect.java diff --git a/forge-gui/res/lists/TypeLists.txt b/forge-gui/res/lists/TypeLists.txt index 72736b90135..81427c114b2 100644 --- a/forge-gui/res/lists/TypeLists.txt +++ b/forge-gui/res/lists/TypeLists.txt @@ -70,6 +70,7 @@ Crocodile:Crocodiles Cyberman:Cybermen Cyborg:Cyborgs Cyclops:Cyclopes +Dalek:Daleks Dauthi:Dauthis Demigod:Demigods Demon:Demons @@ -275,6 +276,7 @@ Thalakos:Thalakoses Thopter:Thopters Thrull:Thrulls Tiefling:Tieflings +Time Lord:Time Lords Treefolk:Treefolks Trilobite:Trilobites Triskelavite:Triskelavites @@ -427,12 +429,14 @@ Bolas's Meditation Realm Capenna Cridhe Dominaria +Earth Echoir Eldraine Equilor Ergamon Fabacin Fiora +Gallifrey Gargantikar Gobakhan Ikoria @@ -472,6 +476,7 @@ Tarkir The Abyss The Library Theros +Trenzalore Ulgrotha Valla Vryn