From 9c3e51f024427801e48d2cda9ba7dca852e45367 Mon Sep 17 00:00:00 2001 From: Evan Kranzler Date: Wed, 25 May 2022 07:52:29 -0400 Subject: [PATCH] [CLB] Implemented Hardy Outlander --- .../src/mage/cards/h/HardyOutlander.java | 52 +++++++++++++++++++ .../CommanderLegendsBattleForBaldursGate.java | 1 + 2 files changed, 53 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/h/HardyOutlander.java diff --git a/Mage.Sets/src/mage/cards/h/HardyOutlander.java b/Mage.Sets/src/mage/cards/h/HardyOutlander.java new file mode 100644 index 00000000000..037d84ed986 --- /dev/null +++ b/Mage.Sets/src/mage/cards/h/HardyOutlander.java @@ -0,0 +1,52 @@ +package mage.cards.h; + +import mage.abilities.Ability; +import mage.abilities.common.AttacksOpponentWithMostLifeTriggeredAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.dynamicvalue.DynamicValue; +import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount; +import mage.abilities.effects.common.continuous.BoostTargetEffect; +import mage.abilities.effects.common.continuous.GainAbilityAllEffect; +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.StaticFilters; +import mage.target.TargetPermanent; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class HardyOutlander extends CardImpl { + + private static final DynamicValue xValue = new SourcePermanentPowerCount(false); + + public HardyOutlander(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{G}"); + + this.addSuperType(SuperType.LEGENDARY); + this.subtype.add(SubType.BACKGROUND); + + // Commander creatures you own have "Whenever this creature attacks a player, if no opponent has more life than that player, another target creature you control gets +X/+X until end of turn, where X is this creature's power." + Ability ability = new AttacksOpponentWithMostLifeTriggeredAbility(new BoostTargetEffect( + xValue, xValue, Duration.EndOfTurn, true + ).setText("another target creature you control gets +X/+X until end of turn, where X is this creature's power"), false); + ability.addTarget(new TargetPermanent(StaticFilters.FILTER_CONTROLLED_ANOTHER_CREATURE)); + this.addAbility(new SimpleStaticAbility(new GainAbilityAllEffect( + ability, Duration.WhileOnBattlefield, StaticFilters.FILTER_CREATURES_OWNED_COMMANDER + ))); + } + + private HardyOutlander(final HardyOutlander card) { + super(card); + } + + @Override + public HardyOutlander copy() { + return new HardyOutlander(this); + } +} diff --git a/Mage.Sets/src/mage/sets/CommanderLegendsBattleForBaldursGate.java b/Mage.Sets/src/mage/sets/CommanderLegendsBattleForBaldursGate.java index 1d03ffa74bc..865c8109e40 100644 --- a/Mage.Sets/src/mage/sets/CommanderLegendsBattleForBaldursGate.java +++ b/Mage.Sets/src/mage/sets/CommanderLegendsBattleForBaldursGate.java @@ -90,6 +90,7 @@ public final class CommanderLegendsBattleForBaldursGate extends ExpansionSet { cards.add(new SetCardInfo("Gorion, Wise Mentor", 276, Rarity.RARE, mage.cards.g.GorionWiseMentor.class)); cards.add(new SetCardInfo("Gut, True Soul Zealot", 180, Rarity.UNCOMMON, mage.cards.g.GutTrueSoulZealot.class)); cards.add(new SetCardInfo("Hammers of Moradin", 25, Rarity.UNCOMMON, mage.cards.h.HammersOfMoradin.class)); + cards.add(new SetCardInfo("Hardy Outlander", 235, Rarity.UNCOMMON, mage.cards.h.HardyOutlander.class)); cards.add(new SetCardInfo("Imoen, Mystic Trickster", 77, Rarity.UNCOMMON, mage.cards.i.ImoenMysticTrickster.class)); cards.add(new SetCardInfo("Irenicus's Vile Duplication", 78, Rarity.UNCOMMON, mage.cards.i.IrenicussVileDuplication.class)); cards.add(new SetCardInfo("Iron Mastiff", 317, Rarity.UNCOMMON, mage.cards.i.IronMastiff.class));