foul-magics/Mage/src/main/java/mage/abilities/keyword/EvokeAbility.java
Evan Kranzler 0e3252d256
Implementing Blitz mechanic (WIP) (#8835)
* added blitz mechanic (mostly copy/paste of dash)

* renamed class

* reworked alt cost abilities, greatly reduced redundant code

* updated text generation

* removed all skips

* added test for blitz

* changed blitz implementation

* [SNC] Implemented Tenacious Underdog
2022-04-24 12:03:25 -04:00

42 lines
1.5 KiB
Java

package mage.abilities.keyword;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.condition.common.EvokedCondition;
import mage.abilities.costs.AlternativeSourceCostsImpl;
import mage.abilities.costs.Cost;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
import mage.abilities.effects.common.SacrificeSourceEffect;
/**
* @author LevelX2
*/
public class EvokeAbility extends AlternativeSourceCostsImpl {
protected static final String EVOKE_KEYWORD = "Evoke";
protected static final String REMINDER_TEXT = "You may cast this spell for its evoke cost. "
+ "If you do, it's sacrificed when it enters the battlefield.";
public EvokeAbility(String manaString) {
this(new ManaCostsImpl<>(manaString));
}
public EvokeAbility(Cost cost) {
super(EVOKE_KEYWORD, REMINDER_TEXT, cost);
Ability ability = new ConditionalInterveningIfTriggeredAbility(
new EntersBattlefieldTriggeredAbility(new SacrificeSourceEffect()),
EvokedCondition.instance, "Sacrifice {this} when it enters the battlefield and was evoked.");
ability.setRuleVisible(false);
addSubAbility(ability);
}
private EvokeAbility(final EvokeAbility ability) {
super(ability);
}
@Override
public EvokeAbility copy() {
return new EvokeAbility(this);
}
}