Exemplo n.º 1
0
        public GameActor(Guid gameToken)
        {
            _gameToken = gameToken;

            Receive<Message.PlayerJoining>(IsForMe, message =>
            {
                var player = new PlayerContainer(message.Player);

                GameLog("Player " + message.Player.Name + " arrived");
                if (_current == null)
                {
                    _current = player;
                    _current.Tell(new Message.GameStatusUpdate(message.Token, _gameToken, GameStatus.Created, Self), Self);
                }
                else
                {
                    _opponent = player;
                    _opponent.Tell(new Message.GameStatusUpdate(_opponent.Player.Token, _gameToken, GameStatus.Created, Self, "Your opponent is " + _current.Player.Name), Self);
                    _current.Tell(new Message.GameStatusUpdate(_current.Player.Token, _gameToken, GameStatus.PlayerJoined, Self, "Your opponent is " + _opponent.Player.Name), Self);

                    _current.CreateTable(Context, _gameToken);
                    _opponent.CreateTable(Context, _gameToken);

                    Become(WaitingForPositions);
                }
            });

            Receive<Message.StopGame>(IsForMe, message =>
            {
                HandleStopGame(message.Token);
            });
        }
Exemplo n.º 2
0
 private void SwitchSides()
 {
     var current = _current;
     _current = _opponent;
     _opponent = current;
 }