public ClientForm() { InitializeComponent(); _client = new UiConnector(); _client.RefreshData += _client_RefreshData; btnConnect.Click += BtnConnect_Click; }
public GameViewModel(IGameSettings gameSettings, IQuestsManager questsManager, IDialogService dialogService) { _gameSettings = gameSettings; _questsManager = questsManager; _dialogService = dialogService; _game = Mvx.GetSingleton <IGame>(); BoardViewModel = new BoardViewModel(Game.Info.BoardSize); BoardViewModel.BoardTapped += (s, e) => OnBoardTapped(e); BoardViewModel.IsTouchInputOffsetEnabled = gameSettings.Display.AddTouchInputOffset; // Set empty node (should be in the beginning of every gametree) as current node for board rendering RefreshBoard(Game.Controller.GameTree.LastNode); _uiConnector = new UiConnector(Game.Controller); _phaseStartHandlers = new Dictionary <GamePhaseType, Action <IGamePhase> >(); _phaseEndHandlers = new Dictionary <GamePhaseType, Action <IGamePhase> >(); SetupPhaseChangeHandlers(_phaseStartHandlers, _phaseEndHandlers); Game.Controller.RegisterConnector(_uiConnector); Game.Controller.GameEnded += (s, e) => OnGameEnded(e); Game.Controller.GameTree.LastNodeChanged += (s, e) => OnCurrentNodeChanged(e); Game.Controller.TurnPlayerChanged += (s, e) => OnTurnPlayerChanged(e); Game.Controller.GamePhaseChanged += (s, e) => OnGamePhaseChanged(e); ObserveDebuggingMessages(); }
public MainForm() { InitializeComponent(); _server = new UiConnector(); _server.RefreshData += _server_RefreshData; Load += Form1_Load; btnStartListenig.Click += BtnStartListening_Click; }
public void LoadGame(IGame game) { _game = game; _uiConnector = new UiConnector(game.Controller); game.Controller.RegisterConnector(_uiConnector); Text = game.Info.White.Name + " (" + game.Info.White.Rank + ") vs. " + game.Info.Black.Name + "(" + game.Info.Black.Rank + ")"; _controller = _game.Controller; (_controller as IDebuggingMessageProvider).DebuggingMessage += _controller_DebuggingMessage; _controller.GameEnded += _controller_GameEnded; _controller.TurnPlayerChanged += _controller_TurnPlayerChanged1; _controller.GameTree.LastNodeChanged += _controller_CurrentGameTreeNodeChanged; _controller.GamePhaseChanged += _controller_GamePhaseChanged1; foreach (var aiAgent in _controller.Players.Select(p => p.Agent).OfType <AiAgent>()) { aiAgent.AiNote += AiAgent_AiNote; } if (game is KgsGame) { KgsGameController kgsController = ((KgsGame)game).Controller; foreach (var msg in kgsController.Chat.Messages) { _controller_ChatMessageReceived(this, msg); } } if (game.Controller is RemoteGameController) { var remote = game.Controller as RemoteGameController; remote.Chat.NewMessageReceived += _controller_ChatMessageReceived; } // _controller.LifeDeathTerritoryChanged += _controller_LifeDeathTerritoryChanged; /* * foreach (GamePlayer player in _game.Controller.Players) * { * if (player.Agent is AiAgent) * { * ((AiAgent)player.Agent).LogMessage += InGameForm_LogMessage; * } * }*/ _controller.BeginGame(); }
public override async Task <bool> CanCloseViewModelAsync() { if (this.Game.Controller.Phase.Type == GamePhaseType.Finished) { await base.CanCloseViewModelAsync(); return(true); } if (await DialogService.ShowConfirmationDialogAsync(Localizer.ExitOnline_Text, Localizer.ExitOnline_Caption, Localizer.ExitOnline_Confirm, Localizer.Exit_ReturnToGame)) { UiConnector.Resign(); await base.CanCloseViewModelAsync(); return(true); } else { return(false); } }
public Assistant(IGameSettings gameSettings, UiConnector uiConnector, IGameController gameController, GameInfo gameInfo) { _uiConnector = uiConnector; _gameController = gameController; _gameInfo = gameInfo; this.gameSettings = gameSettings; this._isOnlineGame = gameInfo is RemoteGameInfo; foreach (var program in AISystems.AIPrograms) { if (program.GetType().Name == gameSettings.Assistant.ProgramName) { Program = (IAIProgram)Activator.CreateInstance(program.GetType()); } } if (Program == null) { Program = new Fluffy(); } if (Program is Fluffy) { Fluffy fluffy = Program as Fluffy; fluffy.TreeDepth = gameSettings.Assistant.FluffyDepth; } if (Program is Fuego) { Fuego fuego = Program as Fuego; fuego.AllowResign = gameSettings.Assistant.FuegoAllowResign; fuego.Ponder = gameSettings.Assistant.FuegoPonder; fuego.MaxGames = gameSettings.Assistant.FuegoMaxGames; } RegisterHandlers(); }
//////////////// // State Changes //////////////// protected override void OnBoardTapped(Position position) { // If the analyze mode is enabled handle it and return if (IsAnalyzeModeEnabled) { AnalyzeBoardTap(position); return; } // Otherwise do a normal move if (IsTimelineInPast) { return; } if (Game?.Controller.Phase.Type == GamePhaseType.LifeDeathDetermination) { UiConnector.RequestLifeDeathKillGroup(position); } else { UiConnector.MakeMove(position); } }
private void RequestUndoDeathMarks() { UiConnector.RequestLifeDeathUndoDeathMarks(); }
private void ResumeGame() { UiConnector.ForceLifeDeathReturnToMain(); }
private void LifeAndDeathDone() { UiConnector.RequestLifeDeathDone(); }
/// <summary> /// Undo from UI /// </summary> private void Undo() { OutgoingUndoInProgress = true; UiConnector.RequestMainUndo(); }
/// <summary> /// Pass from UI /// </summary> private void Pass() { UiConnector.Pass(); }
//////////////// // Mvx Commands Implementation //////////////// /// <summary> /// Resignation from UI /// </summary> private void Resign() { UiConnector.Resign(); }