From b5677838f2b77ceb8dc07074a40a37e394e41b83 Mon Sep 17 00:00:00 2001 From: jendave Date: Sat, 6 Aug 2011 15:43:44 +0000 Subject: [PATCH] *Removed unnecessary runTrigger call. *Expanded Trigger_SpellCast to Trigger_SpellAbilityCast. --- .gitattributes | 2 +- src/forge/ComputerUtil.java | 7 ---- src/forge/MagicStack.java | 11 ++--- src/forge/TriggerHandler.java | 12 +++++- ...ast.java => Trigger_SpellAbilityCast.java} | 42 +++++++++++++++---- 5 files changed, 50 insertions(+), 24 deletions(-) rename src/forge/{Trigger_SpellCast.java => Trigger_SpellAbilityCast.java} (52%) diff --git a/.gitattributes b/.gitattributes index b2e06fffdd3..6833da9c7aa 100644 --- a/.gitattributes +++ b/.gitattributes @@ -6817,7 +6817,7 @@ src/forge/Trigger_LifeGained.java -text svneol=native#text/plain 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_SpellAbilityCast.java -text svneol=native#text/plain src/forge/Trigger_Taps.java -text svneol=native#text/plain src/forge/Trigger_TurnFaceUp.java -text svneol=native#text/plain src/forge/Trigger_Untaps.java -text svneol=native#text/plain diff --git a/src/forge/ComputerUtil.java b/src/forge/ComputerUtil.java index b765505755c..eac409a4b61 100644 --- a/src/forge/ComputerUtil.java +++ b/src/forge/ComputerUtil.java @@ -69,13 +69,6 @@ public class ComputerUtil payManaCost(sa); AllZone.Stack.add(sa); - - if(sa.isSpell()){ - //Run triggers - HashMap runParams = new HashMap(); - runParams.put("CastSA", sa); - AllZone.TriggerHandler.runTrigger("SpellCast", runParams); - } } } diff --git a/src/forge/MagicStack.java b/src/forge/MagicStack.java index 17c2614cf5e..3f7d0b13820 100644 --- a/src/forge/MagicStack.java +++ b/src/forge/MagicStack.java @@ -374,13 +374,10 @@ public class MagicStack extends MyObservable { } - if(sp.isSpell()) - { - //Run trigger - HashMap runParams = new HashMap(); - runParams.put("CastSA", sp); - AllZone.TriggerHandler.runTrigger("SpellCast", runParams); - } + //Run trigger + HashMap runParams = new HashMap(); + runParams.put("CastSA", sp); + AllZone.TriggerHandler.runTrigger("SpellCast", runParams); } if(sp instanceof Spell_Permanent && sp.getSourceCard().getName().equals("Mana Vortex")) { diff --git a/src/forge/TriggerHandler.java b/src/forge/TriggerHandler.java index b52116c9e1a..32206e08600 100644 --- a/src/forge/TriggerHandler.java +++ b/src/forge/TriggerHandler.java @@ -13,7 +13,11 @@ public class TriggerHandler { Trigger ret = null; String mode = mapParams.get("Mode"); - if(mode.equals("AttackerBlocked")) + if(mode.equals("AbilityCast")) + { + ret = new Trigger_SpellAbilityCast(mapParams,host); + } + else if(mode.equals("AttackerBlocked")) { ret = new Trigger_AttackerBlocked(mapParams,host); } @@ -57,9 +61,13 @@ public class TriggerHandler { { ret = new Trigger_Sacrificed(mapParams,host); } + else if(mode.equals("SpellAbilityCast")) + { + ret = new Trigger_SpellAbilityCast(mapParams,host); + } else if(mode.equals("SpellCast")) { - ret = new Trigger_SpellCast(mapParams,host); + ret = new Trigger_SpellAbilityCast(mapParams,host); } else if(mode.equals("Taps")) { diff --git a/src/forge/Trigger_SpellCast.java b/src/forge/Trigger_SpellAbilityCast.java similarity index 52% rename from src/forge/Trigger_SpellCast.java rename to src/forge/Trigger_SpellAbilityCast.java index 0b66bb73418..932213335f5 100644 --- a/src/forge/Trigger_SpellCast.java +++ b/src/forge/Trigger_SpellAbilityCast.java @@ -2,20 +2,48 @@ package forge; import java.util.HashMap; -public class Trigger_SpellCast extends Trigger { +public class Trigger_SpellAbilityCast extends Trigger { - public Trigger_SpellCast(HashMap params, Card host) { + public Trigger_SpellAbilityCast(HashMap params, Card host) { super(params, host); } @Override public boolean performTest(HashMap runParams) { - Card cast = ((Spell)runParams.get("CastSA")).getSourceCard(); - - if(mapParams.containsKey("ValidPlayer")) + SpellAbility SA = (SpellAbility)runParams.get("CastSA"); + Card cast = SA.getSourceCard(); + + if(mapParams.get("Mode").equals("SpellCast")) { - if(!matchesValid(cast.getController(),mapParams.get("ValidPlayer").split(","),hostCard)) + if(!SA.isSpell()) + { + return false; + } + } + else if(mapParams.get("Mode").equals("AbilityCast")) + { + if(!SA.isAbility()) + { + return false; + } + } + else if(mapParams.get("Mode").equals("SpellAbilityCast")) + { + //Empty block for readability. + } + + if(mapParams.containsKey("ValidControllingPlayer")) + { + if(!matchesValid(cast.getController(),mapParams.get("ValidControllingPlayer").split(","),hostCard)) + { + return false; + } + } + + if(mapParams.containsKey("ValidActivatingPlayer")) + { + if(!matchesValid(SA.getActivatingPlayer(),mapParams.get("ValidActivatingPlayer").split(","),hostCard)) { return false; } @@ -73,6 +101,6 @@ public class Trigger_SpellCast extends Trigger { @Override public Trigger getCopy() { - return new Trigger_SpellCast(mapParams,hostCard); + return new Trigger_SpellAbilityCast(mapParams,hostCard); } }