// (weighted) availability of activity, given state of run public override int CustomAvailability(RunState runState) { Activity balancedMeal = Object.FindObjectOfType <BalancedMeal>(); // offer whenever it's time for a meal if (balancedMeal.Availability(runState) > 0) { return(3); } // or if meal was skipped int timeSinceEat = System.Math.Min(runState.TimeSinceLast(this), runState.TimeSinceLast(balancedMeal)); int hunger = System.Math.Max(0, timeSinceEat - 3); return(hunger); }
// (weighted) availability of activity, given state of run public override int CustomAvailability(RunState runState) { if (runState.timeSteps <= 1 || runState.TimeSinceLast(this) == 0) { // dominate when available return(10); } return(0); }