316 lines
13 KiB
Lua
316 lines
13 KiB
Lua
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 |