foul-magics/Mage/src/main/java/mage/constants/Duration.java
LevelX2 1e36b39434 - Reworked SourceOnBattlefieldControlUnchangedCondition checking now the LOST_CONTROL event which solves the problem with the old code to not be able to detect all controller changes of layered changeController effects when applied later.
- Simplified and fixed some problems of the handling of the "Until end of your next turn" duration.
- Fixed that some continous effects changed controller but shouldn't dependant from their duration type. Controller chnage will now done duration type dependant.
  (that change fixes #6581 in a more general way undoing the effect specific changes of 2e8ece1dbd).
2020-06-10 22:28:23 +02:00

42 lines
1.5 KiB
Java

package mage.constants;
/**
* @author North
*/
public enum Duration {
OneUse("", true, true),
EndOfGame("for the rest of the game", false, false),
WhileOnBattlefield("", false, false),
WhileOnStack("", false, true),
WhileInGraveyard("", false, false),
EndOfTurn("until end of turn", true, true),
UntilYourNextTurn("until your next turn", true, true),
UntilEndOfYourNextTurn("until the end of your next turn", true, true),
UntilSourceLeavesBattlefield("until {source} leaves the battlefield", true, false), // supported for continuous layered effects
EndOfCombat("until end of combat", true, true),
EndOfStep("until end of phase step", true, true),
Custom("", true, true);
private final String text;
private final boolean onlyValidIfNoZoneChange; // defines if an effect lasts only if the source has not changed zone since init of the effect
private final boolean fixedController; // has the controller of the effect to change, if the controller of the source changes
Duration(String text, boolean onlyValidIfNoZoneChange, boolean fixedController) {
this.text = text;
this.onlyValidIfNoZoneChange = onlyValidIfNoZoneChange;
this.fixedController = fixedController;
}
@Override
public String toString() {
return text;
}
public boolean isOnlyValidIfNoZoneChange() {
return onlyValidIfNoZoneChange;
}
public boolean isFixedController() {
return fixedController;
}
}