| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264 |
- local UIBattleBossTipsView = require("UIBattle/UIBattleBossTipsView_Generate")
- function UIBattleBossTipsView:OnAwake(data)
- self.controller = require("UIBattle/UIBattleBossTipsCtr"):new()
- self.controller:Init(self)
- self.controller:SetData(data)
- end
- function UIBattleBossTipsView:AddEventListener()
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name)
- end
- function UIBattleBossTipsView: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()
- self.TxtRectTrans.rectTransform.anchoredPosition = Vector2.zero
- end
- function UIBattleBossTipsView:Init()
- self.skillItemList = {}
- self.skillItemList[#self.skillItemList+1] = self.skillTemplate
-
- self.attrItemList = {}
- self:SetBossData()
- end
- function UIBattleBossTipsView:SetBossData()
- if self.controller:GetData() == nil then
- return
- end
- local bossActor = self.controller:GetData()
- local bossCfg = ManagerContainer.CfgMgr:GetNpcCfgById(bossActor.BaseId)
- if bossCfg == nil then
- return
- end
- self.bossLevel.text.text = tostring(bossActor.ShowLevel)
- self.bossName.text.text = I18N.T(bossCfg.Name)
- self.bossDesc.text.text = I18N.T(bossCfg.Desc)
- local natureCfg = ManagerContainer.CfgMgr:GetNatureDataById(bossCfg.NatureId)
- if natureCfg ~= nil then
- self.natureName.text.text =I18N.T(natureCfg.Name)
- CommonUtil.LoadIcon(self, natureCfg.Icon, function (sprite)
- self.natureImg.image.sprite = sprite
- end)
- end
- if bossCfg.Icon ~= nil and bossCfg.Icon ~= "" then
- CommonUtil.LoadIcon(self, bossCfg.Icon, function (sprite)
- self.bossImg.image.sprite = sprite
- self.bossImg.image:SetNativeSize()
- if bossCfg.IconOffset~= nil then
- local offset = Vector2(bossCfg.IconOffset[1],bossCfg.IconOffset[2])
- self.bossImg.rectTransform.anchoredPosition = offset
- end
- end)
- end
- if bossCfg.BgImg ~= nil and bossCfg.BgImg ~= "" then
- CommonUtil.LoadIcon(self, bossCfg.BgImg, function (sprite)
- self.bgImg.image.sprite = sprite
- end)
- end
-
- --筛除重复技能
- local tbSkill ={}
- if bossCfg.SkillIds ~= nil and #bossCfg.SkillIds > 0 then
- for i =1, #bossCfg.SkillIds do
- local skillid = bossCfg.SkillIds[i][1]
- local tbIndex = self:GetIndexBySkillId(skillid,bossCfg.SkillIds)
- if nil ~= tbIndex and #tbIndex >= 1 and i == tbIndex[1] then
- table.insert(tbSkill,bossCfg.SkillIds[i])
- end
- end
- end
- --添加被动技能
- if bossCfg.PassiveSkills ~= nil and #bossCfg.PassiveSkills > 0 then
- for i =1, #bossCfg.PassiveSkills do
- table.insert(tbSkill,bossCfg.PassiveSkills[i])
- end
- end
- if tbSkill ~= nil and #tbSkill > 0 then
- for i =1, #tbSkill do
- local skillItemLua = self:GetSkillItemLua(i)
- self:SetSkillData(skillItemLua,tbSkill[i][1],tbSkill[i][2])
- end
- else
- self.skillTemplate:SetActive(false)
- end
- local cursor = 1
- for i = 7, 16 do
- if i ~= 8 and i ~= 10 then
- local val = bossActor:GetAttr(i)
- local attrGo = self:GetAttrGo(cursor)
- if i == 9 then
- local valMagicAttack = bossActor:GetAttr(i+1)--魔攻
- if SDataUtil.InvConvert(val) < SDataUtil.InvConvert(valMagicAttack) then
- self:SetAttrData(attrGo,i+1,valMagicAttack)
- else
- self:SetAttrData(attrGo,i,val)
- end
- else
- self:SetAttrData(attrGo,i,val)
- end
- cursor = cursor + 1
- end
- end
- end
- --获取相同ID的索引
- function UIBattleBossTipsView:GetIndexBySkillId(skillid,tbSkills)
- local tbIndex = {}
- if tbSkills ~= nil and #tbSkills > 0 then
- for i =1, #tbSkills do
- if tbSkills[i][1] == skillid then
- table.insert(tbIndex,i)
- end
- end
- end
- return tbIndex
- end
- function UIBattleBossTipsView:GetAttrGo(idx)
- if idx <= #self.attrItemList then
- return self.attrItemList[idx]
- end
- local attrGo = UnityEngine.GameObject.Instantiate(self.attrTemp.gameObject)
- attrGo.name = "atrr" .. idx
- attrGo.transform:SetParent(self.atrrList.transform)
- attrGo.transform.localScale = Vector3(1,1,1)
- local rectTrans = attrGo:GetComponent(Enum.TypeInfo.RectTransform)
- rectTrans.anchoredPosition3D = Vector3(0,0,0)
- attrGo:SetActive(true)
- self.attrItemList[#self.attrItemList+1] = attrGo
- return attrGo
- end
- function UIBattleBossTipsView:SetAttrData(attrGo,attrId,attrVal)
- if attrGo == nil then
- return
- end
- local lbl = attrGo.transform:Find("Lbl")
- if lbl ~= nil then
- local txt = lbl:GetComponent(Enum.TypeInfo.Text)
- if txt ~= nil then
- txt.text = I18N.T("Attr_"..attrId)
- end
- end
- local val = attrGo.transform:Find("Val")
- if val ~= nil then
- local txt = val:GetComponent(Enum.TypeInfo.Text)
- if txt ~= nil then
- txt.text = CommonUtil.GetPreciseDecimal(SDataUtil.InvConvert(attrVal),0)
- end
- end
- end
- function UIBattleBossTipsView:GetSkillItemLua(idx)
- if idx <= #self.skillItemList then
- return self.skillItemList[idx]
- end
- local skillNode = UnityEngine.GameObject.Instantiate(self.skillTemplate.gameObject)
- local skillLua = CommonUtil.BindGridViewItem2Lua(self, "SkillItem", skillNode)
- skillLua.prefabName = "SkillItem"
- skillNode.name = "SkillItem"
- skillLua.transform:SetParent(self.skillList.transform)
- skillLua.transform.localScale = Vector3(1,1,1)
- skillLua.rectTransform.anchoredPosition3D = Vector3(0,0,0)
- skillLua:SetActive(true)
- self.skillItemList[#self.skillItemList+1] = skillLua
- return skillLua
- end
- function UIBattleBossTipsView:SetSkillData(skillLua,skillId,skillLv)
- if skillLua == nil then
- return
- end
- local skillCfg = ManagerContainer.CfgMgr:GetSkillCfgById(skillId)
- if skillCfg == nil then
- return
- end
- skillLua.num.text.text = I18N.T("Lv.") .. skillLv
- if skillCfg.Icon ~= nil and skillCfg.Icon ~= "" then
- CommonUtil.LoadIcon(self, skillCfg.Icon, function (sprite)
- skillLua.icon.image.sprite = sprite
- end)
- end
- skillLua:SetActive(true)
- self.uiBase:AddButtonUniqueEventListener(skillLua.icon.button, self, self.OnClickSkill, skillId,skillLv)
- end
- function UIBattleBossTipsView:OnClickSkill(btn,params)
- local skillId = params[0]
- local skillLv = params[1]
- local data = { tipsType = Enum.UITipsType.Skill, cfgId = skillId, num = skillLv }
- ManagerContainer.LuaUIMgr:OpenTips(data)
- end
- function UIBattleBossTipsView:RemoveEventListener()
- ManagerContainer.LuaEventMgr:Unregister(self.uiData.name)
- end
- function UIBattleBossTipsView:AddUIEventListener()
- self.uiBase:AddButtonEventListener(self.AnyBtn.button,self, self.OnClickClose)
- self.uiBase:AddButtonEventListener(self.closeBtn.button,self, self.OnClickClose)
- end
- function UIBattleBossTipsView:OnHide()
- end
- function UIBattleBossTipsView:OnShow(data)
- self.controller:SetData(data)
- self.TxtRectTrans.rectTransform.anchoredPosition = Vector2.zero
- end
- function UIBattleBossTipsView:OnClose()
- self:ClearGoes()
- end
- function UIBattleBossTipsView:OnDispose()
- self.controller:OnDispose()
- end
- function UIBattleBossTipsView:OnClickClose()
- ManagerContainer.LuaUIMgr:ClosePage(self.uiBase.PageId)
- end
- function UIBattleBossTipsView:ClearGoes()
- for i = 1, #self.attrItemList do
- CommonUtil.DestroyGO(self.attrItemList[i])
- end
- self.attrItemList = nil
- for i = 2, #self.skillItemList do
- CommonUtil.DestroyGO(self.skillItemList[i].gameObject)
- end
- self.skillItemList = nil
- CommonUtil.ClearGridViewItem(self,"SkillItem")
- end
- return UIBattleBossTipsView
|