- each(skills, (val, skillId) => {
- sql.push(`update player_skills set exp = exp + ${val} where id = '${skillId}' and player_id = '${playerId}'`);
+ each(skillExpDiff, (val, skillId: SkillID) => {
+ const skill = playerSkills.get(skillId);
+ const def = Skills.get(skillId);
+ if(skill && def) {
+ skill.exp += val;
+ if(skill.exp >= def.expToLevel(skill.level + 1)) {
+ skill.level++;
+ skill.exp -= def.expToLevel(skill.level);
+ sql.push(`update player_skills set exp = ${skill.exp}, level = ${skill.level} where id = '${skillId}' and player_id = '${playerId}'`);
+ }
+ }
+