mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 19:28:01 +00:00
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:
@@ -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)
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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.
|
||||||
Reference in New Issue
Block a user