c1_lua/lua/app/ui/common/power_toast_manager.lua
2025-09-22 10:56:34 +08:00

129 lines
3.3 KiB
Lua
Executable File

local PowerToastManager = class("PowerToastManager", BaseModule)
function PowerToastManager:ctor()
end
function PowerToastManager:clear()
self:clearSeq()
end
function PowerToastManager:hideToast()
self:showEffect(false)
UIManager:hidePowerToast()
end
function PowerToastManager:showToast(before, after, posY)
self.before = before
self.after = after
self.posY = posY or 243
self.power = self.before
self.diffVal = self.after - self.before
self:clearSeq()
self.isNew = true
UIManager:getPowerToast(function(prefabObject)
prefabObject:getComponent(GConst.TYPEOF_UNITY_CLASS.CANVAS).enabled = true
local uiMap = prefabObject:genAllChildren()
self.bg = uiMap["power_change_toast.bg"]
self.powerTx = uiMap["power_change_toast.bg.power_tx"]
self.powerChange = uiMap["power_change_toast.bg.power_change_tx"]
self.powerSpine = uiMap["power_change_toast.bg.ui_spine_obj"]
-- self.effect1 = uiMap["power_change_toast.content.vfx_ui_zhanli_b01"]
-- self.effect2 = uiMap["power_change_toast.content.vfx_ui_zhanli_b03"]
self:showEffect(false)
self:showModuleUnlockAppearAnim()
self.powerSpine:playAnim("idle", false, true)
end)
end
-- 出现
function PowerToastManager:showModuleUnlockAppearAnim()
self.bg:setAnchoredPositionY(self.posY)
self.bg:setLocalScale(1, 1, 1)
-- if self.animEffect == nil then
-- self.animEffect = self.effect1:createBindTweenSequence()
-- self.animEffect:AppendInterval(0.3)
-- self.animEffect:AppendCallback(function()
-- self:showEffect(true)
-- end)
-- self.animEffect:AppendInterval(1)
-- self.animEffect:AppendCallback(function()
-- self:showEffect(false)
-- end)
-- else
-- self.animEffect:Restart()
-- end
if self.animAppear == nil then
self.animAppear = self.bg:createBindTweenSequence()
local tween = DOTweenManager:createDOTweenTo(
function()
return self.power
end,
function(value)
local str = GFunc.num2Str3(math.floor(value))
local str2 = GConst.EMPTY_STRING
local color = GConst.COLOR_CODE.LIGHT_GREEN
if self.diffVal > 0 then
str2 = "+" .. GFunc.num2Str3(self.diffVal)
else
str2 = "-" .. GFunc.num2Str3(math.abs(self.diffVal))
color = "#FF77D7"
end
self.powerTx:setText(str)
self.powerChange:setText(GFunc.colorText(color, str2))
end,
self.after, 1.5)
self.animAppear:Append(tween)
-- self.animAppear:Insert(1.45, self.bg:getTransform():DOScale(1.15, 0.2):SetLoops(2, CS.DG.Tweening.LoopType.Yoyo))
self.animAppear:SetAutoKill(true)
self.animAppear:OnComplete(function()
self.isNew = false
self:performWithDelayGlobal(function()
if self.isNew then
return
end
UIManager:hidePowerToast()
end, 0.5)
end)
else
self.animAppear:Restart()
end
end
function PowerToastManager:clearSeq()
if self.animEffect then
self.animEffect:Kill()
self.animEffect = nil
end
if self.animAppear then
self.animAppear:Kill()
self.animAppear = nil
end
end
function PowerToastManager:showEffect(show)
if self.effect1 then
self.effect1:setActive(false)
end
if self.effect2 then
self.effect2:setActive(false)
end
if not show then
return
end
if self.effect1 == nil or self.effect2 == nil then
return
end
self.effect1:setActive(true)
self.effect2:setActive(true)
self.effect1:play()
self.effect2:play()
self.effect1:setSortingOrder(28400, 0)
self.effect2:setSortingOrder(28400, 20)
end
return PowerToastManager