package magic.model.target;
import magic.model.MagicAbility;
import magic.model.MagicGame;
import magic.model.MagicPermanent;
import magic.model.MagicPlayer;
public class MagicFlyingTargetPicker extends MagicTargetPicker<MagicPermanent> {
private static final MagicFlyingTargetPicker INSTANCE=new MagicFlyingTargetPicker();
private MagicFlyingTargetPicker() {}
public static MagicFlyingTargetPicker create() {
return INSTANCE;
}
@Override
protected int getTargetScore(final MagicGame game,final MagicPlayer player,final MagicPermanent permanent) {
if (permanent.hasAbility(MagicAbility.CannotAttackOrBlock)) {
return 0;
}
final int power=permanent.getPower();
if (permanent.hasAbility(MagicAbility.Flying)) {
return power;
}
if (permanent.hasAbility(MagicAbility.Defender)) {
return 20+power;
}
if (permanent.hasAbility(MagicAbility.Reach)) {
return 50+power;
}
return 100+power;
}
}