diff --git a/forge-game/src/main/java/forge/game/GameActionUtil.java b/forge-game/src/main/java/forge/game/GameActionUtil.java index fc3be4035e1..60b17d1a7ab 100644 --- a/forge-game/src/main/java/forge/game/GameActionUtil.java +++ b/forge-game/src/main/java/forge/game/GameActionUtil.java @@ -259,7 +259,7 @@ public final class GameActionUtil { if (sa.isManaAbility() && sa.isActivatedAbility() && activator.hasKeyword("Piracy") && source.isLand() && source.isInPlay() && !activator.equals(source.getController()) && sa.getPayCosts().hasTapCost()) { SpellAbility newSA = sa.copy(activator); // to bypass Activator restriction, set Activator to Player - sa.getRestrictions().setActivator("Player"); + newSA.getRestrictions().setActivator("Player"); // extra Mana restriction to only Spells for (AbilityManaPart mp : newSA.getAllManaParts()) { diff --git a/forge-game/src/main/java/forge/game/mana/Mana.java b/forge-game/src/main/java/forge/game/mana/Mana.java index 33b672c9158..c1a7f022934 100644 --- a/forge-game/src/main/java/forge/game/mana/Mana.java +++ b/forge-game/src/main/java/forge/game/mana/Mana.java @@ -61,7 +61,7 @@ public class Mana { return false; } - return mp == mp2 || mp.getManaRestrictions().equals(mp2.getManaRestrictions()); + return mp == mp2 || (mp.getManaRestrictions().equals(mp2.getManaRestrictions()) && mp.getExtraManaRestriction().equals(mp2.getExtraManaRestriction())); } private byte color; @@ -84,7 +84,7 @@ public class Mana { } public final boolean isRestricted() { - return this.manaAbility != null && !manaAbility.getManaRestrictions().isEmpty(); + return this.manaAbility != null && (!manaAbility.getManaRestrictions().isEmpty() || !manaAbility.getExtraManaRestriction().isEmpty()); } 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 e20bd594631..66b641b5f6c 100644 --- a/forge-game/src/main/java/forge/game/spellability/AbilityManaPart.java +++ b/forge-game/src/main/java/forge/game/spellability/AbilityManaPart.java @@ -276,6 +276,10 @@ public class AbilityManaPart implements java.io.Serializable { this.extraManaRestrictions = str; } + public String getExtraManaRestriction() { + return extraManaRestrictions; + } + public boolean meetsManaRestrictions(final SpellAbility sa) { return meetsManaRestrictions(sa, this.manaRestrictions) && meetsManaRestrictions(sa, this.extraManaRestrictions); } diff --git a/forge-gui/res/cardsfolder/upcoming/piracy.txt b/forge-gui/res/cardsfolder/p/piracy.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/piracy.txt rename to forge-gui/res/cardsfolder/p/piracy.txt