diff --git a/src/forge/AbilityFactory.java b/src/forge/AbilityFactory.java index da4113940d0..47a0b8dbe7e 100644 --- a/src/forge/AbilityFactory.java +++ b/src/forge/AbilityFactory.java @@ -351,6 +351,9 @@ public class AbilityFactory { if (mapParams.containsKey("PlayerTurn")) SA.getRestrictions().setPlayerTurn(true); + if (mapParams.containsKey("OpponentTurn")) + SA.getRestrictions().setOpponentTurn(true); + if (mapParams.containsKey("AnyPlayer")) SA.getRestrictions().setAnyPlayer(true); diff --git a/src/forge/SpellAbility_Restriction.java b/src/forge/SpellAbility_Restriction.java index 4a9e04301c1..a83d50034c5 100644 --- a/src/forge/SpellAbility_Restriction.java +++ b/src/forge/SpellAbility_Restriction.java @@ -50,6 +50,16 @@ public class SpellAbility_Restriction { return bPlayerTurn; } + private boolean bOpponentTurn = false; + + public void setOpponentTurn(boolean bTurn){ + bOpponentTurn = bTurn; + } + + public boolean getOpponentTurn(){ + return bOpponentTurn; + } + private int activationLimit = -1; private int numberTurnActivations = 0; @@ -118,6 +128,9 @@ public class SpellAbility_Restriction { if (bPlayerTurn && !AllZone.Phase.isPlayerTurn(activator)) return false; + if (bOpponentTurn && AllZone.Phase.isPlayerTurn(activator)) + return false; + if (!bAnyPlayer && !activator.equals(c.getController())) return false;