jx_client_neibu/lua_probject/main_project/main/majiang/MJWitnessView.lua

196 lines
6.5 KiB
Lua

local WitnessView = require("Game.View.WitnessView")
local TableBG = require("Game.Data.TableBG")
local HuCardImg = import(".HuCardImg")
local MJSettingView = require("main.majiang.MJSettingViewNew")
local TX_GameEvent = import(".TX_GameEvent")
local bg_config = {
{ id = 1, url = "base/main_majiang/bg/bg1", thumb = "ui://Main_Majiang/b01" },
{ id = 2, url = "base/main_majiang/bg/bg2", thumb = "ui://Main_Majiang/b02" },
{ id = 3, url = "base/main_majiang/bg/bg3", thumb = "ui://Main_Majiang/b03" },
{ id = 3, url = "base/main_majiang/bg/bg4", thumb = "ui://Main_Majiang/b04" }
}
local M = {}
setmetatable(M, { __index = WitnessView })
M.HuCardImg = HuCardImg
--- Create a new
function M.new()
local self = setmetatable({}, { __index = M })
self.class = "MJMJWitness"
self:init()
return self
end
function M:init()
getmetatable(M).__index.init(self)
UIPackage.AddPackage("base/main_majiang/ui/Main_Majiang")
end
function M:InitView()
local room = self._room
UIPackage.AddPackage("base/main_majiang/ui/Main_Majiang")
getmetatable(M).__index.InitView(self,
string.format("ui://Main_Majiang/Main_new_%d_jiangxi", room.room_config.people_num))
--切换桌布功能
local default_bg = 1
local changeTable = self._view:GetChild('btn_change')
if changeTable then
changeTable.onClick:Set(function()
default_bg = default_bg + 1 > #bg_config and 1 or default_bg + 1
TableBG.LoadTableBG(default_bg, self._room.game_id, self._root_view, bg_config)
end)
end
TableBG.LoadTableBG(default_bg, self._room.game_id, self._root_view, bg_config)
self.btn_setting = self._view:GetChild("btn_setting")
self.btn_setting.onClick:Set(function()
local view = MJSettingView.new(self, true)
view:Show()
end)
end
local majiang_asset_path = "base/main_majiang/sound/"
function M:PlayMJSound(path)
ViewUtil.PlaySound(self.asset_group, majiang_asset_path .. path)
end
function M:PlayMJMusic(path)
ViewUtil.PlayMuisc(self.asset_group, majiang_asset_path .. path)
end
function M:PlaySound(group, sex, path)
local sex_path = ViewUtil.Sex_Chat[sex]
local path1 = majiang_asset_path .. string.format("%s/%s.mp3", sex_path, path)
ViewUtil.PlaySound(group, path1)
end
function M:EventInit()
local _gamectr = self._gamectr
local _room = self._room
_gamectr:AddEventListener(GameEvent.PlayerEnter, function(...)
self:PlayMJSound("user_enter.mp3")
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)]
info2:SetPlayer(p)
info2:FillData()
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
self:PlayMJSound("user_leave.mp3")
end)
_gamectr:AddEventListener(GameEvent.WitnessPlayerEnter, function(...)
self:PlayMJSound("user_enter.mp3")
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(TX_GameEvent.SendCards, function(...)
print("lingmeng witness SendCards")
self:ShowJing()
if self._clearingView then
self._clearingView:Destroy()
self._clearingView = nil
end
self:UpdateRound()
self:RemoveCursor()
self._state.selectedIndex = 4
local list = _room.player_list
for i = 1, #list do
local p = list[i]
local info = self._player_info[self:GetPos(p.seat)]
info:FillData(p)
info:MarkBank(p.seat == _room.banker_seat)
info:Ready(false)
local card_info = self._player_card_info[self:GetPos(p.seat)]
card_info:Clear()
card_info:UpdateHandCardWitness()
end
end)
_gamectr:AddEventListener(TX_GameEvent.EventTurn, function(...)
print("lingmeng witness EventTurn")
local arg = { ... }
-- self._left_time = 15
local seat = arg[1]
self:UpdateCardBox(self:GetPos(seat))
local playerInfo = self._player_info[self:GetPos(seat)]
local info = self._player_card_info[self:GetPos(seat)]
print("lingmeng hand_left_count", info._player.hand_left_count)
info._player.hand_left_count = info._player.hand_left_count + 1
info:UpdateHandCardWitness(true)
end)
_gamectr:AddEventListener(TX_GameEvent.OutCard, function(...)
print("lingmeng witness OutCard")
self._left_time = 0
local arg = { ... }
local p = arg[1]
local card = arg[2]
local seat = p.seat
local info = self._player_card_info[self:GetPos(seat)]
self:RemoveCursor()
info:UpdateHandCardWitness(false)
info:UpdateOutCardList(nil, nil, self._cursor)
self:PlayMJSound("chupai.mp3")
self:PlaySound("LiChuan_MJ", p.self_user.sex, tostring(card))
if seat == _room.self_player.seat then
_room.curren_outcard_seat = -1
end
print("ling 2zhihou2")
end)
end
return M