@Override public TransformSourceEffect copy() { return new TransformSourceEffect(this); }
@Override public boolean replaceEvent(GameEvent event, Ability source, Game game) { Permanent permanent = game.getPermanent(event.getTargetId()); if (permanent != null) { permanent.regenerate(source.getSourceId(), game); return new TransformSourceEffect(true).apply(game, source); } return false; }
public PathOfMettleTriggeredAbility() { super(Zone.BATTLEFIELD, new TransformSourceEffect(true)); }
@Override public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { if (game.getBattlefield().count(filter, source.getSourceId(), source.getControllerId(), game) >= 3) { return new TransformSourceEffect(true).apply(game, source); } } return false; } }
public NeglectedHeirloomTriggeredAbility() { super(Zone.BATTLEFIELD, new TransformSourceEffect(true), false); }
@Override public boolean apply(Game game, Ability source) { Permanent p = game.getPermanent(source.getSourceId()); if (p != null) { if (p.getCounters(game).getCount(CounterType.HATCHLING) >= 5) { p.removeCounters(CounterType.HATCHLING.getName(), p.getCounters(game).getCount(CounterType.HATCHLING), game); TransformSourceEffect effect = new TransformSourceEffect(true); return effect.apply(game, source); } } return false; }
public VancesBlastingCannonsFlipTrigger() { super(Zone.BATTLEFIELD, new TransformSourceEffect(true), true); }
@Override public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { controller.moveCards(controller.getLibrary().getTopCards(game, 2), Zone.GRAVEYARD, source, game); if (controller.getGraveyard().count(filter, source.getSourceId(), source.getControllerId(), game) >= 1) { return new TransformSourceEffect(true).apply(game, source); } } return false; } }
public DaringSleuthTriggeredAbility() { super(Zone.BATTLEFIELD, new TransformSourceEffect(true)); }
@Override public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); if (controller != null && controller.getLibrary().hasCards()) { Card card = controller.getLibrary().getFromTop(game); controller.moveCards(card, Zone.GRAVEYARD, source, game); if (card.isInstant() || card.isSorcery()) { new TransformSourceEffect(true).apply(game, source); } return true; } return false; }
public GarrukRelentlessStateTrigger() { super(Zone.BATTLEFIELD, new TransformSourceEffect(true)); }
@Override public boolean apply(Game game, Ability source) { Player player = game.getPlayer(source.getControllerId()); Permanent permanent = game.getPermanent(source.getSourceId()); if (permanent != null && player != null) { permanent.addCounters(CounterType.CHARGE.createInstance(), source, game); int counters = permanent.getCounters(game).getCount(CounterType.CHARGE); if (counters > 3 && player.chooseUse(Outcome.Benefit, "Transform this?", source, game)) { permanent.removeCounters("charge", counters, game); new TransformSourceEffect(true).apply(game, source); } return true; } return false; } }
public HomicidalBruteTriggeredAbility() { super(Zone.BATTLEFIELD, new TapSourceEffect(), false); addEffect(new TransformSourceEffect(false)); }
@Override public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); UUID exileId = CardUtil.getCardExileZoneId(game, source); MageObject sourceObject = source.getSourceObject(game); if (controller != null && exileId != null && sourceObject != null) { new ExileTargetEffect(exileId, sourceObject.getIdName()).setTargetPointer(targetPointer).apply(game, source); game.applyEffects(); ExileZone exileZone = game.getExile().getExileZone(exileId); if (exileZone != null && exileZone.size() > 2) { new TransformSourceEffect(true).apply(game, source); } return true; } return false; } }
public OneOfThePack(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},""); this.subtype.add(SubType.WEREWOLF); this.power = new MageInt(5); this.toughness = new MageInt(6); this.color.setGreen(true); this.nightCard = true; this.transformable = true; // At the beginning of each upkeep, if a player cast two or more spells last turn, transform One of the Pack. TriggeredAbility ability = new BeginningOfUpkeepTriggeredAbility(new TransformSourceEffect(false), TargetController.ANY, false); this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, TwoOrMoreSpellsWereCastLastTurnCondition.instance, TransformAbility.TWO_OR_MORE_SPELLS_TRANSFORM_RULE)); }
public CloisteredYouth(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}"); this.subtype.add(SubType.HUMAN); this.power = new MageInt(1); this.toughness = new MageInt(1); this.transformable = true; this.secondSideCardClazz = mage.cards.u.UnholyFiend.class; // At the beginning of your upkeep, you may transform Cloistered Youth. this.addAbility(new TransformAbility()); this.addAbility(new BeginningOfUpkeepTriggeredAbility(new TransformSourceEffect(true), TargetController.YOU, true)); }
public LambholtButcher(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},""); this.subtype.add(SubType.WEREWOLF); this.power = new MageInt(4); this.toughness = new MageInt(4); this.color.setGreen(true); // this card is the second face of double-faced card this.nightCard = true; this.transformable = true; // At the beginning of each upkeep, if a player cast two or more spells last turn, transform Lambholt Butcher. TriggeredAbility ability = new BeginningOfUpkeepTriggeredAbility(new TransformSourceEffect(false), TargetController.ANY, false); this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, TwoOrMoreSpellsWereCastLastTurnCondition.instance, TransformAbility.TWO_OR_MORE_SPELLS_TRANSFORM_RULE)); }
public KrallenhordeWantons(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},""); this.subtype.add(SubType.WEREWOLF); this.color.setGreen(true); // this card is the second face of double-faced card this.nightCard = true; this.transformable = true; this.power = new MageInt(7); this.toughness = new MageInt(7); // At the beginning of each upkeep, if a player cast two or more spells last turn, transform Krallenhorde Wantons. TriggeredAbility ability = new BeginningOfUpkeepTriggeredAbility(new TransformSourceEffect(false), TargetController.ANY, false); this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, TwoOrMoreSpellsWereCastLastTurnCondition.instance, TransformAbility.TWO_OR_MORE_SPELLS_TRANSFORM_RULE)); }
public RampagingWerewolf(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},""); this.subtype.add(SubType.WEREWOLF); this.color.setRed(true); // this card is the second face of double-faced card this.nightCard = true; this.transformable = true; this.power = new MageInt(6); this.toughness = new MageInt(4); // At the beginning of each upkeep, if a player cast two or more spells last turn, transform Rampaging Werewolf. TriggeredAbility ability = new BeginningOfUpkeepTriggeredAbility(new TransformSourceEffect(false), TargetController.ANY, false); this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, TwoOrMoreSpellsWereCastLastTurnCondition.instance, TransformAbility.TWO_OR_MORE_SPELLS_TRANSFORM_RULE)); }
public MercilessPredator(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},""); this.subtype.add(SubType.WEREWOLF); this.color.setRed(true); // this card is the second face of double-faced card this.nightCard = true; this.transformable = true; this.power = new MageInt(3); this.toughness = new MageInt(2); // At the beginning of each upkeep, if a player cast two or more spells last turn, transform Merciless Predator. TriggeredAbility ability = new BeginningOfUpkeepTriggeredAbility(new TransformSourceEffect(false), TargetController.ANY, false); this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, TwoOrMoreSpellsWereCastLastTurnCondition.instance, TransformAbility.TWO_OR_MORE_SPELLS_TRANSFORM_RULE)); }