Example #1
0
        internal float GetCarryBonus()
        {
            float storedCalorieRatio = (float)(storedCalories / Tuning.maximumStoredCalories);
            float storedCalorieScore = 2 * storedCalorieRatio - 1;
            float carryBonus         = Tuning.GetCarryBonus((float)wellFedHungerScore, storedCalorieScore);

            return((float)Math.Round(carryBonus, 1));
        }
Example #2
0
        private void UpdateWellFedHungerScore(float todHours)
        {
            double decay             = Math.Pow(Tuning.wellFedHungerScoreDecayPerHour, todHours);
            float  hungerRatio       = hunger.m_CurrentReserveCalories / hunger.m_MaxReserveCalories;
            float  hungerScoreChange = Tuning.GetWellFedHungerScoreChange(hungerRatio);

            // First change the hunger score ...
            wellFedHungerScore = decay * wellFedHungerScore + (1 - decay) * hungerScoreChange;
            // ... then clamp it to [-1, 1]
            wellFedHungerScore = Math.Min(Math.Max(wellFedHungerScore, -1), 1);
        }
Example #3
0
        internal float GetConditionChangePerHour()
        {
            float hungerRatio = hunger.m_CurrentReserveCalories / hunger.m_MaxReserveCalories;

            if (hungerRatio < Tuning.hungerLevelStarving)
            {
                return(Tuning.GetConditionChangePerHour(hungerRatio, storedCalories));
            }
            else
            {
                return(0f);
            }
        }
Example #4
0
 private static float GetStoredCaloriesChangePerHour(float hungerRatio, double storedCalories, float calorieBurnRate)
 {
     if (hungerRatio > Tuning.hungerLevelWellFed)
     {
         // Add calories if possible
         return(Tuning.GetCaloriesStoredPerHour(hungerRatio));
     }
     else if (hungerRatio < Tuning.hungerLevelMalnourished)
     {
         // Remove calories if possible
         return(Tuning.GetCaloriesRemovedPerHour(hungerRatio, storedCalories, calorieBurnRate));
     }
     else
     {
         return(0f);
     }
 }
Example #5
0
        internal float GetCalorieBurnRateMultiplier()
        {
            float storedCalorieRatio = (float)(storedCalories / Tuning.maximumStoredCalories);

            return(Tuning.GetCalorieBurnRateMultiplier(storedCalorieRatio));
        }
Example #6
0
        internal float GetStoredCaloriesWarmthBonus()
        {
            float storedCalorieRatio = (float)(storedCalories / Tuning.maximumStoredCalories);

            return(Tuning.GetStoredCaloriesWarmthBonus(storedCalorieRatio));
        }