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); }); }
private void SwitchSides() { var current = _current; _current = _opponent; _opponent = current; }