---@class KLEquipDropItem:UIKmlLuaPanelBase
---@field view KLEquipDropItemView
local KLEquipDropItem = class(UIKmlLuaPanelBase)
local this =KLEquipDropItem
---创建时调用一次
function this:Init()
self.perewardInfos = {}
GUI:DataListInitData(self.view.Perrewards, function()
return table.count(self.perewardInfos)
end, function(realIndex)
return self:DataListItemGetFunc(realIndex)
end, function(realIndex, kmlcontrol)
return self:DataListItemInitFunc(realIndex, kmlcontrol)
end, function(realIndex, kmlcontrol)
return self:DataListItemUpdateFunc(realIndex, kmlcontrol)
end)
end
---多个奖励道具
function this:DataListItemGetFunc(realIndex)
end
function this:DataListItemInitFunc(realIndex, kmlcontrol)
end
function this:DataListItemUpdateFunc(realIndex, kmlcontrol)
local data = self.perewardInfos[realIndex + 1]
local item = self.view.Perrewards:GetChildControl(realIndex, "itemreward")
local count = ""..SL:GetSimpleNumber(tonumber(data[2]),0)..""
GUI:AddOnClickEvent(item,self,function()
SL:OpenTips(nil, data[1])
end)
GUI:Item_UpdataData(item, {
itemid = data[1],
itemcustomcount = count,
})
end
---创建或者刷新界面数据时调用
function this:Refresh()
end
function this:UpdateUI(data,ranking_id)
self.data = data
self.ranking_id = ranking_id
self.personalrewardid = data.personalreward_type[1]
self.rewardid = data.equip_item_id
local state,usecount,rank = InfoManager.openServerInfo:GetRankAndNumByType(self.personalrewardid,data.personalreward_type[2])
local name,serstate = InfoManager.openServerInfo:GetRankNameBySort(self.rewardid,1)
---后端奖励领取状态:0 正常 1 可领取 2 已领取
self.state = state
self.serstate = serstate
local leftcount = data.personalreward_type[2] - usecount
if self.state == 1 then
leftcount = leftcount + 1
end
local cfg = SL:FindConfigs("cfg_item","id",data.equip_item_id)
local grade = SL:GetEquipValue(EMetaVarGetKey.EQUIP_GRADE, nil, data.equip_item_id, nil)
local name_color = SL:GetConfigMultiKeys('cfg_equip_quality', grade, 'id').nameColor
self.rewarditem = data.reward_item[1]
local count = ""..SL:GetSimpleNumber(tonumber(self.rewarditem[2]),0)..""
if cfg and cfg[1] then
local name = cfg[1].name
GUI:Text_setString(self.view.text60, name)
GUI:Text_setTextColor(self.view.text60, tostring(name_color))
end
GUI:Text_setString(self.view.text61, name)
GUI:Text_setString(self.view.text66, "剩余:"..leftcount) ----个人剩余数量
--装备id
GUI:Item_setItemId(self.view.item59,data.equip_item_id)
--首曝
GUI:Item_setItemId(self.view.item62,self.rewarditem[1])
GUI:Item_UpdataData(self.view.item62,{itemcustomcount = count})
--itemcount = self.rewarditem[2]
--个人
self.perewardInfos = data.personalreward_item
if self.perewardInfos then
GUI:DataListUpdateData(self.view.Perrewards)
GUI:setVisible(self.view.Perrewards,true)
else
GUI:setVisible(self.view.Perrewards,false)
end
--按钮状态文本
if self.state == 0 then
GUI:Text_setString(self.view.button64, "前往")
else
GUI:Text_setString(self.view.button64, "领取奖励")
end
GUI:setVisible(self.view.light_btn64,self.state == 1 )
GUI:setVisible(self.view.button64,self.state ~= 2 )
GUI:setVisible(self.view.img71, rank > 0 and self.state == 2 ) ---个人已领取
GUI:setVisible(self.view.img3,rank == 0 and self.state == 2) ---个人不可领取
--GUI:setVisible(self.view.text66,not (rank == 0 and self.state == 2))
GUI:setVisible(self.view.img10,self.serstate == 1 ) ---全服可领取
GUI:setVisible(self.view.img70,self.serstate == 2 ) ---全服已领取
end
function this:SetPosEquipItem()
GUI:setPositionX(self.view.Perlayout,0)
end
---注册UI事件和服务器消息
function this:RegistEvents()
GUI:AddOnClickEvent(self.view.item59,self,self.Equip_itemClick)
GUI:AddOnClickEvent(self.view.item62,self,self.EquipFir_itemClick)
GUI:AddOnClickEvent(self.view.button64,self,self.OnClickButton)
end
function this:Equip_itemClick()
SL:OpenTips(nil,self.data.equip_item_id)
end
---首曝奖励
function this:EquipFir_itemClick()
if self.serstate ~=2 then
if self.serstate ==1 then
SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_OPEN_SERVER_ACT_RANK_REWARD,{goalValue = self.rewardid, rankType = self.ranking_id })
else
SL:OpenTips(nil,self.rewarditem[1])
end
end
end
---领取个人奖励
function this:OnClickButton()
if self.state == 0 then
--跳转首领挑战野外boss
self.boss_id = 40006
self.boss_type = 2
if self.boss_type > 0 then
SL.HideMainPanel()
GUI:UIPanel_Close("dev/outui/ServerActivity/Panel/KLOpenServer/KLOpenServerPanel")
GUI:UIPanel_Open("dev/outui/ChallengeBoss/Panel/KLChallengeBoss/KLChallengeBossPanel",nil,
nil,{monsterId = self.boss_id,monsterType = self.boss_type })
end
else
if self.personalrewardid then
SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_OPEN_SERVER_ACT_PERSONAL_REWARD,{goalValue = self.personalrewardid, rankType = self.ranking_id })
end
end
end
function this:Close()
end
return this