package magic.model.target; import magic.model.MagicAbility; import magic.model.MagicGame; import magic.model.MagicPermanent; import magic.model.MagicPlayer; public class MagicUnblockableTargetPicker extends MagicTargetPicker<MagicPermanent> { private static final MagicUnblockableTargetPicker INSTANCE = new MagicUnblockableTargetPicker(); private MagicUnblockableTargetPicker() {} public static MagicUnblockableTargetPicker create() { return INSTANCE; } @Override protected int getTargetScore(final MagicGame game,final MagicPlayer player,final MagicPermanent permanent) { final MagicPlayer controller=permanent.getController(); if (game.getTurnPlayer()!=controller|| permanent.hasAbility(MagicAbility.Unblockable)|| !permanent.canBeBlocked(controller.getOpponent())) { return 0; } if (permanent.isAttacking()) { return 100+permanent.getPower(); } return 1+permanent.getPower(); } }