diff --git a/.gitattributes b/.gitattributes index f98f53013e1..ba9aaeb1e9b 100644 --- a/.gitattributes +++ b/.gitattributes @@ -8082,6 +8082,7 @@ src/forge/Trigger_Shuffled.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_Unequip.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 diff --git a/src/forge/TriggerHandler.java b/src/forge/TriggerHandler.java index 0ab1f0b09b7..6d5121e9e8d 100644 --- a/src/forge/TriggerHandler.java +++ b/src/forge/TriggerHandler.java @@ -58,7 +58,7 @@ public class TriggerHandler { ret = new Trigger_ChangesZone(mapParams,host); } else if(mode.equals("CounterAdded")) { - ret = new Trigger_CounterAdded(mapParams,host); + ret = new Trigger_CounterAdded(mapParams, host); } else if(mode.equals("Cycled")) { @@ -116,6 +116,9 @@ public class TriggerHandler { { ret = new Trigger_TurnFaceUp(mapParams,host); } + else if(mode.equals("Unequip")) { + ret = new Trigger_Unequip(mapParams, host); + } else if(mode.equals("Untaps")) { ret = new Trigger_Untaps(mapParams,host); diff --git a/src/forge/Trigger_Unequip.java b/src/forge/Trigger_Unequip.java new file mode 100644 index 00000000000..1bb04ae18ac --- /dev/null +++ b/src/forge/Trigger_Unequip.java @@ -0,0 +1,47 @@ +package forge; + +import java.util.HashMap; + +public class Trigger_Unequip extends Trigger { + + public Trigger_Unequip(HashMap params, Card host) { + super(params, host); + } + + @Override + public boolean performTest(HashMap runParams) { + Card equipped = (Card)runParams.get("Card"); + Card equipment = (Card)runParams.get("Equipment"); + + if(mapParams.containsKey("ValidCard")) { + if(!equipped.isValidCard(mapParams.get("ValidCard").split(","), hostCard.getController(), hostCard)) { + return false; + } + } + + if(mapParams.containsKey("ValidEquipment")) { + if(!equipment.isValidCard(mapParams.get("ValidEquipment").split(","), hostCard.getController(), hostCard)) { + return false; + } + } + + return true; + } + + @Override + public Trigger getCopy() { + Trigger copy = new Trigger_Unequip(mapParams,hostCard); + if(overridingAbility != null) { + copy.setOverridingAbility(overridingAbility); + } + copy.setName(name); + + return copy; + } + + @Override + public void setTriggeringObjects(Card c) { + c.setTriggeringObject("Card", runParams.get("Card")); + c.setTriggeringObject("Equipment", runParams.get("Equipment")); + } +}