package mage.abilities.common; import mage.abilities.StaticAbility; import mage.abilities.effects.Effect; import mage.abilities.effects.EntersBattlefieldEffect; import mage.constants.EnterEventType; import mage.constants.Zone; /** * @author North */ public class AsEntersBattlefieldAbility extends StaticAbility { public AsEntersBattlefieldAbility(Effect effect) { this(effect, null, EnterEventType.OTHER); } public AsEntersBattlefieldAbility(Effect effect, String text) { this(effect, text, EnterEventType.OTHER); } public AsEntersBattlefieldAbility(Effect effect, String text, EnterEventType enterEventType) { super(Zone.ALL, new EntersBattlefieldEffect(effect, null, text, true, false, enterEventType)); } protected AsEntersBattlefieldAbility(final AsEntersBattlefieldAbility ability) { super(ability); } @Override public void addEffect(Effect effect) { if (!getEffects().isEmpty()) { Effect entersEffect = this.getEffects().get(0); if (entersEffect instanceof EntersBattlefieldEffect) { ((EntersBattlefieldEffect) entersEffect).addEffect(effect); return; } } super.addEffect(effect); } @Override public AsEntersBattlefieldAbility copy() { return new AsEntersBattlefieldAbility(this); } @Override public String getRule() { return "As {this} enters, " + super.getRule(); } }