diff --git a/Mage.Sets/src/mage/cards/h/HeatOfBattle.java b/Mage.Sets/src/mage/cards/h/HeatOfBattle.java new file mode 100644 index 0000000000..2fa8c57b67 --- /dev/null +++ b/Mage.Sets/src/mage/cards/h/HeatOfBattle.java @@ -0,0 +1,70 @@ +package mage.cards.h; + +import mage.abilities.TriggeredAbilityImpl; +import mage.abilities.effects.common.DamageTargetEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Zone; +import mage.game.Game; +import mage.game.events.GameEvent; +import mage.game.permanent.Permanent; +import mage.target.targetpointer.FixedTarget; + +import java.util.UUID; + +public class HeatOfBattle extends CardImpl { + + public HeatOfBattle(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{R}"); + + + // Whenever a creature blocks, Heat of Battle deals 1 damage to that creature's controller. + this.addAbility(new HeatOfBattleTriggeredAbility()); + } + + public HeatOfBattle(final HeatOfBattle card) { + super(card); + } + + public HeatOfBattle copy() { + return new HeatOfBattle(this); + } +} + +class HeatOfBattleTriggeredAbility extends TriggeredAbilityImpl { + + public HeatOfBattleTriggeredAbility() { + super(Zone.BATTLEFIELD, new DamageTargetEffect(1)); + } + + public HeatOfBattleTriggeredAbility(HeatOfBattleTriggeredAbility ability) { + super(ability); + } + + @Override + public HeatOfBattleTriggeredAbility copy() { + return new HeatOfBattleTriggeredAbility(this); + } + + @Override + public boolean checkEventType(GameEvent event, Game game) { + return event.getType() == GameEvent.EventType.BLOCKER_DECLARED; + } + + @Override + public boolean checkTrigger(GameEvent event, Game game) { + Permanent blocker = game.getPermanent(event.getSourceId()); + if (blocker != null) { + getEffects().get(0).setTargetPointer(new FixedTarget(blocker.getControllerId())); + return true; + } + return false; + } + + @Override + public String getRule() { + return "Whenever a creature blocks, {this} deals 1 damage to that creature's controller."; + } +} + diff --git a/Mage.Sets/src/mage/cards/s/SuqAtaFirewalker.java b/Mage.Sets/src/mage/cards/s/SuqAtaFirewalker.java new file mode 100644 index 0000000000..9cef7b5336 --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/SuqAtaFirewalker.java @@ -0,0 +1,53 @@ +package mage.cards.s; + +import mage.MageInt; +import mage.ObjectColor; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.effects.common.CantBeTargetedSourceEffect; +import mage.abilities.effects.common.DamageTargetEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Zone; +import mage.filter.FilterObject; +import mage.filter.FilterStackObject; +import mage.filter.predicate.mageobject.ColorPredicate; +import mage.target.common.TargetCreatureOrPlayer; + +import java.util.UUID; + +public class SuqAtaFirewalker extends CardImpl { + + private static final FilterObject filterRed = new FilterStackObject("red spells or abilities from red sources"); + static { + filterRed.add(new ColorPredicate(ObjectColor.RED)); + } + public SuqAtaFirewalker(UUID cardId, CardSetInfo cardSetInfo){ + super(cardId, cardSetInfo, new CardType[]{CardType.CREATURE}, "{1}{U}{U}"); + subtype.add("Human"); + subtype.add("Wizard"); + power = new MageInt(0); + toughness = new MageInt(1); + color.setBlue(true); + + + // Suq'Ata Firewalker can't be the target of black spells or abilities from black sources. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new CantBeTargetedSourceEffect(filterRed, Duration.WhileOnBattlefield))); + + //{T}: Suq'Ata Firewalker deals 1 damage to target creature or player. + SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), new TapSourceCost()); + ability.addTarget(new TargetCreatureOrPlayer()); + this.addAbility(ability); + } + + public SuqAtaFirewalker(SuqAtaFirewalker other){ + super(other); + } + + public SuqAtaFirewalker copy(){ + return new SuqAtaFirewalker(this); + } +} diff --git a/Mage.Sets/src/mage/sets/Stronghold.java b/Mage.Sets/src/mage/sets/Stronghold.java index 0cd07cc3c7..98ca6e6269 100644 --- a/Mage.Sets/src/mage/sets/Stronghold.java +++ b/Mage.Sets/src/mage/sets/Stronghold.java @@ -32,7 +32,6 @@ import mage.constants.Rarity; import mage.constants.SetType; /** - * * @author North */ public class Stronghold extends ExpansionSet { @@ -99,6 +98,7 @@ public class Stronghold extends ExpansionSet { cards.add(new SetCardInfo("Grave Pact", 10, Rarity.RARE, mage.cards.g.GravePact.class)); cards.add(new SetCardInfo("Hammerhead Shark", 32, Rarity.COMMON, mage.cards.h.HammerheadShark.class)); cards.add(new SetCardInfo("Heartstone", 128, Rarity.UNCOMMON, mage.cards.h.Heartstone.class)); + cards.add(new SetCardInfo("Heat of Battle", 88, Rarity.UNCOMMON, mage.cards.h.HeatOfBattle.class)); cards.add(new SetCardInfo("Hermit Druid", 58, Rarity.RARE, mage.cards.h.HermitDruid.class)); cards.add(new SetCardInfo("Hesitation", 33, Rarity.UNCOMMON, mage.cards.h.Hesitation.class)); cards.add(new SetCardInfo("Hibernation Sliver", 140, Rarity.UNCOMMON, mage.cards.h.HibernationSliver.class)); diff --git a/Mage.Sets/src/mage/sets/Visions.java b/Mage.Sets/src/mage/sets/Visions.java index acbd7a675f..5a38f6b1c5 100644 --- a/Mage.Sets/src/mage/sets/Visions.java +++ b/Mage.Sets/src/mage/sets/Visions.java @@ -152,6 +152,7 @@ public class Visions extends ExpansionSet { cards.add(new SetCardInfo("Sun Clasp", 121, Rarity.COMMON, mage.cards.s.SunClasp.class)); cards.add(new SetCardInfo("Suq'Ata Assassin", 19, Rarity.UNCOMMON, mage.cards.s.SuqAtaAssassin.class)); cards.add(new SetCardInfo("Suq'Ata Lancer", 96, Rarity.COMMON, mage.cards.s.SuqAtaLancer.class)); + cards.add(new SetCardInfo("Suq'Ata Firewalker", 94, Rarity.UNCOMMON, mage.cards.s.SuqAtaFirewalker.class)); cards.add(new SetCardInfo("Talruum Champion", 97, Rarity.COMMON, mage.cards.t.TalruumChampion.class)); cards.add(new SetCardInfo("Talruum Piper", 98, Rarity.UNCOMMON, mage.cards.t.TalruumPiper.class)); cards.add(new SetCardInfo("Tar Pit Warrior", 20, Rarity.COMMON, mage.cards.t.TarPitWarrior.class));