* Reworked some parts of transform handling. Fixes #2396.

This commit is contained in:
LevelX2 2016-09-28 17:02:37 +02:00
parent e57da7598e
commit 86648c7190
157 changed files with 246 additions and 204 deletions

View file

@ -52,7 +52,7 @@ public class AfflictedDeserter extends CardImpl {
this.subtype.add("Human");
this.subtype.add("Werewolf");
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new WerewolfRansacker(ownerId);
this.power = new MageInt(3);

View file

@ -68,7 +68,7 @@ public class ArchdemonOfGreed extends CardImpl {
this.color.setBlack(true);
this.nightCard = true;
this.canTransform = true;
this.transformable = true;
this.power = new MageInt(9);
this.toughness = new MageInt(9);

View file

@ -53,7 +53,7 @@ public class ChaliceOfLife extends CardImpl {
super(ownerId, 146, "Chalice of Life", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT}, "{3}");
this.expansionSetCode = "DKA";
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new ChaliceOfDeath(ownerId);
this.addAbility(new TransformAbility());

View file

@ -66,7 +66,7 @@ public class ChosenOfMarkov extends CardImpl {
this.power = new MageInt(2);
this.toughness = new MageInt(2);
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new MarkovsServant(ownerId);
// {tap}, Tap an untapped Vampire you control: Transform Chosen of Markov.

View file

@ -57,7 +57,7 @@ public class ElbrusTheBindingBlade extends CardImpl {
this.supertype.add("Legendary");
this.subtype.add("Equipment");
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new WithengarUnbound(ownerId);
this.addAbility(new TransformAbility());

View file

@ -52,7 +52,7 @@ public class GhastlyHaunting extends CardImpl {
// this card is the second face of double-faced card
this.nightCard = true;
this.canTransform = true;
this.transformable = true;
// Enchant creature
TargetPermanent auraTarget = new TargetCreaturePermanent();

View file

@ -53,7 +53,7 @@ public class HinterlandHermit extends CardImpl {
this.subtype.add("Human");
this.subtype.add("Werewolf");
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new HinterlandScourge(ownerId);
this.power = new MageInt(2);

View file

@ -58,7 +58,7 @@ public class HinterlandScourge extends CardImpl {
// this card is the second face of double-faced card of Hinterland Hermit
this.nightCard = true;
this.canTransform = true;
this.transformable = true;
this.power = new MageInt(3);
this.toughness = new MageInt(2);

View file

@ -57,7 +57,7 @@ public class HuntmasterOfTheFells extends CardImpl {
this.subtype.add("Human");
this.subtype.add("Werewolf");
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new RavagerOfTheFells(ownerId);
this.power = new MageInt(2);

View file

@ -58,7 +58,7 @@ public class KrallenhordeKiller extends CardImpl {
this.toughness = new MageInt(2);
this.nightCard = true;
this.canTransform = true;
this.transformable = true;
// {3}{G}: Krallenhorde Killer gets +4/+4 until end of turn. Activate this ability only once each turn.
this.addAbility(new LimitedTimesPerTurnActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(4, 4, Duration.EndOfTurn), new ManaCostsImpl("{3}{G}")));

View file

@ -56,7 +56,7 @@ public class LambholtElder extends CardImpl {
this.power = new MageInt(1);
this.toughness = new MageInt(2);
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new SilverpeltWerewolf(ownerId);
// At the beginning of each upkeep, if no spells were cast last turn, transform Lambholt Elder.

View file

@ -56,7 +56,7 @@ public class LoyalCathar extends CardImpl {
this.subtype.add("Human");
this.subtype.add("Soldier");
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new UnhallowedCathar(ownerId);
this.power = new MageInt(2);
@ -133,7 +133,7 @@ class ReturnLoyalCatharEffect extends OneShotEffect {
if (card != null) {
card.putOntoBattlefield(game, Zone.GRAVEYARD, source.getSourceId(), source.getControllerId());
Permanent perm = game.getPermanent(cardId);
if (perm != null && perm.canTransform()) {
if (perm != null && perm.isTransformable()) {
perm.transform(game);
return true;
}

View file

@ -48,7 +48,7 @@ public class MarkovsServant extends CardImpl {
this.power = new MageInt(4);
this.toughness = new MageInt(4);
this.canTransform = true;
this.transformable = true;
this.nightCard = true;
}

View file

@ -56,7 +56,7 @@ public class MondronenShaman extends CardImpl {
this.power = new MageInt(3);
this.toughness = new MageInt(2);
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new TovolarsMagehunter(ownerId);
// At the beginning of each upkeep, if no spells were cast last turn, transform Mondronen Shaman.

View file

@ -63,7 +63,7 @@ public class MoonscarredWerewolf extends CardImpl {
// this card is the second face of double-faced card
this.nightCard = true;
this.canTransform = true;
this.transformable = true;
this.addAbility(VigilanceAbility.getInstance());
// {tap}: Add {G}{G} to your mana pool.

View file

@ -73,7 +73,7 @@ public class RavagerOfTheFells extends CardImpl {
// this card is the second face of double-faced card
this.nightCard = true;
this.canTransform = true;
this.transformable = true;
this.power = new MageInt(4);
this.toughness = new MageInt(4);

View file

@ -58,7 +58,7 @@ public class RavenousDemon extends CardImpl {
this.expansionSetCode = "DKA";
this.subtype.add("Demon");
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new ArchdemonOfGreed(ownerId);
this.power = new MageInt(4);

View file

@ -56,7 +56,7 @@ public class ScornedVillager extends CardImpl {
this.power = new MageInt(1);
this.toughness = new MageInt(1);
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new MoonscarredWerewolf(ownerId);
// {tap}: Add {G} to your mana pool.

View file

@ -58,7 +58,7 @@ public class SilverpeltWerewolf extends CardImpl {
this.power = new MageInt(4);
this.toughness = new MageInt(5);
this.canTransform = true;
this.transformable = true;
this.nightCard = true;
// Whenever Silverpelt Werewolf deals combat damage to a player, draw a card.

View file

@ -60,7 +60,7 @@ public class SoulSeizer extends CardImpl {
this.expansionSetCode = "DKA";
this.subtype.add("Spirit");
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new GhastlyHaunting(ownerId);
this.power = new MageInt(1);
@ -139,7 +139,7 @@ class SoulSeizerEffect extends OneShotEffect {
@Override
public boolean apply(Game game, Ability source) {
Permanent permanent = game.getPermanent(source.getSourceId());
if (permanent != null && permanent.canTransform()) {
if (permanent != null && permanent.isTransformable()) {
if (permanent.transform(game)) {
game.informPlayers(new StringBuilder(permanent.getName()).append(" transforms into ").append(permanent.getSecondCardFace().getName()).toString());
Permanent attachTo = game.getPermanent(targetPointer.getFirst(game, source));

View file

@ -64,7 +64,7 @@ public class TovolarsMagehunter extends CardImpl {
// this card is the second face of double-faced card
this.nightCard = true;
this.canTransform = true;
this.transformable = true;
// Whenever an opponent casts a spell, Tovolar's Magehunter deals 2 damage to that player.
this.addAbility(new TovolarsMagehunterTriggeredAbility());

View file

@ -49,7 +49,7 @@ public class UnhallowedCathar extends CardImpl {
// this card is the second face of double-faced card
this.nightCard = true;
this.canTransform = true;
this.transformable = true;
this.power = new MageInt(2);
this.toughness = new MageInt(1);

View file

@ -67,7 +67,7 @@ public class WerewolfRansacker extends CardImpl {
// this card is the second face of double-faced card
this.nightCard = true;
this.canTransform = true;
this.transformable = true;
this.power = new MageInt(5);
this.toughness = new MageInt(4);

View file

@ -58,7 +58,7 @@ public class WithengarUnbound extends CardImpl {
// this card is the second face of double-faced card
this.nightCard = true;
this.canTransform = true;
this.transformable = true;
this.power = new MageInt(13);
this.toughness = new MageInt(13);

View file

@ -57,7 +57,7 @@ public class WolfbittenCaptive extends CardImpl {
this.power = new MageInt(1);
this.toughness = new MageInt(1);
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new KrallenhordeKiller(ownerId);
// {1}{G}: Wolfbitten Captive gets +2/+2 until end of turn. Activate this ability only once each turn.

View file

@ -59,7 +59,7 @@ public class ConduitOfStorms extends CardImpl {
this.power = new MageInt(2);
this.toughness = new MageInt(3);
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new ConduitOfEmrakul(ownerId);
// Whenever Conduit of Storms attacks, add {R} to your mana pool at the beginning of your next main phase this turn.

View file

@ -52,7 +52,7 @@ public class CryptolithFragment extends CardImpl {
super(ownerId, 193, "Cryptolith Fragment", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT}, "{3}");
this.expansionSetCode = "EMN";
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new AuroraOfEmrakul(ownerId);
// Cryptolith Fragment enters the battlefield tapped.

View file

@ -65,7 +65,7 @@ public class CuriousHomunculus extends CardImpl {
this.power = new MageInt(1);
this.toughness = new MageInt(1);
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new VoraciousReader(ownerId);
// {T}: Add {C} to your mana pool. Spend this mana only to cast an instant or sorcery spell.

View file

@ -74,7 +74,7 @@ public class DocentOfPerfection extends CardImpl {
this.power = new MageInt(5);
this.toughness = new MageInt(4);
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new FinalIteration(ownerId);
// Flying

View file

@ -67,7 +67,7 @@ public class ExtricatorOfSin extends CardImpl {
this.power = new MageInt(0);
this.toughness = new MageInt(3);
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new ExtricatorOfFlesh(ownerId);
// When Extricator of Sin enters the battlefield, you may sacrifice another permanent. If you do, put a 3/2 colorless Eldrazi Horror creature token onto the battlefield.

View file

@ -58,7 +58,7 @@ public class GrizzledAngler extends CardImpl {
this.power = new MageInt(2);
this.toughness = new MageInt(3);
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new GrislyAnglerfish(ownerId);
// {T}: Put the top two cards of your library into your graveyard. Then if there is a colorless creature card in your graveyard, transform Grizzled Angler.

View file

@ -52,7 +52,7 @@ public class KessigProwler extends CardImpl {
this.power = new MageInt(2);
this.toughness = new MageInt(1);
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new SinuousPredator(ownerId);
// {4}{G}: Transform Kessig Prowler.

View file

@ -62,7 +62,7 @@ public class LoneRider extends CardImpl {
this.power = new MageInt(1);
this.toughness = new MageInt(1);
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new ItThatRidesAsOne(ownerId);
// First strike

View file

@ -54,7 +54,7 @@ public class ShrillHowler extends CardImpl {
this.power = new MageInt(3);
this.toughness = new MageInt(1);
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new HowlingChorus(ownerId);
// Creatures with power less than Shrill Howler's power can't block it.

View file

@ -57,7 +57,7 @@ public class SmolderingWerewolf extends CardImpl {
this.power = new MageInt(3);
this.toughness = new MageInt(2);
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new EruptingDreadwolf(ownerId);
// When Smoldering Werewolf enters the battlefield, it deals 1 damage to each of up to two target creatures.

View file

@ -55,7 +55,7 @@ public class TangleclawWerewolf extends CardImpl {
this.power = new MageInt(2);
this.toughness = new MageInt(4);
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new FibrousEntangler(ownerId);
// Tangleclaw Werewolf can block an additional creature each combat.

View file

@ -64,7 +64,7 @@ public class UlrichOfTheKrallenhorde extends CardImpl {
this.toughness = new MageInt(4);
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new UlrichUncontestedAlpha(ownerId);
// Whenever this creature enters the battlefield or transforms into Ulrich of the Krallenhorde, target creature gets +4/+4 until end of turn.

View file

@ -70,7 +70,7 @@ public class UlrichUncontestedAlpha extends CardImpl {
// this card is the second face of double-faced card
this.nightCard = true;
this.canTransform = true;
this.transformable = true;
// Whenever this creature transforms into Ulrich, Uncontested Alpha, you may have it fight target non-Werewolf creature you don't control.
this.addAbility(new UlrichUncontestedAlphaAbility());

View file

@ -54,7 +54,7 @@ public class UlvenwaldCaptive extends CardImpl {
this.power = new MageInt(1);
this.toughness = new MageInt(2);
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new UlvenwaldAbomination(ownerId);
// Defender

View file

@ -55,7 +55,7 @@ public class VildinPackOutcast extends CardImpl {
this.power = new MageInt(4);
this.toughness = new MageInt(4);
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new DronepackKindred(ownerId);
// Trample

View file

@ -64,7 +64,7 @@ public class VoldarenPariah extends CardImpl {
this.power = new MageInt(3);
this.toughness = new MageInt(3);
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new AbolisherOfBloodlines(ownerId);
// Flying

View file

@ -55,7 +55,7 @@ public class BaneOfHanweir extends CardImpl {
// this card is the second face of double-faced card
this.nightCard = true;
this.canTransform = true;
this.transformable = true;
this.power = new MageInt(5);
this.toughness = new MageInt(5);

View file

@ -68,7 +68,7 @@ public class BloodlineKeeper extends CardImpl {
this.power = new MageInt(3);
this.toughness = new MageInt(3);
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new LordOfLineage(ownerId);
this.addAbility(FlyingAbility.getInstance());

View file

@ -58,7 +58,7 @@ public class CivilizedScholar extends CardImpl {
this.subtype.add("Human");
this.subtype.add("Advisor");
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new HomicidalBrute(ownerId);
this.power = new MageInt(0);

View file

@ -52,7 +52,7 @@ public class CloisteredYouth extends CardImpl {
this.power = new MageInt(1);
this.toughness = new MageInt(1);
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new UnholyFiend(ownerId);
// At the beginning of your upkeep, you may transform Cloistered Youth.

View file

@ -68,7 +68,7 @@ public class DaybreakRanger extends CardImpl {
this.subtype.add("Archer");
this.subtype.add("Werewolf");
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new NightfallPredator(ownerId);
this.power = new MageInt(2);

View file

@ -63,7 +63,7 @@ public class DelverOfSecrets extends CardImpl {
this.power = new MageInt(1);
this.toughness = new MageInt(1);
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new InsectileAberration(ownerId);
// At the beginning of your upkeep, look at the top card of your library. You may reveal that card. If an instant or sorcery card is revealed this way, transform Delver of Secrets.

View file

@ -59,7 +59,7 @@ public class GarrukRelentless extends CardImpl {
this.expansionSetCode = "ISD";
this.subtype.add("Garruk");
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new GarrukTheVeilCursed(ownerId);
this.addAbility(new PlanswalkerEntersWithLoyalityCountersAbility(3));

View file

@ -67,7 +67,7 @@ public class GarrukTheVeilCursed extends CardImpl {
// this card is the second face of double-faced card
this.nightCard = true;
this.canTransform = true;
this.transformable = true;
this.color.setGreen(true);
this.color.setBlack(true);

View file

@ -55,7 +55,7 @@ public class GatstafHowler extends CardImpl {
// this card is the second face of double-faced card
this.nightCard = true;
this.canTransform = true;
this.transformable = true;
this.power = new MageInt(3);
this.toughness = new MageInt(3);

View file

@ -52,7 +52,7 @@ public class GatstafShepherd extends CardImpl {
this.subtype.add("Human");
this.subtype.add("Werewolf");
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new GatstafHowler(ownerId);
this.power = new MageInt(2);

View file

@ -52,7 +52,7 @@ public class GrizzledOutcasts extends CardImpl {
this.subtype.add("Human");
this.subtype.add("Werewolf");
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new KrallenhordeWantons(ownerId);
this.power = new MageInt(4);

View file

@ -54,7 +54,7 @@ public class HanweirWatchkeep extends CardImpl {
this.subtype.add("Warrior");
this.subtype.add("Werewolf");
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new BaneOfHanweir(ownerId);
this.power = new MageInt(1);

View file

@ -54,7 +54,7 @@ public class HomicidalBrute extends CardImpl {
// this card is the second face of double-faced card
this.nightCard = true;
this.canTransform = true;
this.transformable = true;
this.color.setRed(true);
this.power = new MageInt(5);

View file

@ -71,7 +71,7 @@ public class HowlpackAlpha extends CardImpl {
// this card is the second face of double-faced card
this.nightCard = true;
this.canTransform = true;
this.transformable = true;
this.color.setGreen(true);
this.power = new MageInt(3);

View file

@ -54,7 +54,7 @@ public class HowlpackOfEstwald extends CardImpl {
// this card is the second face of double-faced card
this.nightCard = true;
this.canTransform = true;
this.transformable = true;
this.power = new MageInt(4);
this.toughness = new MageInt(6);

View file

@ -55,7 +55,7 @@ public class InstigatorGang extends CardImpl {
this.subtype.add("Human");
this.subtype.add("Werewolf");
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new WildbloodPack(ownerId);
this.power = new MageInt(2);

View file

@ -55,7 +55,7 @@ public class Ironfang extends CardImpl {
// this card is the second face of double-faced card
this.nightCard = true;
this.canTransform = true;
this.transformable = true;
this.power = new MageInt(3);
this.toughness = new MageInt(1);

View file

@ -55,7 +55,7 @@ public class KrallenhordeWantons extends CardImpl {
// this card is the second face of double-faced card
this.nightCard = true;
this.canTransform = true;
this.transformable = true;
this.power = new MageInt(7);
this.toughness = new MageInt(7);

View file

@ -54,7 +54,7 @@ public class KruinOutlaw extends CardImpl {
this.subtype.add("Rogue");
this.subtype.add("Werewolf");
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new TerrorOfKruinPass(ownerId);
this.power = new MageInt(2);

View file

@ -66,7 +66,7 @@ public class LordOfLineage extends CardImpl {
// this card is the second face of double-faced card
this.nightCard = true;
this.canTransform = true;
this.transformable = true;
this.addAbility(FlyingAbility.getInstance());
// Other Vampire creatures you control get +2/+2.

View file

@ -49,7 +49,7 @@ public class LudevicsAbomination extends CardImpl {
// this card is the second face of double-faced card
this.nightCard = true;
this.canTransform = true;
this.transformable = true;
this.power = new MageInt(13);
this.toughness = new MageInt(13);

View file

@ -60,7 +60,7 @@ public class LudevicsTestSubject extends CardImpl {
this.power = new MageInt(0);
this.toughness = new MageInt(3);
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new LudevicsAbomination(ownerId);
this.addAbility(DefenderAbility.getInstance());

View file

@ -68,7 +68,7 @@ public class MayorOfAvabruck extends CardImpl {
this.subtype.add("Advisor");
this.subtype.add("Werewolf");
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new HowlpackAlpha(ownerId);
this.power = new MageInt(1);

View file

@ -54,7 +54,7 @@ public class MercilessPredator extends CardImpl {
// this card is the second face of double-faced card
this.nightCard = true;
this.canTransform = true;
this.transformable = true;
this.power = new MageInt(3);
this.toughness = new MageInt(2);

View file

@ -95,7 +95,7 @@ class MoonmistEffect extends OneShotEffect {
@Override
public boolean apply(Game game, Ability source) {
for (Permanent permanent: game.getBattlefield().getActivePermanents(filter, source.getControllerId(), game)) {
if (permanent.canTransform()) {
if (permanent.isTransformable()) {
permanent.transform(game);
game.informPlayers(new StringBuilder(permanent.getName()).append(" transforms into ").append(permanent.getSecondCardFace().getName()).toString());
}

View file

@ -67,7 +67,7 @@ public class NightfallPredator extends CardImpl {
// this card is the second face of double-faced card
this.nightCard = true;
this.canTransform = true;
this.transformable = true;
// {R}, {tap}: Nightfall Predator fights target creature.
Ability activatedAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, new NightfallPredatorEffect(), new ManaCostsImpl("{R}"));

View file

@ -54,7 +54,7 @@ public class RampagingWerewolf extends CardImpl {
// this card is the second face of double-faced card
this.nightCard = true;
this.canTransform = true;
this.transformable = true;
this.power = new MageInt(6);
this.toughness = new MageInt(4);

View file

@ -53,7 +53,7 @@ public class RecklessWaif extends CardImpl {
this.subtype.add("Rogue");
this.subtype.add("Werewolf");
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new MercilessPredator(ownerId);
this.power = new MageInt(1);

View file

@ -58,7 +58,7 @@ public class ScreechingBat extends CardImpl {
this.expansionSetCode = "ISD";
this.subtype.add("Bat");
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new StalkingVampire(ownerId);
this.power = new MageInt(2);
@ -134,7 +134,7 @@ class ScreechingBatTransformSourceEffect extends OneShotEffect {
if (permanent != null) {
Cost cost = new ManaCostsImpl("{2}{B}{B}");
if (cost.pay(source, game, permanent.getControllerId(), permanent.getControllerId(), false, null)) {
if (permanent.canTransform()) {
if (permanent.isTransformable()) {
permanent.setTransformed(!permanent.isTransformed());
}
}

View file

@ -47,7 +47,7 @@ public class StalkingVampire extends CardImpl {
this.color.setBlack(true);
this.nightCard = true;
this.canTransform = true;
this.transformable = true;
this.power = new MageInt(5);
this.toughness = new MageInt(5);

View file

@ -72,7 +72,7 @@ public class TerrorOfKruinPass extends CardImpl {
// this card is the second face of double-faced card
this.nightCard = true;
this.canTransform = true;
this.transformable = true;
this.color.setRed(true);
this.power = new MageInt(3);

View file

@ -49,7 +49,7 @@ public class ThrabenMilitia extends CardImpl {
// this card is the second face of double-faced card
this.nightCard = true;
this.canTransform = true;
this.transformable = true;
this.power = new MageInt(5);
this.toughness = new MageInt(4);

View file

@ -56,7 +56,7 @@ public class ThrabenSentry extends CardImpl {
this.subtype.add("Human");
this.subtype.add("Soldier");
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new ThrabenMilitia(ownerId);
this.power = new MageInt(2);

View file

@ -53,7 +53,7 @@ public class TormentedPariah extends CardImpl {
this.subtype.add("Warrior");
this.subtype.add("Werewolf");
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new RampagingWerewolf(ownerId);
this.power = new MageInt(3);

View file

@ -53,7 +53,7 @@ public class UlvenwaldMystics extends CardImpl {
this.subtype.add("Shaman");
this.subtype.add("Werewolf");
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new UlvenwaldPrimordials(ownerId);
this.power = new MageInt(3);

View file

@ -58,7 +58,7 @@ public class UlvenwaldPrimordials extends CardImpl {
// this card is the second face of double-faced card
this.nightCard = true;
this.canTransform = true;
this.transformable = true;
this.power = new MageInt(5);
this.toughness = new MageInt(5);

View file

@ -53,7 +53,7 @@ public class VillageIronsmith extends CardImpl {
this.subtype.add("Human");
this.subtype.add("Werewolf");
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new Ironfang(ownerId);
this.power = new MageInt(1);

View file

@ -52,7 +52,7 @@ public class VillagersOfEstwald extends CardImpl {
this.subtype.add("Human");
this.subtype.add("Werewolf");
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new HowlpackOfEstwald(ownerId);
this.power = new MageInt(2);

View file

@ -56,7 +56,7 @@ public class WildbloodPack extends CardImpl {
// this card is the second face of double-faced card
this.nightCard = true;
this.canTransform = true;
this.transformable = true;
this.power = new MageInt(5);
this.toughness = new MageInt(5);

View file

@ -70,7 +70,7 @@ public class ChandraFireOfKaladesh extends CardImpl {
this.power = new MageInt(2);
this.toughness = new MageInt(2);
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new ChandraRoaringFlame(ownerId);
// Whenever you cast a red spell, untap Chandra, Fire of Kaladesh.

View file

@ -62,7 +62,7 @@ public class ChandraRoaringFlame extends CardImpl {
this.color.setRed(true);
this.nightCard = true;
this.canTransform = true;
this.transformable = true;
this.addAbility(new PlanswalkerEntersWithLoyalityCountersAbility(4));

View file

@ -73,7 +73,7 @@ public class GideonBattleForged extends CardImpl {
this.color.setWhite(true);
this.nightCard = true;
this.canTransform = true;
this.transformable = true;
this.addAbility(new PlanswalkerEntersWithLoyalityCountersAbility(3));

View file

@ -73,7 +73,7 @@ public class JaceTelepathUnbound extends CardImpl {
this.color.setBlue(true);
this.nightCard = true;
this.canTransform = true;
this.transformable = true;
this.addAbility(new PlanswalkerEntersWithLoyalityCountersAbility(5));

View file

@ -59,7 +59,7 @@ public class JaceVrynsProdigy extends CardImpl {
this.power = new MageInt(0);
this.toughness = new MageInt(2);
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new JaceTelepathUnbound(ownerId);
// {T}: Draw a card, then discard a card. If there are five or more cards in your graveyard, exile Jace, Vryn's Prodigy, then return him to the battefield transformed under his owner's control.

View file

@ -65,7 +65,7 @@ public class KytheonHeroOfAkros extends CardImpl {
this.power = new MageInt(2);
this.toughness = new MageInt(1);
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new GideonBattleForged(ownerId);
// At end of combat, if Kytheon, Hero of Akros and at least two other creatures attacked this combat, exile Kytheon,

View file

@ -68,7 +68,7 @@ public class LilianaHereticalHealer extends CardImpl {
this.power = new MageInt(2);
this.toughness = new MageInt(3);
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new LilianaDefiantNecromancer(ownerId);
this.addAbility(new TransformAbility());

View file

@ -68,7 +68,7 @@ public class NissaVastwoodSeer extends CardImpl {
this.power = new MageInt(2);
this.toughness = new MageInt(2);
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new NissaSageAnimist(ownerId);
// When Nissa, Vastwood Seer enters the battlefield, you may search your library for a basic Forest card, reveal it, put it into your hand, then shuffle your library.

View file

@ -59,7 +59,7 @@ public class AberrantResearcher extends CardImpl {
this.power = new MageInt(3);
this.toughness = new MageInt(2);
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new PerfectedForm(ownerId);
// Flying

View file

@ -65,7 +65,7 @@ public class AccursedWitch extends CardImpl {
this.power = new MageInt(4);
this.toughness = new MageInt(2);
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new InfectiousCurse(ownerId);
// Spells your opponents cast that target Accursed Witch cost {1} less to cast.

View file

@ -79,7 +79,7 @@ public class ArchangelAvacyn extends CardImpl {
this.power = new MageInt(4);
this.toughness = new MageInt(4);
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new AvacynThePurifier(ownerId);
// Flash

View file

@ -70,7 +70,7 @@ public class ArlinnEmbracedByTheMoon extends CardImpl {
this.color.setGreen(true);
this.nightCard = true;
this.canTransform = true;
this.transformable = true;
// +1: Creatures you control get +1/+1 and gain trample until end of turn.
Effect effect = new BoostControlledEffect(1, 1, Duration.EndOfTurn, filter);

View file

@ -56,7 +56,7 @@ public class ArlinnKord extends CardImpl {
this.expansionSetCode = "SOI";
this.subtype.add("Arlinn");
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new ArlinnEmbracedByTheMoon(ownerId);
this.addAbility(new PlanswalkerEntersWithLoyalityCountersAbility(3));

View file

@ -52,7 +52,7 @@ public class AutumnalGloom extends CardImpl {
public AutumnalGloom(UUID ownerId) {
super(ownerId, 194, "Autumnal Gloom", Rarity.UNCOMMON, new CardType[]{CardType.ENCHANTMENT}, "{2}{G}");
this.expansionSetCode = "SOI";
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new AncientOfTheEquinox(ownerId);
// {B}: Put the top card of your library into your graveyard.

View file

@ -53,7 +53,7 @@ public class AvacynianMissionaries extends CardImpl {
this.power = new MageInt(3);
this.toughness = new MageInt(3);
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new LunarchInquisitors(ownerId);
// At the beginning of your end step, if Avacynian Missionaries is equipped, transform it.

View file

@ -56,7 +56,7 @@ public class BrandedHowler extends CardImpl {
// this card is the second face of double-faced card
this.nightCard = true;
this.canTransform = true;
this.transformable = true;
// At the beginning of each upkeep, if a player cast two or more spells last turn, transform Branded Howler.
TriggeredAbility ability = new BeginningOfUpkeepTriggeredAbility(new TransformSourceEffect(false), TargetController.ANY, false);

View file

@ -55,7 +55,7 @@ public class BreakneckRider extends CardImpl {
this.power = new MageInt(3);
this.toughness = new MageInt(3);
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new NeckBreaker(ownerId);
// At the beginning of each upkeep, if no spells were cast last turn, transform Breakneck Rider.

View file

@ -54,7 +54,7 @@ public class ConvictedKiller extends CardImpl {
this.power = new MageInt(2);
this.toughness = new MageInt(2);
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new BrandedHowler(ownerId);
// At the beginning of each upkeep, if no spells were cast last turn, transform Convicted Killer.

View file

@ -54,7 +54,7 @@ public class DaringSleuth extends CardImpl {
this.power = new MageInt(2);
this.toughness = new MageInt(1);
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new BearerOfOverwhelmingTruths(ownerId);
// When you sacrifice a Clue, transform Daring Sleuth.

View file

@ -59,7 +59,7 @@ public class DuskwatchRecruiter extends CardImpl {
this.subtype.add("Warrior");
this.subtype.add("Werewolf");
this.canTransform = true;
this.transformable = true;
this.secondSideCard = new KrallenhordeHowler(ownerId);
this.power = new MageInt(2);

Some files were not shown because too many files have changed in this diff Show more