diff --git a/.gitattributes b/.gitattributes index 6a6486f1010..e0aba8ecdff 100644 --- a/.gitattributes +++ b/.gitattributes @@ -6644,7 +6644,8 @@ src/forge/Trigger_LifeLost.java -text svneol=native#text/plain src/forge/Trigger_Phase.java -text svneol=native#text/plain src/forge/Trigger_Sacrificed.java -text svneol=native#text/plain src/forge/Trigger_SpellCast.java -text svneol=native#text/plain -src/forge/Trigger_TapsUntaps.java -text svneol=native#text/plain +src/forge/Trigger_Taps.java -text svneol=native#text/plain +src/forge/Trigger_Untaps.java -text svneol=native#text/plain src/forge/UndoCommand.java svneol=native#text/plain src/forge/Wait.java svneol=native#text/plain src/forge/WinLose.java svneol=native#text/plain diff --git a/src/forge/TriggerHandler.java b/src/forge/TriggerHandler.java index a8163938529..190f20d9569 100644 --- a/src/forge/TriggerHandler.java +++ b/src/forge/TriggerHandler.java @@ -53,9 +53,13 @@ public class TriggerHandler { { ret = new Trigger_SpellCast(mapParams,host); } - else if(mode.equals("TapsUntaps")) + else if(mode.equals("Taps")) { - ret = new Trigger_TapsUntaps(mapParams,host); + ret = new Trigger_Taps(mapParams,host); + } + else if(mode.equals("Untaps")) + { + ret = new Trigger_Untaps(mapParams,host); } return ret; diff --git a/src/forge/Trigger_Sacrificed.java b/src/forge/Trigger_Sacrificed.java index 4df32d6733c..fba30c47ed2 100644 --- a/src/forge/Trigger_Sacrificed.java +++ b/src/forge/Trigger_Sacrificed.java @@ -10,9 +10,10 @@ public class Trigger_Sacrificed extends Trigger { @Override public boolean performTest(HashMap runParams) { + Card sac = ((Card)runParams.get("Sacrificed")); if(mapParams.containsKey("ValidPlayer")) { - if(!matchesValid(runParams.get("Player"),mapParams.get("ValidPlayer").split(","),hostCard)) + if(!matchesValid(sac.getController(),mapParams.get("ValidPlayer").split(","),hostCard)) { System.out.println("Test failed: Discarding player not valid."); return false; @@ -20,7 +21,7 @@ public class Trigger_Sacrificed extends Trigger { } if(mapParams.containsKey("ValidCard")) { - if(!((Card)runParams.get("Sacrificed")).isValidCard(mapParams.get("ValidCard").split(","), hostCard.getController(), hostCard)) + if(!sac.isValidCard(mapParams.get("ValidCard").split(","), hostCard.getController(), hostCard)) { System.out.println("Test failed: Card not valid."); return false; diff --git a/src/forge/Trigger_SpellCast.java b/src/forge/Trigger_SpellCast.java index 03380b7c041..509cd3e7260 100644 --- a/src/forge/Trigger_SpellCast.java +++ b/src/forge/Trigger_SpellCast.java @@ -11,9 +11,19 @@ public class Trigger_SpellCast extends Trigger { @Override public boolean performTest(HashMap runParams) { - if(mapParams.containsKey("ValidCard")) + Card cast = ((Spell)runParams.get("CastSA")).getSourceCard(); + + if(mapParams.containsKey("ValidPlayer")) { - Card cast = ((Spell)runParams.get("CastSA")).getSourceCard(); + if(!matchesValid(cast.getController(),mapParams.get("ValidPlayer").split(","),hostCard)) + { + System.out.println("Test failed: Player was not valid."); + return false; + } + } + + if(mapParams.containsKey("ValidCard")) + { if(!matchesValid(cast,mapParams.get("ValidCard").split(","),hostCard)) { System.out.println("Test failed: Cast card was not valid."); diff --git a/src/forge/Trigger_Taps.java b/src/forge/Trigger_Taps.java new file mode 100644 index 00000000000..673edb842df --- /dev/null +++ b/src/forge/Trigger_Taps.java @@ -0,0 +1,28 @@ +package forge; + +import java.util.HashMap; + +public class Trigger_Taps extends Trigger { + + public Trigger_Taps(HashMap params, Card host) { + super(params, host); + } + + @Override + public boolean performTest(HashMap runParams) + { + Card tapper = (Card)runParams.get("Card"); + + if(mapParams.containsKey("ValidCard")) + { + if(!tapper.isValidCard(mapParams.get("ValidCard").split(","), hostCard.getController(), hostCard)) + { + System.out.println("Test failed: Untapper not valid."); + return false; + } + } + + return true; + } + +} diff --git a/src/forge/Trigger_TapsUntaps.java b/src/forge/Trigger_Untaps.java similarity index 50% rename from src/forge/Trigger_TapsUntaps.java rename to src/forge/Trigger_Untaps.java index fb53c086148..db3fcf26f9a 100644 --- a/src/forge/Trigger_TapsUntaps.java +++ b/src/forge/Trigger_Untaps.java @@ -2,9 +2,9 @@ package forge; import java.util.HashMap; -public class Trigger_TapsUntaps extends Trigger { +public class Trigger_Untaps extends Trigger { - public Trigger_TapsUntaps(HashMap params, Card host) { + public Trigger_Untaps(HashMap params, Card host) { super(params, host); } @@ -12,16 +12,7 @@ public class Trigger_TapsUntaps extends Trigger { public boolean performTest(HashMap runParams) { Card untapper = (Card)runParams.get("Card"); - String Action = (String)runParams.get("Action"); - - if(mapParams.containsKey("Action")) - { - if(!Action.equals(mapParams.get("Action"))) - { - System.out.println("Test failed: Wrong action. (should be " + mapParams.get("Action") + " but was " + Action + ")"); - return false; - } - } + if(mapParams.containsKey("ValidCard")) { if(!untapper.isValidCard(mapParams.get("ValidCard").split(","), hostCard.getController(), hostCard))