| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231 |
- local UIPrivilegeCardTipsView = require("UIRuneShop/UIPrivilegeCardTipsView_Generate")
- local ConditionJudge = require("Common/ConditionJudge")
- function UIPrivilegeCardTipsView:OnAwake(data)
- self.controller = require("UIRuneShop/UIPrivilegeCardTipsCtr"):new()
- self.controller:Init(self)
- self.controller:SetData(data)
- end
- function UIPrivilegeCardTipsView:AddEventListener()
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.RUNE_SHOP_DATA_CHANGED, self, self.OnRuneShopDataChanged)
- end
- function UIPrivilegeCardTipsView: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 UIPrivilegeCardTipsView:Init()
- self.controller:InitData()
- self.privilegeCardItem.privilegeScrollView.loopListView:InitListView(0, function (loopListView, itemIdx)
- return self:GetItemByIndexPrivilege(loopListView, itemIdx)
- end, nil, nil)
- self.privilegeCardItem.rewardScrollView.loopGridView:InitGridView(0, function (loopGridView, itemIdx, row, column)
- return self:GetItemByRowColumnPrivilege(loopGridView, itemIdx, row, column)
- end, nil, nil)
- self.privilegeCardItem.privilegeScrollView.loopListView.ScrollRect.enabled = false
- self.privilegeCardItem.rewardScrollView.loopGridView.ScrollRect.enabled = false
- local id = self.controller:GetCfgId()
- local cfgData = ManagerContainer.CfgMgr:GetPrivilegeCardCfgByLv(id)
- if not cfgData then
- self.privilegeCardItem:SetActive(false)
- return
- end
- local privilegeCardItem = self.privilegeCardItem
- privilegeCardItem.privilegeLv1:SetActive(id == 1)
- privilegeCardItem.privilegeLv2:SetActive(id == 2)
- local buyRewards = cfgData.BuyReward
- if buyRewards then
- local buyReward = buyRewards[1]
- if buyReward then
- self:RefreshCurrenyItem(privilegeCardItem.buyReward1, buyReward[1], buyReward[2], true)
- else
- self:RefreshCurrenyItem(privilegeCardItem.buyReward1)
- end
- buyReward = buyRewards[2]
- if buyReward then
- self:RefreshCurrenyItem(privilegeCardItem.buyReward2, buyReward[1], buyReward[2], true)
- else
- self:RefreshCurrenyItem(privilegeCardItem.buyReward2)
- end
- else
- self:RefreshCurrenyItem(privilegeCardItem.buyReward1)
- self:RefreshCurrenyItem(privilegeCardItem.buyReward2)
- end
- privilegeCardItem.presentPrice.number.text.text = tostring(cfgData.RMB)
- privilegeCardItem.privilegeScrollView.loopListView:SetListItemCount(0, true)
- self.privilegeUnlockDess = cfgData.UnlockDes
- if self.privilegeUnlockDess then
- privilegeCardItem.privilegeScrollView.loopListView:SetListItemCount(#self.privilegeUnlockDess, true)
- end
- privilegeCardItem.rewardScrollView.loopGridView:SetListItemCount(0, true)
- self.privilegeRewards = nil
- if cfgData.Reward then
- self.privilegeRewards = {}
- for i = 1, #cfgData.Reward do
- local reward = cfgData.Reward[i]
- self.privilegeRewards[#self.privilegeRewards+1] = {cfgId = reward[1], num = reward[2]}
- end
- end
- if self.privilegeRewards then
- privilegeCardItem.rewardScrollView.loopGridView:SetListItemCount(#self.privilegeRewards, true)
- end
- self.uiBase:AddButtonUniqueEventListener(privilegeCardItem.presentPrice.button, self, self.OnClickPresentPriceBtn)
- if cfgData.UnlockCond then
- local result, _, content = ConditionJudge:ConditionPassResult1(cfgData.UnlockCond)
- if not result then
- privilegeCardItem.privilegeCardLock:SetActive(true)
- privilegeCardItem.privilegeCardLock.textDsc.text.text = tostring(content)
- return
- end
- end
- privilegeCardItem.privilegeCardLock:SetActive(false)
- end
- function UIPrivilegeCardTipsView:RemoveEventListener()
- ManagerContainer.LuaEventMgr:Unregister(self.uiData.name)
- end
- function UIPrivilegeCardTipsView:AddUIEventListener()
- self.uiBase:AddButtonUniqueEventListener(self.btnClose.button, self, self.OnClickCloseBtn)
- end
- function UIPrivilegeCardTipsView:OnHide()
- end
- function UIPrivilegeCardTipsView:OnShow(data)
- self.controller:SetData(data)
- end
- function UIPrivilegeCardTipsView:OnClose()
- end
- function UIPrivilegeCardTipsView:OnDispose()
- self.privilegeUnlockDess = nil
- self.privilegeRewards = nil
- self.privilegeCardItem.privilegeScrollView.loopListView:Dispose()
- self.privilegeCardItem.rewardScrollView.loopGridView:Dispose()
- self.controller:OnDispose()
- end
- function UIPrivilegeCardTipsView:OnPageInEnd()
- self.super:OnPageInEnd()
- self.privilegeCardItem.privilegeScrollView.loopListView.ScrollRect.enabled = true
- self.privilegeCardItem.rewardScrollView.loopGridView.ScrollRect.enabled = true
- end
- function UIPrivilegeCardTipsView:OnClickCloseBtn()
- self:UIClose()
- end
- function UIPrivilegeCardTipsView:OnClickPresentPriceBtn()
- local id = self.controller:GetCfgId()
- local cfgData = ManagerContainer.CfgMgr:GetPrivilegeCardCfgByLv(id)
- if not cfgData then
- ManagerContainer.LuaUIMgr:ErrorNoticeDisplay('PayError_ValidPay')
- self:UIClose()
- return
- end
- if cfgData.UnlockCond then
- local result, _, content = ConditionJudge:ConditionPassResult1(cfgData.UnlockCond)
- if not result then
- ManagerContainer.LuaUIMgr:ErrorNoticeDisplay(content)
- self:UIClose()
- return
- end
- end
- local errorCodeKey = self.controller:SendPay(id)
- if not errorCodeKey then
- ManagerContainer.LuaUIMgr:ErrorNoticeDisplay(errorCodeKey)
- end
- self:UIClose()
- end
- function UIPrivilegeCardTipsView:OnRuneShopDataChanged(runeShopType, runeShopSubType)
- if runeShopType ~= Enum.RuneShopType.Gifts then return end
- if runeShopSubType ~= Enum.RuneShopSubType.ROCoin then return end
- if self.controller:IsValidData() then
- return
- end
- self:UIClose()
- end
- function UIPrivilegeCardTipsView:GetItemByIndexPrivilege(loopListView, itemIdx)
- local unlockDess = self.privilegeUnlockDess
- if not unlockDess then
- return nil
- end
- local unlockDes = unlockDess[itemIdx + 1]
- if not unlockDes then
- return nil
- end
- local item = loopListView:NewListViewItem('EntryUnlockDscItem')
- local itemLua = CommonUtil.BindGridViewItem2Lua(self, 'EntryUnlockDscItem', item.gameObject)
- if itemLua then
- local idx = unlockDes[1] or 0
- itemLua.icon.uIImageSwitchSprite:ChangeSprite(idx)
- local params = {}
- local langKey = unlockDes[2]
- for i = 3, #unlockDes do
- params[#params + 1] = tostring(unlockDes[i])
- end
- itemLua.desTxt.text.text = string.formatbykey(langKey, unpack(params))
- end
- ManagerContainer.LuaUIMgr:ForceRebuildLayoutImmediate(item.CachedRectTransform)
- return item
- end
- function UIPrivilegeCardTipsView:GetItemByRowColumnPrivilege(loopGridView, itemIdx, row, column)
- if not self.privilegeRewards then
- return nil
- end
- local reward = self.privilegeRewards[itemIdx + 1]
- if not reward then
- return nil
- end
- local item = loopGridView:NewListViewItem('Item')
- local iconItem = item.transform:Find('IconItem')
- local itemLua = CommonUtil.BindGridViewItem2Lua(self, 'IconItem', iconItem.gameObject)
- CommonUtil.UpdateItemPrefab(self, itemLua, reward, nil, self, self.ShowItemTips, reward)
- return item
- end
- function UIPrivilegeCardTipsView:RefreshCurrenyItem(itemLua, itemCfgId, itemNum, ignoreIcon)
- if not itemCfgId or not itemNum then
- itemLua:SetActive(false)
- return
- end
- itemLua.number.text.text = CommonUtil.FormatNumber(itemNum)
- itemLua:SetActive(true)
- if ignoreIcon then return end
- itemLua.icon.image.sprite = nil
- itemLua.icon.image.enabled = false
- local itemCfgData = ManagerContainer.CfgMgr:GetItemById(itemCfgId)
- if itemCfgData then
- CommonUtil.LoadIcon(self, itemCfgData.MiniIcon, function(sprite)
- if sprite then
- itemLua.icon.image.sprite = sprite
- itemLua.icon.image.enabled = true
- end
- end)
- end
- end
- return UIPrivilegeCardTipsView
|