Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function User:recalcSkills()
- -- USER SKILLS
- self.skillCache.data = util.copy(self.skills)
- local skills = self.skillCache.data
- -- BASE SKILLS
- for skillId, value in pairs(content.userSettings.skills) do
- skills[skillId] = (skills[skillId] or 0) + value
- end
- -- ITEMS SKILLS
- for id, itemUser in pairs(self.items or {}) do
- local itemContent = content.items[id]
- for skillId, value in pairs((itemContent or {}).commonSkills or {}) do
- skills[skillId] = (skills[skillId] or 0) + value
- end
- end
- local absoluteSkills = {
- -- EXAMPLE = { time = 23423423, value = 123 }
- }
- -- TECHNOLOGIES
- for id, technologyUser in pairs(self.technology or {}) do
- if technologyUser.status == User.QUEST_STATUS_FINISHED then
- local technologyContent = content.technology[id]
- for skillId, value in pairs(technologyContent.skills or {}) do
- skills[skillId] = (skills[skillId] or 0) + value
- end
- for skillId, value in pairs(technologyContent.absoluteSkills or {}) do
- if technologyUser.studyTime > ((absoluteSkills[skillId] or {}).time or 0) then
- absoluteSkills[skillId] = { time = technologyUser.studyTime, value = value }
- end
- end
- end
- end
- -- PSI SKILLS
- for id, level in pairs(self.psiCapsule or {}) do
- local psiCapsule = content.psiCapsule[id]
- for skillId, value in pairs((psiCapsule.levels[level] or {}).skills or {}) do
- skills[skillId] = (skills[skillId] or 0) + value
- end
- end
- -- ARMOR
- local itemSkills = self:itemSkillsGet(self.slots.armor or 0)
- for skillId, value in pairs(itemSkills) do
- if skillId ~= 'LEVEL' then
- skills[skillId] = (skills[skillId] or 0) + value
- end
- end
- -- PREMIUM
- if self:premiumGet() then
- for skillId, value in pairs(content.premiumSettings.skills) do
- skills[skillId] = (skills[skillId] or 0) + value
- end
- end
- -- LEVEL
- local levelContent = content.levels[self.skills.LEVEL] or {}
- for skillId, value in pairs(levelContent.skills or {}) do
- skills[skillId] = (skills[skillId] or 0) + value
- end
- -- сумама по абсолютным скилам
- for skillId, skill in pairs(absoluteSkills) do
- skills[skillId] = (skills[skillId] or 0) + skill.value
- end
- self.skillCache.expired = false
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement