From 0b0ad8e223d8b70475765e1fa311f0caa9ad15ce Mon Sep 17 00:00:00 2001 From: Evan Kranzler Date: Sun, 30 Oct 2022 18:18:47 -0400 Subject: [PATCH] [BRO] Implemented Rust Goliath and dummy Prototype ability --- Mage.Sets/src/mage/cards/r/RustGoliath.java | 44 +++++++++++++++++++ Mage.Sets/src/mage/sets/TheBrothersWar.java | 8 ++++ .../abilities/keyword/PrototypeAbility.java | 30 +++++++++++++ Utils/keywords.txt | 1 + 4 files changed, 83 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/r/RustGoliath.java create mode 100644 Mage/src/main/java/mage/abilities/keyword/PrototypeAbility.java diff --git a/Mage.Sets/src/mage/cards/r/RustGoliath.java b/Mage.Sets/src/mage/cards/r/RustGoliath.java new file mode 100644 index 00000000000..5c186891363 --- /dev/null +++ b/Mage.Sets/src/mage/cards/r/RustGoliath.java @@ -0,0 +1,44 @@ +package mage.cards.r; + +import mage.MageInt; +import mage.abilities.keyword.PrototypeAbility; +import mage.abilities.keyword.ReachAbility; +import mage.abilities.keyword.TrampleAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SubType; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class RustGoliath extends CardImpl { + + public RustGoliath(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{10}"); + + this.subtype.add(SubType.CONSTRUCT); + this.power = new MageInt(10); + this.toughness = new MageInt(10); + + // Prototype {3}{G}{G} -- 3/5 + this.addAbility(new PrototypeAbility(this, "{3}{G}{G}", 3, 5)); + + // Reach + this.addAbility(ReachAbility.getInstance()); + + // Trample + this.addAbility(TrampleAbility.getInstance()); + } + + private RustGoliath(final RustGoliath card) { + super(card); + } + + @Override + public RustGoliath copy() { + return new RustGoliath(this); + } +} diff --git a/Mage.Sets/src/mage/sets/TheBrothersWar.java b/Mage.Sets/src/mage/sets/TheBrothersWar.java index b823d874b67..a1aaee9ef08 100644 --- a/Mage.Sets/src/mage/sets/TheBrothersWar.java +++ b/Mage.Sets/src/mage/sets/TheBrothersWar.java @@ -4,11 +4,16 @@ import mage.cards.ExpansionSet; import mage.constants.Rarity; import mage.constants.SetType; +import java.util.Arrays; +import java.util.List; + /** * @author TheElk801 */ public final class TheBrothersWar extends ExpansionSet { + private static final List unfinished = Arrays.asList("Arcane Proxy", "Depth Charge Colossus", "Phyrexian Fleshgorger", "Rust Goliath", "Skitterbeam Battalion"); + private static final TheBrothersWar instance = new TheBrothersWar(); public static TheBrothersWar getInstance() { @@ -48,6 +53,7 @@ public final class TheBrothersWar extends ExpansionSet { cards.add(new SetCardInfo("Plains", 278, Rarity.LAND, mage.cards.basiclands.Plains.class, FULL_ART_BFZ_VARIOUS)); cards.add(new SetCardInfo("Queen Kayla bin-Kroog", 218, Rarity.RARE, mage.cards.q.QueenKaylaBinKroog.class)); cards.add(new SetCardInfo("Recruitment Officer", 23, Rarity.UNCOMMON, mage.cards.r.RecruitmentOfficer.class)); + cards.add(new SetCardInfo("Rust Goliath", 204, Rarity.COMMON, mage.cards.r.RustGoliath.class)); cards.add(new SetCardInfo("Scrapwork Cohort", 37, Rarity.COMMON, mage.cards.s.ScrapworkCohort.class)); cards.add(new SetCardInfo("Splitting the Powerstone", 63, Rarity.UNCOMMON, mage.cards.s.SplittingThePowerstone.class)); cards.add(new SetCardInfo("Stern Lesson", 64, Rarity.COMMON, mage.cards.s.SternLesson.class)); @@ -65,6 +71,8 @@ public final class TheBrothersWar extends ExpansionSet { cards.add(new SetCardInfo("Urza, Prince of Kroog", 226, Rarity.RARE, mage.cards.u.UrzaPrinceOfKroog.class)); cards.add(new SetCardInfo("Yotian Dissident", 227, Rarity.UNCOMMON, mage.cards.y.YotianDissident.class)); cards.add(new SetCardInfo("Yotian Medic", 33, Rarity.COMMON, mage.cards.y.YotianMedic.class)); + + cards.removeIf(setCardInfo -> unfinished.contains(setCardInfo.getName())); // remove when mechanic is implemented } // @Override diff --git a/Mage/src/main/java/mage/abilities/keyword/PrototypeAbility.java b/Mage/src/main/java/mage/abilities/keyword/PrototypeAbility.java new file mode 100644 index 00000000000..f034775ca3e --- /dev/null +++ b/Mage/src/main/java/mage/abilities/keyword/PrototypeAbility.java @@ -0,0 +1,30 @@ +package mage.abilities.keyword; + +import mage.abilities.SpellAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.cards.Card; + +/** + * @author TheElk801 + */ +public class PrototypeAbility extends SpellAbility { + + public PrototypeAbility(Card card, String manaString, int power, int toughness) { + super(new ManaCostsImpl<>(manaString), card.getName()); + // TODO: implement this + } + + private PrototypeAbility(final PrototypeAbility ability) { + super(ability); + } + + @Override + public PrototypeAbility copy() { + return new PrototypeAbility(this); + } + + @Override + public String getRule() { + return "Prototype"; + } +} diff --git a/Utils/keywords.txt b/Utils/keywords.txt index e82af89e245..2d724cd3fe6 100644 --- a/Utils/keywords.txt +++ b/Utils/keywords.txt @@ -91,6 +91,7 @@ Phasing|instance| Plainscycling|cost| Plainswalk|new| Poisonous|number| +Prototype|card, manaString| Provoke|new| Prowess|new| Ravenous|new|