package forge.card.abilityFactory; import forge.card.spellability.Ability_Sub; import forge.card.spellability.SpellAbility; import java.util.HashMap; // Cleanup is not the same as other AFs, it is only used as a Drawback, and only used to Cleanup particular card states // That need to be reset. I'm creating this to clear Remembered Cards at the end of an Effect so they don't get shown on a card // After the effect finishes resolving. /** * <p>AbilityFactory_Cleanup class.</p> * * @author Forge * @version $Id: $ */ public class AbilityFactory_Cleanup { /** * <p>getDrawback.</p> * * @param AF a {@link forge.card.abilityFactory.AbilityFactory} object. * @return a {@link forge.card.spellability.Ability_Sub} object. */ public static Ability_Sub getDrawback(final AbilityFactory AF) { final Ability_Sub drawback = new Ability_Sub(AF.getHostCard(), AF.getAbTgt()) { private static final long serialVersionUID = 6192972525033429820L; @Override public boolean chkAI_Drawback() { return true; } @Override public boolean doTrigger(boolean mandatory) { return true; } @Override public void resolve() { doResolve(AF, this); } }; return drawback; } /** * <p>doResolve.</p> * * @param AF a {@link forge.card.abilityFactory.AbilityFactory} object. * @param sa a {@link forge.card.spellability.SpellAbility} object. */ private static void doResolve(AbilityFactory AF, SpellAbility sa) { HashMap<String, String> params = AF.getMapParams(); if (params.containsKey("ClearRemembered")) sa.getSourceCard().clearRemembered(); } }