Check previous classes as well, in case classes where skipped.

This commit is contained in:
MobiusDevelopment
2020-01-23 00:11:34 +00:00
parent effd418284
commit 25c71b6817
2 changed files with 42 additions and 2 deletions

View File

@@ -1463,7 +1463,8 @@ public class SkillTreesData implements IXmlReader
public void cleanSkillUponChangeClass(PlayerInstance player)
{
final ClassId currentClass = player.getClassId();
ClassId currentClass = player.getClassId();
for (Skill skill : player.getAllSkills())
{
final int maxLvl = SkillData.getInstance().getMaxLevel(skill.getId());
@@ -1474,6 +1475,25 @@ public class SkillTreesData implements IXmlReader
player.removeSkill(skill, true, true);
}
}
// Check previous classes as well, in case classes where skipped.
while (currentClass.getParent() != null)
{
currentClass = currentClass.getParent();
final Set<Integer> removedList = _removeSkillCache.get(currentClass);
if (removedList != null)
{
for (Integer skillId : removedList)
{
final int currentLevel = player.getSkillLevel(skillId);
if (currentLevel > 0)
{
player.removeSkill(SkillData.getInstance().getSkill(skillId, currentLevel));
}
}
}
}
}
public boolean isAlchemySkill(int skillId, int skillLevel)

View File

@@ -1449,7 +1449,8 @@ public class SkillTreesData implements IXmlReader
public void cleanSkillUponChangeClass(PlayerInstance player)
{
final ClassId currentClass = player.getClassId();
ClassId currentClass = player.getClassId();
for (Skill skill : player.getAllSkills())
{
final int maxLvl = SkillData.getInstance().getMaxLevel(skill.getId());
@@ -1460,6 +1461,25 @@ public class SkillTreesData implements IXmlReader
player.removeSkill(skill, true, true);
}
}
// Check previous classes as well, in case classes where skipped.
while (currentClass.getParent() != null)
{
currentClass = currentClass.getParent();
final Set<Integer> removedList = _removeSkillCache.get(currentClass);
if (removedList != null)
{
for (Integer skillId : removedList)
{
final int currentLevel = player.getSkillLevel(skillId);
if (currentLevel > 0)
{
player.removeSkill(SkillData.getInstance().getSkill(skillId, currentLevel));
}
}
}
}
}
public boolean isAlchemySkill(int skillId, int skillLevel)