require("Base/BasePanel") local GodsWayOtherTeamPanel = Inherit(BasePanel) local XiuXianSkillConfig = ConfigManager.GetConfig(ConfigName.XiuXianSkillConfig) local endLess = ConfigManager.GetConfig(ConfigName.EndlessHeroProp) local heroConfig = ConfigManager.GetConfig(ConfigName.HeroConfig) local type = 0 --1:挑战 2:详情 local floor = 0 local itemId, needNum local haveNum = 0 local time = 0 local enemyId local curMsg = nil function GodsWayOtherTeamPanel:InitComponent() self.spLoader = SpriteLoader.New() self.btnBack = Util.GetGameObject(self.gameObject, "Frame/other/BackBtn") self.titleTxt = Util.GetGameObject(self.gameObject, "Frame/other/title"):GetComponent("Text") self.mask = Util.GetGameObject(self.gameObject, "mask") self.Frame = Util.GetGameObject(self.gameObject, "Frame") self.content = Util.GetGameObject(self.gameObject, "Frame/Content") --队伍信息 self.teamInfo = Util.GetGameObject(self.content, "teamInfo") self.teamList = {} for i = 1, 3 do self.teamList[i] = {} self.teamList[i].title = Util.GetGameObject(self.teamInfo, "Team (" .. i .. ")/Title") self.teamList[i].go = Util.GetGameObject(self.teamInfo, "Team (" .. i .. ")") self.teamList[i].warPower = Util.GetGameObject(self.teamInfo, "Team (" .. i .. ")/WarPower/Text"):GetComponent( "Text") self.teamList[i].heroList = {} for j = 1, 6 do self.teamList[i].heroList[j] = {} self.teamList[i].heroList[j].go = Util.GetGameObject(self.teamInfo, "Team (" .. i .. ")/TeamList/heroPro (" .. j .. ")") self.teamList[i].heroList[j].frame = Util.GetGameObject(self.teamList[i].heroList[j].go, "frame") :GetComponent("Image") self.teamList[i].heroList[j].hero = Util.GetGameObject(self.teamList[i].heroList[j].go, "hero") self.teamList[i].heroList[j].starGrid = Util.GetGameObject(self.teamList[i].heroList[j].hero, "starGrid") self.teamList[i].heroList[j].proIcon = Util.GetGameObject(self.teamList[i].heroList[j].hero, "proIcon") :GetComponent("Image") self.teamList[i].heroList[j].levelText = Util.GetGameObject(self.teamList[i].heroList[j].hero, "lvbg/levelText"):GetComponent("Text") self.teamList[i].heroList[j].icon = Util.GetGameObject(self.teamList[i].heroList[j].hero, "icon") :GetComponent("Image") end self.teamList[i].go:SetActive(false) end --灵兽信息 self.pokemonInfo = Util.GetGameObject(self.content, "pokemonInfo") self.pokemonList = {} for i = 1, 6 do self.pokemonList[i] = Util.GetGameObject(self.pokemonInfo, "Demons/heroPro (" .. i .. ")") end --神印信息 self.imprintInfo = Util.GetGameObject(self.content, "imprintInfo") self.imprintGrid = Util.GetGameObject(self.imprintInfo, "Imprints") self.imprintPre = Util.GetGameObject(self.gameObject, "Frame/other/imprintPre") self.imprintItemList = {} --挑战 self.btnChallenge = Util.GetGameObject(self.Frame, "Button") self.challengeTxt = Util.GetGameObject(self.Frame, "Button/Text"):GetComponent("Text") end --绑定事件(用于子类重写) function GodsWayOtherTeamPanel:BindEvent() Util.AddClick(self.mask, function() self:ClosePanel() end) Util.AddClick(self.btnBack, function() LogError("点击关闭按钮") self:ClosePanel() end) Util.AddClick(self.btnChallenge, function() LogError("显示开展信息") local myTeams = GodsWayTeam[type] --local floor=GodsWayTowerManager.GetTowerFloorByType(type) -- if self.trailData.canFightTime > 0 then local windData = {} --我的队伍 local myTeamInfo = {} --敌方队伍 local enTeamInfo = {} --获取双方队伍数据 local allHeroTeam = {} local allEnTeam = {} local myTeamNum = 0 for i = 1, #myTeams do --local fightData=fightDataList[i] local heroTeam = {} heroTeam.team = {} heroTeam.totalForce = FormationManager.GetFormationPower(myTeams[i]) --LogError("myforce=="..msg.recordData.yxldMyForce[i]) local enTeam = {} enTeam.team = {} --LogError("en force=="..msg.recordData.yxldDefForce[i]) local myteam = FormationManager.GetFormationByID(myTeams[i]) for j = 1, #myteam.teamHeroInfos do myTeamNum = myTeamNum + 1 local hero = myteam.teamHeroInfos[j] local newHero = {} local heroData = HeroManager.GetSingleHeroData(hero.heroId) newHero.heroTid = heroData.heroConfig.Id --local pro=string.split(hero.property,"#") newHero.level = heroData.lv newHero.heroid = heroData.dynamicId newHero.star = heroData.star --newHero.godSoulLv = hero.godSoulLv newHero.position = hero.position newHero.skinId = heroData.skinId table.insert(heroTeam.team, newHero) end LogError("Type=====" .. type .. " TowerNumber=====" .. floor .. " TowerWave1" .. i) local monsterData = ConfigManager.TryGetConfigDataByThreeKey(ConfigName.DuoDuiTower, "Type", type, "TowerNumber", floor, "TowerWave1", i) if monsterData then enTeam.totalForce = monsterData.Force for j = 1, #monsterData.Hero do local hero = monsterData.Hero[j] local config = ConfigManager.GetConfigData(ConfigName.DuoDuiTowerHero, hero) local newHero = {} newHero.heroTid = config.Hero --local pro=string.split(hero.property,"#") newHero.level = monsterData.Level --newHero.heroid=hero.realId newHero.star = monsterData.Star --newHero.godSoulLv = hero.godSoulLv newHero.position = j --newHero.skinId=hero.skinId table.insert(enTeam.team, newHero) end end table.insert(allHeroTeam, heroTeam) table.insert(allEnTeam, enTeam) -- allHeroTeam[i]=heroTeam -- allEnTeam[i]=enTeam end if myTeamNum == 0 then PopupTipPanel.ShowTip(Language[12999]) return end myTeamInfo.crossTeam = allHeroTeam enTeamInfo.crossTeam = allEnTeam windData.myTeamInfo = myTeamInfo windData.defTeamInfo = enTeamInfo --windData.fightData=fightDataList UIManager.OpenPanel(UIName.GodsWayBattleInfoPanel, windData, 1, type) --显示挑战界面 self:ClosePanel() end) end --添加事件监听(用于子类重写) function GodsWayOtherTeamPanel:AddListener() end --移除事件监听(用于子类重写) function GodsWayOtherTeamPanel:RemoveListener() end --界面打开时调用(用于子类重写) function GodsWayOtherTeamPanel:OnOpen(_type, _floor) type = _type floor = _floor end --界面打开或者重新打开后,界面刷新时调用(用于子类重写) function GodsWayOtherTeamPanel:OnShow() local curFloor = GodsWayTowerManager.GetTowerFloorByType(type) self.btnChallenge:SetActive(curFloor + 1 == floor) LogError("floor===" .. floor) self.titleTxt.text = Language[10286] .. floor .. Language[10295] local towers = ConfigManager.TryGetAllConfigsDataByDoubleKey(ConfigName.DuoDuiTower, "Type", type, "TowerNumber", floor) local reward = towers[1].Item local num = #towers > 3 and 3 or #towers for i = 1, num do self.teamList[i].go:SetActive(true) self.teamList[i].warPower.text = towers[i].Force for j = 1, 6 do self.teamList[i].heroList[j].go:SetActive(false) end for j = 1, #towers[i].Hero do self.teamList[i].heroList[j].go:SetActive(true) local id = towers[i].Hero[j] local aaa = ConfigManager.GetConfigData(ConfigName.DuoDuiTowerHero, id) self.teamList[i].heroList[j].frame.sprite = self.spLoader:LoadSprite(GetQuantityImageByquality( heroConfig[aaa.Hero].Quality, towers[i].Star)) local star, starType = GetStarOrGodSoulLv(1, { star = towers[i].Star }) local starScale = -15 local starSize = Vector2.New(32, 32) if starType == 3 then starScale = -16 starSize = Vector2.New(0.8, -15) elseif starType == 2 then starSize = Vector2.New(48, 48) end SetHeroStars(self.spLoader, self.teamList[i].heroList[j].starGrid, star, nil, nil, -10) Util.SetParticleSortLayer(self.teamList[i].heroList[j].starGrid, self.sortingOrder + 1) self.teamList[i].heroList[j].proIcon.sprite = self.spLoader:LoadSprite(GetProStrImageByProNum(heroConfig [aaa.Hero].PropertyName)) self.teamList[i].heroList[j].levelText.text = towers[i].Level self.teamList[i].heroList[j].icon.sprite = self.spLoader:LoadSprite(GetResourcePath(heroConfig[aaa.Hero] .Icon)) end end -- if self.imprintItemList and #self.imprintItemList>0 then -- end local len = #reward - #self.imprintItemList if len > 0 then for i = 1, len do local obj = SubUIManager.Open(SubUIConfig.ItemView, self.imprintGrid.transform) table.insert(self.imprintItemList, obj) end end for i = 1, #self.imprintItemList do if i <= #reward then self.imprintItemList[i]:OnOpen(false, reward[i], 1, true, false, false, self.sortingOrder) else self.imprintItemList[i]:SetActive(false) end end end function GodsWayOtherTeamPanel:OnSortingOrderChange() if self.PlayerHead then self.PlayerHead:SetLayer(self.sortingOrder) end for k, v in pairs(self.teamList) do for m, n in pairs(v.heroList) do Util.SetParticleSortLayer(n.starGrid, self.sortingOrder + 1) end end end --实在不想算了,直接写死吧,毁灭吧 function GodsWayOtherTeamPanel:SetImgPos(_go, data) local img = Util.GetGameObject(_go, "WarPower/Img") local warPower = Util.GetGameObject(_go, "WarPower/Text"):GetComponent("Text") local setPos = function(num) if num >= 10 and num < 100 then img.transform.localPosition = Vector2.New(55.6, 0) elseif num >= 100 and num < 1000 then img.transform.localPosition = Vector2.New(77.3, 0) elseif num >= 1000 and num < 10000 then img.transform.localPosition = Vector2.New(103.4, 0) end end if data < 100000 then warPower.text = data img:SetActive(false) elseif data >= 100000000 then warPower.text = math.floor(data / 100000000) img:SetActive(true) img:GetComponent("Image").sprite = self.spLoader:LoadSprite("bd_zhanli-yi") setPos(math.floor(data / 100000000)) else warPower.text = math.floor(data / 10000) img:SetActive(true) img:GetComponent("Image").sprite = self.spLoader:LoadSprite("bd_zhanli-wan") setPos(math.floor(data / 10000)) end end local serverName = nil --灵兽信息 function GodsWayOtherTeamPanel:SetPokemonInfo(go, pokemonData) local len = #pokemonData if len > 0 then self.pokemonInfo:SetActive(true) for i, demon in ipairs(self.pokemonList) do demon.gameObject:SetActive(false) Util.GetGameObject(demon, "frame"):GetComponent("Image").sprite = self.spLoader:LoadSprite( GetQuantityImageByquality(1)) Util.GetGameObject(demon, "hero"):SetActive(false) end else self.pokemonInfo:SetActive(false) end for i, hero in ipairs(pokemonData) do local demonId = pokemonData[i].heroTid self.pokemonList[i].gameObject:SetActive(true) if demonId then local heroGo = Util.GetGameObject(self.pokemonList[i], "hero") heroGo:SetActive(true) SetHeroStars(self.spLoader, Util.GetGameObject(heroGo, "starGrid"), hero.star) local heroConfig = ConfigManager.GetConfigData(ConfigName.SpiritAnimal, demonId) Util.GetGameObject(heroGo, "lvbg/levelText"):GetComponent("Text").text = hero.level Util.GetGameObject(self.pokemonList[i], "frame"):GetComponent("Image").sprite = self.spLoader:LoadSprite( GetQuantityImageByquality(heroConfig.Quality)) Util.GetGameObject(heroGo, "icon"):GetComponent("Image").sprite = self.spLoader:LoadSprite(GetResourcePath( heroConfig.Icon)) local frameBtn = Util.GetGameObject(self.pokemonList[i], "frame") local heroData = {} Util.AddOnceClick(frameBtn, function() local pokemonData = { tempId = demonId, id = demonId, star = hero.star, level = hero.level } UIManager.OpenPanel(UIName.PokemonGetInfoPopup, true, pokemonData) end) end end end function GodsWayOtherTeamPanel:OnClose() end --界面销毁时调用(用于子类重写) function GodsWayOtherTeamPanel:OnDestroy() self.spLoader:Destroy() self.InfoList = {} self.dragViewList = {} self.triggerList = {} self.gridList = {} self.teamList = {} self.pokemonList = {} self.imprintItemList = {} end return GodsWayOtherTeamPanel