From 101cb0af7861586b3be56a5ba98a28517cae5599 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Wed, 27 Jan 2021 19:39:39 -0500 Subject: [PATCH 1/3] add Optional param to CountersPutEffect --- .../java/forge/game/ability/effects/CountersPutEffect.java | 5 +++++ forge-gui/res/languages/de-DE.properties | 1 + forge-gui/res/languages/en-US.properties | 1 + forge-gui/res/languages/es-ES.properties | 1 + forge-gui/res/languages/it-IT.properties | 1 + forge-gui/res/languages/zh-CN.properties | 1 + 6 files changed, 10 insertions(+) diff --git a/forge-game/src/main/java/forge/game/ability/effects/CountersPutEffect.java b/forge-game/src/main/java/forge/game/ability/effects/CountersPutEffect.java index b71b44629ef..d3ad905eaf2 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/CountersPutEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/CountersPutEffect.java @@ -188,6 +188,11 @@ public class CountersPutEffect extends SpellAbilityEffect { tgtObjects.addAll(getDefinedOrTargeted(sa, "Defined")); } + if (sa.hasParam("Optional") && !pc.confirmAction + (sa, null, Localizer.getInstance().getMessage("lblDoYouWantPutCounter"))) { + return; + } + int counterRemain = counterAmount; for (final GameObject obj : tgtObjects) { // check if the object is still in game or if it was moved diff --git a/forge-gui/res/languages/de-DE.properties b/forge-gui/res/languages/de-DE.properties index c1c940f792b..6a7f9f36aaa 100644 --- a/forge-gui/res/languages/de-DE.properties +++ b/forge-gui/res/languages/de-DE.properties @@ -1789,6 +1789,7 @@ lblTakeHowManyTargetCounters=Nimm wie viele {0}-Marken? #CountersProliferateEffect.java lblChooseProliferateTarget=Wähle eine beliebige Anzahl bleibender Karten und/oder Spieler für Wucherung #CountersPutEffect.java +lblDoYouWantPutCounter=Do you want to put the counter? lblChooseACreatureWithLeastToughness=Wähle eine Kreatur mit der geringsten Widerstandskraft lblSelectCounterTypeAddTo=Wähle Markentyp zum Hinzufügen lblHowManyCountersThis=Wie viele Marken möchtest du auf {0} legen? diff --git a/forge-gui/res/languages/en-US.properties b/forge-gui/res/languages/en-US.properties index e5c0deddbd9..55547849226 100644 --- a/forge-gui/res/languages/en-US.properties +++ b/forge-gui/res/languages/en-US.properties @@ -1789,6 +1789,7 @@ lblTakeHowManyTargetCounters=Take how many {0} counters? #CountersProliferateEffect.java lblChooseProliferateTarget=Choose any number of permanents and/or players for proliferate #CountersPutEffect.java +lblDoYouWantPutCounter=Do you want to put the counter? lblChooseACreatureWithLeastToughness=Choose a creature with the least toughness lblSelectCounterTypeAddTo=Select counter type to add to lblHowManyCountersThis=How many counters do you want to put on {0}? diff --git a/forge-gui/res/languages/es-ES.properties b/forge-gui/res/languages/es-ES.properties index 551d8d8a160..769e28dba5b 100644 --- a/forge-gui/res/languages/es-ES.properties +++ b/forge-gui/res/languages/es-ES.properties @@ -1789,6 +1789,7 @@ lblTakeHowManyTargetCounters=¿Coge cuántos contadores {0}? #CountersProliferateEffect.java lblChooseProliferateTarget=Elige cualquier número de permanentes y/o jugadores para proliferar #CountersPutEffect.java +lblDoYouWantPutCounter=¿Quieres poner el contador? lblChooseACreatureWithLeastToughness=Elige una criatura con la menor resistencia lblSelectCounterTypeAddTo=Selecciona el tipo de contador para añadirlo a lblHowManyCountersThis=¿Cuántos contadores quieres poner en {0}? diff --git a/forge-gui/res/languages/it-IT.properties b/forge-gui/res/languages/it-IT.properties index 5fd856076cf..9dba07178e2 100644 --- a/forge-gui/res/languages/it-IT.properties +++ b/forge-gui/res/languages/it-IT.properties @@ -1789,6 +1789,7 @@ lblTakeHowManyTargetCounters=Take how many {0} counters? #CountersProliferateEffect.java lblChooseProliferateTarget=Choose any number of permanents and/or players for proliferate #CountersPutEffect.java +lblDoYouWantPutCounter=Do you want to put the counter? lblChooseACreatureWithLeastToughness=Choose a creature with the least toughness lblSelectCounterTypeAddTo=Select counter type to add to lblHowManyCountersThis=Quanti contatori? {0} diff --git a/forge-gui/res/languages/zh-CN.properties b/forge-gui/res/languages/zh-CN.properties index fbcdd745e92..5bd3630b8b2 100644 --- a/forge-gui/res/languages/zh-CN.properties +++ b/forge-gui/res/languages/zh-CN.properties @@ -1789,6 +1789,7 @@ lblTakeHowManyTargetCounters=获得多少{0}指示物? #CountersProliferateEffect.java lblChooseProliferateTarget=选择任意数量的永久物和或牌手进行增殖 #CountersPutEffect.java +lblDoYouWantPutCounter=Do you want to put the counter? lblChooseACreatureWithLeastToughness=选择防御力最小的生物 lblSelectCounterTypeAddTo=选择指示物类型以添加到 lblHowManyCountersThis=你想要在{0}上放置多少个指示物? From f828febdaf7c2bcf1f9f7027ade8892e2bfa1cba Mon Sep 17 00:00:00 2001 From: Northmoc Date: Wed, 27 Jan 2021 19:41:47 -0500 Subject: [PATCH 2/3] add Voyage counters --- forge-game/src/main/java/forge/game/card/CounterEnumType.java | 2 ++ 1 file changed, 2 insertions(+) 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 dc6b0409aa7..ab2965e895a 100644 --- a/forge-game/src/main/java/forge/game/card/CounterEnumType.java +++ b/forge-game/src/main/java/forge/game/card/CounterEnumType.java @@ -307,6 +307,8 @@ public enum CounterEnumType { VORTEX("VORTX", 142, 200, 255), + VOYAGE("VOYAGE", 38, 150, 137), + WAGE("WAGE", 242, 190, 106), WINCH("WINCH", 208, 195, 203), From 6fa5c0b6af8fbbfe5171524d76f3a3126ba54cb7 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Thu, 28 Jan 2021 07:53:35 -0500 Subject: [PATCH 3/3] cosima_god_of_the_voyage_the_omenkeel.txt with new params --- .../cosima_god_of_the_voyage_the_omenkeel.txt | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/cosima_god_of_the_voyage_the_omenkeel.txt diff --git a/forge-gui/res/cardsfolder/upcoming/cosima_god_of_the_voyage_the_omenkeel.txt b/forge-gui/res/cardsfolder/upcoming/cosima_god_of_the_voyage_the_omenkeel.txt new file mode 100644 index 00000000000..18dfdcbe89f --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/cosima_god_of_the_voyage_the_omenkeel.txt @@ -0,0 +1,33 @@ +Name:Cosima, God of the Voyage +ManaCost:2 U +Types:Legendary Creature God +PT:2/4 +T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | Execute$ TrigExile | TriggerZones$ Battlefield | OptionalDecider$ You | TriggerDescription$ At the beginning of your upkeep, you may exile NICKNAME. If you do, it gains "Whenever a land enters the battlefield under your control, if Cosima is exiled, you may put a voyage counter on it. If you don't, return Cosima to the battlefield with X +1/+1 counters on it and draw X cards, where X is the number of voyage counters on it." +SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | RememberChanged$ True | SubAbility$ DBAnimate +SVar:DBAnimate:DB$ Animate | Defined$ Remembered | Triggers$ LandEnter | Permanent$ True | sVars$ TrigReturn,DBDraw,X | SubAbility$ DBCleanup +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:LandEnter:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | TriggerZones$ Exile | ValidCard$ Land.YouCtrl | Execute$ TrigAddCounter | TriggerDescription$ Whenever a land enters the battlefield under your control, if NICKNAME is exiled, you may put a voyage counter on it. If you don't, return NICKNAME to the battlefield with X +1/+1 counters on it and draw X cards, where X is the number of voyage counters on it. +SVar:TrigAddCounter:DB$ PutCounter | Optional$ True | Defined$ Self | CounterType$ VOYAGE | CounterNum$ 1 | RememberAmount$ True | SubAbility$ DBReturn +SVar:DBReturn:DB$ ChangeZone | ConditionCheckSVar$ Y | ConditionSVarCompare$ LT1 | Defined$ Self | Origin$ Exile | Destination$ Battlefield | RememberLKI$ True | WithCountersType$ P1P1 | WithCountersAmount$ X | References$ X,Y | SubAbility$ DBDraw +SVar:DBDraw:DB$ Draw | ConditionCheckSVar$ Y | ConditionSVarCompare$ LT1 | NumCards$ X | Defined$ You | References$ X,Y | SubAbility$ DBCleanup +SVar:X:RememberedLKI$CardCounters.VOYAGE +SVar:Y:Count$RememberedNumber +DeckHas:Ability$Counters +AlternateMode:Modal +Oracle:At the beginning of your upkeep, you may exile Cosima. If you do, it gains "Whenever a land enters the battlefield under your control, if Cosima is exiled, you may put a voyage counter on it. If you don't, return Cosima to the battlefield with X +1/+1 counters on it and draw X cards, where X is the number of voyage counters on it." + +ALTERNATE + +Name:The Omenkeel +ManaCost:1 U +Types:Legendary Artifact Vehicle +PT:3/3 +T:Mode$ DamageDone | ValidSource$ Vehicle.YouCtrl | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigExile | TriggerZones$ Battlefield | TriggerDescription$ Whenever a Vehicle you control deals combat damage to a player, that player exiles that many cards from the top of their library. You may play lands from among those cards for as long as they remain exiled. +SVar:TrigExile:DB$ Dig | Defined$ TriggeredTarget | DigNum$ X | ChangeNum$ All | DestinationZone$ Exile | References$ X | RememberChanged$ True | SubAbility$ DBMayPlayLand +SVar:X:TriggerCount$DamageAmount +SVar:DBMayPlayLand:DB$ Effect | StaticAbilities$ SMayPlayLand | RememberObjects$ Remembered | Duration$ Permanent | ForgetOnMoved$ Exile | SubAbility$ DBCleanup +SVar:SMayPlayLand:Mode$ Continuous | MayPlay$ True | Affected$ Land.IsRemembered | AffectedZone$ Exile | Secondary$ True | EffectZone$ Command | MayLookAt$ You | Duration$ Permanent | Description$ You may play lands from among those cards for as long as they remain exiled. +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +K:Crew:1 +DeckHints:Type$Vehicle +Oracle:Whenever a Vehicle you control deals combat damage to a player, that player exiles that many cards from the top of their library. You may play lands from among those cards for as long as they remain exiled. Crew 1