package net.demilich.metastone.game.spells.desc.valueprovider;
import net.demilich.metastone.game.GameContext;
import net.demilich.metastone.game.Player;
import net.demilich.metastone.game.entities.Entity;
public class AlgebraicValueProvider extends ValueProvider {
private static int evaluateOperation(int value1, int value2, AlgebraicOperation operation) {
return operation.performOperation(value1, value2);
}
public AlgebraicValueProvider(ValueProviderDesc desc) {
super(desc);
}
@Override
protected int provideValue(GameContext context, Player player, Entity target, Entity source) {
int value1 = desc.getValue(ValueProviderArg.VALUE_1, context, player, target, null, 1);
int value2 = desc.getValue(ValueProviderArg.VALUE_2, context, player, target, null, 1);
AlgebraicOperation operation = (AlgebraicOperation) desc.get(ValueProviderArg.OPERATION);
return evaluateOperation(value1, value2, operation);
}
}