From 1665667a2b2aa187bbba4fedba22836361d9ef4f Mon Sep 17 00:00:00 2001 From: Northmoc Date: Sun, 8 Nov 2020 21:19:09 -0500 Subject: [PATCH 1/2] bell_borca_spectral_sergeant.txt --- .../upcoming/bell_borca_spectral_sergeant.txt | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/bell_borca_spectral_sergeant.txt diff --git a/forge-gui/res/cardsfolder/upcoming/bell_borca_spectral_sergeant.txt b/forge-gui/res/cardsfolder/upcoming/bell_borca_spectral_sergeant.txt new file mode 100644 index 00000000000..0ef1f7333e4 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/bell_borca_spectral_sergeant.txt @@ -0,0 +1,18 @@ +Name:Bell Borca, Spectral Sergeant +ManaCost:2 B R +Types:Legendary Creature Spirit Soldier +PT:*/5 +Text:Note the converted mana cost of each card as it's put into exile. +T:Mode$ ChangesZone | Destination$ Exile | ValidCard$ Card | TriggerZones$ Battlefield | Execute$ TrigNoteNum | Static$ True +SVar:TrigNoteNum:DB$ StoreSVar | SVar$ ExiledCMC | Type$ Triggered | Expression$ CardManaCost | ConditionCheckSVar$ X | ConditionSVarCompare$ GTExiledCMC | References$ X,ExiledCMC +SVar:ExiledCMC:Number$0 +SVar:X:TriggeredCard$CardManaCost +T:Mode$ TurnBegin | Execute$ TrigReset | Static$ True +SVar:TrigReset:DB$ StoreSVar | SVar$ ExiledCMC | Type$ Number | Expression$ 0 +S:Mode$ Continuous | EffectZone$ Battlefield | Affected$ Card.Self | SetPower$ ExiledCMC | References$ ExiledCMC | Description$ CARDNAME's power is equal to the greatest number noted for it this turn. +T:Mode$ Phase | Phase$ Upkeep | TriggerZones$ Battlefield | ValidPlayer$ You | Execute$ PseudoDraw | TriggerDescription$ At the beginning of your upkeep, exile the top card of your library. You may play that card this turn. +SVar:PseudoDraw:DB$ Dig | Defined$ You | DigNum$ 1 | ChangeNum$ All | DestinationZone$ Exile | RememberChanged$ True | SubAbility$ DBEffect +SVar:DBEffect:DB$ Effect | RememberObjects$ RememberedCard | StaticAbilities$ MayPlay | SubAbility$ DBCleanup | ExileOnMoved$ Exile +SVar:MayPlay:Mode$ Continuous | MayPlay$ True | EffectZone$ Command | Affected$ Card.IsRemembered | AffectedZone$ Exile | Description$ You may play the exiled card this turn. +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +Oracle:Note the converted mana cost of each card as it's put into exile.\Bell Borca, Spectral Sergeant's power is equal to the greatest number noted for it this turn.\nAt the beginning of your upkeep, exile the top card of your library. You may play that card this turn. From 68e4f866423ac2ca56504d68b4893d6d6f2cc860 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Sun, 8 Nov 2020 21:19:43 -0500 Subject: [PATCH 2/2] Add Triggered Type to StoreSVarEffect.java --- .../java/forge/game/ability/effects/StoreSVarEffect.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/forge-game/src/main/java/forge/game/ability/effects/StoreSVarEffect.java b/forge-game/src/main/java/forge/game/ability/effects/StoreSVarEffect.java index e2130936495..5ad090e0488 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/StoreSVarEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/StoreSVarEffect.java @@ -1,10 +1,13 @@ package forge.game.ability.effects; +import forge.game.ability.AbilityKey; import forge.game.ability.AbilityUtils; import forge.game.ability.SpellAbilityEffect; import forge.game.card.Card; import forge.game.card.CardFactoryUtil; import forge.game.spellability.SpellAbility; +import forge.game.trigger.Trigger; +import forge.game.trigger.TriggerHandler; import forge.util.TextUtil; public class StoreSVarEffect extends SpellAbilityEffect { @@ -50,9 +53,11 @@ public class StoreSVarEffect extends SpellAbilityEffect { expr = TextUtil.fastReplace(expr, exprMathVar, Integer.toString(exprMath)); } value = CardFactoryUtil.xCount(source, "SVar$" + expr); - } - else if (type.equals("Targeted")) { + } else if (type.equals("Targeted")) { value = CardFactoryUtil.handlePaid(sa.findTargetedCards(), expr, source); + } else if (type.equals("Triggered")) { + Card trigCard = (Card)sa.getTriggeringObject(AbilityKey.Card); + value = CardFactoryUtil.xCount(trigCard, expr); } else if (type.equals("Calculate")) { value = AbilityUtils.calculateAmount(source, expr, sa); }