package net.scapeemulator.game.model.player.requirement;
import net.scapeemulator.game.model.player.Player;
import net.scapeemulator.game.model.player.skills.Skill;
import net.scapeemulator.game.util.StringUtils;
/**
* @author David Insley
*/
public class SkillRequirement extends Requirement {
private final int skill;
private final int level;
private final String error;
private final boolean current;
private final double xpReward;
public SkillRequirement(int skill, int level, boolean current, String concat) {
this(skill, level, current, concat, 0);
}
public SkillRequirement(int skill, int level, boolean current, String concat, double xpReward) {
this.skill = skill;
this.level = level;
this.current = current;
this.xpReward = xpReward;
error = "You need level " + level + " " + StringUtils.capitalize(Skill.SKILL_NAMES[skill]) + " to " + concat + ".";
}
@Override
public boolean hasRequirement(Player player) {
if (current) {
return player.getSkillSet().getCurrentLevel(skill) >= level;
} else {
return player.getSkillSet().getLevel(skill) >= level;
}
}
@Override
public void displayErrorMessage(Player player) {
player.sendMessage(error);
}
@Override
public void fulfill(Player player) {
if (xpReward > 0) {
player.getSkillSet().addExperience(skill, xpReward);
}
}
}