package forge.card.spellability; import forge.Card; /** * <p>Abstract Ability_Sub class.</p> * * @author Forge * @version $Id: $ */ abstract public class Ability_Sub extends SpellAbility implements java.io.Serializable { /** Constant <code>serialVersionUID=4650634415821733134L</code> */ private static final long serialVersionUID = 4650634415821733134L; private SpellAbility parent = null; /** * <p>Constructor for Ability_Sub.</p> * * @param sourceCard a {@link forge.Card} object. * @param tgt a {@link forge.card.spellability.Target} object. */ public Ability_Sub(Card sourceCard, Target tgt) { super(SpellAbility.Ability, sourceCard); setTarget(tgt); } /** {@inheritDoc} */ @Override public boolean canPlay() { // this should never be on the Stack by itself return false; } /** * <p>chkAI_Drawback.</p> * * @return a boolean. */ abstract public boolean chkAI_Drawback(); /** {@inheritDoc} */ abstract public boolean doTrigger(boolean mandatory); /** * <p>Setter for the field <code>parent</code>.</p> * * @param parent a {@link forge.card.spellability.SpellAbility} object. */ public void setParent(SpellAbility parent) { this.parent = parent; } /** * <p>Getter for the field <code>parent</code>.</p> * * @return a {@link forge.card.spellability.SpellAbility} object. */ public SpellAbility getParent() { return parent; } }