get given abilities and given pt of equipment from its static ability
parent
404298cf24
commit
5248c642b8
|
@ -5,29 +5,39 @@ import magic.model.MagicGame;
|
|||
import magic.model.MagicPermanent;
|
||||
import magic.model.MagicPlayer;
|
||||
import magic.model.MagicPowerToughness;
|
||||
import magic.model.mstatic.MagicStatic;
|
||||
|
||||
public class MagicEquipTargetPicker extends MagicTargetPicker<MagicPermanent> {
|
||||
|
||||
private final MagicCardDefinition cdef;
|
||||
private final long givenAbilityFlags;
|
||||
private final MagicPowerToughness givenPT;
|
||||
|
||||
public MagicEquipTargetPicker(final MagicCardDefinition cardDefinition) {
|
||||
cdef = cardDefinition;
|
||||
// determine given ability and given pt of equipment from list of static abilities
|
||||
long ability = 0;
|
||||
MagicPowerToughness pt = new MagicPowerToughness(0,0);
|
||||
|
||||
for (final MagicStatic mstatic : cardDefinition.getStatics()) {
|
||||
ability = mstatic.getAbilityFlags(MagicGame.getInstance(), MagicPermanent.NONE, ability);
|
||||
mstatic.getPowerToughness(MagicGame.getInstance(), MagicPermanent.NONE, pt);
|
||||
}
|
||||
|
||||
givenAbilityFlags = ability;
|
||||
givenPT = pt;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getTargetScore(final MagicGame game,final MagicPlayer player,final MagicPermanent permanent) {
|
||||
// Penalty when allready equipped.
|
||||
// penalty when already equipped
|
||||
int penalty = permanent.isEquipped() ? 3 : 0;
|
||||
|
||||
// Penalty when there is an overlap between abilities.
|
||||
final long abilityFlags = cdef.getAbilityFlags();
|
||||
if ((permanent.getAllAbilityFlags(game)&abilityFlags)!=0) {
|
||||
// penalty when there is an overlap between abilities.
|
||||
if ((permanent.getAllAbilityFlags(game) & givenAbilityFlags) != 0) {
|
||||
penalty+=6;
|
||||
}
|
||||
|
||||
final MagicPowerToughness pt = permanent.getPowerToughness(game);
|
||||
final MagicPowerToughness equipPT = cdef.genPowerToughness(game,player);
|
||||
final boolean defensive = equipPT.toughness() > equipPT.power();
|
||||
final boolean defensive = givenPT.toughness() > givenPT.power();
|
||||
|
||||
// Defensive
|
||||
if (defensive) {
|
||||
|
|
Loading…
Reference in New Issue