Exemplo n.º 1
0
 public ClientForm()
 {
     InitializeComponent();
     _client              = new UiConnector();
     _client.RefreshData += _client_RefreshData;
     btnConnect.Click    += BtnConnect_Click;
 }
Exemplo n.º 2
0
        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();
        }
Exemplo n.º 3
0
 public MainForm()
 {
     InitializeComponent();
     _server              = new UiConnector();
     _server.RefreshData += _server_RefreshData;
     Load += Form1_Load;
     btnStartListenig.Click += BtnStartListening_Click;
 }
Exemplo n.º 4
0
        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();
        }
Exemplo n.º 5
0
        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);
            }
        }
Exemplo n.º 6
0
        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();
        }
Exemplo n.º 7
0
        ////////////////
        // 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);
            }
        }
Exemplo n.º 8
0
 private void RequestUndoDeathMarks()
 {
     UiConnector.RequestLifeDeathUndoDeathMarks();
 }
Exemplo n.º 9
0
 private void ResumeGame()
 {
     UiConnector.ForceLifeDeathReturnToMain();
 }
Exemplo n.º 10
0
 private void LifeAndDeathDone()
 {
     UiConnector.RequestLifeDeathDone();
 }
Exemplo n.º 11
0
 /// <summary>
 /// Undo from UI
 /// </summary>
 private void Undo()
 {
     OutgoingUndoInProgress = true;
     UiConnector.RequestMainUndo();
 }
Exemplo n.º 12
0
 /// <summary>
 /// Pass from UI
 /// </summary>
 private void Pass()
 {
     UiConnector.Pass();
 }
Exemplo n.º 13
0
        ////////////////
        // Mvx Commands Implementation
        ////////////////

        /// <summary>
        /// Resignation from UI
        /// </summary>
        private void Resign()
        {
            UiConnector.Resign();
        }