---@class KLReviveTipPanel:UIKmlLuaPanelBase
---@field view KLReviveTipPanelView
local KLReviveTipPanel = class(UIKmlLuaPanelBase)
local this = KLReviveTipPanel
---创建时调用一次
function this:Init()
self.leftcfg = {}
self.rightcfg = {}
end
---创建或者刷新界面数据时调用
function this:Refresh()
local mapId = SL:GetMetaValue(EMetaVarGetKey.MAP_ID)
if self.args then
GUI:Text_setString(self.view.informationText, "您在" .. self.args.place .. "被" .. "" .. self.args.killer .. "" .. "击杀,请选择复活方式。")
if SL:HasConfig("cfg_map_info", self.args.mapId) then
---@type cfg_map_info_column
local mapcfg = SL:GetConfig("cfg_map_info", self.args.mapId)
---@type cfg_revive_column
self.leftcfg = SL:GetConfig("cfg_revive", mapcfg.rebirthType[1])
---@type cfg_revive_column
self.rightcfg = SL:GetConfig("cfg_revive", mapcfg.rebirthType[2])
GUI:Button_setTitleText(self.view.RightBtn,self.rightcfg.name)
self.countDownTimer = tonumber(SL:GetConfig("cfg_global", 116).value)
if self.countDown then
SL:UnSchedule(self.countDown)
self.countDown = nil
end
self.countDown = SL:Schedule(self.countDown,0,1,self.countDownTimer + 1,function()
self:CountDownText()
end)
end
end
end
---注册UI事件和服务器消息
function this:RegistEvents()
GUI:AddOnClickEvent(self.view.LeftBtn, self, self.OnClickLeftBtn)
GUI:AddOnClickEvent(self.view.RightBtn, self, self.OnClickRightBtn)
SL:RegisterLUAEvent(LUA_EVENT_ME_RELIVE, self.ResReliveMessage, self)
end
--[[--倒计时
this.countDownTimer = 60
function this.CountDownText()
if this.countDownTimer <= 0 then return end
this.countDownTimer = this.countDownTimer - 1
this.obj_text_reviveCountDown:SetText(string.format("回到重生点(%02d)", this.countDownTimer))
if this.countDownTimer <= 0 then
--this:Revive(1)
if this.countDown then
this.registInBaseUI:Stop_Timer(this.countDown)
end
this:HideMe()
end
end]]
--倒计时
function this:CountDownText()
if self.countDownTimer <= 0 then
return
end
self.countDownTimer = self.countDownTimer - 1
GUI:Button_setTitleText(self.view.LeftBtn,string.format("免费复活(%02d)", self.countDownTimer))
--GUI:Text_setString(self.view.LeftBtnText, string.format("免费复活(%02d)", self.countDownTimer))
--self.obj_text_reviveCountDown:SetText(string.format("免费复活(%02d)", self.countDownTimer))
--GUI:setSwallowTouches(self.view.LeftBtn,true)
if self.countDownTimer <= 0 then
--self:Revive(1)
--GUI:setSwallowTouches(self.view.LeftBtn,false)0000
GUI:Button_setTitleText(self.view.LeftBtn,"免费复活")
self:ReviveType(self.leftcfg.id, self.leftcfg.type)
self:OnCloseButton()
if self.countDown then
SL:UnSchedule(self.countDown)
self.countDown = nil
end
end
end
---通知复活
---@param message MapProtos.ReliveRes
function this:ResReliveMessage(_, message)
if message.id ~= SL:GetMetaValue(EMetaVarGetKey.UID) then
return
end
SL.AudioMgr.ReviveGame()
self:OnCloseButton()
end
function this:OnCloseButton()
GUI:UIPanel_Close("dev/ui/Revive/Panel/KLReviveTip/KLReviveTipPanel")
end
function this:OnClickLeftBtn()
if self.leftcfg then
self:ReviveType(self.leftcfg.id, self.leftcfg.type)
--self:OnCloseButton()
end
end
function this:OnClickRightBtn()
if self.rightcfg then
self:ReviveType(self.rightcfg.id, self.rightcfg.type)
end
end
function this:ReviveType(id, type)
SL:ReqPlayerReliveMessage(id, type)
--self:OnCloseButton()
end
function this:OnClose()
if self.countDown then
SL:UnSchedule(self.countDown)
self.countDown = nil
end
SL.ShowMainPanel()
end
return this