public void ImproveCityOfType(CityImprovementType improvementType)
 {
     if (cityImprovements [improvementType] < 5)
     {
         cityImprovements [improvementType]++;
     }
 }
Esempio n. 2
0
    public bool canUpgrade(CityImprovementType improvementType)
    {
        int  numCities  = getOwnedUnitsOfType(UnitType.City).Count;
        bool canUpgrade = false;

        if (numCities > 0)
        {
            if (hasAvailableAssets(cityImprovements.nextImprovementCost(improvementType)))
            {
                canUpgrade = true;
            }
        }
        return(canUpgrade);
    }
    public AssetTuple nextImprovementCost(CityImprovementType improvementType)
    {
        CommodityTuple commodityCost = new CommodityTuple();

        if (cityImprovements [improvementType] < 5)
        {
            if (playedCraneThisTurn)
            {
                commodityCost.addCommodityWithType(upgradeCommodityChart [improvementType], cityImprovements [improvementType]);
            }
            else
            {
                commodityCost.addCommodityWithType(upgradeCommodityChart [improvementType], cityImprovements [improvementType] + 1);
            }
        }

        return(new AssetTuple(new ResourceTuple(), commodityCost));
    }
    public void upgradeScience()
    {
        CityImprovementType science = CityImprovementType.Science;

        if (CatanManager.instance.currentPlayerTurn == PhotonNetwork.player.ID - 1 && CatanManager.instance.players [CatanManager.instance.currentPlayerTurn].canUpgrade(science))
        {
            AssetTuple upgradeCost = CatanManager.instance.players [CatanManager.instance.currentPlayerTurn].cityImprovements.nextImprovementCost(science);
            if (CatanManager.instance.players [CatanManager.instance.currentPlayerTurn].playedCrane)
            {
                upgradeCost.SetValueAtIndex(5, upgradeCost.GetValueAtIndex(5) - 1);
                CatanManager.instance.players [CatanManager.instance.currentPlayerTurn].playedCrane = false;
            }

            EventTransferManager.instance.OnTradeWithBank(CatanManager.instance.currentPlayerTurn, false, upgradeCost);
            EventTransferManager.instance.OnUpgradeCity(CatanManager.instance.currentPlayerTurn, (int)science);

            int scienceLevel  = CatanManager.instance.players [CatanManager.instance.currentPlayerTurn].cityImprovements.cityImprovements [CityImprovementType.Science];
            int politicsLevel = CatanManager.instance.players [CatanManager.instance.currentPlayerTurn].cityImprovements.cityImprovements [CityImprovementType.Politics];
            int tradeLevel    = CatanManager.instance.players [CatanManager.instance.currentPlayerTurn].cityImprovements.cityImprovements [CityImprovementType.Trade];

            openPanel(tradeLevel, politicsLevel, scienceLevel);
        }
    }
Esempio n. 5
0
 public bool canStealMetropolis(Player other, CityImprovementType metropolisType)
 {
     Debug.Log("Steal comparison. This is : " + this.playerNumber + " and other is : " + other.playerNumber);
     return(this.cityImprovements.cityImprovements [metropolisType] > other.cityImprovements.cityImprovements [metropolisType]);
 }
Esempio n. 6
0
 public bool canBuildMetropolis(CityImprovementType metropolisType)
 {
     return(cityImprovements.cityImprovements [metropolisType] >= 4);
 }