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)); } }
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 }); }