Merge branch 'arsonist' into 'master'

VOC: Midnight Arsonist + Support

See merge request core-developers/forge!5840
This commit is contained in:
Michael Kamensky
2021-11-16 18:19:00 +00:00
3 changed files with 23 additions and 1 deletions

View File

@@ -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;

View File

@@ -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.

View File

@@ -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");