public RunedServitor(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT,CardType.CREATURE},"{2}"); this.subtype.add(SubType.CONSTRUCT); this.power = new MageInt(2); this.toughness = new MageInt(2); this.addAbility(new DiesTriggeredAbility(new DrawCardAllEffect(1), false)); }
@Override public boolean checkTrigger(GameEvent event, Game game) { if (super.checkTrigger(event, game)) { ZoneChangeEvent zEvent = (ZoneChangeEvent) event; if (zEvent.getTarget().getCounters(game).getCount(CounterType.P1P1) > 0) { return true; } } return false; }
public CyclopeanGiant(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{B}{B}"); this.subtype.add(SubType.ZOMBIE); this.subtype.add(SubType.GIANT); this.power = new MageInt(4); this.toughness = new MageInt(2); // When Cyclopean Giant dies, target land becomes a Swamp. Exile Cyclopean Giant. DiesTriggeredAbility ability = new DiesTriggeredAbility(new BecomesBasicLandTargetEffect(Duration.EndOfGame, SubType.SWAMP)); ability.addEffect(new ExileSourceEffect()); ability.addTarget(new TargetLandPermanent()); this.addAbility(ability); }
public PitchburnDevils(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{R}"); this.subtype.add(SubType.DEVIL); this.power = new MageInt(3); this.toughness = new MageInt(3); // When Pitchburn Devils dies, it deals 3 damage to any target. DiesTriggeredAbility ability = new DiesTriggeredAbility(new DamageTargetEffect(3, "it")); ability.addTarget(new TargetAnyTarget()); this.addAbility(ability); }
public MoldgrafMonstrosity(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{G}{G}{G}"); this.subtype.add(SubType.INSECT); this.power = new MageInt(8); this.toughness = new MageInt(8); this.addAbility(TrampleAbility.getInstance()); // When Moldgraf Monstrosity dies, exile it, then return two creature cards at random from your graveyard to the battlefield. Effect effect = new ExileSourceEffect(); effect.setText(""); DiesTriggeredAbility ability = new DiesTriggeredAbility(effect); ability.addEffect(new MoldgrafMonstrosityEffect()); this.addAbility(ability); }
@Override public String getRule() { return "When Flesh Carver dies, " + super.getRule(); } }
@Override public boolean checkEventType(GameEvent event, Game game) { return super.checkEventType(event, game); }
@Override public boolean isInUseableZone(Game game, MageObject source, GameEvent event) { // check it was previously on battlefield Permanent before = ((ZoneChangeEvent) event).getTarget(); if (before == null) { return false; } if (!(before instanceof PermanentToken) && !this.hasSourceObjectAbility(game, before, event)) { return false; } // check now it is in graveyard if (before.getZoneChangeCounter(game) + 1 == game.getState().getZoneChangeCounter(sourceId)) { Zone after = game.getState().getZone(sourceId); return after != null && Zone.GRAVEYARD.match(after); } else { // Already moved to another zone, so guess it's ok return true; } }
@Override public boolean checkTrigger(GameEvent event, Game game) { if (super.checkTrigger(event, game)) { ZoneChangeEvent zEvent = (ZoneChangeEvent) event; if (zEvent.getTarget().isTransformable()) { if (!zEvent.getTarget().getAbilities().contains(this)) { return false; } } for (Effect effect : getEffects()) { effect.setValue("permanentLeftBattlefield", zEvent.getTarget()); } return true; } return false; }
@Override public void trigger(Game game, UUID controllerId) { this.getTargets().clear(); int intValue = amount.calculate(game, this, null); FilterCard filter = new FilterCard("Spirit card with converted mana cost " + intValue + " or less from your graveyard"); filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, intValue + 1)); filter.add(new SubtypePredicate(SubType.SPIRIT)); this.addTarget(new TargetCardInYourGraveyard(filter)); super.trigger(game, controllerId); //To change body of generated methods, choose Tools | Templates. }
public GoblinMasons(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{R}"); this.subtype.add(SubType.GOBLIN); this.power = new MageInt(2); this.toughness = new MageInt(1); //When Goblin Masons dies, destroy target Wall DiesTriggeredAbility ability = new DiesTriggeredAbility(new DestroyTargetEffect(), false); ability.addTarget(new TargetPermanent(filter)); this.addAbility(ability); }
public Oculus (UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{U}"); this.subtype.add(SubType.HOMUNCULUS); this.power = new MageInt(1); this.toughness = new MageInt(1); this.addAbility(new DiesTriggeredAbility(new DrawCardSourceControllerEffect(1), true)); }
public RuinRat(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{B}"); this.subtype.add(SubType.RAT); this.power = new MageInt(1); this.toughness = new MageInt(1); // Deathtouch this.addAbility(DeathtouchAbility.getInstance()); // When Ruin Rat dies, exile target card from an opponent's graveyard. DiesTriggeredAbility ability = new DiesTriggeredAbility(new ExileTargetEffect()); ability.addTarget(new TargetCardInOpponentsGraveyard(new FilterCard("card from an opponent's graveyard"))); this.addAbility(ability); }
public CelestialGatekeeper(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{W}{W}"); this.subtype.add(SubType.BIRD); this.subtype.add(SubType.CLERIC); this.power = new MageInt(2); this.toughness = new MageInt(2); // Flying this.addAbility(FlyingAbility.getInstance()); // When Celestial Gatekeeper dies, exile it, then return up to two target Bird and/or Cleric permanent cards from your graveyard to the battlefield. Effect effect = new ExileSourceEffect(); effect.setText(""); DiesTriggeredAbility ability = new DiesTriggeredAbility(effect); effect = new ReturnFromGraveyardToBattlefieldTargetEffect(); effect.setText("exile it, then return up to two target Bird and/or Cleric permanent cards from your graveyard to the battlefield"); ability.addEffect(effect); ability.addTarget(new TargetCardInGraveyard(0, 2, filter)); this.addAbility(ability); }
@Override public boolean checkTrigger(GameEvent event, Game game) { if (super.checkTrigger(event, game)) { Permanent permanent = ((ZoneChangeEvent) event).getTarget(); if (permanent.getCounters(game).getCount(CounterType.M1M1) == 0) { return true; } } return false; }
public Tarpan(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{G}"); this.subtype.add(SubType.HORSE); this.power = new MageInt(1); this.toughness = new MageInt(1); // When Tarpan dies, you gain 1 life. this.addAbility(new DiesTriggeredAbility(new GainLifeEffect(1), false)); }
public CarrionThrash(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{B}{R}{G}"); this.subtype.add(SubType.VIASHINO); this.subtype.add(SubType.WARRIOR); this.power = new MageInt(4); this.toughness = new MageInt(4); // When Carrion Thrash dies, you may pay {2}. If you do, return another target creature card from your graveyard to your hand. DiesTriggeredAbility ability = new DiesTriggeredAbility(new DoIfCostPaid(new ReturnToHandTargetEffect(), new GenericManaCost(2)), false); ability.addTarget(new TargetCardInYourGraveyard(filter)); this.addAbility(ability); }
@Override public boolean checkTrigger(GameEvent event, Game game) { if (super.checkTrigger(event, game)) { Permanent permanent = (Permanent) game.getLastKnownInformation(event.getTargetId(), Zone.BATTLEFIELD); if (!permanent.getCounters(game).containsKey(CounterType.P1P1) || permanent.getCounters(game).getCount(CounterType.P1P1) == 0) { return true; } } return false; }
public EndlessCockroaches(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{B}{B}"); this.subtype.add(SubType.INSECT); this.power = new MageInt(1); this.toughness = new MageInt(1); // When Endless Cockroaches dies, return it to its owner's hand. this.addAbility(new DiesTriggeredAbility(new ReturnToHandSourceEffect())); }
@Override public boolean checkTrigger(GameEvent event, Game game) { if (super.checkTrigger(event, game)) { Permanent permanent = (Permanent) game.getLastKnownInformation(event.getTargetId(), Zone.BATTLEFIELD); if (permanent != null) { for (Effect effect : this.getEffects()) { effect.setValue("power", permanent.getPower().getValue()); } return true; } } return false; }