public void RegisterController(ClientRestarterController controller) { this.controller = controller; }
bool RunRestartGame(List<PlayerAccountData> players, GameType gameType) { bool exitGame = false; if(gameType == GameType.Host) { var serverRestarterModel = new ServerRestarterModel(); var serverRestartGameView = viewFactory.CreateServerRestartGameView(); using(var commandHandler = new NetCommandHandler<IGameRestarterModel>(serverRestarterModel, players.First().Info.NickName)) { foreach(var player in players.Where(e => e.Channel != null)) commandHandler.AddChannel(player.Channel, player.Info.NickName); var serverRestartGameController = new ServerRestarterController(commandHandler, serverRestarterModel, players, serverRestartGameView, servicesProvider); serverRestartGameController.SideboardingEditorRequest += new SideboardingEditorRequestEventHandler(serverRestartGameController_SideboardingEditorRequest); if(serverRestartGameView.ShowModal() == ViewResult.Ok) UpdatePlayersForRestart(players, serverRestarterModel.Players.Cast<PoL.Models.GameRestarters.PlayerModel>()); else exitGame = true; } } else { var clientRestarterModel = new ClientRestarterModel(); var clientRestartGameView = viewFactory.CreateClientRestartGameView(); using(var commandHandler = new NetCommandHandler<IGameRestarterModel>(clientRestarterModel, players.First().Info.NickName)) { foreach(var player in players.Where(e => e.Channel != null)) commandHandler.AddChannel(player.Channel, player.Info.NickName); var clientRestartGameController = new ClientRestarterController(commandHandler, clientRestarterModel, players, clientRestartGameView, servicesProvider); clientRestartGameController.SideboardingEditorRequest += new SideboardingEditorRequestEventHandler(serverRestartGameController_SideboardingEditorRequest); if(clientRestartGameView.ShowModal() == ViewResult.Ok) UpdatePlayersForRestart(players, clientRestarterModel.Players.Cast<PoL.Models.GameRestarters.PlayerModel>()); else exitGame = true; } } return exitGame; }