@Override public AttacksOrBlocksTriggeredAbility copy() { return new AttacksOrBlocksTriggeredAbility(this); }
public MerfolkSkyscout(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{U}{U}"); this.subtype.add(SubType.MERFOLK); this.subtype.add(SubType.SCOUT); this.power = new MageInt(2); this.toughness = new MageInt(3); this.addAbility(FlyingAbility.getInstance()); AttacksOrBlocksTriggeredAbility ability = new AttacksOrBlocksTriggeredAbility(new UntapTargetEffect(), false); ability.addTarget(new TargetPermanent()); this.addAbility(ability); }
@Override public boolean checkTrigger(GameEvent event, Game game) { return event.getSourceId().equals(this.getSourceId()); } }
public HowlingGolem(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{3}"); this.subtype.add(SubType.GOLEM); this.power = new MageInt(2); this.toughness = new MageInt(3); // Whenever Howling Golem attacks or blocks, each player draws a card. this.addAbility(new AttacksOrBlocksTriggeredAbility(new DrawCardAllEffect(1), false)); }
public LoafingGiant(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{R}"); this.subtype.add(SubType.GIANT); this.power = new MageInt(4); this.toughness = new MageInt(6); // Whenever Loafing Giant attacks or blocks, put the top card of your library into your graveyard. If that card is a land card, prevent all combat damage Loafing Giant would deal this turn. this.addAbility(new AttacksOrBlocksTriggeredAbility(new LoafingGiantEffect(), false)); }
public HamletCaptain(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{G}"); this.subtype.add(SubType.HUMAN); this.subtype.add(SubType.WARRIOR); this.power = new MageInt(2); this.toughness = new MageInt(2); // Whenever Hamlet Captain attacks or blocks, other Human creatures you control get +1/+1 until end of turn. this.addAbility(new AttacksOrBlocksTriggeredAbility(new BoostControlledEffect(1, 1, Duration.EndOfTurn, filter, true), false)); }
public GoblinPsychopath(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{R}"); this.subtype.add(SubType.GOBLIN); this.subtype.add(SubType.MUTANT); this.power = new MageInt(5); this.toughness = new MageInt(5); // Whenever Goblin Psychopath attacks or blocks, flip a coin. If you lose the flip, the next time it would deal combat damage this turn, it deals that damage to you instead. this.addAbility(new AttacksOrBlocksTriggeredAbility(new GoblinPsychopathEffect(), false)); }
public TakenumaBleeder(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{B}"); this.subtype.add(SubType.OGRE); this.subtype.add(SubType.SHAMAN); this.power = new MageInt(3); this.toughness = new MageInt(3); // Whenever Takenuma Bleeder attacks or blocks, you lose 1 life if you don't control a Demon. this.addAbility(new AttacksOrBlocksTriggeredAbility(new TakenumaBleederEffect(), false)); }
public LesserGargadon(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}{R}"); this.subtype.add(SubType.BEAST); this.power = new MageInt(6); this.toughness = new MageInt(4); // Whenever Lesser Gargadon attacks or blocks, sacrifice a land. this.addAbility(new AttacksOrBlocksTriggeredAbility(new SacrificeControllerEffect(new FilterLandPermanent(), 1, ""), false)); }
public MorkrutNecropod(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{B}"); this.subtype.add(SubType.SLUG); this.subtype.add(SubType.HORROR); this.power = new MageInt(7); this.toughness = new MageInt(7); // Menace this.addAbility(new MenaceAbility()); // Whenever Morkrut Necropod attacks or blocks, sacrifice another creature or land. this.addAbility(new AttacksOrBlocksTriggeredAbility(new SacrificeControllerEffect(filter, 1, ""), false)); }
public SaprazzanOutrigger(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{U}"); this.subtype.add(SubType.MERFOLK); this.power = new MageInt(5); this.toughness = new MageInt(5); // When Saprazzan Outrigger attacks or blocks, put it on top of its owner's library at end of combat. DelayedTriggeredAbility ability = new AtTheEndOfCombatDelayedTriggeredAbility(new PutOnLibrarySourceEffect(true, "put it on top of its owner's library at end of combat")); this.addAbility(new AttacksOrBlocksTriggeredAbility(new CreateDelayedTriggeredAbilityEffect(ability, true), false)); }
public BrackwaterElemental(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{U}"); this.subtype.add(SubType.ELEMENTAL); this.power = new MageInt(4); this.toughness = new MageInt(4); // When Brackwater Elemental attacks or blocks, sacrifice it at the beginning of the next end step. this.addAbility(new AttacksOrBlocksTriggeredAbility(new BrackwaterElementalSacrificeEffect(), false)); // Unearth {2}{U} this.addAbility(new UnearthAbility(new ManaCostsImpl("{2}{U}"))); }
public WickerWarcrawler(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT,CardType.CREATURE},"{5}"); this.subtype.add(SubType.SCARECROW); this.power = new MageInt(6); this.toughness = new MageInt(6); // Whenever Wicker Warcrawler attacks or blocks, put a -1/-1 counter on it at end of combat. Effect effect = new AddCountersSourceEffect(CounterType.M1M1.createInstance(), true); effect.setText("put a -1/-1 counter on it at end of combat"); DelayedTriggeredAbility ability = new AtTheEndOfCombatDelayedTriggeredAbility(effect); this.addAbility(new AttacksOrBlocksTriggeredAbility(new CreateDelayedTriggeredAbilityEffect(ability, false, false), false)); }
public SmugglersCopter(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{2}"); this.subtype.add(SubType.VEHICLE); this.power = new MageInt(3); this.toughness = new MageInt(3); // Flying this.addAbility(FlyingAbility.getInstance()); // Whenever Smuggler's Copter attacks or blocks, you may draw a card. If you do, discard a card. Effect effect = new DrawDiscardControllerEffect(); effect.setText("you may draw a card. If you do, discard a card"); this.addAbility(new AttacksOrBlocksTriggeredAbility(effect, true)); // Crew 1 this.addAbility(new CrewAbility(1)); }
public BrunaLightOfAlabaster(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{W}{W}{U}"); addSuperType(SuperType.LEGENDARY); this.subtype.add(SubType.ANGEL); this.power = new MageInt(5); this.toughness = new MageInt(5); this.addAbility(FlyingAbility.getInstance()); this.addAbility(VigilanceAbility.getInstance()); // Whenever Bruna, Light of Alabaster attacks or blocks, you may attach to it any number of Auras on the battlefield and you may put onto the battlefield attached to it any number of Aura cards that could enchant it from your graveyard and/or hand. this.addAbility(new AttacksOrBlocksTriggeredAbility(new BrunaLightOfAlabasterEffect(), true)); }
public ClockworkBeetle(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT,CardType.CREATURE},"{1}"); this.subtype.add(SubType.INSECT); this.power = new MageInt(0); this.toughness = new MageInt(0); // Clockwork Beetle enters the battlefield with two +1/+1 counters on it. this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(2)), "with two +1/+1 counters on it")); // Whenever Clockwork Beetle attacks or blocks, remove a +1/+1 counter from it at end of combat. this.addAbility(new AttacksOrBlocksTriggeredAbility(new ClockworkBeetleEffect(), false)); }
public RottingGiant(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{B}"); this.subtype.add(SubType.ZOMBIE); this.subtype.add(SubType.GIANT); this.power = new MageInt(3); this.toughness = new MageInt(3); // Whenever Rotting Giant attacks or blocks, sacrifice it unless you exile a card from your graveyard. TargetCardInYourGraveyard target = new TargetCardInYourGraveyard(); this.addAbility(new AttacksOrBlocksTriggeredAbility(new SacrificeSourceUnlessPaysEffect(new ExileFromGraveCost(target)), false)); }
public EmbalmedBrawler(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{B}"); this.subtype.add(SubType.ZOMBIE); this.power = new MageInt(2); this.toughness = new MageInt(2); // Amplify 1 this.addAbility(new AmplifyAbility(AmplifyEffect.AmplifyFactor.Amplify1)); // Whenever Embalmed Brawler attacks or blocks, you lose 1 life for each +1/+1 counter on it. this.addAbility(new AttacksOrBlocksTriggeredAbility(new LoseLifeSourceControllerEffect(new CountersSourceCount(CounterType.P1P1)), false)); }
public PhantomWhelp(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{U}"); this.subtype.add(SubType.ILLUSION); this.subtype.add(SubType.HOUND); this.power = new MageInt(2); this.toughness = new MageInt(2); // When Phantom Whelp attacks or blocks, return it to its owner's hand at end of combat. (Return it only if it's on the battlefield.) Effect effect = new CreateDelayedTriggeredAbilityEffect( new AtTheEndOfCombatDelayedTriggeredAbility(new ReturnToHandSourceEffect(true))); effect.setText("return it to its owner's hand at end of combat"); this.addAbility(new AttacksOrBlocksTriggeredAbility(effect, false)); }
public JeditOjanenOfEfrava(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{G}{G}{G}"); addSuperType(SuperType.LEGENDARY); this.subtype.add(SubType.CAT); this.subtype.add(SubType.WARRIOR); this.power = new MageInt(5); this.toughness = new MageInt(5); // Forestwalk this.addAbility(new ForestwalkAbility()); // Whenever Jedit Ojanen of Efrava attacks or blocks, create a 2/2 green Cat Warrior creature token with forestwalk. this.addAbility(new AttacksOrBlocksTriggeredAbility(new CreateTokenEffect(new CatWarriorToken()), false)); }