[ACR] Implement Haytham Kenway

This commit is contained in:
PurpleCrowbar 2025-02-24 22:11:56 +00:00
parent 6a1cce5b3f
commit 40b7d4a3af
2 changed files with 77 additions and 3 deletions

View file

@ -0,0 +1,74 @@
package mage.cards.h;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.effects.common.ExileUntilSourceLeavesEffect;
import mage.abilities.effects.common.continuous.BoostControlledEffect;
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
import mage.abilities.keyword.ProtectionAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.SubType;
import mage.constants.SuperType;
import mage.filter.FilterCard;
import mage.filter.common.FilterCreaturePermanent;
import mage.target.common.TargetCreaturePermanent;
import mage.target.targetadjustment.ForEachOpponentTargetsAdjuster;
import mage.target.targetpointer.EachTargetPointer;
import java.util.UUID;
/**
* @author PurpleCrowbar
*/
public final class HaythamKenway extends CardImpl {
private static final FilterCard filter = new FilterCard("Assassins");
private static final FilterCreaturePermanent filter2 = new FilterCreaturePermanent(SubType.KNIGHT, "Knights");
static {
filter.add(SubType.ASSASSIN.getPredicate());
}
public HaythamKenway(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{W}{U}");
this.supertype.add(SuperType.LEGENDARY);
this.subtype.add(SubType.HUMAN, SubType.KNIGHT);
this.power = new MageInt(3);
this.toughness = new MageInt(3);
// Protection from Assassins
this.addAbility(new ProtectionAbility(filter));
// Other Knights you control get +2/+2 and have protection from Assassins.
Ability ability = new SimpleStaticAbility(new BoostControlledEffect(
2, 2, Duration.WhileOnBattlefield, filter2, true
));
ability.addEffect(new GainAbilityControlledEffect(
new ProtectionAbility(filter), Duration.WhileOnBattlefield, filter2, true
).setText("and have protection from Assassins"));
this.addAbility(ability);
// When Haytham Kenway enters, for each opponent, exile up to one target creature that player controls until Haytham Kenway leaves the battlefield.
Ability ability2 = new EntersBattlefieldTriggeredAbility(new ExileUntilSourceLeavesEffect()
.setTargetPointer(new EachTargetPointer())
.setText("for each opponent, exile up to one target creature that player controls until {this} leaves the battlefield")
);
ability2.addTarget(new TargetCreaturePermanent(0, 1));
ability2.setTargetAdjuster(new ForEachOpponentTargetsAdjuster());
this.addAbility(ability2);
}
private HaythamKenway(final HaythamKenway card) {
super(card);
}
@Override
public HaythamKenway copy() {
return new HaythamKenway(this);
}
}

View file

@ -157,9 +157,9 @@ public final class AssassinsCreed extends ExpansionSet {
//cards.add(new SetCardInfo("Havi, the All-Father", 56, Rarity.RARE, mage.cards.h.HaviTheAllFather.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Haystack", 175, Rarity.UNCOMMON, mage.cards.h.Haystack.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Haystack", 5, Rarity.UNCOMMON, mage.cards.h.Haystack.class, NON_FULL_USE_VARIOUS));
//cards.add(new SetCardInfo("Haytham Kenway", 147, Rarity.RARE, mage.cards.h.HaythamKenway.class, NON_FULL_USE_VARIOUS));
//cards.add(new SetCardInfo("Haytham Kenway", 238, Rarity.RARE, mage.cards.h.HaythamKenway.class, NON_FULL_USE_VARIOUS));
//cards.add(new SetCardInfo("Haytham Kenway", 57, Rarity.RARE, mage.cards.h.HaythamKenway.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Haytham Kenway", 57, Rarity.RARE, mage.cards.h.HaythamKenway.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Haytham Kenway", 147, Rarity.RARE, mage.cards.h.HaythamKenway.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Haytham Kenway", 238, Rarity.RARE, mage.cards.h.HaythamKenway.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Headsplitter", 289, Rarity.COMMON, mage.cards.h.Headsplitter.class));
cards.add(new SetCardInfo("Hemlock Vial", 206, Rarity.UNCOMMON, mage.cards.h.HemlockVial.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Hemlock Vial", 26, Rarity.UNCOMMON, mage.cards.h.HemlockVial.class, NON_FULL_USE_VARIOUS));