slot0 = class("CatteryAddHomeExpAnim") slot1 = 1 function slot0.Ctor(slot0, slot1) slot0._tf = slot1 slot0.expSlider = findTF(slot0._tf, "slider"):GetComponent(typeof(Slider)) slot0.levelTxt = findTF(slot0._tf, "level"):GetComponent(typeof(Text)) slot0.expTxt = findTF(slot0._tf, "exp"):GetComponent(typeof(Text)) slot0.addition = findTF(slot0._tf, "addition") slot0.additionExp = findTF(slot0._tf, "addition/exp") slot0.additionExpTxt = slot0.additionExp:Find("Text"):GetComponent(typeof(Text)) slot0.additionItem = findTF(slot0._tf, "addition/item") slot0.additionItemImg = findTF(slot0._tf, "addition/item/icon") slot0.animRiseH = slot0.addition.localPosition.y setActive(slot0._tf, false) end function slot0.Action(slot0, slot1, slot2, slot3, slot4, slot5) setActive(slot0._tf, true) slot0.callback = slot5 setAnchoredPosition(slot0.addition, { x = slot0:GetAwardOffset(slot3, slot4) }) slot0:RefreshAward(slot3, slot4) slot0:RefreshHome(slot2) end function slot0.GetAwardOffset(slot0, slot1, slot2) return (slot1 or slot2) and -82 or -15 end function slot0.RefreshAward(slot0, slot1, slot2) if slot1 then GetImageSpriteFromAtlasAsync("Props/20010", "", slot0.additionItemImg) elseif slot2 then GetImageSpriteFromAtlasAsync("Props/dormMoney", "", slot0.additionItemImg) end setActive(slot0.additionItem, slot1 or slot2) end function slot0.RefreshHome(slot0, slot1) slot0.additionExpTxt.text = slot1 .. "EXP" if getProxy(CommanderProxy):GetCommanderHome().exp - slot1 < 0 then slot0:DoUpgradeAnim(slot2, slot1) else slot0:DoAddExpAnim(slot2, slot1) end end function slot0.DoUpgradeAnim(slot0, slot1, slot2) slot0.levelTxt.text = "LV." .. slot1:GetLevel() - 1 slot3 = slot1:GetPrevLevelExp() slot5 = slot3 - math.abs(slot1.exp - slot2) slot0.expTxt.text = "" .. slot5 .. "/" .. slot3 slot6 = slot5 / slot3 slot0.expSlider.value = slot6 slot8 = slot1.exp / slot1:GetNextLevelExp() slot0:AddExpAnim(slot6, 1, slot5, slot3, slot3, function () uv0.levelTxt.text = "LV." .. uv1:GetLevel() uv0:AddExpAnim(0, uv2, 0, uv1.exp, uv3) end) slot0:AdditionAnim(uv0, function () if uv0.callback then uv0.callback() end uv0.callback = nil end) end function slot0.DoAddExpAnim(slot0, slot1, slot2) slot0.levelTxt.text = "LV." .. slot1:GetLevel() slot3 = slot1:GetNextLevelExp() slot5 = slot1.exp - slot2 slot0:AddExpAnim(slot5 / slot3, slot1.exp / slot3, slot5, slot1.exp, slot3) slot0:AdditionAnim(uv0, function () if uv0.callback then uv0.callback() end uv0.callback = nil end) end function slot0.Clear(slot0) if LeanTween.isTweening(go(slot0.expSlider)) then LeanTween.cancel(go(slot0.expSlider)) end if LeanTween.isTweening(go(slot0.expTxt)) then LeanTween.cancel(go(slot0.expTxt)) end if LeanTween.isTweening(go(slot0.addition)) then LeanTween.cancel(go(slot0.addition)) end end function slot0.Hide(slot0) slot0:Clear() setActive(slot0._tf, false) end function slot0.Dispose(slot0) slot0:Hide() end function slot0.AddExpAnim(slot0, slot1, slot2, slot3, slot4, slot5, slot6) parallelAsync({ function (slot0) LeanTween.value(go(uv0.expSlider), uv1, uv2, uv3):setOnUpdate(System.Action_float(function (slot0) uv0.expSlider.value = slot0 end)):setOnComplete(System.Action(slot0)) end, function (slot0) LeanTween.value(go(uv0.expTxt), uv1, uv2, uv3):setOnUpdate(System.Action_float(function (slot0) uv0.expTxt.text = "" .. math.ceil(slot0) .. "/" .. uv1 end)):setOnComplete(System.Action(slot0)) end }, function () if uv0 then uv0() end end) end function slot0.AdditionAnim(slot0, slot1, slot2) setActive(slot0.addition, true) LeanTween.value(go(slot0.addition), slot0.animRiseH, slot0.animRiseH + 25, slot1):setOnUpdate(System.Action_float(function (slot0) uv0.addition.localPosition = Vector3(uv0.addition.localPosition.x, slot0, 0) end)):setOnComplete(System.Action(function () setActive(uv0.addition, false) uv1() uv0.addition.localPosition = Vector3(uv0.addition.localPosition.x, y, 0) end)) end return slot0