mirror of
https://github.com/correl/mage.git
synced 2025-01-12 11:08:01 +00:00
Implemented Thorn Lieutenant
This commit is contained in:
parent
055d97d8ac
commit
36e5bd3a1d
4 changed files with 67 additions and 1 deletions
53
Mage.Sets/src/mage/cards/t/ThornLieutenant.java
Normal file
53
Mage.Sets/src/mage/cards/t/ThornLieutenant.java
Normal file
|
@ -0,0 +1,53 @@
|
|||
package mage.cards.t;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.BecomesTargetTriggeredAbility;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.effects.common.CreateTokenEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
import mage.constants.SubType;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.game.permanent.token.ElfToken;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author TheElk801
|
||||
*/
|
||||
public final class ThornLieutenant extends CardImpl {
|
||||
|
||||
public ThornLieutenant(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{G}");
|
||||
|
||||
this.subtype.add(SubType.ELF);
|
||||
this.subtype.add(SubType.WARRIOR);
|
||||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(3);
|
||||
|
||||
// Whenever Thorn Lieutenant becomes the target of a spell or ability an opponent controls, create a 1/1 green Elf Warrior creature token.
|
||||
this.addAbility(new BecomesTargetTriggeredAbility(
|
||||
new CreateTokenEffect(new ElfToken()),
|
||||
StaticFilters.FILTER_SPELL_OR_ABILITY_OPPONENTS
|
||||
));
|
||||
|
||||
// {5}{G}: Thorn Lieutenant gets +4/+4 until end of turn.
|
||||
this.addAbility(new SimpleActivatedAbility(
|
||||
new BoostSourceEffect(4, 4, Duration.EndOfTurn),
|
||||
new ManaCostsImpl("{5}{G}")
|
||||
));
|
||||
}
|
||||
|
||||
public ThornLieutenant(final ThornLieutenant card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ThornLieutenant copy() {
|
||||
return new ThornLieutenant(this);
|
||||
}
|
||||
}
|
|
@ -239,6 +239,7 @@ public final class CoreSet2019 extends ExpansionSet {
|
|||
cards.add(new SetCardInfo("Tezzeret's Gatebreaker", 289, Rarity.RARE, mage.cards.t.TezzeretsGatebreaker.class));
|
||||
cards.add(new SetCardInfo("Tezzeret's Strider", 290, Rarity.UNCOMMON, mage.cards.t.TezzeretsStrider.class));
|
||||
cards.add(new SetCardInfo("Tezzeret, Cruel Machinist", 286, Rarity.MYTHIC, mage.cards.t.TezzeretCruelMachinist.class));
|
||||
cards.add(new SetCardInfo("Thorn Lieutenant", 203, Rarity.RARE, mage.cards.t.ThornLieutenant.class));
|
||||
cards.add(new SetCardInfo("Thornhide Wolves", 204, Rarity.COMMON, mage.cards.t.ThornhideWolves.class));
|
||||
cards.add(new SetCardInfo("Thud", 163, Rarity.UNCOMMON, mage.cards.t.Thud.class));
|
||||
cards.add(new SetCardInfo("Timber Gorge", 258, Rarity.COMMON, mage.cards.t.TimberGorge.class));
|
||||
|
|
|
@ -5,6 +5,7 @@ import mage.abilities.TriggeredAbilityImpl;
|
|||
import mage.abilities.effects.Effect;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.FilterStackObject;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.game.Game;
|
||||
import mage.game.events.GameEvent;
|
||||
import mage.game.stack.StackObject;
|
||||
|
@ -18,7 +19,7 @@ public class BecomesTargetTriggeredAbility extends TriggeredAbilityImpl {
|
|||
private final FilterStackObject filter;
|
||||
|
||||
public BecomesTargetTriggeredAbility(Effect effect) {
|
||||
this(effect, new FilterStackObject("a spell or ability"));
|
||||
this(effect, StaticFilters.FILTER_SPELL_OR_ABILITY);
|
||||
}
|
||||
|
||||
public BecomesTargetTriggeredAbility(Effect effect, FilterStackObject filter) {
|
||||
|
|
|
@ -388,6 +388,17 @@ public final class StaticFilters {
|
|||
static {
|
||||
FILTER_PERMANENTS_NON_LAND.setLockedFilter(true);
|
||||
}
|
||||
public static final FilterStackObject FILTER_SPELL_OR_ABILITY_OPPONENTS = new FilterStackObject("spell or ability and opponent controls");
|
||||
|
||||
static {
|
||||
FILTER_SPELL_OR_ABILITY_OPPONENTS.add(new ControllerPredicate(TargetController.OPPONENT));
|
||||
FILTER_SPELL_OR_ABILITY_OPPONENTS.setLockedFilter(true);
|
||||
}
|
||||
public static final FilterStackObject FILTER_SPELL_OR_ABILITY = new FilterStackObject();
|
||||
|
||||
static {
|
||||
FILTER_SPELL_OR_ABILITY.setLockedFilter(true);
|
||||
}
|
||||
|
||||
public static final FilterCreatureSpell FILTER_SPELL_A_CREATURE = new FilterCreatureSpell("a creature spell");
|
||||
|
||||
|
|
Loading…
Reference in a new issue