From cd05a8ffe19c1b99e8d4eaa995bf4ebbb0d6b32c Mon Sep 17 00:00:00 2001 From: Lyu Zong-Hong Date: Tue, 13 Jul 2021 21:58:52 +0900 Subject: [PATCH 1/2] Trigger RollDie and RollDieOnce for planar die too --- .../src/main/java/forge/game/PlanarDice.java | 31 +++++++++++++------ 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/forge-game/src/main/java/forge/game/PlanarDice.java b/forge-game/src/main/java/forge/game/PlanarDice.java index d8705f3e889..6f46a28f604 100644 --- a/forge-game/src/main/java/forge/game/PlanarDice.java +++ b/forge-game/src/main/java/forge/game/PlanarDice.java @@ -1,5 +1,6 @@ package forge.game; +import java.util.Arrays; import java.util.Map; import com.google.common.collect.ImmutableList; @@ -8,7 +9,7 @@ import forge.game.ability.AbilityKey; import forge.game.player.Player; import forge.game.trigger.TriggerType; -/** +/** * Represents the planar dice for Planechase games. * */ @@ -16,7 +17,7 @@ public enum PlanarDice { Planeswalk, Chaos, Blank; - + public static PlanarDice roll(Player roller, PlanarDice riggedResult) { PlanarDice res = Blank; @@ -27,25 +28,37 @@ public enum PlanarDice { res = Planeswalk; else if (i == 1) res = Chaos; - - + + PlanarDice trigRes = res; - + if(roller.getGame().getStaticEffects().getGlobalRuleChange(GlobalRuleChange.blankIsChaos) && res == Blank) { trigRes = Chaos; } - final Map runParams = AbilityKey.newMap(); + Map runParams = AbilityKey.newMap(); runParams.put(AbilityKey.Player, roller); runParams.put(AbilityKey.Result, trigRes); roller.getGame().getTriggerHandler().runTrigger(TriggerType.PlanarDice, runParams,false); - - + + // Also run normal RolledDie and RolledDieOnce triggers + runParams = AbilityKey.newMap(); + runParams.put(AbilityKey.Player, roller); + runParams.put(AbilityKey.Sides, 6); + runParams.put(AbilityKey.Result, 0); + roller.getGame().getTriggerHandler().runTrigger(TriggerType.RolledDie, runParams, false); + + runParams = AbilityKey.newMap(); + runParams.put(AbilityKey.Player, roller); + runParams.put(AbilityKey.Sides, 6); + runParams.put(AbilityKey.Result, Arrays.asList(0)); + roller.getGame().getTriggerHandler().runTrigger(TriggerType.RolledDieOnce, runParams, false); + return res; } - + /** * Parses a string into an enum member. * @param string to parse From de20cec586b109f138da35a293060a8ccfeba780 Mon Sep 17 00:00:00 2001 From: Lyu Zong-Hong Date: Tue, 13 Jul 2021 22:07:33 +0900 Subject: [PATCH 2/2] =?UTF-8?q?Update=20Chicken=20=C3=A0=20la=20King=20so?= =?UTF-8?q?=20only=20trigger=20when=20rolling=20d6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/forge/game/trigger/TriggerRolledDie.java | 5 +++++ forge-gui/res/cardsfolder/c/chicken_a_la_king.txt | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerRolledDie.java b/forge-game/src/main/java/forge/game/trigger/TriggerRolledDie.java index e495f62c5bc..1adc634d3a2 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerRolledDie.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerRolledDie.java @@ -44,6 +44,11 @@ public class TriggerRolledDie extends Trigger { } return false; } + if (hasParam("ValidSides")) { + final int validSides = Integer.parseInt(getParam("ValidSides")); + final int sides = (int) runParams.get(AbilityKey.Sides); + if (sides == validSides) return true; + } return true; } diff --git a/forge-gui/res/cardsfolder/c/chicken_a_la_king.txt b/forge-gui/res/cardsfolder/c/chicken_a_la_king.txt index 53720fdfc14..0d12c573d40 100644 --- a/forge-gui/res/cardsfolder/c/chicken_a_la_king.txt +++ b/forge-gui/res/cardsfolder/c/chicken_a_la_king.txt @@ -2,7 +2,7 @@ Name:Chicken à la King ManaCost:1 U U Types:Creature Bird Noble PT:2/2 -T:Mode$ RolledDie | TriggerZones$ Battlefield | Execute$ TrigCounters | ValidResult$ 6 | TriggerDescription$ Whenever a 6 is rolled on a six-sided die, put a +1/+1 counter on each Bird. +T:Mode$ RolledDie | TriggerZones$ Battlefield | Execute$ TrigCounters | ValidResult$ 6 | ValidSides$ 6 | TriggerDescription$ Whenever a 6 is rolled on a six-sided die, put a +1/+1 counter on each Bird. SVar:TrigCounters:DB$ PutCounterAll | ValidCards$ Bird | CounterType$ P1P1 | CounterNum$ 1 A:AB$ RollDice | Cost$ tapXType<1/Bird> | AILogic$ AtOppEOT | SpellDescription$ Roll a six-sided die. DeckHas:Ability$Counters