private void HandleGameplay(Message e)
        {
            Log("HandleGameplay");
            var moveMessage = serializer.Deserialize <MoveMessage>(e.MessageString);

            if (moveMessage.IsStop)
            {
                ShowScores(moveMessage.stop.scores);
                Environment.Exit(0);
            }
            else
            {
                var claims = moveMessage.move.moves.Where(x => x.claim != null);
                foreach (var move in claims)
                {
                    session.Map.Claim(source: move.claim.source,
                                      target: move.claim.target,
                                      punterId: move.claim.punter);
                }

                var gameState = new GameState
                {
                    CurrentPunter = new Punter
                    {
                        Id = session.MyId
                    },
                    Map = session.Map
                };
                var edge        = punter.Claim(gameState);
                var moveCommand = new MoveCommand
                {
                    claim = new Claim
                    {
                        punter = session.MyId,
                        source = edge.Source.Id,
                        target = edge.Target.Id
                    }
                };
                e.Reply(serializer.Serialize(moveCommand));
            }
        }
示例#2
0
        private void Gameplay(MoveMessage gameplayMessage)
        {
            Log("Let's gameplay");

            var move  = gameplayMessage.move;
            var state = gameplayMessage.state;

            var gameState = InitGameState(state, move.moves);

            var edge = punter.Claim(gameState);

            state.PunterState = punter.State;

            transport.Send(new MoveCommand
            {
                claim = new Claim
                {
                    punter = state.MyPunter,
                    source = edge.Source.Id,
                    target = edge.Target.Id,
                },
                state = state
            });
        }