require("Base/BasePanel") local WorldArenaOtherTeamPanel = Inherit(BasePanel) local XiuXianSkillConfig = ConfigManager.GetConfig(ConfigName.XiuXianSkillConfig) local endLess=ConfigManager.GetConfig(ConfigName.EndlessHeroProp) local type=0 --1:挑战 2:详情 local itemId, needNum local haveNum=0 local time=0 local enemyId local curMsg=nil function WorldArenaOtherTeamPanel:InitComponent() self.spLoader = SpriteLoader.New() self.btnBack = Util.GetGameObject(self.gameObject, "Frame/other/BackBtn") self.mask = Util.GetGameObject(self.gameObject, "mask") self.Frame = Util.GetGameObject(self.gameObject, "Frame") self.content = Util.GetGameObject(self.gameObject, "Frame/Content") self.costImg=Util.GetGameObject(self.gameObject, "Frame/Button/Image"):GetComponent("Image") self.costTxt=Util.GetGameObject(self.gameObject, "Frame/Button/Image/num"):GetComponent("Text") --玩家信息 self.playerInfo = Util.GetGameObject(self.content, "playerInfo") self.playerHead = Util.GetGameObject(self.playerInfo, "head") self.playerName = Util.GetGameObject(self.playerInfo, "name") self.playerScore = Util.GetGameObject(self.playerInfo, "score"):GetComponent("Text") self.playerLevelImg = Util.GetGameObject(self.playerInfo, "levelImg"):GetComponent("Image") --队伍信息 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].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 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 WorldArenaOtherTeamPanel:BindEvent() Util.AddClick(self.mask, function() self:ClosePanel() end) Util.AddClick(self.btnBack, function() self:ClosePanel() end) Util.AddClick(self.btnChallenge, function() if not ActTimeCtrlManager.SingleFuncState(FUNCTION_OPEN_TYPE.JumpServer_YuXu) then PopupTipPanel.ShowTip(Language[10075]) return end if time==0 and haveNum0) self.challengeTxt.text="免费挑战" WorldArenaOtherTeamPanel:Refresh() end function WorldArenaOtherTeamPanel: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 WorldArenaOtherTeamPanel:Refresh() LogError("self.playerid=="..self.playerId) --NetManager.GetPlayerCrossYxldOneTeamInfoRequest(self.playerId,0,function(msg) WorldArenaOtherTeamPanel:SetPlayerInfo(self.playerInfo,curMsg.teamInfo) WorldArenaOtherTeamPanel:SetTeamInfo(self.teamInfo,{curMsg.teamInfo.crossTeam[1],curMsg.teamInfo.crossTeam[2],curMsg.teamInfo.crossTeam[3]}) WorldArenaOtherTeamPanel:SetPokemonInfo(self.pokemonInfo,curMsg.teamInfo.crossTeam[1].PokemonInfos) WorldArenaOtherTeamPanel:SetImprintInfo(self.imprintInfo,curMsg.teamInfo.crossTeam[1].sealShow) if type==1 then self.btnChallenge:SetActive(true) else self.btnChallenge:SetActive(false) end ForceRebuildLayout(self.content.transform) ForceRebuildLayout(self.Frame.transform) --end) end --实在不想算了,直接写死吧,毁灭吧 function WorldArenaOtherTeamPanel: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 WorldArenaOtherTeamPanel:SetPlayerInfo(go,playerData) local head = Util.GetGameObject(go, "head") local name = Util.GetGameObject(go, "name"):GetComponent("Text") local score = Util.GetGameObject(go, "score"):GetComponent("Text") local levelImg = Util.GetGameObject(go, "levelImg"):GetComponent("Image") if not self.PlayerHead then self.PlayerHead = SubUIManager.Open(SubUIConfig.PlayerHeadView, head.transform) end self.PlayerHead:Reset() self.PlayerHead:SetScale(Vector3.one * 0.85) self.PlayerHead:SetHead(playerData.head) self.PlayerHead:SetFrame(playerData.headFrame) self.PlayerHead:SetLevel(playerData.level) self.PlayerHead:SetLayer(self.sortingOrder) self.PlayerHead:SetEffectScale(0.9) serverName=playerData.serverName name.text = PracticeManager.SetNameColor(playerData.serverName.." "..playerData.name,playerData.practiceLevel) score.text = string.format( "积分:%s",playerData.crossTeamScore) local rank=WorldArenaManager.GetRankImgByScore(playerData.crossTeamScore) levelImg.sprite = self.spLoader:LoadSprite("y_yuxulundao_xiaobiao_0"..rank) end --编队信息 function WorldArenaOtherTeamPanel:SetTeamInfo(_go,teamData) for index = 1, 3 do local go = Util.GetGameObject(_go,"Team ("..index..")") local data = teamData[index] local title = Util.GetGameObject(go,"Title"):GetComponent("Text") local teamList = Util.GetGameObject(go,"TeamList") title.text = string.format( "第%s队",NumToChinese[index]) --self:SetImgPos(go,data.totalForce) Util.GetGameObject(go,"WarPower/Text"):GetComponent("Text").text=data.totalForce for i, demon in ipairs(self.teamList[index].heroList) do demon.frame.sprite = self.spLoader:LoadSprite(GetQuantityImageByquality(1)) demon.hero:SetActive(false) end --队伍阵容 for i, hero in ipairs(data.team) do local heroTid = data.team[i].heroTid if heroTid then self.teamList[index].heroList[hero.position].hero:SetActive(true) local star,starType = GetStarOrGodSoulLv(1,hero) star=endLess[heroTid].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[index].heroList[hero.position].starGrid, star,starType,starSize,starScale) Util.SetParticleSortLayer(self.teamList[index].heroList[hero.position].starGrid,self.sortingOrder + 1) local heroConfig = ConfigManager.GetConfigData(ConfigName.HeroConfig, heroTid) self.teamList[index].heroList[hero.position].proIcon.sprite = self.spLoader:LoadSprite(GetProStrImageByProNum(hero.propertyId)) self.teamList[index].heroList[hero.position].levelText.text =endLess[heroTid].Level or hero.level self.teamList[index].heroList[hero.position].frame.sprite = self.spLoader:LoadSprite(GetQuantityImageByquality(heroConfig.Quality, star)) SetHeroIcon(self.spLoader,hero, self.teamList[index].heroList[hero.position].icon,heroConfig) SetHeroFlyEffect(self.teamList[index].heroList[hero.position].hero,self.spLoader,star,self.sortingOrder+1,0.8,2) local heroData = {} Util.AddOnceClick(self.teamList[index].heroList[hero.position].frame.gameObject, function() -- LogError("playerid=="..self.playerId.." heroid=="..hero.heroid.." servername=="..serverName.." arrayid=="..2000+index) NetManager.ViewHeroInfoRequest(self.playerId,hero.heroid,serverName,2000+index,function(msg) if not hero.heroid then return end heroData= GoodFriendManager.GetHeroDatas(msg.hero,msg.force,msg.SpecialEffects,msg.guildSkill) GoodFriendManager.InitEquipData(msg.equip,heroData)--HeroManager.GetSingleHeroData(heroData.dynamicId) UIManager.OpenPanel(UIName.RoleInfoPopup, heroData,true) end) end) end end end end --灵兽信息 function WorldArenaOtherTeamPanel: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 WorldArenaOtherTeamPanel:SetImprintInfo(go,imprintData) if imprintData and #imprintData > 0 then self.imprintInfo:SetActive(true) if not self.imprintItemList then self.imprintItemList = {} end for i = 1, #self.imprintItemList do self.imprintItemList[i].gameObject:SetActive(false) end for i = 1, #imprintData do local item = self.imprintItemList[i] local value = imprintData[i] if not item then item = newObject(self.imprintPre) item.name = "imprintPre_"..i item.transform:SetParent(self.imprintGrid.transform) item.transform.localScale = Vector3.one item.transform.localPosition = Vector3.zero self.imprintItemList[i] = item end item.gameObject:SetActive(true) local icon = Util.GetGameObject(item,"icon"):GetComponent("Image") icon.sprite = self.spLoader:LoadSprite(GetResourcePath(XiuXianSkillConfig[value.id].Icon)) Util.AddOnceClick(item.gameObject,function () UIManager.OpenPanel(UIName.GeneralInfoPopup,GENERALINFO_TYPE.Imprint,value.id,value.heroTId) end) end else self.imprintInfo:SetActive(false) end end function WorldArenaOtherTeamPanel:OnClose() end --界面销毁时调用(用于子类重写) function WorldArenaOtherTeamPanel:OnDestroy() self.spLoader:Destroy() if self.PlayerHead then self.PlayerHead:Recycle() self.PlayerHead = nil end self.InfoList = {} self.dragViewList = {} self.triggerList = {} self.gridList = {} self.teamList = {} self.pokemonList = {} self.imprintItemList = {} end return WorldArenaOtherTeamPanel