miduo_client/Assets/ManagedResources/~Lua/Modules/JumpServer/JumpServerPanel.lua

340 lines
13 KiB
Lua
Raw Normal View History

2021-06-15 20:08:14 +08:00
require("Base/BasePanel")
JumpServerPanel = Inherit(BasePanel)
local specialConfig = ConfigManager.GetConfig(ConfigName.SpecialConfig)
2021-09-23 12:01:58 +08:00
local globalSys = ConfigManager.GetConfig(ConfigName.GlobalSystemConfig)
2021-06-15 20:08:14 +08:00
local type = {
2021-09-23 12:01:58 +08:00
[JumpServer_Type.HightLadder] = {
2021-06-15 20:08:14 +08:00
id = JumpServer_Type.HightLadder, --跨服天梯
2021-09-23 12:01:58 +08:00
funcId = FUNCTION_OPEN_TYPE.JumpServer_HightLadder,
sort = 1,
2021-11-19 17:01:10 +08:00
bg = "r_Dungeon_rendi_03",
2021-06-15 20:08:14 +08:00
name = "k_kuafuwanfa_luofuzhengfeng",
live = "m_chsm_0035_png",
livePos = Vector2(274.5, -408.1),
liveSize = Vector2(1612, 1802),
tipBg = "r_Dungeon_juqingdian",
resetTime = string.format("<color=#BA9AC2>%s</color>",specialConfig[97].Value),
tip = string.format("<color=#BA9AC2>%s</color>",specialConfig[97].Value),
2021-08-24 16:48:41 +08:00
redPointType = RedPointType.JumpServer_HightLadder,
tipStr = "",
state = 0
2021-06-15 20:08:14 +08:00
},
2021-09-23 12:01:58 +08:00
[JumpServer_Type.YuXuLunDao] = {
id = JumpServer_Type.YuXuLunDao,
funcId = FUNCTION_OPEN_TYPE.JumpServer_YuXu,
sort = 3,
bg = "r_Dungeon_rendi_01",
2021-09-07 17:05:46 +08:00
name = "y_yuxulundao_yuxurukou_zh",
2021-09-30 15:12:02 +08:00
live = "lingjijuyuan",
livePos = Vector2(149, 13),
liveSize = Vector2(1024, 356),
tipBg = "r_Dungeon_juqingdian",
2021-09-10 16:25:38 +08:00
resetTime = string.format("<color=#A5ADD1>%s</color>",specialConfig[127].Value),
tip = string.format("<color=#A5ADD1>%s</color>",specialConfig[127].Value),
2021-10-12 19:50:41 +08:00
redPointType = RedPointType.WorldArena_reward,
tipStr = "",
2021-09-23 12:01:58 +08:00
state = 0,
2021-06-15 20:08:14 +08:00
},
2021-09-23 12:01:58 +08:00
[JumpServer_Type.QiJieShiLian] = {
2021-09-06 17:21:53 +08:00
id = JumpServer_Type.QiJieShiLian,
2021-09-23 12:01:58 +08:00
funcId = FUNCTION_OPEN_TYPE.QIJIESHILIAN,
sort = 2,
2021-09-23 19:23:27 +08:00
bg = "m_syjm_0026_png",
2021-09-06 17:21:53 +08:00
name = "q_qjsl_rikou_ysz",
2021-09-23 19:23:27 +08:00
live = "",
livePos = Vector2(0,0),
liveSize = Vector2(0,0),
2021-09-06 17:21:53 +08:00
tipBg = "r_Dungeon_juqingdian",
resetTime = string.format("<color=#BA9AC2>%s</color>",specialConfig[127].Value),
2021-09-06 17:21:53 +08:00
tip = "",
2021-09-22 16:25:29 +08:00
redPointType = RedPointType.QiJieShiLian,
2021-09-06 17:21:53 +08:00
tipStr = "",
2021-09-23 12:01:58 +08:00
state = 0,
2021-06-15 20:08:14 +08:00
},
2021-11-11 10:06:49 +08:00
[JumpServer_Type.LingMaiMiJing] = {
id = JumpServer_Type.LingMaiMiJing,
funcId = FUNCTION_OPEN_TYPE.LINGMAIMIJING,
2021-09-23 12:01:58 +08:00
sort = 4,
2021-11-19 17:01:10 +08:00
bg = "r_Dungeon_rendi_01",
name = "l_lmmj_rukouzi",
live = "z_zddh_yj",
livePos = Vector2(251,-26),
liveSize = Vector2(550,500),
tipBg = "r_Dungeon_rendi_01",
2021-11-11 10:06:49 +08:00
resetTime = string.format("<color=#BA9AC2>%s</color>",specialConfig[137].Value),
tip = "",
redPointType = RedPointType.LingMaiMiJing,
tipStr = "",
state = 0,
2021-06-15 20:08:14 +08:00
},
}
--初始化组件(用于子类重写)
function JumpServerPanel:InitComponent()
2021-08-24 16:48:41 +08:00
self.spLoader = SpriteLoader.New()
2021-06-15 20:08:14 +08:00
-- 屏幕适配修改
2021-08-24 16:48:41 +08:00
self.btnRoot = Util.GetGameObject(self.gameObject, "btnRoot")
2021-09-10 16:25:38 +08:00
-- self.btnRoot.transform.localScale = Vector3.one * UIManager.adapterScale
2021-08-24 16:48:41 +08:00
self.carbons = {}
self.carbonsRedPoint = {}
2021-09-23 12:01:58 +08:00
for k,v in pairs(type) do
local btn = Util.GetGameObject(self.gameObject, "btnRoot/circle/root/otherBtn"..v.sort)
self.carbons[k] = btn
self.carbonsRedPoint[k] = Util.GetGameObject(btn, "bg/carbon/redPoint")
2021-08-24 16:48:41 +08:00
end
self.effect = Util.GetGameObject(self.gameObject, "CarbonTypePanel_effect")
self.wind = Util.GetGameObject(self.gameObject, "CarbonTypePanel_effect/juneng_chenggong/GameObject")
self.backBtn = Util.GetGameObject(self.gameObject, "backBtn")
self.AnimRoot = Util.GetGameObject(self.gameObject, "btnRoot/circle/root")
self.UpView = SubUIManager.Open(SubUIConfig.UpView, self.gameObject.transform)
2021-06-15 20:08:14 +08:00
end
--绑定事件(用于子类重写)
function JumpServerPanel:BindEvent()
2021-08-24 16:48:41 +08:00
Util.AddClick(self.backBtn,function()
2021-06-15 20:08:14 +08:00
self:ClosePanel()
end)
2021-09-23 12:01:58 +08:00
for k,v in pairs(type) do
if v.redPointType and self.carbons[k] then
BindRedPointObject(v.redPointType, self.carbonsRedPoint[k])
2021-06-15 20:08:14 +08:00
end
end
end
--添加事件监听(用于子类重写)
function JumpServerPanel:AddListener()
end
--移除事件监听(用于子类重写)
function JumpServerPanel:RemoveListener()
end
--跨服
function JumpServerPanel:OnOpen()
2021-08-24 16:48:41 +08:00
self.UpView:OnOpen({showType = UpViewOpenType.ShowLeft, panelType = PanelType.Main})
2021-06-15 20:08:14 +08:00
end
--界面打开时调用(用于子类重写)
function JumpServerPanel:OnShow(...)
2021-09-23 12:01:58 +08:00
for k,v in pairs(type) do
if v.redPointType and self.carbons[k] then
CheckRedPointStatus(v.redPointType)
2021-06-15 20:08:14 +08:00
end
end
JumpServerManager.GetWorldArenaInfoRequest(function()
self:UpdateCarbonContent()
end)
2021-06-15 20:08:14 +08:00
-- 音效
-- SoundManager.PlayMusic(SoundConfig.BGM_Carbon)
end
2021-08-24 16:48:41 +08:00
function JumpServerPanel:UpdateCarbonContent()
for k,v in ipairs(self.carbons) do
2021-06-15 20:08:14 +08:00
local data = type[k]
2021-08-24 16:48:41 +08:00
Util.GetGameObject(v, "bg"):GetComponent("Image").sprite = self.spLoader:LoadSprite(data.bg)
2021-09-23 12:01:58 +08:00
if data.id == -1 or globalSys[data.funcId].IsOpen == 0 then
2021-06-15 20:08:14 +08:00
Util.GetGameObject(v, "bg/carbon"):SetActive(false)
Util.GetGameObject(v, "bg/InfoBg"):SetActive(false)
Util.GetGameObject(v, "bg/Text").gameObject:SetActive(true)
v:GetComponent("Button").enabled = false
2021-07-14 15:08:54 +08:00
Util.SetGray(v,true)
2021-08-24 16:48:41 +08:00
else
2021-06-15 20:08:14 +08:00
Util.GetGameObject(v, "bg/carbon"):SetActive(true)
Util.GetGameObject(v, "bg/InfoBg"):SetActive(true)
Util.GetGameObject(v, "bg/InfoBg/InfoBg"):SetActive(false)
2021-08-24 16:48:41 +08:00
Util.GetGameObject(v, "bg/Text").gameObject:SetActive(false)
2021-06-15 20:08:14 +08:00
v:GetComponent("Button").enabled = true
local live = Util.GetGameObject(v, "bg/carbon/Live")
local name = Util.GetGameObject(v, "bg/carbon/Name")
local timeReset = Util.GetGameObject(v, "bg/InfoBg/timeReset")
2021-08-24 16:48:41 +08:00
live:GetComponent("Image").sprite = self.spLoader:LoadSprite(data.live)
2021-06-15 20:08:14 +08:00
live:GetComponent("RectTransform").localPosition = data.livePos
live:GetComponent("RectTransform").sizeDelta = data.liveSize
2021-08-24 16:48:41 +08:00
name:GetComponent("Image").sprite = self.spLoader:LoadSprite(data.name)
timeReset:GetComponent("Text").text = string.format(data.resetTime)
self:SystemState(data.id,function()
if type[k].state < 0 then
timeReset:GetComponent("Text").text = type[k].tipStr
2021-07-14 15:08:54 +08:00
Util.SetGray(v,true)
else
Util.SetGray(v,false)
end
end)
2021-06-15 20:08:14 +08:00
Util.AddOnceClick(v,function()
2021-08-24 16:48:41 +08:00
self:BtnClick(data.id)
2021-06-15 20:08:14 +08:00
end)
end
2021-07-14 15:08:54 +08:00
end
end
2021-08-24 16:48:41 +08:00
function JumpServerPanel:BtnClick(id)
if id <= 0 then PopupTipPanel.ShowTip("敬请期待") return end
if type[id].state ~= 1 then PopupTipPanel.ShowTip(type[id].tipStr) return end
2021-07-14 15:08:54 +08:00
if id == JumpServer_Type.HightLadder then
2021-08-24 16:48:41 +08:00
UIManager.OpenPanel(UIName.JumpServerHightLadderPanel)
2021-06-15 20:08:14 +08:00
end
if id == JumpServer_Type.YuXuLunDao then
2021-10-14 21:36:29 +08:00
NetManager.CrossYuXuLunDaoGetInfoRequest(1,function(msg)
2021-09-30 15:12:02 +08:00
UIManager.OpenPanel(UIName.WorldArenaMainPanel,msg)
end)
end
2021-09-06 17:21:53 +08:00
if id == JumpServer_Type.QiJieShiLian then
2021-09-10 10:30:50 +08:00
local qiejieConfig = ConfigManager.GetConfig(ConfigName.QijieStage)
NetManager.SevenWorldInfoRequest(0,function (msg)
QiJieShiLianManager.IsLock = false
2021-09-10 10:30:50 +08:00
if qiejieConfig[msg.id] then
UIManager.OpenPanel(UIName.QiJieShiLianPanel)
else
LogError("七界试炼不存在该ID"..tostring(msg.id))
PopupTipPanel.ShowTip("无法进入,请联系客服!")
end
end)
2021-09-06 17:21:53 +08:00
end
2021-11-11 10:06:49 +08:00
if id == JumpServer_Type.LingMaiMiJing then
2021-11-18 15:14:39 +08:00
NetManager.GetLingMaiInfoRequest(0,function ()
if LingMaiMiJingManager.state == 0 then
2021-11-19 15:38:41 +08:00
PopupTipPanel.ShowTip("今日不开放灵脉秘境玩法!")
2021-11-18 15:14:39 +08:00
else
if not LingMaiMiJingManager.GetData() then
LogError("灵脉试炼数据为空")
PopupTipPanel.ShowTip("灵脉暂无法进入,请耐心等待!")
return
end
UIManager.OpenPanel(UIName.LingMaiMiJingPanel)
end
end)
2021-11-11 10:06:49 +08:00
end
2021-06-15 20:08:14 +08:00
end
2021-08-24 16:48:41 +08:00
function JumpServerPanel:OnSortingOrderChange()
Util.AddParticleSortLayer(self.effect, self.sortingOrder + 1)
Util.AddParticleSortLayer(self.wind, self.sortingOrder + 1)
2021-07-14 15:08:54 +08:00
end
2021-08-24 16:48:41 +08:00
function JumpServerPanel:SystemState(id,fun)
if id <= 0 then return -6,"敬请期待" end
2021-08-23 19:44:18 +08:00
local func = function ()
if fun then
fun()
fun = nil
end
end
2021-06-15 20:08:14 +08:00
if id == JumpServer_Type.HightLadder then
2021-08-24 16:48:41 +08:00
--判断功能是否开启
2021-07-14 15:48:34 +08:00
if not ActTimeCtrlManager.IsQualifiled(FUNCTION_OPEN_TYPE.JumpServer_HightLadder) then
2021-08-24 16:48:41 +08:00
type[id].state = -1
type[id].tipStr = ActTimeCtrlManager.GetFuncTip( FUNCTION_OPEN_TYPE.JumpServer_HightLadder)
2021-09-23 12:01:58 +08:00
func()
return
end
2021-08-24 16:48:41 +08:00
--判断世界等级是否够
2021-06-15 20:08:14 +08:00
local conFigWorldLevel = ConfigManager.GetConfigData(ConfigName.MServerArenaSetting,1).WorldLevel
if PlayerManager.worldLeve < conFigWorldLevel then --如果世界等级不足
2021-08-24 16:48:41 +08:00
type[id].state = -2
type[id].tipStr = string.format("世界等级到达%s后开启",conFigWorldLevel)
2021-08-23 19:44:18 +08:00
func()
2021-09-23 12:01:58 +08:00
return
2021-06-15 20:08:14 +08:00
end
2021-08-24 16:48:41 +08:00
--判断是否在赛季中
2021-06-15 20:08:14 +08:00
if ActTimeCtrlManager.SingleFuncState(FUNCTION_OPEN_TYPE.JumpServer_HightLadder) == false then --如果未解锁
2021-08-24 16:48:41 +08:00
type[id].state = -3
type[id].tipStr = "赛季过渡中!"
2021-08-23 19:44:18 +08:00
func()
2021-09-23 12:01:58 +08:00
return
2021-06-15 20:08:14 +08:00
end
if not JumpServerManager.GetHightLadderDataIsStart() then
type[id].state = -4
type[id].tipStr = string.format("开服第%s周开放",ConfigManager.GetConfigData(ConfigName.MServerArenaSetting,1).OpenWeek)
elseif not JumpServerManager.GetHightLadderDataIsGroup() then
type[id].state = -5
type[id].tipStr = "未划分跨服分组,无法参与!"
else
type[id].state = 1
type[id].tipStr = ""
end
func()
2021-09-10 16:25:38 +08:00
elseif id== JumpServer_Type.YuXuLunDao then
-- 判断功能是否开启
if not ActTimeCtrlManager.IsQualifiled(FUNCTION_OPEN_TYPE.JumpServer_YuXu) then
type[id].state = -1
type[id].tipStr = ActTimeCtrlManager.GetFuncTip( FUNCTION_OPEN_TYPE.JumpServer_YuXu)
func()
return
end
-- 跨服相关判断
if not JumpServerManager.GetYuxuIsStart() then
type[id].state = -4
type[id].tipStr = string.format("开服第%s周开放",ConfigManager.GetConfigData(ConfigName.MServerArenaSetting,2).OpenWeek)
elseif not JumpServerManager.GetHightLadderDataIsGroup() then
type[id].state = -5
type[id].tipStr = "未划分跨服分组,无法参与!"
else
type[id].state = 1
type[id].tipStr = ""
end
func()
2021-09-15 14:02:39 +08:00
elseif id== JumpServer_Type.QiJieShiLian then
-- 判断功能是否开启
if not ActTimeCtrlManager.IsQualifiled(FUNCTION_OPEN_TYPE.QIJIESHILIAN) then
type[id].state = -1
type[id].tipStr = ActTimeCtrlManager.GetFuncTip( FUNCTION_OPEN_TYPE.QIJIESHILIAN)
func()
return
end
-- 跨服相关判断
if not JumpServerManager.GetQiJieIsStart() then
type[id].state = -4
type[id].tipStr = string.format("开服第%s周开放",ConfigManager.GetConfigData(ConfigName.MServerArenaSetting,3).OpenWeek)
elseif not JumpServerManager.GetHightLadderDataIsGroup() then
type[id].state = -5
type[id].tipStr = "未划分跨服分组,无法参与!"
else
type[id].state = 1
type[id].tipStr = ""
end
func()
2021-11-11 10:06:49 +08:00
elseif id== JumpServer_Type.LingMaiMiJing then
-- 判断功能是否开启
if not ActTimeCtrlManager.IsQualifiled(FUNCTION_OPEN_TYPE.LINGMAIMIJING) then
type[id].state = -1
type[id].tipStr = ActTimeCtrlManager.GetFuncTip( FUNCTION_OPEN_TYPE.LINGMAIMIJING)
func()
return
end
-- 跨服相关判断
if not JumpServerManager.GetLingMaiIsStart() then
type[id].state = -4
type[id].tipStr = string.format("开服第%s周开放",ConfigManager.GetConfigData(ConfigName.MServerLodeSetting,1).OpenWeek)
elseif not JumpServerManager.GetHightLadderDataIsGroup() then
type[id].state = -5
type[id].tipStr = "未划分跨服分组,无法参与!"
else
type[id].state = 1
type[id].tipStr = ""
end
func()
2021-06-15 20:08:14 +08:00
end
end
--界面关闭时调用(用于子类重写)
function JumpServerPanel:OnClose()
end
--界面销毁时调用(用于子类重写)
function JumpServerPanel:OnDestroy()
2021-08-24 16:48:41 +08:00
self.carbons = {}
2021-09-23 12:01:58 +08:00
for k,v in pairs(type) do
if v.redPointType and self.carbons[k] then
ClearRedPointObject(v.redPointType, self.carbonsRedPoint[k])
2021-06-15 20:08:14 +08:00
end
end
2021-08-24 16:48:41 +08:00
self.spLoader:Destroy()
2021-06-15 20:08:14 +08:00
end
return JumpServerPanel