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(); } }