From b44db707b0edeba52e50023913e44ce1e10724f7 Mon Sep 17 00:00:00 2001 From: theelk801 Date: Thu, 18 Jul 2024 10:16:05 -0400 Subject: [PATCH] [BLB] Implement Flamecache Gecko --- .../src/mage/cards/f/FlamecacheGecko.java | 60 +++++++++++++++++++ Mage.Sets/src/mage/sets/Bloomburrow.java | 1 + Utils/mtg-cards-data.txt | 1 + 3 files changed, 62 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/f/FlamecacheGecko.java diff --git a/Mage.Sets/src/mage/cards/f/FlamecacheGecko.java b/Mage.Sets/src/mage/cards/f/FlamecacheGecko.java new file mode 100644 index 00000000000..e1557767dfb --- /dev/null +++ b/Mage.Sets/src/mage/cards/f/FlamecacheGecko.java @@ -0,0 +1,60 @@ +package mage.cards.f; + +import mage.MageInt; +import mage.Mana; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.condition.common.OpponentsLostLifeCondition; +import mage.abilities.costs.common.DiscardCardCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.abilities.effects.mana.BasicManaEffect; +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 FlamecacheGecko extends CardImpl { + + public FlamecacheGecko(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{R}"); + + this.subtype.add(SubType.LIZARD); + this.subtype.add(SubType.WARLOCK); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // When Flamecache Gecko enters, if an opponent lost life this turn, add {B}{R}. + this.addAbility(new ConditionalInterveningIfTriggeredAbility( + new EntersBattlefieldTriggeredAbility( + new BasicManaEffect(new Mana( + 0, 0, 1, 1, 0, 0, 0, 0 + )) + ), OpponentsLostLifeCondition.instance, "When {this} enters, " + + "if an opponent lost life this turn, add {B}{R}." + )); + + // {1}{R}, Discard a card: Draw a card. + Ability ability = new SimpleActivatedAbility( + new DrawCardSourceControllerEffect(1), new ManaCostsImpl<>("{1}{R}") + ); + ability.addCost(new DiscardCardCost()); + this.addAbility(ability); + } + + private FlamecacheGecko(final FlamecacheGecko card) { + super(card); + } + + @Override + public FlamecacheGecko copy() { + return new FlamecacheGecko(this); + } +} diff --git a/Mage.Sets/src/mage/sets/Bloomburrow.java b/Mage.Sets/src/mage/sets/Bloomburrow.java index 71948226f35..5b48a32e5d3 100644 --- a/Mage.Sets/src/mage/sets/Bloomburrow.java +++ b/Mage.Sets/src/mage/sets/Bloomburrow.java @@ -72,6 +72,7 @@ public final class Bloomburrow extends ExpansionSet { cards.add(new SetCardInfo("Finch Formation", 50, Rarity.COMMON, mage.cards.f.FinchFormation.class)); cards.add(new SetCardInfo("Finneas, Ace Archer", 212, Rarity.RARE, mage.cards.f.FinneasAceArcher.class)); cards.add(new SetCardInfo("Flame Lash", 391, Rarity.COMMON, mage.cards.f.FlameLash.class)); + cards.add(new SetCardInfo("Flamecache Gecko", 135, Rarity.UNCOMMON, mage.cards.f.FlamecacheGecko.class)); cards.add(new SetCardInfo("Flowerfoot Swordmaster", 14, Rarity.UNCOMMON, mage.cards.f.FlowerfootSwordmaster.class)); cards.add(new SetCardInfo("For the Common Good", 172, Rarity.RARE, mage.cards.f.ForTheCommonGood.class)); cards.add(new SetCardInfo("Forest", 278, Rarity.LAND, mage.cards.basiclands.Forest.class, FULL_ART_BFZ_VARIOUS)); diff --git a/Utils/mtg-cards-data.txt b/Utils/mtg-cards-data.txt index 8a937b5a456..660f659beef 100644 --- a/Utils/mtg-cards-data.txt +++ b/Utils/mtg-cards-data.txt @@ -53195,6 +53195,7 @@ Coruscation Mage|Bloomburrow|131|U|{1}{R}|Creature - Otter Wizard|2|2|Offspring Dragonhawk, Fate's Tempest|Bloomburrow|132|M|{3}{R}{R}|Legendary Creature - Bird Dragon|5|5|Flying$Whenever Dragonhawk enters or attacks, exile the top X cards of your library, where X is the number of creatures you control with power 4 or greater. You may play those cards until your next end step. At the beginning of your next end sten. Dragonhawk deals 2 damage to each opponent for each of those cards that are still exiled.| Emberheart Challenger|Bloomburrow|133|R|{1}{R}|Creature - Mouse Warrior|2|2|Haste$Prowess$Valiant -- Whenever Emberheart Challenger becomes the target of a spell or ability you control for the first time each turn, exile the top card of your library. Until end of turn, you may play that card.| Festival of Embers|Bloomburrow|134|R|{4}{R}|Enchantment|||During your turn, you may cast instant and sorcery spells from your graveyard by paying 1 life in addition to their other costs.$If a card or token would be put into your graveyard from anywhere, exile it instead.${1}{R}: Sacrifice Festival of Embers.| +Flamecache Gecko|Bloomburrow|135|U|{1}{R}|Creature - Lizard Warlock|2|2|When Flamecache Gecko enters, if an opponent lost life this turn, add {B}{R}.${1}{R}, Discard a card: Draw a card.| Frilled Sparkshooter|Bloomburrow|136|C|{3}{R}|Creature - Lizard Archer|3|3|Menace, reach$Frilled Sparkshooter enters with a +1/+1 counter on it if an opponent lost life this turn.| Harnesser of Storms|Bloomburrow|137|U|{2}{R}|Creature - Otter Wizard|1|4|Whenever you cast a noncreature or Otter spell, you may exile the top card of your library. Until end of turn, you may play that card. This ability triggers only once each turn.| Heartfire Hero|Bloomburrow|138|U|{R}|Creature - Mouse Soldier|1|1|Valiant -- Whenever Heartfire Hero becomes the target of a spell or ability you control for the first time each turn, put a +1/+1 counter on it.$When Heartfire Hero dies, it deals damage equal to its power to each opponent.|