public WaterWurm(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{U}"); this.subtype.add(SubType.WURM); this.power = new MageInt(1); this.toughness = new MageInt(1); // Water Wurm gets +0/+1 as long as an opponent controls an Island. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( new BoostSourceEffect(0, 1, Duration.WhileOnBattlefield), new OpponentControlsPermanentCondition(filter), "{this} gets +0/+1 as long as an opponent controls an Island"))); }
public RadiantEssence(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{G}{W}"); this.subtype.add(SubType.SPIRIT); this.power = new MageInt(2); this.toughness = new MageInt(3); // Radiant Essence gets +1/+2 as long as an opponent controls a black permanent. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(new BoostSourceEffect(1, 2, Duration.WhileOnBattlefield), new OpponentControlsPermanentCondition(filter), "{this} gets +1/+2 as long as an opponent controls a black permanent"))); }
public WuAdmiral(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{U}"); this.subtype.add(SubType.HUMAN); this.subtype.add(SubType.SOLDIER); this.power = new MageInt(3); this.toughness = new MageInt(3); // Wu Admiral gets +1/+1 as long as an opponent controls an Island. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), new OpponentControlsPermanentCondition(filter), "{this} gets +1/+1 as long as an opponent controls an Island"))); }
public SkyshroudElite(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{G}"); this.subtype.add(SubType.ELF); this.power = new MageInt(1); this.toughness = new MageInt(1); // Skyshroud Elite gets +1/+2 as long as an opponent controls a nonbasic land. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( new BoostSourceEffect(1, 2, Duration.WhileOnBattlefield), new OpponentControlsPermanentCondition(FilterLandPermanent.nonbasicLand()), "{this} gets +1/+2 as long as an opponent controls a nonbasic land"))); }
public RushwoodLegate(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}"); this.subtype.add(SubType.DRYAD); this.power = new MageInt(2); this.toughness = new MageInt(1); // If an opponent controls an Island and you control a Forest, you may cast this spell without paying its mana cost. Condition condition = new CompoundCondition("If an opponent controls an Island and you control a Forest", new OpponentControlsPermanentCondition(filterIsland), new PermanentsOnTheBattlefieldCondition(filterForest)); this.addAbility(new AlternativeCostSourceAbility(null, condition)); }
public Massacre(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{2}{B}{B}"); // If an opponent controls a Plains and you control a Swamp, you may cast this spell without paying its mana cost. Condition condition = new CompoundCondition("If an opponent controls a Plains and you control a Swamp", new OpponentControlsPermanentCondition(filterPlains), new PermanentsOnTheBattlefieldCondition(filterSwamp)); this.addAbility(new AlternativeCostSourceAbility(null, condition)); // All creatures get -2/-2 until end of turn. this.getSpellAbility().addEffect(new BoostAllEffect(-2, -2, Duration.EndOfTurn)); }
public NightRevelers(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{R}"); this.subtype.add(SubType.VAMPIRE); this.color.setRed(true); this.power = new MageInt(4); this.toughness = new MageInt(4); // Night Revelers has haste as long as an opponent controls a Human. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( new GainAbilitySourceEffect(HasteAbility.getInstance()), new OpponentControlsPermanentCondition(filter), "{this} has haste as long as an opponent controls a Human."))); }
public BeastsOfBogardan(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{R}"); this.subtype.add(SubType.BEAST); this.power = new MageInt(3); this.toughness = new MageInt(3); // Protection from red this.addAbility(ProtectionAbility.from(ObjectColor.RED)); // Beasts of Bogardan gets +1/+1 as long as an opponent controls a nontoken white permanent. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), new OpponentControlsPermanentCondition(controlFilter), "{this} gets +1/+1 as long as an opponent controls a nontoken white permanent"))); }
public IvoryGuardians(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{W}{W}"); this.subtype.add(SubType.GIANT); this.subtype.add(SubType.CLERIC); this.power = new MageInt(3); this.toughness = new MageInt(3); // Protection from red this.addAbility(ProtectionAbility.from(ObjectColor.RED)); // Creatures named Ivory Guardians get +1/+1 as long as an opponent controls a nontoken red permanent. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( new BoostAllEffect(1, 1, Duration.WhileOnBattlefield, boostFilter, false), new OpponentControlsPermanentCondition(controlFilter), "Creatures named Ivory Guardians get +1/+1 as long as an opponent controls a nontoken red permanent"))); }
public SivvisRuse(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{2}{W}{W}"); // If an opponent controls a Mountain and you control a Plains, you may cast this spell without paying its mana cost. Condition condition = new CompoundCondition("If an opponent controls a Mountain and you control a Plains", new OpponentControlsPermanentCondition(filterMountain), new PermanentsOnTheBattlefieldCondition(filterPlains)); this.addAbility(new AlternativeCostSourceAbility(null, condition)); // Prevent all damage that would be dealt this turn to creatures you control. this.getSpellAbility().addEffect(new PreventAllDamageToAllEffect(Duration.EndOfTurn, new FilterControlledCreatureInPlay())); }
public Submerge(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{4}{U}"); // If an opponent controls a Forest and you control an Island, you may cast this spell without paying its mana cost. Condition condition = new CompoundCondition("If an opponent controls a Forest and you control an Island", new OpponentControlsPermanentCondition(filterForest), new PermanentsOnTheBattlefieldCondition(filterIsland)); this.addAbility(new AlternativeCostSourceAbility(null, condition)); // Put target creature on top of its owner's library. this.getSpellAbility().addEffect(new PutOnLibraryTargetEffect(true)); this.getSpellAbility().addTarget(new TargetCreaturePermanent()); }
public SaprazzanLegate(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{U}"); this.subtype.add(SubType.MERFOLK, SubType.SOLDIER); this.power = new MageInt(1); this.toughness = new MageInt(3); // Flying this.addAbility(FlyingAbility.getInstance()); // If an opponent controls a Mountain and you control an Island, you may cast this spell without paying its mana cost. Condition condition = new CompoundCondition("If an opponent controls a Mountain and you control an Island", new OpponentControlsPermanentCondition(filterMountain), new PermanentsOnTheBattlefieldCondition(filterIsland)); this.addAbility(new AlternativeCostSourceAbility(null, condition)); }
public KyrenLegate(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{R}"); this.subtype.add(SubType.GOBLIN); this.power = new MageInt(1); this.toughness = new MageInt(1); // Haste this.addAbility(HasteAbility.getInstance()); // If an opponent controls a Plains and you control a Mountain, you may cast this spell without paying its mana cost. Condition condition = new CompoundCondition("If an opponent controls a Plains and you control a Mountain", new OpponentControlsPermanentCondition(filterPlains), new PermanentsOnTheBattlefieldCondition(filterMountain)); this.addAbility(new AlternativeCostSourceAbility(null, condition)); }
public MoggSalvage(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{2}{R}"); // If an opponent controls an Island and you control a Mountain, you may cast this spell without paying its mana cost. Condition condition = new CompoundCondition("If an opponent controls an Island and you control a Mountain", new OpponentControlsPermanentCondition(filterIsland), new PermanentsOnTheBattlefieldCondition(filterMountain)); this.addAbility(new AlternativeCostSourceAbility(null, condition)); // Destroy target artifact. this.getSpellAbility().addEffect(new DestroyTargetEffect()); this.getSpellAbility().addTarget(new TargetArtifactPermanent()); }
public RefreshingRain(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{3}{G}"); // If an opponent controls a Swamp and you control a Forest, you may cast this spell without paying its mana cost. Condition condition = new CompoundCondition("If an opponent controls a Swamp and you control a Forest", new OpponentControlsPermanentCondition(filterSwamp), new PermanentsOnTheBattlefieldCondition(filterForest)); this.addAbility(new AlternativeCostSourceAbility(null, condition)); // Target player gains 6 life. this.getSpellAbility().addEffect(new GainLifeTargetEffect(6)); this.getSpellAbility().addTarget(new TargetPlayer()); }
public WalkingDream(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{U}"); this.subtype.add(SubType.ILLUSION); this.power = new MageInt(3); this.toughness = new MageInt(3); // Walking Dream is unblockable. this.addAbility(new CantBeBlockedSourceAbility()); // Walking Dream doesn't untap during your untap step if an opponent controls two or more creatures. ContinuousRuleModifyingEffect dontUntap = new DontUntapInControllersUntapStepSourceEffect(false, true); dontUntap.setText(rule); Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousRuleModifyingEffect( dontUntap, new OpponentControlsPermanentCondition( new FilterCreaturePermanent(), ComparisonType.MORE_THAN, 1))); this.addAbility(ability); }
public ChoArrimLegate(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{W}"); this.subtype.add(SubType.HUMAN); this.subtype.add(SubType.SOLDIER); this.power = new MageInt(1); this.toughness = new MageInt(2); // Protection from black this.addAbility(ProtectionAbility.from(ObjectColor.BLACK)); // If an opponent controls a Swamp and you control a Plains, you may cast this spell without paying its mana cost. Condition condition = new CompoundCondition("If an opponent controls a Swamp and you control a Plains", new OpponentControlsPermanentCondition(filterSwamp), new PermanentsOnTheBattlefieldCondition(filterPlains)); this.addAbility(new AlternativeCostSourceAbility(null, condition)); }
public GroundlingPouncer(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{G/U}"); this.subtype.add(SubType.FAERIE); this.power = new MageInt(2); this.toughness = new MageInt(1); // {GU}: Groundling Pouncer gets +1/+3 and gains flying until end of turn. Activate this ability only once each turn and only if an opponent controls a creature with flying. Ability ability = new GroundlingPouncerAbility( Zone.BATTLEFIELD, new BoostSourceEffect(1, 3, Duration.EndOfTurn), new ManaCostsImpl("{G/U}"), new OpponentControlsPermanentCondition(filter), "{G/U}: {this} gets +1/+3 and gains flying until end of turn. Activate this ability only once each turn and only if an opponent controls a creature with flying."); ability.addEffect(new GainAbilitySourceEffect(FlyingAbility.getInstance(), Duration.EndOfTurn, false, true)); this.addAbility(ability); }
public DeepwoodLegate(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{B}"); this.subtype.add(SubType.SHADE); this.power = new MageInt(1); this.toughness = new MageInt(1); // If an opponent controls a Forest and you control a Swamp, you may cast this spell without paying its mana cost. Condition condition = new CompoundCondition("If an opponent controls a Forest and you control a Swamp", new OpponentControlsPermanentCondition(filterForest), new PermanentsOnTheBattlefieldCondition(filterSwamp)); this.addAbility(new AlternativeCostSourceAbility(null, condition)); // {B}: Deepwood Legate gets +1/+1 until end of turn. this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 1, Duration.EndOfTurn), new ManaCostsImpl("{B}"))); }
public GreenScarab(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{W}"); this.subtype.add(SubType.AURA); // Enchant creature TargetPermanent auraTarget = new TargetCreaturePermanent(); this.getSpellAbility().addTarget(auraTarget); this.getSpellAbility().addEffect(new AttachEffect(Outcome.BoostCreature)); Ability ability = new EnchantAbility(auraTarget.getTargetName()); this.addAbility(ability); // Enchanted creature can't be blocked by green creatures. Effect effect = new CantBeBlockedByCreaturesAttachedEffect(Duration.WhileOnBattlefield, filter, AttachmentType.AURA); ability = new SimpleStaticAbility(Zone.BATTLEFIELD, effect); this.addAbility(ability); // Enchanted creature gets +2/+2 as long as an opponent controls a white permanent. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( new BoostEnchantedEffect(2, 2, Duration.WhileOnBattlefield), new OpponentControlsPermanentCondition(filter2), "Enchanted creature gets +2/+2 as long as an opponent controls a green permanent"))); }