package forge; /** * <p>ZCTrigger class.</p> * * @author Forge * @version $Id: $ */ public enum ZCTrigger { ENTERFIELD("comes into play", "any > field"), //explanation: zone before last trigger check ">" zone card currently in LEAVEFIELD("leaves play", "field > any"), DESTROY("is put into a graveyard from play", "field > grave"), ENTERGRAVE("is put into a graveyard from anywhere", "any > grave"); public String ruleText; public String[] triggerZones; /** * <p>Constructor for ZCTrigger.</p> * * @param text a {@link java.lang.String} object. * @param tofrom a {@link java.lang.String} object. */ ZCTrigger(String text, String tofrom) { this.ruleText = text; this.triggerZones = tofrom.split(" > "); } /** * <p>triggerOn.</p> * * @param sourceZone a {@link java.lang.String} object. * @param destintationZone a {@link java.lang.String} object. * @return a boolean. */ public boolean triggerOn(String sourceZone, String destintationZone) { return ((triggerZones[0].equals("any") || triggerZones[0].equals(sourceZone)) && (triggerZones[1].equals("any") || triggerZones[0].equals(sourceZone))); } /** * <p>getTrigger.</p> * * @param description a {@link java.lang.String} object. * @return a {@link forge.ZCTrigger} object. */ public static ZCTrigger getTrigger(String description) { for (ZCTrigger t : ZCTrigger.values()) if (t.ruleText.equals(description)) return t; return null; } /** {@inheritDoc} */ @Override public String toString() { return ruleText; } }