Merge branch 'unf_sfg' into 'master'

UNF: The Space Family Goblinson and support

See merge request core-developers/forge!5988
This commit is contained in:
Michael Kamensky
2021-12-29 17:27:56 +00:00
5 changed files with 33 additions and 2 deletions

View File

@@ -6,6 +6,7 @@ import java.util.Map;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import forge.game.ability.AbilityKey; import forge.game.ability.AbilityKey;
import forge.game.event.GameEventRollDie;
import forge.game.player.Player; import forge.game.player.Player;
import forge.game.trigger.TriggerType; import forge.game.trigger.TriggerType;
@@ -18,10 +19,12 @@ public enum PlanarDice {
Chaos, Chaos,
Blank; Blank;
public static PlanarDice roll(Player roller, PlanarDice riggedResult) public static PlanarDice roll(Player roller, PlanarDice riggedResult) {
{
PlanarDice res = Blank; PlanarDice res = Blank;
int i = forge.util.MyRandom.getRandom().nextInt(6); int i = forge.util.MyRandom.getRandom().nextInt(6);
// Play the die roll sound
roller.getGame().fireEvent(new GameEventRollDie());
roller.roll();
if (riggedResult != null) if (riggedResult != null)
res = riggedResult; res = riggedResult;
else if (i == 0) else if (i == 0)

View File

@@ -2270,6 +2270,10 @@ public class AbilityUtils {
return doXMath(player.getNumDrawnThisTurn(), expr, c, ctb); return doXMath(player.getNumDrawnThisTurn(), expr, c, ctb);
} }
if (sq[0].equals("YouRollThisTurn")) {
return doXMath(player.getNumRollsThisTurn(), expr, c, ctb);
}
if (sq[0].equals("YouSurveilThisTurn")) { if (sq[0].equals("YouSurveilThisTurn")) {
return doXMath(player.getSurveilThisTurn(), expr, c, ctb); return doXMath(player.getSurveilThisTurn(), expr, c, ctb);
} }

View File

@@ -78,6 +78,7 @@ public class RollDiceEffect extends SpellAbilityEffect {
int roll = MyRandom.getRandom().nextInt(sides) + 1; int roll = MyRandom.getRandom().nextInt(sides) + 1;
// Play the die roll sound // Play the die roll sound
player.getGame().fireEvent(new GameEventRollDie()); player.getGame().fireEvent(new GameEventRollDie());
player.roll();
rolls.add(roll); rolls.add(roll);
total += roll; total += roll;
} }

View File

@@ -172,6 +172,7 @@ public class Player extends GameEntity implements Comparable<Player> {
private String namedCard2 = ""; private String namedCard2 = "";
private int numDrawnThisTurn = 0; private int numDrawnThisTurn = 0;
private int numDrawnThisDrawStep = 0; private int numDrawnThisDrawStep = 0;
private int numRollsThisTurn = 0;
private int numDiscardedThisTurn = 0; private int numDiscardedThisTurn = 0;
private int numTokenCreatedThisTurn = 0; private int numTokenCreatedThisTurn = 0;
private int numForetoldThisTurn = 0; private int numForetoldThisTurn = 0;
@@ -1465,6 +1466,18 @@ public class Player extends GameEntity implements Comparable<Player> {
return numDrawnThisDrawStep; 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) { public final Card discard(final Card c, final SpellAbility sa, final boolean effect, CardZoneTable table) {
return discard(c, sa, effect, table, null); return discard(c, sa, effect, table, null);
} }
@@ -2455,6 +2468,7 @@ public class Player extends GameEntity implements Comparable<Player> {
pz.resetCardsAddedThisTurn(); pz.resetCardsAddedThisTurn();
} }
resetNumDrawnThisTurn(); resetNumDrawnThisTurn();
resetNumRollsThisTurn();
resetNumDiscardedThisTurn(); resetNumDiscardedThisTurn();
resetNumForetoldThisTurn(); resetNumForetoldThisTurn();
resetNumTokenCreatedThisTurn(); resetNumTokenCreatedThisTurn();

View File

@@ -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.