From 10b3df681b83a479180096309918c873f451a399 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Tue, 21 Sep 2021 11:55:00 -0400 Subject: [PATCH 1/2] unblinking_observer.txt --- .../res/cardsfolder/upcoming/unblinking_observer.txt | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100755 forge-gui/res/cardsfolder/upcoming/unblinking_observer.txt diff --git a/forge-gui/res/cardsfolder/upcoming/unblinking_observer.txt b/forge-gui/res/cardsfolder/upcoming/unblinking_observer.txt new file mode 100755 index 00000000000..ed40196a69c --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/unblinking_observer.txt @@ -0,0 +1,8 @@ +Name:Unblinking Observer +ManaCost:1 U +Types:Creature Homunculus +PT:2/1 +A:AB$ Mana | Cost$ T | Produced$ U | RestrictValid$ Disturb,Instant,Sorcery | SpellDescription$ Add {U}. Spend this mana only to pay a disturb cost or cast an instant or sorcery spell. +DeckNeeds:Type$Instant|Sorcery +DeckHints:Keyword$Disturb +Oracle:{T}: Add {U}. Spend this mana only to pay a disturb cost or cast an instant or sorcery spell. From 7abb206b4c487fa4cc2daf732c9d4163248830c0 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Tue, 21 Sep 2021 11:55:56 -0400 Subject: [PATCH 2/2] support RestrictValid$ Disturb --- .../forge/game/spellability/AbilityManaPart.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/forge-game/src/main/java/forge/game/spellability/AbilityManaPart.java b/forge-game/src/main/java/forge/game/spellability/AbilityManaPart.java index c0f5b542267..d7d7a883143 100644 --- a/forge-game/src/main/java/forge/game/spellability/AbilityManaPart.java +++ b/forge-game/src/main/java/forge/game/spellability/AbilityManaPart.java @@ -308,9 +308,8 @@ public class AbilityManaPart implements java.io.Serializable { if (restriction.equals("CumulativeUpkeep")) { if (sa.isCumulativeupkeep()) { return true; - } else { - continue; } + continue; } if (restriction.startsWith("CostContainsX")) { @@ -319,13 +318,20 @@ public class AbilityManaPart implements java.io.Serializable { } continue; } + + if (restriction.equals("Disturb")) { + if (sa.isDisturb()) { + return true; + } + continue; + } + if (restriction.equals("MorphOrManifest")) { if ((sa.isSpell() && sa.getHostCard().isCreature() && sa.isCastFaceDown()) || sa.isManifestUp() || sa.isMorphUp()) { return true; - } else { - continue; } + continue; } if (sa.isValid(restriction, this.getSourceCard().getController(), this.getSourceCard(), null)) {