private float SetFoodRatio(Hex habitat) { float plantFood = habitat.GetVegHealth(); float meatFood = habitat.GetMeatHealth(); float insectFood = habitat.GetInsectHealth(); float fishFood = habitat.GetFishHealth(); float wasteFood = habitat.GetWasteRatio(); float foodRatio = 0.00f; if(diet.Contains(dietType.HERB)){ foodRatio += plantFood + ((1 - plantFood) / 2); } if(diet.Contains(dietType.CARNO)){ foodRatio += meatFood + ((1 - meatFood) / 2); } if(diet.Contains(dietType.FISH)){ foodRatio += fishFood + ((1 - fishFood) / 2); } if(diet.Contains(dietType.INSECT)){ foodRatio += insectFood + ((1 - insectFood) / 2); } if(diet.Contains(dietType.SCAV)){ foodRatio += wasteFood + ((1 - wasteFood) / 2); } foodRatio /= diet.Count; if (isPlayer) { //print(foodRatio); } if(foodRatio > 1){ foodRatio = 1; } else if(foodRatio < 0){ foodRatio = 0; } return foodRatio; }
void EatInsects(Hex habitat) { float bite = biteSize; Hex currentHabitat = habitat; if(currentHabitat.GetInsectFood() < (size * bite * currentHabitat.localCritters.Count)){ bite = bite / 2; } if(currentHabitat.GetInsectFood() <= 0){ bite = 0; } else if(currentHabitat.GetInsectFood() < bite){ bite = currentHabitat.GetWasteFood(); } if(bite > energy_Needed){ bite = energy_Needed; } if(bite <= 0){ bite = 0; } float food = habitat.GetInsectHealth(); float foodHealth = food + (1 - food) / 2; foodTaken += (bite * foodHealth); currentHabitat.ReduceInsectFood(foodTaken); if(foodTaken * 2 < energy_Needed){ if(offense > Random.Range(0, 101)){ foodTaken *= 2; } } }