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; /** *