| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200 |
- local UIItemTipsView = require("UIItemTips/UIItemTipsView_Generate")
- function UIItemTipsView:OnAwake(data)
- self.controller = require("UIItemTips/UIItemTipsCtr"):new()
- self.controller:Init(self)
- self.controller:SetData(data)
- end
- function UIItemTipsView:AddEventListener()
- self.uiBase:AddUIEventHandlerClickListener(self.uIEventHandler, function (go)
- if go and go.transform:IsChildOf(self.transform) then
- return
- end
- ManagerContainer.LuaUIMgr:Hide(self.uiData.id)
- end)
- end
- function UIItemTipsView: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 UIItemTipsView:Init()
- local isOpenFunc = self.controller:IsOpenFuncBtn()
- local cfgId = self.controller:GetCfgId()
- local itemCfgData = ManagerContainer.CfgMgr:GetItemById(cfgId)
- -- 道具图标
- ManagerContainer.GoPoolMgr:SpawnItemGo(itemCfgData.ResType, function(itemlua)
- CommonUtil.BatchCreateItems(self, itemlua, self.contentItem.transform, self.controller:GetExtData() or self.controller.data, Enum.ItemIEnterType.ItemTips)
- end)
- -- 道具名称
- self.textName.text.text = itemCfgData.Name
- -- 道具类型
- self.textType.uILocalizeScript:SetContent("ItemTypeDes_" .. itemCfgData.ResType)
- -- 道具描述
- self.desTxt.text.text = itemCfgData.Describe
- if itemCfgData.ResType == Enum.ItemType.Equip then
- -- 装备基本属性
- local equipCfgData = ManagerContainer.CfgMgr:GetEquipById(cfgId)
- local baseAttrs = {}
- for k,v in pairs(Enum.HeroAttrType) do
- if equipCfgData[k] and equipCfgData[k] ~= 0 then
- table.insert(baseAttrs, {Enum.HeroAttrType[k], equipCfgData[k]})
- end
- end
- for _,v in pairs(baseAttrs) do
- ManagerContainer.GoPoolMgr:SpawnGo(Enum.PrefabNames.EquipBaseAttrItem, function(itemlua)
- CommonUtil.BatchCreateItems(self, itemlua, self.equipBox.base.grid.transform, v)
- end)
- end
- self.equipBox.suit:SetActive(equipCfgData.Suit > 0)
- -- 装备套装属性
- if equipCfgData.Suit > 0 then
- -- 装备套装属性
- local equipSuitCfgData = ManagerContainer.CfgMgr:GetEquipSuitById(equipCfgData.Suit)
- self.suitTxt.text.text = equipSuitCfgData.Name
- self.suitActiveTxt.text.text = "(0/3)"
- local i = 1
- local keyName = ("Suit" .. i)
- local suitAttrs = {}
- while (equipSuitCfgData[keyName] ~= nil) do
- if equipSuitCfgData[keyName] ~= "" then
- table.insert(suitAttrs, {i, equipSuitCfgData[keyName], false, i})
- end
- i = i + 1
- keyName = ("Suit" .. i)
- end
- for _,v in pairs(suitAttrs) do
- ManagerContainer.GoPoolMgr:SpawnGo(Enum.PrefabNames.EquipSuitAttrItem, function(itemlua)
- CommonUtil.BatchCreateItems(self, itemlua, self.equipBox.suit.transform, v)
- end)
- end
- end
- if isOpenFunc then
- self.uiBase:AddButtonUniqueEventListener(self.btn_Equip.button, self, function()
- ManagerContainer.LuaUIMgr:Hide(self.uiData.id)
- ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.UIMAINVIEW_CHANGE_NOTICE, Enum.MainViewPageType.Role)
- end)
- self.uiBase:AddButtonUniqueEventListener(self.btn_Compose.button, self, function ()
- self:UIClose()
- local forgeType = CommonUtil.GetEquipForgeTypeByCfgId(cfgId)
- local data
- if forgeType ~= nil then
- data = Enum.EquipForgeType[forgeType]
- end
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIForge1, data)
- end)
- end
- self.btn_Sell:SetActive(false)
- self.btn_Equip:SetActive(false)
- self.btn_Info:SetActive(false)
- self.btn_Decompose:SetActive(false)
- self.equipBox:SetActive(true)
- self.btnBox:SetActive(isOpenFunc)
- self.bottomBox:SetActive(not isOpenFunc)
- self.btn_Compose:SetActive(isOpenFunc)
- elseif itemCfgData.ResType == Enum.ItemType.ParterChip then
- local composeItem = itemCfgData.ComposeItem
- local multi = false
- local owned = false
- local parterId = nil
- if composeItem and #composeItem > 0 then
- if type(composeItem[1]) == 'number' then
- -- 单个
- parterId = composeItem[1]
- local data = ManagerContainer.DataMgr.PartnerData:GetPartnerDataById(parterId)
- owned = ((data and data.owned) and data.owned or false)
- else
- multi = true
- end
- end
- if isOpenFunc then
- local f = I18N.T('BtnDecompose')
- local h = I18N.T('BtnForge1')
- self.btn_Decompose.text.text.text = (owned and f or h)
- if not multi then
- self.uiBase:AddButtonUniqueEventListener(self.btn_Info.button, self, function()
- ManagerContainer.LuaUIMgr:Hide(self.uiData.id)
- local partnerData = ManagerContainer.CfgMgr:GetPartnerDataById(parterId)
- ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.UIMAINVIEW_CHANGE_NOTICE, Enum.MainViewPageType.Role, partnerData)
- end)
- end
- self.uiBase:AddButtonUniqueEventListener(self.btn_Decompose.button, self, function()
- ManagerContainer.LuaUIMgr:Hide(self.uiData.id)
- if owned then
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIChipRoom, {self.controller:GetCfgId()})
- else
- self.controller:SendComposeChip()
- end
- end)
- end
- self.btn_Sell:SetActive(false)
- self.btn_Equip:SetActive(false)
- if not multi then self.btn_Info:SetActive(isOpenFunc) end
- self.btn_Decompose:SetActive(isOpenFunc)
- self.equipBox:SetActive(false)
- self.btnBox:SetActive(isOpenFunc)
- self.bottomBox:SetActive(not isOpenFunc)
- self.btn_Compose:SetActive(false)
- else
- self.btn_Sell:SetActive(false)
- self.btn_Equip:SetActive(false)
- self.btn_Info:SetActive(false)
- self.btn_Decompose:SetActive(false)
- self.equipBox:SetActive(false)
- self.btnBox:SetActive(false)
- self.bottomBox:SetActive(true)
- self.btn_Compose:SetActive(false)
- end
- end
- function UIItemTipsView:RemoveEventListener()
- ManagerContainer.LuaEventMgr:Unregister(self.uiData.name)
- end
- function UIItemTipsView:AddUIEventListener()
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name)
- self.uiBase:AddButtonUniqueEventListener(self.btnClose.button, self, function()
- ManagerContainer.LuaUIMgr:Hide(self.uiData.id)
- end)
- end
- function UIItemTipsView:OnHide()
- self.hideFrameCount = Time.frameCount
- end
- function UIItemTipsView:OnShow(data)
- self.controller:SetData(data)
- self:Init()
- if self.hideFrameCount and self.hideFrameCount < Time.frameCount then
- self.window.animator:Rebind()
- end
- end
- function UIItemTipsView:OnClose()
- end
- function UIItemTipsView:OnDispose()
- self.uIEventHandler:RemoveListener()
- end
- return UIItemTipsView
|