----- 元素共鸣 ----- ElementalResonanceView = {} local this = ElementalResonanceView local propertyConfig = ConfigManager.GetConfig(ConfigName.PropertyConfig) local monsterConfig = ConfigManager.GetConfig(ConfigName.MonsterConfig) local heroConfig = ConfigManager.GetConfig(ConfigName.HeroConfig) local elementalResonanceConfig = ConfigManager.GetConfig(ConfigName.ElementalResonanceConfig) local elementPropertyList = {} local ImageList = { "r_zhandou_yuansu_02", "r_zhandou_yuansu_06", "r_zhandou_yuansu_03", "r_zhandou_yuansu_04","r_zhandou_yuansu_05","r_zhandou_yuansu_07" } function ElementalResonanceView:New(gameObject) local b = {} b.gameObject = gameObject b.transform = gameObject.transform setmetatable(b, { __index = ElementalResonanceView }) return b end function this:InitComponent() self.elementalResonanceBtn = Util.GetGameObject(self.gameObject, "elementalResonanceBtn") this.orginLayer = 0 this.effect = Util.GetGameObject(self.elementalResonanceBtn, "effect") self.elementalResonanceImage = Util.GetGameObject(self.gameObject, "elementalResonanceBtn/bgImage/Image"):GetComponent("Image") end function this:BindEvent() -- 功能开启列表 Util.AddClick(self.elementalResonanceBtn, function() UIManager.OpenPanel(UIName.ElementPopup, self.dataTable,this.thisPanelOrder) end) end function this:AddListener() end function this:RemoveListener() end function this:OnOpen(context) if context then this.SetOrderStatus(context) end end function this:OnClose() UIManager.ClosePanel(UIName.ElementPopup) end function this:OnDestroy() end --设定层级 function this.SetOrderStatus(context) if not context then return end local sortingOrder = context.sortOrder + 90 -- Log(""..sortOrder.."") this.thisPanelOrder = context.sortOrder --self.transform:GetComponent("Canvas").sortingOrder = sortingOrder Util.AddParticleSortLayer(this.effect, sortingOrder - this.orginLayer) this.orginLayer = sortingOrder end --得到元素共鸣类型 -- 1.火 2.风 3.水 4.大地 function this:GetElementalType(curFormation, type) elementPropertyList = {} local fireElementNum = 0 local windyElementNum = 0 local waterElementNum = 0 local groundElementNum = 0 self.dataTable = {} if (type == 1) then for i, v in pairs(curFormation) do self.heroPropertyType = HeroManager.GetSingleHeroData(v.heroId).heroConfig.PropertyName table.insert(elementPropertyList, self.heroPropertyType) end self.dataTable.title = Language[12074] end if (type == 2) then for i, v in ipairs(curFormation) do if(v.monsterId~=nil)then self.heroPropertyType = monsterConfig[v.monsterId].PropertyName else self.heroPropertyType =heroConfig[v.roleId].PropertyName end table.insert(elementPropertyList, self.heroPropertyType) end self.dataTable.title = Language[12075] end for i, v in pairs(elementPropertyList) do--遍历该列表拿筛选出各元素 if (v == 1) then fireElementNum = fireElementNum + 1 elseif (v == 2) then windyElementNum = windyElementNum + 1 elseif (v == 3) then waterElementNum = waterElementNum + 1 elseif (v == 4) then groundElementNum = groundElementNum + 1 end end local list = {} list[1] = fireElementNum list[2] = windyElementNum list[3] = waterElementNum list[4] = groundElementNum local indexChoose = 0 for i = 1, #list do local v=list[i] if v==4 then indexChoose=4 end if v==5 then indexChoose=5 end if v==6 then indexChoose=6 end end local count=0 for i = 1, #list do local v=list[i] if v==3 then count=count+1 --你有几组3 end end if count==1 then --当你有1组3时 返回2 indexChoose=2 elseif count==2 then indexChoose=3 --当你有2组3时 返回3 end local index=0 for i = 1, #list do local v=list[i] if v==2 then index=index+1 end end if index==3 then indexChoose=1 --当你有3组2时 返回1 end -- LogRed("元素共鸣 "..indexChoose) self.dataTable.activeIndex = indexChoose local isShow = false isShow = indexChoose > 0 if (isShow == false) then self.elementalResonanceImage.sprite = Util.LoadSprite("r_zhandou_yuansu_01") else if indexChoose > 0 then self.elementalResonanceImage.sprite = Util.LoadSprite(ImageList[indexChoose]) end end this.effect:SetActive(isShow) end function this:SetPosition(type) if (type == 1) then -- self.elementalResonanceBtn.transform.localPosition = Vector3.New(455, 783, 0) self.elementalResonanceBtn.gameObject:GetComponent("RectTransform").anchorMin = Vector2.New(1, 1) self.elementalResonanceBtn.gameObject:GetComponent("RectTransform").anchorMax = Vector2.New(1, 1) self.elementalResonanceBtn.gameObject:GetComponent("RectTransform").pivot = Vector2.New(0.5, 0.5) self.elementalResonanceBtn.transform.localPosition = Vector3.New(400, 800, 0) elseif(type==2) then --self.elementalResonanceBtn.transform.localPosition = Vector3.New(-484, 876, 1) self.elementalResonanceBtn.gameObject:GetComponent("RectTransform").anchoredPosition = Vector2.New(58, 13) self.elementalResonanceBtn.gameObject:GetComponent("RectTransform").anchorMin = Vector2.New(0, 0) self.elementalResonanceBtn.gameObject:GetComponent("RectTransform").anchorMax = Vector2.New(0, 0) self.elementalResonanceBtn.gameObject:GetComponent("RectTransform").pivot = Vector2.New(0.5, 0.5) elseif(type==3) then --self.elementalResonanceBtn.transform.localPosition = Vector3.New(500, 876, 1) self.elementalResonanceBtn.gameObject:GetComponent("RectTransform").anchoredPosition = Vector2.New(-68, -89) self.elementalResonanceBtn.gameObject:GetComponent("RectTransform").anchorMin = Vector2.New(1, 1) self.elementalResonanceBtn.gameObject:GetComponent("RectTransform").anchorMax = Vector2.New(1, 1) self.elementalResonanceBtn.gameObject:GetComponent("RectTransform").pivot = Vector2.New(0.5, 0.5) end end function this:SetElementalPropertyTextColor() end return ElementalResonanceView