package forge.card.spellability; import forge.ComputerUtil; import java.util.ArrayList; /** * <p>SpellAbilityList class.</p> * * @author Forge * @version $Id: $ */ public class SpellAbilityList { private ArrayList<SpellAbility> list = new ArrayList<SpellAbility>(); /** * <p>Constructor for SpellAbilityList.</p> */ public SpellAbilityList() { } /** * <p>Constructor for SpellAbilityList.</p> * * @param s a {@link forge.card.spellability.SpellAbility} object. */ public SpellAbilityList(SpellAbility s) { add(s); } /** * <p>Constructor for SpellAbilityList.</p> * * @param s an array of {@link forge.card.spellability.SpellAbility} objects. */ public SpellAbilityList(SpellAbility[] s) { for (int i = 0; i < s.length; i++) add(s[i]); } /** * <p>remove.</p> * * @param n a int. */ public void remove(int n) { list.remove(n); } /** * <p>add.</p> * * @param s a {@link forge.card.spellability.SpellAbility} object. */ public void add(SpellAbility s) { list.add(s); } /** * <p>size.</p> * * @return a int. */ public int size() { return list.size(); } /** * <p>get.</p> * * @param n a int. * @return a {@link forge.card.spellability.SpellAbility} object. */ public SpellAbility get(int n) { return list.get(n); } /** * <p>addAll.</p> * * @param s a {@link forge.card.spellability.SpellAbilityList} object. */ public void addAll(SpellAbilityList s) { for (int i = 0; i < s.size(); i++) add(s.get(i)); } //Move1.getMax() uses this /** * <p>execute.</p> */ public void execute() { for (int i = 0; i < size(); i++) { if (!ComputerUtil.canPayCost(get(i))) throw new RuntimeException( "SpellAbilityList : execute() error, cannot pay for the spell " + get(i).getSourceCard() + " - " + get(i).getStackDescription()); ComputerUtil.playNoStack(get(i)); } }//execute() /** {@inheritDoc} */ @Override public String toString() { StringBuilder sb = new StringBuilder(); for (int i = 0; i < size(); i++) { sb.append(get(i).getSourceCard().toString()); sb.append(" - "); sb.append(get(i).getStackDescription()); sb.append("\r\n"); } return sb.toString(); }//toString() /** {@inheritDoc} */ @Override public boolean equals(Object o) { if (o == null) return false; return toString().equals(o.toString()); } }