package mage.abilities.dynamicvalue.common;
import mage.abilities.Ability;
import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.effects.Effect;
import mage.game.Game;
import mage.game.permanent.Permanent;
/**
* @author Loki
*/
public class SourcePermanentPowerCount implements DynamicValue {
boolean allowNegativeValues;
public SourcePermanentPowerCount() {
this(true);
}
public SourcePermanentPowerCount(boolean allowNegativeValues) {
super();
this.allowNegativeValues = allowNegativeValues;
}
public SourcePermanentPowerCount(final SourcePermanentPowerCount dynamicValue) {
super();
this.allowNegativeValues = dynamicValue.allowNegativeValues;
}
@Override
public int calculate(Game game, Ability sourceAbility, Effect effect) {
Permanent sourcePermanent = game.getPermanentOrLKIBattlefield(sourceAbility.getSourceId());
if (sourcePermanent != null
&& (allowNegativeValues || sourcePermanent.getPower().getValue() >= 0)) {
return sourcePermanent.getPower().getValue();
}
return 0;
}
@Override
public SourcePermanentPowerCount copy() {
return new SourcePermanentPowerCount(this);
}
@Override
public String toString() {
return "X";
}
@Override
public String getMessage() {
return "{source}'s power";
}
}