Beispiel #1
0
        private void StartGame(Server server, IViewerClient host, bool isNetworkGame, bool isOnline, string tempDocFolder, int networkGamePort = -1)
        {
            if (host == null)
            {
                throw new ArgumentNullException(nameof(host));
            }

            var game = new GameViewModel(server, host, _userSettings)
            {
                NetworkGame     = isNetworkGame && server.IsMain,
                NetworkGamePort = networkGamePort,
                IsOnline        = isOnline,
                TempDocFolder   = tempDocFolder
            };

            game.GameEnded += EndGame_Executed;

            Settings.IsEditable = false;
            ActiveView          = game;

            PlatformSpecific.PlatformManager.Instance.PlaySound();

            game.Init();

            host.MyLogic.PrintGreeting();
        }
Beispiel #2
0
        public GameViewModel(Server server, IViewerClient host, UserSettings userSettings)
        {
            _server                  = server;
            Host                     = host ?? throw new ArgumentNullException(nameof(host));
            Host.Switch             += Host_Switch;
            Host.StageChanged       += UpdateMoveCommand;
            Host.PersonConnected    += UpdateMoveCommand;
            Host.PersonDisconnected += UpdateMoveCommand;
            Host.Timer              += Host_Timer;
            Host.Ad                 += Host_Ad;

            UserSettings = userSettings;

            ChangePauseInGame = new CustomCommand(ChangePauseInGame_Executed)
            {
                CanBeExecuted = false
            };
            Move = new CustomCommand(Move_Executed)
            {
                CanBeExecuted = false
            };
            EndGame = new CustomCommand(EndGame_Executed);
            Cancel  = new CustomCommand(Cancel_Executed);

            for (int i = 0; i < Timers.Length; i++)
            {
                Timers[i] = PlatformManager.Instance.GetAnimatableTimer();
            }

            Timers[1].TimeChanged += GameViewModel_TimeChanged;
        }