[TDM] Implement Channeled Dragonfire and add skip list for harmonize

This commit is contained in:
theelk801 2025-03-24 11:10:39 -04:00
parent 5f9978a083
commit bb07247282
4 changed files with 71 additions and 0 deletions

View file

@ -0,0 +1,36 @@
package mage.cards.c;
import mage.abilities.effects.common.DamageTargetEffect;
import mage.abilities.keyword.HarmonizeAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.target.common.TargetAnyTarget;
import java.util.UUID;
/**
* @author TheElk801
*/
public final class ChanneledDragonfire extends CardImpl {
public ChanneledDragonfire(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{R}");
// Channeled Dragonfire deals 2 damage to any target.
this.getSpellAbility().addEffect(new DamageTargetEffect(2));
this.getSpellAbility().addTarget(new TargetAnyTarget());
// Harmonize {5}{R}{R}
this.addAbility(new HarmonizeAbility(this, "{5}{R}{R}"));
}
private ChanneledDragonfire(final ChanneledDragonfire card) {
super(card);
}
@Override
public ChanneledDragonfire copy() {
return new ChanneledDragonfire(this);
}
}

View file

@ -4,11 +4,15 @@ 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 TarkirDragonstorm extends ExpansionSet {
private static final List<String> unfinished = Arrays.asList("Channeled Dragonfire", "Roamer's Routine", "Ureni's Rebuff", "Winternight Stories");
private static final TarkirDragonstorm instance = new TarkirDragonstorm();
public static TarkirDragonstorm getInstance() {
@ -36,6 +40,7 @@ public final class TarkirDragonstorm extends ExpansionSet {
cards.add(new SetCardInfo("Bone-Cairn Butcher", 173, Rarity.UNCOMMON, mage.cards.b.BoneCairnButcher.class));
cards.add(new SetCardInfo("Boulderborn Dragon", 239, Rarity.COMMON, mage.cards.b.BoulderbornDragon.class));
cards.add(new SetCardInfo("Caustic Exhale", 74, Rarity.COMMON, mage.cards.c.CausticExhale.class));
cards.add(new SetCardInfo("Channeled Dragonfire", 423, Rarity.UNCOMMON, mage.cards.c.ChanneledDragonfire.class));
cards.add(new SetCardInfo("Coordinated Maneuver", 6, Rarity.COMMON, mage.cards.c.CoordinatedManeuver.class));
cards.add(new SetCardInfo("Cori Mountain Stalwart", 175, Rarity.UNCOMMON, mage.cards.c.CoriMountainStalwart.class));
cards.add(new SetCardInfo("Cori-Steel Cutter", 103, Rarity.RARE, mage.cards.c.CoriSteelCutter.class));
@ -117,5 +122,7 @@ public final class TarkirDragonstorm extends ExpansionSet {
cards.add(new SetCardInfo("Voice of Victory", 33, Rarity.RARE, mage.cards.v.VoiceOfVictory.class));
cards.add(new SetCardInfo("Watcher of the Wayside", 249, Rarity.COMMON, mage.cards.w.WatcherOfTheWayside.class));
cards.add(new SetCardInfo("Wind-Scarred Crag", 271, Rarity.COMMON, mage.cards.w.WindScarredCrag.class));
cards.removeIf(setCardInfo -> unfinished.contains(setCardInfo.getName()));
}
}

View file

@ -0,0 +1,27 @@
package mage.abilities.keyword;
import mage.abilities.SpellAbility;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.cards.Card;
import mage.constants.Zone;
/**
* TODO: Implement this
*
* @author TheElk801
*/
public class HarmonizeAbility extends SpellAbility {
public HarmonizeAbility(Card card, String manaString) {
super(new ManaCostsImpl<>(manaString), card.getName(), Zone.GRAVEYARD);
}
private HarmonizeAbility(final HarmonizeAbility ability) {
super(ability);
}
@Override
public HarmonizeAbility copy() {
return new HarmonizeAbility(this);
}
}

View file

@ -63,6 +63,7 @@ For Mirrodin!|new|
Freerunning|manaString|
Friends forever|instance|
Gift|card|
Harmonize|card, manaString|
Haste|instance|
Hexproof|instance|
Hideaway|number|