forked from External/mage
[LTR] Implement Shire Shirriff (#10544)
This commit is contained in:
parent
ddd6333d70
commit
9f02ca9f5b
3 changed files with 72 additions and 1 deletions
70
Mage.Sets/src/mage/cards/s/ShireShirriff.java
Normal file
70
Mage.Sets/src/mage/cards/s/ShireShirriff.java
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
package mage.cards.s;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.common.delayed.OnLeaveReturnExiledToBattlefieldAbility;
|
||||
import mage.abilities.common.delayed.ReflexiveTriggeredAbility;
|
||||
import mage.abilities.costs.common.SacrificeTargetCost;
|
||||
import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect;
|
||||
import mage.abilities.effects.common.DoWhenCostPaid;
|
||||
import mage.abilities.effects.common.ExileUntilSourceLeavesEffect;
|
||||
import mage.abilities.keyword.VigilanceAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.filter.predicate.permanent.TokenPredicate;
|
||||
import mage.target.TargetPermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Susucr
|
||||
*/
|
||||
public final class ShireShirriff extends CardImpl {
|
||||
|
||||
public static final FilterControlledPermanent filterToken = new FilterControlledPermanent("a token");
|
||||
|
||||
static {
|
||||
filterToken.add(TokenPredicate.TRUE);
|
||||
}
|
||||
|
||||
public ShireShirriff(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}");
|
||||
|
||||
this.subtype.add(SubType.HALFLING);
|
||||
this.subtype.add(SubType.SOLDIER);
|
||||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(2);
|
||||
|
||||
// Vigilance
|
||||
this.addAbility(VigilanceAbility.getInstance());
|
||||
|
||||
// When Shire Shirriff enters the battlefield, you may sacrifice a token.
|
||||
// When you do, exile target creature an opponent controls until Shire Shirriff leaves the battlefield.
|
||||
ReflexiveTriggeredAbility reflexive = new ReflexiveTriggeredAbility(
|
||||
new ExileUntilSourceLeavesEffect(), false,
|
||||
"exile target creature an opponent controls until {this} leaves the battlefield."
|
||||
);
|
||||
reflexive.addTarget(new TargetPermanent(StaticFilters.FILTER_OPPONENTS_PERMANENT_CREATURE));
|
||||
reflexive.addEffect(new CreateDelayedTriggeredAbilityEffect(new OnLeaveReturnExiledToBattlefieldAbility()));
|
||||
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new DoWhenCostPaid(
|
||||
reflexive,
|
||||
new SacrificeTargetCost(filterToken),
|
||||
"Sacrifice a token?"
|
||||
), true));
|
||||
}
|
||||
|
||||
private ShireShirriff(final ShireShirriff card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ShireShirriff copy() {
|
||||
return new ShireShirriff(this);
|
||||
}
|
||||
}
|
||||
|
|
@ -34,7 +34,7 @@ public final class ShrapnelSlinger extends CardImpl {
|
|||
this.addAbility(new EntersBattlefieldTriggeredAbility(new DoWhenCostPaid(
|
||||
ability,
|
||||
new SacrificeTargetCost(StaticFilters.FILTER_CONTROLLED_CREATURE_SHORT_TEXT),
|
||||
"Sacrifce a creature?"
|
||||
"Sacrifice a creature?"
|
||||
)));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -230,6 +230,7 @@ public final class TheLordOfTheRingsTalesOfMiddleEarth extends ExpansionSet {
|
|||
cards.add(new SetCardInfo("Shagrat, Loot Bearer", 228, Rarity.RARE, mage.cards.s.ShagratLootBearer.class));
|
||||
cards.add(new SetCardInfo("Shelob's Ambush", 108, Rarity.COMMON, mage.cards.s.ShelobsAmbush.class));
|
||||
cards.add(new SetCardInfo("Shire Scarecrow", 249, Rarity.COMMON, mage.cards.s.ShireScarecrow.class));
|
||||
cards.add(new SetCardInfo("Shire Shirriff", 30, Rarity.UNCOMMON, mage.cards.s.ShireShirriff.class));
|
||||
cards.add(new SetCardInfo("Shire Terrace", 261, Rarity.COMMON, mage.cards.s.ShireTerrace.class));
|
||||
cards.add(new SetCardInfo("Shortcut to Mushrooms", 187, Rarity.UNCOMMON, mage.cards.s.ShortcutToMushrooms.class));
|
||||
cards.add(new SetCardInfo("Shower of Arrows", 188, Rarity.COMMON, mage.cards.s.ShowerOfArrows.class));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue