package magic.model.target; import magic.model.MagicAbility; import magic.model.MagicGame; import magic.model.MagicPermanent; import magic.model.MagicPlayer; public class MagicFirstStrikeTargetPicker extends MagicTargetPicker<MagicPermanent> { private static final MagicFirstStrikeTargetPicker INSTANCE=new MagicFirstStrikeTargetPicker(); private MagicFirstStrikeTargetPicker() {} public static MagicFirstStrikeTargetPicker create() { return INSTANCE; } @Override protected int getTargetScore(final MagicGame game,final MagicPlayer player,final MagicPermanent permanent) { if (permanent.getController()!=player) { return -50-permanent.getPower(); } if (permanent.hasAbility(MagicAbility.FirstStrike) || permanent.hasAbility(MagicAbility.DoubleStrike)) { return 0; } final int power=permanent.getPower(); if (permanent.isBlocked()||permanent.isBlocking()) { return power+permanent.getBlockingCreatures().size()+100; } if (permanent.canTap()) { return power+50; } return power+1; } }