miduo_client/Assets/ManagedResources/~Lua/Modules/Map/ShowEnemyInfoPanel.lua

232 lines
9.8 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 ShowEnemyInfoPanel = Inherit(BasePanel)
local this = ShowEnemyInfoPanel
local monsterGroupId
local _LiveName
local _LiveNode
local MapPanel
local trailConfig = ConfigManager.GetConfig(ConfigName.TrialConfig)
local heroConfig = ConfigManager.GetConfig(ConfigName.HeroConfig)
local trialSetting=ConfigManager.GetConfig(ConfigName.TrialSetting)
local itemConfig=ConfigManager.GetConfig(ConfigName.ItemConfig)
local MonsterConfig=ConfigManager.GetConfig(ConfigName.MonsterConfig)
local MonsterGroupConfig = ConfigManager.GetConfig(ConfigName.MonsterGroup)
local ArtConfig = ConfigManager.GetConfig(ConfigName.ArtResourcesConfig)
local herosList={}
function this:InitComponent()
this.spLoader = SpriteLoader.New()
this.root = self.gameObject
this.btnBack =Util.GetGameObject(this.root,"EnemyInfo/btnBack")
this.rootLive=Util.GetGameObject(this.root,"EnemyInfo/root")
this.e_liveRoot=Util.GetGameObject(this.root,"EnemyInfo/root/liveRoot")
this.e_name=Util.GetGameObject(this.root,"EnemyInfo/name/text"):GetComponent("Text")
this.e_level=Util.GetGameObject(this.root,"EnemyInfo/name/level/Text"):GetComponent("Text")
this.e_cancelBtn=Util.GetGameObject(this.root,"EnemyInfo/cancelBtn")
this.e_fightBtn=Util.GetGameObject(this.root,"EnemyInfo/fightBtn")
this.bottomBar=Util.GetGameObject(this.root,"EnemyInfo/bottomBar")
this.heroGrid=Util.GetGameObject(this.root,"EnemyInfo/bottomBar/heroList")
this.iconPre=Util.GetGameObject(this.root,"EnemyInfo/bottomBar/heroList/pre")
end
function this:BindEvent()
Util.AddClick(this.e_cancelBtn,function()
Game.GlobalEvent:DispatchEvent(GameEvent.Event.PointTriggerEnd)
Game.GlobalEvent:DispatchEvent(GameEvent.Map.MaskState,0)
self:ClosePanel()
end)
Util.AddClick(this.btnBack,function()
Game.GlobalEvent:DispatchEvent(GameEvent.Event.PointTriggerEnd)
Game.GlobalEvent:DispatchEvent(GameEvent.Map.MaskState,0)
self:ClosePanel()
end)
Util.AddClick(this.e_fightBtn,function()
for i, v in ipairs(MapManager.trialHeroInfo) do
if MapTrialManager.selectHeroDid==v.heroId then
if v.heroHp<=0 then
PopupTipPanel.ShowTip(Language[11260])
return
end
end
end
if MapManager.curCarbonType == CarBonTypeId.ENDLESS then
NetManager.QuickFightRequest(function(msg)
-- CarbonManager.InitQuickFightData(monsterGroupId, nil, msg)
if msg.result == 1 then
EndLessMapManager.EndlessDrop = msg.enventDrop
end
local fightData = BattleManager.GetBattleServerData(msg)
UIManager.OpenPanel(UIName.BattlePanel, fightData, BATTLE_TYPE.EndlessMpaFight, function()
--更新精气值
--LogGreen("战斗后的更新精气值:"..msg.essenceValue)
MapTrialManager.powerValue = msg.essenceValue
--召唤Boss
if CarbonManager.difficulty == CARBON_TYPE.TRIAL and MapTrialManager.powerValue >= 100 then
MapTrialManager.isHaveBoss = true
MapTrialManager.UpdatePowerValue(0)
end
-- 延迟一秒刷新显示,避免战斗界面关闭时地图界面没有打开,无法监听删点事件,导致怪物点无法删除的问题
Timer.New(function()
-- 刷新数据
CarbonManager.InitQuickFightData(monsterGroupId, nil, msg)
end, 0.2):Start()
end):SetResult(msg.result)
self:ClosePanel()
end)
else
--先保存编队
local curFormation = FormationManager.GetFormationByID(FormationTypeDef.FORMATION_DREAMLAND)
local choosedList={}
table.insert(choosedList, {heroId = MapTrialManager.selectHeroDid, position=2})
FormationManager.SaveFormation(FormationTypeDef.FORMATION_DREAMLAND,choosedList,
FormationManager.formationList[FormationTypeDef.FORMATION_DREAMLAND].teamPokemonInfos)
--请求战斗数据
NetManager.QuickFightRequest(function(msg)
--战斗赢了 击杀小怪数量+1包括BOSS吗
if msg.result==1 then
MapTrialManager.SetKillCount(MapTrialManager.GetKilCount()+1)
end
--更新英雄HP
MapTrialManager.SetHeroHp(msg.remainHpList, MapTrialManager.selectHeroDid)
local fightData = BattleManager.GetBattleServerData(msg)
UIManager.OpenPanel(UIName.BattlePanel, fightData, BATTLE_TYPE.TRIAL_FIGHT, function()
--更新精气值
--LogGreen("战斗后的更新精气值:"..msg.essenceValue)
MapTrialManager.powerValue = msg.essenceValue
--召唤Boss
if CarbonManager.difficulty == CARBON_TYPE.TRIAL and MapTrialManager.powerValue >= 100 then
MapTrialManager.isHaveBoss = true
MapTrialManager.UpdatePowerValue(0)
end
-- 延迟一秒刷新显示,避免战斗界面关闭时地图界面没有打开,无法监听删点事件,导致怪物点无法删除的问题
Timer.New(function()
-- 刷新数据
CarbonManager.InitQuickFightData(monsterGroupId, nil, msg)
Game.GlobalEvent:DispatchEvent(GameEvent.Map.RefreshHeroHp,false,nil,false)--打完刷新血量
end, 0.2):Start()
end):SetResult(msg.result)
self:ClosePanel()
end)
end
end)
end
function this:OnOpen(...)
MapPanel,monsterGroupId = ...
end
function this:OnShow()
this.bottomBar:SetActive(MapManager.curCarbonType ~= CarBonTypeId.ENDLESS)
this.SetSelectHero()
end
function this.SetSelectHero()
local itemId=trialSetting[1].HealingId[1]
local itemNum=trialSetting[1].HealingId[2]
if _LiveName then
poolManager:UnLoadLive(_LiveName, _LiveNode)
end
local t= MonsterGroupConfig[monsterGroupId].Contents[1][2]
local monsterId = MonsterConfig[t].MonsterId
local paintingId = heroConfig[monsterId].Live
local pos = heroConfig[monsterId].Position
_LiveName = ArtConfig[paintingId].Name
_LiveNode = poolManager:LoadLive(_LiveName, this.e_liveRoot.transform, Vector3.one * heroConfig[monsterId].Scale, Vector3.New(pos[1], pos[2], 0))
this.rootLive.transform.localScale = Vector3.one*0.7
if heroConfig[monsterId].Toward==2 then
SetHEeroLiveToward(_LiveNode,1,pos)
end
this.e_level.text = "lv."..MonsterConfig[t].Level
this.e_name.text = GetLanguageStrById(MonsterConfig[t].ReadingName)
local d={}
d=MapManager.trialHeroInfo
for k = 1, this.heroGrid.transform.childCount do
this.heroGrid.transform:GetChild(k-1).gameObject:SetActive(false)
end
local closeChoosed=function() --有开着选择的全关了
for i, v in ipairs(herosList) do
local c=Util.GetGameObject(v,"choosed").gameObject
if c.activeSelf then
c:SetActive(false)
end
end
end
for index, value in ipairs(d) do
local item = herosList[index]
if not item then
item=newObjToParent(this.iconPre,this.heroGrid)
item.name="pre"..index
herosList[index]=item
end
item.gameObject:SetActive(true)
local frame=Util.GetGameObject(item,"frame"):GetComponent("Image")
local icon=Util.GetGameObject(item,"icon"):GetComponent("Image")
local pro=Util.GetGameObject(item,"proIcon"):GetComponent("Image")
local lv=Util.GetGameObject(item,"lv/Text"):GetComponent("Text")
local starGrid=Util.GetGameObject(item,"star")
local choosed=Util.GetGameObject(item,"choosed")
local hpExp=Util.GetGameObject(item,"hpExp"):GetComponent("Slider")
frame.sprite=this.spLoader:LoadSprite(GetHeroQuantityImageByquality(heroConfig[value.tmpId].Quality,value.star))
-- if not value.skinId or value.skinId == 0 then
-- icon.sprite= this.spLoader:LoadSprite(GetResourcePath(heroConfig[value.tmpId].Icon))
-- else
-- local heroSkinData = ConfigManager.GetConfigDataByKey(ConfigName.HeroSkin,"Type",value.skinId)
-- icon.sprite= this.spLoader:LoadSprite(GetResourcePath(heroSkinData.Icon))
-- end
SetHeroIcon(this.spLoader, value,icon,heroConfig[value.tmpId])
pro.sprite=this.spLoader:LoadSprite(GetProStrImageByProNum(value.propertyId))
lv.text=value.level
local star,starType = GetStarOrGodSoulLv(1,value)
SetHeroStars(this.spLoader, starGrid, star,starType)
SetHeroFlyEffect(item,this.spLoader,value.star,this.sortingOrder + 1,1,2)
Util.SetParticleSortLayer(starGrid,this.sortingOrder + 1)
--选择
choosed:SetActive(MapTrialManager.selectHeroDid==value.heroId)
Util.AddOnceClick(item,function()
if value.heroHp>0 then
closeChoosed()
choosed:SetActive(true)
MapTrialManager.selectHeroDid=value.heroId
Game.GlobalEvent:DispatchEvent(GameEvent.Map.RefreshHeroHp,false,nil,false)
else
PopupTipPanel.ShowTip(Language[11260])
end
end)
--血量相关
hpExp.value=value.heroHp/10000
Util.SetGray(item,value.heroHp<=0)--死啦
end
end
function this:OnClose()
end
function this:OnDestroy()
this.spLoader:Destroy()
_LiveName = {}
_LiveNode = {}
herosList={}
end
return this