diff --git a/lua_probject/base_project/Game/Controller/Broadcast.lua b/lua_probject/base_project/Game/Controller/Broadcast.lua
new file mode 100644
index 00000000..a3631193
--- /dev/null
+++ b/lua_probject/base_project/Game/Controller/Broadcast.lua
@@ -0,0 +1,44 @@
+Broadcast = {}
+local _events = {}
+
+function Broadcast.AddListener(eventName, Func, Obj)
+ if _events[eventName] == nil then
+ _events[eventName] = {}
+ end
+ local event = _events[eventName]
+ event[#event + 1] = {
+ func = Func,
+ obj = Obj
+ }
+end
+
+function Broadcast.RemoveListener(eventName, func)
+ local event = _events[eventName]
+ if event == nil then
+ return
+ end
+
+ for _, e in pairs(event) do
+ if e.func == func then
+ event[_] = nil
+ return
+ end
+ end
+end
+
+function Broadcast.Send(eventName, ...)
+ local event = _events[eventName]
+ if event == nil then
+ return
+ end
+
+ for _, e in pairs(event) do
+ e.func(e.obj, ...)
+ end
+end
+
+BroadcastEvent = {
+
+ OnJoinsChange = 'OnJoinsChange'
+}
+
diff --git a/lua_probject/base_project/Game/View/EXsettingView.lua b/lua_probject/base_project/Game/View/EXsettingView.lua
new file mode 100644
index 00000000..51905481
--- /dev/null
+++ b/lua_probject/base_project/Game/View/EXsettingView.lua
@@ -0,0 +1,98 @@
+--设置窗口对象
+
+local EXSettingView = {}
+
+local M = EXSettingView
+setmetatable(M, { __index = BaseWindow })
+
+function EXSettingView:Show(room)
+ self._room = room
+
+ -- 房主,第一个进房间的人
+ local roomOwner = self._room.player_list[1].self_user.account_id
+
+ if roomOwner == DataManager.SelfUser.account_id then
+ self.cBtn.selectedIndex = 1
+ else
+ self.cBtn.selectedIndex = 0
+ end
+
+ BaseWindow.Show(self)
+end
+
+function EXSettingView.new(main_view, flag_witness)
+ local self = setmetatable({}, { __index = M })
+ self.class = 'EXSettingView'
+ self._close_destroy = true
+ self._mainView = main_view
+ self._flag_witness = flag_witness
+ self:init('ui://Main_Majiang/Setting')
+ return self
+end
+
+function M:init(url)
+ BaseWindow.init(self, url)
+
+ local view = self._view
+ local slider_sound = view:GetChild('slider_vedio_sound')
+ local slider_music = view:GetChild('slider_vedio_music')
+ local btn_music = view:GetChild('btn_vedio_music')
+ local btn_sound = view:GetChild('btn_vedio_sound')
+
+ self.cBtn = self._view:GetController('cBtn')
+
+ -- slider_sound.value = GameApplication.Instance.SoundValue
+ -- slider_music.value = GameApplication.Instance.MusicValue
+
+ slider_music.onChanged:Add(function()
+ -- GameApplication.Instance.MusicValue = slider_music.value
+ -- btn_music.selected = false
+ -- GameApplication.Instance.MusicMute = false;
+ end)
+
+ slider_sound.onChanged:Add(function()
+ -- GameApplication.Instance.SoundValue = slider_sound.value
+ -- btn_sound.selected = false
+ -- GameApplication.Instance.SoundMute = false;
+ end)
+
+ btn_sound.onClick:Add(function()
+ -- GameApplication.Instance.SoundMute = btn_sound.selected;
+ end)
+
+ btn_music.onClick:Add(function()
+ -- GameApplication.Instance.MusicMute = btn_music.selected;
+ end)
+
+ local _btn_logout = self._view:GetChild('btn_cancelRoom')
+ _btn_logout.onClick:Set(function()
+ if self._flag_witness then
+ local _room = DataManager.CurrenRoom
+ pt(_room)
+ self._mainView._gamectr:ExitWitnessGame(_room.play_id, _room.game_id,
+ _room.room_id)
+ ViewManager.ChangeView(ViewManager.View_Family)
+ else
+ if self._mainView.dismiss_room_cd_time > 0 then
+ ViewUtil.ErrorTip(nil, "您还处于解散冷却时间当中,请稍后重试!")
+ else
+ local _gamectr = ControllerManager.GetController(GameController)
+ _gamectr:AskDismissRoom()
+ end
+ end
+ end)
+
+ self._view:GetChild("btn_closeRoom").onClick:Set(function()
+ local _gamectr = ControllerManager.GetController(GameController)
+ _gamectr:LevelRoom(function(res)
+ print("退出房间")
+ if res.ReturnCode ~= 0 then
+ ViewUtil.ErrorTip(res.ReturnCode)
+ return
+ end
+ ViewManager.ChangeView(ViewManager.View_Family)
+ end)
+ end)
+end
+
+return M
diff --git a/lua_probject/base_project/Game/View/WitnessView.lua b/lua_probject/base_project/Game/View/WitnessView.lua
new file mode 100644
index 00000000..9086275c
--- /dev/null
+++ b/lua_probject/base_project/Game/View/WitnessView.lua
@@ -0,0 +1,27 @@
+local MJSettingView = require("main.majiang.MJSettingViewNew")
+local TableBG = require("Game.Data.TableBG")
+
+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 WitnessView = {}
+setmetatable(WitnessView, { __index = BaseView })
+function WitnessView:init()
+ self.btn_setting = self._view:GetChild("btn_setting")
+
+ self.btn_setting.onClick:Set(function()
+ local view = MJSettingView.new(self, true)
+ view:Show()
+ end)
+end
+
+function WitnessView:InitView()
+ local default_bg = 1
+ TableBG.LoadTableBG(default_bg, self._room.game_id, self._root_view, bg_config)
+end
+
+return WitnessView
\ No newline at end of file
diff --git a/wb_new_ui/assets/Main_Majiang/Main_new/Component/com_logo.xml b/wb_new_ui/assets/Main_Majiang/Main_new/Component/com_logo.xml
new file mode 100644
index 00000000..8284113a
--- /dev/null
+++ b/wb_new_ui/assets/Main_Majiang/Main_new/Component/com_logo.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/wb_new_ui/assets/Main_Majiang/Main_new/Image/121.png b/wb_new_ui/assets/Main_Majiang/Main_new/Image/121.png
new file mode 100644
index 00000000..733e4942
Binary files /dev/null and b/wb_new_ui/assets/Main_Majiang/Main_new/Image/121.png differ
diff --git a/wb_new_ui/assets/Main_Majiang/Main_new/Image/122.png b/wb_new_ui/assets/Main_Majiang/Main_new/Image/122.png
new file mode 100644
index 00000000..a06538b4
Binary files /dev/null and b/wb_new_ui/assets/Main_Majiang/Main_new/Image/122.png differ
diff --git a/wb_new_ui/assets/Main_Majiang/Main_new/Image/123.png b/wb_new_ui/assets/Main_Majiang/Main_new/Image/123.png
new file mode 100644
index 00000000..6eab1cda
Binary files /dev/null and b/wb_new_ui/assets/Main_Majiang/Main_new/Image/123.png differ
diff --git a/wb_new_ui/assets/Main_Majiang/Main_new/Image/124.png b/wb_new_ui/assets/Main_Majiang/Main_new/Image/124.png
new file mode 100644
index 00000000..bebdc2af
Binary files /dev/null and b/wb_new_ui/assets/Main_Majiang/Main_new/Image/124.png differ
diff --git a/wb_new_ui/assets/Main_Majiang/Main_new/Image/125.png b/wb_new_ui/assets/Main_Majiang/Main_new/Image/125.png
new file mode 100644
index 00000000..a00b2750
Binary files /dev/null and b/wb_new_ui/assets/Main_Majiang/Main_new/Image/125.png differ
diff --git a/wb_new_ui/assets/Main_Majiang/Main_new/Image/126.png b/wb_new_ui/assets/Main_Majiang/Main_new/Image/126.png
new file mode 100644
index 00000000..6aeeb1fc
Binary files /dev/null and b/wb_new_ui/assets/Main_Majiang/Main_new/Image/126.png differ
diff --git a/wb_new_ui/assets/Main_Majiang/Main_new/Image/127.png b/wb_new_ui/assets/Main_Majiang/Main_new/Image/127.png
new file mode 100644
index 00000000..ea8e1f20
Binary files /dev/null and b/wb_new_ui/assets/Main_Majiang/Main_new/Image/127.png differ
diff --git a/wb_new_ui/assets/Main_Majiang/Main_new/Image/132.png b/wb_new_ui/assets/Main_Majiang/Main_new/Image/132.png
new file mode 100644
index 00000000..db83ff83
Binary files /dev/null and b/wb_new_ui/assets/Main_Majiang/Main_new/Image/132.png differ
diff --git a/wb_new_ui/assets/Main_Majiang/Main_new/Image/dismiss1.png b/wb_new_ui/assets/Main_Majiang/Main_new/Image/dismiss1.png
new file mode 100644
index 00000000..5ac6dc14
Binary files /dev/null and b/wb_new_ui/assets/Main_Majiang/Main_new/Image/dismiss1.png differ
diff --git a/wb_new_ui/assets/Main_Majiang/Main_new/Main/Component/btn_vipCancel.xml b/wb_new_ui/assets/Main_Majiang/Main_new/Main/Component/btn_vipCancel.xml
new file mode 100644
index 00000000..10f9838d
--- /dev/null
+++ b/wb_new_ui/assets/Main_Majiang/Main_new/Main/Component/btn_vipCancel.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/wb_new_ui/assets/Main_Majiang/Main_new/Main/Image/btn_continu_game.png b/wb_new_ui/assets/Main_Majiang/Main_new/Main/Image/btn_continu_game.png
new file mode 100644
index 00000000..9228bd87
Binary files /dev/null and b/wb_new_ui/assets/Main_Majiang/Main_new/Main/Image/btn_continu_game.png differ
diff --git a/wb_new_ui/assets/Main_Majiang/Main_new/Main/Image/btn_show_result.png b/wb_new_ui/assets/Main_Majiang/Main_new/Main/Image/btn_show_result.png
new file mode 100644
index 00000000..85e451d6
Binary files /dev/null and b/wb_new_ui/assets/Main_Majiang/Main_new/Main/Image/btn_show_result.png differ
diff --git a/wb_new_ui/assets/dongxiao/MovieClip1.jta b/wb_new_ui/assets/dongxiao/MovieClip1.jta
new file mode 100644
index 00000000..04145520
Binary files /dev/null and b/wb_new_ui/assets/dongxiao/MovieClip1.jta differ
diff --git a/wb_new_ui/assets/dongxiao/MovieClip3.jta b/wb_new_ui/assets/dongxiao/MovieClip3.jta
new file mode 100644
index 00000000..c7e600cb
Binary files /dev/null and b/wb_new_ui/assets/dongxiao/MovieClip3.jta differ
diff --git a/wb_new_ui/assets/dongxiao/MovieClip6.jta b/wb_new_ui/assets/dongxiao/MovieClip6.jta
new file mode 100644
index 00000000..9c08efbd
Binary files /dev/null and b/wb_new_ui/assets/dongxiao/MovieClip6.jta differ
diff --git a/wb_new_ui/assets/dongxiao/MovieClip7.jta b/wb_new_ui/assets/dongxiao/MovieClip7.jta
new file mode 100644
index 00000000..b443a956
Binary files /dev/null and b/wb_new_ui/assets/dongxiao/MovieClip7.jta differ
diff --git a/wb_new_ui/assets/dongxiao/MovieClip8.jta b/wb_new_ui/assets/dongxiao/MovieClip8.jta
new file mode 100644
index 00000000..2916ee90
Binary files /dev/null and b/wb_new_ui/assets/dongxiao/MovieClip8.jta differ
diff --git a/wb_new_ui/assets/dongxiao/package.xml b/wb_new_ui/assets/dongxiao/package.xml
new file mode 100644
index 00000000..0543720a
--- /dev/null
+++ b/wb_new_ui/assets/dongxiao/package.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/wb_unity_pro/Assets/ART/base/main_majiang/bg/bg4.png b/wb_unity_pro/Assets/ART/base/main_majiang/bg/bg4.png
new file mode 100644
index 00000000..df8b846b
Binary files /dev/null and b/wb_unity_pro/Assets/ART/base/main_majiang/bg/bg4.png differ
diff --git a/wb_unity_pro/Assets/ART/base/main_majiang/bg/bg4.png.meta b/wb_unity_pro/Assets/ART/base/main_majiang/bg/bg4.png.meta
new file mode 100644
index 00000000..08075e79
--- /dev/null
+++ b/wb_unity_pro/Assets/ART/base/main_majiang/bg/bg4.png.meta
@@ -0,0 +1,128 @@
+fileFormatVersion: 2
+guid: c8910f9a4cb5ac945b01a0503535e27d
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 11
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 2
+ aniso: -1
+ mipBias: -100
+ wrapU: -1
+ wrapV: -1
+ wrapW: -1
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ applyGammaDecoding: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: 3
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: 3
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: iPhone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: 3
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: Android
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: 3
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spritePackingTag:
+ pSDRemoveMatte: 0
+ pSDShowRemoveMatteOption: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/wb_unity_pro/Assets/ART/base/newgroup/ui/NewGroup_atlas0_2.png b/wb_unity_pro/Assets/ART/base/newgroup/ui/NewGroup_atlas0_2.png
new file mode 100644
index 00000000..f5126cb2
Binary files /dev/null and b/wb_unity_pro/Assets/ART/base/newgroup/ui/NewGroup_atlas0_2.png differ
diff --git a/wb_unity_pro/Assets/ART/base/newgroup/ui/NewGroup_atlas0_2.png.meta b/wb_unity_pro/Assets/ART/base/newgroup/ui/NewGroup_atlas0_2.png.meta
new file mode 100644
index 00000000..ae9794b1
--- /dev/null
+++ b/wb_unity_pro/Assets/ART/base/newgroup/ui/NewGroup_atlas0_2.png.meta
@@ -0,0 +1,92 @@
+fileFormatVersion: 2
+guid: 68725cda571bdde4ebe623714930575a
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 11
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: -1
+ aniso: -1
+ mipBias: -100
+ wrapU: -1
+ wrapV: -1
+ wrapW: -1
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ applyGammaDecoding: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spritePackingTag:
+ pSDRemoveMatte: 0
+ pSDShowRemoveMatteOption: 0
+ userData:
+ assetBundleName: base/newgroup/1876b2140d79b7dc6c2674f954027415
+ assetBundleVariant: