Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
    public GameObject GetNextLevelKnightPrefab(KnightRank rank)
    {
        GameObject nextLevelKnightPrefab = null;

        if (((int)rank) + 1 < knightPrefabs.Length)
        {
            nextLevelKnightPrefab = knightPrefabs [((int)rank) + 1];
        }

        return(nextLevelKnightPrefab);
    }
Ejemplo n.º 3
0
    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);
 }
Ejemplo n.º 5
0
    public bool canBuildMoreKnights(KnightRank rank)
    {
        int rankCount = getNumKnights(rank);

        return(rankCount < 2);
    }