forked from External/mage
- 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).
42 lines
1.5 KiB
Java
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;
|
|
}
|
|
}
|