public async Task AddPlayerKnight(Guid catanGameId, Guid activePlayerId, KnightRank knightRank) { _logger?.LogDebug($"AddPlayerKnight: {catanGameId}, activePlayerId: {activePlayerId}, knightRank: {knightRank}"); int knightsNumberToAdd = 0; switch (knightRank) { case KnightRank.Basic: knightsNumberToAdd = 1; break; case KnightRank.Strong: knightsNumberToAdd = 2; break; case KnightRank.Mighty: knightsNumberToAdd = 3; break; } FilterDefinition <CatanGame> filter = Builders <CatanGame> .Filter.Where(game => game.Id == catanGameId && game.ActivePlayers.Any(activePlayer => activePlayer.Id == activePlayerId)); UpdateDefinition <CatanGame> update = Builders <CatanGame> .Update.Inc(x => x.ActivePlayers[-1].NumOfTotalKnights, knightsNumberToAdd); await MongoCollection.UpdateOneAsync(filter, update); }
public GameObject GetNextLevelKnightPrefab(KnightRank rank) { GameObject nextLevelKnightPrefab = null; if (((int)rank) + 1 < knightPrefabs.Length) { nextLevelKnightPrefab = knightPrefabs [((int)rank) + 1]; } return(nextLevelKnightPrefab); }
public int getNumKnights(KnightRank rank) { int rankCount = 0; List <Knight> knights = ownedUnits [typeof(Knight)].Cast <Knight> ().ToList(); for (int i = 0; i < knights.Count; i++) { if (knights [i].rank == rank) { rankCount++; } } return(rankCount); }
public async Task AddPlayerKnight(Guid catanGameId, Guid activePlayerId, KnightRank knightRank) { _logger?.LogDebug($"AddPlayerKnight for catanGame: {catanGameId}, player: {activePlayerId}, knightRank: {knightRank}"); await _catanGamePersist.AddPlayerKnight(catanGameId, activePlayerId, knightRank); }
public bool canBuildMoreKnights(KnightRank rank) { int rankCount = getNumKnights(rank); return(rankCount < 2); }