miduo_client/Assets/ManagedResources/~Lua/Modules/WorldArena/GodsWayOtherTeamPanel.lua

316 lines
13 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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