Всем привет!
Нужно реализовать изучение сразу максимального возможного лвл скила (в зависимости от лвл персонажа).
Полез в SkillAcquireHolder::getAvaliableList()
Сначала убрал проверку, с помощью которой мапа заполняется скилами на 1 лвл большими, чем уже выучены. Список стал формироваться из скилов именно нужного лвла (максимально возможного), но такие скилы не учатся, так как пропускаются предыдущие лвла скилов.
Затем убрал мапу, закинул все в список, но стали выводиться отдельно скилы каждого лвла, то есть, например Dash 1 лвл и Dash 2 лвл как два отдельных скила, что и логично.
Подкиньте идей, как решить такую задачу. Ломать проверку на предыдущий лвл скила не вариант (чтобы максимальный учился без выученных предыдущих). Сборка lostworld.
Нужно реализовать изучение сразу максимального возможного лвл скила (в зависимости от лвл персонажа).
Полез в SkillAcquireHolder::getAvaliableList()
Код:
private Collection<SkillLearn> getAvaliableList(Collection<SkillLearn> skillLearns, SkillEntry[] skills, int level) {
Map<Integer, SkillLearn> skillLearnMap = new TreeMap<Integer, SkillLearn>();
for(SkillLearn temp : skillLearns) {
if(temp.getMinLevel() <= level) {
boolean knownSkill = false;
for(int j = 0; j < skills.length && !knownSkill; j++) {
if(skills[j].getId() == temp.getId()) {
knownSkill = true;
if(skills[j].getLevel() == temp.getLevel() - 1) {
skillLearnMap.put(temp.getId(), temp);
}
}
}
if(!knownSkill && temp.getLevel() == 1) {
skillLearnMap.put(temp.getId(), temp);
}
}
}
return skillLearnMap.values();
}
Затем убрал мапу, закинул все в список, но стали выводиться отдельно скилы каждого лвла, то есть, например Dash 1 лвл и Dash 2 лвл как два отдельных скила, что и логично.
Подкиньте идей, как решить такую задачу. Ломать проверку на предыдущий лвл скила не вариант (чтобы максимальный учился без выученных предыдущих). Сборка lostworld.