From aeb279a6f8b1671accbc29b087953e10469f121c Mon Sep 17 00:00:00 2001 From: Drecon84 Date: Wed, 26 Mar 2025 08:27:16 +0100 Subject: [PATCH] WASD Movement Take 2 (#7251) * Enter now still brings up the menu, controller might need it to type. WASD typing still works. --- .../src/forge/adventure/scene/UIScene.java | 27 +++++++++------- .../cardsfolder/upcoming/arbor_adherent.txt | 14 ++++---- .../upcoming/become_the_avalanche.txt | 14 ++++---- .../upcoming/bewildering_blizzard.txt | 10 +++--- .../upcoming/broodcaller_scourge.txt | 16 +++++----- .../upcoming/canopy_gargantuan.txt | 20 ++++++------ .../upcoming/clarion_conqueror.txt | 12 +++---- .../cardsfolder/upcoming/hollowmurk_siege.txt | 32 +++++++++---------- .../cardsfolder/upcoming/jaws_of_defeat.txt | 16 +++++----- .../cardsfolder/upcoming/kishla_trawlers.txt | 18 +++++------ .../cardsfolder/upcoming/narsets_rebuke.txt | 10 +++--- .../cardsfolder/upcoming/new_way_forward.txt | 26 +++++++-------- .../upcoming/protector_of_the_wastes.txt | 20 ++++++------ .../upcoming/rampart_architect.txt | 20 ++++++------ .../upcoming/rebellious_strike.txt | 10 +++--- .../upcoming/reunion_of_the_house.txt | 12 +++---- .../cardsfolder/upcoming/sunpearl_kirin.txt | 22 ++++++------- .../cardsfolder/upcoming/thunder_of_unity.txt | 22 ++++++------- .../upcoming/thundermane_dragon.txt | 18 +++++------ .../cardsfolder/upcoming/tip_the_scales.txt | 18 +++++------ 20 files changed, 180 insertions(+), 177 deletions(-) diff --git a/forge-gui-mobile/src/forge/adventure/scene/UIScene.java b/forge-gui-mobile/src/forge/adventure/scene/UIScene.java index d34ccd6819a..931a2e0fe04 100644 --- a/forge-gui-mobile/src/forge/adventure/scene/UIScene.java +++ b/forge-gui-mobile/src/forge/adventure/scene/UIScene.java @@ -28,7 +28,7 @@ import java.time.LocalTime; */ public class UIScene extends Scene { protected UIActor ui; - + private boolean textboxOpen; public static class Selectable { public T actor; @@ -192,6 +192,7 @@ public class UIScene extends Scene { } public UIScene(String uiFilePath) { + textboxOpen = false; uiFile = uiFilePath; stage = new Stage(new ScalingViewport(Scaling.stretch, getIntendedWidth(), getIntendedHeight())) { @Override @@ -223,7 +224,7 @@ public class UIScene extends Scene { } public void removeDialog() { - + textboxOpen = false; if (!dialogs.isEmpty()) { dialogs.get(dialogs.size - 1).remove(); dialogs.removeIndex(dialogs.size - 1); @@ -243,6 +244,7 @@ public class UIScene extends Scene { } public Dialog createGenericDialog(String title, String label, String stringYes, String stringNo, Runnable runnableYes, Runnable runnableNo, boolean cancelButton, String stringCancel) { Dialog dialog = new Dialog(title == null ? "" : title, Controls.getSkin()); + textboxOpen = true; if (label != null) dialog.text(label); TextraButton yes = Controls.newTextButton(stringYes, runnableYes); @@ -359,7 +361,6 @@ public class UIScene extends Scene { } } - if (KeyBinding.Back.isPressed(keycode) && selection != null) { selection.onDeSelect(); stage.setKeyboardFocus(null); @@ -378,15 +379,17 @@ public class UIScene extends Scene { scroll.setScrollY(scroll.getScrollY() + 20); } } - if (KeyBinding.Down.isPressed(keycode)) - selectNextDown(); - if (KeyBinding.Up.isPressed(keycode)) - selectNextUp(); - if (!(stage.getKeyboardFocus() instanceof Selector) && !(stage.getKeyboardFocus() instanceof TextField) && !(stage.getKeyboardFocus() instanceof Slider)) { - if (KeyBinding.Right.isPressed(keycode)) - selectNextRight(); - if (KeyBinding.Left.isPressed(keycode)) - selectNextLeft(); + if(!textboxOpen){ + if (KeyBinding.Down.isPressed(keycode)) + selectNextDown(); + if (KeyBinding.Up.isPressed(keycode)) + selectNextUp(); + if (!(stage.getKeyboardFocus() instanceof Selector) && !(stage.getKeyboardFocus() instanceof TextField) && !(stage.getKeyboardFocus() instanceof Slider)) { + if (KeyBinding.Right.isPressed(keycode)) + selectNextRight(); + if (KeyBinding.Left.isPressed(keycode)) + selectNextLeft(); + } } if (!dialogShowing()) { Button pressedButton = ui.buttonPressed(keycode); diff --git a/forge-gui/res/cardsfolder/upcoming/arbor_adherent.txt b/forge-gui/res/cardsfolder/upcoming/arbor_adherent.txt index 2ae7788e49a..bfc40ed74b5 100644 --- a/forge-gui/res/cardsfolder/upcoming/arbor_adherent.txt +++ b/forge-gui/res/cardsfolder/upcoming/arbor_adherent.txt @@ -1,8 +1,8 @@ -Name:Arbor Adherent -ManaCost:3 G -Types:Creature Dog Druid -PT:2/4 -A:AB$ Mana | Cost$ T | Produced$ Any | SpellDescription$ Add one mana of any color. -A:AB$ Mana | Cost$ T | Produced$ Any | Amount$ X | SpellDescription$ Add X mana of any one color, where X is the greatest toughness among other creatures you control. -SVar:X:Count$Valid Creature.YouCtrl+Other$GreatestToughness +Name:Arbor Adherent +ManaCost:3 G +Types:Creature Dog Druid +PT:2/4 +A:AB$ Mana | Cost$ T | Produced$ Any | SpellDescription$ Add one mana of any color. +A:AB$ Mana | Cost$ T | Produced$ Any | Amount$ X | SpellDescription$ Add X mana of any one color, where X is the greatest toughness among other creatures you control. +SVar:X:Count$Valid Creature.YouCtrl+Other$GreatestToughness Oracle:{T}: Add one mana of any color.\n{T}: Add X mana of any one color, where X is the greatest toughness among other creatures you control. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/become_the_avalanche.txt b/forge-gui/res/cardsfolder/upcoming/become_the_avalanche.txt index b354d0f8b26..71ea9eb25b3 100644 --- a/forge-gui/res/cardsfolder/upcoming/become_the_avalanche.txt +++ b/forge-gui/res/cardsfolder/upcoming/become_the_avalanche.txt @@ -1,8 +1,8 @@ -Name:Become the Avalanche -ManaCost:4 G G -Types:Sorcery -A:SP$ Draw | NumCards$ X | SubAbility$ DBPumpAll | SpellDescription$ Draw a card for each creature you control with power 4 or greater. Then creatures you control get +X/+X until end of turn, where X is the number of cards in your hand. -SVar:DBPumpAll:DB$ PumpAll | ValidCards$ Creature.YouCtrl | NumAtt$ +Y | NumDef$ +Y -SVar:X:Count$Valid Creature.powerGE4+YouCtrl -SVar:Y:Count$InYourHand +Name:Become the Avalanche +ManaCost:4 G G +Types:Sorcery +A:SP$ Draw | NumCards$ X | SubAbility$ DBPumpAll | SpellDescription$ Draw a card for each creature you control with power 4 or greater. Then creatures you control get +X/+X until end of turn, where X is the number of cards in your hand. +SVar:DBPumpAll:DB$ PumpAll | ValidCards$ Creature.YouCtrl | NumAtt$ +Y | NumDef$ +Y +SVar:X:Count$Valid Creature.powerGE4+YouCtrl +SVar:Y:Count$InYourHand Oracle:Draw a card for each creature you control with power 4 or greater. Then creatures you control get +X/+X until end of turn, where X is the number of cards in your hand. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/bewildering_blizzard.txt b/forge-gui/res/cardsfolder/upcoming/bewildering_blizzard.txt index 6a4cf3fb343..0f1620f6edf 100644 --- a/forge-gui/res/cardsfolder/upcoming/bewildering_blizzard.txt +++ b/forge-gui/res/cardsfolder/upcoming/bewildering_blizzard.txt @@ -1,6 +1,6 @@ -Name:Bewildering Blizzard -ManaCost:4 U U -Types:Instant -A:SP$ Draw | NumCards$ 3 | SubAbility$ DBPumpAll | SpellDescription$ Draw three cards. Creatures your opponents control get -3/-0 until end of turn. -SVar:DBPumpAll:DB$ PumpAll | NumAtt$ -3 | ValidCards$ Creature.OppCtrl | IsCurse$ True +Name:Bewildering Blizzard +ManaCost:4 U U +Types:Instant +A:SP$ Draw | NumCards$ 3 | SubAbility$ DBPumpAll | SpellDescription$ Draw three cards. Creatures your opponents control get -3/-0 until end of turn. +SVar:DBPumpAll:DB$ PumpAll | NumAtt$ -3 | ValidCards$ Creature.OppCtrl | IsCurse$ True Oracle:Draw three cards. Creatures your opponents control get -3/-0 until end of turn. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/broodcaller_scourge.txt b/forge-gui/res/cardsfolder/upcoming/broodcaller_scourge.txt index ce5c1bf3ff9..262ed6c9334 100644 --- a/forge-gui/res/cardsfolder/upcoming/broodcaller_scourge.txt +++ b/forge-gui/res/cardsfolder/upcoming/broodcaller_scourge.txt @@ -1,9 +1,9 @@ -Name:Broodcaller Scourge -ManaCost:5 G G -Types:Creature Dragon -PT:5/7 -K:Flying -T:Mode$ DamageDoneOnce | CombatDamage$ True | ValidSource$ Creature.Dragon+YouCtrl | ValidTarget$ Player | TriggerZones$ Battlefield | Execute$ TrigChangeZone | TriggerDescription$ Whenever one or more Dragons you control deal combat damage to a player, you may put a permanent card with mana value less than or equal to that damage from your hand onto the battlefield. -SVar:TrigChangeZone:DB$ ChangeZone | Origin$ Hand | Destination$ Battlefield | ChoiceZone$ Hand | Amount$ 1 | ChangeType$ Permanent.cmcLEX+YouCtrl | ChangeNum$ 1 | AILogic$ BestCard -SVar:X:TriggerCount$DamageAmount +Name:Broodcaller Scourge +ManaCost:5 G G +Types:Creature Dragon +PT:5/7 +K:Flying +T:Mode$ DamageDoneOnce | CombatDamage$ True | ValidSource$ Creature.Dragon+YouCtrl | ValidTarget$ Player | TriggerZones$ Battlefield | Execute$ TrigChangeZone | TriggerDescription$ Whenever one or more Dragons you control deal combat damage to a player, you may put a permanent card with mana value less than or equal to that damage from your hand onto the battlefield. +SVar:TrigChangeZone:DB$ ChangeZone | Origin$ Hand | Destination$ Battlefield | ChoiceZone$ Hand | Amount$ 1 | ChangeType$ Permanent.cmcLEX+YouCtrl | ChangeNum$ 1 | AILogic$ BestCard +SVar:X:TriggerCount$DamageAmount Oracle:Flying\nWhenever one or more Dragons you control deal combat damage to a player, you may put a permanent card with mana value less than or equal to that damage from your hand onto the battlefield. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/canopy_gargantuan.txt b/forge-gui/res/cardsfolder/upcoming/canopy_gargantuan.txt index 5808f32cfb2..d62a9182d1b 100644 --- a/forge-gui/res/cardsfolder/upcoming/canopy_gargantuan.txt +++ b/forge-gui/res/cardsfolder/upcoming/canopy_gargantuan.txt @@ -1,11 +1,11 @@ -Name:Canopy Gargantuan -ManaCost:5 G G -Types:Creature Dragon -PT:7/7 -K:Flying -K:Ward:2 -T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigPutCounter | TriggerDescription$ At the beginning of your upkeep, put a number of +1/+1 counters on each other creature you control equal to that creature's toughness. -SVar:TrigPutCounter:DB$ PutCounter | Defined$ Valid Creature.YouCtrl+Other | CounterType$ P1P1 | CounterNumPerDefined$ X -SVar:X:Count$CardToughness -DeckHas:Ability$Counters +Name:Canopy Gargantuan +ManaCost:5 G G +Types:Creature Dragon +PT:7/7 +K:Flying +K:Ward:2 +T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigPutCounter | TriggerDescription$ At the beginning of your upkeep, put a number of +1/+1 counters on each other creature you control equal to that creature's toughness. +SVar:TrigPutCounter:DB$ PutCounter | Defined$ Valid Creature.YouCtrl+Other | CounterType$ P1P1 | CounterNumPerDefined$ X +SVar:X:Count$CardToughness +DeckHas:Ability$Counters Oracle:Flying, ward {2}\nAt the beginning of your upkeep, put a number of +1/+1 counters on each other creature you control equal to that creature's toughness. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/clarion_conqueror.txt b/forge-gui/res/cardsfolder/upcoming/clarion_conqueror.txt index cfed33467c6..f5be09f4c69 100644 --- a/forge-gui/res/cardsfolder/upcoming/clarion_conqueror.txt +++ b/forge-gui/res/cardsfolder/upcoming/clarion_conqueror.txt @@ -1,7 +1,7 @@ -Name:Clarion Conqueror -ManaCost:2 W -Types:Creature Dragon -PT:3/3 -K:Flying -S:Mode$ CantBeActivated | AffectedZone$ Battlefield | ValidCard$ Artifact,Creature,Planeswalker | ValidSA$ Activated | Description$ Activated abilities of artifacts, creatures, and planeswalkers can't be activated. +Name:Clarion Conqueror +ManaCost:2 W +Types:Creature Dragon +PT:3/3 +K:Flying +S:Mode$ CantBeActivated | AffectedZone$ Battlefield | ValidCard$ Artifact,Creature,Planeswalker | ValidSA$ Activated | Description$ Activated abilities of artifacts, creatures, and planeswalkers can't be activated. Oracle:Flying\nActivated abilities of artifacts, creatures, and planeswalkers can't be activated. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/hollowmurk_siege.txt b/forge-gui/res/cardsfolder/upcoming/hollowmurk_siege.txt index 33aa9a0c8f5..6b039bdcb1b 100644 --- a/forge-gui/res/cardsfolder/upcoming/hollowmurk_siege.txt +++ b/forge-gui/res/cardsfolder/upcoming/hollowmurk_siege.txt @@ -1,17 +1,17 @@ -Name:Hollowmurk Siege -ManaCost:B G -Types:Enchantment -K:ETBReplacement:Other:SiegeChoice -SVar:SiegeChoice:DB$ GenericChoice | Choices$ Sultai,Abzan | Defined$ You | SetChosenMode$ True | ShowChoice$ ExceptSelf | SpellDescription$ As this enchantment enters, choose Sultai or Abzan. -SVar:Sultai:DB$ Pump | SpellDescription$ Sultai -SVar:Abzan:DB$ Pump | SpellDescription$ Abzan -S:Mode$ Continuous | Affected$ Card.Self+ChosenModeSultai | AddTrigger$ SultaiTrigger | Description$ • Sultai — Whenever a counter is put on a creature you control, draw a card. This ability triggers only once each turn. -SVar:SultaiTrigger:Mode$ CounterAdded | ValidCard$ Creature.YouCtrl | TriggerZones$ Battlefield | Execute$ DBDraw | ActivationLimit$ 1 | TriggerDescription$ Whenever a counter is put on a creature you control, draw a card. This ability triggers only once each turn. -SVar:DBDraw:DB$ Draw -S:Mode$ Continuous | Affected$ Card.Self+ChosenModeAbzan | AddTrigger$ AbzanTrigger | Description$ • Abzan — Whenever you attack, put a +1/+1 counter on target attacking creature. It gains menace until end of turn. -SVar:AbzanTrigger:Mode$ AttackersDeclared | AttackingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigCounterAttacker | TriggerDescription$ Whenever you attack, put a +1/+1 counter on target attacking creature. It gains menace until end of turn. -SVar:TrigCounterAttacker:DB$ PutCounter | ValidTgts$ Creature.attacking | TgtPrompt$ Select target attacking creature | CounterType$ P1P1 | CounterNum$ 1 | SubAbility$ DBPump -SVar:DBPump:DB$ Pump | Defined$ Targeted | KW$ Menace -DeckHas:Ability$Counters -DeckHints:Ability$Counters +Name:Hollowmurk Siege +ManaCost:B G +Types:Enchantment +K:ETBReplacement:Other:SiegeChoice +SVar:SiegeChoice:DB$ GenericChoice | Choices$ Sultai,Abzan | Defined$ You | SetChosenMode$ True | ShowChoice$ ExceptSelf | SpellDescription$ As this enchantment enters, choose Sultai or Abzan. +SVar:Sultai:DB$ Pump | SpellDescription$ Sultai +SVar:Abzan:DB$ Pump | SpellDescription$ Abzan +S:Mode$ Continuous | Affected$ Card.Self+ChosenModeSultai | AddTrigger$ SultaiTrigger | Description$ • Sultai — Whenever a counter is put on a creature you control, draw a card. This ability triggers only once each turn. +SVar:SultaiTrigger:Mode$ CounterAdded | ValidCard$ Creature.YouCtrl | TriggerZones$ Battlefield | Execute$ DBDraw | ActivationLimit$ 1 | TriggerDescription$ Whenever a counter is put on a creature you control, draw a card. This ability triggers only once each turn. +SVar:DBDraw:DB$ Draw +S:Mode$ Continuous | Affected$ Card.Self+ChosenModeAbzan | AddTrigger$ AbzanTrigger | Description$ • Abzan — Whenever you attack, put a +1/+1 counter on target attacking creature. It gains menace until end of turn. +SVar:AbzanTrigger:Mode$ AttackersDeclared | AttackingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigCounterAttacker | TriggerDescription$ Whenever you attack, put a +1/+1 counter on target attacking creature. It gains menace until end of turn. +SVar:TrigCounterAttacker:DB$ PutCounter | ValidTgts$ Creature.attacking | TgtPrompt$ Select target attacking creature | CounterType$ P1P1 | CounterNum$ 1 | SubAbility$ DBPump +SVar:DBPump:DB$ Pump | Defined$ Targeted | KW$ Menace +DeckHas:Ability$Counters +DeckHints:Ability$Counters Oracle:As this enchantment enters, choose Sultai or Abzan.\n• Sultai — Whenever a counter is put on a creature you control, draw a card. This ability triggers only once each turn.\n• Abzan — Whenever you attack, put a +1/+1 counter on target attacking creature. It gains menace until end of turn. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/jaws_of_defeat.txt b/forge-gui/res/cardsfolder/upcoming/jaws_of_defeat.txt index fa2481139aa..1c935f5d490 100644 --- a/forge-gui/res/cardsfolder/upcoming/jaws_of_defeat.txt +++ b/forge-gui/res/cardsfolder/upcoming/jaws_of_defeat.txt @@ -1,9 +1,9 @@ -Name:Jaws of Defeat -ManaCost:3 B -Types:Enchantment -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigLoseLife | TriggerDescription$ Whenever a creature you control enters, target opponent loses life equal to the difference between that creature's power and its toughness. -SVar:TrigLoseLife:DB$ LoseLife | LifeAmount$ X | ValidTgts$ Opponent | TgtPrompt$ Select target opponent -SVar:X:SVar$Y/Abs -SVar:Y:TriggeredCard$CardPower/Minus.Z -SVar:Z:TriggeredCard$CardToughness +Name:Jaws of Defeat +ManaCost:3 B +Types:Enchantment +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigLoseLife | TriggerDescription$ Whenever a creature you control enters, target opponent loses life equal to the difference between that creature's power and its toughness. +SVar:TrigLoseLife:DB$ LoseLife | LifeAmount$ X | ValidTgts$ Opponent | TgtPrompt$ Select target opponent +SVar:X:SVar$Y/Abs +SVar:Y:TriggeredCard$CardPower/Minus.Z +SVar:Z:TriggeredCard$CardToughness Oracle:Whenever a creature you control enters, target opponent loses life equal to the difference between that creature's power and its toughness. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/kishla_trawlers.txt b/forge-gui/res/cardsfolder/upcoming/kishla_trawlers.txt index 8d3f2c3b104..1a3653f50c6 100644 --- a/forge-gui/res/cardsfolder/upcoming/kishla_trawlers.txt +++ b/forge-gui/res/cardsfolder/upcoming/kishla_trawlers.txt @@ -1,9 +1,9 @@ -Name:Kishla Trawlers -ManaCost:2 U -Types:Creature Human Citizen -PT:3/2 -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigImmediateTrig | TriggerDescription$ When this creature enters, you may exile a creature card from your graveyard. When you do, return target instant or sorcery card from your graveyard to your hand. -SVar:TrigImmediateTrig:AB$ ImmediateTrigger | Cost$ ExileFromGrave<1/Creature/creature card> | Execute$ TrigReturn | SpellDescription$ When you do, return target instant or sorcery card from your graveyard to your hand. -SVar:TrigReturn:DB$ ChangeZone | Origin$ Graveyard | Destination$ Hand | ValidTgts$ Instant.YouOwn,Sorcery.YouOwn | TgtPrompt$ Select target instant or sorcery to return from your graveyard -DeckHas:Ability$Graveyard -Oracle:When this creature enters, you may exile a creature card from your graveyard. When you do, return target instant or sorcery card from your graveyard to your hand. +Name:Kishla Trawlers +ManaCost:2 U +Types:Creature Human Citizen +PT:3/2 +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigImmediateTrig | TriggerDescription$ When this creature enters, you may exile a creature card from your graveyard. When you do, return target instant or sorcery card from your graveyard to your hand. +SVar:TrigImmediateTrig:AB$ ImmediateTrigger | Cost$ ExileFromGrave<1/Creature/creature card> | Execute$ TrigReturn | SpellDescription$ When you do, return target instant or sorcery card from your graveyard to your hand. +SVar:TrigReturn:DB$ ChangeZone | Origin$ Graveyard | Destination$ Hand | ValidTgts$ Instant.YouOwn,Sorcery.YouOwn | TgtPrompt$ Select target instant or sorcery to return from your graveyard +DeckHas:Ability$Graveyard +Oracle:When this creature enters, you may exile a creature card from your graveyard. When you do, return target instant or sorcery card from your graveyard to your hand. diff --git a/forge-gui/res/cardsfolder/upcoming/narsets_rebuke.txt b/forge-gui/res/cardsfolder/upcoming/narsets_rebuke.txt index f65beb8864d..dd0a7843179 100644 --- a/forge-gui/res/cardsfolder/upcoming/narsets_rebuke.txt +++ b/forge-gui/res/cardsfolder/upcoming/narsets_rebuke.txt @@ -1,6 +1,6 @@ -Name:Narset's Rebuke -ManaCost:4 R -Types:Instant -A:SP$ DealDamage | NumDmg$ 5 | ValidTgts$ Creature | TgtPrompt$ Select target creature | ReplaceDyingDefined$ Targeted | SubAbility$ DBMana | SpellDescription$ CARDNAME deals 5 damage to target creature. Add {U}{R}{W}. If that creature would die this turn, exile it instead. -SVar:DBMana:DB$ Mana | Produced$ U R W | Defined$ You +Name:Narset's Rebuke +ManaCost:4 R +Types:Instant +A:SP$ DealDamage | NumDmg$ 5 | ValidTgts$ Creature | TgtPrompt$ Select target creature | ReplaceDyingDefined$ Targeted | SubAbility$ DBMana | SpellDescription$ CARDNAME deals 5 damage to target creature. Add {U}{R}{W}. If that creature would die this turn, exile it instead. +SVar:DBMana:DB$ Mana | Produced$ U R W | Defined$ You Oracle:Narset's Rebuke deals 5 damage to target creature. Add {U}{R}{W}. If that creature would die this turn, exile it instead. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/new_way_forward.txt b/forge-gui/res/cardsfolder/upcoming/new_way_forward.txt index 53bbdd48f39..61c446be6d2 100644 --- a/forge-gui/res/cardsfolder/upcoming/new_way_forward.txt +++ b/forge-gui/res/cardsfolder/upcoming/new_way_forward.txt @@ -1,13 +1,13 @@ -Name:New Way Forward -ManaCost:2 U R W -Types:Instant -A:SP$ ChooseSource | Choices$ Card,Emblem | AILogic$ NeedsPrevention | SubAbility$ DBEffect | SpellDescription$ The next time a source of your choice would deal damage to you this turn, prevent that damage. When damage is prevented this way, CARDNAME deals that much damage to that source's controller and you draw that many cards. -SVar:DBEffect:DB$ Effect | ReplacementEffects$ RPreventNextFromSource | ConditionDefined$ ChosenCard | ConditionPresent$ Card,Emblem -SVar:RPreventNextFromSource:Event$ DamageDone | ValidSource$ Card.ChosenCardStrict,Emblem.ChosenCard | ValidTarget$ You | ReplaceWith$ DBImmediateTrigger | PreventionEffect$ True | Description$ The next time a source of your choice would deal damage to you this turn, prevent that damage. When damage is prevented this way, CARDNAME deals that much damage to that source's controller and you draw that many cards. -SVar:DBImmediateTrigger:DB$ ImmediateTrigger | Execute$ TrigDamage | RememberSVarAmount$ X | SubAbility$ ExileEffect | TriggerDescription$ When damage is prevented this way, CARDNAME deals that much damage to that source's controller and you draw that many cards. -SVar:TrigDamage:DB$ DealDamage | Defined$ ChosenCardController | NumDmg$ Y | SubAbility$ DBDraw -SVar:DBDraw:DB$ Draw | NumCards$ Y -SVar:ExileEffect:DB$ ChangeZone | Defined$ Self | Origin$ Command | Destination$ Exile -SVar:X:ReplaceCount$DamageAmount -SVar:Y:Count$TriggerRememberAmount -Oracle:The next time a source of your choice would deal damage to you this turn, prevent that damage. When damage is prevented this way, New Way Forward deals that much damage to that source's controller and you draw that many cards. +Name:New Way Forward +ManaCost:2 U R W +Types:Instant +A:SP$ ChooseSource | Choices$ Card,Emblem | AILogic$ NeedsPrevention | SubAbility$ DBEffect | SpellDescription$ The next time a source of your choice would deal damage to you this turn, prevent that damage. When damage is prevented this way, CARDNAME deals that much damage to that source's controller and you draw that many cards. +SVar:DBEffect:DB$ Effect | ReplacementEffects$ RPreventNextFromSource | ConditionDefined$ ChosenCard | ConditionPresent$ Card,Emblem +SVar:RPreventNextFromSource:Event$ DamageDone | ValidSource$ Card.ChosenCardStrict,Emblem.ChosenCard | ValidTarget$ You | ReplaceWith$ DBImmediateTrigger | PreventionEffect$ True | Description$ The next time a source of your choice would deal damage to you this turn, prevent that damage. When damage is prevented this way, CARDNAME deals that much damage to that source's controller and you draw that many cards. +SVar:DBImmediateTrigger:DB$ ImmediateTrigger | Execute$ TrigDamage | RememberSVarAmount$ X | SubAbility$ ExileEffect | TriggerDescription$ When damage is prevented this way, CARDNAME deals that much damage to that source's controller and you draw that many cards. +SVar:TrigDamage:DB$ DealDamage | Defined$ ChosenCardController | NumDmg$ Y | SubAbility$ DBDraw +SVar:DBDraw:DB$ Draw | NumCards$ Y +SVar:ExileEffect:DB$ ChangeZone | Defined$ Self | Origin$ Command | Destination$ Exile +SVar:X:ReplaceCount$DamageAmount +SVar:Y:Count$TriggerRememberAmount +Oracle:The next time a source of your choice would deal damage to you this turn, prevent that damage. When damage is prevented this way, New Way Forward deals that much damage to that source's controller and you draw that many cards. diff --git a/forge-gui/res/cardsfolder/upcoming/protector_of_the_wastes.txt b/forge-gui/res/cardsfolder/upcoming/protector_of_the_wastes.txt index a7d63d50132..28ef7b1cf93 100644 --- a/forge-gui/res/cardsfolder/upcoming/protector_of_the_wastes.txt +++ b/forge-gui/res/cardsfolder/upcoming/protector_of_the_wastes.txt @@ -1,11 +1,11 @@ -Name:Protector of the Wastes -ManaCost:4 W W -Types:Creature Dragon -PT:5/5 -K:Flying -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigExile | TriggerDescription$ When this creature enters or becomes monstrous, exile up to two target artifacts and/or enchantments controlled by different players. -T:Mode$ BecomeMonstrous | Secondary$ True | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigExile | TriggerDescription$ When this creature enters or becomes monstrous, exile up to two target artifacts and/or enchantments controlled by different players. -SVar:TrigExile:DB$ ChangeZone | ValidTgts$ Artifact,Enchantment | TgtPrompt$ Select target artifact or enchantment | TargetMin$ 0 | TargetMax$ 2 | TargetsWithDifferentControllers$ True | Origin$ Battlefield | Destination$ Exile -K:Monstrosity:3:4 W -DeckHas:Ability$Counters +Name:Protector of the Wastes +ManaCost:4 W W +Types:Creature Dragon +PT:5/5 +K:Flying +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigExile | TriggerDescription$ When this creature enters or becomes monstrous, exile up to two target artifacts and/or enchantments controlled by different players. +T:Mode$ BecomeMonstrous | Secondary$ True | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigExile | TriggerDescription$ When this creature enters or becomes monstrous, exile up to two target artifacts and/or enchantments controlled by different players. +SVar:TrigExile:DB$ ChangeZone | ValidTgts$ Artifact,Enchantment | TgtPrompt$ Select target artifact or enchantment | TargetMin$ 0 | TargetMax$ 2 | TargetsWithDifferentControllers$ True | Origin$ Battlefield | Destination$ Exile +K:Monstrosity:3:4 W +DeckHas:Ability$Counters Oracle:Flying\nWhen this creature enters or becomes monstrous, exile up to two target artifacts and/or enchantments controlled by different players.\n{4}{W}: Monstrosity 3. (If this creature isn't monstrous, put four +1/+1 counters on it and it becomes monstrous.) \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/rampart_architect.txt b/forge-gui/res/cardsfolder/upcoming/rampart_architect.txt index 3173118eaac..7c262ca4c78 100644 --- a/forge-gui/res/cardsfolder/upcoming/rampart_architect.txt +++ b/forge-gui/res/cardsfolder/upcoming/rampart_architect.txt @@ -1,11 +1,11 @@ -Name:Rampart Architect -ManaCost:3 G -Types:Creature Elephant Advisor -PT:3/4 -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigToken | TriggerDescription$ Whenever this creature enters or attacks, create a 1/3 white Wall creature token with defender. -T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigToken | Secondary$ True | TriggerDescription$ Whenever this creature enters or attacks, create a 1/3 white Wall creature token with defender. -SVar:TrigToken:DB$ Token | TokenAmount$ 1 | TokenScript$ w_1_3_wall_defender | TokenOwner$ You -T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature.YouCtrl+withDefender | TriggerZones$ Battlefield | Execute$ TrigChangeZone | OptionalDecider$ You | TriggerDescription$ Whenever a creature you control with defender dies, you may search your library for a basic land card, put that card onto the battlefield tapped, then shuffle. -SVar:TrigChangeZone:DB$ ChangeZone | Origin$ Library | Destination$ Battlefield | Tapped$ True | ChangeType$ Land.Basic | ChangeNum$ 1 | ShuffleNonMandatory$ True -DeckHas:Ability$Token +Name:Rampart Architect +ManaCost:3 G +Types:Creature Elephant Advisor +PT:3/4 +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigToken | TriggerDescription$ Whenever this creature enters or attacks, create a 1/3 white Wall creature token with defender. +T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigToken | Secondary$ True | TriggerDescription$ Whenever this creature enters or attacks, create a 1/3 white Wall creature token with defender. +SVar:TrigToken:DB$ Token | TokenAmount$ 1 | TokenScript$ w_1_3_wall_defender | TokenOwner$ You +T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature.YouCtrl+withDefender | TriggerZones$ Battlefield | Execute$ TrigChangeZone | OptionalDecider$ You | TriggerDescription$ Whenever a creature you control with defender dies, you may search your library for a basic land card, put that card onto the battlefield tapped, then shuffle. +SVar:TrigChangeZone:DB$ ChangeZone | Origin$ Library | Destination$ Battlefield | Tapped$ True | ChangeType$ Land.Basic | ChangeNum$ 1 | ShuffleNonMandatory$ True +DeckHas:Ability$Token Oracle:Whenever this creature enters or attacks, create a 1/3 white Wall creature token with defender.\nWhenever a creature you control with defender dies, you may search your library for a basic land card, put that card onto the battlefield tapped, then shuffle. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/rebellious_strike.txt b/forge-gui/res/cardsfolder/upcoming/rebellious_strike.txt index 58692ddf937..2c99c3bf3d5 100644 --- a/forge-gui/res/cardsfolder/upcoming/rebellious_strike.txt +++ b/forge-gui/res/cardsfolder/upcoming/rebellious_strike.txt @@ -1,6 +1,6 @@ -Name:Rebellious Strike -ManaCost:1 W -Types:Instant -A:SP$ Pump | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ +3 | SubAbility$ DBDraw | SpellDescription$ Target creature gets +3/+0 until end of turn. Draw a card. -SVar:DBDraw:DB$ Draw +Name:Rebellious Strike +ManaCost:1 W +Types:Instant +A:SP$ Pump | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ +3 | SubAbility$ DBDraw | SpellDescription$ Target creature gets +3/+0 until end of turn. Draw a card. +SVar:DBDraw:DB$ Draw Oracle:Target creature gets +3/+0 until end of turn.\nDraw a card. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/reunion_of_the_house.txt b/forge-gui/res/cardsfolder/upcoming/reunion_of_the_house.txt index 31e7fab649f..242ddd0a6d9 100644 --- a/forge-gui/res/cardsfolder/upcoming/reunion_of_the_house.txt +++ b/forge-gui/res/cardsfolder/upcoming/reunion_of_the_house.txt @@ -1,7 +1,7 @@ -Name:Reunion of the House -ManaCost:5 W W -Types:Sorcery -A:SP$ ChangeZone | Origin$ Graveyard | Destination$ Battlefield | TargetMin$ 0 | TargetMax$ X | ValidTgts$ Creature.YouOwn | MaxTotalTargetPower$ 10 | TgtPrompt$ Select any number of creature cards with total power 10 or less | SubAbility$ DBExile | SpellDescription$ Return any number of target creature cards with total power 10 or less from your graveyard to the battlefield. Exile CARDNAME. -SVar:DBExile:DB$ ChangeZone | Origin$ Stack | Destination$ Exile -SVar:X:Count$ValidGraveyard Creature.YouOwn +Name:Reunion of the House +ManaCost:5 W W +Types:Sorcery +A:SP$ ChangeZone | Origin$ Graveyard | Destination$ Battlefield | TargetMin$ 0 | TargetMax$ X | ValidTgts$ Creature.YouOwn | MaxTotalTargetPower$ 10 | TgtPrompt$ Select any number of creature cards with total power 10 or less | SubAbility$ DBExile | SpellDescription$ Return any number of target creature cards with total power 10 or less from your graveyard to the battlefield. Exile CARDNAME. +SVar:DBExile:DB$ ChangeZone | Origin$ Stack | Destination$ Exile +SVar:X:Count$ValidGraveyard Creature.YouOwn Oracle:Return any number of target creature cards with total power 10 or less from your graveyard to the battlefield. Exile Reunion of the House. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/sunpearl_kirin.txt b/forge-gui/res/cardsfolder/upcoming/sunpearl_kirin.txt index 25a886043b2..9edc4c5f22a 100644 --- a/forge-gui/res/cardsfolder/upcoming/sunpearl_kirin.txt +++ b/forge-gui/res/cardsfolder/upcoming/sunpearl_kirin.txt @@ -1,11 +1,11 @@ -Name:Sunpearl Kirin -ManaCost:1 W -Types:Creature Kirin -PT:2/1 -K:Flash -K:Flying -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChange | TriggerDescription$ When this creature enters, return up to one other target nonland permanent you control to its owner's hand. If it was a token, draw a card. -SVar:TrigChange:DB$ ChangeZone | Origin$ Battlefield | Destination$ Hand | TargetMin$ 0 | TargetMax$ 1 | ValidTgts$ Permanent.nonLand+YouCtrl+Other | RememberChanged$ True | SubAbility$ DBDraw | TgtPrompt$ Select up to one other target nonland permanent you control -SVar:DBDraw:DB$ Draw | ConditionDefined$ Remembered | ConditionPresent$ Card.token | SubAbility$ DBCleanup -SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True -Oracle:Flash\nFlying\nWhen this creature enters, return up to one other target nonland permanent you control to its owner's hand. If it was a token, draw a card. +Name:Sunpearl Kirin +ManaCost:1 W +Types:Creature Kirin +PT:2/1 +K:Flash +K:Flying +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChange | TriggerDescription$ When this creature enters, return up to one other target nonland permanent you control to its owner's hand. If it was a token, draw a card. +SVar:TrigChange:DB$ ChangeZone | Origin$ Battlefield | Destination$ Hand | TargetMin$ 0 | TargetMax$ 1 | ValidTgts$ Permanent.nonLand+YouCtrl+Other | RememberChanged$ True | SubAbility$ DBDraw | TgtPrompt$ Select up to one other target nonland permanent you control +SVar:DBDraw:DB$ Draw | ConditionDefined$ Remembered | ConditionPresent$ Card.token | SubAbility$ DBCleanup +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +Oracle:Flash\nFlying\nWhen this creature enters, return up to one other target nonland permanent you control to its owner's hand. If it was a token, draw a card. diff --git a/forge-gui/res/cardsfolder/upcoming/thunder_of_unity.txt b/forge-gui/res/cardsfolder/upcoming/thunder_of_unity.txt index 0a3b8619cfc..8c970d24b68 100644 --- a/forge-gui/res/cardsfolder/upcoming/thunder_of_unity.txt +++ b/forge-gui/res/cardsfolder/upcoming/thunder_of_unity.txt @@ -1,11 +1,11 @@ -Name:Thunder of Unity -ManaCost:R W B -Types:Enchantment Saga -K:Chapter:3:DBDraw,DBEffect,DBEffect -SVar:DBDraw:DB$ Draw | NumCards$ 2 | SubAbility$ DBLoseLife | SpellDescription$ You draw two cards and you lose 2 life. -SVar:DBLoseLife:DB$ LoseLife | LifeAmount$ 2 -SVar:DBEffect:DB$ Effect | Triggers$ CreatureETB | SpellDescription$ Whenever a creature you control enters this turn, each opponent loses 1 life and you gain 1 life. -SVar:CreatureETB:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.YouCtrl | Execute$ TrigLoseLife | TriggerDescription$ Whenever a creature you control enters this turn, each opponent loses 1 life and you gain 1 life. -SVar:TrigLoseLife:DB$ LoseLife | Defined$ Player.Opponent | LifeAmount$ 1 | SubAbility$ DBGainLife -SVar:DBGainLife:DB$ GainLife | Defined$ You | LifeAmount$ 1 -Oracle:(As this Saga enters and after your draw step, add a lore counter. Sacrifice after III.)\nI — You draw two cards and you lose 2 life.\nII,III — Whenever a creature you control enters this turn, each opponent loses 1 life and you gain 1 life. +Name:Thunder of Unity +ManaCost:R W B +Types:Enchantment Saga +K:Chapter:3:DBDraw,DBEffect,DBEffect +SVar:DBDraw:DB$ Draw | NumCards$ 2 | SubAbility$ DBLoseLife | SpellDescription$ You draw two cards and you lose 2 life. +SVar:DBLoseLife:DB$ LoseLife | LifeAmount$ 2 +SVar:DBEffect:DB$ Effect | Triggers$ CreatureETB | SpellDescription$ Whenever a creature you control enters this turn, each opponent loses 1 life and you gain 1 life. +SVar:CreatureETB:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.YouCtrl | Execute$ TrigLoseLife | TriggerDescription$ Whenever a creature you control enters this turn, each opponent loses 1 life and you gain 1 life. +SVar:TrigLoseLife:DB$ LoseLife | Defined$ Player.Opponent | LifeAmount$ 1 | SubAbility$ DBGainLife +SVar:DBGainLife:DB$ GainLife | Defined$ You | LifeAmount$ 1 +Oracle:(As this Saga enters and after your draw step, add a lore counter. Sacrifice after III.)\nI — You draw two cards and you lose 2 life.\nII,III — Whenever a creature you control enters this turn, each opponent loses 1 life and you gain 1 life. diff --git a/forge-gui/res/cardsfolder/upcoming/thundermane_dragon.txt b/forge-gui/res/cardsfolder/upcoming/thundermane_dragon.txt index 4db1d72132b..dcaa2494419 100644 --- a/forge-gui/res/cardsfolder/upcoming/thundermane_dragon.txt +++ b/forge-gui/res/cardsfolder/upcoming/thundermane_dragon.txt @@ -1,10 +1,10 @@ -Name:Thundermane Dragon -ManaCost:3 R -Types:Creature Dragon -PT:4/4 -K:Flying -S:Mode$ Continuous | Affected$ Card.TopLibrary+YouOwn | AffectedZone$ Library | MayLookAt$ You | Description$ You may look at the top card of your library any time. -S:Mode$ Continuous | Affected$ Card.TopLibrary+YouOwn+nonLand | ValidAfterStack$ Spell.Creature+powerGE4 | AffectedZone$ Library | MayPlay$ True | Description$ You may cast creature spells with power 4 or greater from the top of your library. If you cast a creature spell this way, it gains haste until end of turn. -T:Mode$ SpellCast | ValidCard$ Creature | ValidSA$ Spell.MayPlaySource | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigAnimate | Secondary$ True | Static$ True | TriggerDescription$ If you cast a creature spell this way, it gains haste until end of turn. -SVar:TrigAnimate:DB$ Animate | Defined$ TriggeredCardLKICopy | Keywords$ Haste +Name:Thundermane Dragon +ManaCost:3 R +Types:Creature Dragon +PT:4/4 +K:Flying +S:Mode$ Continuous | Affected$ Card.TopLibrary+YouOwn | AffectedZone$ Library | MayLookAt$ You | Description$ You may look at the top card of your library any time. +S:Mode$ Continuous | Affected$ Card.TopLibrary+YouOwn+nonLand | ValidAfterStack$ Spell.Creature+powerGE4 | AffectedZone$ Library | MayPlay$ True | Description$ You may cast creature spells with power 4 or greater from the top of your library. If you cast a creature spell this way, it gains haste until end of turn. +T:Mode$ SpellCast | ValidCard$ Creature | ValidSA$ Spell.MayPlaySource | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigAnimate | Secondary$ True | Static$ True | TriggerDescription$ If you cast a creature spell this way, it gains haste until end of turn. +SVar:TrigAnimate:DB$ Animate | Defined$ TriggeredCardLKICopy | Keywords$ Haste Oracle:Flying\nYou may look at the top card of your library any time.\nYou may cast creature spells with power 4 or greater from the top of your library. If you cast a creature spell this way, it gains haste until end of turn. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/tip_the_scales.txt b/forge-gui/res/cardsfolder/upcoming/tip_the_scales.txt index e4569f2923a..eb389111b48 100644 --- a/forge-gui/res/cardsfolder/upcoming/tip_the_scales.txt +++ b/forge-gui/res/cardsfolder/upcoming/tip_the_scales.txt @@ -1,9 +1,9 @@ -Name:Tip the Scales -ManaCost:2 B -Types:Sorcery -A:SP$ Sacrifice | SacValid$ Creature | RememberSacrificed$ True | SubAbility$ DBImmediateTrigger | SpellDescription$ Sacrifice a creature. -SVar:DBImmediateTrigger:DB$ ImmediateTrigger | Execute$ TrigPumpAll | ConditionDefined$ RememberedLKI | ConditionPresent$ Creature | RememberObjects$ RememberedLKI | SubAbility$ DBCleanup | SpellDescription$ When you do, all creatures get -X/-X until end of turn, where X is the sacrificed creature's toughness. -SVar:TrigPumpAll:DB$ PumpAll | ValidCards$ Creature | NumAtt$ -X | NumDef$ -X -SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True -SVar:X:TriggerRemembered$CardToughness -Oracle:Sacrifice a creature. When you do, all creatures get -X/-X until end of turn, where X is the sacrificed creature's toughness. +Name:Tip the Scales +ManaCost:2 B +Types:Sorcery +A:SP$ Sacrifice | SacValid$ Creature | RememberSacrificed$ True | SubAbility$ DBImmediateTrigger | SpellDescription$ Sacrifice a creature. +SVar:DBImmediateTrigger:DB$ ImmediateTrigger | Execute$ TrigPumpAll | ConditionDefined$ RememberedLKI | ConditionPresent$ Creature | RememberObjects$ RememberedLKI | SubAbility$ DBCleanup | SpellDescription$ When you do, all creatures get -X/-X until end of turn, where X is the sacrificed creature's toughness. +SVar:TrigPumpAll:DB$ PumpAll | ValidCards$ Creature | NumAtt$ -X | NumDef$ -X +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:X:TriggerRemembered$CardToughness +Oracle:Sacrifice a creature. When you do, all creatures get -X/-X until end of turn, where X is the sacrificed creature's toughness.