Fix for dual class skills (Exalted skills).
Thanks to nasseka.
This commit is contained in:
@@ -7473,23 +7473,20 @@ public class PlayerInstance extends Playable
|
||||
if (store)
|
||||
{
|
||||
storeSkill(newSkill, oldSkill, -1);
|
||||
|
||||
if (CommonUtil.contains(DUAL_CLASS_SKILLS, newSkill.getId()))
|
||||
{
|
||||
final List<Skill> dualClassSkills = getVariables().getList(KNOWN_DUAL_SKILLS_VAR, Skill.class, new ArrayList<>());
|
||||
if (!dualClassSkills.contains(newSkill))
|
||||
for (Skill dualSkill : dualClassSkills)
|
||||
{
|
||||
for (Skill dualSkill : dualClassSkills)
|
||||
if (dualSkill.getId() == newSkill.getId())
|
||||
{
|
||||
if (dualSkill.getId() == newSkill.getId())
|
||||
{
|
||||
dualClassSkills.remove(dualSkill);
|
||||
break;
|
||||
}
|
||||
dualClassSkills.remove(dualSkill);
|
||||
break;
|
||||
}
|
||||
dualClassSkills.add(newSkill);
|
||||
getVariables().set(KNOWN_DUAL_SKILLS_VAR, dualClassSkills);
|
||||
}
|
||||
dualClassSkills.add(newSkill);
|
||||
getVariables().set(KNOWN_DUAL_SKILLS_VAR, dualClassSkills);
|
||||
|
||||
}
|
||||
}
|
||||
return oldSkill;
|
||||
@@ -7642,8 +7639,6 @@ public class PlayerInstance extends Playable
|
||||
*/
|
||||
private void restoreSkills()
|
||||
{
|
||||
final List<Skill> dualClassSkills = getVariables().getList(KNOWN_DUAL_SKILLS_VAR, Skill.class, new ArrayList<>());
|
||||
|
||||
try (Connection con = DatabaseFactory.getConnection();
|
||||
PreparedStatement statement = con.prepareStatement(RESTORE_SKILLS_FOR_CHAR))
|
||||
{
|
||||
@@ -7666,20 +7661,6 @@ public class PlayerInstance extends Playable
|
||||
continue;
|
||||
}
|
||||
|
||||
if (CommonUtil.contains(DUAL_CLASS_SKILLS, id) && !dualClassSkills.contains(skill))
|
||||
{
|
||||
for (Skill dualSkill : dualClassSkills)
|
||||
{
|
||||
if (dualSkill.getId() == skill.getId())
|
||||
{
|
||||
dualClassSkills.remove(dualSkill);
|
||||
break;
|
||||
}
|
||||
}
|
||||
dualClassSkills.add(skill);
|
||||
getVariables().set(KNOWN_DUAL_SKILLS_VAR, dualClassSkills);
|
||||
}
|
||||
|
||||
// Add the Skill object to the Creature _skills and its Func objects to the calculator set of the Creature
|
||||
addSkill(skill);
|
||||
|
||||
@@ -7702,8 +7683,10 @@ public class PlayerInstance extends Playable
|
||||
// Learn known dualclass skills.
|
||||
if (isDualClassActive() || !isSubClassActive())
|
||||
{
|
||||
final List<Skill> dualClassSkills = new ArrayList<>(getVariables().getList(KNOWN_DUAL_SKILLS_VAR, Skill.class, Collections.emptyList()));
|
||||
for (Skill skill : dualClassSkills)
|
||||
{
|
||||
removeSkill(skill);
|
||||
addSkill(skill, true);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user