[MKM] Implement Voja, Jaws of the Conclave (#11685)

* [MKM] Implement Voja, Jaws of the Conclave

* Add hints for Elf and Wolf counts, clarify comment
This commit is contained in:
Cameron Merkel 2024-01-20 12:20:34 -06:00 committed by GitHub
parent 784a5fb1e4
commit 063f91ed4b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 80 additions and 0 deletions

View file

@ -0,0 +1,79 @@
package mage.cards.v;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.AttacksTriggeredAbility;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.effects.common.counter.AddCountersAllEffect;
import mage.abilities.hint.Hint;
import mage.abilities.hint.ValueHint;
import mage.abilities.keyword.TrampleAbility;
import mage.abilities.keyword.VigilanceAbility;
import mage.abilities.keyword.WardAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.SuperType;
import mage.counters.CounterType;
import mage.filter.StaticFilters;
import mage.filter.common.FilterControlledPermanent;
import java.util.UUID;
/**
* @author Cguy7777
*/
public final class VojaJawsOfTheConclave extends CardImpl {
private static final FilterControlledPermanent filterElves = new FilterControlledPermanent(SubType.ELF);
private static final FilterControlledPermanent filterWolves = new FilterControlledPermanent(SubType.WOLF);
private static final DynamicValue xValueElves = new PermanentsOnBattlefieldCount(filterElves);
private static final Hint hintElves = new ValueHint("Elves you control", xValueElves);
private static final DynamicValue xValueWolves = new PermanentsOnBattlefieldCount(filterWolves);
private static final Hint hintWolves = new ValueHint("Wolves you control", xValueWolves);
public VojaJawsOfTheConclave(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}{G}{W}");
this.supertype.add(SuperType.LEGENDARY);
this.subtype.add(SubType.WOLF);
this.power = new MageInt(5);
this.toughness = new MageInt(5);
// Vigilance
this.addAbility(VigilanceAbility.getInstance());
// Trample
this.addAbility(TrampleAbility.getInstance());
// Ward {3}
this.addAbility(new WardAbility(new ManaCostsImpl<>("{3}"), false));
// Whenever Voja, Jaws of the Conclave attacks, put X +1/+1 counters on each creature you control,
// where X is the number of Elves you control. Draw a card for each Wolf you control.
Ability ability = new AttacksTriggeredAbility(
new AddCountersAllEffect(
// Set amount to 0, otherwise AddCountersAllEffect.apply() will default to amount = 1 if xValueElves = 0
CounterType.P1P1.createInstance(0),
xValueElves,
StaticFilters.FILTER_CONTROLLED_CREATURE
).setText("put X +1/+1 counters on each creature you control, where X is the number of Elves you control"));
ability.addEffect(new DrawCardSourceControllerEffect(xValueWolves));
this.addAbility(ability.addHint(hintElves).addHint(hintWolves));
}
private VojaJawsOfTheConclave(final VojaJawsOfTheConclave card) {
super(card);
}
@Override
public VojaJawsOfTheConclave copy() {
return new VojaJawsOfTheConclave(this);
}
}

View file

@ -109,6 +109,7 @@ public final class MurdersAtKarlovManor extends ExpansionSet {
cards.add(new SetCardInfo("Undercover Crocodelf", 239, Rarity.COMMON, mage.cards.u.UndercoverCrocodelf.class));
cards.add(new SetCardInfo("Underground Mortuary", 271, Rarity.RARE, mage.cards.u.UndergroundMortuary.class));
cards.add(new SetCardInfo("Vein Ripper", 110, Rarity.MYTHIC, mage.cards.v.VeinRipper.class));
cards.add(new SetCardInfo("Voja, Jaws of the Conclave", 432, Rarity.MYTHIC, mage.cards.v.VojaJawsOfTheConclave.class));
cards.add(new SetCardInfo("Warleader's Call", 242, Rarity.RARE, mage.cards.w.WarleadersCall.class));
cards.add(new SetCardInfo("Wojek Investigator", 36, Rarity.RARE, mage.cards.w.WojekInvestigator.class));