123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178 |
- ---@class KLSettlementPanel:UIKmlLuaPanelBase
- ---@field view KLSettlementPanelView
- local KLSettlementPanel = class(UIKmlLuaPanelBase)
- local this =KLSettlementPanel
- ---创建时调用一次
- function this:Init()
- self.rewardData = {}
- self.reward_all_item = {}
- GUI:DataListInitData(self.view.select_item_list,function()
- return self:RewardDataListItemCountFunc()
- end,function(realIndex)
- return self:RewardDataListItemGetFunc(realIndex)
- end,function(realIndex, kmlcontrol)
- return self:RewardDataListItemInitFunc(realIndex, kmlcontrol)
- end, function(realIndex, kmlcontrol)
- return self:RewardDataListItemUpdateFunc(realIndex, kmlcontrol)
- end)
- end
- ---创建或者刷新界面数据时调用
- function this:Refresh()
- self.maxNumber = self.args.leftCount
- self.curSelectReward = 1
- GUI:Text_setString(self.view.killMonsterCount,tostring(self.args.kill))
- GUI:Text_setString(self.view.gainExprience,tostring(GUIUtil.FormatNumber(self.args.exp,true)))
- self:RefreshRewardOption()
- end
- ---注册UI事件和服务器消息
- function this:RegistEvents()
- SL:RegisterLUAEvent(SELECT_REWARD_TYPE,self.SELECT_REWARD_TYPE,self)
- SL:RegisterLUAEvent(LUA_EVENT_BAG_CHANGE_AFTER,self.LUA_EVENT_BAG_CHANGE_AFTER,self)
- GUI:AddOnClickEvent(self.view.bgClose,self,self.OnclickCloseBtn)
- GUI:AddOnClickEvent(self.view.closeBtn,self,self.OnclickCloseBtn)
- GUI:AddOnClickEvent(self.view.okBtn,self,self.OnclickOkBtn)
- GUI:AddOnClickEvent(self.view.addbtn,self,self.OnclickaddBtn)
- GUI:AddOnClickEvent(self.view.itemBg,self,self.OnCliCkTicketBtn)
- end
- function this:SELECT_REWARD_TYPE(_,data)
- self.curSelectRewardData = data
- self.curSelectReward = data.index
- self.costId = data.costId
- self:RefreshReward(data.costId,data.costItemCount,data.costCount)
- end
- function this:LUA_EVENT_BAG_CHANGE_AFTER()
- if self.curSelectRewardData then
- self:RefreshReward(self.curSelectRewardData.costId,self.curSelectRewardData.costItemCount,self.curSelectRewardData.costCount)
- end
- end
- function this:OnclickCloseBtn()
- GUI:UIPanel_Close("dev/outui/Activity/Panel/KLSettlement/KLSettlementPanel")
- end
- function this:OnclickOkBtn()
- if self.tips and self.curSelectReward~=1 then
- SL:TipMessage(self.tips,1,NoticeType.NoticeMid)
- if not self.isMeetItemCount then
- SL:CommonItemGetPath(nil,self.costId)
- end
- return
- end
- GUI:UIPanel_Close("dev/outui/Activity/Panel/KLSettlement/KLSettlementPanel")
- end
- function this:OnclickaddBtn()
- SL:CommonItemGetPath(nil,self.costId)
- end
- function this:OnCliCkTicketBtn()
- SL:OpenTips(nil, self.costId)
- end
- function this:RefreshRewardOption()
- local globalId = 10001005
- if SL:HasConfig("cfg_rep",self.args.configId,"id") then
- ---@type cfg_rep_column
- local tbl = SL:GetConfig("cfg_rep",self.args.configId,"id")
- if tbl.type ~= EActivityType.DevilSquare then
- globalId = 11001006
- end
- end
- ---@type cfg_repGlobal_column
- local tbl = SL:GetConfigMultiKeys("cfg_repGlobal",globalId,"id")
- local data = tbl.value
- data = "1|"..data
- self.rewardData = string.split(data,"|")
- GUI:DataListUpdateData(self.view.select_item_list)
- local w = 118*#self.rewardData
- local count = #self.rewardData - 4
- GUI:setContentSize(self.view.select_layout,w,45)
- GUI:setPositionX(self.view.select_layout,count<=0 and 0 or (count*118/2))
- end
- function this:RewardDataListItemCountFunc()
- return #self.rewardData
- end
- function this:RewardDataListItemGetFunc(realIndex)
- local data = self.rewardData[realIndex + 1]
- local message = {index = tonumber(data),costId = 0,costItemCount = 0,costCount = 0}
- if tonumber(data) ~= 1 then
- data = string.split(data,"#")
- message = {index=tonumber(data[1]),costId =tonumber(data[2]),costItemCount = tonumber(data[3]),costCount = tonumber(data[4])}
- end
- local item = GUI:UIPanel_Open("dev/outui/Activity/Item/KLSelectReward/KLSelectRewardItem",self.view.select_item_list,self,message,true)
- self.reward_all_item[item.view.root] = item
- return item.view.root
- end
- function this:RewardDataListItemInitFunc(realIndex, kmlcontrol)
- end
- function this:RewardDataListItemUpdateFunc(realIndex, kmlcontrol)
- local data = self.rewardData[realIndex + 1]
- local message = {index = tonumber(data),costId = 0,costItemCount = 0}
- if tonumber(data) ~= 1 then
- data = string.split(data,"#")
- message = {index=tonumber(data[1]),costId =tonumber(data[2]),costItemCount = tonumber(data[3]),costCount = tonumber(data[4])}
- end
- self.reward_all_item[kmlcontrol]:RefreshItem(message)
- end
- function this:RefreshReward(costId,costItemCount,costCount)
- self.tips = nil
- self.isMeetItemCount = true
- if self.curSelectReward ~= 1 then
- local isMeet = self.maxNumber >= costCount
- local color = isMeet and "" or "#ff2323"
- local leftCountStr = "消耗血色城堡/恶魔广场活动次数:".. self.maxNumber .."/".. GUIUtil.GetColorText(costCount,color)
- if costCount > self.maxNumber then
- self.tips = "次数不足"
- end
-
- local ownerTicket = SL:GetBagItemCount(costId)
- isMeet = costItemCount <= ownerTicket
- color = isMeet and "#28E529" or "#ff2323"
- GUI:Text_setString(self.view.costItemCountTxt,GUIUtil.GetColorText(ownerTicket.."/"..costItemCount,color))
- GUI:Item_setItemId(self.view.costItem,costId)
- GUI:setVisible(self.view.addbtn,self,not isMeet)
- if not self.tips and not isMeet then
- self.tips = "道具不足"
- self.isMeetItemCount = false
- end
-
- GUI:Text_setString(self.view.costEnterCountTxt,leftCountStr)
- GUI:setContentSize(self.view.bg,549,560)
- GUI:setPositionY(self.view.okBtn,-137)
- else
- GUI:setContentSize(self.view.bg,549,465)
- GUI:setPositionY(self.view.okBtn,-45)
- end
- GUI:setVisible(self.view.costContainer,self.curSelectReward ~= 1)
- GUI:setVisible(self.view.costEnterCountTxt,self.curSelectReward ~= 1)
- end
- function this:Close()
- if SL:HasConfig("cfg_rep",self.args.configId,"id") then
- if self.tips and self.curSelectReward~=1 then
- SL:TipMessage(self.tips,1,NoticeType.NoticeMid)
- return
- end
- ---@type cfg_rep_column
- local tbl = SL:GetConfig("cfg_rep",self.args.configId,"id")
- if tbl.type == EActivityType.DevilSquare then
- SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_RECIVE_DEVIL_SQUARE_REWARD,self.curSelectReward)
- else
- SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_RECIVE_BLOODY_CASTLE_SETTLEMENT,self.curSelectReward)
- end
- end
- end
- return this
|