コード例 #1
0
        public void RemoveResource(int amount, ResourceType type, string troopName = "")
        {
            amount = Mathf.Abs(amount);

            int totalCheck = playerData.ObtainResourceAmount(type) - amount;

            if (totalCheck <= 0)
            {
                amount = playerData.ObtainResourceAmount(type);
            }

            switch (type)
            {
            case ResourceType.Food:
                playerData.foods -= amount;
                if (playerData.foods < 0)
                {
                    playerData.foods = 0;
                }
                break;

            case ResourceType.Population:
                playerData.population -= amount;
                if (playerData.population < 0)
                {
                    playerData.population = 0;
                }
                break;

            case ResourceType.Coin:
                playerData.coins -= amount;
                if (playerData.coins < 0)
                {
                    playerData.coins = 0;
                }
                break;

            case ResourceType.Cows:
                playerData.cows -= amount;
                if (playerData.cows < 0)
                {
                    playerData.cows = 0;
                }
                break;

            case ResourceType.farmer:
                playerData.farmerCount -= amount;
                if (playerData.farmerCount < 0)
                {
                    playerData.farmerCount = 0;
                }
                break;

            case ResourceType.herdsmen:
                playerData.herdsmanCount -= amount;
                if (playerData.herdsmanCount < 0)
                {
                    playerData.herdsmanCount = 0;
                }
                playerData.UpdateCowStorage();
                break;

            case ResourceType.storageKeeper:
                playerData.storageKeeperCount -= amount;
                if (playerData.storageKeeperCount < 0)
                {
                    playerData.storageKeeperCount = 0;
                }
                playerData.UpdateFoodStorage();
                break;

            case ResourceType.Troops:
                RemoveTroops(amount, troopName);
                break;

            case ResourceType.Mercenary:
                RemoveMercenary(amount, troopName);
                break;

            default:
                break;
            }

            if (TransitionManager.GetInstance != null && !TransitionManager.GetInstance.isNewGame)
            {
                SaveData.SaveLoadManager.GetInstance.SaveCurrentData();
            }


            foodBehavior.UpdateWarningMechanics();
            troopBehavior.UpdateWarningMechanics();
            populationBehavior.UpdateWarningMechanics();
            coinBehavior.UpdateWarningMechanics();
            if (ResourceInformationController.GetInstance != null)
            {
                ResourceInformationController.GetInstance.UpdateCurrentPanelWarnings();
            }
        }