2025-04-01 10:48:36 +08:00
---
--- Created by 谌建军.
--- DateTime: 2017/12/18 9:41
---
local PKMainView = import ( " main.poker.PKMainView " )
local TwoDouDiZhu_PlayerPokerInfoView = import ( " .TwoDouDiZhu_PlayerPokerInfoView " )
local TwoDouDiZhu_PlayerSelfPokerInfoView = import ( " .TwoDouDiZhu_PlayerSelfPokerInfoView " )
local TwoDouDiZhu_GameEvent = import ( " .TwoDouDiZhu_GameEvent " )
local TwoDouDiZhu_ResultView = import ( " .TwoDouDiZhu_ResultView " )
local TwoDouDiZhu_RightPanelView = import ( " .TwoDouDiZhu_RightPanelView " )
local PlayerInfoView = import ( " .EXPlayerInfoView " )
local TableBG = import ( ' Game.Data.TableBG ' )
local M = { }
function M . new ( )
2025-04-11 12:49:08 +08:00
setmetatable ( M , { __index = PKMainView } )
local self = setmetatable ( { } , { __index = M } )
2025-04-01 10:48:36 +08:00
self.class = " TwoDouDiZhu_MainView "
self : init ( )
self._gamectr = ControllerManager.GetController ( GameController )
return self
end
local default_bg = 1
local bg_config = {
2025-04-11 12:49:08 +08:00
{ id = 1 , url = ' extend/poker/twodoudizhu/bg/bg1 ' , thumb = ' ui://Extend_Poker_TwoDouDiZhu/table_bg1 ' } ,
{ id = 2 , url = ' extend/poker/twodoudizhu/bg/bg2 ' , thumb = ' ui://Extend_Poker_TwoDouDiZhu/table_bg2 ' } ,
{ id = 3 , url = ' extend/poker/twodoudizhu/bg/bg3 ' , thumb = ' ui://Extend_Poker_TwoDouDiZhu/table_bg3 ' }
2025-04-01 10:48:36 +08:00
}
local GameState = {
2025-04-11 12:49:08 +08:00
ROOM_STATUS_INIT = 1 , --初始化
ROOM_STATUS_FAPAI = 2 , --发牌
ROOM_STATUS_JIAO_DIZHU = 3 , --叫地主
ROOM_STATUS_QIANG_DIZHU = 4 , --抢地主
ROOM_STATUS_CHUPAI = 5 , --出牌中
ROOM_STATUS_FINISH = 6 ,
2025-04-01 10:48:36 +08:00
}
function M : InitView ( url )
local room = self._room
UIPackage.AddPackage ( " extend/poker/twodoudizhu/ui/Extend_Poker_TwoDouDiZhu " )
2025-04-11 12:49:08 +08:00
printlog ( " ============================ " , room.room_config . people_num )
PKMainView.InitView ( self , " ui://Extend_Poker_TwoDouDiZhu/TwoDouDiZhu_Main_ " .. room.room_config . people_num , nil , 1 ,
default_bg , bg_config , nil , " ui://Extend_Poker_TwoDouDiZhu/SettingWindow1 " )
2025-04-01 10:48:36 +08:00
local _room = DataManager.CurrenRoom
local user_id = DataManager.SelfUser . account_id
2025-04-11 12:49:08 +08:00
local json_data = Utils.LoadLocalFile ( user_id .. _room.game_id .. " pai " )
2025-04-01 10:48:36 +08:00
if json_data == nil then
local _gamectr = self._gamectr
self._room . pai = 0
else
local _data = json.decode ( json_data )
local pai = _data [ " pai " ]
self._room . pai = pai
end
self.three = self._view : GetChild ( " three " )
self.threeBei = self.three : GetChild ( " n9 " )
self.threeBei1 = self.three : GetChild ( " n10 " )
self.threeBei . text = " 0 "
self.threeBei1 . text = " "
self.three . visible = false
2025-04-11 12:49:08 +08:00
self : UpThree ( { 0 , 0 , 0 } )
2025-04-01 10:48:36 +08:00
2025-04-11 12:49:08 +08:00
json_data = Utils.LoadLocalFile ( user_id .. _room.game_id .. " cardsize " )
2025-04-01 10:48:36 +08:00
if json_data == nil then
local _gamectr = self._gamectr
self._room . cardsize = 1
else
local _data = json.decode ( json_data )
local cardsize = _data [ " cardsize " ]
self._room . cardsize = cardsize
end
self._player_info = { }
local _player_info = self._player_info
for i = 1 , self._room . room_config.people_num do
local tem = self._view : GetChild ( " player_info " .. i )
_player_info [ i ] = PlayerInfoView.new ( tem , self )
tem.visible = false
end
local list = self._room . player_list
2025-04-11 12:49:08 +08:00
for i = 1 , # list do
2025-04-01 10:48:36 +08:00
local p = list [ i ]
local info = _player_info [ self : GetPos ( p.seat ) ]
info._view . visible = true
info : FillData ( p )
end
local rightpanel = self._view : GetChild ( " right_panel " )
if self._rightPanelView ~= nil then
self._rightPanelView : Destroy ( )
end
2025-04-11 12:49:08 +08:00
self._rightPanelView = TwoDouDiZhu_RightPanelView.new ( self , rightpanel )
for i = 1 , # self._room . player_list do
if self._room . self_player.seat == self._room . player_list [ i ] . seat and self._room . self_player.self_user . account_id ~= self._room . player_list [ i ] . self_user.account_id then
2025-04-01 10:48:36 +08:00
-- body
local ErrorMsgTip = UIPackage.CreateObject ( " Common " , " Win_ConnectTip " )
local _action = self._view : AddChild ( ErrorMsgTip )
_action.xy = Vector2 ( ( self._view . width - _action.width ) / 4 , self._view . height / 4 )
local text = _action : GetChild ( " tex_message " )
local btn1 = _action : GetChild ( " btn_connect " )
local btn2 = _action : GetChild ( " btn_back " )
text.text = " 您来晚了,座位有人,请重新进牌桌 "
2025-04-11 12:49:08 +08:00
btn1.visible = false
2025-04-01 10:48:36 +08:00
btn2 : Center ( )
2025-04-11 12:49:08 +08:00
btn2.y = btn2.y + 50
2025-04-01 10:48:36 +08:00
btn2.onClick : Set ( function ( )
2025-04-11 12:49:08 +08:00
-- body
ErrorMsgTip : Destroy ( )
ErrorMsgTip = nil
self._gamectr : LevelRoom ( function ( res )
ViewUtil.CloseModalWait ( )
NetResetConnectWindow.CloseNetReset ( )
ControllerManager.ChangeController ( LoddyController )
ViewManager.ChangeView ( ViewManager.View_Lobby )
end )
2025-04-01 10:48:36 +08:00
end )
end
end
2025-04-11 12:49:08 +08:00
if self._room . hpOnOff == 1 and self._room . score_times ~= 1 then
2025-04-01 10:48:36 +08:00
-- body
2025-04-11 12:49:08 +08:00
self._view : GetChild ( " roominfo_panel1 " ) : GetChild ( " tex_beishu " ) . text = self._room . score_times .. " 倍 "
2025-04-01 10:48:36 +08:00
else
2025-04-11 12:49:08 +08:00
self._view : GetChild ( " roominfo_panel1 " ) : GetChild ( " tex_beishu " ) . text = " "
2025-04-01 10:48:36 +08:00
end
2025-04-11 12:49:08 +08:00
2025-04-01 10:48:36 +08:00
self.ctr_state = self._view : GetController ( " state " )
self._ctr_action = self._view : GetController ( " action " )
self._tex_leftTime = self._view : GetChild ( " time " ) : GetChild ( " title " )
self.ctr_time = self._view : GetController ( " time " )
self._text_round = self._view : GetChild ( " round " )
self.ctr_card_eff = self._view : GetController ( " card_eff " )
self._player_card_info = { }
2025-04-11 12:49:08 +08:00
2025-04-01 10:48:36 +08:00
local _player_card_info = self._player_card_info
for i = 1 , room.room_config . people_num do
local tem = self._view : GetChild ( " player_card_info_ " .. i )
_player_card_info [ i ] = self : NewPlayerCardInfoView ( tem , i )
end
2025-04-11 12:49:08 +08:00
2025-04-01 10:48:36 +08:00
local list = room.player_list
if not room.self_player . ready then
self._ctr_action . selectedIndex = 1
else
self._ctr_action . selectedIndex = 0
end
self._left_time = 0
self.bgm_index = 1
local state = self._room . CurnrenState
if room.CurnrenState ~= StateType.PalyingWait then
self._state . selectedIndex = state
if room.CurnrenState == StateType.Palying then
self : ReConnectForStart ( )
end
else
self._state . selectedIndex = StateType.Palying
self : ReconnectForClearing ( )
end
2025-04-11 12:49:08 +08:00
--local tempdsaf=self._view:GetChild("btn_back_jiesan")
--tempdsaf:GetChild("n3").displayObject.gameObject:SetActive(false)
--self._view:GetChild("btn_back_jiesan").displayObject.gameObject:SetActive(false
self._view : GetChild ( " btn_back_jiesan " ) . onClick : Set ( function ( )
2025-04-01 10:48:36 +08:00
if self.dismiss_room_cd_time > 0 then
ViewUtil.ErrorTip ( nil , " 您还处于解散冷却时间当中,请稍后重试! " )
else
local _gamectr = ControllerManager.GetController ( GameController )
_gamectr : AskDismissRoom ( )
end
end )
2025-04-11 12:49:08 +08:00
2025-04-01 10:48:36 +08:00
self : ChangeBgmMusic ( )
self : EventInit ( )
2025-04-11 12:49:08 +08:00
2025-04-01 10:48:36 +08:00
self._view : GetChild ( " mask " ) . onClick : Set ( function ( )
self : ResetPoker ( )
end )
local btn_rule = self._view : GetChild ( " right_panel " ) : GetChild ( " btn_log " )
self._view : GetChild ( ' info_text ' ) : GetChild ( ' text ' ) . text = room.room_config : GetDes ( )
2025-04-11 12:49:08 +08:00
if self._view : GetChild ( " shengyu " ) ~= nil then
2025-04-01 10:48:36 +08:00
-- body
2025-04-11 12:49:08 +08:00
if room.room_config . Leaf == 1 then
2025-04-01 10:48:36 +08:00
-- body
2025-04-11 12:49:08 +08:00
self._view : GetChild ( " shengyu " ) : GetChild ( " shengyu " ) . text = " 剩余15张 "
2025-04-01 10:48:36 +08:00
else
2025-04-11 12:49:08 +08:00
self._view : GetChild ( " shengyu " ) : GetChild ( " shengyu " ) . text = " 剩余16张 "
2025-04-01 10:48:36 +08:00
end
end
self.tips = self._view : GetChild ( " tips " )
self.tips . visible = false
self.tipsContent = " 你让[color=#ff0000]%s[/color]张牌,对手再出[color=#ff0000]%s[/color]张牌可胜利 "
self.dizhuSeat = - 1
-- self.test = self._view:GetChild("test")
-- self.test.onClick:Set(function()
-- self.otherpoker_list = self._view:GetChild("otherpoker_list")
-- local feiCards = {101,102}
-- if feiCards~= nil then
-- for i=1,#feiCards do
2025-04-11 12:49:08 +08:00
-- local card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_TwoDouDiZhu/ddz_poker_"..feiCards[i])
2025-04-01 10:48:36 +08:00
-- self.otherpoker_list:AddChild(card_code_obj)
-- end
-- end
-- -- self._player_card_info[1]:ChongXuan()
-- end)
-- self.test1 = self._view:GetChild("test1")
-- self.test1.onClick:Set(function()
2025-04-11 12:49:08 +08:00
2025-04-01 10:48:36 +08:00
-- self._player_card_info[1]:AddThree({101,102,103,408,307,207,208,106},{101,102,103})
-- end)
-- printlog(" self.ctr_state.selectedIndex ", self.ctr_state.selectedIndex)
end
function M : UpThree ( cards )
printlog ( " 显示地主三张牌====================== " )
pt ( cards )
local Icon1 = self.three : GetChild ( " n0 " )
local Icon2 = self.three : GetChild ( " n1 " )
local Icon3 = self.three : GetChild ( " n2 " )
2025-04-11 12:49:08 +08:00
Icon1.icon = " ui://Extend_Poker_TwoDouDiZhu/ddz_poker_ " .. cards [ 1 ]
Icon2.icon = " ui://Extend_Poker_TwoDouDiZhu/ddz_poker_ " .. cards [ 2 ]
Icon3.icon = " ui://Extend_Poker_TwoDouDiZhu/ddz_poker_ " .. cards [ 3 ]
2025-04-01 10:48:36 +08:00
end
function M : UpMul ( mul )
2025-04-11 12:49:08 +08:00
self.threeBei . text = mul .. " 倍 "
2025-04-01 10:48:36 +08:00
self.three . visible = true
end
function M : UpMul1 ( mul )
2025-04-11 12:49:08 +08:00
if mul > 1 then
self.threeBei1 . text = mul .. " 倍 "
2025-04-01 10:48:36 +08:00
end
end
2025-04-11 12:49:08 +08:00
function M : UpdateCard ( index )
self._room . pai = index
2025-04-01 10:48:36 +08:00
local card_info = self._player_card_info [ 1 ]
-- for i=1,#self._room.player_list do
2025-04-11 12:49:08 +08:00
-- -- print(i)
2025-04-01 10:48:36 +08:00
-- end
card_info : updatePoker ( )
for _ , player in ipairs ( self._room . player_list ) do
local player_card_info = self._player_card_info [ self : GetPos ( player.seat ) ]
2025-04-11 12:49:08 +08:00
2025-04-01 10:48:36 +08:00
if self._room . curren_turn_seat ~= player.seat then
if player.out_card_list [ 1 ] == 0 then
player_card_info : SetOutCardInfo ( nil , true )
else
player_card_info : SetOutCardInfo ( player.out_card_list , false )
end
end
end
2025-04-11 12:49:08 +08:00
if self.caozuo == 1 then
2025-04-01 10:48:36 +08:00
local ctr_number = self.pass == nil and 2 or 1
local lastCardList = self._gamectr : GetLastCardList ( self._room . self_player.seat )
local cardType , cardNum , cardLength = self._gamectr : GetCardListInfo ( lastCardList )
local m = false
local next_seat = self._room . self_player.seat + 1
if next_seat > self._room . room_config.people_num then
next_seat = next_seat - self._room . room_config.people_num
end
if self._room : GetPlayerBySeat ( next_seat ) . hand_count == 1 and self._room . room_config.WillBeOut == 1 then
m = true
end
local zdts = self._view : GetController ( " zidongtishi " ) . selectedIndex
2025-04-11 12:49:08 +08:00
self._player_card_info [ 1 ] : ShowOutCardOption ( ctr_number , cardType , cardNum , cardLength , m )
2025-04-01 10:48:36 +08:00
end
end
function M : UpdateCardSize ( index )
2025-04-11 12:49:08 +08:00
self._room . cardsize = index
2025-04-01 10:48:36 +08:00
local card_info = self._player_card_info [ 1 ]
card_info : updatePoker ( )
end
function M : NewPlayerCardInfoView ( tem , index )
if index == 1 then
return TwoDouDiZhu_PlayerSelfPokerInfoView.new ( tem , self )
end
return TwoDouDiZhu_PlayerPokerInfoView.new ( tem , self )
end
function M : OnPlayerEnter ( ... )
MainView.OnPlayerEnter ( self , ... )
2025-04-11 12:49:08 +08:00
local arg = { ... }
2025-04-01 10:48:36 +08:00
local p = arg [ 1 ]
local index = self : GetPos ( p.seat )
local info = self._player_info [ index ]
local selecet_seat = self._view : GetChild ( " seat_ " .. index )
if selecet_seat ~= nil then
selecet_seat.visible = true
end
info : FillData ( p )
if self._room . banker_seat == self._room . self_player.seat and self._room . self_player.ready then
self._ctr_action . selectedIndex = 0
end
end
function M : OnPlayerReady ( ... )
2025-04-11 12:49:08 +08:00
local arg = { ... }
2025-04-01 10:48:36 +08:00
local p = arg [ 1 ]
local _room = self._room
local _player_info = self._player_info
if p.seat == _room.self_player . seat then
self._ctr_action . selectedIndex = 0
end
local info = _player_info [ self : GetPos ( p.seat ) ]
info : Ready ( true )
2025-04-11 12:49:08 +08:00
--local readyNum = 0
--for i = 1, #_room.player_list do
-- local player = _room.player_list[i]
-- if player.ready then readyNum = readyNum + 1 end
--end
--if _room.banker_seat == _room.self_player.seat and readyNum > 1 and readyNum == _room.room_config.people_num then
-- if self._state.selectedIndex == 2 then
-- local _gamectr = ControllerManager.GetController(GameController)
-- _gamectr:StartGame()
-- end
-- --self._ctr_action.selectedIndex = 2
--end
2025-04-01 10:48:36 +08:00
end
function M : OnPlayerLeave ( ... )
MainView.OnPlayerLeave ( self , ... )
local _room = self._room
if not _room.self_player . ready then
self._ctr_action . selectedIndex = 1
else
self._ctr_action . selectedIndex = 0
end
end
function M : EventInit ( )
local _gamectr = ControllerManager.GetController ( GameController )
MainView.EventInit ( self )
local _player_info = self._player_info
local _player_card_info = self._player_card_info
local _room = self._room
_gamectr : AddEventListener ( TwoDouDiZhu_GameEvent.OnAlertJiaoDiZhu , function ( ... )
2025-04-11 12:49:08 +08:00
local arg = { ... }
2025-04-01 10:48:36 +08:00
local seat = arg [ 1 ]
2025-04-11 12:49:08 +08:00
printlog ( " 自己座位号+++++++++++++++++ " , self._room . self_player.seat )
2025-04-01 10:48:36 +08:00
if seat == self._room . self_player.seat then
self._player_card_info [ 1 ] : ChangeSelfJiao ( 1 )
end
local card_info = self._player_card_info [ self : GetPos ( seat ) ]
card_info : ChangeJiao ( - 1 )
self : UpMul ( 0 )
end )
_gamectr : AddEventListener ( TwoDouDiZhu_GameEvent.OnUserAlertQiangDiZhu , function ( ... )
2025-04-11 12:49:08 +08:00
local arg = { ... }
2025-04-01 10:48:36 +08:00
local seat = arg [ 1 ]
if seat == self._room . self_player.seat then
self._player_card_info [ 1 ] : ChangeSelfJiao ( 2 )
end
local card_info = self._player_card_info [ self : GetPos ( seat ) ]
card_info : ChangeJiao ( - 1 )
end )
_gamectr : AddEventListener ( TwoDouDiZhu_GameEvent.OnUserJiaoDiZhu , function ( ... )
2025-04-11 12:49:08 +08:00
local arg = { ... }
2025-04-01 10:48:36 +08:00
local seat = arg [ 1 ]
local jiao = arg [ 2 ]
2025-04-11 12:49:08 +08:00
local count = arg [ 3 ] --ChangeJiao
2025-04-01 10:48:36 +08:00
local curMul = arg [ 4 ]
local card_info = self._player_card_info [ self : GetPos ( seat ) ]
self : UpMul ( curMul )
if seat == self._room . self_player.seat then
self._player_card_info [ 1 ] : ChangeSelfJiao ( 0 )
end
local player1 = self._room : GetPlayerBySeat ( seat )
if ( jiao == 0 ) then
card_info : ChangeJiao ( 1 )
2025-04-11 12:49:08 +08:00
self : PlaySound ( player1.self_user . sex , " bujiao " )
2025-04-01 10:48:36 +08:00
else
card_info : ChangeJiao ( 3 )
2025-04-11 12:49:08 +08:00
self : PlaySound ( player1.self_user . sex , " jiaodizhu " )
2025-04-01 10:48:36 +08:00
end
end )
_gamectr : AddEventListener ( TwoDouDiZhu_GameEvent.OnUserQiangDiZhu , function ( ... )
2025-04-11 12:49:08 +08:00
local arg = { ... }
2025-04-01 10:48:36 +08:00
local seat = arg [ 1 ]
local qiang = arg [ 2 ]
local count = arg [ 3 ]
local curMul = arg [ 6 ]
local card_info = self._player_card_info [ self : GetPos ( seat ) ]
self : UpMul ( curMul )
2025-04-11 12:49:08 +08:00
self.tips . text = string.format ( self.tipsContent , arg [ 4 ] , arg [ 5 ] )
2025-04-01 10:48:36 +08:00
self.tips . visible = true
if seat == self._room . self_player.seat then
self._player_card_info [ 1 ] : ChangeSelfJiao ( 0 )
end
local player1 = self._room : GetPlayerBySeat ( seat )
2025-04-11 12:49:08 +08:00
2025-04-01 10:48:36 +08:00
if ( qiang == 0 ) then
card_info : ChangeJiao ( 2 )
2025-04-11 12:49:08 +08:00
self : PlaySound ( player1.self_user . sex , " buqiang " )
2025-04-01 10:48:36 +08:00
else
card_info : ChangeJiao ( 4 )
2025-04-11 12:49:08 +08:00
self : PlaySound ( player1.self_user . sex , " qiangdizhu " )
2025-04-01 10:48:36 +08:00
end
end )
_gamectr : AddEventListener ( TwoDouDiZhu_GameEvent.OnDiZhuInfo , function ( ... )
2025-04-11 12:49:08 +08:00
local arg = { ... }
2025-04-01 10:48:36 +08:00
local seat = arg [ 1 ]
local cards = arg [ 2 ]
local mul = arg [ 3 ]
local rangCount = arg [ 4 ]
local curMul = arg [ 5 ]
self : UpMul ( curMul )
self : UpMul1 ( mul )
self.dizhuSeat = seat
local card_info = self._player_card_info [ self : GetPos ( seat ) ]
if seat == self._room . self_player.seat then
self._player_card_info [ 1 ] : AddThree ( cards )
end
self : UpThree ( cards )
local _player_card_info = self._player_card_info
2025-04-11 12:49:08 +08:00
for i = 1 , self._room . room_config.people_num do
self._player_card_info [ i ] : ChangeJiao ( - 1 )
2025-04-01 10:48:36 +08:00
end
2025-04-11 12:49:08 +08:00
if ( self.dizhuSeat == self._room . self_player.seat ) then
2025-04-01 10:48:36 +08:00
self.tipsContent = " 你让[color=#ff0000]%s[/color]张牌,对手再出[color=#ff0000]%s[/color]张牌可胜利 "
else
self.tipsContent = " 你被让[color=#ff0000]%s[/color]张牌,你再出[color=#ff0000]%s[/color]张牌可胜利 "
end
end )
_gamectr : AddEventListener ( TwoDouDiZhu_GameEvent.OnRangXian , function ( ... )
2025-04-11 12:49:08 +08:00
local arg = { ... }
2025-04-01 10:48:36 +08:00
local seat = arg [ 1 ]
local rangCount = arg [ 2 ]
local curMul = arg [ 3 ]
local leftCount = arg [ 4 ]
self : UpMul ( curMul )
2025-04-11 12:49:08 +08:00
self.tips . text = string.format ( self.tipsContent , rangCount , leftCount )
2025-04-01 10:48:36 +08:00
-- if (seat==self._room.self_player.seat) then
-- self.tipsContent = "你让[color=#ff0000]%s[/color]张牌,对手再出[color=#ff0000]%s[/color]张牌可胜利"
-- else
-- self.tipsContent = "你被让[color=#ff0000]%s[/color]张牌,你再出[color=#ff0000]%s[/color]张牌可胜利"
-- end
end )
2025-04-11 12:49:08 +08:00
2025-04-01 10:48:36 +08:00
_gamectr : AddEventListener ( TwoDouDiZhu_GameEvent.OnMingCard , function ( ... )
2025-04-11 12:49:08 +08:00
local arg = { ... }
2025-04-01 10:48:36 +08:00
local card = arg [ 1 ]
self.ctr_state . selectedIndex = 1
self.ctr_card_eff . selectedIndex = 1
self : PlayCardEff ( card )
end )
2025-04-11 12:49:08 +08:00
2025-04-01 10:48:36 +08:00
_gamectr : AddEventListener ( TwoDouDiZhu_GameEvent.OnInitCard , function ( ... )
self.three . visible = false
2025-04-11 12:49:08 +08:00
local arg = { ... }
2025-04-01 10:48:36 +08:00
local round = arg [ 1 ]
local cardlist = arg [ 2 ]
printlog ( " 发牌======================== " )
pt ( cardlist )
if self.result_view ~= nil then
self.result_view : Destroy ( )
self.result_view = nil
end
2025-04-11 12:49:08 +08:00
2025-04-01 10:48:36 +08:00
self._player_card_info [ 1 ] : HidePiao ( )
2025-04-11 12:49:08 +08:00
if self._room . room_config.people_num == 3 and self._room . room_config.fangzuobi == 1 then
2025-04-01 10:48:36 +08:00
-- body
self.MypokerList = cardlist
end
local otherpoker_list = self._view : GetChild ( " otherpoker_list " )
2025-04-11 12:49:08 +08:00
if otherpoker_list ~= nil then
-- body
otherpoker_list.visible = false
otherpoker_list : RemoveChildrenToPool ( )
end
2025-04-01 10:48:36 +08:00
self.ctr_state . selectedIndex = 1
self.ctr_card_eff . selectedIndex = 0
if self.rank_view ~= nil then
self.rank_view : Dispose ( )
self.rank_view = nil
end
self : UpdateRound ( round )
ViewUtil.PlaySound ( " TwoDouDiZhu_PK " , " extend/poker/twodoudizhu/sound/fapai.mp3 " )
local list = _room.player_list
for i = 1 , # list do
local p = list [ i ]
local head_info = self._player_info [ self : GetPos ( p.seat ) ]
2025-04-11 12:49:08 +08:00
if head_info._view : GetChild ( " shengyu " ) ~= nil and head_info._view : GetController ( " shengyu " ) ~= nil then
2025-04-01 10:48:36 +08:00
-- body
2025-04-11 12:49:08 +08:00
if self._room . room_config.showlength == 1 then
2025-04-01 10:48:36 +08:00
-- body
2025-04-11 12:49:08 +08:00
head_info._view : GetController ( " shengyu " ) . selectedIndex = 1
2025-04-01 10:48:36 +08:00
else
2025-04-11 12:49:08 +08:00
head_info._view : GetController ( " shengyu " ) . selectedIndex = 0
2025-04-01 10:48:36 +08:00
end
2025-04-11 12:49:08 +08:00
-- body
head_info._view : GetChild ( " shengyu " ) : GetChild ( " shengyu " ) . text = " 剩 " .. p.hand_count .. " 张 "
2025-04-01 10:48:36 +08:00
end
p : Clear ( )
head_info : FillData ( p )
local card_info = self._player_card_info [ self : GetPos ( p.seat ) ]
card_info : Clear ( )
head_info : Ready ( false )
2025-04-11 12:49:08 +08:00
2025-04-01 10:48:36 +08:00
if p.seat == self._room . self_player.seat then
2025-04-11 12:49:08 +08:00
if self._room . room_config.people_num == 3 and self._room . room_config.fangzuobi == 1 then
2025-04-01 10:48:36 +08:00
-- body
2025-04-11 12:49:08 +08:00
card_info : InitPoker ( cardlist , true , 1 )
2025-04-01 10:48:36 +08:00
else
2025-04-11 12:49:08 +08:00
card_info : InitPoker ( cardlist , true )
2025-04-01 10:48:36 +08:00
end
else
--card_info:UpdateHandPoker(#cardlist,true,false) --todo
--card_info:UpdateRemainCard(#cardlist,true)
end
end
end )
2025-04-11 12:49:08 +08:00
2025-04-01 10:48:36 +08:00
-- _gamectr:AddEventListener(TwoDouDiZhu_GameEvent.Oener,function ( ... )
-- local arg = {...}
-- local seat = arg[1]
-- local head_info = self._player_info[self:GetPos(seat)]
-- head_info._view:GetController("Oener").selectedIndex=1
-- end)
_gamectr : AddEventListener ( TwoDouDiZhu_GameEvent.OnIndexMove , function ( ... )
2025-04-11 12:49:08 +08:00
local arg = { ... }
2025-04-01 10:48:36 +08:00
local seat = arg [ 1 ]
local isNewBout = arg [ 2 ]
local index = self : GetPos ( seat )
2025-04-11 12:49:08 +08:00
2025-04-01 10:48:36 +08:00
self.ctr_time . selectedIndex = index
-- for i=1,#self._player_info do
-- if index==i then
-- -- body
-- local head_info = self._player_info[index]
-- head_info:MarkBank(true)
-- else
-- local head_info = self._player_info[i]
-- head_info:MarkBank(false)
-- end
-- end
2025-04-11 12:49:08 +08:00
2025-04-01 10:48:36 +08:00
if index == 1 then
local card_info = self._player_card_info [ index ]
card_info : SetOutCardInfo ( nil , false )
2025-04-11 12:49:08 +08:00
-- if self.MypokerList ~= nil then
-- -- body
-- card_info:Clear()
-- card_info:InitPoker(self.MypokerList, false)
-- self.MypokerList = nil
-- end
2025-04-01 10:48:36 +08:00
end
self._left_time = 20
if self._room . ming_card ~= nil then
self._view : GetTransition ( " t " .. index ) : Play ( )
self._room . ming_card = nil
if self.tween ~= nil then
TweenUtils.Kill ( self.tween )
self.tween = nil
end
end
end )
2025-04-11 12:49:08 +08:00
2025-04-01 10:48:36 +08:00
_gamectr : AddEventListener ( TwoDouDiZhu_GameEvent.OnBombScore , function ( ... )
2025-04-11 12:49:08 +08:00
local arg = { ... }
2025-04-01 10:48:36 +08:00
local scoreList = arg [ 1 ]
-- for i = 1, #scoreList do
-- local player = self._room:GetPlayerBySeat(i)
-- local card_info = self._player_card_info[self:GetPos(i)]
-- local head_info = self._player_info[self:GetPos(i)]
-- card_info:PlayScore(scoreList[i], true)
-- head_info:UpdateScore(player.total_score)
-- end
end )
2025-04-11 12:49:08 +08:00
2025-04-01 10:48:36 +08:00
_gamectr : AddEventListener ( TwoDouDiZhu_GameEvent.OnPlaySucc , function ( ... )
2025-04-11 12:49:08 +08:00
local arg = { ... }
2025-04-01 10:48:36 +08:00
local p = arg [ 1 ]
local card_number = arg [ 2 ]
local cardstype = arg [ 3 ]
local num = arg [ 4 ]
local otherList = arg [ 5 ]
local length = arg [ 6 ]
local curMul = arg [ 9 ]
self : UpMul ( curMul )
self.ctr_time . selectedIndex = 0
2025-04-11 12:49:08 +08:00
self.tips . text = string.format ( self.tipsContent , arg [ 7 ] , arg [ 8 ] )
2025-04-01 10:48:36 +08:00
self.tips . visible = true
local index = self : GetPos ( p.seat )
2025-04-11 12:49:08 +08:00
if index == 1 then
self.caozuo = 0
2025-04-01 10:48:36 +08:00
end
local head_info = self._player_info [ index ]
2025-04-11 12:49:08 +08:00
if head_info._view : GetChild ( " shengyu " ) ~= nil then
2025-04-01 10:48:36 +08:00
-- body
-- body
2025-04-11 12:49:08 +08:00
if card_number ~= nil then
2025-04-01 10:48:36 +08:00
-- body
2025-04-11 12:49:08 +08:00
head_info._view : GetChild ( " shengyu " ) : GetChild ( " shengyu " ) . text = " 剩 " .. card_number .. " 张 "
2025-04-01 10:48:36 +08:00
end
end
local card_info = self._player_card_info [ index ]
card_info : SetOutCardInfo ( p.out_card_list , false , true )
for i = 1 , # otherList do
local other_seat = otherList [ i ]
local other_card_info = self._player_card_info [ self : GetPos ( other_seat ) ]
other_card_info : SetOutCardBlack ( )
end
if index == 1 then
card_info : DeleteHandCards ( p.out_card_list )
else
card_info : SetRemainCardNumber ( card_number == 1 )
2025-04-11 12:49:08 +08:00
--card_info:UpdateHandPoker(card_number,false,false) -- todo
2025-04-01 10:48:36 +08:00
end
if self._room . is_new_bout == true then
for i = 1 , # self._room . player_list do
local player = self._room . player_list [ i ]
local card_info_i = self._player_card_info [ self : GetPos ( player.seat ) ]
if p.seat ~= player.seat then
card_info_i : SetOutCardInfo ( nil , false )
end
end
-- card_info:PlayCardTypeEff(cardstype)
-- if cardstype~=12 then
-- -- body
2025-04-11 12:49:08 +08:00
2025-04-01 10:48:36 +08:00
-- if cardstype==10 and length>=6 then
-- -- card_info_i
-- local chuan = UIPackage.CreateObject("Extend_Poker_TwoDouDiZhu", "chuan1")
-- local card_info_i = self._player_card_info[self:GetPos(p.seat)]
2025-04-11 12:49:08 +08:00
2025-04-01 10:48:36 +08:00
-- card_info_i._mask_liangpai:AddChild(chuan)
-- chuan:GetChild("n0").asMovieClip.playing = true
-- ViewUtil.PlaySound("TwoDouDiZhu_PK", "extend/poker/paodekuai/sound/sunzi.mp3")
-- coroutine.start(function()
-- coroutine.wait(1.5)
-- if chuan~=nil then
-- -- body
-- chuan:Dispose()
-- end
2025-04-11 12:49:08 +08:00
2025-04-01 10:48:36 +08:00
-- end)
-- else
-- self:_Effect(cardstype, p)
-- end
-- end
self : _Effect ( cardstype , p )
else
2025-04-11 12:49:08 +08:00
if cardstype == 11 and cardstype ~= 12 then
2025-04-01 10:48:36 +08:00
self : _Effect ( cardstype , p )
end
end
self : PlaySound ( p.self_user . sex , self : GetSoundFileName ( cardstype , num , self._room . is_new_bout ) )
if card_number == 1 then
--self:ChangeBgmMusic(2)
self : ChangeBgmMusic ( 1 )
if self._cor_sound ~= nil then
coroutine.stop ( self._cor_sound )
end
self._cor_sound = nil
self._cor_sound = coroutine.start ( function ( )
coroutine.wait ( 1 )
self : PlaySound ( p.self_user . sex , " card_1 " )
end )
end
end )
2025-04-11 12:49:08 +08:00
2025-04-01 10:48:36 +08:00
_gamectr : AddEventListener ( TwoDouDiZhu_GameEvent.OnPassSucc , function ( ... )
2025-04-11 12:49:08 +08:00
local arg = { ... }
2025-04-01 10:48:36 +08:00
local p = arg [ 1 ]
2025-04-11 12:49:08 +08:00
2025-04-01 10:48:36 +08:00
self.ctr_time . selectedIndex = 0
local card_info = self._player_card_info [ self : GetPos ( p.seat ) ]
2025-04-11 12:49:08 +08:00
2025-04-01 10:48:36 +08:00
--card_info:SetOutCardInfo(nil, false)
if p.seat == self._room . self_player.seat and self.MypokerList ~= nil then
-- body
card_info : Clear ( )
card_info : InitPoker ( self.MypokerList , false )
self.MypokerList = nil
end
card_info : SetOutCardInfo ( nil , true )
self : PlaySound ( p.self_user . sex , " buyao1 " )
end )
2025-04-11 12:49:08 +08:00
2025-04-01 10:48:36 +08:00
_gamectr : AddEventListener ( TwoDouDiZhu_GameEvent.OnErrorTip , function ( ... )
2025-04-11 12:49:08 +08:00
local arg = { ... }
2025-04-01 10:48:36 +08:00
local error_str = arg [ 1 ]
self._player_card_info [ 1 ] : ErrorTip ( error_str )
-- self._player_card_info[1]:ResetPoker()
end )
2025-04-11 12:49:08 +08:00
2025-04-01 10:48:36 +08:00
_gamectr : AddEventListener ( TwoDouDiZhu_GameEvent.OnPiaoTips , function ( ... )
2025-04-11 12:49:08 +08:00
local arg = { ... }
2025-04-01 10:48:36 +08:00
local piao = arg [ 1 ]
local reload = arg [ 2 ]
if reload == 0 then
2025-04-11 12:49:08 +08:00
if self._room . room_config.people_num == 3 and self._room . room_config.fangzuobi == 1 then
2025-04-01 10:48:36 +08:00
-- body
self.MypokerList = cardlist
end
local otherpoker_list = self._view : GetChild ( " otherpoker_list " )
2025-04-11 12:49:08 +08:00
if otherpoker_list ~= nil then
-- body
otherpoker_list.visible = false
otherpoker_list : RemoveChildrenToPool ( )
end
2025-04-01 10:48:36 +08:00
self.ctr_state . selectedIndex = 1
self.ctr_card_eff . selectedIndex = 0
if self.rank_view ~= nil then
self.rank_view : Dispose ( )
self.rank_view = nil
end
self : UpdateRound ( self._room . curren_round )
local list = _room.player_list
for i = 1 , # list do
local p = list [ i ]
local head_info = self._player_info [ self : GetPos ( p.seat ) ]
p : Clear ( )
head_info : FillData ( p )
local card_info = self._player_card_info [ self : GetPos ( p.seat ) ]
card_info : Clear ( )
head_info : Ready ( false )
head_info : UpdatePiao ( - 1 )
end
end
2025-04-11 12:49:08 +08:00
2025-04-01 10:48:36 +08:00
self._player_card_info [ 1 ] : ShowPiao ( piao )
end )
_gamectr : AddEventListener ( TwoDouDiZhu_GameEvent.OnPiaoAction , function ( ... )
2025-04-11 12:49:08 +08:00
local arg = { ... }
2025-04-01 10:48:36 +08:00
local seat = arg [ 1 ]
local piao = arg [ 2 ]
local head_info = self._player_info [ self : GetPos ( seat ) ]
head_info : UpdatePiao ( piao )
end )
_gamectr : AddEventListener ( TwoDouDiZhu_GameEvent.OnOptions , function ( ... )
2025-04-11 12:49:08 +08:00
local arg = { ... }
2025-04-01 10:48:36 +08:00
local play = arg [ 1 ]
local pass = arg [ 5 ]
local card_type = arg [ 2 ]
local card_number = arg [ 3 ]
local card_length = arg [ 4 ]
local rang = arg [ 6 ]
local isCanPass = arg [ 7 ]
local ctr_number = pass == nil and 2 or 1
2025-04-11 12:49:08 +08:00
self.tips . text = string.format ( self.tipsContent , arg [ 8 ] , arg [ 9 ] )
2025-04-01 10:48:36 +08:00
self.tips . visible = true
if isCanPass == 1 then
ctr_number = 1
else
ctr_number = 2
end
if ( rang == 1 ) then
ctr_number = 3
end
2025-04-11 12:49:08 +08:00
self.caozuo = 1 --记录是否是自己出牌的阶段
self.pass = pass
2025-04-01 10:48:36 +08:00
local m = false
local next_seat = self._room . self_player.seat + 1
local card_info = self._player_card_info [ 1 ]
--card_info:SetOutCardInfo(nil, false)
if self.MypokerList ~= nil then
-- body
card_info : Clear ( )
card_info : InitPoker ( self.MypokerList , false )
self.MypokerList = nil
end
if next_seat > self._room . room_config.people_num then
next_seat = next_seat - self._room . room_config.people_num
end
if self._room : GetPlayerBySeat ( next_seat ) . hand_count == 1 and self._room . room_config.WillBeOut == 1 then
m = true
end
local zdts = self._view : GetController ( " zidongtishi " ) . selectedIndex
2025-04-11 12:49:08 +08:00
self._player_card_info [ 1 ] : ShowOutCardOption ( ctr_number , card_type , card_number , card_length , m , play , zdts )
2025-04-01 10:48:36 +08:00
end )
2025-04-11 12:49:08 +08:00
-- 托管
_gamectr : AddEventListener ( TwoDouDiZhu_GameEvent.Game_TuoGuan , function ( ... )
local arg = { ... }
2025-04-01 10:48:36 +08:00
local tuoguan = arg [ 1 ]
local seat = arg [ 2 ]
2025-04-11 12:49:08 +08:00
2025-04-01 10:48:36 +08:00
local tuoguanzhong = self._view : GetChild ( " tuoguanzhong " )
local zhezhao = self._view : GetChild ( " n109 " )
local head_info = self._player_info [ self : GetPos ( seat ) ]
if ( tuoguan == 1 ) then
2025-04-11 12:49:08 +08:00
if ( seat == self._room . self_player.seat ) then
2025-04-01 10:48:36 +08:00
tuoguanzhong.visible = true
-- tuoguanzhong.sortingOrder = 2
zhezhao.visible = true
zhezhao.onClick : Set ( function ( )
_gamectr : TuoGuan ( 0 )
end )
else
head_info._view : GetController ( " tuoguan " ) . selectedIndex = 1
end
2025-04-11 12:49:08 +08:00
-- if self.ispanguangzhe == true then
-- -- body
-- zhezhao.visible = false
-- end
2025-04-01 10:48:36 +08:00
else
if ( seat == self._room . self_player.seat ) then
tuoguanzhong.visible = false
zhezhao.visible = false
-- local btn_tuoguan = self._view:GetChild("n107")
-- btn_tuoguan.onClick:Set(function()
-- _gamectr:TuoGuan(1)
-- -- self:ZhiNengtuoguan()
-- end)
else
head_info._view : GetController ( " tuoguan " ) . selectedIndex = 0
end
end
end )
_gamectr : AddEventListener ( TwoDouDiZhu_GameEvent.OnResult , function ( ... )
2025-04-11 12:49:08 +08:00
local arg = { ... }
2025-04-01 10:48:36 +08:00
local over = arg [ 1 ]
local info = arg [ 2 ]
local win_seat = arg [ 3 ]
local remaincards = arg [ 4 ]
-- local energyTab = arg[5]
local feiCards = arg [ 5 ]
local otherpoker_list = self._view : GetChild ( " otherpoker_list " )
self.tips . visible = false
if self.MypokerList ~= nil then
-- body
local card_info = self._player_card_info [ self : GetPos ( self._room . self_player.seat ) ]
card_info : Clear ( )
card_info : InitPoker ( self.MypokerList , false )
self.MypokerList = nil
end
if otherpoker_list ~= nil then
-- body
otherpoker_list : RemoveChildrenToPool ( )
2025-04-11 12:49:08 +08:00
otherpoker_list.visible = true
2025-04-01 10:48:36 +08:00
end
2025-04-11 12:49:08 +08:00
if remaincards then
2025-04-01 10:48:36 +08:00
-- body
2025-04-11 12:49:08 +08:00
local newremaincards = _gamectr : ChangeCodeByFrom ( remaincards , true )
2025-04-01 10:48:36 +08:00
table.sort ( remaincards )
for i = # newremaincards , 1 , - 1 do
coroutine.start ( function ( )
coroutine.wait ( 0.01 )
local flow = newremaincards [ i ] % 10
local num = ( newremaincards [ i ] - ( newremaincards [ i ] % 10 ) ) / 10
local card_n = flow * 100 + num
local poker_item = UIPackage.CreateObject ( " Extend_Poker_TwoDouDiZhu " , " poker6 " )
2025-04-11 12:49:08 +08:00
2025-04-01 10:48:36 +08:00
--local code = self:ChangeCodeByTo(card_n)
-- local card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_TwoDouDiZhu/" .. card_n)
-- local card_code_obj = UIPackage.CreateObjectFromURL("ui://Main_Poker/" .. card_n .. "_2")
local card_code_obj = nil
2025-04-11 12:49:08 +08:00
if DataManager.CurrenRoom . pai == 0 then
if card_n == 310 and DataManager.CurrenRoom . room_config.Heart10 == 1 then
2025-04-01 10:48:36 +08:00
-- body
2025-04-11 12:49:08 +08:00
card_code_obj = UIPackage.CreateObjectFromURL ( " ui://Extend_Poker_TwoDouDiZhu/ " ..
card_n .. " _1 " )
2025-04-01 10:48:36 +08:00
else
2025-04-11 12:49:08 +08:00
card_code_obj = UIPackage.CreateObjectFromURL ( " ui://Extend_Poker_TwoDouDiZhu/ " .. card_n )
2025-04-01 10:48:36 +08:00
end
else
2025-04-11 12:49:08 +08:00
if card_n == 310 and DataManager.CurrenRoom . room_config.Heart10 == 1 then
2025-04-01 10:48:36 +08:00
-- body
2025-04-11 12:49:08 +08:00
card_code_obj = UIPackage.CreateObjectFromURL ( " ui://Extend_Poker_TwoDouDiZhu/ " ..
card_n .. " _2 " )
2025-04-01 10:48:36 +08:00
else
card_code_obj = UIPackage.CreateObjectFromURL ( " ui://Main_Poker/ " .. card_n .. " _2 " )
end
end
if card_code_obj ~= nil then
card_code_obj : SetScale ( 0.6 , 0.6 )
if poker_item ~= nil then
poker_item : AddChild ( card_code_obj )
otherpoker_list : AddChild ( poker_item )
end
end
end )
end
end
if self._cor_sound ~= nil then
coroutine.stop ( self._cor_sound )
self._cor_sound = nil
end
2025-04-11 12:49:08 +08:00
if self.destory_win ~= nil then
coroutine.stop ( self.destory_win )
2025-04-01 10:48:36 +08:00
end
if self.WinItem_view ~= nil then
self.WinItem_view : Dispose ( )
self.WinItem_view = nil
end
2025-04-11 12:49:08 +08:00
2025-04-01 10:48:36 +08:00
self.destory_win = nil
self.destory_win = coroutine.start ( function ( )
2025-04-11 12:49:08 +08:00
-- -- print("11111111111111")
2025-04-01 10:48:36 +08:00
-- coroutine.wait(1)
if self : IsChunTian ( info ) then
local url = " ui://Extend_Poker_TwoDouDiZhu/Spring "
self.WinItem_view = UIPackage.CreateObjectFromURL ( url )
self._view : AddChild ( self.WinItem_view )
self.WinItem_view : Center ( )
self.WinItem_view : GetTransition ( " t0 " ) : Play ( )
ViewUtil.PlaySound ( " TwoDouDiZhu_PK " , " base/common/sound/win new.mp3 " )
end
if self : IsFanChun ( info ) then
local url = " ui://Extend_Poker_TwoDouDiZhu/Spring1 "
self.WinItem_view = UIPackage.CreateObjectFromURL ( url )
self._view : AddChild ( self.WinItem_view )
self.WinItem_view : Center ( )
self.WinItem_view : GetTransition ( " t0 " ) : Play ( )
ViewUtil.PlaySound ( " TwoDouDiZhu_PK " , " base/common/sound/win new.mp3 " )
end
--printlog("====================fanchun======================",self:IsChunTian(info),self:IsFanChun(info))
coroutine.wait ( 1 )
2025-04-11 12:49:08 +08:00
if self._room . self_player.seat == win_seat then
2025-04-01 10:48:36 +08:00
-- local sprint_seat_list = self:GetSpringSeats(info)
-- if #sprint_seat_list > 0 then
-- local url = "ui://Extend_Poker_TwoDouDiZhu/Spring"
-- self.WinItem_view = UIPackage.CreateObjectFromURL(url)
-- self._view:AddChild(self.WinItem_view)
-- self.WinItem_view:Center()
-- self.WinItem_view:GetTransition("t0"):Play()
-- ViewUtil.PlaySound("TwoDouDiZhu_PK", "base/common/sound/win new.mp3")
-- end
-- local url = #sprint_seat_list > 0 and "ui://Extend_Poker_TwoDouDiZhu/Spring" or "ui://Extend_Poker_TwoDouDiZhu/Win_Mine"
else
local beigang = false
2025-04-11 12:49:08 +08:00
if # self : GetSpringSeats ( info ) > 0 then
for i = 1 , # self : GetSpringSeats ( info ) do
if self : GetSpringSeats ( info ) [ i ] == self._room . self_player.seat then
-- local url = "ui://Extend_Poker_TwoDouDiZhu/spring2"
2025-04-01 10:48:36 +08:00
-- self.WinItem_view = UIPackage.CreateObjectFromURL(url)
-- self._view:AddChild(self.WinItem_view)
-- self.WinItem_view:Center()
-- self.WinItem_view:GetTransition("t0"):Play()
2025-04-11 12:49:08 +08:00
beigang = true
2025-04-01 10:48:36 +08:00
end
end
end
-- if beigang == false then
-- self:CreateRankEff()
-- end
end
for i = 1 , # info do
local player = info [ i ]
local p = self._room : GetPlayerBySeat ( player.seat )
local head_info = self._player_info [ self : GetPos ( player.seat ) ]
local card_info = self._player_card_info [ self : GetPos ( player.seat ) ]
if player.hp_info ~= nil and player.hp_info . cur_hp ~= nil then
p.hp_info = player.hp_info
head_info : UpdateScore ( d2ad ( player.hp_info . cur_hp ) )
head_info._view : GetChild ( ' zhanji ' ) . visible = true
local num = player.hp_info . total_hp
if num > 0 then
head_info._view : GetController ( ' text_color ' ) . selectedIndex = 0
head_info._view : GetChild ( ' text_jifen ' ) . text = " + " .. d2ad ( player.hp_info . total_hp )
else
head_info._view : GetController ( ' text_color ' ) . selectedIndex = 1
head_info._view : GetChild ( ' text_jifen ' ) . text = d2ad ( player.hp_info . total_hp )
end
card_info : PlayScore ( d2ad ( player.hp_info . round_actual_hp ) , false , win_seat == player.seat )
else
local rt = 1
if self._room . hpOnOff == 1 then
rt = self._room . score_times
end
if over == 1 and self._room . hpOnOff == 1 then
2025-04-11 12:49:08 +08:00
head_info : UpdateScore ( player.score / 10 ) --不可负分
2025-04-01 10:48:36 +08:00
else
head_info : UpdateScore ( player.score * rt )
end
card_info : PlayScore ( player.winscore * rt , false , win_seat == player.seat )
end
2025-04-11 12:49:08 +08:00
2025-04-01 10:48:36 +08:00
if player.seat ~= self._room . self_player.seat then
card_info : UpdateHandPoker ( player.cards , false , true )
card_info : SetRemainCardNumber ( false )
end
end
self : ChangeBgmMusic ( 1 )
-- if over == 0 then
-- if #self:GetSpringSeats(info) > 0 then
2025-04-11 12:49:08 +08:00
-- -- -- print("222222222222222222")
2025-04-01 10:48:36 +08:00
-- coroutine.wait(1)
-- else
2025-04-11 12:49:08 +08:00
-- -- -- print("333333333333333333")
2025-04-01 10:48:36 +08:00
-- -- coroutine.wait(2)
-- end
2025-04-11 12:49:08 +08:00
self.result_view = TwoDouDiZhu_ResultView.new ( self._root_view , info , self._room . room_id , over , win_seat , 0 ,
remaincards , feiCards )
2025-04-01 10:48:36 +08:00
self.result_view : Show ( )
if self.WinItem_view ~= nil then
self.WinItem_view : Dispose ( )
self.WinItem_view = nil
end
if self.rank_view ~= nil then
self.rank_view : Dispose ( )
self.rank_view = nil
end
if self._room . self_player.entrust == true then
2025-04-11 12:49:08 +08:00
local btn_confirm = self.result_view . _view : GetChild ( " btn_confirm " )
2025-04-01 10:48:36 +08:00
btn_confirm.onClick : Call ( )
end
2025-04-11 12:49:08 +08:00
-- local _actionView = UIPackage.CreateObject("Common", "Btn_Yellow")
-- _actionView.icon = "ui://Common/btn_comfirm"
-- _actionView.onClick:Set(function ()
-- --local _gamectr = ControllerManager.GetController(GameController)
-- _gamectr:ConformToNextGame()
-- _actionView:Dispose()
-- end)
-- _actionView.xy = Vector2(900, 625)
-- self._view:AddChild(_actionView)
-- else
-- coroutine.wait(4)
-- self.result_view = TwoDouDiZhu_ResultView.new(self._root_view,info,self._room.room_id)
-- self.result_view:Show()
-- end
2025-04-01 10:48:36 +08:00
end )
2025-04-11 12:49:08 +08:00
if over == 1 then
2025-04-01 10:48:36 +08:00
-- body
self : UnmarkSelfTuoguan ( )
ControllerManager.ChangeController ( LoddyController )
end
self.threeBei . text = " 0 "
self.threeBei1 . text = " "
self.three . visible = false
2025-04-11 12:49:08 +08:00
self : UpThree ( { 0 , 0 , 0 } )
2025-04-01 10:48:36 +08:00
end )
2025-04-11 12:49:08 +08:00
2025-04-01 10:48:36 +08:00
_gamectr : AddEventListener ( TwoDouDiZhu_GameEvent.OnResultByDissolve , function ( ... )
2025-04-11 12:49:08 +08:00
local arg = { ... }
local over = arg [ 1 ]
local info = arg [ 2 ]
local winseat = arg [ 3 ]
local dissolve = arg [ 4 ]
self.result_view = TwoDouDiZhu_ResultView.new ( self._root_view , info , self._room . room_id , over , winseat , dissolve ,
nil )
self.result_view : Show ( )
ControllerManager.ChangeController ( LoddyController )
self : UnmarkSelfTuoguan ( )
2025-04-01 10:48:36 +08:00
end )
2025-04-11 12:49:08 +08:00
2025-04-01 10:48:36 +08:00
-- 确定开始下一局 成功
_gamectr : AddEventListener ( TwoDouDiZhu_GameEvent.OnConfrimToNextGameSucc , function ( ... )
2025-04-11 12:49:08 +08:00
local arg = { ... }
2025-04-01 10:48:36 +08:00
local aid = arg [ 1 ]
local p = self._room : GetPlayerById ( aid )
if p.seat == self._room . self_player.seat then
if self.rank_view ~= nil then
self.rank_view : Dispose ( )
self.rank_view = nil
end
if self.destory_win ~= nil then
coroutine.stop ( self.destory_win )
self.destory_win = nil
end
if self.WinItem_view ~= nil then
self.WinItem_view : Dispose ( )
self.WinItem_view = nil
end
for _ , player in ipairs ( self._room . player_list ) do
local player_card_info = self._player_card_info [ self : GetPos ( player.seat ) ]
local player_head = self._player_info [ self : GetPos ( player.seat ) ]
player_card_info : Clear ( )
local otherpoker_list = self._view : GetChild ( " otherpoker_list " )
if otherpoker_list ~= nil then
-- body
2025-04-11 12:49:08 +08:00
otherpoker_list.visible = false
2025-04-01 10:48:36 +08:00
otherpoker_list : RemoveChildrenToPool ( )
end
2025-04-11 12:49:08 +08:00
--player_head._view:GetController("Oener").selectedIndex=0
2025-04-01 10:48:36 +08:00
end
end
local player_info = self._player_info [ self : GetPos ( p.seat ) ]
player_info : Ready ( true )
end )
end
function M : ReConnectForStart ( )
local _gamectr = ControllerManager.GetController ( GameController )
self._room . is_new_bout = _gamectr : GetIsNewBout ( self._room . curren_turn_seat )
self._state . selectedIndex = 1
self._view : GetController ( " time " ) . selectedIndex = self : GetPos ( self._room . curren_turn_seat )
2025-04-11 12:49:08 +08:00
2025-04-01 10:48:36 +08:00
self : UpdateRound ( self._room . curren_round )
for _ , player in ipairs ( self._room . player_list ) do
local player_card_info = self._player_card_info [ self : GetPos ( player.seat ) ]
local head_info = self._player_info [ self : GetPos ( player.seat ) ]
head_info : Ready ( false )
--如果是体力值不可负分模式 则显示当前的hp值
if player.hp_info ~= nil and player.hp_info . cur_hp ~= nil then
head_info : UpdateScore ( d2ad ( player.hp_info . cur_hp ) )
head_info._view : GetChild ( ' zhanji ' ) . visible = true
local num = player.hp_info . total_hp
if num > 0 then
head_info._view : GetController ( ' text_color ' ) . selectedIndex = 0
head_info._view : GetChild ( ' text_jifen ' ) . text = ' + ' .. d2ad ( player.hp_info . total_hp )
else
head_info._view : GetController ( ' text_color ' ) . selectedIndex = 1
head_info._view : GetChild ( ' text_jifen ' ) . text = d2ad ( player.hp_info . total_hp )
end
else
local rt = 1
if self._room . hpOnOff == 1 then
rt = self._room . score_times
end
head_info : UpdateScore ( player.total_score * rt )
end
2025-04-11 12:49:08 +08:00
2025-04-01 10:48:36 +08:00
head_info : UpdateLineState ( player.line_state )
head_info : UpdatePiao ( player.piao )
2025-04-11 12:49:08 +08:00
if head_info._view : GetChild ( " shengyu " ) ~= nil and head_info._view : GetController ( " shengyu " ) ~= nil then
2025-04-01 10:48:36 +08:00
-- body
2025-04-11 12:49:08 +08:00
if self._room . room_config.showlength == 1 then
2025-04-01 10:48:36 +08:00
-- body
2025-04-11 12:49:08 +08:00
head_info._view : GetController ( " shengyu " ) . selectedIndex = 1
2025-04-01 10:48:36 +08:00
else
2025-04-11 12:49:08 +08:00
head_info._view : GetController ( " shengyu " ) . selectedIndex = 0
2025-04-01 10:48:36 +08:00
end
2025-04-11 12:49:08 +08:00
-- body
head_info._view : GetChild ( " shengyu " ) : GetChild ( " shengyu " ) . text = " 剩 " .. player.hand_count .. " 张 "
2025-04-01 10:48:36 +08:00
end
if player.seat == self._room . self_player.seat then
2025-04-11 12:49:08 +08:00
if player.open ~= nil and player.open == 0 and self._room . room_config.people_num == 3 and self._room . room_config.fangzuobi == 1 then
2025-04-01 10:48:36 +08:00
-- body
self.MypokerList = player.hand_list
player_card_info : InitPoker ( player.hand_list , false , 1 )
else
player_card_info : InitPoker ( player.hand_list , false )
end
else
player_card_info : SetRemainCardNumber ( player.hand_count == 1 )
if player.hand_count == 1 then
self.bgm_index = 2
end
end
if self._room . curren_turn_seat ~= player.seat then
-- head_info:MarkBank(false)
if player.out_card_list [ 1 ] == 0 then
player_card_info : SetOutCardInfo ( nil , false )
else
player_card_info : SetOutCardInfo ( player.out_card_list , false )
end
else
-- head_info:MarkBank(true)
end
end
self : DuanXian ( )
end
function M : ReconnectForClearing ( )
self : UpdateRound ( self._room . curren_round )
local win_seat = 0
--self.rank_view = self:CreateRankEff(self._room.winseat)
for _ , player in ipairs ( self._room . player_list ) do
local head_info = self._player_info [ self : GetPos ( player.seat ) ]
local player_card_info = self._player_card_info [ self : GetPos ( player.seat ) ]
2025-04-11 12:49:08 +08:00
2025-04-01 10:48:36 +08:00
--如果是体力值不可负分模式 则显示当前的hp值
if player.hp_info ~= nil and player.hp_info . cur_hp ~= nil then
head_info : UpdateScore ( d2ad ( player.hp_info . cur_hp ) )
head_info._view : GetChild ( ' zhanji ' ) . visible = true
local num = player.hp_info . total_hp
if num > 0 then
head_info._view : GetController ( ' text_color ' ) . selectedIndex = 0
head_info._view : GetChild ( ' text_jifen ' ) . text = ' + ' .. d2ad ( player.hp_info . total_hp )
else
head_info._view : GetController ( ' text_color ' ) . selectedIndex = 1
head_info._view : GetChild ( ' text_jifen ' ) . text = d2ad ( player.hp_info . total_hp )
end
-- player_card_info:PlayScore(d2ad(player.hp_info.round_actual_hp))
else
local rt = 1
if self._room . hpOnOff == 1 then
rt = self._room . score_times
end
head_info : UpdateScore ( player.total_score * rt )
-- player_card_info:PlayScore(player.winscore * rt, false, self._room.winseat)
end
head_info : UpdateLineState ( player.line_state )
--head_info._view:GetController("Oener").selectedIndex=0
head_info : UpdatePiao ( player.piao )
2025-04-11 12:49:08 +08:00
if head_info._view : GetChild ( " shengyu " ) ~= nil and head_info._view : GetController ( " shengyu " ) ~= nil then
2025-04-01 10:48:36 +08:00
-- body
2025-04-11 12:49:08 +08:00
if self._room . room_config.showlength == 1 then
2025-04-01 10:48:36 +08:00
-- body
2025-04-11 12:49:08 +08:00
head_info._view : GetController ( " shengyu " ) . selectedIndex = 1
2025-04-01 10:48:36 +08:00
else
2025-04-11 12:49:08 +08:00
head_info._view : GetController ( " shengyu " ) . selectedIndex = 0
2025-04-01 10:48:36 +08:00
end
2025-04-11 12:49:08 +08:00
-- body
head_info._view : GetChild ( " shengyu " ) : GetChild ( " shengyu " ) . text = " 剩 " .. player.hand_count .. " 张 "
2025-04-01 10:48:36 +08:00
end
2025-04-11 12:49:08 +08:00
if player.seat == self._room . self_player.seat then
2025-04-01 10:48:36 +08:00
player_card_info : InitPoker ( player.hand_list , false )
else
player_card_info : UpdateHandPoker ( player.hand_list , false , true )
end
if player.out_card_list [ 1 ] == 0 then
player_card_info : SetOutCardInfo ( nil , false )
else
player_card_info : SetOutCardInfo ( player.out_card_list , false )
end
end
2025-04-11 12:49:08 +08:00
win_seat = self._room . winseat
2025-04-01 10:48:36 +08:00
self._room . winseat = nil
2025-04-11 12:49:08 +08:00
local remaincards = self._room . remaincards
if self._room . game_status == 1 then
2025-04-01 10:48:36 +08:00
-- body
coroutine.start ( function ( )
coroutine.wait ( 0.3 )
2025-04-11 12:49:08 +08:00
self.result_view = TwoDouDiZhu_ResultView.new ( self._root_view , self._room . player_list , self._room . room_id , 0 ,
win_seat , 0 , nil )
self.result_view : Show ( )
local card_info = self._player_card_info [ 1 ]
card_info._view : GetChild ( " out_card_list " ) . visible = true
2025-04-01 10:48:36 +08:00
end )
2025-04-11 12:49:08 +08:00
if remaincards then
local newremaincards = self._gamectr : ChangeCodeByFrom ( remaincards , true )
2025-04-01 10:48:36 +08:00
-- body
local otherpoker_list = self._view : GetChild ( " otherpoker_list " )
2025-04-11 12:49:08 +08:00
2025-04-01 10:48:36 +08:00
if otherpoker_list ~= nil then
-- body
otherpoker_list : RemoveChildrenToPool ( )
2025-04-11 12:49:08 +08:00
otherpoker_list.visible = true
2025-04-01 10:48:36 +08:00
end
for i = # newremaincards , 1 , - 1 do
coroutine.start ( function ( )
coroutine.wait ( 0.1 * ( 15 - i ) )
2025-04-11 12:49:08 +08:00
2025-04-01 10:48:36 +08:00
local flow = newremaincards [ i ] % 10
local num = ( newremaincards [ i ] - ( newremaincards [ i ] % 10 ) ) / 10
local card_n = flow * 100 + num
local poker_item = UIPackage.CreateObject ( " Extend_Poker_TwoDouDiZhu " , " poker6 " )
2025-04-11 12:49:08 +08:00
2025-04-01 10:48:36 +08:00
--local code = self:ChangeCodeByTo(card_n)
-- local card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_TwoDouDiZhu/" .. card_n)
-- local card_code_obj = UIPackage.CreateObjectFromURL("ui://Main_Poker/" .. card_n .. "_2")
local card_code_obj
-- if DataManager.CurrenRoom.pai==0 then
-- card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_TwoDouDiZhu/"..card_n)
-- else
-- card_code_obj = UIPackage.CreateObjectFromURL("ui://Main_Poker/" .. card_n .. "_2")
-- end
-- if card_n==310 and DataManager.CurrenRoom.room_config.Heart10 == 1 then
-- -- body
-- card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_TwoDouDiZhu/"..card_n.."_1")
-- end
--printlog("======================== ",card_n)
2025-04-11 12:49:08 +08:00
card_code_obj = UIPackage.CreateObjectFromURL ( " ui://Extend_Poker_TwoDouDiZhu/ " .. card_n )
2025-04-01 10:48:36 +08:00
card_code_obj : SetScale ( 0.6 , 0.6 )
poker_item : AddChild ( card_code_obj )
otherpoker_list : AddChild ( poker_item )
end )
end
2025-04-11 12:49:08 +08:00
end
2025-04-01 10:48:36 +08:00
end
self : DuanXian ( )
end
function M : DuanXian ( )
-- ROOM_STATUS_INIT = 1, --初始化
-- ROOM_STATUS_FAPAI = 2, --发牌
-- ROOM_STATUS_JIAO_DIZHU = 3, --叫地主
-- ROOM_STATUS_QIANG_DIZHU = 4, --抢地主
-- ROOM_STATUS_CHUPAI = 5, --出牌中
2025-04-11 12:49:08 +08:00
-- ROOM_STATUS_FINISH = 6,
if ( self._room . nineCards ~= nil ) then
2025-04-01 10:48:36 +08:00
end
2025-04-11 12:49:08 +08:00
if ( self._room . threeCards ~= nil ) then
2025-04-01 10:48:36 +08:00
end
2025-04-11 12:49:08 +08:00
if ( self._room . gameStatus ~= nil ) then
if ( self._room . gameStatus == GameState.ROOM_STATUS_INIT ) then
2025-04-01 10:48:36 +08:00
elseif ( self._room . gameStatus == GameState.ROOM_STATUS_FAPAI ) then
elseif ( self._room . gameStatus == GameState.ROOM_STATUS_JIAO_DIZHU ) then
if self._room . gameSeat == self._room . self_player.seat then
self._player_card_info [ 1 ] : ChangeSelfJiao ( 1 )
end
elseif ( self._room . gameStatus == GameState.ROOM_STATUS_QIANG_DIZHU ) then
if self._room . gameSeat == self._room . self_player.seat then
self._player_card_info [ 1 ] : ChangeSelfJiao ( 2 )
end
elseif ( self._room . gameStatus == GameState.ROOM_STATUS_CHUPAI ) then
if self._room . gameSeat == self._room . self_player.seat then
self._player_card_info [ 1 ] : ChangePutCardOption ( 1 )
end
self : UpThree ( self._room . threeCards )
self : UpMul ( self._room . curMul )
self : UpMul1 ( self._room . threeCardMul )
end
end
2025-04-11 12:49:08 +08:00
if ( self._room . nineCards ~= nil ) then
2025-04-01 10:48:36 +08:00
end
end
function M : CreateRankEff ( )
self.rank_view = UIPackage.CreateObjectFromURL ( " ui://Extend_Poker_TwoDouDiZhu/rank_eff " )
self._view : AddChild ( self.rank_view )
self.rank_view : Center ( )
self.rank_view : GetTransition ( " t0 " ) : Play ( )
end
2025-04-11 12:49:08 +08:00
function M : _Effect ( type1 , player )
2025-04-01 10:48:36 +08:00
-- body
2025-04-11 12:49:08 +08:00
if type1 < 7 and type1 ~= 4 and type1 ~= 5 then
return
2025-04-01 10:48:36 +08:00
end
local eff_code = 0
if type1 == 10 then
eff_code = 2
elseif type1 == 11 or type1 == 13 then
eff_code = 3
elseif type1 == 4 then
eff_code = 4
elseif type1 == 12 then
return
elseif type1 == 5 then
eff_code = 5
else
eff_code = 1
end
local info = self._player_card_info [ self : GetPos ( player.seat ) ]
local pNode = info._mask_liangpai
2025-04-11 12:49:08 +08:00
local effect = UIPackage.CreateObjectFromURL ( " ui://Extend_Poker_TwoDouDiZhu/eff_ " .. eff_code )
2025-04-01 10:48:36 +08:00
-- local effect = UIPackage.CreateObjectFromURL("ui://Extend_Poker_TwoDouDiZhu/eff2_1")
effect.touchable = false
effect : GetTransition ( " t0 " ) : Play ( )
-- effect:SetXY((self._view.width - effect.width) / 2,(self._view.hight - effect.hight) / 2)
2025-04-11 12:49:08 +08:00
if eff_code == 3 then
2025-04-01 10:48:36 +08:00
self._view : AddChild ( effect )
else
pNode : AddChild ( effect )
end
2025-04-11 12:49:08 +08:00
if eff_code == 1 then
2025-04-01 10:48:36 +08:00
self.eff_feiji = UIPackage.CreateObjectFromURL ( " ui://Extend_Poker_TwoDouDiZhu/eff_feiji " )
self._view : AddChild ( self.eff_feiji )
self.eff_feiji : Center ( )
self.eff_feiji : GetTransition ( " t0 " ) : Play ( )
end
2025-04-11 12:49:08 +08:00
if eff_code == 3 then
2025-04-01 10:48:36 +08:00
effect : Center ( )
else
2025-04-11 12:49:08 +08:00
if self : GetPos ( player.seat ) == 1 then
effect.x , effect.y = 0 , 24
2025-04-01 10:48:36 +08:00
else
2025-04-11 12:49:08 +08:00
effect.x , effect.y = 24 , 67
2025-04-01 10:48:36 +08:00
end
end
2025-04-11 12:49:08 +08:00
2025-04-01 10:48:36 +08:00
-- effect:Center()
-- if eff_code ==3 then
-- coroutine.start(function()
-- coroutine.wait(1)
-- effect:Dispose()
-- end)
-- else
coroutine.start ( function ( )
coroutine.wait ( 1 )
2025-04-11 12:49:08 +08:00
if self.eff_feiji ~= nil then
2025-04-01 10:48:36 +08:00
self.eff_feiji : Dispose ( )
end
effect : Dispose ( )
end )
-- end
end
2025-04-11 12:49:08 +08:00
2025-04-01 10:48:36 +08:00
-- function M:_Effect(type1, player)
2025-04-11 12:49:08 +08:00
-- if type1 < 7 and type1 ~= 4 then return end
-- local eff_code = 0
-- if type1 == 10 then --顺子
-- eff_code = 2
-- elseif type1 == 11 then --炸
-- eff_code = 3
-- elseif type1 == 4 then --连对
-- eff_code = 4
-- else
-- eff_code = 6
-- end
-- local info = self._player_card_info[self:GetPos(player.seat)]
-- local pNode = info._mask_liangpai
-- local effect = UIPackage.CreateObjectFromURL("ui://Extend_Poker_TwoDouDiZhu/MovieClip" .. eff_code)
-- effect.touchable = false
-- --effect:SetXY((self._view.width - effect.width) / 2,(self._view.hight - effect.hight) / 2)
-- pNode:AddChild(effect)
-- if type1 == 10 then --顺子
-- effect.x, effect.y = -400, -200
-- elseif type1 == 11 then --炸
-- effect.x, effect.y = -80, -225
-- elseif type1 == 4 then --连对
-- effect.x, effect.y = -400, -200
-- else
-- effect.x, effect.y = -157, -140
-- end
-- coroutine.start(function()
-- if type1== 10 or type1== 11 or type1== 4 then
-- -- body
-- coroutine.wait(2)
-- effect:Dispose()
-- else
-- coroutine.wait(1.2)
-- effect:Dispose()
-- end
-- end)
2025-04-01 10:48:36 +08:00
-- if eff_code ==3 then
-- coroutine.start(function()
-- coroutine.wait(1)
-- effect:Dispose()
-- end)
-- else
-- coroutine.start(function()
-- coroutine.wait(2)
-- effect:Dispose()
-- end)
-- end
-- end
function M : UpdateRound ( round )
local total_round = self._room . room_config.Times
self._text_round . text = string.format ( " %d / %d 局 " , round , total_round )
end
function M : GetSoundFileName ( type , num , isNewBout )
local fileName
if isNewBout then
if type > 6 or type == 4 then
if type == 8 or type == 9 then
type = 7
end
fileName = tostring ( type )
elseif type > 2 then
fileName = string.format ( " 3_%d " , num )
else
fileName = string.format ( " %d_%d " , type , num )
end
else
math.randomseed ( os.time ( ) )
if type > 2 and type ~= 11 then
local r = math.random ( 1 , 3 )
fileName = " dani_ " .. r
elseif type == 11 then
fileName = tostring ( type )
else
fileName = string.format ( " %d_%d " , type , num )
end
end
return fileName
end
function M : IsChunTian ( player_info )
local chun = false
for i = 1 , # player_info do
local player = player_info [ i ]
2025-04-11 12:49:08 +08:00
if player.chuntian then
2025-04-01 10:48:36 +08:00
chun = true
break
2025-04-11 12:49:08 +08:00
end
2025-04-01 10:48:36 +08:00
end
return chun
end
function M : IsFanChun ( player_info )
local fanchun = false
for i = 1 , # player_info do
local player = player_info [ i ]
2025-04-11 12:49:08 +08:00
if player.fanchun then
2025-04-01 10:48:36 +08:00
fanchun = true
break
2025-04-11 12:49:08 +08:00
end
2025-04-01 10:48:36 +08:00
end
return fanchun
end
function M : GetSpringSeats ( player_info )
local seat_list = { }
2025-04-11 12:49:08 +08:00
local card_max_length = 17 --self._room.room_config.Leaf + 14
2025-04-01 10:48:36 +08:00
for i = 1 , # player_info do
local player = player_info [ i ]
if # player.cards == card_max_length then
seat_list [ # seat_list + 1 ] = player.seat
end
end
return seat_list
end
function M : PlayCardEff ( card )
if self.cor_card_eff ~= nil then
coroutine.stop ( self.cor_card_eff )
end
self.cor_card_eff = nil
local cor_time = 0.1
self.cor_card_eff = coroutine.start ( function ( )
self._popEvent = false
local eff = self._view : GetChild ( " poker_eff " )
local poker_obj = eff : GetChild ( " poker " )
local poker_back = eff : GetChild ( " di " )
poker_back.visible = false
-- local card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_TwoDouDiZhu/" .. card)
-- local card_code_obj = UIPackage.CreateObjectFromURL("ui://Main_Poker/" .. card .. "_2")
local card_code_obj
2025-04-11 12:49:08 +08:00
if DataManager.CurrenRoom . pai == 0 then
card_code_obj = UIPackage.CreateObjectFromURL ( " ui://Extend_Poker_TwoDouDiZhu/ " .. card )
2025-04-01 10:48:36 +08:00
else
2025-04-11 12:49:08 +08:00
card_code_obj = UIPackage.CreateObjectFromURL ( " ui://Main_Poker/ " .. card .. " _2 " )
2025-04-01 10:48:36 +08:00
end
card_code_obj : SetScale ( 1 , 1 )
--poker_obj:AddChild(card_code_obj)
--card_code_obj.visible = true
self.tween = TweenUtils.TweenFloat ( 0 , 2340 , cor_time , function ( x )
poker_back.rotationY = x
poker_obj.rotationY = - 180 + x
local x_1 = x % 360
if ( x_1 > 90 and x_1 < 270 ) then
poker_obj.visible = true
poker_back.visible = false
else
poker_obj.visible = false
poker_back.visible = true
end
end )
coroutine.wait ( 1 )
self._popEvent = true
end )
end
function M : ResetPoker ( )
-- if self._room.curren_turn_seat == self._room.self_player.seat then
-- self._player_card_info[1]:ResetPoker()
-- end
self._player_card_info [ 1 ] : ResetPoker ( )
end
function M : PlaySound ( sex , path )
2025-04-11 12:49:08 +08:00
local sex_path = ViewUtil.Sex_Chat [ sex ] -- 1 男 2 女
2025-04-01 10:48:36 +08:00
local sound_path = string.format ( " extend/poker/twodoudizhu/sound/%s/%s.mp3 " , sex_path , path )
ViewUtil.PlaySound ( " TwoDouDiZhu_PK " , sound_path )
end
function M : ChangeBgmMusic ( bgm_index )
if bgm_index == nil then
bgm_index = self.bgm_index
else
self.bgm_index = bgm_index
end
ViewUtil.PlayMuisc ( " TwoDouDiZhu_PK " , string.format ( " extend/poker/twodoudizhu/sound/bgm%d.mp3 " , 1 ) )
end
2025-04-11 12:49:08 +08:00
function M : OnPlayerEnter ( ... )
local arg = { ... }
2025-04-01 10:48:36 +08:00
local p = arg [ 1 ]
2025-04-11 12:49:08 +08:00
for i = 1 , # self._room . player_list do
if self._room . self_player.seat == self._room . player_list [ i ] . seat and self._room . self_player.self_user . account_id ~= self._room . player_list [ i ] . self_user.account_id then
2025-04-01 10:48:36 +08:00
-- body
local ErrorMsgTip = UIPackage.CreateObject ( " Common " , " Win_ConnectTip " )
local _action = self._view : AddChild ( ErrorMsgTip )
_action.xy = Vector2 ( ( self._view . width - _action.width ) / 4 , self._view . height / 4 )
local text = _action : GetChild ( " tex_message " )
local btn1 = _action : GetChild ( " btn_connect " )
local btn2 = _action : GetChild ( " btn_back " )
text.text = " 您来晚了,座位有人,请重新进牌桌 "
2025-04-11 12:49:08 +08:00
btn1.visible = false
2025-04-01 10:48:36 +08:00
btn2 : Center ( )
2025-04-11 12:49:08 +08:00
btn2.y = btn2.y + 50
2025-04-01 10:48:36 +08:00
btn2.onClick : Set ( function ( )
2025-04-11 12:49:08 +08:00
-- body
ErrorMsgTip : Destroy ( )
ErrorMsgTip = nil
self._gamectr : LevelRoom ( function ( res )
ViewUtil.CloseModalWait ( )
NetResetConnectWindow.CloseNetReset ( )
ControllerManager.ChangeController ( LoddyController )
ViewManager.ChangeView ( ViewManager.View_Lobby )
end )
2025-04-01 10:48:36 +08:00
end )
end
end
-- if p ~= self._room.self_player and self._room.room_config.people_num <= 4 and self._room.room_config.people_num >= 3 and self._gamectr:CheckGPS() then
-- if self.distance_view then
-- self.distance_view:Destroy()
2025-04-11 12:49:08 +08:00
-- end
2025-04-01 10:48:36 +08:00
-- self.distance_view = PlayerDistanceView.new(true)
-- self.distance_view:Show()
-- end
-- local info = self._player_info[self:GetPos(p.seat)]
-- info:FillData(p)
-- info._view.visible = true
MainView.OnPlayerEnter ( self , ... )
end
function M : Destroy ( )
for i = 1 , # self._room . player_list do
local player = self._room . player_list [ i ]
local card_info_i = self._player_card_info [ self : GetPos ( player.seat ) ]
card_info_i : Destroy ( )
if card_info_i ~= nil and card_info_i.cor_init_poker ~= nil then
coroutine.stop ( card_info_i.cor_init_poker )
end
end
self.tips . visible = false
PKMainView.Destroy ( self )
UIPackage.RemovePackage ( " extend/poker/twodoudizhu/ui/Extend_Poker_TwoDouDiZhu " )
end
return M