From c7c75e576b93fbb494b85f6b7329df73a86e8f54 Mon Sep 17 00:00:00 2001 From: swordshine Date: Sun, 3 Aug 2014 07:28:01 +0000 Subject: [PATCH] - Added Sentinel Dispatch --- .gitattributes | 1 + .../main/java/forge/game/phase/PhaseHandler.java | 13 +++++++++++++ .../src/main/java/forge/game/trigger/Trigger.java | 6 ++++++ forge-gui/res/cardsfolder/s/sentinel_dispatch.txt | 6 ++++++ 4 files changed, 26 insertions(+) create mode 100644 forge-gui/res/cardsfolder/s/sentinel_dispatch.txt diff --git a/.gitattributes b/.gitattributes index 04365fd68a9..093e42beb77 100644 --- a/.gitattributes +++ b/.gitattributes @@ -11738,6 +11738,7 @@ forge-gui/res/cardsfolder/s/senseis_divining_top.txt svneol=native#text/plain forge-gui/res/cardsfolder/s/sensor_splicer.txt svneol=native#text/plain forge-gui/res/cardsfolder/s/sensory_deprivation.txt -text forge-gui/res/cardsfolder/s/sentinel.txt -text +forge-gui/res/cardsfolder/s/sentinel_dispatch.txt -text forge-gui/res/cardsfolder/s/sentinel_sliver.txt -text forge-gui/res/cardsfolder/s/sentinel_spider.txt -text forge-gui/res/cardsfolder/s/sentinels_of_glen_elendra.txt svneol=native#text/plain diff --git a/forge-game/src/main/java/forge/game/phase/PhaseHandler.java b/forge-game/src/main/java/forge/game/phase/PhaseHandler.java index d29b61e5cf0..bf41229cbdc 100644 --- a/forge-game/src/main/java/forge/game/phase/PhaseHandler.java +++ b/forge-game/src/main/java/forge/game/phase/PhaseHandler.java @@ -67,6 +67,7 @@ public class PhaseHandler implements java.io.Serializable { private final transient Map> extraPhases = new HashMap>(); private int nUpkeepsThisTurn = 0; + private int nUpkeepsThisGame = 0; private int nCombatsThisTurn = 0; private boolean bPreventCombatDamageThisTurn = false; private int planarDiceRolledthisTurn = 0; @@ -259,6 +260,7 @@ public class PhaseHandler implements java.io.Serializable { case UPKEEP: this.nUpkeepsThisTurn++; + this.nUpkeepsThisGame++; game.getUpkeep().executeUntil(this.getPlayerTurn()); game.getUpkeep().executeAt(); break; @@ -930,6 +932,17 @@ public class PhaseHandler implements java.io.Serializable { return (this.nUpkeepsThisTurn == 1); } + /** + *

+ * isFirstUpkeepThisGame. + *

+ * + * @return a boolean. + */ + public final boolean isFirstUpkeepThisGame() { + return (this.nUpkeepsThisGame == 1); + } + /** *

* isPreCombatMain. diff --git a/forge-game/src/main/java/forge/game/trigger/Trigger.java b/forge-game/src/main/java/forge/game/trigger/Trigger.java index 9bfc0bcba80..b505767c63c 100644 --- a/forge-game/src/main/java/forge/game/trigger/Trigger.java +++ b/forge-game/src/main/java/forge/game/trigger/Trigger.java @@ -188,6 +188,12 @@ public abstract class Trigger extends TriggerReplacementBase { } } + if (this.mapParams.containsKey("FirstUpkeepThisGame")) { + if (!phaseHandler.isFirstUpkeepThisGame()) { + return false; + } + } + if (this.mapParams.containsKey("FirstCombat")) { if (!phaseHandler.isFirstCombat()) { return false; diff --git a/forge-gui/res/cardsfolder/s/sentinel_dispatch.txt b/forge-gui/res/cardsfolder/s/sentinel_dispatch.txt new file mode 100644 index 00000000000..185c04ca762 --- /dev/null +++ b/forge-gui/res/cardsfolder/s/sentinel_dispatch.txt @@ -0,0 +1,6 @@ +Name:Sentinel Dispatch +ManaCost:no cost +Types:Conspiracy +T:Mode$ Phase | Phase$ Upkeep | FirstUpkeepThisGame$ True | Execute$ TrigToken | TriggerDescription$ At the beginning of the first upkeep, put a 1/1 colorless Construct artifact creature token with defender onto the battlefield. +SVar:TrigToken:AB$ Token | Cost$ 0 | TokenAmount$ 1 | TokenName$ Construct | TokenTypes$ Artifact,Creature,Construct | TokenOwner$ You | TokenColors$ Colorless | TokenPower$ 1 | TokenToughness$ 1 | TokenKeywords$ Defender +Oracle:(Start the game with this conspiracy face up in the command zone.)\nAt the beginning of the first upkeep, put a 1/1 colorless Construct artifact creature token with defender onto the battlefield.