Beispiel #1
0
    public double CalculateTurnRevenue()
    {
        turnRevenue = 0 - CalculateUpkeep();
        Debug.Log("Have " + recipes.Count + " recipies");
        foreach (RestaurantRecipe r in recipes)
        {
            Debug.Log("Sold " + r.quantitySold + " units of " + r.recipe.name);
            if (upgrades.Contains(Tech.CHEAPER_INGREDIENTS))
            {
                turnRevenue += CheaperIngredientTech(r);
            }
            else if (upgrades.Contains(Tech.STEAK_HOUSE))
            {
                turnRevenue += SteakHouseTech(r);
            }
            else if (upgrades.Contains(Tech.CUTTING_CORNERS))
            {
                turnRevenue += CuttingCornersTech(r);
            }
            else if (upgrades.Contains(Tech.FRESH_PRODUCE))
            {
                turnRevenue += FreshProduceTech(r);
            }
            else
            {
                turnRevenue += (r.sellingPrice - r.manufacturingCost) * r.quantitySold;
            }
            r.quantitySold = 0;
        }
        //EveryCorner
        if (upgrades.Contains(Tech.EVERY_CORNER))
        {
            if (TileGenerator.SameDistrict(this))
            { // looks through all the tiles every turn. Which slows the game down a lot. Has to be a better way
                turnRevenue *= 1.05;
            }
        }
        // City SIde
        if (upgrades.Contains(Tech.CITY_SIDE))
        {
            int cityBlocks = TileGenerator.AmountOfCityBlocks(this);
            GameController.Instance().activePlayer.AddTechPointRate(cityBlocks);
        }
        // Remote Location
        if (upgrades.Contains(Tech.REMOTE_LOCATION))
        {
            int ruralAreas = TileGenerator.AmountOfRuralBlocks(this);
            GameController.Instance().activePlayer.AddTechPointRate(ruralAreas);
        }

        if (upgrades.Contains(Tech.BRANDED_MICROWAVE_FOODS))
        {
            turnRevenue += 100;
        }

        if (upgrades.Contains(Tech.FINE_DINING))
        {
            turnRevenue += 1.1;
        }


        //Limited Time Event
        if (upgrades.Contains(Tech.LIMITED_TIME_OFFER) && GameController.Instance().GetRoundNumber() % 10 == 0)
        {
            turnRevenue += 150;
            Debug.Log("You got an extra 150 per restaurant for your Limited Time Offer tech");
        }

        if (upgrades.Contains(Tech.CHAIN_RESTAURANT))
        {
            turnRevenue *= 1.1;
        }


        return(turnRevenue);
    }