Back to Home

ESO Lua File v100035

ingame/skills/skillscomponents_shared.lua

[◄ back to folders ]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
-- respec shrine interaction info
ZO_SKILL_RESPEC_INTERACT_INFO =
{
    type = "Skill Respec Shrine",
    OnInteractSwitch = function()
        internalassert(false, "OnInteractSwitch is being called.")
        SCENE_MANAGER:ShowBaseScene()
    end,
    interactTypes = { INTERACTION_SKILL_RESPEC },
}
ZO_SceneManager_Leader.AddBypassHideSceneConfirmationReason("SKILLS_PLAYER_DEACTIVATED")
-- Skill XP bars
do
    local function OnXpBarLevelChanged(xpBar, level)
        xpBar:GetControl():GetParent().rank:SetText(level)
    end
        control.name = control:GetNamedChild("Name")
        control.rank = control:GetNamedChild("Rank")
        control.xpBar = ZO_WrappingStatusBar:New(control:GetNamedChild("XPBar"), OnXpBarLevelChanged)
        local statusBarControl = control.xpBar:GetControl()
        ZO_StatusBar_SetGradientColor(statusBarControl, ZO_SKILL_XP_BAR_GRADIENT_COLORS)
        control.glowContainer = statusBarControl:GetNamedChild("GlowContainer")
    end
end
function ZO_SkillInfoXPBar_SetValue(xpBar, level, lastRankXP, nextRankXP, currentXP, noWrap)
    local maxed = nextRankXP == 0 or nextRankXP == lastRankXP
    if maxed then
        xpBar:SetValue(level, 1, 1, noWrap)
    else
        xpBar:SetValue(level, currentXP - lastRankXP, nextRankXP - lastRankXP, noWrap)
    end
end
function ZO_Skills_TieSkillInfoHeaderToCraftingSkill(skillInfoHeaderControl, craftingSkillType)
    local name = skillInfoHeaderControl.name
    local xpBar = skillInfoHeaderControl.xpBar
    local rank = skillInfoHeaderControl.rank
    local glowContainer = skillInfoHeaderControl.glowContainer
    skillInfoHeaderControl.increaseAnimation = skillInfoHeaderControl.increaseAnimation or ANIMATION_MANAGER:CreateTimelineFromVirtual("SkillIncreasedBarAnimation", glowContainer)
    local hadUpdateWhileCrafting = false
    skillInfoHeaderControl.updateSkillInfoHeaderCallback = function(skillLineData)
        local craftingSkillLineData = SKILLS_DATA_MANAGER:GetCraftingSkillLineData(craftingSkillType)
        if not skillLineData or skillLineData == craftingSkillLineData then
            if ZO_CraftingUtils_IsPerformingCraftProcess() then
                hadUpdateWhileCrafting = true
            else
                if craftingSkillLineData == nil then
                    local isSettingTemplate = IsSettingTemplate() and "true" or "false"
                    local numTradeSkillLinesInC = GetNumSkillLines(SKILL_TYPE_TRADESKILL)
                    local message = string.format("CraftingType yielded no skill line data. Is Setting Template - %s; Num Trade Skill Lines in C - %d", isSettingTemplate, numTradeSkillLinesInC)
                    internalassert(false, message)
                end
                local lineRank = craftingSkillLineData:GetCurrentRank()
                local lastXP, nextXP, currentXP = craftingSkillLineData:GetRankXPValues()
                name:SetText(craftingSkillLineData:GetFormattedName())
                local lastRank = rank.lineRank
                rank.lineRank = lineRank
                xpBar:GetControl().skillLineData = craftingSkillLineData
                if skillLineData or hadUpdateWhileCrafting then
                    skillInfoHeaderControl.increaseAnimation:PlayFromStart()
                end
                ZO_SkillInfoXPBar_SetValue(xpBar, lineRank, lastXP, nextXP, currentXP, skillLineData == nil and not hadUpdateWhileCrafting)
            end
            if SkillTooltip:GetOwner() == xpBar:GetControl() then
                ZO_SkillInfoXPBar_OnMouseEnter(xpBar:GetControl())
            end
        end
        SKILLS_DATA_MANAGER:UnregisterCallback("FullSystemUpdated", skillInfoHeaderControl.updateSkillInfoHeaderCallback)
    end
    SKILLS_DATA_MANAGER:RegisterCallback("SkillLineUpdated", skillInfoHeaderControl.updateSkillInfoHeaderCallback)
    skillInfoHeaderControl.craftingAnimationsStoppedCallback = function() 
        if hadUpdateWhileCrafting then
            skillInfoHeaderControl.updateSkillInfoHeaderCallback()
            hadUpdateWhileCrafting = false
        end
    end
    CALLBACK_MANAGER:RegisterCallback("CraftingAnimationsStopped", skillInfoHeaderControl.craftingAnimationsStoppedCallback)
    if SKILLS_DATA_MANAGER:IsDataReady() then
        skillInfoHeaderControl.updateSkillInfoHeaderCallback()
    else
        SKILLS_DATA_MANAGER:RegisterCallback("FullSystemUpdated", skillInfoHeaderControl.updateSkillInfoHeaderCallback)
    end
end
function ZO_Skills_UntieSkillInfoHeaderToCraftingSkill(skillInfoHeaderControl)
    SKILLS_DATA_MANAGER:UnregisterCallback("SkillLineUpdated", skillInfoHeaderControl.updateSkillInfoHeaderCallback)
    SKILLS_DATA_MANAGER:UnregisterCallback("FullSystemUpdated", skillInfoHeaderControl.updateSkillInfoHeaderCallback)
    CALLBACK_MANAGER:UnregisterCallback("CraftingAnimationsStopped", skillInfoHeaderControl.craftingAnimationsStoppedCallback)
    skillInfoHeaderControl.craftingAnimationsStoppedCallback = nil
end