From 6ff8ba6682521c103b5905741d86dff5178b3cfb Mon Sep 17 00:00:00 2001
From: Maxmtg
Date: Mon, 24 Jun 2013 10:54:46 +0000
Subject: [PATCH] moved Combat & CombatUtil to package forge.card.combat Sol
has created. removed EndOfCombat and Cleanup classes as they don't add
anything specific to base class. Base class Phase is no longer abstract, also
it does not need reference to game instance any longer
---
.gitattributes | 6 +--
src/main/java/forge/Card.java | 2 +-
src/main/java/forge/CardPredicates.java | 2 +-
.../java/forge/card/ability/ai/AttachAi.java | 2 +-
.../forge/card/ability/ai/ChangeZoneAi.java | 2 +-
.../forge/card/ability/ai/ChooseCardAi.java | 2 +-
.../forge/card/ability/ai/ChooseSourceAi.java | 2 +-
.../forge/card/ability/ai/ControlGainAi.java | 2 +-
.../card/ability/ai/DamagePreventAi.java | 2 +-
.../java/forge/card/ability/ai/DebuffAi.java | 2 +-
.../forge/card/ability/ai/DebuffAllAi.java | 2 +-
.../java/forge/card/ability/ai/EffectAi.java | 2 +-
.../java/forge/card/ability/ai/EncodeAi.java | 2 +-
.../forge/card/ability/ai/MustBlockAi.java | 2 +-
.../java/forge/card/ability/ai/ProtectAi.java | 2 +-
.../forge/card/ability/ai/PumpAiBase.java | 4 +-
.../java/forge/card/ability/ai/PumpAllAi.java | 4 +-
.../forge/card/ability/ai/RegenerateAi.java | 2 +-
.../card/ability/ai/RegenerateAllAi.java | 2 +-
.../java/forge/card/ability/ai/TapAiBase.java | 2 +-
.../java/forge/card/ability/ai/TapAllAi.java | 2 +-
.../ability/effects/ChangeZoneEffect.java | 2 +-
.../ability/effects/ChooseSourceEffect.java | 2 +-
.../card/ability/effects/TokenEffect.java | 2 +-
src/main/java/forge/game/Game.java | 18 ++++-----
.../forge/game/ai/AiAttackController.java | 14 +++----
.../java/forge/game/ai/AiBlockController.java | 12 +++---
src/main/java/forge/game/ai/AiController.java | 2 +-
src/main/java/forge/game/ai/ComputerUtil.java | 4 +-
.../java/forge/game/ai/ComputerUtilCard.java | 2 +-
.../forge/game/ai/ComputerUtilCombat.java | 28 +++++++-------
.../forge/game/{phase => combat}/Combat.java | 3 +-
.../game/{phase => combat}/CombatUtil.java | 17 +++++----
src/main/java/forge/game/phase/Cleanup.java | 37 -------------------
.../java/forge/game/phase/EndOfCombat.java | 37 -------------------
src/main/java/forge/game/phase/EndOfTurn.java | 6 ++-
src/main/java/forge/game/phase/Phase.java | 13 ++-----
.../java/forge/game/phase/PhaseHandler.java | 2 +
src/main/java/forge/game/phase/Untap.java | 6 ++-
src/main/java/forge/game/phase/Upkeep.java | 6 ++-
.../forge/game/player/PlayerController.java | 2 +-
.../forge/game/player/PlayerControllerAi.java | 2 +-
.../game/player/PlayerControllerHuman.java | 2 +-
.../java/forge/gui/input/InputAttack.java | 4 +-
src/main/java/forge/gui/input/InputBlock.java | 4 +-
.../forge/gui/match/TargetingOverlay.java | 2 +-
.../forge/gui/match/controllers/CCombat.java | 2 +-
.../forge/gui/match/controllers/CDock.java | 4 +-
.../java/forge/view/arcane/CardPanel.java | 2 +-
src/test/java/forge/RunTest.java | 2 +-
50 files changed, 110 insertions(+), 179 deletions(-)
rename src/main/java/forge/game/{phase => combat}/Combat.java (99%)
rename src/main/java/forge/game/{phase => combat}/CombatUtil.java (98%)
delete mode 100644 src/main/java/forge/game/phase/Cleanup.java
delete mode 100644 src/main/java/forge/game/phase/EndOfCombat.java
diff --git a/.gitattributes b/.gitattributes
index e0fecb7b088..a68f71225b8 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -14475,6 +14475,8 @@ src/main/java/forge/game/ai/ComputerUtilCombat.java -text
src/main/java/forge/game/ai/ComputerUtilCost.java -text
src/main/java/forge/game/ai/ComputerUtilMana.java -text
src/main/java/forge/game/combat/AttackingBand.java -text
+src/main/java/forge/game/combat/Combat.java svneol=native#text/plain
+src/main/java/forge/game/combat/CombatUtil.java svneol=native#text/plain
src/main/java/forge/game/event/GameEvent.java -text
src/main/java/forge/game/event/GameEventAnteCardsSelected.java -text
src/main/java/forge/game/event/GameEventAttackersDeclared.java -text
@@ -14528,10 +14530,6 @@ src/main/java/forge/game/limited/SealedCardPoolGenerator.java svneol=native#text
src/main/java/forge/game/limited/SealedDeckBuilder.java svneol=native#text/plain
src/main/java/forge/game/limited/package-info.java svneol=native#text/plain
src/main/java/forge/game/package-info.java -text
-src/main/java/forge/game/phase/Cleanup.java -text
-src/main/java/forge/game/phase/Combat.java svneol=native#text/plain
-src/main/java/forge/game/phase/CombatUtil.java svneol=native#text/plain
-src/main/java/forge/game/phase/EndOfCombat.java svneol=native#text/plain
src/main/java/forge/game/phase/EndOfTurn.java svneol=native#text/plain
src/main/java/forge/game/phase/ExtraTurn.java -text
src/main/java/forge/game/phase/Phase.java svneol=native#text/plain
diff --git a/src/main/java/forge/Card.java b/src/main/java/forge/Card.java
index 6162e759e57..cc611815df6 100644
--- a/src/main/java/forge/Card.java
+++ b/src/main/java/forge/Card.java
@@ -70,13 +70,13 @@ import forge.game.Game;
import forge.game.GameActionUtil;
import forge.game.GlobalRuleChange;
import forge.game.combat.AttackingBand;
+import forge.game.combat.Combat;
import forge.game.event.GameEventCardDamaged;
import forge.game.event.GameEventCardDamaged.DamageType;
import forge.game.event.GameEventCardEquipped;
import forge.game.event.GameEventCounterAdded;
import forge.game.event.GameEventCounterRemoved;
import forge.game.event.GameEventCardTapped;
-import forge.game.phase.Combat;
import forge.game.player.Player;
import forge.game.zone.Zone;
import forge.game.zone.ZoneType;
diff --git a/src/main/java/forge/CardPredicates.java b/src/main/java/forge/CardPredicates.java
index 1731fb4f790..b1d46323443 100644
--- a/src/main/java/forge/CardPredicates.java
+++ b/src/main/java/forge/CardPredicates.java
@@ -24,7 +24,7 @@ import com.google.common.base.Predicate;
import com.google.common.collect.Iterables;
import forge.card.spellability.SpellAbility;
-import forge.game.phase.CombatUtil;
+import forge.game.combat.CombatUtil;
import forge.game.player.Player;
import forge.util.PredicateString;
diff --git a/src/main/java/forge/card/ability/ai/AttachAi.java b/src/main/java/forge/card/ability/ai/AttachAi.java
index cd94ce63219..9dc4f775a35 100644
--- a/src/main/java/forge/card/ability/ai/AttachAi.java
+++ b/src/main/java/forge/card/ability/ai/AttachAi.java
@@ -27,7 +27,7 @@ import forge.game.ai.ComputerUtil;
import forge.game.ai.ComputerUtilCard;
import forge.game.ai.ComputerUtilCost;
import forge.game.ai.ComputerUtilMana;
-import forge.game.phase.CombatUtil;
+import forge.game.combat.CombatUtil;
import forge.game.phase.PhaseHandler;
import forge.game.phase.PhaseType;
import forge.game.player.Player;
diff --git a/src/main/java/forge/card/ability/ai/ChangeZoneAi.java b/src/main/java/forge/card/ability/ai/ChangeZoneAi.java
index c553551c479..712878cd03a 100644
--- a/src/main/java/forge/card/ability/ai/ChangeZoneAi.java
+++ b/src/main/java/forge/card/ability/ai/ChangeZoneAi.java
@@ -37,7 +37,7 @@ import forge.game.ai.ComputerUtilCard;
import forge.game.ai.ComputerUtilCombat;
import forge.game.ai.ComputerUtilCost;
import forge.game.ai.ComputerUtilMana;
-import forge.game.phase.Combat;
+import forge.game.combat.Combat;
import forge.game.phase.PhaseType;
import forge.game.player.Player;
import forge.game.player.PlayerActionConfirmMode;
diff --git a/src/main/java/forge/card/ability/ai/ChooseCardAi.java b/src/main/java/forge/card/ability/ai/ChooseCardAi.java
index a367bb7989a..34da495dd95 100644
--- a/src/main/java/forge/card/ability/ai/ChooseCardAi.java
+++ b/src/main/java/forge/card/ability/ai/ChooseCardAi.java
@@ -13,7 +13,7 @@ import forge.card.spellability.TargetRestrictions;
import forge.game.Game;
import forge.game.ai.ComputerUtilCard;
import forge.game.ai.ComputerUtilCombat;
-import forge.game.phase.Combat;
+import forge.game.combat.Combat;
import forge.game.phase.PhaseType;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
diff --git a/src/main/java/forge/card/ability/ai/ChooseSourceAi.java b/src/main/java/forge/card/ability/ai/ChooseSourceAi.java
index a1219a3fa53..a0f1b7fae34 100644
--- a/src/main/java/forge/card/ability/ai/ChooseSourceAi.java
+++ b/src/main/java/forge/card/ability/ai/ChooseSourceAi.java
@@ -16,7 +16,7 @@ import forge.card.spellability.TargetRestrictions;
import forge.game.Game;
import forge.game.ai.ComputerUtilCombat;
import forge.game.ai.ComputerUtilCost;
-import forge.game.phase.Combat;
+import forge.game.combat.Combat;
import forge.game.phase.PhaseType;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
diff --git a/src/main/java/forge/card/ability/ai/ControlGainAi.java b/src/main/java/forge/card/ability/ai/ControlGainAi.java
index 3dce6675c49..bb157762ce6 100644
--- a/src/main/java/forge/card/ability/ai/ControlGainAi.java
+++ b/src/main/java/forge/card/ability/ai/ControlGainAi.java
@@ -31,7 +31,7 @@ import forge.card.spellability.SpellAbility;
import forge.card.spellability.TargetRestrictions;
import forge.game.Game;
import forge.game.ai.ComputerUtilCard;
-import forge.game.phase.CombatUtil;
+import forge.game.combat.CombatUtil;
import forge.game.phase.PhaseType;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
diff --git a/src/main/java/forge/card/ability/ai/DamagePreventAi.java b/src/main/java/forge/card/ability/ai/DamagePreventAi.java
index 0df72ab9381..48d0849b8ff 100644
--- a/src/main/java/forge/card/ability/ai/DamagePreventAi.java
+++ b/src/main/java/forge/card/ability/ai/DamagePreventAi.java
@@ -17,7 +17,7 @@ import forge.game.ai.ComputerUtil;
import forge.game.ai.ComputerUtilCard;
import forge.game.ai.ComputerUtilCombat;
import forge.game.ai.ComputerUtilCost;
-import forge.game.phase.Combat;
+import forge.game.combat.Combat;
import forge.game.phase.PhaseHandler;
import forge.game.phase.PhaseType;
import forge.game.player.Player;
diff --git a/src/main/java/forge/card/ability/ai/DebuffAi.java b/src/main/java/forge/card/ability/ai/DebuffAi.java
index e58ee1c1de6..fde841b38d8 100644
--- a/src/main/java/forge/card/ability/ai/DebuffAi.java
+++ b/src/main/java/forge/card/ability/ai/DebuffAi.java
@@ -19,7 +19,7 @@ import forge.card.spellability.TargetRestrictions;
import forge.game.Game;
import forge.game.ai.ComputerUtilCard;
import forge.game.ai.ComputerUtilCost;
-import forge.game.phase.Combat;
+import forge.game.combat.Combat;
import forge.game.phase.PhaseHandler;
import forge.game.phase.PhaseType;
import forge.game.player.Player;
diff --git a/src/main/java/forge/card/ability/ai/DebuffAllAi.java b/src/main/java/forge/card/ability/ai/DebuffAllAi.java
index c602b4e0b06..09c7470169f 100644
--- a/src/main/java/forge/card/ability/ai/DebuffAllAi.java
+++ b/src/main/java/forge/card/ability/ai/DebuffAllAi.java
@@ -9,7 +9,7 @@ import forge.Card;
import forge.CardLists;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
-import forge.game.phase.CombatUtil;
+import forge.game.combat.CombatUtil;
import forge.game.phase.PhaseType;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
diff --git a/src/main/java/forge/card/ability/ai/EffectAi.java b/src/main/java/forge/card/ability/ai/EffectAi.java
index c7687f2a7c7..bfff06e0aaa 100644
--- a/src/main/java/forge/card/ability/ai/EffectAi.java
+++ b/src/main/java/forge/card/ability/ai/EffectAi.java
@@ -13,7 +13,7 @@ import forge.card.spellability.TargetRestrictions;
import forge.game.Game;
import forge.game.ai.ComputerUtilCard;
import forge.game.ai.ComputerUtilCombat;
-import forge.game.phase.CombatUtil;
+import forge.game.combat.CombatUtil;
import forge.game.phase.PhaseHandler;
import forge.game.phase.PhaseType;
import forge.game.player.Player;
diff --git a/src/main/java/forge/card/ability/ai/EncodeAi.java b/src/main/java/forge/card/ability/ai/EncodeAi.java
index 3fafa45916a..f1492030475 100644
--- a/src/main/java/forge/card/ability/ai/EncodeAi.java
+++ b/src/main/java/forge/card/ability/ai/EncodeAi.java
@@ -26,7 +26,7 @@ import forge.CardLists;
import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.game.ai.ComputerUtilCard;
-import forge.game.phase.CombatUtil;
+import forge.game.combat.CombatUtil;
import forge.game.player.Player;
import forge.game.player.PlayerActionConfirmMode;
diff --git a/src/main/java/forge/card/ability/ai/MustBlockAi.java b/src/main/java/forge/card/ability/ai/MustBlockAi.java
index d1934898a15..d3fce8f5cdf 100644
--- a/src/main/java/forge/card/ability/ai/MustBlockAi.java
+++ b/src/main/java/forge/card/ability/ai/MustBlockAi.java
@@ -13,7 +13,7 @@ import forge.card.spellability.SpellAbility;
import forge.card.spellability.TargetRestrictions;
import forge.game.ai.ComputerUtilCard;
import forge.game.ai.ComputerUtilCombat;
-import forge.game.phase.CombatUtil;
+import forge.game.combat.CombatUtil;
import forge.game.phase.PhaseType;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
diff --git a/src/main/java/forge/card/ability/ai/ProtectAi.java b/src/main/java/forge/card/ability/ai/ProtectAi.java
index ade0befd1c4..fcbda0067f9 100644
--- a/src/main/java/forge/card/ability/ai/ProtectAi.java
+++ b/src/main/java/forge/card/ability/ai/ProtectAi.java
@@ -18,7 +18,7 @@ import forge.game.ai.ComputerUtil;
import forge.game.ai.ComputerUtilCard;
import forge.game.ai.ComputerUtilCombat;
import forge.game.ai.ComputerUtilCost;
-import forge.game.phase.Combat;
+import forge.game.combat.Combat;
import forge.game.phase.PhaseType;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
diff --git a/src/main/java/forge/card/ability/ai/PumpAiBase.java b/src/main/java/forge/card/ability/ai/PumpAiBase.java
index c258693c13c..5b8f0278a24 100644
--- a/src/main/java/forge/card/ability/ai/PumpAiBase.java
+++ b/src/main/java/forge/card/ability/ai/PumpAiBase.java
@@ -17,8 +17,8 @@ import forge.game.Game;
import forge.game.ai.ComputerUtil;
import forge.game.ai.ComputerUtilCard;
import forge.game.ai.ComputerUtilCombat;
-import forge.game.phase.Combat;
-import forge.game.phase.CombatUtil;
+import forge.game.combat.Combat;
+import forge.game.combat.CombatUtil;
import forge.game.phase.PhaseHandler;
import forge.game.phase.PhaseType;
import forge.game.phase.Untap;
diff --git a/src/main/java/forge/card/ability/ai/PumpAllAi.java b/src/main/java/forge/card/ability/ai/PumpAllAi.java
index fc48b887779..77ddb428929 100644
--- a/src/main/java/forge/card/ability/ai/PumpAllAi.java
+++ b/src/main/java/forge/card/ability/ai/PumpAllAi.java
@@ -15,8 +15,8 @@ import forge.game.Game;
import forge.game.ai.ComputerUtil;
import forge.game.ai.ComputerUtilCard;
import forge.game.ai.ComputerUtilCombat;
-import forge.game.phase.Combat;
-import forge.game.phase.CombatUtil;
+import forge.game.combat.Combat;
+import forge.game.combat.CombatUtil;
import forge.game.phase.PhaseType;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
diff --git a/src/main/java/forge/card/ability/ai/RegenerateAi.java b/src/main/java/forge/card/ability/ai/RegenerateAi.java
index 766f70a95b2..1233f3a86c5 100644
--- a/src/main/java/forge/card/ability/ai/RegenerateAi.java
+++ b/src/main/java/forge/card/ability/ai/RegenerateAi.java
@@ -34,7 +34,7 @@ import forge.game.ai.ComputerUtil;
import forge.game.ai.ComputerUtilCard;
import forge.game.ai.ComputerUtilCombat;
import forge.game.ai.ComputerUtilCost;
-import forge.game.phase.Combat;
+import forge.game.combat.Combat;
import forge.game.phase.PhaseType;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
diff --git a/src/main/java/forge/card/ability/ai/RegenerateAllAi.java b/src/main/java/forge/card/ability/ai/RegenerateAllAi.java
index c91d2e8028e..ae8fce20bb2 100644
--- a/src/main/java/forge/card/ability/ai/RegenerateAllAi.java
+++ b/src/main/java/forge/card/ability/ai/RegenerateAllAi.java
@@ -13,7 +13,7 @@ import forge.game.Game;
import forge.game.ai.ComputerUtil;
import forge.game.ai.ComputerUtilCombat;
import forge.game.ai.ComputerUtilCost;
-import forge.game.phase.Combat;
+import forge.game.combat.Combat;
import forge.game.phase.PhaseType;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
diff --git a/src/main/java/forge/card/ability/ai/TapAiBase.java b/src/main/java/forge/card/ability/ai/TapAiBase.java
index 89b9e754329..438f9ace240 100644
--- a/src/main/java/forge/card/ability/ai/TapAiBase.java
+++ b/src/main/java/forge/card/ability/ai/TapAiBase.java
@@ -15,7 +15,7 @@ import forge.card.spellability.TargetRestrictions;
import forge.game.Game;
import forge.game.ai.ComputerUtil;
import forge.game.ai.ComputerUtilCard;
-import forge.game.phase.CombatUtil;
+import forge.game.combat.CombatUtil;
import forge.game.phase.PhaseHandler;
import forge.game.phase.PhaseType;
import forge.game.player.Player;
diff --git a/src/main/java/forge/card/ability/ai/TapAllAi.java b/src/main/java/forge/card/ability/ai/TapAllAi.java
index 8af60b465e2..33a947ff103 100644
--- a/src/main/java/forge/card/ability/ai/TapAllAi.java
+++ b/src/main/java/forge/card/ability/ai/TapAllAi.java
@@ -13,7 +13,7 @@ import forge.card.ability.SpellAbilityAi;
import forge.card.spellability.SpellAbility;
import forge.card.spellability.TargetRestrictions;
import forge.game.Game;
-import forge.game.phase.CombatUtil;
+import forge.game.combat.CombatUtil;
import forge.game.phase.PhaseType;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
diff --git a/src/main/java/forge/card/ability/effects/ChangeZoneEffect.java b/src/main/java/forge/card/ability/effects/ChangeZoneEffect.java
index a5f2a639de2..971dceecd2b 100644
--- a/src/main/java/forge/card/ability/effects/ChangeZoneEffect.java
+++ b/src/main/java/forge/card/ability/effects/ChangeZoneEffect.java
@@ -23,7 +23,7 @@ import forge.card.spellability.SpellAbilityStackInstance;
import forge.card.spellability.TargetRestrictions;
import forge.card.trigger.TriggerType;
import forge.game.Game;
-import forge.game.phase.Combat;
+import forge.game.combat.Combat;
import forge.game.player.Player;
import forge.game.zone.Zone;
import forge.game.zone.ZoneType;
diff --git a/src/main/java/forge/card/ability/effects/ChooseSourceEffect.java b/src/main/java/forge/card/ability/effects/ChooseSourceEffect.java
index adcf8122dc7..3c0d1432658 100644
--- a/src/main/java/forge/card/ability/effects/ChooseSourceEffect.java
+++ b/src/main/java/forge/card/ability/effects/ChooseSourceEffect.java
@@ -18,7 +18,7 @@ import forge.card.spellability.TargetRestrictions;
import forge.game.Game;
import forge.game.ai.ComputerUtilCard;
import forge.game.ai.ComputerUtilCombat;
-import forge.game.phase.Combat;
+import forge.game.combat.Combat;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
import forge.gui.GuiChoose;
diff --git a/src/main/java/forge/card/ability/effects/TokenEffect.java b/src/main/java/forge/card/ability/effects/TokenEffect.java
index cf57089708a..e0246308a60 100644
--- a/src/main/java/forge/card/ability/effects/TokenEffect.java
+++ b/src/main/java/forge/card/ability/effects/TokenEffect.java
@@ -31,8 +31,8 @@ import forge.card.spellability.SpellAbility;
import forge.card.trigger.Trigger;
import forge.card.trigger.TriggerHandler;
import forge.game.Game;
+import forge.game.combat.Combat;
import forge.game.event.GameEventTokenCreated;
-import forge.game.phase.Combat;
import forge.game.player.Player;
import forge.gui.GuiChoose;
import forge.item.PaperToken;
diff --git a/src/main/java/forge/game/Game.java b/src/main/java/forge/game/Game.java
index 82e008cbf6d..875675ffc56 100644
--- a/src/main/java/forge/game/Game.java
+++ b/src/main/java/forge/game/Game.java
@@ -35,13 +35,13 @@ import forge.card.replacement.ReplacementHandler;
import forge.card.spellability.SpellAbilityStackInstance;
import forge.card.trigger.TriggerHandler;
import forge.card.trigger.TriggerType;
+import forge.game.combat.Combat;
import forge.game.event.GameEvent;
import forge.game.event.GameEventGameOutcome;
-import forge.game.phase.Cleanup;
-import forge.game.phase.Combat;
-import forge.game.phase.EndOfCombat;
import forge.game.phase.EndOfTurn;
+import forge.game.phase.Phase;
import forge.game.phase.PhaseHandler;
+import forge.game.phase.PhaseType;
import forge.game.phase.Untap;
import forge.game.phase.Upkeep;
import forge.game.player.Player;
@@ -61,9 +61,9 @@ public class Game {
private List activePlanes = null;
- public final Cleanup cleanup;
+ public final Phase cleanup;
public final EndOfTurn endOfTurn;
- public final EndOfCombat endOfCombat;
+ public final Phase endOfCombat;
public final Untap untap;
public final Upkeep upkeep;
private final PhaseHandler phaseHandler;
@@ -114,9 +114,9 @@ public class Game {
untap = new Untap(this);
upkeep = new Upkeep(this);
- cleanup = new Cleanup(this);
+ cleanup = new Phase(PhaseType.CLEANUP);
endOfTurn = new EndOfTurn(this);
- endOfCombat = new EndOfCombat(this);
+ endOfCombat = new Phase(PhaseType.COMBAT_END);
subscribeToEvents(gameLog.getEventVisitor());
}
@@ -145,7 +145,7 @@ public class Game {
*
* @return the cleanup step
*/
- public final Cleanup getCleanup() {
+ public final Phase getCleanup() {
return this.cleanup;
}
@@ -163,7 +163,7 @@ public class Game {
*
* @return the endOfCombat
*/
- public final EndOfCombat getEndOfCombat() {
+ public final Phase getEndOfCombat() {
return this.endOfCombat;
}
diff --git a/src/main/java/forge/game/ai/AiAttackController.java b/src/main/java/forge/game/ai/AiAttackController.java
index d77b2a14065..ee36eefb2e9 100644
--- a/src/main/java/forge/game/ai/AiAttackController.java
+++ b/src/main/java/forge/game/ai/AiAttackController.java
@@ -30,8 +30,8 @@ import forge.CounterType;
import forge.GameEntity;
import forge.card.trigger.Trigger;
import forge.card.trigger.TriggerType;
-import forge.game.phase.Combat;
-import forge.game.phase.CombatUtil;
+import forge.game.combat.Combat;
+import forge.game.combat.CombatUtil;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
@@ -130,7 +130,7 @@ public class AiAttackController {
* @param attacker
* a {@link forge.Card} object.
* @param combat
- * a {@link forge.game.phase.Combat} object.
+ * a {@link forge.game.combat.Combat} object.
* @return a boolean.
*/
public final boolean isEffectiveAttacker(final Player ai, final Card attacker, final Combat combat) {
@@ -220,7 +220,7 @@ public class AiAttackController {
* @param attackers
* a {@link forge.CardList} object.
* @param combat
- * a {@link forge.game.phase.Combat} object.
+ * a {@link forge.game.combat.Combat} object.
* @return a {@link forge.CardList} object.
*/
public final List notNeededAsBlockers(final Player ai, final List attackers) {
@@ -438,7 +438,7 @@ public class AiAttackController {
*
*
* @param c
- * a {@link forge.game.phase.Combat} object.
+ * a {@link forge.game.combat.Combat} object.
* @param bAssault
* a boolean.
*/
@@ -491,7 +491,7 @@ public class AiAttackController {
* Getter for the field attackers.
*
*
- * @return a {@link forge.game.phase.Combat} object.
+ * @return a {@link forge.game.combat.Combat} object.
*/
public final void declareAttackers(final Combat combat) {
// if this method is called multiple times during a turn,
@@ -872,7 +872,7 @@ public class AiAttackController {
* @param defenders
* a {@link forge.CardList} object.
* @param combat
- * a {@link forge.game.phase.Combat} object.
+ * a {@link forge.game.combat.Combat} object.
* @return a boolean.
*/
public final boolean shouldAttack(final Player ai, final Card attacker, final List defenders, final Combat combat) {
diff --git a/src/main/java/forge/game/ai/AiBlockController.java b/src/main/java/forge/game/ai/AiBlockController.java
index 30433701cc8..1a071f93d06 100644
--- a/src/main/java/forge/game/ai/AiBlockController.java
+++ b/src/main/java/forge/game/ai/AiBlockController.java
@@ -28,8 +28,8 @@ import forge.CardLists;
import forge.CardPredicates;
import forge.CounterType;
import forge.GameEntity;
-import forge.game.phase.Combat;
-import forge.game.phase.CombatUtil;
+import forge.game.combat.Combat;
+import forge.game.combat.CombatUtil;
import forge.game.player.Player;
@@ -239,8 +239,8 @@ public class AiBlockController {
*
*
* @param combat
- * a {@link forge.game.phase.Combat} object.
- * @return a {@link forge.game.phase.Combat} object.
+ * a {@link forge.game.combat.Combat} object.
+ * @return a {@link forge.game.combat.Combat} object.
*/
static final Predicate rampagesOrNeedsManyToBlock = Predicates.or(CardPredicates.containsKeyword("Rampage"), CardPredicates.containsKeyword("CantBeBlockedByAmount GT"));
@@ -362,8 +362,8 @@ public class AiBlockController {
*
*
* @param combat
- * a {@link forge.game.phase.Combat} object.
- * @return a {@link forge.game.phase.Combat} object.
+ * a {@link forge.game.combat.Combat} object.
+ * @return a {@link forge.game.combat.Combat} object.
*/
private void makeTradeBlocks(final Combat combat) {
diff --git a/src/main/java/forge/game/ai/AiController.java b/src/main/java/forge/game/ai/AiController.java
index 008c2e364a1..421faa687cc 100644
--- a/src/main/java/forge/game/ai/AiController.java
+++ b/src/main/java/forge/game/ai/AiController.java
@@ -45,7 +45,7 @@ import forge.card.spellability.SpellAbility;
import forge.card.spellability.SpellPermanent;
import forge.game.GameActionUtil;
import forge.game.Game;
-import forge.game.phase.Combat;
+import forge.game.combat.Combat;
import forge.game.phase.PhaseType;
import forge.game.player.Player;
import forge.game.player.PlayerActionConfirmMode;
diff --git a/src/main/java/forge/game/ai/ComputerUtil.java b/src/main/java/forge/game/ai/ComputerUtil.java
index 173da802e3d..988bd95d0cf 100644
--- a/src/main/java/forge/game/ai/ComputerUtil.java
+++ b/src/main/java/forge/game/ai/ComputerUtil.java
@@ -54,8 +54,8 @@ import forge.card.spellability.TargetRestrictions;
import forge.card.staticability.StaticAbility;
import forge.error.BugReporter;
import forge.game.Game;
-import forge.game.phase.Combat;
-import forge.game.phase.CombatUtil;
+import forge.game.combat.Combat;
+import forge.game.combat.CombatUtil;
import forge.game.phase.PhaseHandler;
import forge.game.phase.PhaseType;
import forge.game.player.Player;
diff --git a/src/main/java/forge/game/ai/ComputerUtilCard.java b/src/main/java/forge/game/ai/ComputerUtilCard.java
index 5beb40e81b1..b90fe96c632 100644
--- a/src/main/java/forge/game/ai/ComputerUtilCard.java
+++ b/src/main/java/forge/game/ai/ComputerUtilCard.java
@@ -28,7 +28,7 @@ import forge.card.spellability.SpellAbility;
import forge.deck.CardPool;
import forge.deck.Deck;
import forge.deck.DeckSection;
-import forge.game.phase.Combat;
+import forge.game.combat.Combat;
import forge.game.player.Player;
import forge.item.PaperCard;
import forge.util.Aggregates;
diff --git a/src/main/java/forge/game/ai/ComputerUtilCombat.java b/src/main/java/forge/game/ai/ComputerUtilCombat.java
index 8a5302bc756..3ea62998754 100644
--- a/src/main/java/forge/game/ai/ComputerUtilCombat.java
+++ b/src/main/java/forge/game/ai/ComputerUtilCombat.java
@@ -42,8 +42,8 @@ import forge.card.trigger.TriggerHandler;
import forge.card.trigger.TriggerType;
import forge.game.Game;
import forge.game.GlobalRuleChange;
-import forge.game.phase.Combat;
-import forge.game.phase.CombatUtil;
+import forge.game.combat.Combat;
+import forge.game.combat.CombatUtil;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
@@ -116,7 +116,7 @@ public class ComputerUtilCombat {
* @param attacked
* a {@link forge.game.player.Player} object.
* @param combat
- * a {@link forge.game.phase.Combat} object.
+ * a {@link forge.game.combat.Combat} object.
* @return a int.
*/
public static int damageIfUnblocked(final Card attacker, final Player attacked, final Combat combat) {
@@ -146,7 +146,7 @@ public class ComputerUtilCombat {
* @param attacked
* a {@link forge.game.player.Player} object.
* @param combat
- * a {@link forge.game.phase.Combat} object.
+ * a {@link forge.game.combat.Combat} object.
* @return a int.
*/
public static int poisonIfUnblocked(final Card attacker, final Player attacked) {
@@ -212,7 +212,7 @@ public class ComputerUtilCombat {
*
*
* @param combat
- * a {@link forge.game.phase.Combat} object.
+ * a {@link forge.game.combat.Combat} object.
* @return a int.
*/
public static int lifeThatWouldRemain(final Player ai, final Combat combat) {
@@ -254,7 +254,7 @@ public class ComputerUtilCombat {
*
*
* @param combat
- * a {@link forge.game.phase.Combat} object.
+ * a {@link forge.game.combat.Combat} object.
* @return a int.
*/
public static int resultingPoison(final Player ai, final Combat combat) {
@@ -295,7 +295,7 @@ public class ComputerUtilCombat {
*
*
* @param combat
- * a {@link forge.game.phase.Combat} object.
+ * a {@link forge.game.combat.Combat} object.
* @return a boolean.
*/
public static boolean lifeInDanger(final Player ai, final Combat combat) {
@@ -333,7 +333,7 @@ public class ComputerUtilCombat {
*
*
* @param combat
- * a {@link forge.game.phase.Combat} object.
+ * a {@link forge.game.combat.Combat} object.
* @return a boolean.
*/
public static boolean wouldLoseLife(final Player ai, final Combat combat) {
@@ -348,7 +348,7 @@ public class ComputerUtilCombat {
*
*
* @param combat
- * a {@link forge.game.phase.Combat} object.
+ * a {@link forge.game.combat.Combat} object.
* @return a boolean.
*/
public static boolean lifeInSeriousDanger(final Player ai, final Combat combat) {
@@ -575,7 +575,7 @@ public class ComputerUtilCombat {
* @param trigger
* a {@link forge.card.trigger.Trigger} object.
* @param combat
- * a {@link forge.game.phase.Combat} object.
+ * a {@link forge.game.combat.Combat} object.
* @return a boolean.
*/
public static boolean combatTriggerWillTrigger(final Card attacker, final Card defender, final Trigger trigger,
@@ -937,7 +937,7 @@ public class ComputerUtilCombat {
* @param defender
* a {@link forge.Card} object.
* @param combat
- * a {@link forge.game.phase.Combat} object.
+ * a {@link forge.game.combat.Combat} object.
* @return a int.
*/
public static int predictPowerBonusOfAttacker(final Card attacker, final Card defender, final Combat combat
@@ -1098,7 +1098,7 @@ public class ComputerUtilCombat {
* @param defender
* a {@link forge.Card} object.
* @param combat
- * a {@link forge.game.phase.Combat} object.
+ * a {@link forge.game.combat.Combat} object.
* @return a int.
*/
public static int predictToughnessBonusOfAttacker(final Card attacker, final Card defender, final Combat combat
@@ -1377,7 +1377,7 @@ public class ComputerUtilCombat {
* @param defender
* a {@link forge.Card} object.
* @param combat
- * a {@link forge.game.phase.Combat} object.
+ * a {@link forge.game.combat.Combat} object.
* @param withoutAbilities
* a boolean.
* @return a boolean.
@@ -1534,7 +1534,7 @@ public class ComputerUtilCombat {
* @param attacker
* a {@link forge.Card} object.
* @param combat
- * a {@link forge.game.phase.Combat} object.
+ * a {@link forge.game.combat.Combat} object.
* @param withoutAbilities
* a boolean.
* @return a boolean.
diff --git a/src/main/java/forge/game/phase/Combat.java b/src/main/java/forge/game/combat/Combat.java
similarity index 99%
rename from src/main/java/forge/game/phase/Combat.java
rename to src/main/java/forge/game/combat/Combat.java
index 61f1d8e8351..1e35e7cd971 100644
--- a/src/main/java/forge/game/phase/Combat.java
+++ b/src/main/java/forge/game/combat/Combat.java
@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.game.phase;
+package forge.game.combat;
import java.util.ArrayList;
import java.util.Collection;
@@ -33,7 +33,6 @@ import forge.CardLists;
import forge.CardPredicates;
import forge.GameEntity;
import forge.card.trigger.TriggerType;
-import forge.game.combat.AttackingBand;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
import forge.util.maps.CollectionSuppliers;
diff --git a/src/main/java/forge/game/phase/CombatUtil.java b/src/main/java/forge/game/combat/CombatUtil.java
similarity index 98%
rename from src/main/java/forge/game/phase/CombatUtil.java
rename to src/main/java/forge/game/combat/CombatUtil.java
index 59b57036ad5..4784854d759 100644
--- a/src/main/java/forge/game/phase/CombatUtil.java
+++ b/src/main/java/forge/game/combat/CombatUtil.java
@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.game.phase;
+package forge.game.combat;
import java.util.ArrayList;
import java.util.HashMap;
@@ -47,7 +47,8 @@ import forge.card.staticability.StaticAbility;
import forge.card.trigger.TriggerType;
import forge.game.Game;
import forge.game.GlobalRuleChange;
-import forge.game.combat.AttackingBand;
+import forge.game.phase.PhaseType;
+import forge.game.phase.Untap;
import forge.game.player.Player;
import forge.game.player.PlayerController.ManaPaymentPurpose;
import forge.game.zone.ZoneType;
@@ -74,7 +75,7 @@ public class CombatUtil {
* @param blocker
* a {@link forge.Card} object.
* @param combat
- * a {@link forge.game.phase.Combat} object.
+ * a {@link forge.game.combat.Combat} object.
* @return a boolean.
*/
public static boolean canBlock(final Card blocker, final Combat combat) {
@@ -173,7 +174,7 @@ public class CombatUtil {
* @param attacker
* a {@link forge.Card} object.
* @param combat
- * a {@link forge.game.phase.Combat} object.
+ * a {@link forge.game.combat.Combat} object.
* @return a boolean.
*/
public static boolean canBeBlocked(final Card attacker, final Combat combat, Player defendingPlayer) {
@@ -355,7 +356,7 @@ public class CombatUtil {
*
*
* @param combat
- * a {@link forge.game.phase.Combat} object.
+ * a {@link forge.game.combat.Combat} object.
* @return a boolean.
*/
public static String validateBlocks(final Combat combat, final Player defending) {
@@ -410,7 +411,7 @@ public class CombatUtil {
* @param blocker
* a {@link forge.Card} object.
* @param combat
- * a {@link forge.game.phase.Combat} object.
+ * a {@link forge.game.combat.Combat} object.
* @return a boolean.
*/
public static boolean mustBlockAnAttacker(final Card blocker, final Combat combat) {
@@ -484,7 +485,7 @@ public class CombatUtil {
* @param blocker
* a {@link forge.Card} object.
* @param combat
- * a {@link forge.game.phase.Combat} object.
+ * a {@link forge.game.combat.Combat} object.
* @return a boolean.
*/
public static boolean canBlock(final Card attacker, final Card blocker, final Combat combat) {
@@ -655,7 +656,7 @@ public class CombatUtil {
* @param c
* a {@link forge.Card} object.
* @param combat
- * a {@link forge.game.phase.Combat} object.
+ * a {@link forge.game.combat.Combat} object.
* @return a boolean.
*/
public static boolean canAttack(final Card c, final GameEntity def, final Combat combat) {
diff --git a/src/main/java/forge/game/phase/Cleanup.java b/src/main/java/forge/game/phase/Cleanup.java
deleted file mode 100644
index 5cfea5cb1cb..00000000000
--- a/src/main/java/forge/game/phase/Cleanup.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Forge: Play Magic: the Gathering.
- * Copyright (C) 2011 Forge Team
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package forge.game.phase;
-
-import forge.game.Game;
-
-/**
- *
- * Handles "until your next turn" effects and Cleanup hardcoded triggers.
- *
- *
- * @author Forge
- */
-public class Cleanup extends Phase {
-
-
- /** Constant serialVersionUID=-6993476643509826990L. */
- private static final long serialVersionUID = -6993476643509826990L;
-
- public Cleanup(final Game game) { super(game); }
-
-} // end class Cleanup
diff --git a/src/main/java/forge/game/phase/EndOfCombat.java b/src/main/java/forge/game/phase/EndOfCombat.java
deleted file mode 100644
index cb01fe0554d..00000000000
--- a/src/main/java/forge/game/phase/EndOfCombat.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Forge: Play Magic: the Gathering.
- * Copyright (C) 2011 Forge Team
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package forge.game.phase;
-
-import forge.game.Game;
-
-/**
- *
- * Handles "until end of combat" effects and "at end of combat" hardcoded triggers.
- *
- *
- * @author Forge
- * @version $Id$
- */
-public class EndOfCombat extends Phase {
-
- /** Constant serialVersionUID=3035250030566186842L. */
- private static final long serialVersionUID = 3035250030566186842L;
-
- public EndOfCombat(final Game game) { super(game); }
-
-} // end class EndOfCombat
diff --git a/src/main/java/forge/game/phase/EndOfTurn.java b/src/main/java/forge/game/phase/EndOfTurn.java
index dbf3ed23a9d..1dc801f1300 100644
--- a/src/main/java/forge/game/phase/EndOfTurn.java
+++ b/src/main/java/forge/game/phase/EndOfTurn.java
@@ -39,7 +39,11 @@ public class EndOfTurn extends Phase {
/** Constant serialVersionUID=-3656715295379727275L. */
private static final long serialVersionUID = -3656715295379727275L;
- public EndOfTurn(final Game game) { super(game); }
+ protected final Game game;
+ public EndOfTurn(final Game game) {
+ super(PhaseType.END_OF_TURN);
+ this.game = game;
+ }
/**
*
* Handles all the hardcoded events that happen "at end of turn".
diff --git a/src/main/java/forge/game/phase/Phase.java b/src/main/java/forge/game/phase/Phase.java
index df31a8223e5..eb49a90c41f 100644
--- a/src/main/java/forge/game/phase/Phase.java
+++ b/src/main/java/forge/game/phase/Phase.java
@@ -24,7 +24,6 @@ import java.util.List;
import com.google.common.collect.Lists;
import forge.Command;
-import forge.game.Game;
import forge.game.player.Player;
@@ -36,14 +35,14 @@ import forge.game.player.Player;
* @author Forge
* @version $Id$
*/
-public abstract class Phase implements java.io.Serializable {
+public class Phase implements java.io.Serializable {
private static final long serialVersionUID = 4665309652476851977L;
- protected final Game game;
+ protected final PhaseType type; // mostly decorative field - it's never used
- public Phase(final Game game0) {
- game = game0;
+ public Phase(PhaseType type) {
+ this.type = type;
}
/** The at. */
@@ -102,10 +101,6 @@ public abstract class Phase implements java.io.Serializable {
* Use cleanup phase to terminate an effect with "until next turn"
*/
public final void addUntil(Player p, final Command c) {
- if (null == p) {
- p = game.getPhaseHandler().getPlayerTurn();
- }
-
if (this.untilMap.containsKey(p)) {
this.untilMap.get(p).add(0, c);
} else {
diff --git a/src/main/java/forge/game/phase/PhaseHandler.java b/src/main/java/forge/game/phase/PhaseHandler.java
index a1adc33a2bb..14adb31d642 100644
--- a/src/main/java/forge/game/phase/PhaseHandler.java
+++ b/src/main/java/forge/game/phase/PhaseHandler.java
@@ -39,6 +39,8 @@ import forge.card.trigger.TriggerType;
import forge.game.GameAge;
import forge.game.Game;
import forge.game.GameType;
+import forge.game.combat.Combat;
+import forge.game.combat.CombatUtil;
import forge.game.event.GameEventAttackersDeclared;
import forge.game.event.GameEventBlockerAssigned;
import forge.game.event.GameEventBlockersDeclared;
diff --git a/src/main/java/forge/game/phase/Untap.java b/src/main/java/forge/game/phase/Untap.java
index 15ec450e9d9..0d6906b37df 100644
--- a/src/main/java/forge/game/phase/Untap.java
+++ b/src/main/java/forge/game/phase/Untap.java
@@ -50,9 +50,11 @@ import forge.gui.input.InputSelectCardsFromList;
*/
public class Untap extends Phase {
private static final long serialVersionUID = 4515266331266259123L;
-
+ protected final Game game;
+
public Untap(final Game game0) {
- super(game0);
+ super(PhaseType.UNTAP);
+ game = game0;
}
/**
diff --git a/src/main/java/forge/game/phase/Upkeep.java b/src/main/java/forge/game/phase/Upkeep.java
index 0314374e0b0..c1bccce22f4 100644
--- a/src/main/java/forge/game/phase/Upkeep.java
+++ b/src/main/java/forge/game/phase/Upkeep.java
@@ -68,7 +68,11 @@ import forge.gui.input.InputSelectCardsFromList;
public class Upkeep extends Phase {
private static final long serialVersionUID = 6906459482978819354L;
- public Upkeep(final Game game) { super(game); }
+ protected final Game game;
+ public Upkeep(final Game game) {
+ super(PhaseType.UPKEEP);
+ this.game = game;
+ }
/**
*
diff --git a/src/main/java/forge/game/player/PlayerController.java b/src/main/java/forge/game/player/PlayerController.java
index f44e742ef2a..ccd85789686 100644
--- a/src/main/java/forge/game/player/PlayerController.java
+++ b/src/main/java/forge/game/player/PlayerController.java
@@ -20,7 +20,7 @@ import forge.card.spellability.TargetChoices;
import forge.deck.Deck;
import forge.game.Game;
import forge.game.GameType;
-import forge.game.phase.Combat;
+import forge.game.combat.Combat;
import forge.game.phase.PhaseType;
import forge.game.zone.ZoneType;
diff --git a/src/main/java/forge/game/player/PlayerControllerAi.java b/src/main/java/forge/game/player/PlayerControllerAi.java
index 9e9f860a2a6..a498a2d9032 100644
--- a/src/main/java/forge/game/player/PlayerControllerAi.java
+++ b/src/main/java/forge/game/player/PlayerControllerAi.java
@@ -35,7 +35,7 @@ import forge.game.ai.ComputerUtil;
import forge.game.ai.AiBlockController;
import forge.game.ai.ComputerUtilCombat;
import forge.game.ai.ComputerUtilCost;
-import forge.game.phase.Combat;
+import forge.game.combat.Combat;
import forge.game.zone.ZoneType;
import forge.util.Aggregates;
import forge.util.MyRandom;
diff --git a/src/main/java/forge/game/player/PlayerControllerHuman.java b/src/main/java/forge/game/player/PlayerControllerHuman.java
index cedf3906af2..ca1c20ccd80 100644
--- a/src/main/java/forge/game/player/PlayerControllerHuman.java
+++ b/src/main/java/forge/game/player/PlayerControllerHuman.java
@@ -33,7 +33,7 @@ import forge.deck.Deck;
import forge.deck.DeckSection;
import forge.game.Game;
import forge.game.GameType;
-import forge.game.phase.Combat;
+import forge.game.combat.Combat;
import forge.game.phase.PhaseType;
import forge.game.zone.ZoneType;
import forge.gui.GuiChoose;
diff --git a/src/main/java/forge/gui/input/InputAttack.java b/src/main/java/forge/gui/input/InputAttack.java
index ea357f2b94b..a1c7c97a0ac 100644
--- a/src/main/java/forge/gui/input/InputAttack.java
+++ b/src/main/java/forge/gui/input/InputAttack.java
@@ -27,8 +27,8 @@ import forge.Card;
import forge.CardPredicates;
import forge.GameEntity;
import forge.game.combat.AttackingBand;
-import forge.game.phase.Combat;
-import forge.game.phase.CombatUtil;
+import forge.game.combat.Combat;
+import forge.game.combat.CombatUtil;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
import forge.gui.match.CMatchUI;
diff --git a/src/main/java/forge/gui/input/InputBlock.java b/src/main/java/forge/gui/input/InputBlock.java
index d197a77bcdb..4f2038a8403 100644
--- a/src/main/java/forge/gui/input/InputBlock.java
+++ b/src/main/java/forge/gui/input/InputBlock.java
@@ -19,8 +19,8 @@ package forge.gui.input;
import forge.Card;
import forge.Singletons;
-import forge.game.phase.Combat;
-import forge.game.phase.CombatUtil;
+import forge.game.combat.Combat;
+import forge.game.combat.CombatUtil;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
import forge.gui.GuiDialog;
diff --git a/src/main/java/forge/gui/match/TargetingOverlay.java b/src/main/java/forge/gui/match/TargetingOverlay.java
index 04efba63d6c..09603eb63a3 100644
--- a/src/main/java/forge/gui/match/TargetingOverlay.java
+++ b/src/main/java/forge/gui/match/TargetingOverlay.java
@@ -36,7 +36,7 @@ import javax.swing.JPanel;
import forge.Card;
import forge.Singletons;
import forge.control.FControl;
-import forge.game.phase.Combat;
+import forge.game.combat.Combat;
import forge.gui.match.controllers.CDock;
import forge.gui.match.nonsingleton.VField;
import forge.gui.toolbox.FSkin;
diff --git a/src/main/java/forge/gui/match/controllers/CCombat.java b/src/main/java/forge/gui/match/controllers/CCombat.java
index 6faed7e75be..065b69d350e 100644
--- a/src/main/java/forge/gui/match/controllers/CCombat.java
+++ b/src/main/java/forge/gui/match/controllers/CCombat.java
@@ -7,7 +7,7 @@ import forge.Command;
import forge.GameEntity;
import forge.game.Game;
import forge.game.combat.AttackingBand;
-import forge.game.phase.Combat;
+import forge.game.combat.Combat;
import forge.game.phase.PhaseHandler;
import forge.game.player.Player;
import forge.gui.framework.ICDoc;
diff --git a/src/main/java/forge/gui/match/controllers/CDock.java b/src/main/java/forge/gui/match/controllers/CDock.java
index 2b542858722..90fcd81b8ad 100644
--- a/src/main/java/forge/gui/match/controllers/CDock.java
+++ b/src/main/java/forge/gui/match/controllers/CDock.java
@@ -35,8 +35,8 @@ import forge.CardPredicates.Presets;
import forge.Command;
import forge.deck.Deck;
import forge.game.Game;
-import forge.game.phase.Combat;
-import forge.game.phase.CombatUtil;
+import forge.game.combat.Combat;
+import forge.game.combat.CombatUtil;
import forge.game.phase.PhaseHandler;
import forge.game.phase.PhaseType;
import forge.game.player.LobbyPlayer;
diff --git a/src/main/java/forge/view/arcane/CardPanel.java b/src/main/java/forge/view/arcane/CardPanel.java
index 2c255af18b4..11e7b3fa936 100644
--- a/src/main/java/forge/view/arcane/CardPanel.java
+++ b/src/main/java/forge/view/arcane/CardPanel.java
@@ -42,7 +42,7 @@ import forge.ImageCache;
import forge.Singletons;
import forge.card.CardEdition;
import forge.card.mana.ManaCost;
-import forge.game.phase.Combat;
+import forge.game.combat.Combat;
import forge.gui.CardContainer;
import forge.gui.toolbox.CardFaceSymbols;
import forge.properties.ForgePreferences.FPref;
diff --git a/src/test/java/forge/RunTest.java b/src/test/java/forge/RunTest.java
index 56e9a19525f..e2dbdd76fbd 100644
--- a/src/test/java/forge/RunTest.java
+++ b/src/test/java/forge/RunTest.java
@@ -2,7 +2,7 @@ package forge;
import org.testng.annotations.Test;
-import forge.game.phase.CombatUtil;
+import forge.game.combat.CombatUtil;
/**
*