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(); }
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; }