miduo_client/Assets/ManagedResources/~Lua/Modules/Battle/View/BattleBossInfoPanel.lua

182 lines
6.4 KiB
Lua
Raw Normal View History

2021-04-21 13:12:04 +08:00
require("Base/BasePanel")
2021-02-22 20:19:16 +08:00
local BattleBossInfoPanel = Inherit(BasePanel)
local func
2021-02-25 21:08:11 +08:00
local HeroConfig = ConfigManager.GetConfig(ConfigName.HeroConfig)
local BossConfig = ConfigManager.GetConfig(ConfigName.MainLevelBossConfig)
local artConfig = ConfigManager.GetConfig(ConfigName.ArtResourcesConfig)
local bgName
local Live
2021-02-26 11:03:14 +08:00
local orginLayer = 0
2021-02-22 20:19:16 +08:00
--初始化组件(用于子类重写)
function BattleBossInfoPanel:InitComponent()
2021-04-21 13:12:04 +08:00
self.spLoader = SpriteLoader.New()
2021-02-25 21:08:11 +08:00
self.btnBack = Util.GetGameObject(self.gameObject,"mask")
self.mask2 = Util.GetGameObject(self.gameObject,"mask2")
2021-03-18 14:40:47 +08:00
self.root = Util.GetGameObject(self.gameObject,"animation/bossRoot")
self.liveroot = Util.GetGameObject(self.gameObject,"animation/bossRoot/root")
2021-02-26 14:07:22 +08:00
self.nameImg = Util.GetGameObject(self.gameObject,"bg2/content/Pos/NameImg"):GetComponent("Image")
self.nameZh = Util.GetGameObject(self.gameObject,"bg2/content/Pos/NameZh"):GetComponent("Text")
self.nameOther = Util.GetGameObject(self.gameObject,"bg2/content/Pos/NameOther"):GetComponent("Text")
self.posImg = Util.GetGameObject(self.gameObject,"bg2/content/Pos/PosImage"):GetComponent("Image")
self.posImgDi = Util.GetGameObject(self.gameObject,"bg2/content/Pos/PosImgDi"):GetComponent("Image")
self.posTextZh = Util.GetGameObject(self.gameObject,"bg2/content/Pos/PosTextZh"):GetComponent("Text")
self.posTextOther = Util.GetGameObject(self.gameObject,"bg2/content/Pos/PosTexOther"):GetComponent("Text")
2021-02-25 21:08:11 +08:00
2021-03-13 12:57:31 +08:00
self.Text = Util.GetGameObject(self.gameObject,"content/Text"):GetComponent("Text")
2021-02-25 21:08:11 +08:00
self.skillText = Util.GetGameObject(self.gameObject,"content/Detail/skill/Text"):GetComponent("Text")
self.talismanText = Util.GetGameObject(self.gameObject,"content/Detail/talisman/Text"):GetComponent("Text")
self.ani1 = Util.GetGameObject(self.gameObject,"ani")
self.ani2 = Util.GetGameObject(self.gameObject,"ani2")
2021-02-26 11:03:14 +08:00
self.effect = Util.GetGameObject(self.gameObject,"UI_effect_RecruitPanel_particle")
2021-02-26 14:07:22 +08:00
2021-03-13 12:57:31 +08:00
self.Img1 = Util.GetGameObject(self.gameObject,"bg2/Image1"):GetComponent("Image")
2021-02-22 20:19:16 +08:00
end
--绑定事件(用于子类重写)
function BattleBossInfoPanel:BindEvent()
Util.AddClick(self.btnBack,function ()
2021-02-26 14:07:22 +08:00
if self.timer1 then
self.timer1:Stop()
self.timer1 = nil
end
2021-03-13 12:57:31 +08:00
self.Img1:DOFade(0,0.7)
if self.timer2 then
self.timer2:Stop()
self.timer2 = nil
end
self.effect:SetActive(false)
2021-02-25 21:08:11 +08:00
PlayUIAnim(self.ani1)
PlayUIAnim(self.ani2)
Timer.New(function ()
self:ClosePanel()
end,0.7):Start()
2021-02-22 20:19:16 +08:00
end)
end
--添加事件监听(用于子类重写)
function BattleBossInfoPanel:AddListener()
end
--移除事件监听(用于子类重写)
function BattleBossInfoPanel:RemoveListener()
end
function BattleBossInfoPanel:OnSortingOrderChange()
2021-02-26 11:03:14 +08:00
Util.AddParticleSortLayer(self.effect, self.sortingOrder - orginLayer)
orginLayer = self.sortingOrder
2021-02-22 20:19:16 +08:00
end
--界面打开时调用(用于子类重写)
function BattleBossInfoPanel:OnOpen(...)
func = ...
2021-02-26 11:03:14 +08:00
orginLayer = 0
2021-02-22 20:19:16 +08:00
end
-- 打开,重新打开时回调
function BattleBossInfoPanel:OnShow()
PlayerPrefs.SetInt(PlayerManager.uid.."BattleBossShow"..FightPointPassManager.curOpenFight,1)
local data = ConfigManager.GetConfigData(ConfigName.MainLevelConfig,FightPointPassManager.curOpenFight)
local heroData = ConfigManager.GetConfigData(ConfigName.HeroConfig,data.BossPreview)
local bossData = ConfigManager.GetConfigDataByKey(ConfigName.MainLevelBossConfig,"HeroId",data.BossPreview)
2021-03-16 17:25:11 +08:00
local bossDataInHero = ConfigManager.GetConfigDataByKey(ConfigName.HeroConfig,"Id",data.BossPreview)
local time = bossData.Time/1000
self.mask2:SetActive(true)
Timer.New(function ()
self.mask2:SetActive(false)
end,1):Start()
2021-03-18 15:23:14 +08:00
self.timer1 = Timer.New(function ()
PlayUIAnim(self.ani1)
PlayUIAnim(self.ani2)
self.effect:SetActive(false)
if self.timer2 then
self.timer2:Stop()
self.timer2 = nil
end
self.Img1:DOFade(0,0.7)
Timer.New(function ()
self:ClosePanel()
end,0.7):Start()
end,time)
self.timer1:Start()
2021-03-13 12:57:31 +08:00
local thread2=coroutine.start(function()
coroutine.wait(0.5)
self.Img1:DOFade(0.4,1)
coroutine.wait(1)
self.Img1:DOFade(1,1)
coroutine.wait(1)
end)
self.timer2 = Timer.New(function ()
local thread=coroutine.start(function()
self.Img1:DOFade(0.4,1)
coroutine.wait(1)
self.Img1:DOFade(1,1)
coroutine.wait(1)
end)
end, 2, 4, true)
self.timer2:Start()
2021-02-25 21:08:11 +08:00
--Pos
self.nameZh.text = heroData.ReadingName
self.posTextZh.text = heroData.HeroLocation
self.nameOther.text = GetLanguageStrById(heroData.ReadingName)
self.posTextOther.text = GetLanguageStrById(heroData.HeroLocation)
2021-02-25 21:08:11 +08:00
self.nameZh.gameObject:SetActive(GetCurLanguage() == 0)
self.posTextZh.gameObject:SetActive(GetCurLanguage() == 0)
self.nameOther.gameObject:SetActive(GetCurLanguage() ~= 0)
self.posTextOther.gameObject:SetActive(GetCurLanguage() ~= 0)
2021-02-25 21:08:11 +08:00
2021-04-21 13:12:04 +08:00
self.posImg.sprite = self.spLoader:LoadSprite(GetHeroPosStr(heroData.Profession))
self.posImgDi.sprite = self.spLoader:LoadSprite(GetHeroPosBgStr(heroData.Profession))
2021-02-25 21:08:11 +08:00
2021-02-26 11:03:14 +08:00
--Root
2021-02-25 21:08:11 +08:00
bgName = artConfig[HeroConfig[data.BossPreview].Live].Name
2021-03-16 17:25:11 +08:00
local pos = bossDataInHero.Position
local scale = bossDataInHero.Scale
2021-02-25 21:08:11 +08:00
if Live then
poolManager:UnLoadLive(bgName, Live)
2021-03-05 11:00:38 +08:00
Live = nil
2021-02-25 21:08:11 +08:00
end
2021-05-25 11:06:20 +08:00
Live = poolManager:LoadLive(bgName, self.liveroot.transform, Vector3.one, Vector2.New(pos[1],pos[2]))
2021-03-16 17:09:18 +08:00
self.root.transform.localScale = Vector3.one*scale
2021-02-25 21:08:11 +08:00
--Bottom
self.skillText.text = GetLanguageStrById(bossData.Skilltips)
self.talismanText.text = GetLanguageStrById(bossData.Treasuretips)
self.Text.text = GetLanguageStrById(bossData.HeroLocationDesc1)
2021-02-26 14:07:22 +08:00
2021-03-13 12:57:31 +08:00
2021-02-22 20:19:16 +08:00
end
--界面关闭时调用(用于子类重写)
function BattleBossInfoPanel:OnClose()
2021-02-26 11:03:14 +08:00
if self.timer1 then
self.timer1:Stop()
self.timer1 = nil
end
2021-03-13 12:57:31 +08:00
if self.timer2 then
self.timer2:Stop()
self.timer2 = nil
end
2021-02-22 20:19:16 +08:00
if func then
func()
end
2021-02-25 21:08:11 +08:00
if Live then
poolManager:UnLoadLive(bgName, Live)
2021-03-05 11:00:38 +08:00
Live = nil
2021-02-25 21:08:11 +08:00
end
2021-02-22 20:19:16 +08:00
end
--界面销毁时调用(用于子类重写)
function BattleBossInfoPanel:OnDestroy()
2021-04-21 13:12:04 +08:00
self.spLoader:Destroy()
2021-02-22 20:19:16 +08:00
end
return BattleBossInfoPanel