123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 |
- ---@class KLDevilCopyTaskProgressPanel:UIKmlLuaPanelBase
- ---@field view KLDevilCopyTaskProgressPanelView
- ---@field expItem KLItemItem
- local KLDevilCopyTaskProgressPanel = class(UIKmlLuaPanelBase)
- local this =KLDevilCopyTaskProgressPanel
- ---创建时调用一次
- function this:Init()
- SL:KeepOpenPanel("KLDevilCopyTaskProgressPanel",true)
- end
- ---创建或者刷新界面数据时调用
- function this:Refresh()
- GUI:UIPanel_Close("dev/outui/Activity/Panel/KLCopyTeam/KLCopyTeamPanel")
- self:RefreshPrepareStage(nil,self.args)
- SL:SetMetaValue(EMetaVarSetKey.SET_ISNOTCHANGEPKMODE,true)
- SL:SetMetaValue(EMetaVarSetKey.SET_PKMODE,EPKMode.Peace)
- end
- ---注册UI事件和服务器消息
- function this:RegistEvents()
- SL:RegisterLuaNetMsg(LuaMessageIdToClient.DEVIL_SQUARE_STATE,self.RefreshPrepareStage,self)
- SL:RegisterLuaNetMsg(LuaMessageIdToClient.RES_DEVIL_SQUARE_TASK,self.RefreshFightStage,self)
- SL:RegisterLuaNetMsg(LuaMessageIdToClient.RES_QUIT_DUPLICATE,self.RES_QUIT_SUCCESS,self)
-
- GUI:AddOnClickEvent(self.view.openActivityBtn,self,self.OnCliCkOpenActivityBtn)
- GUI:AddOnClickEvent(self.view.desBtn,self,self.OnCliCkDesBtn)
- GUI:AddOnClickEvent(self.view.exitBtn,self,self.OnCliCkExitBtn)
- end
- function this:RefreshPrepareStage(id,message)
- self.stage = message["1"]
- local countdown = tonumber(message["2"])
- local cfgId = tonumber(message["3"])
- ---@type cfg_rep_column
- local tbl = SL:GetConfig("cfg_rep",cfgId,"id")
- GUI:Text_setString(self.view.title,"恶魔广场第".. tbl.repLevel .."层")
- countdown = countdown-SL:GetMetaValue(EMetaVarGetKey.SERVER_TIME)
- self.countdown = math.modf(countdown/1000)
- GUI:setVisible(self.view.prepareRoot,self.stage == 1)
- GUI:setVisible(self.view.endTime,self.stage == 2)
- if self.stage == 1 then
- ---@type cfg_repGlobal_column
- local tbl = SL:GetConfig("cfg_repGlobal",10001002,"id")
- local waitTime = tonumber(tbl.value)
- local isChange = false
- if waitTime < self.countdown then
- GUI:Text_setString(self.view.openDes,"当前处于准备阶段")
- GUI:setVisible(self.view.openActivityBtn,false)
- else
- GUI:Text_setString(self.view.openDes,"战斗即将开始做好准备")
- GUI:setVisible(self.view.openActivityBtn,true)
- end
- local str = ""
- self.timer = SL:Schedule(self.timer,0,1,self.countdown,function()
- self.countdown = self.countdown - 1
- if waitTime < self.countdown then
- if not isChange then
- str = "后开启"
- GUI:Text_setString(self.view.openDes,"当前处于准备阶段")
- GUI:setVisible(self.view.openActivityBtn,false)
- isChange = true
- end
- elseif waitTime == self.countdown then
- str = "秒后开启副本"
- GUI:Text_setString(self.view.openDes,"战斗即将开始做好准备")
- GUI:setVisible(self.view.openActivityBtn,true)
- end
- GUI:Text_setString(self.view.openTime,GUIUtil.FormatTimeMS(self.countdown)..GUIUtil.GetColorText(str,"#1add1f"))
- if self.countdown <=0 then
- SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_CHANGE_DUPLICATE_STATE,EDuplicateType.StartCopy)
- end
- end)
- elseif self.stage == 2 then
- self.timer = SL:Schedule(self.timer,0,0.9,self.countdown,function()
- self.countdown = self.countdown - 1
- GUI:Text_setString(self.view.endTime,GUIUtil.FormatTimeMS(self.countdown))
- if self.countdown <= 0 and self.timer then
- SL:UnSchedule(self.timer)
- end
- if self.countdown <=0 then
- SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_QUIT_DUPLICATE)
- end
- end)
- end
- end
- function this:RefreshFightStage(id,message)
- GUI:setVisible(self.view.fightRoot,self.stage == 2)
- if self.stage == 2 then
- self:RefreshReward(message.rewardCount)
- GUI:Text_setString(self.view.waveNumber,"第"..message.wave.."波")
- GUI:Text_setString(self.view.taskCount,"<color=#ff2323>"..message.nowCount .. "</color>/"..message.totalCount)
- GUI:Text_setString(self.view.score,tostring(GUIUtil.FormatNumber(message.score,true)))
- end
- end
- function this:RES_QUIT_SUCCESS(id,message)
- ---@type cfg_rep_column
- local tbl = SL:GetConfig("cfg_rep",message,"id")
- if tbl.type == EActivityType.DevilSquare then
- GUI:UIPanel_Close("dev/outui/Activity/Panel/KLDevilCopyTaskProgress/KLDevilCopyTaskProgressPanel")
- end
- end
- function this:RefreshReward(count)
- if self.expItem then
- self.expItem:RefreshItem(10080001,count)
- else
- self.expItem = GUI:UIPanel_Open("dev/outui/Activity/Item/KLItem/KLItemItem",self.view.rewardModel,self,{cfgId = 10080001,count = count,width = 50,height=50},true)
- end
- end
- function this:OnCliCkOpenActivityBtn()
- SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_CHANGE_DUPLICATE_STATE,EDuplicateType.StartCopy)
- end
- function this:OnCliCkDesBtn()
- local des = "1、开启时间:从1:00开始,每2小时开启一场一天总开启12场。\n2、不同等级可进入不同层恶魔广场,每次进入恶魔广场需消耗对应数量的恶魔通行证。\n3、恶魔广场内怪物密集、刷新频率高、击杀怪物经验多,此副本内挂机打怪可获得大量经验。\n4.恶魔广场可组队进入,击杀怪物均分经验。\n5.组队进入恶魔广场后,击杀怪物可获得积分,结算时根据积分可获得额外奖励。\n6.根据积分数量对组队成员进行排名,恶魔广场结算时根据排名前三名可获得额外奖励。"
- GUI:UIPanel_Open("dev/outui/Activity/Panel/KLDescribeDetail/KLDescribeDetailPanel",nil,nil,{title="恶魔广场",content=des})
- end
- function this:OnCliCkExitBtn()
- local data = {content="离开副本将丢失进度,是否退出",okFunc=function()
- --请求退出副本
- SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_QUIT_DUPLICATE)
- end}
- GUI:UIPanel_Open("dev/outui/Activity/Panel/KLSure/KLSurePanel",nil,nil,data)
- end
- function this:SetVisible(isVisible)
- GUI:setVisible(self.view.root,isVisible)
- end
- function this:Close()
- if self.timer then
- SL:UnSchedule(self.timer)
- self.timer = nil
- end
- InfoManager.copActivityInfo.hideTask = false
- ---@type KLUILeftUpPanel
- local panel = GUI:GetUI("dev/ui/MainUI/Panel/KLUILeftUp/KLUILeftUpPanel")
- if panel then
- panel:OnClickTaskToggle(nil,nil,{true})
- end
- SL:SetMetaValue(EMetaVarSetKey.SET_ISNOTCHANGEPKMODE,false)
- SL:SetMetaValue(EMetaVarSetKey.SET_PKMODE,EPKMode.Peace)
- end
- return this
|