mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 12:48:00 +00:00
Merge branch 'arsonist' into 'master'
VOC: Midnight Arsonist + Support See merge request core-developers/forge!5840
This commit is contained in:
@@ -20,6 +20,8 @@ import forge.game.mana.Mana;
|
|||||||
import forge.game.player.Player;
|
import forge.game.player.Player;
|
||||||
import forge.game.spellability.OptionalCost;
|
import forge.game.spellability.OptionalCost;
|
||||||
import forge.game.spellability.SpellAbility;
|
import forge.game.spellability.SpellAbility;
|
||||||
|
import forge.game.spellability.SpellAbilityPredicates;
|
||||||
|
import forge.game.trigger.Trigger;
|
||||||
import forge.game.zone.Zone;
|
import forge.game.zone.Zone;
|
||||||
import forge.game.zone.ZoneType;
|
import forge.game.zone.ZoneType;
|
||||||
import forge.item.PaperCard;
|
import forge.item.PaperCard;
|
||||||
@@ -380,6 +382,15 @@ public class CardProperty {
|
|||||||
if (!card.equals(source.getEffectSource())) {
|
if (!card.equals(source.getEffectSource())) {
|
||||||
return false;
|
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) {
|
} else if (property.equals("CanBeSacrificedBy") && spellAbility instanceof SpellAbility) {
|
||||||
if (!card.canBeSacrificedBy((SpellAbility) spellAbility)) {
|
if (!card.canBeSacrificedBy((SpellAbility) spellAbility)) {
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
11
forge-gui/res/cardsfolder/upcoming/midnight_arsonist.txt
Normal file
11
forge-gui/res/cardsfolder/upcoming/midnight_arsonist.txt
Normal 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.
|
||||||
@@ -442,7 +442,7 @@ public final class CardScriptParser {
|
|||||||
"HasDevoured", "HasNotDevoured", "IsMonstrous", "IsNotMonstrous",
|
"HasDevoured", "HasNotDevoured", "IsMonstrous", "IsNotMonstrous",
|
||||||
"CostsPhyrexianMana", "IsRemembered", "IsNotRemembered",
|
"CostsPhyrexianMana", "IsRemembered", "IsNotRemembered",
|
||||||
"IsImprinted", "IsNotImprinted", "hasActivatedAbilityWithTapCost",
|
"IsImprinted", "IsNotImprinted", "hasActivatedAbilityWithTapCost",
|
||||||
"hasActivatedAbility", "hasManaAbility",
|
"hasActivatedAbility", "hasManaAbility", "withoutManaAbility",
|
||||||
"hasNonManaActivatedAbility", "NoAbilities", "HasCounters",
|
"hasNonManaActivatedAbility", "NoAbilities", "HasCounters",
|
||||||
"wasNotCast", "ChosenType", "IsNotChosenType", "IsCommander",
|
"wasNotCast", "ChosenType", "IsNotChosenType", "IsCommander",
|
||||||
"IsNotCommander","IsRenowned", "IsNotRenowned");
|
"IsNotCommander","IsRenowned", "IsNotRenowned");
|
||||||
|
|||||||
Reference in New Issue
Block a user