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

316 lines
13 KiB
Lua
Raw Normal View History

2023-03-20 11:22:44 +08:00
require("Base/BasePanel")
local GodsWayOtherTeamPanel = Inherit(BasePanel)
local XiuXianSkillConfig = ConfigManager.GetConfig(ConfigName.XiuXianSkillConfig)
local endLess=ConfigManager.GetConfig(ConfigName.EndlessHeroProp)
2023-03-21 16:12:57 +08:00
local heroConfig=ConfigManager.GetConfig(ConfigName.HeroConfig)
2023-03-20 11:22:44 +08:00
local type=0 --1:挑战 2详情
2023-03-21 10:11:06 +08:00
local floor=0
2023-03-20 11:22:44 +08:00
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")
2023-03-21 16:12:57 +08:00
self.titleTxt=Util.GetGameObject(self.gameObject, "Frame/other/title"):GetComponent("Text")
2023-03-20 11:22:44 +08:00
self.mask = Util.GetGameObject(self.gameObject, "mask")
self.Frame = Util.GetGameObject(self.gameObject, "Frame")
self.content = Util.GetGameObject(self.gameObject, "Frame/Content")
2023-03-21 10:11:06 +08:00
2023-03-20 11:22:44 +08:00
--队伍信息
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")
2023-03-21 10:11:06 +08:00
self.teamList[i].go = Util.GetGameObject(self.teamInfo, "Team ("..i..")")
2023-03-21 16:12:57 +08:00
2023-03-20 11:22:44 +08:00
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
2023-03-21 16:12:57 +08:00
self.teamList[i].go:SetActive(false)
2023-03-20 11:22:44 +08:00
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
--绑定事件(用于子类重写)
2023-03-21 16:12:57 +08:00
function GodsWayOtherTeamPanel:BindEvent()
2023-03-20 11:22:44 +08:00
Util.AddClick(self.mask, function()
self:ClosePanel()
end)
Util.AddClick(self.btnBack, function()
2023-03-21 16:12:57 +08:00
LogError("点击关闭按钮")
2023-03-20 11:22:44 +08:00
self:ClosePanel()
end)
Util.AddClick(self.btnChallenge, function()
2023-03-21 16:12:57 +08:00
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)
2023-03-20 11:22:44 +08:00
--显示挑战界面
self:ClosePanel()
end)
end
--添加事件监听(用于子类重写)
function GodsWayOtherTeamPanel:AddListener()
end
--移除事件监听(用于子类重写)
function GodsWayOtherTeamPanel:RemoveListener()
end
--界面打开时调用(用于子类重写)
2023-03-21 10:11:06 +08:00
function GodsWayOtherTeamPanel:OnOpen(_type,_floor)
2023-03-20 11:22:44 +08:00
type=_type
2023-03-21 10:11:06 +08:00
floor=_floor
2023-03-20 11:22:44 +08:00
end
--界面打开或者重新打开后,界面刷新时调用(用于子类重写)
function GodsWayOtherTeamPanel:OnShow()
local curFloor=GodsWayTowerManager.GetTowerFloorByType(type)
self.btnChallenge:SetActive(curFloor+1==floor)
2023-03-21 16:12:57 +08:00
LogError("floor==="..floor)
self.titleTxt.text=""..floor..""
2023-03-21 10:11:06 +08:00
local towers=ConfigManager.TryGetAllConfigsDataByDoubleKey(ConfigName.DuoDuiTower,"Type",type,"TowerNumber",floor)
2023-03-21 16:12:57 +08:00
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
2023-03-20 11:22:44 +08:00
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
2023-03-21 16:12:57 +08:00
2023-03-20 11:22:44 +08:00
--实在不想算了,直接写死吧,毁灭吧
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()
2023-03-21 16:12:57 +08:00
2023-03-20 11:22:44 +08:00
end
--界面销毁时调用(用于子类重写)
function GodsWayOtherTeamPanel:OnDestroy()
self.spLoader:Destroy()
self.InfoList = {}
self.dragViewList = {}
self.triggerList = {}
self.gridList = {}
self.teamList = {}
self.pokemonList = {}
2023-03-21 16:12:57 +08:00
self.imprintItemList={}
2023-03-20 11:22:44 +08:00
end
return GodsWayOtherTeamPanel