2025-08-28 15:02:07 +08:00
|
|
|
|
local MJMainView = require("main.majiang.MJMainView")
|
2025-09-11 21:11:49 +08:00
|
|
|
|
local MissileSender = import(".MissileSender")
|
2025-07-30 21:56:29 +08:00
|
|
|
|
|
|
|
|
|
|
local WitnessView = {}
|
2025-07-30 22:31:32 +08:00
|
|
|
|
|
2025-09-08 14:39:21 +08:00
|
|
|
|
local M = WitnessView
|
|
|
|
|
|
setmetatable(M, { __index = BaseView })
|
|
|
|
|
|
function M:init()
|
|
|
|
|
|
self._gamectr = ControllerManager.GetController(GameController)
|
|
|
|
|
|
self._room = DataManager.CurrenRoom
|
|
|
|
|
|
self._room.Witness = true
|
|
|
|
|
|
|
|
|
|
|
|
UIPackage.AddPackage('base/chat/ui/Chat')
|
|
|
|
|
|
|
|
|
|
|
|
self._eventmap = {}
|
2025-10-24 19:30:35 +08:00
|
|
|
|
-- self._scale = true
|
|
|
|
|
|
self._full = true
|
2025-09-10 20:32:26 +08:00
|
|
|
|
self._full_offset = false
|
|
|
|
|
|
self.class = "MainView"
|
2025-09-08 14:39:21 +08:00
|
|
|
|
self._style = 1
|
|
|
|
|
|
self._popEvent = true
|
2025-09-11 21:11:49 +08:00
|
|
|
|
self.Fix_Msg_Chat = ViewUtil.Fix_Msg_Chat -- 自动回复消息列表
|
2025-09-08 14:39:21 +08:00
|
|
|
|
self:InitView()
|
2025-07-30 22:31:32 +08:00
|
|
|
|
end
|
|
|
|
|
|
|
2025-09-11 21:11:49 +08:00
|
|
|
|
-- 语音是否禁止
|
|
|
|
|
|
local record_baned = 0
|
|
|
|
|
|
|
2025-09-19 16:34:16 +08:00
|
|
|
|
local function GetPlayer(self, playerId)
|
|
|
|
|
|
for _, p in pairs(self._room.player_list) do
|
|
|
|
|
|
if playerId == p.self_user.account_id then
|
|
|
|
|
|
return p
|
|
|
|
|
|
end
|
|
|
|
|
|
end
|
|
|
|
|
|
return nil
|
|
|
|
|
|
end
|
|
|
|
|
|
|
2025-09-08 14:39:21 +08:00
|
|
|
|
function M:InitView(url)
|
|
|
|
|
|
local room = self._room
|
|
|
|
|
|
BaseView.InitView(self, url)
|
|
|
|
|
|
|
2025-07-30 22:31:32 +08:00
|
|
|
|
self.com_logocType = self._view:GetChild("com_logo"):GetController("cType")
|
2025-10-10 20:34:13 +08:00
|
|
|
|
self._state = self._view:GetController("state")
|
2025-07-30 22:31:32 +08:00
|
|
|
|
|
2025-08-28 15:02:07 +08:00
|
|
|
|
self.com_notice = self._view:GetChild("com_notice")
|
2025-10-24 19:30:35 +08:00
|
|
|
|
|
|
|
|
|
|
if self._room.self_player.entrust then
|
|
|
|
|
|
self:MarkSelfTuoguan()
|
|
|
|
|
|
end
|
2025-08-28 15:02:07 +08:00
|
|
|
|
end
|
|
|
|
|
|
|
2025-09-11 21:11:49 +08:00
|
|
|
|
function M:EventInit()
|
|
|
|
|
|
local _gamectr = self._gamectr
|
|
|
|
|
|
local _room = self._room
|
|
|
|
|
|
|
|
|
|
|
|
_gamectr:AddEventListener(GameEvent.PlayerEnter, function(...)
|
2025-10-10 20:34:13 +08:00
|
|
|
|
ViewUtil.PlaySound("WitnessView", "base/main_majiang/sound/user_enter.mp3")
|
2025-09-11 21:11:49 +08:00
|
|
|
|
local arg = { ... }
|
|
|
|
|
|
local p = arg[1]
|
|
|
|
|
|
local info1 = self._player_info[self:GetPos(p.seat)]
|
|
|
|
|
|
info1:FillData(p)
|
|
|
|
|
|
info1._view.visible = true
|
|
|
|
|
|
|
|
|
|
|
|
local info2 = self._player_card_info[self:GetPos(p.seat)]
|
2025-10-10 20:34:13 +08:00
|
|
|
|
if info2.SetPlayer then
|
|
|
|
|
|
info2:SetPlayer(p)
|
|
|
|
|
|
info2:FillData()
|
|
|
|
|
|
end
|
2025-09-11 21:11:49 +08:00
|
|
|
|
end)
|
|
|
|
|
|
|
|
|
|
|
|
_gamectr:AddEventListener(GameEvent.PlayerLeave, function(...)
|
|
|
|
|
|
local arg = { ... }
|
|
|
|
|
|
local p = arg[1]
|
|
|
|
|
|
local info1 = self._player_info[self:GetPos(p.seat)]
|
|
|
|
|
|
info1._view.visible = false
|
2025-10-10 20:34:13 +08:00
|
|
|
|
ViewUtil.PlaySound("WitnessView", "base/main_majiang/sound/user_leave.mp3")
|
2025-09-11 21:11:49 +08:00
|
|
|
|
end)
|
|
|
|
|
|
|
|
|
|
|
|
_gamectr:AddEventListener(GameEvent.WitnessPlayerEnter, function(...)
|
2025-10-10 20:34:13 +08:00
|
|
|
|
ViewUtil.PlaySound("WitnessView", "base/main_majiang/sound/user_enter.mp3")
|
|
|
|
|
|
|
2025-09-11 21:11:49 +08:00
|
|
|
|
local arg = { ... }
|
|
|
|
|
|
local witnessPlayerList = arg[1]
|
|
|
|
|
|
self._room.witness_player_list = witnessPlayerList
|
|
|
|
|
|
|
|
|
|
|
|
local _room = DataManager.CurrenRoom
|
|
|
|
|
|
local viewList_witness = self._view:GetChild('comp_witness'):GetChild('list_players')
|
|
|
|
|
|
if viewList_witness.numItems == #_room.witness_player_list then
|
|
|
|
|
|
viewList_witness:RefreshVirtualList()
|
|
|
|
|
|
else
|
|
|
|
|
|
viewList_witness.numItems = #_room.witness_player_list
|
|
|
|
|
|
end
|
|
|
|
|
|
end)
|
|
|
|
|
|
|
|
|
|
|
|
_gamectr:AddEventListener(GameEvent.WitnessPlayerLeave, function(...)
|
|
|
|
|
|
---- print("刷新托管数据=====")
|
|
|
|
|
|
local arg = { ... }
|
|
|
|
|
|
local player = arg[1]
|
|
|
|
|
|
local witnessPlayerList = self._room.witness_player_list
|
|
|
|
|
|
for i, _player in ipairs(witnessPlayerList) do
|
|
|
|
|
|
if _player.aid == player then
|
|
|
|
|
|
table.remove(witnessPlayerList, i)
|
|
|
|
|
|
break
|
|
|
|
|
|
end
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
local _room = DataManager.CurrenRoom
|
|
|
|
|
|
local viewList_witness = self._view:GetChild('comp_witness'):GetChild('list_players')
|
|
|
|
|
|
print("linemng", _room._flag_updateWitness, #_room.witness_player_list, viewList_witness.numItems)
|
|
|
|
|
|
if viewList_witness.numItems == #_room.witness_player_list then
|
|
|
|
|
|
viewList_witness:RefreshVirtualList()
|
|
|
|
|
|
else
|
|
|
|
|
|
viewList_witness.numItems = #_room.witness_player_list
|
|
|
|
|
|
end
|
|
|
|
|
|
end)
|
|
|
|
|
|
|
|
|
|
|
|
_gamectr:AddEventListener(
|
|
|
|
|
|
GameEvent.TupGuanOpen,
|
|
|
|
|
|
function(...)
|
|
|
|
|
|
---- print("刷新托管数据=====")
|
|
|
|
|
|
local arg = { ... }
|
|
|
|
|
|
local p = arg[1]
|
|
|
|
|
|
local info = self._player_info[self:GetPos(p.seat)]
|
|
|
|
|
|
self._left_time = tonumber(arg[3]) or 0
|
|
|
|
|
|
|
|
|
|
|
|
if info and info.IsShowTGTips then
|
|
|
|
|
|
info:IsShowTGTips(arg[2], arg[3])
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
if info and info.SetShowTGTips then
|
|
|
|
|
|
info:SetShowTGTips(arg[2], arg[3])
|
|
|
|
|
|
end
|
|
|
|
|
|
end
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
_gamectr:AddEventListener(
|
|
|
|
|
|
GameEvent.Interaction,
|
|
|
|
|
|
function(...)
|
|
|
|
|
|
local arg = { ... }
|
|
|
|
|
|
local data = arg[1]
|
|
|
|
|
|
local _type = arg[2]
|
|
|
|
|
|
|
|
|
|
|
|
-- 扔番茄
|
|
|
|
|
|
if _type == 7 then
|
|
|
|
|
|
local sendSeat = arg[3].sendSeat
|
|
|
|
|
|
local targetSeat = arg[3].targetSeat
|
|
|
|
|
|
local Missile = arg[3].Missile
|
|
|
|
|
|
self:Missile(sendSeat, targetSeat, Missile)
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
local p = arg[1]
|
|
|
|
|
|
if not p or not p.seat or p.seat == 0 then
|
|
|
|
|
|
return
|
|
|
|
|
|
end
|
|
|
|
|
|
if DataManager.BanInteractRoom == _room.room_id and p.seat ~= _room.self_player.seat then
|
|
|
|
|
|
return
|
|
|
|
|
|
end
|
|
|
|
|
|
local info = self._player_info[self:GetPos(p.seat)]
|
|
|
|
|
|
local ttype = arg[2]
|
|
|
|
|
|
if ttype == 5 then
|
|
|
|
|
|
local parm = arg[3]
|
|
|
|
|
|
local array = split(parm, '_')
|
|
|
|
|
|
local tp = self._room:GetPlayerById(tonumber(array[2]))
|
|
|
|
|
|
if not tp or not tp.seat or tp.seat == 0 then
|
|
|
|
|
|
return
|
|
|
|
|
|
end
|
|
|
|
|
|
local pos = self._view:GlobalToLocal(info._view:LocalToGlobal(info:GetHeadCenter()))
|
|
|
|
|
|
if tp.seat == p.seat then
|
|
|
|
|
|
for i = 1, #_room.player_list do
|
|
|
|
|
|
local player = _room.player_list[i]
|
|
|
|
|
|
if player.seat ~= tp.seat then
|
|
|
|
|
|
tinfo = self._player_info[self:GetPos(player.seat)]
|
|
|
|
|
|
tpos = self._view:GlobalToLocal(tinfo._view:LocalToGlobal(tinfo:GetHeadCenter()))
|
|
|
|
|
|
self:PlayInteractAnimation(array[1], pos, tpos)
|
|
|
|
|
|
end
|
|
|
|
|
|
end
|
|
|
|
|
|
else
|
|
|
|
|
|
local tinfo = self._player_info[self:GetPos(tp.seat)]
|
|
|
|
|
|
local tpos = self._view:GlobalToLocal(tinfo._view:LocalToGlobal(tinfo:GetHeadCenter()))
|
|
|
|
|
|
self:PlayInteractAnimation(array[1], pos, tpos)
|
|
|
|
|
|
end
|
|
|
|
|
|
elseif ttype == 3 then
|
|
|
|
|
|
if record_baned == 0 then
|
|
|
|
|
|
info:ShowInteraction(ttype, arg[3])
|
|
|
|
|
|
end
|
|
|
|
|
|
else
|
|
|
|
|
|
info:ShowInteraction(ttype, arg[3])
|
|
|
|
|
|
end
|
|
|
|
|
|
end
|
|
|
|
|
|
)
|
2025-09-12 15:36:45 +08:00
|
|
|
|
|
|
|
|
|
|
_gamectr:AddEventListener(GameEvent.OnUpdateInfo, function(...)
|
|
|
|
|
|
local arg = { ... }
|
|
|
|
|
|
local p = arg[1]
|
|
|
|
|
|
local t = arg[2]
|
|
|
|
|
|
-- 托管状态变化
|
|
|
|
|
|
if t == 5 then
|
|
|
|
|
|
if p == DataManager.CurrenRoom.self_player then
|
2025-10-24 19:30:35 +08:00
|
|
|
|
local player_info = self._player_info[self:GetPos(p.seat)]
|
2025-09-12 15:36:45 +08:00
|
|
|
|
if p.entrust then
|
|
|
|
|
|
self:closeTipOnTuoguan()
|
|
|
|
|
|
self:MarkSelfTuoguan()
|
2025-10-24 19:30:35 +08:00
|
|
|
|
player_info:MarkTuoguan()
|
2025-09-12 15:36:45 +08:00
|
|
|
|
else
|
|
|
|
|
|
self:UnmarkSelfTuoguan()
|
2025-10-24 19:30:35 +08:00
|
|
|
|
player_info:UnmarkTuoguan()
|
2025-09-12 15:36:45 +08:00
|
|
|
|
end
|
|
|
|
|
|
else
|
|
|
|
|
|
local player_info = self._player_info[self:GetPos(p.seat)]
|
|
|
|
|
|
if p.entrust then
|
|
|
|
|
|
player_info:MarkTuoguan()
|
|
|
|
|
|
else
|
|
|
|
|
|
player_info:UnmarkTuoguan()
|
|
|
|
|
|
end
|
|
|
|
|
|
end
|
|
|
|
|
|
end
|
|
|
|
|
|
end)
|
2025-09-18 13:32:05 +08:00
|
|
|
|
|
|
|
|
|
|
_gamectr:AddEventListener(GameEvent.AddScore, handler(self, self.OnAddScoreAnimation))
|
2025-10-24 19:30:35 +08:00
|
|
|
|
|
|
|
|
|
|
_gamectr:AddEventListener(
|
|
|
|
|
|
GameEvent.PlayerState,
|
|
|
|
|
|
function(...)
|
|
|
|
|
|
printlog("lingmeng OnEventOnlineState")
|
|
|
|
|
|
local arg = { ... }
|
|
|
|
|
|
local p = arg[1]
|
|
|
|
|
|
local info = self._player_info[self:GetPos(p.seat)]
|
|
|
|
|
|
info._ctr_offline.selectedIndex = p.line_state == 0 and 1 or 0
|
|
|
|
|
|
end
|
|
|
|
|
|
)
|
2025-09-12 15:36:45 +08:00
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
-- 标记自己托管
|
|
|
|
|
|
function M:MarkSelfTuoguan()
|
|
|
|
|
|
if self._com_tuoguan then
|
|
|
|
|
|
return
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
self._com_tuoguan = UIPackage.CreateObjectFromURL('ui://Common/com_tuoguan_self')
|
|
|
|
|
|
local com_tuoguan = self._com_tuoguan
|
2025-10-24 19:30:35 +08:00
|
|
|
|
self._view:AddChildAt(com_tuoguan, self._view:GetChildIndex(self._view:GetChild('btn_setting')) - 1)
|
|
|
|
|
|
-- GRoot.inst:AddChild(com_tuoguan)
|
|
|
|
|
|
com_tuoguan:GetChild('btn_cancel_tuoguan').visible = false
|
2025-09-16 21:35:09 +08:00
|
|
|
|
com_tuoguan:MakeFullScreen()
|
|
|
|
|
|
com_tuoguan:Center()
|
2025-09-12 15:36:45 +08:00
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
-- 取消标记自己托管
|
|
|
|
|
|
function M:UnmarkSelfTuoguan()
|
|
|
|
|
|
if self._com_tuoguan then
|
|
|
|
|
|
self._com_tuoguan:Dispose()
|
|
|
|
|
|
self._com_tuoguan = nil
|
|
|
|
|
|
end
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
-- 托管时关闭一些提示窗口,如起手胡、吃碰提示、海底,由扩展实现
|
|
|
|
|
|
function M:closeTipOnTuoguan()
|
2025-09-11 21:11:49 +08:00
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
function M:PlayChatSound(sex, chat_index)
|
|
|
|
|
|
local sex_path = ViewUtil.Sex_Chat[sex]
|
|
|
|
|
|
local path1 = string.format('base/common/sound/%s/chat_%s.mp3', sex_path, tostring(chat_index - 1))
|
|
|
|
|
|
GameApplication.Instance:PlaySound('base_chat', path1)
|
|
|
|
|
|
-- GameApplication.Instance:PlaySound(path1)
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
-- 获取消息使用的语言、序号
|
|
|
|
|
|
function M:GetChatMsgLanguage(msg_index)
|
|
|
|
|
|
local language = math.modf(msg_index / 100)
|
|
|
|
|
|
local index = math.fmod(msg_index, 100)
|
|
|
|
|
|
return language, index
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
function M:Missile(seat, targetSeat, Missile)
|
|
|
|
|
|
local animUrl = ""
|
|
|
|
|
|
local url = ""
|
|
|
|
|
|
if Missile == "boom" then
|
|
|
|
|
|
animUrl = "ui://Main_Majiang/bomb"
|
|
|
|
|
|
url = "ui://Common/boom"
|
|
|
|
|
|
elseif Missile == "egg" then
|
|
|
|
|
|
animUrl = "ui://Main_Majiang/egg"
|
|
|
|
|
|
url = "ui://Common/egg"
|
|
|
|
|
|
elseif Missile == "diamo" then
|
|
|
|
|
|
animUrl = "ui://Main_Majiang/jiezhi"
|
|
|
|
|
|
url = "ui://Common/diamo"
|
|
|
|
|
|
elseif Missile == "flower" then
|
|
|
|
|
|
animUrl = "ui://Main_Majiang/flower"
|
|
|
|
|
|
url = "ui://Common/flower"
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
local send = self._player_info[self:GetPos(seat)]
|
|
|
|
|
|
local target = self._player_info[self:GetPos(targetSeat)]
|
|
|
|
|
|
|
|
|
|
|
|
MissileSender.Send(url, send, target, self, animUrl, Missile, 5, 1)
|
|
|
|
|
|
end
|
|
|
|
|
|
|
2025-09-08 14:39:21 +08:00
|
|
|
|
function M:Show()
|
2025-08-28 15:02:07 +08:00
|
|
|
|
getmetatable(WitnessView).__index.Show(self)
|
|
|
|
|
|
self:DoNoticeAnimation()
|
|
|
|
|
|
end
|
|
|
|
|
|
|
2025-09-08 14:39:21 +08:00
|
|
|
|
function M:DoNoticeAnimation()
|
2025-08-28 15:02:07 +08:00
|
|
|
|
self.noticeIndex = self.noticeIndex or 1
|
|
|
|
|
|
if not DataManager.GameNotice or #DataManager.GameNotice == 0 then
|
|
|
|
|
|
return
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
local text_notice = self.com_notice:GetChild("text_notice")
|
|
|
|
|
|
text_notice.text = DataManager.GameNotice[self.noticeIndex]
|
|
|
|
|
|
local speed = 44
|
|
|
|
|
|
local time = text_notice.width / speed
|
|
|
|
|
|
|
|
|
|
|
|
text_notice.x = self.com_notice.width
|
|
|
|
|
|
|
|
|
|
|
|
local tween = text_notice:TweenMove(Vector2(-text_notice.width, text_notice.y), time):OnComplete(function()
|
|
|
|
|
|
self:DoNoticeAnimation()
|
|
|
|
|
|
end)
|
|
|
|
|
|
|
|
|
|
|
|
tween:SetEase(EaseType.Linear)
|
|
|
|
|
|
|
|
|
|
|
|
self.noticeIndex = self.noticeIndex + 1
|
|
|
|
|
|
if self.noticeIndex > #DataManager.GameNotice then
|
|
|
|
|
|
self.noticeIndex = 1
|
|
|
|
|
|
end
|
2025-09-03 21:58:19 +08:00
|
|
|
|
|
|
|
|
|
|
--强制让牌类型为1,只有一种牌
|
|
|
|
|
|
self._room.card_type = 1
|
2025-07-30 21:56:29 +08:00
|
|
|
|
end
|
|
|
|
|
|
|
2025-09-18 13:32:05 +08:00
|
|
|
|
function M:OnAddScoreAnimation(...)
|
|
|
|
|
|
print("OnAddScoreAnimation")
|
|
|
|
|
|
local arg = { ... }
|
|
|
|
|
|
local totalScoreList = arg[2].totalScoreList
|
|
|
|
|
|
local playerList = arg[2].playerList
|
|
|
|
|
|
local addScoreList = arg[2].addScoreList
|
|
|
|
|
|
pt(arg)
|
|
|
|
|
|
|
|
|
|
|
|
local scoreData = {}
|
|
|
|
|
|
for i = 1, #totalScoreList do
|
|
|
|
|
|
local p = {}
|
|
|
|
|
|
|
|
|
|
|
|
p.totalScore = totalScoreList[i]
|
|
|
|
|
|
p.player = playerList[i]
|
|
|
|
|
|
p.addScore = addScoreList[i]
|
|
|
|
|
|
|
|
|
|
|
|
scoreData[#scoreData + 1] = p
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
for _, p in pairs(scoreData) do
|
|
|
|
|
|
local infoView = self:GetPlayerInfo(p.player)
|
|
|
|
|
|
local player = GetPlayer(self, p.player)
|
|
|
|
|
|
player.cur_hp = p.totalScore
|
|
|
|
|
|
|
|
|
|
|
|
if p.addScore ~= 0 then
|
|
|
|
|
|
infoView:ScoreAnimation(p.addScore)
|
|
|
|
|
|
if player.cur_hp >= 0 then
|
|
|
|
|
|
infoView._view:GetChild("text_jifen").text = "+" .. player.cur_hp
|
|
|
|
|
|
else
|
|
|
|
|
|
infoView._view:GetChild("text_jifen").text = player.cur_hp
|
|
|
|
|
|
end
|
|
|
|
|
|
end
|
|
|
|
|
|
end
|
|
|
|
|
|
end
|
|
|
|
|
|
|
2025-09-10 20:32:26 +08:00
|
|
|
|
function M:OnUpdate()
|
2025-09-11 21:11:49 +08:00
|
|
|
|
local deltaTime = Time.deltaTime
|
2025-09-10 20:32:26 +08:00
|
|
|
|
if (self._popEvent) then
|
|
|
|
|
|
local func = self._gamectr:PopEvent()
|
|
|
|
|
|
if (func ~= nil) then
|
|
|
|
|
|
local success, result = pcall(func)
|
|
|
|
|
|
if success then
|
|
|
|
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
print("witness error")
|
|
|
|
|
|
print(result)
|
2025-11-26 17:46:48 +08:00
|
|
|
|
-- error(result)
|
2025-09-10 20:32:26 +08:00
|
|
|
|
end
|
|
|
|
|
|
end
|
|
|
|
|
|
end
|
2025-09-11 21:11:49 +08:00
|
|
|
|
|
2025-10-24 19:30:35 +08:00
|
|
|
|
local _left_time = self._left_time or 0
|
|
|
|
|
|
if (_left_time > 0) then
|
2025-09-11 21:11:49 +08:00
|
|
|
|
_left_time = _left_time - deltaTime
|
|
|
|
|
|
_left_time = math.max(0, _left_time)
|
|
|
|
|
|
local leftTime = math.floor(_left_time)
|
2025-10-24 19:30:35 +08:00
|
|
|
|
--旧的拼接方式
|
|
|
|
|
|
-- if leftTime < 10 then
|
|
|
|
|
|
-- self._tex_leftTime.text = '0' .. tostring(leftTime)
|
|
|
|
|
|
-- for i = 2, 4 do
|
|
|
|
|
|
-- local text = self["_tex_leftTime" .. i]
|
|
|
|
|
|
-- if text then
|
|
|
|
|
|
-- text.text = '0' .. tostring(leftTime)
|
|
|
|
|
|
-- end
|
|
|
|
|
|
-- end
|
|
|
|
|
|
-- else
|
|
|
|
|
|
-- self._tex_leftTime.text = tostring(leftTime)
|
|
|
|
|
|
-- for i = 2, 4 do
|
|
|
|
|
|
-- local text = self["_tex_leftTime" .. i]
|
|
|
|
|
|
-- if text then
|
|
|
|
|
|
-- text.text = tostring(leftTime)
|
|
|
|
|
|
-- end
|
|
|
|
|
|
-- end
|
|
|
|
|
|
-- end
|
2025-09-11 21:11:49 +08:00
|
|
|
|
self._tex_leftTime.text = string.format("%02d", _left_time)
|
|
|
|
|
|
self._left_time = _left_time
|
|
|
|
|
|
-- 桌面計時器聲音
|
|
|
|
|
|
if not self._curtime then
|
|
|
|
|
|
self._curtime = 15
|
|
|
|
|
|
end
|
2025-10-24 19:30:35 +08:00
|
|
|
|
if leftTime <= self._leftTime_xiangling and self._curtime ~= leftTime and leftTime ~= 0 then
|
2025-09-11 21:11:49 +08:00
|
|
|
|
self._curtime = leftTime
|
|
|
|
|
|
GameApplication.Instance:PlaySound('base/common/sound/timeup_alarm.mp3')
|
|
|
|
|
|
end
|
2025-10-24 19:30:35 +08:00
|
|
|
|
if self._leftTime_bianhong then
|
|
|
|
|
|
if leftTime <= 5 then
|
|
|
|
|
|
if self._tex_leftTime:GetController('poker_Color') then
|
|
|
|
|
|
self._tex_leftTime:GetController('poker_Color').selectedIndex = 1
|
|
|
|
|
|
end
|
|
|
|
|
|
else
|
|
|
|
|
|
if self._tex_leftTime:GetController('poker_Color') then
|
|
|
|
|
|
self._tex_leftTime:GetController('poker_Color').selectedIndex = 0
|
|
|
|
|
|
end
|
|
|
|
|
|
end
|
|
|
|
|
|
end
|
2025-09-11 21:11:49 +08:00
|
|
|
|
else
|
2025-10-24 19:30:35 +08:00
|
|
|
|
self:onLeftTimeOver()
|
2025-09-11 21:11:49 +08:00
|
|
|
|
if self._tex_leftTime then
|
|
|
|
|
|
self._tex_leftTime.text = '00'
|
|
|
|
|
|
end
|
|
|
|
|
|
for i = 2, 4 do
|
|
|
|
|
|
local text = self["_tex_leftTime" .. i]
|
|
|
|
|
|
if text then
|
|
|
|
|
|
text.text = '00'
|
|
|
|
|
|
end
|
|
|
|
|
|
end
|
|
|
|
|
|
end
|
2025-09-10 20:32:26 +08:00
|
|
|
|
end
|
|
|
|
|
|
|
2025-11-26 17:46:48 +08:00
|
|
|
|
function M:OnApplicationActive()
|
|
|
|
|
|
ViewUtil.ShowModalWait2()
|
|
|
|
|
|
ControllerManager.reset_witness_room = 0
|
|
|
|
|
|
ControllerManager.ResetWitnessRoom()
|
|
|
|
|
|
end
|
|
|
|
|
|
|
2025-10-24 19:30:35 +08:00
|
|
|
|
function M:onLeftTimeOver()
|
|
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
2025-09-10 20:32:26 +08:00
|
|
|
|
function M:DestroyPlayerInfo()
|
|
|
|
|
|
for i = 1, #self._player_info do
|
|
|
|
|
|
self._player_info[i]:Destroy()
|
|
|
|
|
|
end
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
function M:Destroy()
|
|
|
|
|
|
TimerManager.Clear()
|
2025-09-12 15:36:45 +08:00
|
|
|
|
self:UnmarkSelfTuoguan()
|
2025-09-10 20:32:26 +08:00
|
|
|
|
self:DestroyPlayerInfo()
|
|
|
|
|
|
DSTweenManager.ClearTween()
|
2025-09-19 16:34:16 +08:00
|
|
|
|
MissileSender.Clear()
|
2025-09-10 20:32:26 +08:00
|
|
|
|
|
|
|
|
|
|
NetResetConnectWindow.CloseNetReset()
|
|
|
|
|
|
Voice.CrealRecord()
|
|
|
|
|
|
ControllerManager.resetJionRoom = false
|
|
|
|
|
|
self._popEvent = false
|
|
|
|
|
|
GRoot.inst:HidePopup()
|
2025-11-06 17:37:53 +08:00
|
|
|
|
ViewUtil.CloseModalWait2()
|
2025-09-10 20:32:26 +08:00
|
|
|
|
GameApplication.Instance.StopMusic = 0
|
|
|
|
|
|
coroutine.stopAll()
|
|
|
|
|
|
UpdateBeat:Remove(self.OnUpdate, self)
|
|
|
|
|
|
BaseView.Destroy(self)
|
|
|
|
|
|
BaseWindow.DestroyAll()
|
|
|
|
|
|
ResourcesManager.UnLoadGroup('base_chat')
|
|
|
|
|
|
end
|
|
|
|
|
|
|
2025-09-08 14:39:21 +08:00
|
|
|
|
return M
|