示例#1
0
    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;
    }
示例#2
0
    void EatWaste(Hex habitat)
    {
        float bite = biteSize;
        Hex currentHabitat = habitat;

        if(currentHabitat.GetWasteFood() < (size * (bite) * currentHabitat.localCritters.Count)){
            bite = bite / 2;
        }
        if(currentHabitat.GetWasteFood() <= 0){
            bite = 0;
        }
        else if(currentHabitat.GetWasteFood() < bite){
            bite = currentHabitat.GetWasteFood();
        }
        if(bite > energy_Needed){
            bite = energy_Needed;
        }
        if(bite <= 0){
            bite = 0;
        }

        float food = habitat.GetWasteRatio();
        float foodHealth = food + (1 - food) / 2;

        foodTaken += (bite * foodHealth);
        currentHabitat.ReduceExcessMeatFood(foodTaken);
    }