package magic.model.target; import magic.model.MagicAbility; import magic.model.MagicGame; import magic.model.MagicPermanent; import magic.model.MagicPlayer; import magic.model.MagicPowerToughness; public class MagicMustAttackTargetPicker extends MagicTargetPicker<MagicPermanent> { private static final MagicMustAttackTargetPicker INSTANCE = new MagicMustAttackTargetPicker(); private MagicMustAttackTargetPicker() {} public static MagicMustAttackTargetPicker create() { return INSTANCE; } @Override protected int getTargetScore(final MagicGame game,final MagicPlayer player,final MagicPermanent permanent) { if (!permanent.canAttack()) { return -100; } if (permanent.hasAbility(MagicAbility.AttacksEachTurnIfAble)) { return -50; } final MagicPowerToughness pt=permanent.getPowerToughness(); return 50-pt.power()*2-pt.toughness()+permanent.getDamage(); } }