源战役客户端
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.
 
 
 
 
 

147 rindas
3.6 KiB

require("sysinfo.MessageItem")
require("sysinfo.ChuanwenItem")
require("game.chat.HornTv")
require("sysinfo.SysInfoMiniView")
require("sysinfo.MessageItemNew")
require("sysinfo.SysInfoNoticeView")
require("sysinfo.ExpMessageItem")
require("sysinfo.SysInfoExpView")
require("sysinfo.SysInfoHornView")
require("sysinfo.MiniMessageView")
SysInfoCtrl = SysInfoCtrl or BaseClass()
SysInfoCtrl.SysInfoType = {
MINI = 1,
NOTICE = 2,
EXP = 3,
HORN = 4,
}
function SysInfoCtrl:__init()
if SysInfoCtrl.Instance ~= nil then
LogError("SysInfoCtrl is a singleton class")
end
SysInfoCtrl.Instance = self
self.callback_table = {} --回调列表
self.mini_view = MiniMessageView.New()
self.mini_view:Open()
self.notice_view = SysInfoNoticeView.New()
self.horn_view = SysInfoHornView.New()
self.exp_view = SysInfoExpView.New()
self.count_down_time = 9999999 --倒计时时间
self.down_time_id = false
self.msg_handle_map = {
[SysInfoCtrl.SysInfoType.MINI] = SysInfoCtrl.AppendMiniMsg,
[SysInfoCtrl.SysInfoType.NOTICE] = SysInfoCtrl.AppendNoticeMsg,
[SysInfoCtrl.SysInfoType.HORN] = SysInfoCtrl.AppendHornMsg,
[SysInfoCtrl.SysInfoType.EXP] = SysInfoCtrl.AppendExpMsg,
}
end
function SysInfoCtrl:__delete()
self.mini_view:DeleteMe()
self.notice_view:DeleteMe()
self.horn_view:DeleteMe()
self.exp_view:DeleteMe()
end
function SysInfoCtrl:AppendMsg(msg_type, ...)
local handle_func = self.msg_handle_map[msg_type]
if not handle_func then
print ("Error!SystemInfo Type Error!", msg_type)
return
end
handle_func(self, ...)
end
function SysInfoCtrl:AppendMiniMsg(content)
if content == nil or content == "" then return end
if self.mini_view.can_show then
self.mini_view:AppendMessage(content)
end
end
function SysInfoCtrl:AppendNoticeMsg(content)
if SceneManager:getInstance():IsNoonQuizScene() then return end
self.notice_view:AppendMessage(content)
end
function SysInfoCtrl:AppendHornMsg(content)
if SceneManager:getInstance():IsNoonQuizScene() then return end
self.horn_view:AppendMessage(content)
end
function SysInfoCtrl:AppendExpMsg( content, percent, is_normal, is_score )
if not lua_viewM.main_cancas_last_visible then
return
end
if content == nil or content == "" then
return
end
self.exp_view:AppendMessage(content, percent, is_normal, is_score)
end
function SysInfoCtrl:HideHornView(bool)
if self.horn_view then
self.horn_view:SetHide(bool)
end
end
function SysInfoCtrl:HideNoticeView(bool)
if self.notice_view then
self.notice_view:SetHide(bool)
end
end
function SysInfoCtrl:HideMiniView(bool)
if self.mini_view then
self.mini_view:SetHide(bool)
end
end
function SysInfoCtrl:ShowMiniView()
if self.mini_view then
self.mini_view.can_show = true
end
end
function SysInfoCtrl:TimeLater()
local function on_time_down( )
if self.count_down_time <= 0 or TableSize(self.callback_table) <=0 then
if self.down_time_id then
GlobalTimerQuest:CancelQuest(self.down_time_id)
self.down_time_id = nil
self.count_down_time = 9999999
end
else
self.count_down_time = self.count_down_time - 1
for k,v in pairs(self.callback_table) do
if type(v) == "function" then
v()
end
end
end
end
if not self.down_time_id then
self.down_time_id = GlobalTimerQuest:AddPeriodQuest(on_time_down, 1, -1)
end
end
function SysInfoCtrl:DeleteFuncCallBack( index )--删除计时器方法列表里面的方法
self.callback_table[index] = nil
end
function SysInfoCtrl:SetFuncCallBack( func,index )--添加计时器方法列表里面的方法
if type(func) == "function" then
self.callback_table[index] = func
self:TimeLater()
end
end