@Override public MultikickerAbility copy() { return new MultikickerAbility(this); } }
public StrengthOfTheTajuru(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{X}{G}{G}"); // Multikicker (You may pay an additional {1} any number of times as you cast this spell.) this.addAbility(new MultikickerAbility("{1}")); // Choose target creature, then choose another target creature for each time Strength of the Tajuru was kicked. Put X +1/+1 counters on each of them. this.getSpellAbility().addEffect(new StrengthOfTheTajuruAddCountersTargetEffect()); this.getSpellAbility().addTarget(new TargetCreaturePermanent(0, Integer.MAX_VALUE)); this.getSpellAbility().setTargetAdjuster(StrengthOfTheTajuruAdjuster.instance); }
public GnarlidPack(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{G}"); this.subtype.add(SubType.BEAST); this.power = new MageInt(2); this.toughness = new MageInt(2); // Multikicker (You may pay an additional any number of times as you cast this spell.) this.addAbility(new MultikickerAbility("{1}{G}")); // Gnarlid Pack enters the battlefield with a +1/+1 counter on it for each time it was kicked. this.addAbility(new EntersBattlefieldAbility( new AddCountersSourceEffect(CounterType.P1P1.createInstance(0), MultikickerCount.instance, true), "with a +1/+1 counter on it for each time it was kicked")); }
public CometStorm(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{X}{R}{R}"); // Multikicker {1} this.addAbility(new MultikickerAbility("{1}")); // Choose any target, then choose another any target for each time Comet Storm was kicked. Comet Storm deals X damage to each of them. this.getSpellAbility().addEffect(new CometStormEffect()); this.getSpellAbility().addTarget(new TargetAnyTarget(1)); this.getSpellAbility().setTargetAdjuster(CometStormAdjuster.instance); }
public BloodhuskRitualist (UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{B}"); this.subtype.add(SubType.VAMPIRE, SubType.SHAMAN); this.power = new MageInt(2); this.toughness = new MageInt(2); // Multikicker (You may pay an additional {B} any number of times as you cast this spell.) this.addAbility(new MultikickerAbility("{B}")); // When Bloodhusk Ritualist enters the battlefield, target opponent discards a card for each time it was kicked. Ability ability = new EntersBattlefieldTriggeredAbility(new DiscardTargetEffect(MultikickerCount.instance)); ability.addTarget(new TargetOpponent()); this.addAbility(ability); }
public EverflowingChalice(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{0}"); // Multikicker {2} (You may pay an additional {2} any number of times as you cast this spell.) this.addAbility(new MultikickerAbility("{2}")); // Everflowing Chalice enters the battlefield with a charge counter on it for each time it was kicked. this.addAbility(new EntersBattlefieldAbility( new AddCountersSourceEffect(CounterType.CHARGE.createInstance(0), MultikickerCount.instance, true), "with a charge counter on it for each time it was kicked")); // {T}: Add {C} for each charge counter on Everflowing Chalice. this.addAbility(new DynamicManaAbility(Mana.ColorlessMana(1), new CountersSourceCount(CounterType.CHARGE))); }
public WolfbriarElemental(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}{G}"); this.subtype.add(SubType.ELEMENTAL); this.power = new MageInt(4); this.toughness = new MageInt(4); // Multikicker (You may pay an additional {G} any number of times as you cast this spell.) this.addAbility(new MultikickerAbility("{G}")); // When Wolfbriar Elemental enters the battlefield, create a 2/2 green Wolf creature token for each time it was kicked. this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new WolfToken(), MultikickerCount.instance))); }
public DeathforgeShaman(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{R}"); this.subtype.add(SubType.OGRE); this.subtype.add(SubType.SHAMAN); this.power = new MageInt(4); this.toughness = new MageInt(3); // Multikicker {R} this.addAbility(new MultikickerAbility("{R}")); // When Deathforge Shaman enters the battlefield, it deals damage to target player equal to twice the number of times it was kicked. Ability ability = new EntersBattlefieldTriggeredAbility(new DeathforgeShamanEffect()); ability.addTarget(new TargetPlayerOrPlaneswalker()); this.addAbility(ability); }
public SkitterOfLizards(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{R}"); this.subtype.add(SubType.LIZARD); this.power = new MageInt(1); this.toughness = new MageInt(1); // Multikicker (You may pay an additional {1}{R} any number of times as you cast this spell.) this.addAbility(new MultikickerAbility("{1}{R}")); // Haste this.addAbility(HasteAbility.getInstance()); // Skitter of Lizards enters the battlefield with a +1/+1 counter on it for each time it was kicked. this.addAbility(new EntersBattlefieldAbility( new AddCountersSourceEffect(CounterType.P1P1.createInstance(0), MultikickerCount.instance, true), "with a +1/+1 counter on it for each time it was kicked")); }
public SpellContortion(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{2}{U}"); // Multikicker {1}{U} this.addAbility(new MultikickerAbility("{1}{U}")); // Counter target spell unless its controller pays {2}. Draw a card for each time Spell Contortion was kicked. this.getSpellAbility().addEffect(new CounterUnlessPaysEffect(new GenericManaCost(2))); this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(MultikickerCount.instance)); this.getSpellAbility().addTarget(new TargetSpell()); }
public ApexHawks(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{W}"); this.subtype.add(SubType.BIRD); this.power = new MageInt(2); this.toughness = new MageInt(2); // Multikicker (You may pay an additional {1}{W} any number of times as you cast this spell.) this.addAbility(new MultikickerAbility("{1}{W}")); // Flying this.addAbility(FlyingAbility.getInstance()); // Apex Hawks enters the battlefield with a +1/+1 counter on it for each time it was kicked. this.addAbility(new EntersBattlefieldAbility( new AddCountersSourceEffect(CounterType.P1P1.createInstance(0), MultikickerCount.instance, true) ,"with a +1/+1 counter on it for each time it was kicked")); }
public MarshalsAnthem(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{W}{W}"); // Multikicker {1}{W} this.addAbility(new MultikickerAbility("{1}{W}")); // Creatures you control get +1/+1. this.addAbility(new SimpleStaticAbility( Zone.BATTLEFIELD, new BoostControlledEffect(1, 1, Duration.WhileOnBattlefield) )); // When Marshal's Anthem enters the battlefield, return up to X target creature cards from your graveyard to the battlefield, where X is the number of times Marshal's Anthem was kicked. Ability ability = new EntersBattlefieldTriggeredAbility( new ReturnFromGraveyardToBattlefieldTargetEffect().setText(rule), false ); ability.setTargetAdjuster(MarshalsAnthemAdjuster.instance); this.addAbility(ability); }
public LightkeeperOfEmeria(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{W}"); this.subtype.add(SubType.ANGEL); this.power = new MageInt(2); this.toughness = new MageInt(4); // Multikicker (You may pay an additional {W} any number of times as you cast this spell.) this.addAbility(new MultikickerAbility("{W}")); // Flying this.addAbility(FlyingAbility.getInstance()); // When Lightkeeper of Emeria enters the battlefield, you gain 2 life for each time it was kicked. Effect effect = new GainLifeEffect(new MultipliedValue(MultikickerCount.instance, 2)); effect.setText("you gain 2 life for each time it was kicked"); this.addAbility(new EntersBattlefieldTriggeredAbility(effect, false)); }
public EnclaveElite(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{U}"); this.subtype.add(SubType.MERFOLK); this.subtype.add(SubType.SOLDIER); this.power = new MageInt(2); this.toughness = new MageInt(2); // Multikicker (You may pay an additional any number of times as you cast this spell.) this.addAbility(new MultikickerAbility("{1}{U}")); // Islandwalk this.addAbility(new IslandwalkAbility()); // Enclave Elite enters the battlefield with a +1/+1 counter on it for each time it was kicked. this.addAbility(new EntersBattlefieldAbility( new AddCountersSourceEffect(CounterType.P1P1.createInstance(0), MultikickerCount.instance, true), "with a +1/+1 counter on it for each time it was kicked")); }
public QuagVampires(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{B}"); this.subtype.add(SubType.VAMPIRE); this.subtype.add(SubType.ROGUE); this.power = new MageInt(1); this.toughness = new MageInt(1); // Multikicker (You may pay an additional {1}{B} any number of times as you cast this spell.) this.addAbility(new MultikickerAbility("{1}{B}")); // Swampwalk this.addAbility(new SwampwalkAbility()); // Quag Vampires enters the battlefield with a +1/+1 counter on it for each time it was kicked. this.addAbility(new EntersBattlefieldAbility( new AddCountersSourceEffect(CounterType.P1P1.createInstance(0), MultikickerCount.instance, true), "with a +1/+1 counter on it for each time it was kicked")); }
public VoyagerDrake(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{U}"); this.subtype.add(SubType.DRAKE); this.power = new MageInt(3); this.toughness = new MageInt(3); // Multikicker {U} this.addAbility(new MultikickerAbility("{U}")); // Flying this.addAbility(FlyingAbility.getInstance()); // When Voyager Drake enters the battlefield, up to X target creatures gain flying until end of turn, where X is the number of times Voyager Drake was kicked. Ability ability = new EntersBattlefieldTriggeredAbility( new GainAbilityTargetEffect( FlyingAbility.getInstance(), Duration.EndOfTurn ).setText("up to X target creatures gain flying until end of turn, " + "where X is the number of times {this} was kicked.") ); ability.setTargetAdjuster(VoyagerDrakeAdjuster.instance); this.addAbility(ability); }
public JoragaWarcaller(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{G}"); this.subtype.add(SubType.ELF); this.subtype.add(SubType.WARRIOR); this.power = new MageInt(1); this.toughness = new MageInt(1); // Multikicker {1}{G} this.addAbility(new MultikickerAbility("{1}{G}")); // Joraga Warcaller enters the battlefield with a +1/+1 counter on it for each time it was kicked. this.addAbility(new EntersBattlefieldAbility( new AddCountersSourceEffect(CounterType.P1P1.createInstance(0), MultikickerCount.instance, true), "with a +1/+1 counter on it for each time it was kicked")); // Other Elf creatures you control get +1/+1 for each +1/+1 counter on Joraga Warcaller. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostAllEffect( new CountersSourceCount(CounterType.P1P1), new CountersSourceCount(CounterType.P1P1), Duration.WhileOnBattlefield, filter, true, rule))); }