mirror of
https://github.com/correl/mage.git
synced 2024-12-25 03:00:15 +00:00
Implemented Teysa Karlov
This commit is contained in:
parent
27e21132a0
commit
dba955ab29
2 changed files with 112 additions and 0 deletions
111
Mage.Sets/src/mage/cards/t/TeysaKarlov.java
Normal file
111
Mage.Sets/src/mage/cards/t/TeysaKarlov.java
Normal file
|
@ -0,0 +1,111 @@
|
|||
package mage.cards.t;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.effects.ReplacementEffectImpl;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
|
||||
import mage.abilities.keyword.LifelinkAbility;
|
||||
import mage.abilities.keyword.VigilanceAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.game.Game;
|
||||
import mage.game.events.GameEvent;
|
||||
import mage.game.events.NumberOfTriggersEvent;
|
||||
import mage.game.events.ZoneChangeEvent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
public final class TeysaKarlov extends CardImpl {
|
||||
|
||||
public TeysaKarlov(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{W}{B}");
|
||||
|
||||
this.addSuperType(SuperType.LEGENDARY);
|
||||
this.subtype.add(SubType.HUMAN);
|
||||
this.subtype.add(SubType.ADVISOR);
|
||||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(4);
|
||||
|
||||
// If a creature dying causes a triggered ability of a permanent you control to trigger, that ability triggers an additional time.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new TeysaKarlovEffect()));
|
||||
|
||||
// Creature tokens you control have vigilance and lifelink.
|
||||
Ability ability = new SimpleStaticAbility(
|
||||
Zone.BATTLEFIELD,
|
||||
new GainAbilityControlledEffect(
|
||||
VigilanceAbility.getInstance(),
|
||||
Duration.WhileOnBattlefield,
|
||||
StaticFilters.FILTER_CREATURE_TOKENS
|
||||
).setText("creature tokens you control have vigilance")
|
||||
);
|
||||
ability.addEffect(new GainAbilityControlledEffect(
|
||||
LifelinkAbility.getInstance(),
|
||||
Duration.WhileOnBattlefield,
|
||||
StaticFilters.FILTER_CREATURE_TOKENS
|
||||
).setText("and lifelink"));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
private TeysaKarlov(final TeysaKarlov card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TeysaKarlov copy() {
|
||||
return new TeysaKarlov(this);
|
||||
}
|
||||
}
|
||||
|
||||
class TeysaKarlovEffect extends ReplacementEffectImpl {
|
||||
|
||||
TeysaKarlovEffect() {
|
||||
super(Duration.WhileOnBattlefield, Outcome.Benefit);
|
||||
staticText = "If a creature dying causes a triggered ability of a permanent you control to trigger, " +
|
||||
"that ability triggers an additional time.";
|
||||
}
|
||||
|
||||
private TeysaKarlovEffect(final TeysaKarlovEffect effect) {
|
||||
super(effect);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TeysaKarlovEffect copy() {
|
||||
return new TeysaKarlovEffect(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean checksEventType(GameEvent event, Game game) {
|
||||
return event.getType() == GameEvent.EventType.NUMBER_OF_TRIGGERS;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean applies(GameEvent event, Ability source, Game game) {
|
||||
if (event instanceof NumberOfTriggersEvent) {
|
||||
NumberOfTriggersEvent numberOfTriggersEvent = (NumberOfTriggersEvent) event;
|
||||
if (source.isControlledBy(event.getPlayerId())
|
||||
&& game.getPermanent(numberOfTriggersEvent.getSourceId()) != null
|
||||
&& numberOfTriggersEvent.getSourceEvent() instanceof ZoneChangeEvent) {
|
||||
ZoneChangeEvent zEvent = (ZoneChangeEvent) numberOfTriggersEvent.getSourceEvent();
|
||||
if (zEvent.getFromZone() == Zone.BATTLEFIELD
|
||||
&& zEvent.getToZone() == Zone.GRAVEYARD
|
||||
&& zEvent.getTarget() != null
|
||||
&& zEvent.getTarget().isCreature()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean replaceEvent(GameEvent event, Ability source, Game game) {
|
||||
event.setAmount(event.getAmount() + 1);
|
||||
return false;
|
||||
}
|
||||
}
|
|
@ -86,6 +86,7 @@ public final class RavnicaAllegiance extends ExpansionSet {
|
|||
cards.add(new SetCardInfo("Sphinx of Foresight", 55, Rarity.RARE, mage.cards.s.SphinxOfForesight.class));
|
||||
cards.add(new SetCardInfo("Sphinx's Insight", 209, Rarity.COMMON, mage.cards.s.SphinxsInsight.class));
|
||||
cards.add(new SetCardInfo("Stomping Ground", 259, Rarity.RARE, mage.cards.s.StompingGround.class));
|
||||
cards.add(new SetCardInfo("Teysa Karlov", 213, Rarity.RARE, mage.cards.t.TeysaKarlov.class));
|
||||
cards.add(new SetCardInfo("The Haunt of Hightower", 273, Rarity.MYTHIC, mage.cards.t.TheHauntOfHightower.class));
|
||||
cards.add(new SetCardInfo("Tithe Taker", 27, Rarity.RARE, mage.cards.t.TitheTaker.class));
|
||||
cards.add(new SetCardInfo("Wilderness Reclamation", 140, Rarity.UNCOMMON, mage.cards.w.WildernessReclamation.class));
|
||||
|
|
Loading…
Reference in a new issue