Example #1
0
        public override void OnEnter(FsmStateArgs args)
        {
            if (GameCenter.DataCenter.Room.RoomType == MahRoomType.YuLe)
            {
                GameCenter.Network.CtrlYuleRejoin(true);
            }

            //执行继承IGameEndCycle接口脚本
            GameCenter.Lifecycle.GameEndCycle();
            //执行继承IGameReadyCycle接口脚本
            GameCenter.Lifecycle.GameReadyCycle();
            var db = GameCenter.DataCenter;

            //当前用户没有准被 发送准备消息
            if (!db.OneselfData.IsReady)
            {
                if (db.ConfigData.AutoReady)
                {
                    GameCenter.Network.C2S.Ready();
                }
                else
                {
                    GameCenter.EventHandle.Dispatch((int)UIEventProtocol.ReadyBtnCtrl, new PanelTriggerArgs()
                    {
                        ReadyState = true
                    });
                }
            }
            var handler = GameCenter.Network.DispatchResponseHandlers(CustomClientProtocol.CustomTypeReadyLogic);

            if (null != handler)
            {
                handler(null);
            }
        }
Example #2
0
        public override void OnEnter(FsmStateArgs args)
        {
            var dataCenter = GameCenter.DataCenter;

            if (dataCenter.Room.RoomType == MahRoomType.YuLe)
            {
                GameCenter.Network.CtrlYuleRejoin(true);
            }

            //执行继承IGameInfoICycle接口脚本
            GameCenter.Lifecycle.GameInfoICycle();
            //检查投票解散房间
            ContinueTaskManager.NewTask().AppendFuncTask(() => RejionHandup((args as SfsFsmStateArgs).SFSObject)).Start();
            //var flag = dataCenter.Players.IsSende() && (dataCenter.Room.RoomType == MahRoomType.YuLe);
            if (dataCenter.IsReconect)
            {
                ChangeState <StateGameReconnect>(args);
            }
            else
            {
                ChangeState <StateGameReady>();
                InviteLastMahjongFriend();
            }
            SetShake();
        }
Example #3
0
 public override void OnEnter(FsmStateArgs args)
 {
     //注册事件
     GameCenter.EventHandle.Subscriber((int)UIEventProtocol.OnCreateNewGame, OnCreateNewGame);
     //开始发送消息
     Facade.Instance <TWMessageManager>().StartRollNotice();
     ContinueTaskManager.NewTask().AppendFuncTask(CheckContinueGame).Start();
     mFlag = true;
 }
Example #4
0
 public override void OnEnter(FsmStateArgs args)
 {
     //执行继承ISceneInitCycle接口脚本
     GameCenter.Lifecycle.SceneInitCycle();
     if (GameCenter.Instance.GameType == GameType.Normal)
     {
         //开启网络监听
         GameCenter.Network.StartNetworkListener();
     }
 }
Example #5
0
 public override void OnEnter(FsmStateArgs args)
 {
     //执行继承IGameEndCycle接口脚本
     GameCenter.Lifecycle.GameEndCycle();
     if (GameCenter.DataCenter.ConfigData.ContinueNewGame && GameCenter.DataCenter.IsGameOver)
     {
         //切换继续开局状态
         ChangeState <StateGameContinue>();
     }
 }
Example #6
0
        public override void OnEnter(FsmStateArgs args)
        {
            GameCenter.Playback.InitReplayData();
            GameCenter.Playback.StartupTask();
            GameCenter.Lifecycle.ContinuePlaybackCycle();
            GameCenter.Playback.OnReset();
            GameCenter.Playback.InitPlaybackScene();

            GameCenter.EventHandle.Subscriber((int)UIEventProtocol.PlaybackRestart, PlaybackRestart);
        }
Example #7
0
        public override void OnEnter(FsmStateArgs args)
        {
            //执行继承IReconnectedCycle接口脚本
            GameCenter.Lifecycle.ReconnectedCycle();
            var gameinfoData = args as SfsFsmStateArgs;
            var handler      = GameCenter.Network.DispatchResponseHandlers(CustomClientProtocol.CustomTypeReconnectLogic);

            if (null != handler)
            {
                handler(gameinfoData.SFSObject);
            }
            if (GameCenter.DataCenter.OperateMenu != 0)
            {
                var opHandler = GameCenter.Network.DispatchResponseHandlers(NetworkProtocol.MJOpreateType);
                if (null != opHandler)
                {
                    var userSFSObject = gameinfoData.SFSObject.GetSFSObject(RequestKey.KeyUser);
                    opHandler(userSFSObject);
                }
            }
            ChangeState <StateGamePlaying>();
        }
Example #8
0
 public override void OnEnter(FsmStateArgs args)
 {
     AddMahjongFriends();
     //执行继承IGameStartCycle接口脚本
     GameCenter.Lifecycle.GameStartCycle();
 }
Example #9
0
 public void ChangeState <TState>(FsmStateArgs args) where TState : FsmState
 {
     GameProcess.ChangeState <TState>(typeof(TState).Name, args);
 }