public override async Task <CreatePlayerStateReply> CreatePlayerState(CreatePlayerStateRequest request, ServerCallContext context) { var PlayerState = new PlayerGameState(); PlayerState.Game = JsonConvert.DeserializeObject <Cartridge>(request.Game); PlayerState.PlayerKey = Guid.NewGuid().ToString(); PlayerState.Inventory = new Inventory(); PlayerState.PlayerHp = 10; PlayerState.WalkedEast = 0; PlayerState.WalkedNorth = 0; PlayerState.WalkedSouth = 0; PlayerState.WalkedWest = 0; PlayerState.PlayerKey = request.PlayerName; PlayerState.CurrentScene = PlayerState.Game.Locations.FirstOrDefault()?.Name; await _mongoRepository.InsertOneAsync(PlayerState); //TODO: Add Call to Cache server here to store the player name under the game id in redis return(new CreatePlayerStateReply() { Message = JsonConvert.SerializeObject(PlayerState) }); }
//TODO: clean up the models here public async Task <CreatePlayerStateReply> CreateNewGameState(CreatePlayerStateRequest request) { return(await _client.CreatePlayerStateAsync(request)); }