| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599 |
- local UIActivityChipRewardPetExchangeView = require("UIActivity/UIActivityChipRewardPetExchangeView_Generate")
- local IconPetItemCtr = require("Common/IconPetItemCtr")
- local IconItemCtr = require("Common/IconItemCtr")
- function UIActivityChipRewardPetExchangeView:OnAwake(data)
- self.controller = require("UIActivity/UIActivityChipRewardPetExchangeCtr"):new()
- self.controller:Init(self)
- self.controller:SetData(data)
- end
- function UIActivityChipRewardPetExchangeView:AddEventListener()
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.EID_Activity_Data_Change,self,self.ActivityRefresh)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.ACTIVITY_GLOBAL_REFRESH,self,self.Refresh)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.EXCHANGEPET_NTF,self,self.OnPetRewardBack)
- end
- function UIActivityChipRewardPetExchangeView:FillContent(data, uiBase)
- self.uiBase = uiBase
- local gameObject = self.uiBase:GetRoot()
- if gameObject ~= nil then
- self.gameObject = gameObject
- self.transform = gameObject.transform
- end
- self:InitGenerate(self.transform, data)
- self:Init()
- end
- function UIActivityChipRewardPetExchangeView:Init()
- self.isCanExchange = true
- self.controller:RefreshChipDatas()
- local activeItem = self.controller.activityData
- CommonUtil.LoadIcon(self, activeItem.pageBg, function (sprite)
- self.banner.image.sprite = sprite
- end)
- self.selectList = {}
- self.cacheNumList = {}
- self:InitGrid()
- self:Refresh()
- if not self.timer then
- self.timer = FrameTimer.New(slot(self.DelayInitTop, self), 1)
- end
- if not self.timer.running then
- self.timer:Start()
- end
- end
- function UIActivityChipRewardPetExchangeView:DelayInitTop()
- self:InitTop()
- end
- function UIActivityChipRewardPetExchangeView:OnPetRewardBack(data)
- if data.error == 0 then
- local itemIndex = self.controller:GetIndexByCfgId(data.reward_idx) - 1
- local itemlua = self:GetShowItemByIdx(itemIndex)
- if itemlua then
- for i = 1, 4 do
- if self.cacheNumList[itemIndex][i] and self.selectList[itemIndex][i]then
- self.cacheNumList[itemIndex][i].selectCount = 0
- self.selectList[itemIndex][i] = {}
- end
- end
- self:Refresh()
- end
- end
- self.isCanExchange = true
- end
- function UIActivityChipRewardPetExchangeView:InitTop()
- if not self.updateTimer then
- self.updateTimer = Timer.New(slot(self.UpdateMinute, self), 60, -1)
- end
- if not self.updateTimer.running then
- self.updateTimer:Start()
- end
- local canOpen = self:RefreshRemainTime()
- if canOpen then
- local activeItem = self.controller.activityData
- ManagerContainer.DataMgr.ActsDataMgr:SendGetGlobalCollectionServerData(activeItem.actId)
- end
- end
- function UIActivityChipRewardPetExchangeView:RefreshRemainTime()
- local leftTime = self.controller:GetRemainTime()
- if leftTime <= 0 then
- self.time.text.text = "0"
- ManagerContainer.DataMgr.ActsDataMgr:RefreshRedPointState(Enum.ActivityType.ACTIVITY_TYPE_FESTIVAL_REWARD)
- self:OnClickCloseBtn()
- return false
- end
- local day,hour,minute,second = ConvertTimeForm(leftTime)
- local timeStr = ""
- if day > 0 then
- timeStr = day .. Enum.TimeString.m..hour .. Enum.TimeString.h .. minute .. Enum.TimeString.m
- else
- if hour > 0 then
- timeStr = hour .. Enum.TimeString.h .. minute .. Enum.TimeString.m
- else
- if minute == 0 then
- minute = 1
- end
- timeStr = minute .. Enum.TimeString.m
- end
- end
- self.time.text.text = timeStr
- return true
- end
- function UIActivityChipRewardPetExchangeView:UpdateMinute()
- self:RefreshRemainTime()
- end
- function UIActivityChipRewardPetExchangeView:InitGrid()
- self.boxExchange.loopListView:InitListView(0, function(gridView, itemIndex, row, column)
- return self:GetItemByRowColumn(gridView, itemIndex, row, column)
- end, nil)
- end
- function UIActivityChipRewardPetExchangeView:ActivityRefresh(actid)
- if self.controller:GetActId() == actid then
- self:Refresh()
- end
- end
- function UIActivityChipRewardPetExchangeView:Refresh()
- local loopListView = self.boxExchange.loopListView
- local length = self.controller:GetChipDataLength()
- loopListView:SetListItemCount(length)
- loopListView:RefreshAllShownItem()
- end
- function UIActivityChipRewardPetExchangeView:GetItemByRowColumn(gridView, itemIndex, row, column)
- local length = self.controller:GetChipDataLength()
- if (itemIndex < 0 or itemIndex >= length) then
- return nil
- end
- if not self.cacheNumList[itemIndex] then
- self.cacheNumList[itemIndex] = {}
- end
- local showData = self.controller:GetChipShowDataByIdx(itemIndex)
- local cfgData = ManagerContainer.CfgMgr:GetActivitiesPetExchangeCfgById(showData.cfgId)
- local enterType = cfgData.Type
- local item = gridView:NewListViewItem("PetExchangeItem")
- local itemlua = CommonUtil.BindGridViewItem2Lua(self, "PetExchangeItem", item.gameObject)
- for i = 1, 4 do
- itemlua["coastItem"..(i-1)]:SetActive(false)
- end
- local globalCount = self.controller:GetGlobalCount(showData.cfgId)
- local globalLack = (globalCount >= cfgData.ServersReward and cfgData.ServersReward > 0)
- if cfgData.ExchangeCondition1 then
- for i = 1, #cfgData.ExchangeCondition1 do
- local condition = cfgData.ExchangeCondition1[i]
- --两种类型 两种条件结构
- local maxCount = enterType == 0 and condition[5] or condition[4]
- local index = condition[1]
- if not self.cacheNumList[itemIndex][index] then
- self.cacheNumList[itemIndex][index] = {}
- self.cacheNumList[itemIndex][index].selectCount = 0
- self.cacheNumList[itemIndex][index].maxCount = maxCount
- end
- local costItemLua = itemlua["coastItem"..(index-1)]
- self:RefeChipItem(enterType == 0 and costItemLua.iconPetItem or costItemLua.iconItem,condition,{itemIndex,index},globalLack,enterType,costItemLua.addMask)
- costItemLua.iconPetItem:SetActive(enterType == 0)
- costItemLua.iconItem:SetActive(enterType ~= 0)
- costItemLua:SetActive(true)
- itemlua["text"..(index)].text.text = I18N.SetLanguageValue(self:GetColorText(self.cacheNumList[itemIndex][index].selectCount,maxCount))
- end
- end
- if cfgData.ExchangeCondition2 then
- for i = 1, #cfgData.ExchangeCondition2 do
- local condition = cfgData.ExchangeCondition2[i]
- --两种类型 两种条件结构
- local maxCount = enterType == 0 and condition[5] or condition[4]
- local index = condition[1]
- if not self.cacheNumList[itemIndex][index] then
- self.cacheNumList[itemIndex][index] = {}
- self.cacheNumList[itemIndex][index].selectCount = 0
- self.cacheNumList[itemIndex][index].maxCount = maxCount
- end
- if enterType ~= 0 and not (cfgData and cfgData.Scope and cfgData.Scope[i]) then
- LogError("策划需检查配置,筛选表与条件数量不一致")
- return
- end
- local data = enterType == 0 and condition or {cfgData.Scope[i],condition[2],condition[3],condition[4],condition[5]}
- local costItemLua = itemlua["coastItem"..(index-1)]
- self:RefeChipItem(enterType == 0 and costItemLua.iconPetItem or costItemLua.iconItem,data,{itemIndex,index},globalLack,enterType,costItemLua.addMask,true)
- costItemLua.iconPetItem:SetActive(enterType == 0)
- costItemLua.iconItem:SetActive(enterType ~= 0)
- costItemLua:SetActive(true)
- itemlua["text"..(index)].text.text = I18N.SetLanguageValue(self:GetColorText(self.cacheNumList[itemIndex][index].selectCount,maxCount))
- end
- end
- itemlua.serverLimit:SetActive(cfgData.ServersReward > 0)
- local count1 = cfgData.ExchangeCondition1 and #cfgData.ExchangeCondition1 or 0
- local count2 = cfgData.ExchangeCondition2 and #cfgData.ExchangeCondition2 or 0
- itemlua.coast.scrollRect.enabled = count1 + count2 > 4
- if cfgData.ServersReward > 0 then
- local remain = cfgData.ServersReward - globalCount
- itemlua.green:SetActive(remain > 0)
- itemlua.red:SetActive(remain == 0)
- itemlua.number.text.text = remain.."/"..cfgData.ServersReward
- end
- local remainTimes = cfgData.Number - showData.rewardNum
-
- itemlua.numberReward.text.text = remainTimes
- itemlua.mask:SetActive(showData.rewardNum >= cfgData.Number)
- self:RefeRewardItem(itemlua.reward.iconItem ,cfgData.Reward,enterType)
- local isCanExchange = self:GetItemIsCanExchange(itemIndex)
- itemlua.button.button.interactable = isCanExchange
- CommonUtil.SetTotalChildrenGray(itemlua.button.gameObject, not isCanExchange)
- itemlua.uIRedPointRP:SetActive(isCanExchange and cfgData.Number > showData.rewardNum and ((globalCount < cfgData.ServersReward and cfgData.ServersReward > 0) or cfgData.ServersReward == 0))
- self.uiBase:AddButtonUniqueEventListener(itemlua.button.button, self, self.OnChipClick, itemIndex, isCanExchange, globalLack)
- return item
- end
- function UIActivityChipRewardPetExchangeView:GetItemIsCanExchange(itemIndex)
- if self.cacheNumList[itemIndex] then
- for k, v in pairs(self.cacheNumList[itemIndex]) do
- if v.selectCount < v.maxCount then
- return false
- end
- end
- end
- return true
- end
- function UIActivityChipRewardPetExchangeView:GetColorText(num,maxNum)
- if num < maxNum then
- return "<color=red>"..num.."</color>/"..maxNum
- else
- return "<color=green>"..num.."</color>/"..maxNum
- end
- end
- function UIActivityChipRewardPetExchangeView:RefeRewardItem(itemlua,data,enterType)
- local cfgId = data[1][1]
- local num = data[1][2]
- local cfgData = ManagerContainer.CfgMgr:GetPetDataById(cfgId)
- local rewarddata = { cfgId = cfgId, num = num}
- local logicData = {cfgId = cfgId,num = num,data = rewarddata,enterType = enterType}
- IconItemCtr:SetData(self,itemlua, logicData, nil, self, self.OnRewardItemClick)
- end
- function UIActivityChipRewardPetExchangeView:RefeChipItem(itemlua,data,indexInfo,globalLack,enterType,addMask,isByQulity)
- local itemIndex = indexInfo[1]
- local index = indexInfo[2]
- if enterType == 0 then --宠物兑换
- local target = data[2]
- local level = data[3]
- local skilllv = data[4]
- local num = data[5]
- local hasNum
- local petDataList = {}
- if isByQulity then
- local Icon
- local frameIcon = Constant.Quality_HeadFrame_Icons[target + 1]
- local natureIcon = "Jobs/Jobicon_Unknown"
- if target == 2 then
- Icon = "Pets/item_petuniversal_mini"
- elseif target == 3 then
- Icon = "Pets/item_petuniversal_mvp"
- end
- CommonUtil.LoadIcon(self, Icon, function (sprite)
- itemlua.icon.image.sprite = sprite
- end)
- CommonUtil.LoadIcon(self,frameIcon , function (sprite)
- itemlua.frame.image.sprite = sprite
- end)
- CommonUtil.LoadIcon(self,natureIcon , function (sprite)
- itemlua.nature.image.sprite = sprite
- end)
- itemlua.nature:SetActive(true)
- local starFrame
- if skilllv > 0 then
- starFrame = Constant.PetSkillLvStar_Icons[1]
- elseif skilllv > 10 then
- starFrame = Constant.PetSkillLvStar_Icons[2]
- elseif skilllv > 20 then
- starFrame = Constant.PetSkillLvStar_Icons[3]
- end
- hasNum = ManagerContainer.DataMgr.PetDataMgr:GetPetCountByQulityAndLv(target,level,skilllv)
- CommonUtil.LoadIcon(self, starFrame, function (sprite)
- itemlua.star.image.sprite = sprite
- end)
- itemlua.star:SetActive(true)
- itemlua.star.advenceLv.text.text = skilllv
- itemlua.num.text.text = I18N.SetLanguageValue("Lv."..level)
- itemlua.support:SetActive(false)
- itemlua.relation:SetActive(false)
- itemlua.battle:SetActive(false)
-
- local parms = {data = data,isByQulity = isByQulity,indexInfo = indexInfo,globalLack = globalLack,enterType = enterType}
- self.uiBase:AddButtonUniqueEventListener(itemlua.bg.button, self, self.OnItemClick,parms)
- else
- hasNum = ManagerContainer.DataMgr.PetDataMgr:GetPetCountByIdAndLv(target,level,skilllv)
- local logicData = {cfgId = target,level = level, skilllv = skilllv,data = data,isByQulity = isByQulity,indexInfo = indexInfo,globalLack = globalLack,enterType = enterType}
- IconPetItemCtr:SetData(self,itemlua, logicData, Enum.ItemIEnterType.PetMats, self, self.OnItemClick)
- end
- CommonUtil.SetTotalChildrenGray(itemlua.gameObject, hasNum == 0 or globalLack)
- local isSelect = self.cacheNumList[itemIndex][index].selectCount == self.cacheNumList[itemIndex][index].maxCount
- addMask:SetActive(not isSelect and hasNum > 0 and not globalLack)
- elseif enterType == 1 then
- local itemType = data[2]
- local num = data[4]
- local hasNum = 0
- if isByQulity then
- local needLv = data[3]
- local filtrList = data[1]
- local target = data[5]
- for i = 1, #filtrList do
- hasNum = hasNum + CommonUtil.GetOwnResCountByItemId(filtrList[i])
- end
- local Icon
- local levelIcon = Constant.Quality_Equip_LV_Icons[needLv]
- local frameIcon = Constant.Quality_HeadFrame_Icons[target + 1]
- local cardLableIcon = Constant.Quality_CardType_Icons[target]
- if target == 2 then
- Icon = "Card_ic/card_carduniversal_mini"
- elseif target == 3 then
- Icon = "Card_ic/card_carduniversal_mvp"
- end
- itemlua.level:SetActive(true)
- CommonUtil.LoadIcon(self, levelIcon, function (sprite)
- itemlua.level.image.sprite = sprite
- end)
- CommonUtil.LoadIcon(self, Icon, function (sprite)
- itemlua.icon.image.sprite = sprite
- end)
- CommonUtil.LoadIcon(self,frameIcon , function (sprite)
- itemlua.frame.image.sprite = sprite
- end)
- CommonUtil.LoadIcon(self, cardLableIcon, function (sprite)
- itemlua.cardLabel.image.sprite = sprite
- end)
- itemlua.cardLabel:SetActive(true)
- itemlua.job:SetActive(false)
- itemlua.num:SetActive(false)
- itemlua.conertips:SetActive(false)
- local parms = {data = data,isByQulity = isByQulity,indexInfo = indexInfo,globalLack = globalLack,enterType = enterType}
- self.uiBase:AddButtonUniqueEventListener(itemlua.bg.button, self, self.OnItemClick,parms)
- else
- local itemId = data[3]
- hasNum = CommonUtil.GetOwnResCountByItemId(itemId)
- local logicData = {cfgId = itemId,data = data,isByQulity = isByQulity,indexInfo = indexInfo,globalLack = globalLack,enterType = enterType}
- IconItemCtr:SetData(self,itemlua, logicData, nil, self, self.OnItemClick)
- end
- CommonUtil.SetTotalChildrenGray(itemlua.gameObject, hasNum == 0 or globalLack)
- local isSelect = self.cacheNumList[itemIndex][index].selectCount == self.cacheNumList[itemIndex][index].maxCount
- addMask:SetActive(not isSelect and hasNum > 0 and not globalLack)
- end
- end
- function UIActivityChipRewardPetExchangeView:OnRewardItemClick(button,params)
- ManagerContainer.LuaUIMgr:OpenTips(params[0].data)
- end
- function UIActivityChipRewardPetExchangeView:RemoveEventListener()
- ManagerContainer.LuaEventMgr:Unregister(self.uiData.name)
- end
- function UIActivityChipRewardPetExchangeView:AddUIEventListener()
- self.uiBase:AddButtonEventListener(self.AnyBtn.button,self, self.OnClickCloseBtn)
- self.uiBase:AddButtonEventListener(self.backBtn.button,self, self.OnClickCloseBtn)
- self.uiBase:AddButtonEventListener(self.btnInfo.button, self, self.OnClickPlayRuleBtn)
- end
- function UIActivityChipRewardPetExchangeView:OnClickPlayRuleBtn()
- local rulekey = self.controller:GetRuleKey()
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIPlayRule, {'PlayExplainTitle', rulekey})
- end
- function UIActivityChipRewardPetExchangeView:OnClickCloseBtn()
- ManagerContainer.LuaUIMgr:ClosePage(self.uiBase.PageId)
- if self.uiBase.MSourceUIID > 0 then
- ManagerContainer.LuaUIMgr:Open(self.uiBase.MSourceUIID)
- end
- end
- function UIActivityChipRewardPetExchangeView:OnChipClick(button, params)
- local leftTime = self.controller:GetRemainTime()
- if leftTime <= 0 then
- ManagerContainer.LuaUIMgr:ErrorNoticeDisplay("SetsWordActivity02")
- return
- end
- if not self.isCanExchange then
- return
- end
- if params[2] then
- ManagerContainer.LuaUIMgr:ErrorNoticeDisplay("SetsWordActivity05")
- return
- end
- self.curridx = params[0]
- ManagerContainer.LuaUIMgr:ShowMessageBox("PetExchangetips",nil,nil,self,self.ItemClick1Sure,nil)
- end
- function UIActivityChipRewardPetExchangeView:OnHide()
- end
- function UIActivityChipRewardPetExchangeView:OnShow(data)
- self.controller:SetData(data)
- end
- function UIActivityChipRewardPetExchangeView:ItemClick1Sure()
- local data = {}
- for k, v in pairs(self.selectList[self.curridx]) do
- local cfgList={}
- for key, value in pairs(v) do
- cfgList[#cfgList + 1] = {key = key,value = value}
- end
- local info = {condition_id = k, cost_item = cfgList}
- data[#data + 1] = info
- end
- local showData = self.controller:GetChipShowDataByIdx(self.curridx)
- local cfgData = ManagerContainer.CfgMgr:GetActivitiesPetExchangeCfgById(showData.cfgId)
- self.controller:SendGetActivityRewardReq(cfgData.Id,data)
- self.isCanExchange = false
- end
- function UIActivityChipRewardPetExchangeView:OnItemClick(button,params)
- if not self.isCanExchange then
- return
- end
- local data = params[0]
- local enterType = data.enterType
- if data.enterType == 0 then --宠物兑换
- local petDataList
- local target = data.data[2]
- local level = data.data[3]
- local skilllv = data.data[4]
- local num = data.data[5]
- if data.isByQulity then --是否是按品质任意选择
- petDataList = ManagerContainer.DataMgr.PetDataMgr:GetPetDataByQulityAndLv(target,level,skilllv)
- else
- petDataList = ManagerContainer.DataMgr.PetDataMgr:GetPetDataByIdAndLv(target,level,skilllv)
- end
- local itemIndex = data.indexInfo[1]
- local Index = data.indexInfo[2]
- if not self.selectList[itemIndex] then
- self.selectList[itemIndex] = {}
- end
- if not self.selectList[itemIndex][Index] then
- self.selectList[itemIndex][Index] = {}
- end
- local otherSelectList = {}
- for key, value in pairs(self.selectList) do
- for k, v in pairs(value) do
- for i, j in pairs(v) do
- if not(itemIndex == key and Index == k) then
- otherSelectList[i] = j
- end
- end
- end
- end
- local selectInfo = {selectList =self.selectList[itemIndex][Index],selectCount = self.cacheNumList[itemIndex][Index].selectCount,indexInfo = data.indexInfo,otherSelectList = otherSelectList,conditions = {target,level,skilllv,num,data.isByQulity},enterType = enterType}
- local params = {list = petDataList,callback = {self,self.OnSelectCom},selectInfo = selectInfo,enterType = enterType}
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIPetExchangeMats,params)
- elseif data.enterType == 1 then --宠物以外兑换
- local showList
- local itemType = data.data[2]
- local itemId = data.data[3]
- local filtrList = data.data[1]
- local num = data.data[4]
- local quality
- if data.isByQulity then
- quality = data.data[5]
- showList = self.controller:GetShowListByItemTypeAndFiltrList(itemType,filtrList)
- else
- showList = self.controller:GetShowListByItemTypeAndId(itemType,itemId)
- end
- local itemIndex = data.indexInfo[1]
- local Index = data.indexInfo[2]
- if not self.selectList[itemIndex] then
- self.selectList[itemIndex] = {}
- end
- if not self.selectList[itemIndex][Index] then
- self.selectList[itemIndex][Index] = {}
- end
- local otherSelectList = {}
- for key, value in pairs(self.selectList) do
- for k, v in pairs(value) do
- for i, j in pairs(v) do
- if not(itemIndex == key and Index == k) then
- otherSelectList[i] = j
- end
- end
- end
- end
- local selectInfo = {selectList =self.selectList[itemIndex][Index],selectCount = self.cacheNumList[itemIndex][Index].selectCount,indexInfo = data.indexInfo,otherSelectList = otherSelectList,conditions = {itemType,itemId,filtrList,num,data.isByQulity,quality},enterType = enterType}
- local params = {list = showList,callback = {self,self.OnSelectCom},selectInfo = selectInfo,enterType = enterType}
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIPetExchangeMats,params)
- end
- end
- function UIActivityChipRewardPetExchangeView:OnSelectCom(data)
- local selectInfo = data
- local enterType = data.enterType
- local itemIndex = data.indexInfo[1]
- local index = data.indexInfo[2]
- local itemlua = self:GetShowItemByIdx(itemIndex)
- if itemlua then
- self.cacheNumList[itemIndex][index].selectCount = data.selectCount
- local hasNum = 0
- if enterType == 0 then
- if data.conditions[5] then
- hasNum = ManagerContainer.DataMgr.PetDataMgr:GetPetCountByQulityAndLv(data.conditions[1],data.conditions[2],data.conditions[3])
- else
- hasNum = ManagerContainer.DataMgr.PetDataMgr:GetPetCountByIdAndLv(data.conditions[1],data.conditions[2],data.conditions[3])
- end
- elseif enterType == 1 then
- if data.conditions[5] then
- local filtrList = data.conditions[3]
- for i = 1, #filtrList do
- hasNum = hasNum + CommonUtil.GetOwnResCountByItemId(filtrList[i])
- end
- else
- hasNum = CommonUtil.GetOwnResCountByItemId(data.conditions[2])
- end
- end
- itemlua["coastItem"..(index - 1)].addMask:SetActive(data.selectCount < data.maxNum and hasNum and hasNum >0)
- itemlua["text"..(index)].text.text = I18N.SetLanguageValue(self:GetColorText(self.cacheNumList[itemIndex][index].selectCount,data.maxNum))
- self:CheckSelectIdIsExist(data.selectList,itemIndex,index)
- local isCanExchange = self:GetItemIsCanExchange(itemIndex)
- local showData = self.controller:GetChipShowDataByIdx(itemIndex)
- local cfgData = ManagerContainer.CfgMgr:GetActivitiesPetExchangeCfgById(showData.cfgId)
- local globalCount = self.controller:GetGlobalCount(showData.cfgId)
- local globalLack = (globalCount >= cfgData.ServersReward and cfgData.ServersReward > 0)
- itemlua.button.button.interactable = isCanExchange
- CommonUtil.SetTotalChildrenGray(itemlua.button.gameObject, not isCanExchange)
- itemlua.uIRedPointRP:SetActive(isCanExchange and cfgData.Number > showData.rewardNum and ((globalCount < cfgData.ServersReward and cfgData.ServersReward > 0) or cfgData.ServersReward == 0))
- end
- end
- function UIActivityChipRewardPetExchangeView:CheckSelectIdIsExist(list,itemIndex,index)
- for _, p in pairs(list) do
- for key, value in pairs(self.selectList) do
- for k, v in pairs(value) do
- for i, j in pairs(v) do
- if itemIndex == key and index == k then
- break
- end
- if i == _ then
- self:RefeItemLuaData(key,k,i,j)
- end
- end
- end
- end
- end
- end
- function UIActivityChipRewardPetExchangeView:RefeItemLuaData(itemIndex,index,id,num)
- local itemlua = self:GetShowItemByIdx(itemIndex)
- if itemlua then
- local count = self.cacheNumList[itemIndex][index].selectCount
- count = count - num
- itemlua["coastItem"..(index - 1)].addMask:SetActive(count < self.cacheNumList[itemIndex][index].maxCount)
- itemlua["text"..(index)].text.text = I18N.SetLanguageValue(self:GetColorText(count,self.cacheNumList[itemIndex][index].maxCount))
- self.cacheNumList[itemIndex][index].selectCount = count
- self.selectList[itemIndex][index][id] = nil
- local isCanExchange = self:GetItemIsCanExchange(itemIndex)
- local showData = self.controller:GetChipShowDataByIdx(itemIndex)
- local cfgData = ManagerContainer.CfgMgr:GetActivitiesPetExchangeCfgById(showData.cfgId)
- local globalCount = self.controller:GetGlobalCount(showData.cfgId)
- local globalLack = (globalCount >= cfgData.ServersReward and cfgData.ServersReward > 0)
- itemlua.button.button.interactable = isCanExchange
- CommonUtil.SetTotalChildrenGray(itemlua.button.gameObject, not isCanExchange)
- itemlua.uIRedPointRP:SetActive(isCanExchange and cfgData.Number > showData.rewardNum and ((globalCount < cfgData.ServersReward and cfgData.ServersReward > 0) or cfgData.ServersReward == 0))
- end
- end
- function UIActivityChipRewardPetExchangeView:GetShowItemByIdx(idx)
- local item = self.boxExchange.loopListView:GetShownItemByItemIndex(idx)
- if item then
- local itemlua = CommonUtil.GetBindGridViewItem2Lua(self, "PetExchangeItem", item.gameObject)
- return itemlua
- end
- end
- function UIActivityChipRewardPetExchangeView:OnClose()
- ManagerContainer.LuaUIMgr:ClosePage(Enum.UIPageName.UINoticeTips)
- if self.timer then
- self.timer:Stop()
- self.timer = nil
- end
- if self.updateTimer then
- self.updateTimer:Stop()
- self.updateTimer = nil
- end
- self.selectList = {}
- self.cacheNumList = {}
- self.selectList = nil
- self.cacheNumList = nil
- end
- function UIActivityChipRewardPetExchangeView:OnDispose()
- self.boxExchange.loopListView:Dispose()
- self.controller:OnDispose()
- end
- return UIActivityChipRewardPetExchangeView
|