package net.scapeemulator.game.model.player.skills;
import net.scapeemulator.game.model.SpotAnimation;
import net.scapeemulator.game.model.player.Player;
import net.scapeemulator.game.model.player.interfaces.CloseOnInputComponentListener;
import net.scapeemulator.game.msg.impl.SkillMessage;
import net.scapeemulator.game.util.StringUtils;
public final class SkillMessageListener implements SkillListener {
private static final SpotAnimation fireworks = new SpotAnimation(199, 0, 100);
private final Player player;
public SkillMessageListener(Player player) {
this.player = player;
}
@Override
public void skillChanged(SkillSet set, int skill) {
int level = set.getCurrentLevel(skill);
int experience = (int) set.getExperience(skill);
player.send(new SkillMessage(skill, level, experience));
}
@Override
public void skillLevelledUp(SkillSet set, int amount, int skill) {
//TODO: If in combat, dont pop this up
player.setInterfaceText(740, 0, "Congratulations! You've advanced a " + StringUtils.capitalize(Skill.getName(skill)) + " level!");
player.setInterfaceText(740, 1, "You have reached level " + set.getLevel(skill) + "!");
player.getStateSet().setBitState(4757, Skill.getConfigValue(skill));
player.getInterfaceSet().openChatbox(740, new CloseOnInputComponentListener());
int level = set.getLevel(skill);
String msg = "You've just advanced " + (amount == 1 ? "a" : String.valueOf(amount)) + " "
+ StringUtils.capitalize(Skill.getName(skill)) + " level" + (amount == 1 ? "" : "s") + "! You have reached level " + level + ".";
player.sendMessage(msg);
player.getStateSet().setBitState(Skill.getFlashingIcon(skill), true);
player.playSpotAnimation(fireworks);
}
@Override
public void combatLevelledUp(SkillSet set, int combat) {
player.sendMessage("Congratulations! You've just reached combat level " + combat + "!");
}
}