public int TranslateFromHunger() { Stomach Stomach = this.ParentObject.GetPart("Stomach") as Stomach; int StomachCapacity = Stomach.CalculateCookingIncrement() * 2; // accounts for Fasting Way and Mind Over Body -- * 2 gets you total hunger until famished double PercentageFull = (double)(StomachCapacity - Stomach.CookingCounter) / (double)StomachCapacity; return(Math.Max(0, (int)(PercentageFull * GetCapacity(this.Level)))); }
// return actual charge used public int ConsumeCharge(int Charge) { int ChargeAvailable = TranslateFromHunger(); if (Charge > ChargeAvailable) { return(0); } Stomach Stomach = this.ParentObject.GetPart("Stomach") as Stomach; int StomachCapacity = Stomach.CalculateCookingIncrement() * 2; // accounts for Fasting Way and Mind Over Body -- * 2 gets you total hunger until famished Stomach.CookingCounter = (int)(((ChargeAvailable - Charge) / (double)GetCapacity(this.Level)) * StomachCapacity); return(Charge); }