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

255 lines
10 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.root = self.gameObject
this.btnBack =Util.GetGameObject(this.root,"EnemyInfo/btnBack")
this.e_liveRoot=Util.GetGameObject(this.root,"EnemyInfo/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[11247])
return
end
end
end
if MapManager.curCarbonType == CarBonTypeId.ENDLESS then
local curFormation = MapManager.formationList
NetManager.QuickFightRequest(function(msg)
-- CarbonManager.InitQuickFightData(monsterGroupId, nil, msg)
local fightData = BattleManager.GetBattleServerData(msg)
UIManager.OpenPanel(UIName.BattlePanel, fightData, BATTLE_TYPE.DAILY_CHALLENGE, function()
--更新精气值
LogGreen(Language[12222]..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)
self:ClosePanel()
end)
else
--先保存编队
local curFormation = FormationManager.GetFormationByID(FormationTypeDef.FORMATION_DREAMLAND)
local choosedList={}
table.insert(choosedList, {heroId = MapTrialManager.selectHeroDid, position=2})
FormationManager.RefreshFormation(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.DAILY_CHALLENGE, function()
--更新精气值
LogGreen(Language[12222]..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)
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][1]
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*0.7, Vector3.New(pos[1], pos[2], 0))
this.e_level.text = "lv."..MonsterConfig[t].Level
this.e_name.text = 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 star=Util.GetGameObject(item,"star")
local choosed=Util.GetGameObject(item,"choosed")
local hpExp=Util.GetGameObject(item,"hpExp"):GetComponent("Slider")
frame.sprite=Util.LoadSprite(GetHeroQuantityImageByquality(heroConfig[value.tmpId].Quality,value.star))
icon.sprite= Util.LoadSprite(GetResourcePath(heroConfig[value.tmpId].Icon))
pro.sprite=Util.LoadSprite(GetProStrImageByProNum(heroConfig[value.tmpId].PropertyName))
lv.text=value.level
SetHeroStars(star, value.star)
--选择
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[11247])
end
end)
--血量相关
hpExp.value=value.heroHp/10000
Util.SetGray(item,value.heroHp<=0)--死啦
end
--刷新英雄选择面板时 检测血量 若有低于40%血量的英雄 给选择Hero加血
--再遍历一次防止下面的return 打断上面for循环表现的正常赋值
--这里只关于自动嗑药逻辑
for k, v in ipairs(d) do
--若存在该设置参数并为已勾选状态 =1 否则=0
local t=(PlayerPrefs.HasKey(PlayerManager.uid.."GeneralPopup_TrialSettingBtn"..2)
and PlayerPrefs.GetInt(PlayerManager.uid.."GeneralPopup_TrialSettingBtn"..2)==1) and 1 or 0
if t==0 then return end
if MapTrialManager.selectHeroDid== v.heroId then
if v.heroHp<=0 then
PopupTipPanel.ShowTip(string.format(Language[11262],itemConfig[itemId].Name))
return
end
end
--若血量小于自动回复百分比 并且 有血量
if v.heroHp/10000<trialSetting[1].HealingPercent/10000 and v.heroHp>0 then
if (itemNum-MapManager.addHpCount)<=0 then
PopupTipPanel.ShowTip(string.format(Language[11263],itemConfig[itemId].Name))
return
end
if BagManager.GetItemCountById(itemId)<=0 then
PopupTipPanel.ShowTip(string.format(Language[11264],itemConfig[itemId].Name,itemConfig[itemId].Name))
return
end
NetManager.UseAddHpItemRequest(MapTrialManager.selectHeroDid,function()
local curHeroHp=0
if v.heroId==MapTrialManager.selectHeroDid then
curHeroHp=v.heroHp
end
curHeroHp=curHeroHp+5000 --5000增加的血量也是要配表的
if curHeroHp>=10000 then
curHeroHp=10000
end
MapTrialManager.SetHeroHp({curHeroHp},MapTrialManager.selectHeroDid,function()
PopupTipPanel.ShowTip(string.format(Language[11265],itemConfig[itemId].Name))
end)
end)
end
end
end
function this:OnClose()
end
function this:OnDestroy()
_LiveName = {}
_LiveNode = {}
herosList={}
end
return this