From 98881c4dc745df3fb00ca123c85029f9726b51e3 Mon Sep 17 00:00:00 2001 From: theelk801 Date: Fri, 29 Mar 2024 23:05:51 -0400 Subject: [PATCH] [OTJ] Implement Bandit's Haul --- Mage.Sets/src/mage/cards/b/BanditsHaul.java | 52 +++++++++++++++++++ .../mage/sets/OutlawsOfThunderJunction.java | 1 + .../main/java/mage/counters/CounterType.java | 1 + 3 files changed, 54 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/b/BanditsHaul.java diff --git a/Mage.Sets/src/mage/cards/b/BanditsHaul.java b/Mage.Sets/src/mage/cards/b/BanditsHaul.java new file mode 100644 index 00000000000..2a3a6361f0f --- /dev/null +++ b/Mage.Sets/src/mage/cards/b/BanditsHaul.java @@ -0,0 +1,52 @@ +package mage.cards.b; + +import mage.abilities.Ability; +import mage.abilities.common.CommittedCrimeTriggeredAbility; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.RemoveCountersSourceCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.abilities.effects.common.counter.AddCountersSourceEffect; +import mage.abilities.mana.AnyColorManaAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.counters.CounterType; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class BanditsHaul extends CardImpl { + + public BanditsHaul(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{3}"); + + // Whenever you commit a crime, put a loot counter on Bandit's Haul. This ability triggers only once each turn. + this.addAbility(new CommittedCrimeTriggeredAbility( + new AddCountersSourceEffect(CounterType.LOOT.createInstance()) + ).setTriggersOnceEachTurn(true)); + + // {T}: Add one mana of any color. + this.addAbility(new AnyColorManaAbility()); + + // {2}, {T}, Remove two loot counters from Bandit's Haul: Draw a card. + Ability ability = new SimpleActivatedAbility( + new DrawCardSourceControllerEffect(1), new GenericManaCost(2) + ); + ability.addCost(new TapSourceCost()); + ability.addCost(new RemoveCountersSourceCost(CounterType.LOOT.createInstance(2))); + this.addAbility(ability); + } + + private BanditsHaul(final BanditsHaul card) { + super(card); + } + + @Override + public BanditsHaul copy() { + return new BanditsHaul(this); + } +} diff --git a/Mage.Sets/src/mage/sets/OutlawsOfThunderJunction.java b/Mage.Sets/src/mage/sets/OutlawsOfThunderJunction.java index 663a6a4701a..004941f9e11 100644 --- a/Mage.Sets/src/mage/sets/OutlawsOfThunderJunction.java +++ b/Mage.Sets/src/mage/sets/OutlawsOfThunderJunction.java @@ -32,6 +32,7 @@ public final class OutlawsOfThunderJunction extends ExpansionSet { cards.add(new SetCardInfo("Armored Armadillo", 3, Rarity.COMMON, mage.cards.a.ArmoredArmadillo.class)); cards.add(new SetCardInfo("At Knifepoint", 193, Rarity.UNCOMMON, mage.cards.a.AtKnifepoint.class)); cards.add(new SetCardInfo("Badlands Revival", 194, Rarity.UNCOMMON, mage.cards.b.BadlandsRevival.class)); + cards.add(new SetCardInfo("Bandit's Haul", 240, Rarity.UNCOMMON, mage.cards.b.BanditsHaul.class)); cards.add(new SetCardInfo("Beastbond Outcaster", 154, Rarity.UNCOMMON, mage.cards.b.BeastbondOutcaster.class)); cards.add(new SetCardInfo("Blacksnag Buzzard", 79, Rarity.COMMON, mage.cards.b.BlacksnagBuzzard.class)); cards.add(new SetCardInfo("Blood Hustler", 80, Rarity.UNCOMMON, mage.cards.b.BloodHustler.class)); diff --git a/Mage/src/main/java/mage/counters/CounterType.java b/Mage/src/main/java/mage/counters/CounterType.java index c509013a28b..9df086acc4d 100644 --- a/Mage/src/main/java/mage/counters/CounterType.java +++ b/Mage/src/main/java/mage/counters/CounterType.java @@ -123,6 +123,7 @@ public enum CounterType { LANDMARK("landmark"), LEVEL("level"), LIFELINK("lifelink"), + LOOT("loot"), LORE("lore"), LUCK("luck"), LOYALTY("loyalty"),