175 lines
7.0 KiB
Lua
175 lines
7.0 KiB
Lua
require("Base/BasePanel")
|
||
MonsterCampMainPanel = Inherit(BasePanel)
|
||
local this = MonsterCampMainPanel
|
||
local orginLayer
|
||
local monsterGroup = ConfigManager.GetConfig(ConfigName.MonsterGroup)
|
||
local monsterConfig = ConfigManager.GetConfig(ConfigName.MonsterConfig)
|
||
local attriConfig = ConfigManager.GetConfigDataByKey(ConfigName.GodHoodTreeSetting, "Id", 0)
|
||
local campTowerSetting = ConfigManager.GetConfigDataByKey(ConfigName.CampTowerSetting, "Id", 1)
|
||
local trails = {}
|
||
local redTrailType = {
|
||
[1] = RedPointType.PersonTrail,
|
||
[2] = RedPointType.BuddishTrail,
|
||
[3] = RedPointType.DemonTrail,
|
||
[4] = RedPointType.TaoistTrail,
|
||
}
|
||
--初始化组件(用于子类重写)
|
||
function MonsterCampMainPanel:InitComponent()
|
||
orginLayer = 0
|
||
this.spLoader = SpriteLoader.New()
|
||
this.btnBack = Util.GetGameObject(self.gameObject, "btnBack")
|
||
this.waveNum = Util.GetGameObject(self.gameObject, "Bg/btnWave/curwave"):GetComponent("Text")
|
||
this.canFightWave = Util.GetGameObject(self.gameObject, "Bg/btnWave/canFightWave"):GetComponent("Text")
|
||
this.nextWave = Util.GetGameObject(self.gameObject, "Bg/btnWave")
|
||
this.UpView = SubUIManager.Open(SubUIConfig.UpView, self.gameObject.transform)
|
||
|
||
for i = 1, 4 do
|
||
table.insert(trails, Util.GetGameObject(self.gameObject, "Bg/SiLingDi/trail" .. i))
|
||
end
|
||
this.btnShenYing = Util.GetGameObject(self.gameObject, "Bg/SiLingDi/shenyingPro")
|
||
this.btnShenYing:GetComponent("Image").sprite = this.spLoader:LoadSprite("j_jianmushenshu_anniu_02_zh")
|
||
this.btnShenYingText = Util.GetGameObject(this.btnShenYing, "Text"):GetComponent("Text")
|
||
this.shenYingProgressText = Util.GetGameObject(self.gameObject, "Bg/SiLingDi/progress/Text"):GetComponent("Text")
|
||
this.shenYingProgressIma = Util.GetGameObject(self.gameObject, "Bg/SiLingDi/progress/Image"):GetComponent("Image")
|
||
this.shenYingProgress = Util.GetGameObject(self.gameObject, "Bg/SiLingDi/progress")
|
||
this.btnShenYing:SetActive(false)
|
||
this.shenYingProgress:SetActive(false)
|
||
end
|
||
|
||
--绑定事件(用于子类重写)
|
||
function MonsterCampMainPanel:BindEvent()
|
||
Util.AddClick(this.btnBack, function()
|
||
-- PlayerManager.carbonType = 1
|
||
self:ClosePanel()
|
||
end)
|
||
|
||
Util.AddClick(this.nextWave, function()
|
||
JumpManager.GoJump(1011)
|
||
end)
|
||
|
||
Util.AddClick(this.btnShenYing, function()
|
||
UIManager.OpenPanel(UIName.GeneralBigPopup, GENERAL_POPUP_TYPE.ShenYingShuXing)
|
||
end)
|
||
|
||
for i = 1, #trails do
|
||
BindRedPointObject(redTrailType[i], Util.GetGameObject(trails[i], "redPoint"))
|
||
end
|
||
|
||
BindRedPointObject(RedPointType.HeartDemon, Util.GetGameObject(self.gameObject, "Bg/btnWave/redPoint"))
|
||
end
|
||
|
||
--添加事件监听(用于子类重写)
|
||
function MonsterCampMainPanel:AddListener()
|
||
Game.GlobalEvent:AddEvent(GameEvent.FourEle.RefreshView, this.OnShow)
|
||
end
|
||
|
||
--移除事件监听(用于子类重写)
|
||
function MonsterCampMainPanel:RemoveListener()
|
||
Game.GlobalEvent:RemoveEvent(GameEvent.FourEle.RefreshView, this.OnShow)
|
||
end
|
||
|
||
--界面打开时调用(用于子类重写)
|
||
function MonsterCampMainPanel:OnOpen(...)
|
||
SoundManager.PlayMusic(SoundConfig.BGM_Carbon)
|
||
this.UpView:OnOpen({ showType = UpViewOpenType.ShowLeft, panelType = PanelType.MonsterCamp })
|
||
end
|
||
|
||
function MonsterCampMainPanel:OnShow()
|
||
local totalWaves = MonsterCampManager.GetFourElementTotalWave()
|
||
local nextWaves = SacredTreeManager.NextAttriFloor()
|
||
this.waveNum.text = MonsterCampManager.monsterWave .. Language[10295]
|
||
this.canFightWave.text = MonsterCampManager.monsterWave
|
||
this.btnShenYingText.text = SacredTreeManager.CulAttri() .. "/" .. #attriConfig.PropertyUnlcokLevels
|
||
this.shenYingProgressText.text = string.format(Language[11893], totalWaves, nextWaves)
|
||
this.shenYingProgressIma.fillAmount = totalWaves / nextWaves
|
||
for i = 1, #trails do
|
||
local singleFourElementData = MonsterCampManager.GetCurFourElementMonsterInfo(i)
|
||
this:SetSingleTrailData(trails[i], singleFourElementData)
|
||
end
|
||
|
||
local waves = MonsterCampManager.GetFourElementTotalWave()
|
||
if not PlayerPrefs.HasKey("FourElement" .. PlayerManager.uid) then
|
||
PlayerPrefs.SetInt("FourElement" .. PlayerManager.uid, -1)
|
||
end
|
||
if waves ~= PlayerPrefs.GetInt("FourElement" .. PlayerManager.uid) then
|
||
PlayerPrefs.SetInt("FourElement" .. PlayerManager.uid, waves)
|
||
local propertyId = SacredTreeManager.GetUnLockNewProperty(waves)
|
||
if propertyId > 0 then
|
||
UIManager.OpenPanel(UIName.RewardItemPopup, nil, nil, nil, CompShowType.fourElement, nil, nil, nil,
|
||
propertyId)
|
||
end
|
||
end
|
||
end
|
||
|
||
function this:GetOpenTime(id)
|
||
local str = nil
|
||
local isFunction = false
|
||
local config = ConfigManager.GetConfigData(ConfigName.CampTowerSetting, 1)
|
||
if config then
|
||
for k, v in ipairs(config.CampOpenDay) do
|
||
isFunction = false
|
||
for n, m in ipairs(v) do
|
||
if tonumber(n) == 1 and tonumber(m) == id then
|
||
isFunction = true
|
||
else
|
||
if isFunction then
|
||
|
||
if str then
|
||
str = str .. "," .. NumConvertWeek[tonumber(m)]
|
||
else
|
||
str = NumConvertWeek[tonumber(m)]
|
||
end
|
||
end
|
||
end
|
||
end
|
||
end
|
||
end
|
||
return str
|
||
end
|
||
|
||
function MonsterCampMainPanel:SetSingleTrailData(go, data)
|
||
local title = Util.GetGameObject(go, "title"):GetComponent("Image")
|
||
local curwave = Util.GetGameObject(go, "curwave"):GetComponent("Text")
|
||
local canFightWave = Util.GetGameObject(go, "canFightWave"):GetComponent("Text")
|
||
local openTime = Util.GetGameObject(go, "openTime"):GetComponent("Text")
|
||
title.sprite = this.spLoader:LoadSprite(FourElementNameImage[data.fourElementType])
|
||
curwave.text = (data.monsterWave + 1) .. Language[10295]
|
||
if data.canFightTime >= campTowerSetting.TimesStoreMax then
|
||
canFightWave.text = string.format("<color=#%s>%s</color>", "64450B", data.canFightTime)
|
||
else
|
||
canFightWave.text = string.format("<color=#%s>%s</color>", "64450B", data.canFightTime)
|
||
end
|
||
|
||
openTime.text = this:GetOpenTime(data.fourElementType) .." ".. Language[10353]
|
||
Util.SetGray(go, data.openState == 0)
|
||
Util.AddOnceClick(go, function()
|
||
if data.openState == 1 then
|
||
UIManager.OpenPanel(UIName.FourElementMonsterCampPanel, data.fourElementType)
|
||
else
|
||
PopupTipPanel.ShowTip(Language[11894])
|
||
end
|
||
end)
|
||
end
|
||
|
||
function MonsterCampMainPanel:OnSortingOrderChange()
|
||
|
||
end
|
||
|
||
--界面关闭时调用(用于子类重写)
|
||
function MonsterCampMainPanel:OnClose()
|
||
|
||
end
|
||
|
||
--界面销毁时调用(用于子类重写)
|
||
function MonsterCampMainPanel:OnDestroy()
|
||
this.spLoader:Destroy()
|
||
SubUIManager.Close(this.UpView)
|
||
trails = {}
|
||
for i = 1, #trails do
|
||
ClearRedPointObject(redTrailType[i], Util.GetGameObject(trails[i], "redPoint"))
|
||
end
|
||
ClearRedPointObject(RedPointType.HeartDemon, Util.GetGameObject(self.gameObject, "Bg/btnWave/redPoint"))
|
||
end
|
||
|
||
return MonsterCampMainPanel
|