refactor: improved usage of one time turn modifications (skip step, extra turn, etc)

This commit is contained in:
Oleg Agafonov 2023-07-31 20:16:28 +04:00
parent 4554fbc408
commit 8d938926b6
46 changed files with 222 additions and 190 deletions

View file

@ -38,7 +38,7 @@ public class AddCombatAndMainPhaseEffect extends OneShotEffect {
if (game.getTurnPhaseType() == TurnPhase.PRECOMBAT_MAIN
|| game.getTurnPhaseType() == TurnPhase.POSTCOMBAT_MAIN) {
// we can't add two turn modes at once, will add additional post combat on delayed trigger resolution
TurnMod combat = new TurnMod(source.getControllerId(), TurnPhase.COMBAT, TurnPhase.POSTCOMBAT_MAIN, false);
TurnMod combat = new TurnMod(source.getControllerId()).withExtraPhase(TurnPhase.COMBAT, TurnPhase.POSTCOMBAT_MAIN);
game.getState().getTurnMods().add(combat);
DelayedAddMainPhaseAbility delayedTriggeredAbility = new DelayedAddMainPhaseAbility();
delayedTriggeredAbility.setConnectedTurnMod(combat.getId());
@ -83,7 +83,7 @@ class DelayedAddMainPhaseAbility extends DelayedTriggeredAbility {
}
if (event.getType() == GameEvent.EventType.COMBAT_PHASE_PRE && enabled) {
// add additional post combat main phase after that - after phase == null because add it after this combat
game.getState().getTurnMods().add(new TurnMod(getControllerId(), TurnPhase.POSTCOMBAT_MAIN, null, false));
game.getState().getTurnMods().add(new TurnMod(getControllerId()).withExtraPhase(TurnPhase.POSTCOMBAT_MAIN));
enabled = false;
}
return false;