123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708 |
- ---@class KLRecoverPanel:UIKmlLuaPanelBase
- ---@field view KLRecoverPanelView
- ---@field typeList cfg_recovery_column[]
- ---@field goodsItem table<KingML.KmlControl,KLRecycleIncomeItemItem>
- ---@field getList table<number,{count:number,cfgId:number}>
- local KLRecoverPanel = class(UIKmlLuaPanelBase)
- local this = KLRecoverPanel
- ---创建时调用一次
- function this:Init()
- self.cfgNameStr = "cfg_recovery"
- self.recoverBagPanel = nil
- ---回收所得列表
- self.getList = {}
- ---回收所得道具展示
- self.goodsItem = {}
- ---回收类型列表
- self.typeList = {}
- self.selectItemList = {}
- ---回收所得列表
- GUI:DataListInitData(self.view.loopscrollviewData, function()
- return self:ItemCountFunc()
- end, function(realIndex)
- return self:ItemGetFunc(realIndex)
- end, function(realIndex, kmlCtrl)
- return self:ItemInitFunc(realIndex, kmlCtrl)
- end, function(realIndex, kmlCtrl)
- return self:ItemUpdateFunc(realIndex, kmlCtrl)
- end)
- ---获取类型列表
- self:GetTypeList()
- self.cfg_recovery_screen = SL:GetConfigTable("cfg_recovery_screen")
- ---类型选择列表
- -- for k, v in pairs(self.typeList) do
- -- ---@type KLRecoverTypeItem
- -- local homeTab = GUI:UIPanel_Open("dev/ui/Recover/Item/KLRecoverType/KLRecoverTypeItem", self.view.TypeContent, self, v, true)
- -- GUI:Toggle_setIsOn(homeTab.view.KmlRecycleTypeItemTemplate, SL:GetRecoverTypeState(v.id, self.cfgNameStr))
- -- GUI:SetToggleOnValueChange(homeTab.view.KmlRecycleTypeItemTemplate, self, self.TypeToggleChange, v.id)
- -- end
- self.recover_all_item = {}
- self.recover_data = nil
- for k, v in ipairs(self.typeList) do
- local id = v.id
- local _typeList = {}
- for ii, one in ipairs(self.cfg_recovery_screen) do
- if one.groupLevel == v.id then
- one.groupName1 = one.screenName
- table.insert(_typeList,one)
- end
- end
- v.typeList = _typeList
- ---@param homeTab KLRecoverTypeItem
- GUI:UIPanel_Open("dev/ui/Recover/Item/KLRecoverType/KLRecoverTypeItem", self.view.TypeContent, self, v, true,function(homeTab)
- GUI:SetToggleOnValueChange(homeTab.view.KmlRecycleTypeItemTemplate, self, self.ToggleChange, v.id)
- self.recover_all_item[tostring(id)] = homeTab
- end)
- end
-
- end
- ---创建或者刷新界面数据时调用
- function this:Refresh()
- SL.HideMainPanel()
- ---刷新特权展示
- self:RefreshPrivilegeInfo()
- ---刷新自动拾取勾选显示
- local isOpenPick = SL:GetPlayerAutoPickIsOpen()
- if isOpenPick then
- --isOpenPick = PrivilegeCardManager.isautoPotion()
- isOpenPick = InfoManager.monthCardInfo:IsHaveMonthCardRights("pickUp")
- end
- GUI:Toggle_setIsOn(self.view.AutoPickToggle, isOpenPick)
- local isOpenRecover = SL:GetPlayerAutoRecoverIsOpen()
- if isOpenRecover then
- isOpenRecover = PrivilegeCardManager.isautoRecovery()
- --isOpenRecover = InfoManager.monthCardInfo:IsHaveMonthCardRights("recovery")
- end
- ---刷新自动回收勾选
- GUI:Toggle_setIsOn(self.view.AutoRecoverToggle, isOpenRecover)
- -- ---刷新回收所得道具
- -- self:GetRecoverGetItem()
- -- ---显示背包
- -- self.recoverBagPanel = GUI:UIPanel_Open("dev/ui/Bag/Panel/KLRecoverBag/KLRecoverBagPanel", nil, nil, { x = -415, bagType = EBagShowType.Recycle, itemClickCallBack = self.ClickItemCallBack, selectList = self.selectItemList, callBackUI = self })
- SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_GET_RECYCLING_TYPE)
- end
- ---获取回收所得道具展示
- function this:GetRecoverGetItem()
- ---选中道具列表
- ---@type table<number,boolean>
- self.selectItemList = {}
- self.selectItemCount = {}
- ---选中道具索引列表
- self.SelectItemIndexList = {}
- ---@type table<number,{count:number,cfgId:number}>
- self.getList = {}
- ---@type number[]
- local typeList = SL:GetAutoRecoverTypeSetData(self.cfgNameStr)
- ---@param v CommonProtos.Item
- for i, v in pairs(SL:GetCanRecycleItemList(self.cfgNameStr)) do
- --(not自身职业的武器or评分不高于自身武器)and 强化等级==0 and 追加等级==0
- if (not SL:CheckEquipBaseCareer(v) or not self:CompareInitGrage(v)) and (EquipFunc.GetEquipStrengthLevel(v) == 0) and EquipFunc.GetEquipAppendLevel(v) == 0 then
- local configData = SL:GetConfig("cfg_item", v.cfgId)
- if table.contains(typeList, configData.recoveryGroup) then
- local recycleCfg = SL:GetConfig(self.cfgNameStr, configData.recoveryGroup)
- for k = 1, table.count(recycleCfg.material) do
- if not self:CheckExsit(recycleCfg.material[k], self.getList, configData.recoveryUp, v.count) then
- ---@type {count:number,cfgId:number}
- local getType = {}
- getType.cfgId = recycleCfg.material[k][1]
- getType.count = recycleCfg.material[k][2] * (1 + configData.recoveryUp / 100) * (1 + self.privilegeUp / 100)
- getType.count = getType.count * v.count
- table.insert(self.getList, getType)
- end
- end
- table.insert(self.SelectItemIndexList, { idxOfBags = SL:MeData_GetIndexBaseOnItemId(v.id), count = v.count })
- self.selectItemList[v.id] = true
- end
- end
- end
- self:ShowGetItemList()
- end
- ---获取回收所得道具展示 --多级页签选择的回收
- function this:GetRecoverGetItemMultistage()
- ---选中道具列表
- ---@type table<number,boolean>
- self.selectItemList = {}
- self.selectItemCount = {}
- ---选中道具索引列表
- self.SelectItemIndexList = {}
- ---@type table<number,{count:number,cfgId:number}>
- self.getList = {}
- ---@type number[]
- local typeList = {}
- if self.recover_data and next(self.recover_data) then
- for key, v in pairs(self.recover_data) do
- table.insert(typeList,tonumber(key))
- end
- end
- local allItem = self:GetCanRecover()
- ---@param v CommonProtos.Item
- for i, v in ipairs(allItem) do
- --(not自身职业的武器or评分不高于自身武器)and 强化等级==0 and 追加等级==0
- if (not SL:CheckEquipBaseCareer(v) or not self:CompareInitGrage(v)) and (EquipFunc.GetEquipStrengthLevel(v) == 0) and EquipFunc.GetEquipAppendLevel(v) == 0 then
- local configData = SL:GetConfig("cfg_item", v.cfgId)
-
- if table.contains(typeList, configData.recoveryGroup) then
- local group_str = tostring(configData.recoveryGroup)
- local is_add = false
- --如果是白装这种没有子页签的直接添加
- if self.recover_data[group_str] and self.recover_data[group_str]["1"] then
- for kk, group_id in pairs(self.recover_data[group_str]) do
- local one_tab = SL:GetConfig("cfg_recovery_screen",group_id)
- --比较阶数是否相等
- if one_tab.type == 1 then
- if configData.rank == one_tab.rank then
- is_add = true
- end
- --比较词条数是否相等
- elseif one_tab.type == 2 then
- local entryAttr = SL:GetEquipValue(EMetaVarGetKey.EQUIP_ENTRY_ATTR, "bag", v.cfgId, v.id)
- if entryAttr and #entryAttr == one_tab.count then
- is_add = true
- end
- --比较职业等级是否相等
- elseif one_tab.type == 3 then
- local career = one_tab.career
- local equip_job = configData.job
- for iii, one_list in ipairs(career) do
- for jjj, job_list in ipairs(equip_job) do
- if one_list[1] == job_list[1] and one_list[2] == job_list[2] then
- is_add = true
- break
- end
- end
- if is_add then
- break
- end
- end
- end
- end
- else
- is_add = true
- end
- if is_add then
- local recycleCfg = SL:GetConfig(self.cfgNameStr, configData.recoveryGroup)
- for k = 1, table.count(recycleCfg.material) do
- if not self:CheckExsit(recycleCfg.material[k], self.getList, configData.recoveryUp, v.count) then
- ---@type {count:number,cfgId:number}
- local getType = {}
- getType.cfgId = recycleCfg.material[k][1]
- getType.count = recycleCfg.material[k][2] * (1 + configData.recoveryUp / 100) * (1 + self.privilegeUp / 100)
- getType.count = getType.count * v.count
- table.insert(self.getList, getType)
- end
- end
- table.insert(self.SelectItemIndexList, { idxOfBags = SL:MeData_GetIndexBaseOnItemId(v.id), count = v.count })
- self.selectItemList[v.id] = true
- end
- end
- end
- end
- self:ShowGetItemList()
- end
- function this:GetCanRecover()
- local list = {}
- local bagData = SL:GetMetaValue(EMetaVarGetKey.BAG_DATA)
- local items = bagData[1]
- for i, v in pairs(items) do
- if SL:HasConfig("cfg_item", v.cfgId) then
- local item = SL:GetConfig("cfg_item",v.cfgId)
- if SL:HasConfig(self.cfgNameStr, item.recoveryGroup) then
- if self:FilterMedicine(v.cfgId) then
- table.insert(list,v)
- end
- end
- end
- end
- return list
- end
- local medicineLevel
- function this:CalculateMedicineLevelIfNeed()
- if medicineLevel then
- return
- end
- medicineLevel = {}
- ---@type cfg_npcShop_column[]
- local table = SL:GetConfigTable("cfg_npcShop")
- for _, v in pairs(table) do
- if v.shopId == 1 and not string.isNullOrEmpty(v.conditions) then --药水分类
- local itemId = v.itemId[1]
- local hightestLevel = tonumber(string.match(v.conditions,"checkLevel<=(%d+)"))
- medicineLevel[itemId] = hightestLevel
- end
- end
- end
- ---@药水回收规则:根据等级动态划分低级药水
- function this:FilterMedicine(itemId)
- self:CalculateMedicineLevelIfNeed()
- local level = SL:GetMetaValue(EMetaVarGetKey.LEVEL)
- if medicineLevel[itemId] then
- return medicineLevel[itemId] < level
- end
- return true
- end
- ---展示回收所得道具
- function this:ShowGetItemList()
- GUI:DataListUpdateData(self.view.loopscrollviewData)
- end
- ---点击背包item回调
- ---@param itemControl KLBagItemItemView
- ---@param itemData CommonProtos.Item
- function this:ClickItemCallBack(itemControl, itemData, itemSelf)
- if itemData.count > 1 and not self.selectItemList[itemData.id] then
- self.itemControl = itemControl
- self.itemSelf = itemSelf
- GUI:UIPanel_Open("dev/outui/SelectCount/Panel/KLSelectCount/KLSelectCountPanel", _, _, { itemid = itemData.cfgId, callbackUI = self, max = itemData.count, sure = self.CountSelect, id = itemData.id })
- return
- end
- self.selectItemList[itemData.id] = not self.selectItemList[itemData.id]
- self:SetSelectState(itemControl, itemSelf, self.selectItemList[itemData.id])
- ---根据背包内勾选刷新回收收益
- self:ShowGetItemListBySelect()
- end
- function this:CountSelect(id, count)
- self.selectItemCount[id] = count
- self.selectItemList[id] = not self.selectItemList[id]
- self:SetSelectState(self.itemControl, self.itemSelf, self.selectItemList[id])
- self:ShowGetItemListBySelect()
- end
- ---设置选中状态
- function this:SetSelectState(itemControl, itemSelf, isShow)
- itemSelf:SetSelectEffect(isShow, true)
- end
- ---根据背包内勾选刷新回收收益
- function this:ShowGetItemListBySelect()
- ---选中道具索引列表
- self.SelectItemIndexList = {}
- ---@type table<number,{count:number,cfgId:number}>
- self.getList = {}
- ---@type number[]
- -- local typeList=SL:GetAutoRecoverTypeSetData()
- ---@param v CommonProtos.Item
- for i, v in pairs(SL:GetCanRecycleItemList(self.cfgNameStr)) do
- local configData = SL:GetConfig("cfg_item", v.cfgId)
- local count = v.count
- ---主动勾选列表中为true
- if self.selectItemList[v.id] then
- local recycleCfg = SL:GetConfig(self.cfgNameStr, configData.recoveryGroup)
- for k = 1, table.count(recycleCfg.material) do
- count = self.selectItemCount[v.id] and self.selectItemCount[v.id] or v.count
- if not self:CheckExsit(recycleCfg.material[k], self.getList, configData.recoveryUp, count) then
- ---@type {count:number,cfgId:number}
- local getType = {}
- getType.cfgId = recycleCfg.material[k][1]
- getType.count = recycleCfg.material[k][2] * (1 + configData.recoveryUp / 100) * (1 + self.privilegeUp / 100)
- getType.count = getType.count * count
- table.insert(self.getList, getType)
- end
- end
- table.insert(self.SelectItemIndexList, { idxOfBags = SL:MeData_GetIndexBaseOnItemId(v.id), count = count })
- end
- end
- self:ShowGetItemList()
- end
- ---@param list table<number,{count:number,cfgId:number}>
- function this:CheckExsit(data, list, addUpNum, itemCount)
- for i, v in pairs(list) do
- if v.cfgId == data[1] then
- v.count = v.count + data[2] * (1 + addUpNum / 100) * (1 + self.privilegeUp / 100) * itemCount
- return true
- end
- end
- return false
- end
- function this:RefreshPrivilegeInfo()
- self.privilegeUp = PrivilegeCardManager.GetReclaimUp()
- if self.privilegeUp > 0 then
- GUI:setVisible(self.view.privilege_tip, true)
- GUI:Text_setString(self.view.privilege_tip, "已激活钻石特权:回收收益增加" .. self.privilegeUp .. "%")
- else
- GUI:setVisible(self.view.privilege_tip, false)
- end
- end
- ---注册UI事件和服务器消息
- function this:RegistEvents()
- GUI:AddOnClickEvent(self.view.closeBtn, self, self.BtnCloseOnClick)
- GUI:AddOnClickEvent(self.view.BtnRecover, self, self.BtnRecover)
- GUI:SetToggleOnValueChange(self.view.AutoPickToggle, self, self.AutoPickToggleChaneg)
- GUI:SetToggleOnValueChange(self.view.AutoRecoverToggle, self, self.AutoRecoverToggleChaneg)
- SL:RegisterLUAEvent(LUA_EVENT_Item_Recover, self.LUA_EVENT_Item_Recover, self)
- SL:RegisterLuaNetMsg(LuaMessageIdToClient.RES_GET_RECYCLING_TYPE,self.RES_GET_RECYCLING_TYPE,self)
- SL:RegisterLuaNetMsg(LuaMessageIdToClient.RES_RECOVERY_REWARD,self.RES_RECOVERY_REWARD,self)
-
-
- end
- function this:UnRegistEvents()
- SL:UnRegisterLuaNetMsg(LuaMessageIdToClient.RES_GET_RECYCLING_TYPE,self.RES_GET_RECYCLING_TYPE,self)
- SL:UnRegisterLuaNetMsg(LuaMessageIdToClient.RES_RECOVERY_REWARD,self.RES_RECOVERY_REWARD,self)
-
- end
- function this:Close()
- self:UnRegistEvents()
- SL.ShowMainPanel()
- end
- ---关闭页面
- function this:BtnCloseOnClick()
- GUI:UIPanel_Close("dev/ui/Recover/Panel/KLRecover/KLRecoverPanel")
- GUI:UIPanel_Close("dev/ui/Bag/Panel/KLRecoverBag/KLRecoverBagPanel")
- GUI:UIPanel_Close("dev/ui/Recover/Panel/KLRecoverDetailedSettings/KLRecoverDetailedSettingsPanel")
- end
- ---请求回收
- function this:BtnRecover()
- --SL:SendRecoverItem(self.SelectItemIndexList)
- if not self.SelectItemIndexList or not next(self.SelectItemIndexList) then
- return
- end
- --新的回收逻辑
- local list = {}
- for i, v in ipairs(self.SelectItemIndexList) do
- list[tostring(v.idxOfBags)] = v.count
- end
- SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_ITEM_RECOVERY,list)
- end
- ---自动回收勾选修改
- function this:AutoRecoverToggleChaneg(_, customData, eventData)
- -- local IsNeedMonthCard, IsNeedDailyCard = InfoManager.monthCardInfo:IsNeedMonthAndDailyCard("recovery")
- -- if IsNeedMonthCard then
- -- if not InfoManager.monthCardInfo.IsGetMonthCard then
- -- if IsNeedDailyCard and not InfoManager.monthCardInfo.IsGetDailyCard then
- -- GUI:Toggle_setIsOn(self.view.AutoRecoverToggle, false)
- -- SL:CommonTipsMessage({ stringTblID = 231, showTips = "充值<color='#FFFF00'>月卡</color>开通自动回收", ui = self, sureBtnText = "确定", cancelBtnText = "取消",
- -- callback = self.OpenFirsh })
- -- return
- -- end
- -- if not IsNeedDailyCard then
- -- GUI:Toggle_setIsOn(self.view.AutoRecoverToggle, false)
- -- SL:CommonTipsMessage({ stringTblID = 231, showTips = "充值<color='#FFFF00'>月卡</color>开通自动回收", ui = self, sureBtnText = "确定", cancelBtnText = "取消",
- -- callback = self.OpenFirsh })
- -- return
- -- end
- -- end
- -- else
- -- if eventData[1] and not PrivilegeCardManager.isautoRecovery() then
- -- GUI:Toggle_setIsOn(self.view.AutoRecoverToggle, false)
- -- self:TipCardRecover()
- -- return
- -- end
- -- end
- if eventData[1] and not PrivilegeCardManager.isautoRecovery() then
- GUI:Toggle_setIsOn(self.view.AutoRecoverToggle, false)
- self:TipCardRecover()
- return
- end
- if eventData[1] == SL:GetPlayerAutoRecoverIsOpen() then
- return
- end
- ---设置一下数据
- -- SL:SetPlayerAutoRecover(eventData[1])
- ---发给服务器
- SL:SendPlayerAutoRecoverChange(eventData[1])
- end
- function this:TipCardRecover()
- SL:CommonTipsMessage({ stringTblID = 480, showTips = "", ui = self, sureBtnText = "确定", cancelBtnText = "取消",
- callback = self.OpenFirsh })
- end
- ---自动拾取勾选修改
- function this:AutoPickToggleChaneg(_, customData, eventData)
- -- local IsNeedMonthCard, IsNeedDailyCard = InfoManager.monthCardInfo:IsNeedMonthAndDailyCard("recovery")
- -- if IsNeedMonthCard then
- -- if not InfoManager.monthCardInfo.IsGetMonthCard then
- -- if IsNeedDailyCard and not InfoManager.monthCardInfo.IsGetDailyCard then
- -- GUI:Toggle_setIsOn(self.view.AutoPickToggle, false)
- -- SL:CommonTipsMessage({ stringTblID = 233, showTips = "充值<color='#FFFF00'>月卡</color>开通自动拾取", ui = self, sureBtnText = "确定", cancelBtnText = "取消",
- -- callback = self.OpenFirsh })
- -- return
- -- end
- -- if not IsNeedDailyCard then
- -- GUI:Toggle_setIsOn(self.view.AutoPickToggle, false)
- -- SL:CommonTipsMessage({ stringTblID = 233, showTips = "充值<color='#FFFF00'>月卡</color>开通自动拾取", ui = self, sureBtnText = "确定", cancelBtnText = "取消",
- -- callback = self.OpenFirsh })
- -- return
- -- end
- -- end
- -- else
- -- if eventData[1] and not PrivilegeCardManager.isautoPick() then
- -- GUI:Toggle_setIsOn(self.view.AutoPickToggle, false)
- -- self:TipCardPick()
- -- return
- -- end
- -- end
- if eventData[1] and not PrivilegeCardManager.isautoPick() then
- GUI:Toggle_setIsOn(self.view.AutoPickToggle, false)
- self:TipCardPick()
- return
- end
- if eventData[1] == SL:GetPlayerAutoPickIsOpen() then
- return
- end
- ---设置一下数据
- SL:SetPlayerAutoPick(eventData[1])
- ---发给服务器
- SL:SendPlayerAutoPickChange(eventData[1])
- end
- function this:TipCardPick()
- SL:CommonTipsMessage({ stringTblID = 479, showTips = "", ui = self, sureBtnText = "确定", cancelBtnText = "取消",
- callback = self.OpenFirsh })
- end
- function this:SetAutoRecover(val)
- GUI:Toggle_setIsOn(self.view.AutoRecoverToggle, val)
- end
- function this:OpenFirsh()
- --SL:TipMessage({ "首充还未开通", 1, NoticeType.NoticeMid })
- GUI:UIPanel_Close("dev/ui/Recover/Panel/KLRecover/KLRecoverPanel")
- GUI:UIPanel_Close("dev/ui/Bag/Panel/KLRecoverBag/KLRecoverBagPanel")
- --GUI:UIPanel_Open("dev/ui/ShopMall/Panel/KLShopMall/KLShopMallPanel")
- --GUI:UIPanel_Open("dev/outui/MonthCard/Panel/KLUIMonthCardMain/KLUIMonthCardMainPanel")
- GUI:UIPanel_Open("dev/outui/ShopMain/Panel/KLShopMain/KLShopMainPanel",nil,nil,2)
- end
- ---获取勾选类型列表
- function this:GetTypeList()
- ---@param v cfg_recovery_column
- for i, v in pairs(SL:GetConfigTable(self.cfgNameStr)) do
- if v.group == 1 and v.recoverType ~= 0 then
- table.insert(self.typeList, v)
- end
- end
- table.sort(self.typeList, function(a, b)
- return a.id < b.id
- end)
- end
- ---回收获得列表数量
- function this:ItemCountFunc()
- return table.count(self.getList)
- end
- function this:ItemGetFunc()
- ---@type KLRecycleIncomeItemItem
- local item = GUI:UIPanel_Open("dev/ui/Recover/Item/KLRecycleIncomeItem/KLRecycleIncomeItemItem", self.view.loopscrollviewData, self, nil, true)
-
- self.goodsItem[item.view.root] = item
- return item.view.root
- end
- ---回收获得数据初始化
- function this:ItemInitFunc(realIndex, kmlcontrol)
- end
- ---回收获得数据刷新
- function this:ItemUpdateFunc(realIndex, kmlCtrl)
- local data = self.getList[realIndex + 1]
- ---@type KLRecycleIncomeItemItem
- local goodsItem = self.goodsItem[kmlCtrl]
- goodsItem:RefreshItem(data)
- end
- ---勾选类型变更
- ---@param customData number @cfg_recovery表id
- function this:TypeToggleChange(_, customData, eventData)
- ---刷新勾选装备
- ---设置玩家当前勾选数据
- SL:SetAutoRecoverType(customData, eventData[1], self.cfgNameStr)
- ---发给服务器
- SL:SendPlayerAutoRecoverTypeChange({ customData }, { eventData[1] }, self.cfgNameStr)
- self:RefreshSelect()
- end
- function this:RefreshSelect_Old()
- ---刷新回收所得道具
- self:GetRecoverGetItem()
- ---刷新勾选
- --EventManager.Dispatch(Event.RecoverSelectChange, self.selectItemList)
- SL:onLUAEvent(Event.RecoverSelectChange, self.selectItemList)
- end
- function this:RefreshSelect()
- ---刷新回收所得道具
- self:GetRecoverGetItemMultistage()
- ---刷新勾选
- --EventManager.Dispatch(Event.RecoverSelectChange, self.selectItemList)
- SL:onLUAEvent(Event.RecoverSelectChange, self.selectItemList)
- end
- function this:LUA_EVENT_Item_Recover(id, itemList)
- SL:OpenRewardTipsByItemList(itemList, 0)
- ---刷新回收所得道具
- --self:GetRecoverGetItem()
- ---@type table<number,boolean>
- --self.selectItemList = {}
- --
- --self.selectItemCount = {}
- -----选中道具索引列表
- --self.SelectItemIndexList = {}
- -----@type table<number,{count:number,cfgId:number}>
- --self.getList = {}
-
- --self:ShowGetItemList()
- self:RefreshSelect()
- end
- function this:ShowTips()
- SL:CommonStrTipsMessage({ str = "1.道具回收后将返回对应的资源\n2.道具被回收后将从背包中移除\n3.道具被移除后将无法找回" })
- end
- ---与当前身上穿戴装备比较评分
- ---@param equip CommonProtos.Item
- function this:CompareInitGrage(equip)
- ---@type cfg_item_column
- local itemCfg = SL:GetConfig("cfg_item", equip.cfgId)
- ---@type cfg_equip_entryLib_column
- local entryLib = SL:GetConfig("cfg_equip_entryLib", equip.cfgId)
- local wearBars = SL:GetMetaValue(EMetaVarGetKey.GET_OPEN_WEARBARS)
- local wearBar = itemCfg.wearBarID[1]
- if wearBars and table.count(itemCfg.wearBarID) > 0 then
- for _, v in pairs(itemCfg.wearBarID) do
- if table.contains(wearBars, v) then
- wearBar = v
- break
- end
- end
- end
- local targetGrade
- --如果有多个穿戴位置
- --如果有位置没穿装备则算作该评分大于身上装备评分
- --如果都穿装备了,则与评分最低的装备做比较
- for _, pos in pairs(itemCfg.strPart) do
- local target = SL:GetMetaValue("EQUIP_TARGET_DATA", wearBar, pos)
- if target then
- ---@type cfg_equip_entryLib_column
- local targetEntryLib = SL:GetConfig("cfg_equip_entryLib", target.cfgId)
- if not targetGrade then
- targetGrade = targetEntryLib.replaceRating[2]
- else
- if targetEntryLib.replaceRating[2] < targetGrade then
- targetGrade = targetEntryLib.replaceRating[2]
- end
- end
- else
- targetGrade = -1
- break
- end
- end
- targetGrade = targetGrade or -1
- if entryLib.replaceRating[2] < targetGrade then
- return false
- elseif entryLib.replaceRating[2] == targetGrade then
- return false
- end
- return true
- end
- -- 返回回收类型
- function this:RES_GET_RECYCLING_TYPE(_id,message)
- --SL:LogTable(message,true)
- if message then
- self.recover_data = message
- else
- self.recover_data = {}
- end
- local all_true = {}
- for id,one_list in pairs(self.recover_data) do
- if self.recover_all_item[id] then
- GUI:Toggle_setIsOn(self.recover_all_item[id].view.KmlRecycleTypeItemTemplate, true)
- table.insert(all_true,id)
- end
- end
- for k, v in pairs(self.recover_all_item) do
- if table.contains(all_true,k) then
- else
- GUI:Toggle_setIsOn(v.view.KmlRecycleTypeItemTemplate,false)
- end
- end
- self:RefreshSelect()
- if not self.recoverBagPanel then
- ---显示背包
- self.recoverBagPanel = GUI:UIPanel_Open("dev/ui/Bag/Panel/KLRecoverBag/KLRecoverBagPanel", nil, nil, { x = -415, bagType = EBagShowType.Recycle, itemClickCallBack = self.ClickItemCallBack, selectList = self.selectItemList, callBackUI = self })
- end
- end
- ---勾选类型变更 一级页签
- ---@param customData number @cfg_recovery表id
- function this:ToggleChange(_, customData, eventData)
- if not self.recover_data then
- return
- end
- local key_str = tostring(customData)
- if not self.recover_data then
- self.recover_data = {}
- end
- if not self.recover_data[key_str] then
- if not eventData[1] then
- return
- end
- self.recover_data[key_str] = {}
- -- 一级页签直接勾选的时候,二级页签全部选中
- local _typeList = {}
- local index = 1
- for ii, one in ipairs(self.cfg_recovery_screen) do
- if one.groupLevel == customData then
- _typeList[tostring(index)] = one.id
- index = index + 1
- end
- end
- self.recover_data[key_str] = _typeList
- SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_SETTING_RECYCLING_TYPE,self.recover_data)
- else
- if eventData[1] then
- return
- end
- self.recover_data[key_str] = nil
- -- 一级页签直接取消的时候,二级页签取消
- SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_SETTING_RECYCLING_TYPE,self.recover_data)
- end
-
- end
- function this:RES_RECOVERY_REWARD(_id,message)
- if message then
- self:RefreshSelect()
- end
- end
- return this
|