package magic.model.choice; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import magic.model.MagicGame; import magic.model.MagicMappable; import magic.model.MagicPermanent; import magic.model.MurmurHash3; @SuppressWarnings("serial") public class MagicDeclareAttackersResult extends ArrayList<MagicPermanent> implements MagicMappable<MagicDeclareAttackersResult> { MagicDeclareAttackersResult() {} MagicDeclareAttackersResult(final MagicPermanent[] attackers,final int length) { for (int index=0;index<length;index++) { add(attackers[index]); } } void addCreatures(final Collection<MagicCombatCreature> creatures) { for (final MagicCombatCreature creature : creatures) { add(creature.permanent); } } @Override public MagicDeclareAttackersResult map(final MagicGame game) { final MagicDeclareAttackersResult result=new MagicDeclareAttackersResult(); for (final MagicPermanent permanent : this) { result.add(permanent.map(game)); } return result; } @Override public String toString() { return Arrays.toString(toArray()); } @Override public long getId() { final long[] keys = new long[size()]; int idx = 0; for (final MagicPermanent permanent : this) { keys[idx] = permanent.getStateId(); idx++; } return MurmurHash3.hash(keys); } }