/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package mage.abilities.common;
import mage.abilities.condition.Condition;
import mage.abilities.effects.common.ruleModifying.CastOnlyDuringPhaseStepSourceEffect;
import mage.constants.PhaseStep;
import mage.constants.TurnPhase;
import mage.constants.Zone;
/**
*
* @author LevelX2
*/
public class CastOnlyDuringPhaseStepSourceAbility extends SimpleStaticAbility {
public CastOnlyDuringPhaseStepSourceAbility(TurnPhase turnPhase) {
this(turnPhase, null, null);
}
public CastOnlyDuringPhaseStepSourceAbility(TurnPhase turnPhase, Condition condition) {
this(turnPhase, null, condition);
}
public CastOnlyDuringPhaseStepSourceAbility(PhaseStep phaseStep) {
this(null, phaseStep, null);
}
public CastOnlyDuringPhaseStepSourceAbility(PhaseStep phaseStep, Condition condition) {
this(null, phaseStep, condition);
}
public CastOnlyDuringPhaseStepSourceAbility(TurnPhase turnPhase, PhaseStep phaseStep, Condition condition) {
this(turnPhase, phaseStep, condition, null);
}
public CastOnlyDuringPhaseStepSourceAbility(TurnPhase turnPhase, PhaseStep phaseStep, Condition condition, String effectText) {
super(Zone.ALL, new CastOnlyDuringPhaseStepSourceEffect(turnPhase, phaseStep, condition));
this.setRuleAtTheTop(true);
if (effectText != null) {
getEffects().get(0).setText(effectText);
}
}
private CastOnlyDuringPhaseStepSourceAbility(final CastOnlyDuringPhaseStepSourceAbility ability) {
super(ability);
}
@Override
public CastOnlyDuringPhaseStepSourceAbility copy() {
return new CastOnlyDuringPhaseStepSourceAbility(this);
}
}