mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 20:58:03 +00:00
Merge branch 'turns' into 'master'
Update advanceToNextPhase logic See merge request core-developers/forge!4633
This commit is contained in:
@@ -162,6 +162,8 @@ public class PhaseHandler implements java.io.Serializable {
|
|||||||
boolean isTopsy = playerTurn.getAmountOfKeyword("The phases of your turn are reversed.") % 2 == 1;
|
boolean isTopsy = playerTurn.getAmountOfKeyword("The phases of your turn are reversed.") % 2 == 1;
|
||||||
boolean turnEnded = false;
|
boolean turnEnded = false;
|
||||||
|
|
||||||
|
game.getStack().clearUndoStack(); //can't undo action from previous phase
|
||||||
|
|
||||||
if (bRepeatCleanup) { // for when Cleanup needs to repeat itself
|
if (bRepeatCleanup) { // for when Cleanup needs to repeat itself
|
||||||
bRepeatCleanup = false;
|
bRepeatCleanup = false;
|
||||||
}
|
}
|
||||||
@@ -184,32 +186,6 @@ public class PhaseHandler implements java.io.Serializable {
|
|||||||
setPhase(PhaseType.getNext(phase, isTopsy));
|
setPhase(PhaseType.getNext(phase, isTopsy));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Replacement effects
|
|
||||||
final Map<AbilityKey, Object> repRunParams = AbilityKey.mapFromAffected(playerTurn);
|
|
||||||
repRunParams.put(AbilityKey.Phase, phase.nameForScripts);
|
|
||||||
ReplacementResult repres = game.getReplacementHandler().run(ReplacementType.BeginPhase, repRunParams);
|
|
||||||
if (repres != ReplacementResult.NotReplaced) {
|
|
||||||
// Currently there is no effect to skip entire beginning phase
|
|
||||||
// If in the future that kind of effect is added, need to handle it too.
|
|
||||||
// Handle skipping of entire combat phase
|
|
||||||
if (phase == PhaseType.COMBAT_BEGIN) {
|
|
||||||
setPhase(PhaseType.COMBAT_END);
|
|
||||||
}
|
|
||||||
advanceToNextPhase();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (extraPhase != null) {
|
|
||||||
for (Trigger deltrig : extraPhase.getDelayedTriggers()) {
|
|
||||||
game.getTriggerHandler().registerThisTurnDelayedTrigger(deltrig);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
game.getStack().clearUndoStack(); //can't undo action from previous phase
|
|
||||||
|
|
||||||
String phaseType = oldPhase == phase ? "Repeat" : phase == PhaseType.getNext(oldPhase, isTopsy) ? "" : "Additional";
|
|
||||||
|
|
||||||
if (turnEnded) {
|
if (turnEnded) {
|
||||||
turn++;
|
turn++;
|
||||||
extraPhases.clear();
|
extraPhases.clear();
|
||||||
@@ -232,6 +208,29 @@ public class PhaseHandler implements java.io.Serializable {
|
|||||||
//update tokens
|
//update tokens
|
||||||
game.fireEvent(new GameEventTokenStateUpdate(playerTurn.getTokensInPlay()));
|
game.fireEvent(new GameEventTokenStateUpdate(playerTurn.getTokensInPlay()));
|
||||||
|
|
||||||
|
// Replacement effects
|
||||||
|
final Map<AbilityKey, Object> repRunParams = AbilityKey.mapFromAffected(playerTurn);
|
||||||
|
repRunParams.put(AbilityKey.Phase, phase.nameForScripts);
|
||||||
|
ReplacementResult repres = game.getReplacementHandler().run(ReplacementType.BeginPhase, repRunParams);
|
||||||
|
if (repres != ReplacementResult.NotReplaced) {
|
||||||
|
// Currently there is no effect to skip entire beginning phase
|
||||||
|
// If in the future that kind of effect is added, need to handle it too.
|
||||||
|
// Handle skipping of entire combat phase
|
||||||
|
if (phase == PhaseType.COMBAT_BEGIN) {
|
||||||
|
setPhase(PhaseType.COMBAT_END);
|
||||||
|
}
|
||||||
|
advanceToNextPhase();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (extraPhase != null) {
|
||||||
|
for (Trigger deltrig : extraPhase.getDelayedTriggers()) {
|
||||||
|
game.getTriggerHandler().registerThisTurnDelayedTrigger(deltrig);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
String phaseType = oldPhase == phase ? "Repeat" : phase == PhaseType.getNext(oldPhase, isTopsy) ? "" : "Additional";
|
||||||
game.fireEvent(new GameEventTurnPhase(playerTurn, phase, phaseType));
|
game.fireEvent(new GameEventTurnPhase(playerTurn, phase, phaseType));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user