diff --git a/.gitattributes b/.gitattributes
index d094fd1848d..9f6c37b61ba 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -14216,6 +14216,7 @@ src/main/java/forge/deck/io/package-info.java svneol=native#text/plain
src/main/java/forge/deck/package-info.java svneol=native#text/plain
src/main/java/forge/error/ExceptionHandler.java svneol=native#text/plain
src/main/java/forge/error/package-info.java svneol=native#text/plain
+src/main/java/forge/game/Game.java -text
src/main/java/forge/game/GameAction.java svneol=native#text/plain
src/main/java/forge/game/GameActionUtil.java svneol=native#text/plain
src/main/java/forge/game/GameAge.java -text
@@ -14223,10 +14224,9 @@ src/main/java/forge/game/GameEndReason.java -text
src/main/java/forge/game/GameFormat.java -text
src/main/java/forge/game/GameNew.java -text
src/main/java/forge/game/GameOutcome.java -text
-src/main/java/forge/game/GameState.java -text
src/main/java/forge/game/GameType.java -text
src/main/java/forge/game/GlobalRuleChange.java -text
-src/main/java/forge/game/MatchState.java -text
+src/main/java/forge/game/Match.java -text
src/main/java/forge/game/PlanarDice.java -text
src/main/java/forge/game/RegisteredPlayer.java -text
src/main/java/forge/game/ai/AiAttackController.java svneol=native#text/plain
diff --git a/src/main/java/forge/Card.java b/src/main/java/forge/Card.java
index 4743c55297a..a40c170e21a 100644
--- a/src/main/java/forge/Card.java
+++ b/src/main/java/forge/Card.java
@@ -62,7 +62,7 @@ import forge.card.staticability.StaticAbility;
import forge.card.trigger.Trigger;
import forge.card.trigger.TriggerType;
import forge.card.trigger.ZCTrigger;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.GlobalRuleChange;
import forge.game.event.GameEventCardDamaged;
import forge.game.event.GameEventCardEquipped;
@@ -7360,7 +7360,7 @@ public class Card extends GameEntity implements Comparable {
additionalLog = String.format("(Removing %d Loyalty Counters)", damageToAdd);
} else {
- final GameState game = source.getGame();
+ final Game game = source.getGame();
final String s = this + " - destroy";
@@ -8111,7 +8111,7 @@ public class Card extends GameEntity implements Comparable {
if (getController() == viewer && isInZone(ZoneType.Battlefield)) {
return true;
}
- final GameState game = this.getGame();
+ final Game game = this.getGame();
if (getController() == viewer && hasKeyword("You may look at this card.")) {
return true;
}
@@ -8244,7 +8244,7 @@ public class Card extends GameEntity implements Comparable {
* Fetch GameState for this card from references to players who may own or control this card.
*/
@Override
- public GameState getGame() {
+ public Game getGame() {
Player controller = getController();
if (null != controller)
diff --git a/src/main/java/forge/CardUtil.java b/src/main/java/forge/CardUtil.java
index 00c47617f02..0392f6aee06 100644
--- a/src/main/java/forge/CardUtil.java
+++ b/src/main/java/forge/CardUtil.java
@@ -30,7 +30,7 @@ import forge.card.ability.ApiType;
import forge.card.spellability.AbilityManaPart;
import forge.card.spellability.AbilitySub;
import forge.card.spellability.SpellAbility;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
import forge.properties.NewConstants;
@@ -71,7 +71,7 @@ public final class CardUtil {
*/
public static List getThisTurnEntered(final ZoneType to, final ZoneType from, final String valid, final Card src) {
List res = new ArrayList();
- final GameState game = src.getGame();
+ final Game game = src.getGame();
if (to != ZoneType.Stack) {
for (Player p : game.getPlayers()) {
res.addAll(p.getZone(to).getCardsAddedThisTurn(from));
@@ -87,7 +87,7 @@ public final class CardUtil {
public static List getThisTurnCast(final String valid, final Card src) {
List res = new ArrayList();
- final GameState game = src.getGame();
+ final Game game = src.getGame();
res.addAll(game.getStack().getCardsCastThisTurn());
res = CardLists.getValidCards(res, valid, src.getController(), src);
@@ -97,7 +97,7 @@ public final class CardUtil {
public static List getLastTurnCast(final String valid, final Card src) {
List res = new ArrayList();
- final GameState game = src.getGame();
+ final Game game = src.getGame();
res.addAll(game.getStack().getCardsCastLastTurn());
res = CardLists.getValidCards(res, valid, src.getController(), src);
@@ -162,7 +162,7 @@ public final class CardUtil {
public static List getRadiance(final Card source, final Card origin, final String[] valid) {
final List res = new ArrayList();
- final GameState game = source.getGame();
+ final Game game = source.getGame();
ColorSet cs = CardUtil.getColors(origin);
for (byte color : MagicColor.WUBRG) {
if(!cs.hasAnyColor(color))
@@ -233,7 +233,7 @@ public final class CardUtil {
if (validCard.startsWith("Defined.")) {
cards = AbilityUtils.getDefinedCards(card, validCard.replace("Defined.", ""), abMana);
} else {
- final GameState game = sa.getActivatingPlayer().getGame();
+ final Game game = sa.getActivatingPlayer().getGame();
cards = CardLists.getValidCards(game.getCardsIn(ZoneType.Battlefield), validCard, abMana.getActivatingPlayer(), card);
}
diff --git a/src/main/java/forge/GameEntity.java b/src/main/java/forge/GameEntity.java
index 5fcf99c4972..0906cc13a13 100644
--- a/src/main/java/forge/GameEntity.java
+++ b/src/main/java/forge/GameEntity.java
@@ -20,7 +20,7 @@ package forge;
import java.util.ArrayList;
import forge.card.spellability.SpellAbility;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.player.Player;
import forge.util.MyObservable;
@@ -426,5 +426,5 @@ public abstract class GameEntity extends MyObservable {
return this.name;
}
- public abstract GameState getGame();
+ public abstract Game getGame();
}
diff --git a/src/main/java/forge/StaticEffects.java b/src/main/java/forge/StaticEffects.java
index 97717562583..e9304681405 100644
--- a/src/main/java/forge/StaticEffects.java
+++ b/src/main/java/forge/StaticEffects.java
@@ -28,7 +28,7 @@ import com.esotericsoftware.minlog.Log;
import forge.card.TriggerReplacementBase;
import forge.card.spellability.SpellAbility;
import forge.card.staticability.StaticAbility;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.GlobalRuleChange;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
@@ -370,7 +370,7 @@ public class StaticEffects {
*
* @param game
*/
- public final void rePopulateStateBasedList(GameState game) {
+ public final void rePopulateStateBasedList(Game game) {
this.reset();
final List cards = game.getCardsIn(ZoneType.Battlefield);
diff --git a/src/main/java/forge/card/TriggerReplacementBase.java b/src/main/java/forge/card/TriggerReplacementBase.java
index 796cd757e39..d689e90e4b5 100644
--- a/src/main/java/forge/card/TriggerReplacementBase.java
+++ b/src/main/java/forge/card/TriggerReplacementBase.java
@@ -12,7 +12,7 @@ import forge.GameEntity;
import forge.card.ability.AbilityUtils;
import forge.card.cardfactory.CardFactoryUtil;
import forge.card.spellability.SpellAbility;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.player.Player;
import forge.game.zone.Zone;
import forge.game.zone.ZoneType;
@@ -156,7 +156,7 @@ public abstract class TriggerReplacementBase {
protected boolean meetsCommonRequirements(Map params) {
final Player hostController = this.getHostCard().getController();
- final GameState game = hostController.getGame();
+ final Game game = hostController.getGame();
if ("True".equalsIgnoreCase(params.get("Metalcraft")) && !hostController.hasMetalcraft()) return false;
if ("True".equalsIgnoreCase(params.get("Threshold")) && !hostController.hasThreshold()) return false;
diff --git a/src/main/java/forge/card/ability/AbilityUtils.java b/src/main/java/forge/card/ability/AbilityUtils.java
index 46e53b8a8ec..4f9e123f518 100644
--- a/src/main/java/forge/card/ability/AbilityUtils.java
+++ b/src/main/java/forge/card/ability/AbilityUtils.java
@@ -21,7 +21,7 @@ import forge.card.spellability.Ability;
import forge.card.spellability.AbilityStatic;
import forge.card.spellability.AbilitySub;
import forge.card.spellability.SpellAbility;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.ai.ComputerUtil;
import forge.game.ai.ComputerUtilCost;
import forge.game.player.HumanPlay;
@@ -79,7 +79,7 @@ public class AbilityUtils {
public static List getDefinedCards(final Card hostCard, final String def, final SpellAbility sa) {
final List cards = new ArrayList();
final String defined = (def == null) ? "Self" : def; // default to Self
- final GameState game = hostCard.getGame();
+ final Game game = hostCard.getGame();
Card c = null;
@@ -287,7 +287,7 @@ public class AbilityUtils {
public static int calculateAmount(final Card card, String amount, final SpellAbility ability) {
// return empty strings and constants
if (StringUtils.isBlank(amount)) { return 0; }
- final GameState game = card.getController().getGame();
+ final Game game = card.getController().getGame();
// Strip and save sign for calculations
final boolean startsWithPlus = amount.charAt(0) == '+';
@@ -696,7 +696,7 @@ public class AbilityUtils {
public static List getDefinedPlayers(final Card card, final String def, final SpellAbility sa) {
final List players = new ArrayList();
final String defined = (def == null) ? "You" : def;
- final GameState game = sa.getActivatingPlayer().getGame();
+ final Game game = sa.getActivatingPlayer().getGame();
if (defined.equals("Targeted")) {
final SpellAbility saTargeting = sa.getSATargetingPlayer();
@@ -943,7 +943,7 @@ public class AbilityUtils {
final SpellAbility sa) {
final ArrayList sas = new ArrayList();
final String defined = (def == null) ? "Self" : def; // default to Self
- final GameState game = sa.getActivatingPlayer().getGame();
+ final Game game = sa.getActivatingPlayer().getGame();
SpellAbility s = null;
@@ -1034,7 +1034,7 @@ public class AbilityUtils {
AbilityUtils.resolveApiAbility(sa, usedStack, sa.getActivatingPlayer().getGame());
}
- private static void resolveSubAbilities(final SpellAbility sa, boolean usedStack, final GameState game) {
+ private static void resolveSubAbilities(final SpellAbility sa, boolean usedStack, final Game game) {
final AbilitySub abSub = sa.getSubAbility();
if (abSub == null || sa.isWrapper()) {
// every resolving spellAbility will end here
@@ -1050,7 +1050,7 @@ public class AbilityUtils {
AbilityUtils.resolveApiAbility(abSub, usedStack, game);
}
- private static void resolveApiAbility(final SpellAbility sa, boolean usedStack, final GameState game) {
+ private static void resolveApiAbility(final SpellAbility sa, boolean usedStack, final Game game) {
// check conditions
if (sa.getConditions().areMet(sa)) {
if (sa.isWrapper() || StringUtils.isBlank(sa.getParam("UnlessCost"))) {
@@ -1063,7 +1063,7 @@ public class AbilityUtils {
resolveSubAbilities(sa, usedStack, game);
}
- private static void handleUnlessCost(final SpellAbility sa, final boolean usedStack, final GameState game) {
+ private static void handleUnlessCost(final SpellAbility sa, final boolean usedStack, final Game game) {
final Card source = sa.getSourceCard();
String unlessCost = sa.getParam("UnlessCost");
unlessCost = unlessCost.trim();
diff --git a/src/main/java/forge/card/ability/ai/AnimateAi.java b/src/main/java/forge/card/ability/ai/AnimateAi.java
index cda187acf77..58e332b7612 100644
--- a/src/main/java/forge/card/ability/ai/AnimateAi.java
+++ b/src/main/java/forge/card/ability/ai/AnimateAi.java
@@ -10,7 +10,7 @@ import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.phase.PhaseType;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
@@ -33,7 +33,7 @@ public class AnimateAi extends SpellAbilityAi {
protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) {
final Target tgt = sa.getTarget();
final Card source = sa.getSourceCard();
- final GameState game = aiPlayer.getGame();
+ final Game game = aiPlayer.getGame();
// TODO - add some kind of check to answer
// "Am I going to attack with this?"
diff --git a/src/main/java/forge/card/ability/ai/BecomesBlockedAi.java b/src/main/java/forge/card/ability/ai/BecomesBlockedAi.java
index 2d67d7f4b98..b4bd54d56cf 100644
--- a/src/main/java/forge/card/ability/ai/BecomesBlockedAi.java
+++ b/src/main/java/forge/card/ability/ai/BecomesBlockedAi.java
@@ -8,7 +8,7 @@ import forge.CardLists;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.ai.ComputerUtilCard;
import forge.game.phase.PhaseType;
import forge.game.player.Player;
@@ -20,7 +20,7 @@ public class BecomesBlockedAi extends SpellAbilityAi {
protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) {
final Card source = sa.getSourceCard();
final Target tgt = sa.getTarget();
- final GameState game = aiPlayer.getGame();
+ final Game game = aiPlayer.getGame();
if (!game.getPhaseHandler().is(PhaseType.COMBAT_DECLARE_BLOCKERS_INSTANT_ABILITY)
|| !game.getPhaseHandler().getPlayerTurn().isOpponentOf(aiPlayer)) {
diff --git a/src/main/java/forge/card/ability/ai/ChangeZoneAi.java b/src/main/java/forge/card/ability/ai/ChangeZoneAi.java
index dcfe7c466a5..17f75b01fe1 100644
--- a/src/main/java/forge/card/ability/ai/ChangeZoneAi.java
+++ b/src/main/java/forge/card/ability/ai/ChangeZoneAi.java
@@ -27,7 +27,7 @@ import forge.card.spellability.AbilitySub;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
import forge.card.trigger.TriggerType;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.GlobalRuleChange;
import forge.game.ai.ComputerUtil;
import forge.game.ai.ComputerUtilBlock;
@@ -1065,7 +1065,7 @@ public class ChangeZoneAi extends SpellAbilityAi {
final Card card = sa.getSourceCard();
final boolean defined = sa.hasParam("Defined");
final Player activator = sa.getActivatingPlayer();
- final GameState game = ai.getGame();
+ final Game game = ai.getGame();
if (tgt != null) {
if (!tgt.getTargetPlayers().isEmpty()) {
diff --git a/src/main/java/forge/card/ability/ai/ChooseCardAi.java b/src/main/java/forge/card/ability/ai/ChooseCardAi.java
index 0e58dd794d1..7144ad273f7 100644
--- a/src/main/java/forge/card/ability/ai/ChooseCardAi.java
+++ b/src/main/java/forge/card/ability/ai/ChooseCardAi.java
@@ -9,7 +9,7 @@ import forge.CardLists;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.ai.ComputerUtilCombat;
import forge.game.phase.PhaseType;
import forge.game.player.Player;
@@ -23,7 +23,7 @@ public class ChooseCardAi extends SpellAbilityAi {
@Override
protected boolean canPlayAI(final Player ai, SpellAbility sa) {
final Card host = sa.getSourceCard();
- final GameState game = ai.getGame();
+ final Game game = ai.getGame();
final Target tgt = sa.getTarget();
if (tgt != null) {
diff --git a/src/main/java/forge/card/ability/ai/ChooseSourceAi.java b/src/main/java/forge/card/ability/ai/ChooseSourceAi.java
index ac6308d4012..51181bf2171 100644
--- a/src/main/java/forge/card/ability/ai/ChooseSourceAi.java
+++ b/src/main/java/forge/card/ability/ai/ChooseSourceAi.java
@@ -13,7 +13,7 @@ import forge.card.ability.SpellAbilityAi;
import forge.card.cost.Cost;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.ai.ComputerUtilCombat;
import forge.game.ai.ComputerUtilCost;
import forge.game.phase.PhaseType;
@@ -65,7 +65,7 @@ public class ChooseSourceAi extends SpellAbilityAi {
}
}
if (sa.hasParam("AILogic")) {
- final GameState game = ai.getGame();
+ final Game game = ai.getGame();
if (sa.getParam("AILogic").equals("NeedsPrevention")) {
if (!game.getStack().isEmpty()) {
final SpellAbility topStack = game.getStack().peekAbility();
diff --git a/src/main/java/forge/card/ability/ai/CloneAi.java b/src/main/java/forge/card/ability/ai/CloneAi.java
index f50f5a19846..5bf3b9d44f5 100644
--- a/src/main/java/forge/card/ability/ai/CloneAi.java
+++ b/src/main/java/forge/card/ability/ai/CloneAi.java
@@ -7,7 +7,7 @@ import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.phase.PhaseHandler;
import forge.game.phase.PhaseType;
import forge.game.player.Player;
@@ -18,7 +18,7 @@ public class CloneAi extends SpellAbilityAi {
protected boolean canPlayAI(Player ai, SpellAbility sa) {
final Target tgt = sa.getTarget();
final Card source = sa.getSourceCard();
- final GameState game = source.getGame();
+ final Game game = source.getGame();
boolean useAbility = true;
diff --git a/src/main/java/forge/card/ability/ai/ControlGainAi.java b/src/main/java/forge/card/ability/ai/ControlGainAi.java
index 212f9b5404f..fa9f5add494 100644
--- a/src/main/java/forge/card/ability/ai/ControlGainAi.java
+++ b/src/main/java/forge/card/ability/ai/ControlGainAi.java
@@ -29,7 +29,7 @@ import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.ai.ComputerUtilCard;
import forge.game.phase.PhaseType;
import forge.game.player.Player;
@@ -183,7 +183,7 @@ public class ControlGainAi extends SpellAbilityAi {
@Override
public boolean chkAIDrawback(SpellAbility sa, final Player ai) {
- final GameState game = ai.getGame();
+ final Game game = ai.getGame();
if ((sa.getTarget() == null) || !sa.getTarget().doesTarget()) {
if (sa.hasParam("AllValid")) {
List tgtCards = CardLists.filterControlledBy(game.getCardsIn(ZoneType.Battlefield), ai.getOpponent());
diff --git a/src/main/java/forge/card/ability/ai/CounterAi.java b/src/main/java/forge/card/ability/ai/CounterAi.java
index 24eb70741e8..17b56ec66de 100644
--- a/src/main/java/forge/card/ability/ai/CounterAi.java
+++ b/src/main/java/forge/card/ability/ai/CounterAi.java
@@ -7,7 +7,7 @@ import forge.card.cardfactory.CardFactoryUtil;
import forge.card.cost.Cost;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.ai.ComputerUtilCost;
import forge.game.ai.ComputerUtilMana;
import forge.game.player.Player;
@@ -20,7 +20,7 @@ public class CounterAi extends SpellAbilityAi {
boolean toReturn = true;
final Cost abCost = sa.getPayCosts();
final Card source = sa.getSourceCard();
- final GameState game = ai.getGame();
+ final Game game = ai.getGame();
if (game.getStack().isEmpty()) {
return false;
}
@@ -110,7 +110,7 @@ public class CounterAi extends SpellAbilityAi {
final Target tgt = sa.getTarget();
if (tgt != null) {
- final GameState game = ai.getGame();
+ final Game game = ai.getGame();
if (game.getStack().isEmpty()) {
return false;
}
diff --git a/src/main/java/forge/card/ability/ai/DamageAiBase.java b/src/main/java/forge/card/ability/ai/DamageAiBase.java
index d0c44e7a781..130ead4bd9e 100644
--- a/src/main/java/forge/card/ability/ai/DamageAiBase.java
+++ b/src/main/java/forge/card/ability/ai/DamageAiBase.java
@@ -8,7 +8,7 @@ import forge.Card;
import forge.CardPredicates;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.ai.ComputerUtilCombat;
import forge.game.phase.PhaseType;
import forge.game.player.Player;
@@ -17,7 +17,7 @@ import forge.game.zone.ZoneType;
public abstract class DamageAiBase extends SpellAbilityAi {
protected boolean shouldTgtP(final Player comp, final SpellAbility sa, final int d, final boolean noPrevention) {
int restDamage = d;
- final GameState game = comp.getGame();
+ final Game game = comp.getGame();
final Player enemy = comp.getOpponent();
if (!sa.canTarget(enemy)) {
return false;
diff --git a/src/main/java/forge/card/ability/ai/DamageDealAi.java b/src/main/java/forge/card/ability/ai/DamageDealAi.java
index bbc156af84d..7ea0e8554d1 100644
--- a/src/main/java/forge/card/ability/ai/DamageDealAi.java
+++ b/src/main/java/forge/card/ability/ai/DamageDealAi.java
@@ -14,7 +14,7 @@ import forge.card.cost.Cost;
import forge.card.spellability.AbilitySub;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.ai.ComputerUtil;
import forge.game.ai.ComputerUtilCard;
import forge.game.ai.ComputerUtilCombat;
@@ -232,7 +232,7 @@ public class DamageDealAi extends DamageAiBase {
final boolean isTrigger, final boolean mandatory) {
final Card source = saMe.getSourceCard();
final boolean noPrevention = saMe.hasParam("NoPrevention");
- final GameState game = source.getGame();
+ final Game game = source.getGame();
final PhaseHandler phase = game.getPhaseHandler();
final boolean divided = saMe.hasParam("DividedAsYouChoose");
diff --git a/src/main/java/forge/card/ability/ai/DamagePreventAi.java b/src/main/java/forge/card/ability/ai/DamagePreventAi.java
index d931be29026..b30cfcceed6 100644
--- a/src/main/java/forge/card/ability/ai/DamagePreventAi.java
+++ b/src/main/java/forge/card/ability/ai/DamagePreventAi.java
@@ -11,7 +11,7 @@ import forge.card.ability.SpellAbilityAi;
import forge.card.cost.Cost;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.ai.ComputerUtil;
import forge.game.ai.ComputerUtilCard;
import forge.game.ai.ComputerUtilCombat;
@@ -26,7 +26,7 @@ public class DamagePreventAi extends SpellAbilityAi {
@Override
protected boolean canPlayAI(Player ai, SpellAbility sa) {
final Card hostCard = sa.getSourceCard();
- final GameState game = ai.getGame();
+ final Game game = ai.getGame();
boolean chance = false;
final Cost cost = sa.getPayCosts();
@@ -180,7 +180,7 @@ public class DamagePreventAi extends SpellAbilityAi {
final Target tgt = sa.getTarget();
tgt.resetTargets();
// filter AIs battlefield by what I can target
- final GameState game = ai.getGame();
+ final Game game = ai.getGame();
List targetables = game.getCardsIn(ZoneType.Battlefield);
targetables = CardLists.getValidCards(targetables, tgt.getValidTgts(), ai, sa.getSourceCard());
final List compTargetables = CardLists.filterControlledBy(targetables, ai);
diff --git a/src/main/java/forge/card/ability/ai/DrawAi.java b/src/main/java/forge/card/ability/ai/DrawAi.java
index 5e5ad620d8d..2079b3207da 100644
--- a/src/main/java/forge/card/ability/ai/DrawAi.java
+++ b/src/main/java/forge/card/ability/ai/DrawAi.java
@@ -31,7 +31,7 @@ import forge.card.cost.PaymentDecision;
import forge.card.spellability.AbilitySub;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.ai.ComputerUtil;
import forge.game.ai.ComputerUtilCost;
import forge.game.ai.ComputerUtilMana;
@@ -55,7 +55,7 @@ public class DrawAi extends SpellAbilityAi {
final Target tgt = sa.getTarget();
final Card source = sa.getSourceCard();
final Cost abCost = sa.getPayCosts();
- final GameState game = ai.getGame();
+ final Game game = ai.getGame();
if (abCost != null) {
// AI currently disabled for these costs
@@ -140,7 +140,7 @@ public class DrawAi extends SpellAbilityAi {
final Target tgt = sa.getTarget();
final Card source = sa.getSourceCard();
final boolean drawback = (sa instanceof AbilitySub);
- final GameState game = ai.getGame();
+ final Game game = ai.getGame();
Player opp = ai.getOpponent();
int computerHandSize = ai.getCardsIn(ZoneType.Hand).size();
diff --git a/src/main/java/forge/card/ability/ai/EffectAi.java b/src/main/java/forge/card/ability/ai/EffectAi.java
index 59440627650..2c1b1bbfbf4 100644
--- a/src/main/java/forge/card/ability/ai/EffectAi.java
+++ b/src/main/java/forge/card/ability/ai/EffectAi.java
@@ -10,7 +10,7 @@ import forge.CardLists;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.ai.ComputerUtilCard;
import forge.game.ai.ComputerUtilCombat;
import forge.game.phase.CombatUtil;
@@ -23,7 +23,7 @@ import forge.util.MyRandom;
public class EffectAi extends SpellAbilityAi {
@Override
protected boolean canPlayAI(Player ai, SpellAbility sa) {
- final GameState game = ai.getGame();
+ final Game game = ai.getGame();
final Random r = MyRandom.getRandom();
boolean randomReturn = r.nextFloat() <= .6667;
final Player opp = ai.getOpponent();
diff --git a/src/main/java/forge/card/ability/ai/FogAi.java b/src/main/java/forge/card/ability/ai/FogAi.java
index f3aa94e6b0b..dd83302f09e 100644
--- a/src/main/java/forge/card/ability/ai/FogAi.java
+++ b/src/main/java/forge/card/ability/ai/FogAi.java
@@ -3,7 +3,7 @@ package forge.card.ability.ai;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.ai.ComputerUtilCombat;
import forge.game.phase.PhaseType;
import forge.game.player.Player;
@@ -15,7 +15,7 @@ public class FogAi extends SpellAbilityAi {
*/
@Override
protected boolean canPlayAI(Player ai, SpellAbility sa) {
- final GameState game = ai.getGame();
+ final Game game = ai.getGame();
// AI should only activate this during Human's Declare Blockers phase
if (game.getPhaseHandler().isPlayerTurn(sa.getActivatingPlayer())) {
return false;
@@ -42,7 +42,7 @@ public class FogAi extends SpellAbilityAi {
public boolean chkAIDrawback(SpellAbility sa, Player ai) {
// AI should only activate this during Human's turn
boolean chance;
- final GameState game = ai.getGame();
+ final Game game = ai.getGame();
// should really check if other player is attacking this player
if (ai.isOpponentOf(game.getPhaseHandler().getPlayerTurn())) {
@@ -56,7 +56,7 @@ public class FogAi extends SpellAbilityAi {
@Override
protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) {
- final GameState game = aiPlayer.getGame();
+ final Game game = aiPlayer.getGame();
boolean chance;
if (game.getPhaseHandler().isPlayerTurn(sa.getActivatingPlayer().getOpponent())) {
chance = game.getPhaseHandler().getPhase().isBefore(PhaseType.COMBAT_FIRST_STRIKE_DAMAGE);
diff --git a/src/main/java/forge/card/ability/ai/LifeGainAi.java b/src/main/java/forge/card/ability/ai/LifeGainAi.java
index 66dedc681e8..32185768807 100644
--- a/src/main/java/forge/card/ability/ai/LifeGainAi.java
+++ b/src/main/java/forge/card/ability/ai/LifeGainAi.java
@@ -9,7 +9,7 @@ import forge.card.cost.Cost;
import forge.card.spellability.AbilitySub;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.ai.ComputerUtil;
import forge.game.ai.ComputerUtilCombat;
import forge.game.ai.ComputerUtilCost;
@@ -34,7 +34,7 @@ public class LifeGainAi extends SpellAbilityAi {
final Random r = MyRandom.getRandom();
final Cost abCost = sa.getPayCosts();
final Card source = sa.getSourceCard();
- final GameState game = source.getGame();
+ final Game game = source.getGame();
final int life = ai.getLife();
final String amountStr = sa.getParam("LifeAmount");
int lifeAmount = 0;
diff --git a/src/main/java/forge/card/ability/ai/PermanentCreatureAi.java b/src/main/java/forge/card/ability/ai/PermanentCreatureAi.java
index baf785ce31a..7179132e4cb 100644
--- a/src/main/java/forge/card/ability/ai/PermanentCreatureAi.java
+++ b/src/main/java/forge/card/ability/ai/PermanentCreatureAi.java
@@ -9,7 +9,7 @@ import forge.Card;
import forge.CardPredicates;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.ai.ComputerUtil;
import forge.game.phase.PhaseType;
import forge.game.player.Player;
@@ -27,7 +27,7 @@ public class PermanentCreatureAi extends SpellAbilityAi {
@Override
protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) {
String logic = sa.getParam("AILogic");
- GameState game = aiPlayer.getGame();
+ Game game = aiPlayer.getGame();
if ("ZeroToughness".equals(logic)) {
// If Creature has Zero Toughness, make sure some static ability is in play
diff --git a/src/main/java/forge/card/ability/ai/PhasesAi.java b/src/main/java/forge/card/ability/ai/PhasesAi.java
index 279e9d4da7c..3bb617406e6 100644
--- a/src/main/java/forge/card/ability/ai/PhasesAi.java
+++ b/src/main/java/forge/card/ability/ai/PhasesAi.java
@@ -9,7 +9,7 @@ import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
import forge.util.MyRandom;
@@ -133,7 +133,7 @@ public class PhasesAi extends SpellAbilityAi {
* a boolean.
* @return a boolean.
*/
- private boolean phasesUnpreferredTargeting(final GameState game, final SpellAbility sa, final boolean mandatory) {
+ private boolean phasesUnpreferredTargeting(final Game game, final SpellAbility sa, final boolean mandatory) {
final Card source = sa.getSourceCard();
final Target tgt = sa.getTarget();
diff --git a/src/main/java/forge/card/ability/ai/ProtectAi.java b/src/main/java/forge/card/ability/ai/ProtectAi.java
index d747e9abf34..1ca8df3891e 100644
--- a/src/main/java/forge/card/ability/ai/ProtectAi.java
+++ b/src/main/java/forge/card/ability/ai/ProtectAi.java
@@ -13,7 +13,7 @@ import forge.card.ability.SpellAbilityAi;
import forge.card.cost.Cost;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.ai.ComputerUtilCard;
import forge.game.ai.ComputerUtilCombat;
import forge.game.ai.ComputerUtilCost;
@@ -66,7 +66,7 @@ public class ProtectAi extends SpellAbilityAi {
*/
private static List getProtectCreatures(final Player ai, final SpellAbility sa) {
final ArrayList gains = AbilityUtils.getProtectionList(sa);
- final GameState game = ai.getGame();
+ final Game game = ai.getGame();
List list = ai.getCreaturesInPlay();
list = CardLists.filter(list, new Predicate() {
@@ -111,7 +111,7 @@ public class ProtectAi extends SpellAbilityAi {
@Override
protected boolean canPlayAI(Player ai, SpellAbility sa) {
final Card hostCard = sa.getSourceCard();
- final GameState game = ai.getGame();
+ final Game game = ai.getGame();
// if there is no target and host card isn't in play, don't activate
if ((sa.getTarget() == null) && !hostCard.isInPlay()) {
return false;
@@ -171,7 +171,7 @@ public class ProtectAi extends SpellAbilityAi {
} // protectPlayAI()
private boolean protectTgtAI(final Player ai, final SpellAbility sa, final boolean mandatory) {
- final GameState game = ai.getGame();
+ final Game game = ai.getGame();
if (!mandatory && game.getPhaseHandler().getPhase().isAfter(PhaseType.COMBAT_DECLARE_BLOCKERS_INSTANT_ABILITY)) {
return false;
}
@@ -250,7 +250,7 @@ public class ProtectAi extends SpellAbilityAi {
} // protectTgtAI()
private static boolean protectMandatoryTarget(final Player ai, final SpellAbility sa, final boolean mandatory) {
- final GameState game = ai.getGame();
+ final Game game = ai.getGame();
List list = game.getCardsIn(ZoneType.Battlefield);
final Target tgt = sa.getTarget();
diff --git a/src/main/java/forge/card/ability/ai/PumpAi.java b/src/main/java/forge/card/ability/ai/PumpAi.java
index 937bb86c91f..175a35a63f8 100644
--- a/src/main/java/forge/card/ability/ai/PumpAi.java
+++ b/src/main/java/forge/card/ability/ai/PumpAi.java
@@ -17,7 +17,7 @@ import forge.card.cost.CostTapType;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.SpellAbilityRestriction;
import forge.card.spellability.Target;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.ai.ComputerUtil;
import forge.game.ai.ComputerUtilCard;
import forge.game.ai.ComputerUtilCost;
@@ -48,7 +48,7 @@ public class PumpAi extends PumpAiBase {
@Override
protected boolean canPlayAI(Player ai, SpellAbility sa) {
final Cost cost = sa.getPayCosts();
- final GameState game = ai.getGame();
+ final Game game = ai.getGame();
final PhaseHandler ph = game.getPhaseHandler();
final List keywords = sa.hasParam("KW") ? Arrays.asList(sa.getParam("KW").split(" & ")) : new ArrayList();
final String numDefense = sa.hasParam("NumDef") ? sa.getParam("NumDef") : "";
@@ -181,7 +181,7 @@ public class PumpAi extends PumpAiBase {
private boolean pumpTgtAI(final Player ai, final SpellAbility sa, final int defense, final int attack, final boolean mandatory) {
final List keywords = sa.hasParam("KW") ? Arrays.asList(sa.getParam("KW").split(" & ")) : new ArrayList();
- final GameState game = ai.getGame();
+ final Game game = ai.getGame();
if (!mandatory
&& !sa.isTrigger()
@@ -284,7 +284,7 @@ public class PumpAi extends PumpAiBase {
} // pumpTgtAI()
private boolean pumpMandatoryTarget(final Player ai, final SpellAbility sa, final boolean mandatory) {
- final GameState game = ai.getGame();
+ final Game game = ai.getGame();
List list = game.getCardsIn(ZoneType.Battlefield);
final Target tgt = sa.getTarget();
final Player opp = ai.getOpponent();
diff --git a/src/main/java/forge/card/ability/ai/PumpAiBase.java b/src/main/java/forge/card/ability/ai/PumpAiBase.java
index 55c621017c2..5b1864a7d1b 100644
--- a/src/main/java/forge/card/ability/ai/PumpAiBase.java
+++ b/src/main/java/forge/card/ability/ai/PumpAiBase.java
@@ -13,7 +13,7 @@ import forge.CardPredicates;
import forge.CardUtil;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.ai.ComputerUtil;
import forge.game.ai.ComputerUtilCard;
import forge.game.ai.ComputerUtilCombat;
@@ -51,7 +51,7 @@ public abstract class PumpAiBase extends SpellAbilityAi {
* @return true, if is useful keyword
*/
public boolean isUsefulCurseKeyword(final Player ai, final String keyword, final Card card, final SpellAbility sa) {
- final GameState game = ai.getGame();
+ final Game game = ai.getGame();
final PhaseHandler ph = game.getPhaseHandler();
final Player human = ai.getOpponent();
//int attack = getNumAttack(sa);
@@ -157,7 +157,7 @@ public abstract class PumpAiBase extends SpellAbilityAi {
* @return true, if is useful keyword
*/
public boolean isUsefulPumpKeyword(final Player ai, final String keyword, final Card card, final SpellAbility sa, final int attack) {
- final GameState game = ai.getGame();
+ final Game game = ai.getGame();
final PhaseHandler ph = game.getPhaseHandler();
final Player opp = ai.getOpponent();
//int defense = getNumDefense(sa);
@@ -384,7 +384,7 @@ public abstract class PumpAiBase extends SpellAbilityAi {
protected boolean shouldPumpCard(final Player ai, final SpellAbility sa, final Card c, final int defense, final int attack,
final List keywords) {
- final GameState game = ai.getGame();
+ final Game game = ai.getGame();
PhaseHandler phase = game.getPhaseHandler();
if (!c.canBeTargetedBy(sa)) {
@@ -503,7 +503,7 @@ public abstract class PumpAiBase extends SpellAbilityAi {
*/
protected List getCurseCreatures(final Player ai, final SpellAbility sa, final int defense, final int attack, final List keywords) {
List list = ai.getOpponent().getCreaturesInPlay();
- final GameState game = ai.getGame();
+ final Game game = ai.getGame();
list = CardLists.getTargetableCards(list, sa);
if (list.isEmpty()) {
diff --git a/src/main/java/forge/card/ability/ai/PumpAllAi.java b/src/main/java/forge/card/ability/ai/PumpAllAi.java
index 8b6cf164882..07886f06cec 100644
--- a/src/main/java/forge/card/ability/ai/PumpAllAi.java
+++ b/src/main/java/forge/card/ability/ai/PumpAllAi.java
@@ -11,7 +11,7 @@ import forge.CardLists;
import forge.card.ability.AbilityUtils;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.ai.ComputerUtil;
import forge.game.ai.ComputerUtilCard;
import forge.game.ai.ComputerUtilCombat;
@@ -29,7 +29,7 @@ public class PumpAllAi extends PumpAiBase {
protected boolean canPlayAI(final Player ai, final SpellAbility sa) {
String valid = "";
final Card source = sa.getSourceCard();
- final GameState game = ai.getGame();
+ final Game game = ai.getGame();
final int power = AbilityUtils.calculateAmount(sa.getSourceCard(), sa.getParam("NumAtt"), sa);
final int defense = AbilityUtils.calculateAmount(sa.getSourceCard(), sa.getParam("NumDef"), sa);
diff --git a/src/main/java/forge/card/ability/ai/RegenerateAi.java b/src/main/java/forge/card/ability/ai/RegenerateAi.java
index 06f99e4a436..2e817e7f8b2 100644
--- a/src/main/java/forge/card/ability/ai/RegenerateAi.java
+++ b/src/main/java/forge/card/ability/ai/RegenerateAi.java
@@ -28,7 +28,7 @@ import forge.card.ability.SpellAbilityAi;
import forge.card.cost.Cost;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.ai.ComputerUtil;
import forge.game.ai.ComputerUtilCard;
import forge.game.ai.ComputerUtilCombat;
@@ -59,7 +59,7 @@ public class RegenerateAi extends SpellAbilityAi {
protected boolean canPlayAI(Player ai, SpellAbility sa) {
final Card hostCard = sa.getSourceCard();
final Cost abCost = sa.getPayCosts();
- final GameState game = ai.getGame();
+ final Game game = ai.getGame();
boolean chance = false;
if (abCost != null) {
@@ -174,7 +174,7 @@ public class RegenerateAi extends SpellAbilityAi {
private static boolean regenMandatoryTarget(final Player ai, final SpellAbility sa, final boolean mandatory) {
final Card hostCard = sa.getSourceCard();
- final GameState game = ai.getGame();
+ final Game game = ai.getGame();
final Target tgt = sa.getTarget();
tgt.resetTargets();
// filter AIs battlefield by what I can target
diff --git a/src/main/java/forge/card/ability/ai/RegenerateAllAi.java b/src/main/java/forge/card/ability/ai/RegenerateAllAi.java
index ba24543ebb4..870b083290c 100644
--- a/src/main/java/forge/card/ability/ai/RegenerateAllAi.java
+++ b/src/main/java/forge/card/ability/ai/RegenerateAllAi.java
@@ -9,7 +9,7 @@ import forge.CardPredicates;
import forge.card.ability.SpellAbilityAi;
import forge.card.cost.Cost;
import forge.card.spellability.SpellAbility;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.ai.ComputerUtil;
import forge.game.ai.ComputerUtilCombat;
import forge.game.ai.ComputerUtilCost;
@@ -24,7 +24,7 @@ public class RegenerateAllAi extends SpellAbilityAi {
final Card hostCard = sa.getSourceCard();
boolean chance = false;
final Cost abCost = sa.getPayCosts();
- final GameState game = ai.getGame();
+ final Game game = ai.getGame();
if (abCost != null) {
// AI currently disabled for these costs
if (!ComputerUtilCost.checkSacrificeCost(ai, abCost, hostCard)) {
diff --git a/src/main/java/forge/card/ability/ai/TapAiBase.java b/src/main/java/forge/card/ability/ai/TapAiBase.java
index c26f0de0d65..3be8f8faca0 100644
--- a/src/main/java/forge/card/ability/ai/TapAiBase.java
+++ b/src/main/java/forge/card/ability/ai/TapAiBase.java
@@ -12,7 +12,7 @@ import forge.CardPredicates.Presets;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.ai.ComputerUtil;
import forge.game.ai.ComputerUtilCard;
import forge.game.phase.CombatUtil;
@@ -114,7 +114,7 @@ public abstract class TapAiBase extends SpellAbilityAi {
*/
protected boolean tapPrefTargeting(final Player ai, final Card source, final Target tgt, final SpellAbility sa, final boolean mandatory) {
final Player opp = ai.getOpponent();
- final GameState game = ai.getGame();
+ final Game game = ai.getGame();
List tapList = opp.getCardsIn(ZoneType.Battlefield);
tapList = CardLists.filter(tapList, Presets.UNTAPPED);
tapList = CardLists.getValidCards(tapList, tgt.getValidTgts(), source.getController(), source);
@@ -240,7 +240,7 @@ public abstract class TapAiBase extends SpellAbilityAi {
protected boolean tapUnpreferredTargeting(final Player ai, final SpellAbility sa, final boolean mandatory) {
final Card source = sa.getSourceCard();
final Target tgt = sa.getTarget();
- final GameState game = ai.getGame();
+ final Game game = ai.getGame();
List list = game.getCardsIn(ZoneType.Battlefield);
list = CardLists.getValidCards(list, tgt.getValidTgts(), source.getController(), source);
diff --git a/src/main/java/forge/card/ability/ai/TapAllAi.java b/src/main/java/forge/card/ability/ai/TapAllAi.java
index 4fbdcee25b1..2ded0dbc056 100644
--- a/src/main/java/forge/card/ability/ai/TapAllAi.java
+++ b/src/main/java/forge/card/ability/ai/TapAllAi.java
@@ -12,7 +12,7 @@ import forge.CardPredicates.Presets;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.phase.CombatUtil;
import forge.game.phase.PhaseType;
import forge.game.player.Player;
@@ -32,7 +32,7 @@ public class TapAllAi extends SpellAbilityAi {
final Card source = sa.getSourceCard();
final Player opp = ai.getOpponent();
- final GameState game = ai.getGame();
+ final Game game = ai.getGame();
if (game.getPhaseHandler().getPhase().isAfter(PhaseType.COMBAT_BEGIN)) {
return false;
@@ -108,7 +108,7 @@ public class TapAllAi extends SpellAbilityAi {
* @return a {@link forge.CardList} object.
*/
private List getTapAllTargets(final String valid, final Card source) {
- final GameState game = source.getGame();
+ final Game game = source.getGame();
List tmpList = game.getCardsIn(ZoneType.Battlefield);
tmpList = CardLists.getValidCards(tmpList, valid, source.getController(), source);
tmpList = CardLists.filter(tmpList, Presets.UNTAPPED);
diff --git a/src/main/java/forge/card/ability/ai/TokenAi.java b/src/main/java/forge/card/ability/ai/TokenAi.java
index f55c7433b65..66af9c553e5 100644
--- a/src/main/java/forge/card/ability/ai/TokenAi.java
+++ b/src/main/java/forge/card/ability/ai/TokenAi.java
@@ -8,7 +8,7 @@ import forge.card.ability.SpellAbilityAi;
import forge.card.cost.Cost;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.ai.ComputerUtil;
import forge.game.ai.ComputerUtilCost;
import forge.game.ai.ComputerUtilMana;
@@ -66,7 +66,7 @@ public class TokenAi extends SpellAbilityAi {
@Override
protected boolean canPlayAI(Player ai, SpellAbility sa) {
final Cost cost = sa.getPayCosts();
- final GameState game = ai.getGame();
+ final Game game = ai.getGame();
readParameters(sa);
if (ComputerUtil.preventRunAwayActivations(sa)) {
diff --git a/src/main/java/forge/card/ability/effects/AbandonEffect.java b/src/main/java/forge/card/ability/effects/AbandonEffect.java
index ea6735d3be3..f314b61f083 100644
--- a/src/main/java/forge/card/ability/effects/AbandonEffect.java
+++ b/src/main/java/forge/card/ability/effects/AbandonEffect.java
@@ -4,7 +4,7 @@ import forge.Card;
import forge.card.ability.SpellAbilityEffect;
import forge.card.spellability.SpellAbility;
import forge.card.trigger.TriggerType;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
@@ -19,7 +19,7 @@ public class AbandonEffect extends SpellAbilityEffect {
Card source = sa.getSourceCard();
Player controller = source.getController();
- final GameState game = controller.getGame();
+ final Game game = controller.getGame();
game.getTriggerHandler().suppressMode(TriggerType.ChangesZone);
controller.getZone(ZoneType.Command).remove(source);
diff --git a/src/main/java/forge/card/ability/effects/AnimateAllEffect.java b/src/main/java/forge/card/ability/effects/AnimateAllEffect.java
index c004f5a0ea2..14f41a6cdae 100644
--- a/src/main/java/forge/card/ability/effects/AnimateAllEffect.java
+++ b/src/main/java/forge/card/ability/effects/AnimateAllEffect.java
@@ -18,7 +18,7 @@ import forge.card.spellability.Target;
import forge.card.staticability.StaticAbility;
import forge.card.trigger.Trigger;
import forge.card.trigger.TriggerHandler;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
@@ -43,7 +43,7 @@ public class AnimateAllEffect extends AnimateEffectBase {
if (sa.hasParam("Toughness")) {
toughness = AbilityUtils.calculateAmount(host, sa.getParam("Toughness"), sa);
}
- final GameState game = sa.getActivatingPlayer().getGame();
+ final Game game = sa.getActivatingPlayer().getGame();
// Every Animate event needs a unique time stamp
final long timestamp = game.getNextTimestamp();
diff --git a/src/main/java/forge/card/ability/effects/AnimateEffect.java b/src/main/java/forge/card/ability/effects/AnimateEffect.java
index b2e5281eab0..6cb24d40ad6 100644
--- a/src/main/java/forge/card/ability/effects/AnimateEffect.java
+++ b/src/main/java/forge/card/ability/effects/AnimateEffect.java
@@ -17,7 +17,7 @@ import forge.card.spellability.Target;
import forge.card.staticability.StaticAbility;
import forge.card.trigger.Trigger;
import forge.card.trigger.TriggerHandler;
-import forge.game.GameState;
+import forge.game.Game;
public class AnimateEffect extends AnimateEffectBase {
@@ -53,7 +53,7 @@ public class AnimateEffect extends AnimateEffectBase {
toughness = AbilityUtils.calculateAmount(host, sa.getParam("Toughness"), sa);
}
- final GameState game = sa.getActivatingPlayer().getGame();
+ final Game game = sa.getActivatingPlayer().getGame();
// Every Animate event needs a unique time stamp
final long timestamp = game.getNextTimestamp();
diff --git a/src/main/java/forge/card/ability/effects/AttachEffect.java b/src/main/java/forge/card/ability/effects/AttachEffect.java
index d19ec768140..3576dbf9680 100644
--- a/src/main/java/forge/card/ability/effects/AttachEffect.java
+++ b/src/main/java/forge/card/ability/effects/AttachEffect.java
@@ -13,7 +13,7 @@ import forge.card.ability.SpellAbilityEffect;
import forge.card.ability.ai.AttachAi;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
import forge.gui.GuiChoose;
@@ -184,7 +184,7 @@ public class AttachEffect extends SpellAbilityEffect {
return false;
}
aura.setActivatingPlayer(source.getController());
- final GameState game = source.getGame();
+ final Game game = source.getGame();
final Target tgt = aura.getTarget();
if (source.getController().isHuman()) {
diff --git a/src/main/java/forge/card/ability/effects/BecomesBlockedEffect.java b/src/main/java/forge/card/ability/effects/BecomesBlockedEffect.java
index ff6e764ed5d..6f23e47fe1f 100644
--- a/src/main/java/forge/card/ability/effects/BecomesBlockedEffect.java
+++ b/src/main/java/forge/card/ability/effects/BecomesBlockedEffect.java
@@ -13,7 +13,7 @@ import forge.card.spellability.Ability;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
import forge.card.trigger.TriggerType;
-import forge.game.GameState;
+import forge.game.Game;
public class BecomesBlockedEffect extends SpellAbilityEffect {
@@ -32,7 +32,7 @@ public class BecomesBlockedEffect extends SpellAbilityEffect {
@Override
public void resolve(SpellAbility sa) {
- final GameState game = sa.getActivatingPlayer().getGame();
+ final Game game = sa.getActivatingPlayer().getGame();
final Target tgt = sa.getTarget();
for (final Card c : getTargetCards(sa)) {
if ((tgt == null) || c.canBeTargetedBy(sa)) {
diff --git a/src/main/java/forge/card/ability/effects/ChangeZoneAllEffect.java b/src/main/java/forge/card/ability/effects/ChangeZoneAllEffect.java
index 5a7beb63563..9787092152a 100644
--- a/src/main/java/forge/card/ability/effects/ChangeZoneAllEffect.java
+++ b/src/main/java/forge/card/ability/effects/ChangeZoneAllEffect.java
@@ -14,7 +14,7 @@ import forge.CardPredicates;
import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAbilityEffect;
import forge.card.spellability.SpellAbility;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
import forge.gui.GuiChoose;
@@ -44,7 +44,7 @@ public class ChangeZoneAllEffect extends SpellAbilityEffect {
List cards = new ArrayList();
List tgtPlayers = getTargetPlayersEmptyAsDefault(sa);
- final GameState game = sa.getActivatingPlayer().getGame();
+ final Game game = sa.getActivatingPlayer().getGame();
if ((tgtPlayers == null) || tgtPlayers.isEmpty() || sa.hasParam("UseAllOriginZones")) {
cards = game.getCardsIn(origin);
diff --git a/src/main/java/forge/card/ability/effects/ChangeZoneEffect.java b/src/main/java/forge/card/ability/effects/ChangeZoneEffect.java
index 20ec04e867c..ee2c3607780 100644
--- a/src/main/java/forge/card/ability/effects/ChangeZoneEffect.java
+++ b/src/main/java/forge/card/ability/effects/ChangeZoneEffect.java
@@ -21,7 +21,7 @@ import forge.card.spellability.SpellAbilityStackInstance;
import forge.card.spellability.Target;
import forge.card.trigger.TriggerType;
import forge.control.input.InputSelectCardsFromList;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.ai.ComputerUtilCard;
import forge.game.player.Player;
import forge.game.zone.Zone;
@@ -375,7 +375,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
final Target tgt = sa.getTarget();
final Player player = sa.getActivatingPlayer();
final Card hostCard = sa.getSourceCard();
- final GameState game = player.getGame();
+ final Game game = player.getGame();
final ZoneType destination = ZoneType.smartValueOf(sa.getParam("Destination"));
final List origin = ZoneType.listValueOf(sa.getParam("Origin"));
@@ -619,7 +619,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
final List movedCards = new ArrayList();
final boolean defined = sa.hasParam("Defined");
final boolean optional = sa.hasParam("Optional");
- final GameState game = player.getGame();
+ final Game game = player.getGame();
final Target tgt = sa.getTarget();
if (tgt != null) {
@@ -923,7 +923,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
* object.
* @param game
*/
- private static void removeFromStack(final SpellAbility tgtSA, final SpellAbility srcSA, final SpellAbilityStackInstance si, final GameState game) {
+ private static void removeFromStack(final SpellAbility tgtSA, final SpellAbility srcSA, final SpellAbilityStackInstance si, final Game game) {
game.getStack().remove(si);
if (srcSA.hasParam("Destination")) {
diff --git a/src/main/java/forge/card/ability/effects/ChooseCardEffect.java b/src/main/java/forge/card/ability/effects/ChooseCardEffect.java
index 278b5815b10..909a7f05ba3 100644
--- a/src/main/java/forge/card/ability/effects/ChooseCardEffect.java
+++ b/src/main/java/forge/card/ability/effects/ChooseCardEffect.java
@@ -13,7 +13,7 @@ import forge.card.ability.SpellAbilityEffect;
import forge.card.cardfactory.CardFactoryUtil;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
import forge.util.Aggregates;
@@ -34,7 +34,7 @@ public class ChooseCardEffect extends SpellAbilityEffect {
@Override
public void resolve(SpellAbility sa) {
final Card host = sa.getSourceCard();
- final GameState game = sa.getActivatingPlayer().getGame();
+ final Game game = sa.getActivatingPlayer().getGame();
final ArrayList chosen = new ArrayList();
final Target tgt = sa.getTarget();
diff --git a/src/main/java/forge/card/ability/effects/ChooseColorEffect.java b/src/main/java/forge/card/ability/effects/ChooseColorEffect.java
index d836dcdb35a..d42c35fefa0 100644
--- a/src/main/java/forge/card/ability/effects/ChooseColorEffect.java
+++ b/src/main/java/forge/card/ability/effects/ChooseColorEffect.java
@@ -12,7 +12,7 @@ import forge.Constant;
import forge.card.ability.SpellAbilityEffect;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.ai.ComputerUtilCard;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
@@ -67,7 +67,7 @@ public class ChooseColorEffect extends SpellAbilityEffect {
} else {
List chosen = new ArrayList();
Player ai = sa.getActivatingPlayer();
- final GameState game = ai.getGame();
+ final Game game = ai.getGame();
Player opp = ai.getOpponent();
if (sa.hasParam("AILogic")) {
final String logic = sa.getParam("AILogic");
diff --git a/src/main/java/forge/card/ability/effects/ChooseSourceEffect.java b/src/main/java/forge/card/ability/effects/ChooseSourceEffect.java
index 836814b3c94..e087892f5a1 100644
--- a/src/main/java/forge/card/ability/effects/ChooseSourceEffect.java
+++ b/src/main/java/forge/card/ability/effects/ChooseSourceEffect.java
@@ -15,7 +15,7 @@ import forge.card.cardfactory.CardFactoryUtil;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.SpellAbilityStackInstance;
import forge.card.spellability.Target;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.ai.ComputerUtilCard;
import forge.game.ai.ComputerUtilCombat;
import forge.game.player.Player;
@@ -38,7 +38,7 @@ public class ChooseSourceEffect extends SpellAbilityEffect {
@Override
public void resolve(SpellAbility sa) {
final Card host = sa.getSourceCard();
- final GameState game = sa.getActivatingPlayer().getGame();
+ final Game game = sa.getActivatingPlayer().getGame();
final Target tgt = sa.getTarget();
final List tgtPlayers = getTargetPlayers(sa);
@@ -174,7 +174,7 @@ public class ChooseSourceEffect extends SpellAbilityEffect {
}
}
- private Card ChooseCardOnStack(SpellAbility sa, Player ai, GameState game) {
+ private Card ChooseCardOnStack(SpellAbility sa, Player ai, Game game) {
for (SpellAbilityStackInstance si : game.getStack()) {
final Card source = si.getSourceCard();
final SpellAbility abilityOnStack = si.getSpellAbility();
diff --git a/src/main/java/forge/card/ability/effects/CleanUpEffect.java b/src/main/java/forge/card/ability/effects/CleanUpEffect.java
index b8a21d6354a..1a6f1022fb5 100644
--- a/src/main/java/forge/card/ability/effects/CleanUpEffect.java
+++ b/src/main/java/forge/card/ability/effects/CleanUpEffect.java
@@ -5,7 +5,7 @@ import forge.Card;
import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAbilityEffect;
import forge.card.spellability.SpellAbility;
-import forge.game.GameState;
+import forge.game.Game;
public class CleanUpEffect extends SpellAbilityEffect {
@@ -15,7 +15,7 @@ public class CleanUpEffect extends SpellAbilityEffect {
@Override
public void resolve(SpellAbility sa) {
Card source = sa.getSourceCard();
- final GameState game = source.getGame();
+ final Game game = source.getGame();
if (sa.hasParam("ClearRemembered")) {
source.clearRemembered();
diff --git a/src/main/java/forge/card/ability/effects/CloneEffect.java b/src/main/java/forge/card/ability/effects/CloneEffect.java
index 6e4bbc725ce..a78079f396d 100644
--- a/src/main/java/forge/card/ability/effects/CloneEffect.java
+++ b/src/main/java/forge/card/ability/effects/CloneEffect.java
@@ -18,7 +18,7 @@ import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
import forge.card.trigger.Trigger;
import forge.card.trigger.TriggerHandler;
-import forge.game.GameState;
+import forge.game.Game;
import forge.gui.GuiDialog;
import forge.properties.ForgePreferences.FPref;
@@ -200,7 +200,7 @@ public class CloneEffect extends SpellAbilityEffect {
}
};
- final GameState game = sa.getActivatingPlayer().getGame();
+ final Game game = sa.getActivatingPlayer().getGame();
String duration = sa.getParam("Duration");
if (duration.equals("UntilEndOfTurn")) {
game.getEndOfTurn().addUntil(unclone);
diff --git a/src/main/java/forge/card/ability/effects/ControlGainEffect.java b/src/main/java/forge/card/ability/effects/ControlGainEffect.java
index 0fc2360cb91..2f5f5054ebc 100644
--- a/src/main/java/forge/card/ability/effects/ControlGainEffect.java
+++ b/src/main/java/forge/card/ability/effects/ControlGainEffect.java
@@ -12,7 +12,7 @@ import forge.card.mana.ManaCost;
import forge.card.spellability.Ability;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
@@ -97,7 +97,7 @@ public class ControlGainEffect extends SpellAbilityEffect {
controllers = new ArrayList();
final Player newController = controllers.isEmpty() ? sa.getActivatingPlayer() : controllers.get(0);
- final GameState game = newController.getGame();
+ final Game game = newController.getGame();
if (sa.hasParam("AllValid")) {
tgtCards = game.getCardsIn(ZoneType.Battlefield);
@@ -202,7 +202,7 @@ public class ControlGainEffect extends SpellAbilityEffect {
@Override
public void run() {
- final GameState game = hostCard.getGame();
+ final Game game = hostCard.getGame();
final Ability ability = new Ability(hostCard, ManaCost.ZERO) {
@Override
public void resolve() {
diff --git a/src/main/java/forge/card/ability/effects/ControlPlayerEffect.java b/src/main/java/forge/card/ability/effects/ControlPlayerEffect.java
index c593c085795..c7911fa741f 100644
--- a/src/main/java/forge/card/ability/effects/ControlPlayerEffect.java
+++ b/src/main/java/forge/card/ability/effects/ControlPlayerEffect.java
@@ -5,7 +5,7 @@ import java.util.List;
import forge.Command;
import forge.card.ability.SpellAbilityEffect;
import forge.card.spellability.SpellAbility;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.player.Player;
import forge.util.Lang;
@@ -26,7 +26,7 @@ public class ControlPlayerEffect extends SpellAbilityEffect {
@Override
public void resolve(SpellAbility sa) {
final Player activator = sa.getActivatingPlayer();
- final GameState game = activator.getGame();
+ final Game game = activator.getGame();
List tgtPlayers = getTargetPlayers(sa);
diff --git a/src/main/java/forge/card/ability/effects/CopyPermanentEffect.java b/src/main/java/forge/card/ability/effects/CopyPermanentEffect.java
index b8604d8b70e..3ca8de4e69f 100644
--- a/src/main/java/forge/card/ability/effects/CopyPermanentEffect.java
+++ b/src/main/java/forge/card/ability/effects/CopyPermanentEffect.java
@@ -24,7 +24,7 @@ import forge.card.mana.ManaCost;
import forge.card.spellability.Ability;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.ai.ComputerUtilCard;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
@@ -55,7 +55,7 @@ public class CopyPermanentEffect extends SpellAbilityEffect {
@Override
public void resolve(final SpellAbility sa) {
final Card hostCard = sa.getSourceCard();
- final GameState game = hostCard.getGame();
+ final Game game = hostCard.getGame();
final ArrayList keywords = new ArrayList();
if (sa.hasParam("Keywords")) {
keywords.addAll(Arrays.asList(sa.getParam("Keywords").split(" & ")));
diff --git a/src/main/java/forge/card/ability/effects/CounterEffect.java b/src/main/java/forge/card/ability/effects/CounterEffect.java
index e01b09a67c8..251f3212fd3 100644
--- a/src/main/java/forge/card/ability/effects/CounterEffect.java
+++ b/src/main/java/forge/card/ability/effects/CounterEffect.java
@@ -7,7 +7,7 @@ import java.util.List;
import forge.Card;
import forge.card.ability.SpellAbilityEffect;
import forge.card.cardfactory.CardFactoryUtil;
-import forge.game.GameState;
+import forge.game.Game;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.SpellAbilityStackInstance;
import forge.card.spellability.SpellPermanent;
@@ -17,7 +17,7 @@ import forge.gui.GuiChoose;
public class CounterEffect extends SpellAbilityEffect {
@Override
protected String getStackDescription(SpellAbility sa) {
- final GameState game = sa.getActivatingPlayer().getGame();
+ final Game game = sa.getActivatingPlayer().getGame();
final StringBuilder sb = new StringBuilder();
final List sas;
@@ -62,7 +62,7 @@ public class CounterEffect extends SpellAbilityEffect {
@Override
public void resolve(SpellAbility sa) {
- final GameState game = sa.getActivatingPlayer().getGame();
+ final Game game = sa.getActivatingPlayer().getGame();
// TODO Before this resolves we should see if any of our targets are
// still on the stack
final List sas;
@@ -139,7 +139,7 @@ public class CounterEffect extends SpellAbilityEffect {
* @param sa
*/
private void removeFromStack(final SpellAbility tgtSA, final SpellAbility srcSA, final SpellAbilityStackInstance si) {
- final GameState game = tgtSA.getActivatingPlayer().getGame();
+ final Game game = tgtSA.getActivatingPlayer().getGame();
game.getStack().remove(si);
String destination = srcSA.hasParam("Destination") ? srcSA.getParam("Destination") : "Graveyard";
diff --git a/src/main/java/forge/card/ability/effects/CountersPutAllEffect.java b/src/main/java/forge/card/ability/effects/CountersPutAllEffect.java
index 1f66a4aadd2..5c0fe2fe562 100644
--- a/src/main/java/forge/card/ability/effects/CountersPutAllEffect.java
+++ b/src/main/java/forge/card/ability/effects/CountersPutAllEffect.java
@@ -9,7 +9,7 @@ import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAbilityEffect;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
@@ -43,7 +43,7 @@ public class CountersPutAllEffect extends SpellAbilityEffect {
final int counterAmount = AbilityUtils.calculateAmount(sa.getSourceCard(), sa.getParam("CounterNum"), sa);
final String valid = sa.getParam("ValidCards");
final ZoneType zone = sa.hasParam("ValidZone") ? ZoneType.smartValueOf(sa.getParam("ValidZone")) : ZoneType.Battlefield;
- final GameState game = sa.getActivatingPlayer().getGame();
+ final Game game = sa.getActivatingPlayer().getGame();
List cards = game.getCardsIn(zone);
cards = CardLists.getValidCards(cards, valid, sa.getSourceCard().getController(), sa.getSourceCard());
diff --git a/src/main/java/forge/card/ability/effects/CountersRemoveAllEffect.java b/src/main/java/forge/card/ability/effects/CountersRemoveAllEffect.java
index 2565cdb1d25..2b823122cd9 100644
--- a/src/main/java/forge/card/ability/effects/CountersRemoveAllEffect.java
+++ b/src/main/java/forge/card/ability/effects/CountersRemoveAllEffect.java
@@ -9,7 +9,7 @@ import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAbilityEffect;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
@@ -47,7 +47,7 @@ public class CountersRemoveAllEffect extends SpellAbilityEffect {
int counterAmount = AbilityUtils.calculateAmount(sa.getSourceCard(), sa.getParam("CounterNum"), sa);
final String valid = sa.getParam("ValidCards");
final ZoneType zone = sa.hasParam("ValidZone") ? ZoneType.smartValueOf(sa.getParam("ValidZone")) : ZoneType.Battlefield;
- final GameState game = sa.getActivatingPlayer().getGame();
+ final Game game = sa.getActivatingPlayer().getGame();
List cards = game.getCardsIn(zone);
cards = CardLists.getValidCards(cards, valid, sa.getSourceCard().getController(), sa.getSourceCard());
diff --git a/src/main/java/forge/card/ability/effects/CountersRemoveEffect.java b/src/main/java/forge/card/ability/effects/CountersRemoveEffect.java
index e13c50eca33..36c495b4eff 100644
--- a/src/main/java/forge/card/ability/effects/CountersRemoveEffect.java
+++ b/src/main/java/forge/card/ability/effects/CountersRemoveEffect.java
@@ -10,7 +10,7 @@ import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAbilityEffect;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.zone.Zone;
import forge.game.zone.ZoneType;
import forge.gui.GuiChoose;
@@ -55,7 +55,7 @@ public class CountersRemoveEffect extends SpellAbilityEffect {
public void resolve(SpellAbility sa) {
final Card card = sa.getSourceCard();
- final GameState game = card.getGame();
+ final Game game = card.getGame();
final String type = sa.getParam("CounterType");
int counterAmount = 0;
if (!sa.getParam("CounterNum").equals("All") && !sa.getParam("CounterNum").equals("Remembered")) {
diff --git a/src/main/java/forge/card/ability/effects/DamageAllEffect.java b/src/main/java/forge/card/ability/effects/DamageAllEffect.java
index e3c39c30122..a694de55df2 100644
--- a/src/main/java/forge/card/ability/effects/DamageAllEffect.java
+++ b/src/main/java/forge/card/ability/effects/DamageAllEffect.java
@@ -9,7 +9,7 @@ import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAbilityEffect;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
@@ -46,7 +46,7 @@ public class DamageAllEffect extends SpellAbilityEffect {
final List definedSources = AbilityUtils.getDefinedCards(sa.getSourceCard(), sa.getParam("DamageSource"), sa);
final Card card = definedSources.get(0);
final Card source = sa.getSourceCard();
- final GameState game = sa.getActivatingPlayer().getGame();
+ final Game game = sa.getActivatingPlayer().getGame();
final String damage = sa.getParam("NumDmg");
final int dmg = AbilityUtils.calculateAmount(sa.getSourceCard(), damage, sa);
diff --git a/src/main/java/forge/card/ability/effects/DamagePreventAllEffect.java b/src/main/java/forge/card/ability/effects/DamagePreventAllEffect.java
index 0387ffba651..c00628ddd0c 100644
--- a/src/main/java/forge/card/ability/effects/DamagePreventAllEffect.java
+++ b/src/main/java/forge/card/ability/effects/DamagePreventAllEffect.java
@@ -7,7 +7,7 @@ import forge.Card;
import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAbilityEffect;
import forge.card.spellability.SpellAbility;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
@@ -19,7 +19,7 @@ public class DamagePreventAllEffect extends SpellAbilityEffect {
@Override
public void resolve(SpellAbility sa) {
final Card source = sa.getSourceCard();
- final GameState game = sa.getActivatingPlayer().getGame();
+ final Game game = sa.getActivatingPlayer().getGame();
final int numDam = AbilityUtils.calculateAmount(sa.getSourceCard(), sa.getParam("Amount"), sa);
String players = "";
diff --git a/src/main/java/forge/card/ability/effects/DebuffAllEffect.java b/src/main/java/forge/card/ability/effects/DebuffAllEffect.java
index d34c014d6a4..07495a5c4ba 100644
--- a/src/main/java/forge/card/ability/effects/DebuffAllEffect.java
+++ b/src/main/java/forge/card/ability/effects/DebuffAllEffect.java
@@ -9,7 +9,7 @@ import forge.CardLists;
import forge.Command;
import forge.card.ability.SpellAbilityEffect;
import forge.card.spellability.SpellAbility;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.zone.ZoneType;
public class DebuffAllEffect extends SpellAbilityEffect {
@@ -40,7 +40,7 @@ public class DebuffAllEffect extends SpellAbilityEffect {
public void resolve(SpellAbility sa) {
final Card hostCard = sa.getSourceCard();
final List kws = sa.hasParam("Keywords") ? Arrays.asList(sa.getParam("Keywords").split(" & ")) : new ArrayList();
- final GameState game = sa.getActivatingPlayer().getGame();
+ final Game game = sa.getActivatingPlayer().getGame();
String valid = "";
diff --git a/src/main/java/forge/card/ability/effects/DebuffEffect.java b/src/main/java/forge/card/ability/effects/DebuffEffect.java
index 681910e12ae..7d367096141 100644
--- a/src/main/java/forge/card/ability/effects/DebuffEffect.java
+++ b/src/main/java/forge/card/ability/effects/DebuffEffect.java
@@ -9,7 +9,7 @@ import forge.Card;
import forge.Command;
import forge.card.ability.SpellAbilityEffect;
import forge.card.spellability.SpellAbility;
-import forge.game.GameState;
+import forge.game.Game;
public class DebuffEffect extends SpellAbilityEffect {
@@ -56,7 +56,7 @@ public class DebuffEffect extends SpellAbilityEffect {
@Override
public void resolve(SpellAbility sa) {
final List kws = sa.hasParam("Keywords") ? Arrays.asList(sa.getParam("Keywords").split(" & ")) : new ArrayList();
- final GameState game = sa.getActivatingPlayer().getGame();
+ final Game game = sa.getActivatingPlayer().getGame();
final long timestamp = game.getNextTimestamp();
for (final Card tgtC : getTargetCards(sa)) {
diff --git a/src/main/java/forge/card/ability/effects/DestroyAllEffect.java b/src/main/java/forge/card/ability/effects/DestroyAllEffect.java
index f36bee2b82a..fc29cf0b141 100644
--- a/src/main/java/forge/card/ability/effects/DestroyAllEffect.java
+++ b/src/main/java/forge/card/ability/effects/DestroyAllEffect.java
@@ -9,7 +9,7 @@ import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAbilityEffect;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
@@ -48,7 +48,7 @@ public class DestroyAllEffect extends SpellAbilityEffect {
final boolean noRegen = sa.hasParam("NoRegen");
final Card card = sa.getSourceCard();
- final GameState game = sa.getActivatingPlayer().getGame();
+ final Game game = sa.getActivatingPlayer().getGame();
final Target tgt = sa.getTarget();
Player targetPlayer = null;
diff --git a/src/main/java/forge/card/ability/effects/DestroyEffect.java b/src/main/java/forge/card/ability/effects/DestroyEffect.java
index 2444a73110c..f9028296365 100644
--- a/src/main/java/forge/card/ability/effects/DestroyEffect.java
+++ b/src/main/java/forge/card/ability/effects/DestroyEffect.java
@@ -9,7 +9,7 @@ import forge.CardUtil;
import forge.card.ability.SpellAbilityEffect;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
-import forge.game.GameState;
+import forge.game.Game;
public class DestroyEffect extends SpellAbilityEffect {
/* (non-Javadoc)
@@ -69,7 +69,7 @@ public class DestroyEffect extends SpellAbilityEffect {
@Override
public void resolve(SpellAbility sa) {
final Card card = sa.getSourceCard();
- final GameState game = card.getGame();
+ final Game game = card.getGame();
final boolean remDestroyed = sa.hasParam("RememberDestroyed");
if (remDestroyed) {
diff --git a/src/main/java/forge/card/ability/effects/DigEffect.java b/src/main/java/forge/card/ability/effects/DigEffect.java
index 61381dbf9a9..6e1e2b78bc3 100644
--- a/src/main/java/forge/card/ability/effects/DigEffect.java
+++ b/src/main/java/forge/card/ability/effects/DigEffect.java
@@ -13,7 +13,7 @@ import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAbilityEffect;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.ai.ComputerUtilCard;
import forge.game.player.Player;
import forge.game.zone.PlayerZone;
@@ -52,7 +52,7 @@ public class DigEffect extends SpellAbilityEffect {
public void resolve(SpellAbility sa) {
final Card host = sa.getSourceCard();
final Player player = sa.getActivatingPlayer();
- final GameState game = player.getGame();
+ final Game game = player.getGame();
Player choser = player;
int numToDig = AbilityUtils.calculateAmount(host, sa.getParam("DigNum"), sa);
final ZoneType destZone1 = sa.hasParam("DestinationZone") ? ZoneType.smartValueOf(sa.getParam("DestinationZone"))
@@ -365,7 +365,7 @@ public class DigEffect extends SpellAbilityEffect {
* a {@link forge.CardList} object.
* @return a {@link forge.CardList} object.
*/
- private List sharesNameWithCardOnBattlefield(final GameState game, final List list) {
+ private List sharesNameWithCardOnBattlefield(final Game game, final List list) {
final List toReturn = new ArrayList();
final List play = game.getCardsIn(ZoneType.Battlefield);
for (final Card c : list) {
diff --git a/src/main/java/forge/card/ability/effects/DigUntilEffect.java b/src/main/java/forge/card/ability/effects/DigUntilEffect.java
index 12b120c7569..8027b8cd0e0 100644
--- a/src/main/java/forge/card/ability/effects/DigUntilEffect.java
+++ b/src/main/java/forge/card/ability/effects/DigUntilEffect.java
@@ -11,7 +11,7 @@ import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAbilityEffect;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.player.Player;
import forge.game.zone.PlayerZone;
import forge.game.zone.ZoneType;
@@ -137,7 +137,7 @@ public class DigUntilEffect extends SpellAbilityEffect {
if (revealed.size() > 0) {
GuiChoose.one(p + " revealed: ", revealed);
}
- final GameState game = p.getGame();
+ final Game game = p.getGame();
if (foundDest != null) {
// Allow ordering of found cards
diff --git a/src/main/java/forge/card/ability/effects/EffectEffect.java b/src/main/java/forge/card/ability/effects/EffectEffect.java
index bdfd67aa67f..57356ac3e48 100644
--- a/src/main/java/forge/card/ability/effects/EffectEffect.java
+++ b/src/main/java/forge/card/ability/effects/EffectEffect.java
@@ -13,7 +13,7 @@ import forge.card.spellability.SpellAbility;
import forge.card.trigger.Trigger;
import forge.card.trigger.TriggerHandler;
import forge.card.trigger.TriggerType;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
@@ -37,7 +37,7 @@ public class EffectEffect extends SpellAbilityEffect {
@Override
public void resolve(SpellAbility sa) {
final Card hostCard = sa.getSourceCard();
- final GameState game = hostCard.getGame();
+ final Game game = hostCard.getGame();
String[] effectAbilities = null;
String[] effectTriggers = null;
diff --git a/src/main/java/forge/card/ability/effects/EncodeEffect.java b/src/main/java/forge/card/ability/effects/EncodeEffect.java
index 5d45d0ff183..1ea3d451066 100644
--- a/src/main/java/forge/card/ability/effects/EncodeEffect.java
+++ b/src/main/java/forge/card/ability/effects/EncodeEffect.java
@@ -8,7 +8,7 @@ import forge.card.ability.SpellAbilityEffect;
import forge.card.spellability.SpellAbility;
import forge.card.trigger.Trigger;
import forge.card.trigger.TriggerHandler;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
@@ -29,7 +29,7 @@ public class EncodeEffect extends SpellAbilityEffect {
public void resolve(SpellAbility sa) {
final Card host = sa.getSourceCard();
final Player player = sa.getActivatingPlayer();
- final GameState game = player.getGame();
+ final Game game = player.getGame();
// make list of creatures that controller has on Battlefield
List choices = game.getCardsIn(ZoneType.Battlefield);
diff --git a/src/main/java/forge/card/ability/effects/EndTurnEffect.java b/src/main/java/forge/card/ability/effects/EndTurnEffect.java
index 749b97f367f..dfa0eb8958d 100644
--- a/src/main/java/forge/card/ability/effects/EndTurnEffect.java
+++ b/src/main/java/forge/card/ability/effects/EndTurnEffect.java
@@ -4,7 +4,7 @@ package forge.card.ability.effects;
import forge.Card;
import forge.card.ability.SpellAbilityEffect;
import forge.card.spellability.SpellAbility;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.player.Player;
public class EndTurnEffect extends SpellAbilityEffect {
@@ -19,7 +19,7 @@ public class EndTurnEffect extends SpellAbilityEffect {
@Override
public void resolve(SpellAbility sa) {
- GameState game = sa.getActivatingPlayer().getGame();
+ Game game = sa.getActivatingPlayer().getGame();
// Steps taken from gatherer's rulings on Time Stop.
// 1) All spells and abilities on the stack are exiled. This includes
// Time Stop, though it will continue to resolve. It also includes
diff --git a/src/main/java/forge/card/ability/effects/ManaEffect.java b/src/main/java/forge/card/ability/effects/ManaEffect.java
index b95330c7c13..8a392263d02 100644
--- a/src/main/java/forge/card/ability/effects/ManaEffect.java
+++ b/src/main/java/forge/card/ability/effects/ManaEffect.java
@@ -13,7 +13,7 @@ import forge.card.spellability.AbilityManaPart;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
import forge.game.GameActionUtil;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.ai.ComputerUtilCard;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
@@ -39,7 +39,7 @@ public class ManaEffect extends SpellAbilityEffect {
final List tgtPlayers = getTargetPlayers(sa);
final Target tgt = sa.getTarget();
final boolean optional = sa.hasParam("Optional");
- final GameState game = sa.getActivatingPlayer().getGame();
+ final Game game = sa.getActivatingPlayer().getGame();
if (optional) {
if (!GuiDialog.confirm(sa.getSourceCard(), "Do you want to add mana to your mana pool?")) {
diff --git a/src/main/java/forge/card/ability/effects/PlaneswalkEffect.java b/src/main/java/forge/card/ability/effects/PlaneswalkEffect.java
index f8be7507c95..32b8184a745 100644
--- a/src/main/java/forge/card/ability/effects/PlaneswalkEffect.java
+++ b/src/main/java/forge/card/ability/effects/PlaneswalkEffect.java
@@ -6,7 +6,7 @@ import forge.Card;
import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAbilityEffect;
import forge.card.spellability.SpellAbility;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.player.Player;
/**
@@ -20,7 +20,7 @@ public class PlaneswalkEffect extends SpellAbilityEffect {
*/
@Override
public void resolve(SpellAbility sa) {
- GameState game = sa.getActivatingPlayer().getGame();
+ Game game = sa.getActivatingPlayer().getGame();
for(Player p : game.getPlayers())
{
diff --git a/src/main/java/forge/card/ability/effects/PlayEffect.java b/src/main/java/forge/card/ability/effects/PlayEffect.java
index 956dc17e6c4..f1d8d424118 100644
--- a/src/main/java/forge/card/ability/effects/PlayEffect.java
+++ b/src/main/java/forge/card/ability/effects/PlayEffect.java
@@ -19,7 +19,7 @@ import forge.card.ability.SpellAbilityEffect;
import forge.card.spellability.Spell;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.SpellAbilityRestriction;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.ai.ComputerUtil;
import forge.game.ai.ComputerUtilCard;
import forge.game.player.HumanPlay;
@@ -55,7 +55,7 @@ public class PlayEffect extends SpellAbilityEffect {
public void resolve(SpellAbility sa) {
final Card source = sa.getSourceCard();
Player activator = sa.getActivatingPlayer();
- final GameState game = activator.getGame();
+ final Game game = activator.getGame();
boolean optional = sa.hasParam("Optional");
boolean remember = sa.hasParam("RememberPlayed");
boolean wasFaceDown = false;
diff --git a/src/main/java/forge/card/ability/effects/ProtectAllEffect.java b/src/main/java/forge/card/ability/effects/ProtectAllEffect.java
index 73a964e8af3..6bf3c817aa6 100644
--- a/src/main/java/forge/card/ability/effects/ProtectAllEffect.java
+++ b/src/main/java/forge/card/ability/effects/ProtectAllEffect.java
@@ -12,7 +12,7 @@ import forge.card.MagicColor;
import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAbilityEffect;
import forge.card.spellability.SpellAbility;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
import forge.gui.GuiChoose;
@@ -40,7 +40,7 @@ public class ProtectAllEffect extends SpellAbilityEffect {
@Override
public void resolve(SpellAbility sa) {
final Card host = sa.getSourceCard();
- final GameState game = sa.getActivatingPlayer().getGame();
+ final Game game = sa.getActivatingPlayer().getGame();
final boolean isChoice = sa.getParam("Gains").contains("Choice");
final ArrayList choices = AbilityUtils.getProtectionList(sa);
diff --git a/src/main/java/forge/card/ability/effects/ProtectEffect.java b/src/main/java/forge/card/ability/effects/ProtectEffect.java
index 98e5a385b95..7ca54a65a3b 100644
--- a/src/main/java/forge/card/ability/effects/ProtectEffect.java
+++ b/src/main/java/forge/card/ability/effects/ProtectEffect.java
@@ -12,7 +12,7 @@ import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAbilityEffect;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.ai.ComputerUtilCard;
import forge.game.player.Player;
import forge.gui.GuiChoose;
@@ -97,7 +97,7 @@ public class ProtectEffect extends SpellAbilityEffect {
@Override
public void resolve(SpellAbility sa) {
final Card host = sa.getSourceCard();
- final GameState game = sa.getActivatingPlayer().getGame();
+ final Game game = sa.getActivatingPlayer().getGame();
final boolean isChoice = sa.getParam("Gains").contains("Choice");
final ArrayList choices = AbilityUtils.getProtectionList(sa);
diff --git a/src/main/java/forge/card/ability/effects/PumpAllEffect.java b/src/main/java/forge/card/ability/effects/PumpAllEffect.java
index c4e62b29e8e..b9c0c8dbed8 100644
--- a/src/main/java/forge/card/ability/effects/PumpAllEffect.java
+++ b/src/main/java/forge/card/ability/effects/PumpAllEffect.java
@@ -10,7 +10,7 @@ import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAbilityEffect;
import forge.card.cardfactory.CardFactoryUtil;
import forge.card.spellability.SpellAbility;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
@@ -18,7 +18,7 @@ public class PumpAllEffect extends SpellAbilityEffect {
private void applyPumpAll(final SpellAbility sa, final List list, final int a,
final int d, final List keywords, final ArrayList affectedZones) {
- final GameState game = sa.getActivatingPlayer().getGame();
+ final Game game = sa.getActivatingPlayer().getGame();
final long timestamp = game.getNextTimestamp();
final ArrayList kws = new ArrayList();
final ArrayList hiddenkws = new ArrayList();
@@ -115,7 +115,7 @@ public class PumpAllEffect extends SpellAbilityEffect {
List list;
final List tgtPlayers = getTargetPlayersEmptyAsDefault(sa);
final ArrayList affectedZones = new ArrayList();
- final GameState game = sa.getActivatingPlayer().getGame();
+ final Game game = sa.getActivatingPlayer().getGame();
if (sa.hasParam("PumpZone")) {
for (final String zone : sa.getParam("PumpZone").split(",")) {
diff --git a/src/main/java/forge/card/ability/effects/PumpEffect.java b/src/main/java/forge/card/ability/effects/PumpEffect.java
index 40906c4d438..c1bd3552103 100644
--- a/src/main/java/forge/card/ability/effects/PumpEffect.java
+++ b/src/main/java/forge/card/ability/effects/PumpEffect.java
@@ -13,7 +13,7 @@ import forge.card.ability.SpellAbilityEffect;
import forge.card.cardfactory.CardFactoryUtil;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
import forge.util.Aggregates;
@@ -27,7 +27,7 @@ public class PumpEffect extends SpellAbilityEffect {
&& !sa.getSourceCard().isInPlay()) {
return;
}
- final GameState game = sa.getActivatingPlayer().getGame();
+ final Game game = sa.getActivatingPlayer().getGame();
final long timestamp = game.getNextTimestamp();
final ArrayList kws = new ArrayList();
@@ -88,7 +88,7 @@ public class PumpEffect extends SpellAbilityEffect {
}
private void applyPump(final SpellAbility sa, final Player p, final List keywords) {
- final GameState game = p.getGame();
+ final Game game = p.getGame();
for (int i = 0; i < keywords.size(); i++) {
p.addKeyword(keywords.get(i));
}
@@ -189,7 +189,7 @@ public class PumpEffect extends SpellAbilityEffect {
List tgtCards = new ArrayList();
final ArrayList untargetedCards = new ArrayList();
final Target tgt = sa.getTarget();
- final GameState game = sa.getActivatingPlayer().getGame();
+ final Game game = sa.getActivatingPlayer().getGame();
List tgtPlayers = new ArrayList();
String pumpRemembered = null;
String pumpForget = null;
diff --git a/src/main/java/forge/card/ability/effects/RegenerateAllEffect.java b/src/main/java/forge/card/ability/effects/RegenerateAllEffect.java
index 4636a266061..7e6a66fab77 100644
--- a/src/main/java/forge/card/ability/effects/RegenerateAllEffect.java
+++ b/src/main/java/forge/card/ability/effects/RegenerateAllEffect.java
@@ -7,7 +7,7 @@ import forge.CardLists;
import forge.Command;
import forge.card.ability.SpellAbilityEffect;
import forge.card.spellability.SpellAbility;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.zone.ZoneType;
public class RegenerateAllEffect extends SpellAbilityEffect {
@@ -20,7 +20,7 @@ public class RegenerateAllEffect extends SpellAbilityEffect {
@Override
public void resolve(SpellAbility sa) {
final Card hostCard = sa.getSourceCard();
- final GameState game = hostCard.getGame();
+ final Game game = hostCard.getGame();
String valid = "";
if (sa.hasParam("ValidCards")) {
diff --git a/src/main/java/forge/card/ability/effects/RegenerateEffect.java b/src/main/java/forge/card/ability/effects/RegenerateEffect.java
index 56ef7485994..b071bb7cb45 100644
--- a/src/main/java/forge/card/ability/effects/RegenerateEffect.java
+++ b/src/main/java/forge/card/ability/effects/RegenerateEffect.java
@@ -8,7 +8,7 @@ import forge.Command;
import forge.card.ability.SpellAbilityEffect;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
-import forge.game.GameState;
+import forge.game.Game;
public class RegenerateEffect extends SpellAbilityEffect {
@@ -45,7 +45,7 @@ public class RegenerateEffect extends SpellAbilityEffect {
@Override
public void resolve(SpellAbility sa) {
final Target tgt = sa.getTarget();
- final GameState game = sa.getActivatingPlayer().getGame();
+ final Game game = sa.getActivatingPlayer().getGame();
for (final Card tgtC : getTargetCards(sa)) {
final Command untilEOT = new Command() {
diff --git a/src/main/java/forge/card/ability/effects/RemoveFromCombatEffect.java b/src/main/java/forge/card/ability/effects/RemoveFromCombatEffect.java
index 6cb00313018..982c7e25309 100644
--- a/src/main/java/forge/card/ability/effects/RemoveFromCombatEffect.java
+++ b/src/main/java/forge/card/ability/effects/RemoveFromCombatEffect.java
@@ -8,7 +8,7 @@ import forge.Card;
import forge.card.ability.SpellAbilityEffect;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.player.Player;
public class RemoveFromCombatEffect extends SpellAbilityEffect {
@@ -29,7 +29,7 @@ public class RemoveFromCombatEffect extends SpellAbilityEffect {
@Override
public void resolve(SpellAbility sa) {
final Player activator = sa.getActivatingPlayer();
- final GameState game = activator.getGame();
+ final Game game = activator.getGame();
final Target tgt = sa.getTarget();
diff --git a/src/main/java/forge/card/ability/effects/RepeatEachEffect.java b/src/main/java/forge/card/ability/effects/RepeatEachEffect.java
index a442b84bb02..75c0ed59cae 100644
--- a/src/main/java/forge/card/ability/effects/RepeatEachEffect.java
+++ b/src/main/java/forge/card/ability/effects/RepeatEachEffect.java
@@ -13,7 +13,7 @@ import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAbilityEffect;
import forge.card.spellability.AbilitySub;
import forge.card.spellability.SpellAbility;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
import forge.gui.GuiChoose;
@@ -32,7 +32,7 @@ public class RepeatEachEffect extends SpellAbilityEffect {
repeat.setActivatingPlayer(sa.getActivatingPlayer());
((AbilitySub) repeat).setParent(sa);
- final GameState game = sa.getActivatingPlayer().getGame();
+ final Game game = sa.getActivatingPlayer().getGame();
boolean useImprinted = sa.hasParam("UseImprinted");
boolean loopOverCards = false;
diff --git a/src/main/java/forge/card/ability/effects/RepeatEffect.java b/src/main/java/forge/card/ability/effects/RepeatEffect.java
index 6eb5d4e50e4..1b18d4c472d 100644
--- a/src/main/java/forge/card/ability/effects/RepeatEffect.java
+++ b/src/main/java/forge/card/ability/effects/RepeatEffect.java
@@ -11,7 +11,7 @@ import forge.card.ability.SpellAbilityEffect;
import forge.card.cardfactory.CardFactoryUtil;
import forge.card.spellability.AbilitySub;
import forge.card.spellability.SpellAbility;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
import forge.util.Expressions;
@@ -70,7 +70,7 @@ public class RepeatEffect extends SpellAbilityEffect {
private boolean checkRepeatConditions(final SpellAbility sa) {
//boolean doAgain = false;
final Player activator = sa.getActivatingPlayer();
- final GameState game = activator.getGame();
+ final Game game = activator.getGame();
if (sa.hasParam("RepeatPresent")) {
diff --git a/src/main/java/forge/card/ability/effects/RestartGameEffect.java b/src/main/java/forge/card/ability/effects/RestartGameEffect.java
index 4fca4e0e609..ea769dbcc89 100644
--- a/src/main/java/forge/card/ability/effects/RestartGameEffect.java
+++ b/src/main/java/forge/card/ability/effects/RestartGameEffect.java
@@ -16,7 +16,7 @@ import forge.card.trigger.TriggerType;
import forge.game.GameAction;
import forge.game.GameAge;
import forge.game.GameNew;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.RegisteredPlayer;
import forge.game.player.Player;
import forge.game.zone.PlayerZone;
@@ -30,7 +30,7 @@ public class RestartGameEffect extends SpellAbilityEffect {
@Override
public void resolve(SpellAbility sa) {
final Player activator = sa.getActivatingPlayer();
- final GameState game = activator.getGame();
+ final Game game = activator.getGame();
List players = game.getPlayers();
Map> playerLibraries = new HashMap>();
diff --git a/src/main/java/forge/card/ability/effects/RollPlanarDiceEffect.java b/src/main/java/forge/card/ability/effects/RollPlanarDiceEffect.java
index 5d8da025aaa..eb5ea868014 100644
--- a/src/main/java/forge/card/ability/effects/RollPlanarDiceEffect.java
+++ b/src/main/java/forge/card/ability/effects/RollPlanarDiceEffect.java
@@ -2,7 +2,7 @@ package forge.card.ability.effects;
import forge.card.ability.SpellAbilityEffect;
import forge.card.spellability.SpellAbility;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.PlanarDice;
import forge.game.player.Player;
import forge.gui.GuiDialog;
@@ -20,7 +20,7 @@ public class RollPlanarDiceEffect extends SpellAbilityEffect {
public void resolve(SpellAbility sa) {
boolean countedTowardsCost = !sa.hasParam("NotCountedTowardsCost");
final Player activator = sa.getActivatingPlayer();
- final GameState game = activator.getGame();
+ final Game game = activator.getGame();
if(countedTowardsCost) {
game.getPhaseHandler().incPlanarDiceRolledthisTurn();
diff --git a/src/main/java/forge/card/ability/effects/SacrificeAllEffect.java b/src/main/java/forge/card/ability/effects/SacrificeAllEffect.java
index 95a3695e235..164c2c987ba 100644
--- a/src/main/java/forge/card/ability/effects/SacrificeAllEffect.java
+++ b/src/main/java/forge/card/ability/effects/SacrificeAllEffect.java
@@ -7,7 +7,7 @@ import forge.Card;
import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAbilityEffect;
import forge.card.spellability.SpellAbility;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
@@ -36,7 +36,7 @@ public class SacrificeAllEffect extends SpellAbilityEffect {
public void resolve(SpellAbility sa) {
final Card card = sa.getSourceCard();
final Player activator = sa.getActivatingPlayer();
- final GameState game = activator.getGame();
+ final Game game = activator.getGame();
String valid = "";
diff --git a/src/main/java/forge/card/ability/effects/SacrificeEffect.java b/src/main/java/forge/card/ability/effects/SacrificeEffect.java
index a66ee50d13e..9f4e6c8c5ec 100644
--- a/src/main/java/forge/card/ability/effects/SacrificeEffect.java
+++ b/src/main/java/forge/card/ability/effects/SacrificeEffect.java
@@ -8,7 +8,7 @@ import forge.CardPredicates;
import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAbilityEffect;
import forge.card.spellability.SpellAbility;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
import forge.util.Aggregates;
@@ -19,7 +19,7 @@ public class SacrificeEffect extends SpellAbilityEffect {
public void resolve(SpellAbility sa) {
final Card card = sa.getSourceCard();
final Player activator = sa.getActivatingPlayer();
- final GameState game = activator.getGame();
+ final Game game = activator.getGame();
// Expand Sacrifice keyword here depending on what we need out of it.
final String num = sa.hasParam("Amount") ? sa.getParam("Amount") : "1";
diff --git a/src/main/java/forge/card/ability/effects/TapAllEffect.java b/src/main/java/forge/card/ability/effects/TapAllEffect.java
index 5a64c2ac6fb..e715cdfceea 100644
--- a/src/main/java/forge/card/ability/effects/TapAllEffect.java
+++ b/src/main/java/forge/card/ability/effects/TapAllEffect.java
@@ -8,7 +8,7 @@ import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAbilityEffect;
import forge.card.spellability.AbilitySub;
import forge.card.spellability.SpellAbility;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
@@ -29,7 +29,7 @@ public class TapAllEffect extends SpellAbilityEffect {
@Override
public void resolve(SpellAbility sa) {
final Player activator = sa.getActivatingPlayer();
- final GameState game = activator.getGame();
+ final Game game = activator.getGame();
final Card card = sa.getSourceCard();
final boolean remTapped = sa.hasParam("RememberTapped");
if (remTapped) {
diff --git a/src/main/java/forge/card/ability/effects/TapOrUntapAllEffect.java b/src/main/java/forge/card/ability/effects/TapOrUntapAllEffect.java
index 69dfa66416b..0480745be9c 100644
--- a/src/main/java/forge/card/ability/effects/TapOrUntapAllEffect.java
+++ b/src/main/java/forge/card/ability/effects/TapOrUntapAllEffect.java
@@ -9,7 +9,7 @@ import forge.CardLists;
import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAbilityEffect;
import forge.card.spellability.SpellAbility;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
import forge.gui.GuiChoose;
@@ -45,7 +45,7 @@ public class TapOrUntapAllEffect extends SpellAbilityEffect {
public void resolve(SpellAbility sa) {
List validCards = getTargetCards(sa);
final Player activator = sa.getActivatingPlayer();
- final GameState game = activator.getGame();
+ final Game game = activator.getGame();
List targetedPlayers = getTargetPlayersEmptyAsDefault(sa);
diff --git a/src/main/java/forge/card/ability/effects/TokenEffect.java b/src/main/java/forge/card/ability/effects/TokenEffect.java
index a3d3012b171..5a2f417c65d 100644
--- a/src/main/java/forge/card/ability/effects/TokenEffect.java
+++ b/src/main/java/forge/card/ability/effects/TokenEffect.java
@@ -30,7 +30,7 @@ import forge.card.cardfactory.CardFactory;
import forge.card.spellability.SpellAbility;
import forge.card.trigger.Trigger;
import forge.card.trigger.TriggerHandler;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.event.GameEventTokenCreated;
import forge.game.player.Player;
import forge.gui.GuiChoose;
@@ -276,7 +276,7 @@ public class TokenEffect extends SpellAbilityEffect {
}
}
- final GameState game = controller.getGame();
+ final Game game = controller.getGame();
for (final Card c : tokens) {
if (this.tokenTapped) {
c.setTapped(true);
diff --git a/src/main/java/forge/card/ability/effects/UnattachAllEffect.java b/src/main/java/forge/card/ability/effects/UnattachAllEffect.java
index baf2b388549..c4692c8e71f 100644
--- a/src/main/java/forge/card/ability/effects/UnattachAllEffect.java
+++ b/src/main/java/forge/card/ability/effects/UnattachAllEffect.java
@@ -9,7 +9,7 @@ import forge.CardLists;
import forge.GameEntity;
import forge.card.ability.SpellAbilityEffect;
import forge.card.spellability.SpellAbility;
-import forge.game.GameState;
+import forge.game.Game;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
@@ -150,7 +150,7 @@ public class UnattachAllEffect extends SpellAbilityEffect {
@Override
public void resolve(SpellAbility sa) {
Card source = sa.getSourceCard();
- final GameState game = sa.getActivatingPlayer().getGame();
+ final Game game = sa.getActivatingPlayer().getGame();
final List