diff --git a/forge-game/src/main/java/forge/game/card/CardProperty.java b/forge-game/src/main/java/forge/game/card/CardProperty.java index 9158dbea0aa..9063f5291ad 100644 --- a/forge-game/src/main/java/forge/game/card/CardProperty.java +++ b/forge-game/src/main/java/forge/game/card/CardProperty.java @@ -20,6 +20,8 @@ import forge.game.mana.Mana; import forge.game.player.Player; import forge.game.spellability.OptionalCost; import forge.game.spellability.SpellAbility; +import forge.game.spellability.SpellAbilityPredicates; +import forge.game.trigger.Trigger; import forge.game.zone.Zone; import forge.game.zone.ZoneType; import forge.item.PaperCard; @@ -380,6 +382,15 @@ public class CardProperty { if (!card.equals(source.getEffectSource())) { return false; } + } else if (property.equals("withoutManaAbility")) { + if (Iterables.any(card.getSpellAbilities(), SpellAbilityPredicates.isManaAbility())) { + return false; + } + for (final Trigger trig : card.getTriggers()) { + if (trig.getOverridingAbility() != null && !trig.getOverridingAbility().isManaAbility()) { + return false; + } + } } else if (property.equals("CanBeSacrificedBy") && spellAbility instanceof SpellAbility) { if (!card.canBeSacrificedBy((SpellAbility) spellAbility)) { return false; diff --git a/forge-gui/res/cardsfolder/upcoming/midnight_arsonist.txt b/forge-gui/res/cardsfolder/upcoming/midnight_arsonist.txt new file mode 100644 index 00000000000..2ca1c5869c1 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/midnight_arsonist.txt @@ -0,0 +1,11 @@ +Name:Midnight Arsonist +ManaCost:3 R +Types:Creature Vampire +PT:3/2 +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigDestroy | TriggerDescription$ When CARDNAME enters the battlefield, destroy up to X target artifacts without mana abilities, where X is the number of Vampires you control. +SVar:TrigDestroy:DB$ Destroy | TargetMin$ 0 | TargetMax$ X | ValidTgts$ Artifact.withoutManaAbility | TgtPrompt$ Select up to X target artifacts without mana abilities +SVar:X:Count$Valid Vampire.YouCtrl +DeckHints:Type$Vampire +AI:RemoveDeck:Random +SVar:BuffedBy:Vampire +Oracle:When Midnight Arsonist enters the battlefield, destroy up to X target artifacts without mana abilities, where X is the number of Vampires you control. diff --git a/forge-gui/src/main/java/forge/gui/card/CardScriptParser.java b/forge-gui/src/main/java/forge/gui/card/CardScriptParser.java index f374adc7930..33e4d8aee94 100644 --- a/forge-gui/src/main/java/forge/gui/card/CardScriptParser.java +++ b/forge-gui/src/main/java/forge/gui/card/CardScriptParser.java @@ -442,7 +442,7 @@ public final class CardScriptParser { "HasDevoured", "HasNotDevoured", "IsMonstrous", "IsNotMonstrous", "CostsPhyrexianMana", "IsRemembered", "IsNotRemembered", "IsImprinted", "IsNotImprinted", "hasActivatedAbilityWithTapCost", - "hasActivatedAbility", "hasManaAbility", + "hasActivatedAbility", "hasManaAbility", "withoutManaAbility", "hasNonManaActivatedAbility", "NoAbilities", "HasCounters", "wasNotCast", "ChosenType", "IsNotChosenType", "IsCommander", "IsNotCommander","IsRenowned", "IsNotRenowned");