Пример #1
0
        public override void TransformValue(StatRequest req, ref float val)
        {
            Pawn pawn = req.Thing as Pawn;

            PawnCapacitiesHandler capacities = pawn?.health.capacities;

            if (capacities == null || !capacities.CapableOf(GethCapacities.GethCoolingEfficiency))
            {
                return;
            }

            val -= val * HeatCoefficient(capacities);
        }
Пример #2
0
        internal static bool WouldDieWithoutLifeSupport(this Pawn pawn)
        {
            PawnCapacitiesHandler capacitiesHandler = pawn.health.capacities;
            bool isFlesh = pawn.RaceProps.IsFlesh;

            foreach (PawnCapacityDef pawnCapacityDef in DefDatabase <PawnCapacityDef> .AllDefsListForReading)
            {
                if (isFlesh ? !pawnCapacityDef.lethalFlesh : !pawnCapacityDef.lethalMechanoids)
                {
                    // not deadly
                }
                else if (!capacitiesHandler.CapableOf(pawnCapacityDef))
                {
                    return(true);
                }
            }
            return(false);
        }