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/100000 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