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("编对为空,无法开战") 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="第"..floor.."层" local towers=ConfigManager.TryGetAllConfigsDataByDoubleKey(ConfigName.DuoDuiTower,"Type",type,"TowerNumber",floor) local reward=towers[1].Item for i = 1, #towers 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