package forge.card.trigger; import forge.AllZoneUtil; import forge.Card; import forge.card.spellability.SpellAbility; import java.util.HashMap; /** * <p>Trigger_DamageDone class.</p> * * @author Forge * @version $Id: $ */ public class Trigger_DamageDone extends Trigger { /** * <p>Constructor for Trigger_DamageDone.</p> * * @param params a {@link java.util.HashMap} object. * @param host a {@link forge.Card} object. */ public Trigger_DamageDone(HashMap<String, String> params, Card host) { super(params, host); } /** {@inheritDoc} */ @Override public boolean performTest(java.util.Map<String, Object> runParams) { Card src = (Card) runParams.get("DamageSource"); Object tgt = runParams.get("DamageTarget"); if (mapParams.containsKey("ValidSource")) { if (!src.isValidCard(mapParams.get("ValidSource").split(" "), hostCard.getController(), hostCard)) { return false; } } if (mapParams.containsKey("ValidTarget")) { if (!matchesValid(tgt, mapParams.get("ValidTarget").split(","), hostCard)) { return false; } } if (mapParams.containsKey("CombatDamage")) { if (mapParams.get("CombatDamage").equals("True")) { if (!((Boolean) runParams.get("IsCombatDamage"))) return false; } else if (mapParams.get("CombatDamage").equals("False")) { if (((Boolean) runParams.get("IsCombatDamage"))) return false; } } if (mapParams.containsKey("DamageAmount")) { String fullParam = mapParams.get("DamageAmount"); String operator = fullParam.substring(0, 2); int operand = Integer.parseInt(fullParam.substring(2)); int actualAmount = (Integer) runParams.get("DamageAmount"); if (AllZoneUtil.compare(actualAmount, operator, operand)) return false; System.out.print("DamageDone Amount Operator: "); System.out.println(operator); System.out.print("DamageDone Amount Operand: "); System.out.println(operand); } return true; } /** {@inheritDoc} */ @Override public Trigger getCopy() { Trigger copy = new Trigger_DamageDone(mapParams, hostCard); if (overridingAbility != null) { copy.setOverridingAbility(overridingAbility); } copy.setName(name); copy.setID(ID); return copy; } /** {@inheritDoc} */ @Override public void setTriggeringObjects(SpellAbility sa) { sa.setTriggeringObject("Source", runParams.get("DamageSource")); sa.setTriggeringObject("Target", runParams.get("DamageTarget")); sa.setTriggeringObject("DamageAmount", runParams.get("DamageAmount")); } }