Check previous classes as well, in case classes where skipped.
This commit is contained in:
@@ -1463,7 +1463,8 @@ public class SkillTreesData implements IXmlReader
|
|||||||
|
|
||||||
public void cleanSkillUponChangeClass(PlayerInstance player)
|
public void cleanSkillUponChangeClass(PlayerInstance player)
|
||||||
{
|
{
|
||||||
final ClassId currentClass = player.getClassId();
|
ClassId currentClass = player.getClassId();
|
||||||
|
|
||||||
for (Skill skill : player.getAllSkills())
|
for (Skill skill : player.getAllSkills())
|
||||||
{
|
{
|
||||||
final int maxLvl = SkillData.getInstance().getMaxLevel(skill.getId());
|
final int maxLvl = SkillData.getInstance().getMaxLevel(skill.getId());
|
||||||
@@ -1474,6 +1475,25 @@ public class SkillTreesData implements IXmlReader
|
|||||||
player.removeSkill(skill, true, true);
|
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)
|
public boolean isAlchemySkill(int skillId, int skillLevel)
|
||||||
|
@@ -1449,7 +1449,8 @@ public class SkillTreesData implements IXmlReader
|
|||||||
|
|
||||||
public void cleanSkillUponChangeClass(PlayerInstance player)
|
public void cleanSkillUponChangeClass(PlayerInstance player)
|
||||||
{
|
{
|
||||||
final ClassId currentClass = player.getClassId();
|
ClassId currentClass = player.getClassId();
|
||||||
|
|
||||||
for (Skill skill : player.getAllSkills())
|
for (Skill skill : player.getAllSkills())
|
||||||
{
|
{
|
||||||
final int maxLvl = SkillData.getInstance().getMaxLevel(skill.getId());
|
final int maxLvl = SkillData.getInstance().getMaxLevel(skill.getId());
|
||||||
@@ -1460,6 +1461,25 @@ public class SkillTreesData implements IXmlReader
|
|||||||
player.removeSkill(skill, true, true);
|
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)
|
public boolean isAlchemySkill(int skillId, int skillLevel)
|
||||||
|
Reference in New Issue
Block a user