HarmonyView = {} -- 鸿蒙守卫脚本 function HarmonyView:New(gameObject) local b = {} b.gameObject = gameObject b.transform = gameObject.transform setmetatable(b, { __index = HarmonyView }) return b end HarmonyView.GongMingTable = {} HarmonyView.HongMengData = {} function HarmonyView:InitComponent() self.spLoader = SpriteLoader.New() local num = self.gameObject.transform.childCount -- for i = 0, num-1 do -- self.GongMingTable[i] =self.gameObject.transform:GetChild(i).gameObject -- end for i = 1, 6 do self.GongMingTable[i] = {} self.GongMingTable[i].go = Util.GetGameObject(self.gameObject, "item (" .. i .. ")") self.GongMingTable[i].infoGo = Util.GetGameObject(self.GongMingTable[i].go, "GameObject/infoGo") self.GongMingTable[i].frame = Util.GetGameObject(self.GongMingTable[i].go, "GameObject/frame"):GetComponent( "Image") self.GongMingTable[i].lv = Util.GetGameObject(self.GongMingTable[i].infoGo, "lv/Text"):GetComponent("Text") self.GongMingTable[i].icon = Util.GetGameObject(self.GongMingTable[i].go, "GameObject/icon"):GetComponent( "Image") self.GongMingTable[i].proIcon = Util.GetGameObject(self.GongMingTable[i].infoGo, "proIcon"):GetComponent("Image") self.GongMingTable[i].starGrid = Util.GetGameObject(self.GongMingTable[i].infoGo, "star") end end function HarmonyView:BindEvent() end function HarmonyView:AddListener() end function HarmonyView:RemoveListener() end function HarmonyView:OnClose() self.spLoader:Destroy() end function HarmonyView:SetGreen(HongMengData) local min = HongMengData[#self.GongMingTable].lv for i = 0, #self.GongMingTable do if HongMengData[i + 1].lv == min then self.count = self.count + 1; end end end function HarmonyView:InitData(data) table.sort(data, function(a, b) if a.lv == b.lv then return a.warPower > b.warPower else return a.lv > b.lv end end) -- return data end function HarmonyView:OnOpen(sortingOrder) self.sortingOrder = sortingOrder local heroDataList = {} if HarmonyManager.hongmengGuards and #HarmonyManager.hongmengGuards > 0 then for i = 1, #HarmonyManager.hongmengGuards do if HarmonyManager.hongmengGuards[i].heroId ~= "" then -- body table.insert(heroDataList, HeroManager.GetSingleHeroData(HarmonyManager.hongmengGuards[i].heroId)) --LogBlue("刷新IsHaveHero:"..HarmonyManager.hongmengGuards[i].heroId.." ::: "..tostring(HeroManager.IsHaveHero(HarmonyManager.hongmengGuards[i].heroId))) if not HeroManager.IsHaveHero(HarmonyManager.hongmengGuards[i].heroId) then for k = 1, #HarmonyManager.hongmengHeroInfos do -- body if HarmonyManager.hongmengGuards[i].heroId == HarmonyManager.hongmengHeroInfos[k].heroId then -- body LogPink(HeroManager.GetSingleHeroData(HarmonyManager.hongmengHeroInfos[k].heroId)) end end -- body end end end end --LogGreen("heroDataList长度:"..#heroDataList) -- if #heroDataList > 0 then -- table.sort(heroDataList, function(a,b) -- if a.lv==b.lv then -- return a.warPower > b.warPower -- else -- return a.lv > b.lv -- end -- end) -- end -- self.count = 1; -- self:SetGreen(self.HongMengData) --LogGreen(heroDataList[6].name) for i = 1, 6 do local singleHeroData = {} if heroDataList[i] then singleHeroData = heroDataList[i] self.HongMengData[i] = singleHeroData if heroDataList[i].lv == heroDataList[#heroDataList].lv then -- body self:SetItem(self.HongMengData[i], self.GongMingTable[i], 1) else self:SetItem(self.HongMengData[i], self.GongMingTable[i], 0) end else self.HongMengData[i] = singleHeroData self:SetItem(nil, self.GongMingTable[i], 0) end end HarmonyManager.equipCount = 0 for i = 1, #self.HongMengData do if self.HongMengData[i] then -- body if self.HongMengData[i].equipIdList then -- body for i = 1, #self.HongMengData[i].equipIdList do HarmonyManager.equipCount = HarmonyManager.equipCount + 1 end end end end -- print("装备个数"..HarmonyManager.equipCount) -- for i = 0, #self.GongMingTable do -- if i == 5 then -- self:SetItem(self.HongMengData[i+1],self.GongMingTable[i],1) -- else -- self:SetItem(self.HongMengData[i+1],self.GongMingTable[i],0) -- end -- end HarmonyManager:SetGuardList(self.HongMengData, #heroDataList) end function HarmonyView:SetEffectLayer(sortingOrder) for i = 1, 6 do Util.SetParticleSortLayer(self.GongMingTable[i].starGrid, sortingOrder + 1) end end function HarmonyView:SetItem(data, go, flag) if data then go.infoGo:SetActive(true) go.frame.sprite = self.spLoader:LoadSprite(GetHeroQuantityImageByquality(data.heroConfig.Quality, data.star)) if flag == 0 then go.lv.text = data.lv else go.lv.text = string.format("%d", data.lv) end go.icon.sprite = self.spLoader:LoadSprite(data.icon) go.proIcon.sprite = self.spLoader:LoadSprite(GetProStrImageByProNum(data.changeProId)) local star, starType = data.GetStar(1) SetHeroStars(self.spLoader, go.starGrid, star, starType, nil, nil, Vector2.New(0, 1)) SetHeroFlyEffect(go.infoGo, self.spLoader, data.star, self.sortingOrder + 1, 1.2, 0) Util.SetParticleSortLayer(go.starGrid, self.sortingOrder + 1) else go.infoGo:SetActive(false) end end return HarmonyView