public static bool GoIntoHeat(this Creature creature, byte intensity, out string output) { if (creature.perks.HasTimedEffect <Heat>()) { var heat = creature.perks.GetTimedEffectData <Heat>(); bool retVal = heat.IncreaseHeat(intensity); output = null; if (retVal) { output = heat.IncreasedHeatText(); } return(retVal); } else if (creature.hasVagina && !creature.womb.isPregnant) { ushort timeout = (intensity * Heat.TIMEOUT_STACK > ushort.MaxValue) ? ushort.MaxValue : (ushort)(intensity * Heat.TIMEOUT_STACK); var heat = new Heat(timeout); creature.perks.AddTimedEffect(heat); output = heat.ObtainText(); return(true); } else { output = null; return(false); } }