From 4c3af32a5081df975d79e0b3eba54cb0f0e37bf9 Mon Sep 17 00:00:00 2001 From: theelk801 Date: Wed, 12 Nov 2025 08:55:11 -0500 Subject: [PATCH] [TLA] Implement Combustion Technique --- .../src/mage/cards/c/CombustionTechnique.java | 48 +++++++++++++++++++ .../src/mage/sets/AvatarTheLastAirbender.java | 2 + 2 files changed, 50 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/c/CombustionTechnique.java diff --git a/Mage.Sets/src/mage/cards/c/CombustionTechnique.java b/Mage.Sets/src/mage/cards/c/CombustionTechnique.java new file mode 100644 index 00000000000..4586a052905 --- /dev/null +++ b/Mage.Sets/src/mage/cards/c/CombustionTechnique.java @@ -0,0 +1,48 @@ +package mage.cards.c; + +import mage.abilities.condition.common.LessonsInGraveCondition; +import mage.abilities.dynamicvalue.DynamicValue; +import mage.abilities.dynamicvalue.IntPlusDynamicValue; +import mage.abilities.dynamicvalue.common.CardsInControllerGraveyardCount; +import mage.abilities.effects.common.DamageTargetEffect; +import mage.abilities.effects.common.ExileTargetIfDiesEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SubType; +import mage.filter.FilterCard; +import mage.target.common.TargetCreaturePermanent; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class CombustionTechnique extends CardImpl { + + private static final DynamicValue xValue = new IntPlusDynamicValue( + 2, new CardsInControllerGraveyardCount(new FilterCard(SubType.LESSON)) + ); + + public CombustionTechnique(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{R}"); + + this.subtype.add(SubType.LESSON); + + // Combustion Technique deals damage equal to 2 plus the number of Lesson cards in your graveyard to target creature. If that creature would die this turn, exile it instead. + this.getSpellAbility().addEffect(new DamageTargetEffect(xValue) + .setText("{this} deals damage equal to 2 plus the number of Lesson cards in your graveyard to target creature")); + this.getSpellAbility().addEffect(new ExileTargetIfDiesEffect()); + this.getSpellAbility().addTarget(new TargetCreaturePermanent()); + this.getSpellAbility().addHint(LessonsInGraveCondition.getHint()); + } + + private CombustionTechnique(final CombustionTechnique card) { + super(card); + } + + @Override + public CombustionTechnique copy() { + return new CombustionTechnique(this); + } +} diff --git a/Mage.Sets/src/mage/sets/AvatarTheLastAirbender.java b/Mage.Sets/src/mage/sets/AvatarTheLastAirbender.java index b2651720404..8a95bdd63a9 100644 --- a/Mage.Sets/src/mage/sets/AvatarTheLastAirbender.java +++ b/Mage.Sets/src/mage/sets/AvatarTheLastAirbender.java @@ -84,6 +84,8 @@ public final class AvatarTheLastAirbender extends ExpansionSet { cards.add(new SetCardInfo("Canyon Crawler", 90, Rarity.COMMON, mage.cards.c.CanyonCrawler.class)); cards.add(new SetCardInfo("Cat-Gator", 91, Rarity.UNCOMMON, mage.cards.c.CatGator.class)); cards.add(new SetCardInfo("Cat-Owl", 212, Rarity.COMMON, mage.cards.c.CatOwl.class)); + cards.add(new SetCardInfo("Combustion Technique", 128, Rarity.UNCOMMON, mage.cards.c.CombustionTechnique.class, NON_FULL_USE_VARIOUS)); + cards.add(new SetCardInfo("Combustion Technique", 301, Rarity.UNCOMMON, mage.cards.c.CombustionTechnique.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Compassionate Healer", 13, Rarity.COMMON, mage.cards.c.CompassionateHealer.class)); cards.add(new SetCardInfo("Corrupt Court Official", 92, Rarity.COMMON, mage.cards.c.CorruptCourtOfficial.class)); cards.add(new SetCardInfo("Crescent Island Temple", 129, Rarity.UNCOMMON, mage.cards.c.CrescentIslandTemple.class));