From a5492788a40f72ccfa95bab8792b6bd8be7d52b5 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Mon, 27 Dec 2021 22:24:11 -0500 Subject: [PATCH 1/4] the_space_family_goblinson.txt --- .../cardsfolder/upcoming/the_space_family_goblinson.txt | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/the_space_family_goblinson.txt diff --git a/forge-gui/res/cardsfolder/upcoming/the_space_family_goblinson.txt b/forge-gui/res/cardsfolder/upcoming/the_space_family_goblinson.txt new file mode 100644 index 00000000000..57d77972ba1 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/the_space_family_goblinson.txt @@ -0,0 +1,9 @@ +Name:The Space Family Goblinson +ManaCost:2 R G +Types:Legendary Creature Goblin Guest +PT:1/1 +S:Mode$ Continuous | Affected$ Card.Self | AddKeyword$ Trample | CheckSVar$ X | SVarCompare$ GE3 | Description$ CARDNAME has trample as you've rolled three or more dice this turn. +SVar:X:Count$YouRollThisTurn +T:Mode$ RolledDie | Execute$ TrigPutCounter | ValidPlayer$ You | TriggerZones$ Battlefield | TriggerDescription$ Whenever you roll a die, put a +1/+1 counter on CARDNAME. +SVar:TrigPutCounter:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1 +Oracle:The Space Family Goblinson has trample as long as you've rolled three or more dice this turn.\nWhenever you roll a die, put a +1/+1 counter on The Space Family Goblinson. From 7d7cd50e0698ee69595ae2c106885cd3c22b44bf Mon Sep 17 00:00:00 2001 From: Northmoc Date: Mon, 27 Dec 2021 22:31:26 -0500 Subject: [PATCH 2/4] add numRollsThisTurn to Player --- .../src/main/java/forge/game/player/Player.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/forge-game/src/main/java/forge/game/player/Player.java b/forge-game/src/main/java/forge/game/player/Player.java index 43acda58e82..ca80dfd3ff0 100644 --- a/forge-game/src/main/java/forge/game/player/Player.java +++ b/forge-game/src/main/java/forge/game/player/Player.java @@ -172,6 +172,7 @@ public class Player extends GameEntity implements Comparable { private String namedCard2 = ""; private int numDrawnThisTurn = 0; private int numDrawnThisDrawStep = 0; + private int numRollsThisTurn = 0; private int numDiscardedThisTurn = 0; private int numTokenCreatedThisTurn = 0; private int numForetoldThisTurn = 0; @@ -1464,6 +1465,18 @@ public class Player extends GameEntity implements Comparable { return numDrawnThisDrawStep; } + public final void resetNumRollsThisTurn() { + numRollsThisTurn = 0; + } + + public final int getNumRollsThisTurn() { + return numRollsThisTurn; + } + + public void roll() { + numRollsThisTurn++; + } + public final Card discard(final Card c, final SpellAbility sa, final boolean effect, CardZoneTable table) { return discard(c, sa, effect, table, null); } @@ -2444,6 +2457,7 @@ public class Player extends GameEntity implements Comparable { pz.resetCardsAddedThisTurn(); } resetNumDrawnThisTurn(); + resetNumRollsThisTurn(); resetNumDiscardedThisTurn(); resetNumForetoldThisTurn(); resetNumTokenCreatedThisTurn(); From 81d55782cc4a52257d22e5f85bfda92488645e0c Mon Sep 17 00:00:00 2001 From: Northmoc Date: Mon, 27 Dec 2021 22:32:22 -0500 Subject: [PATCH 3/4] add "YouRollThisTurn" to Count calculations --- forge-game/src/main/java/forge/game/ability/AbilityUtils.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/forge-game/src/main/java/forge/game/ability/AbilityUtils.java b/forge-game/src/main/java/forge/game/ability/AbilityUtils.java index 048868d61db..d46767f9b50 100644 --- a/forge-game/src/main/java/forge/game/ability/AbilityUtils.java +++ b/forge-game/src/main/java/forge/game/ability/AbilityUtils.java @@ -2266,6 +2266,10 @@ public class AbilityUtils { return doXMath(player.getNumDrawnThisTurn(), expr, c, ctb); } + if (sq[0].equals("YouRollThisTurn")) { + return doXMath(player.getNumRollsThisTurn(), expr, c, ctb); + } + if (sq[0].equals("YouSurveilThisTurn")) { return doXMath(player.getSurveilThisTurn(), expr, c, ctb); } From e92f581ff4e5dd1b6c235cc66d6413d7ae174d15 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Mon, 27 Dec 2021 22:33:19 -0500 Subject: [PATCH 4/4] add roll++ to RollDiceEffect, PlanarDice --- forge-game/src/main/java/forge/game/PlanarDice.java | 7 +++++-- .../java/forge/game/ability/effects/RollDiceEffect.java | 1 + 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/forge-game/src/main/java/forge/game/PlanarDice.java b/forge-game/src/main/java/forge/game/PlanarDice.java index 6f46a28f604..80380a2bd6a 100644 --- a/forge-game/src/main/java/forge/game/PlanarDice.java +++ b/forge-game/src/main/java/forge/game/PlanarDice.java @@ -6,6 +6,7 @@ import java.util.Map; import com.google.common.collect.ImmutableList; import forge.game.ability.AbilityKey; +import forge.game.event.GameEventRollDie; import forge.game.player.Player; import forge.game.trigger.TriggerType; @@ -18,10 +19,12 @@ public enum PlanarDice { Chaos, Blank; - public static PlanarDice roll(Player roller, PlanarDice riggedResult) - { + public static PlanarDice roll(Player roller, PlanarDice riggedResult) { PlanarDice res = Blank; int i = forge.util.MyRandom.getRandom().nextInt(6); + // Play the die roll sound + roller.getGame().fireEvent(new GameEventRollDie()); + roller.roll(); if (riggedResult != null) res = riggedResult; else if (i == 0) diff --git a/forge-game/src/main/java/forge/game/ability/effects/RollDiceEffect.java b/forge-game/src/main/java/forge/game/ability/effects/RollDiceEffect.java index 8bbfea68780..2931da09e9f 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/RollDiceEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/RollDiceEffect.java @@ -78,6 +78,7 @@ public class RollDiceEffect extends SpellAbilityEffect { int roll = MyRandom.getRandom().nextInt(sides) + 1; // Play the die roll sound player.getGame().fireEvent(new GameEventRollDie()); + player.roll(); rolls.add(roll); total += roll; }