package net.demilich.metastone.game.spells.desc.condition; import net.demilich.metastone.game.GameContext; import net.demilich.metastone.game.Player; import net.demilich.metastone.game.entities.Entity; public abstract class Condition { private final ConditionDesc desc; public Condition(ConditionDesc desc) { this.desc = desc; } protected abstract boolean isFulfilled(GameContext context, Player player, ConditionDesc desc, Entity source, Entity target); public boolean isFulfilled(GameContext context, Player player, Entity source, Entity target) { boolean invert = desc.getBool(ConditionArg.INVERT); return isFulfilled(context, player, desc, source, target) != invert; } }