public override bool ShouldShowFor(StatRequest req) { if (req.Def is ThingDef { IsDoor : true } thingDef) { if (!Building_DoorExpanded.DoorNeedsPower(thingDef)) { return(stat == HeronDefOf.DoorOpenTime); } if (!req.HasThing) { return(stat != HeronDefOf.DoorOpenTime); } if (stat == HeronDefOf.DoorOpenTime) { return(true); } if (Building_DoorExpanded.DoorIsPoweredOn(req.Thing) is bool doorPowerOn) { return(doorPowerOn ? stat == HeronDefOf.UnpoweredDoorOpenTime : stat == HeronDefOf.PoweredDoorOpenTime); } } return(false); }
private bool DoorPowerOn(StatRequest req) { if (stat == HeronDefOf.PoweredDoorOpenTime) { return(true); } if (stat == HeronDefOf.UnpoweredDoorOpenTime) { return(false); } return(Building_DoorExpanded.DoorIsPoweredOn(req.Thing) ?? Building_DoorExpanded.DoorNeedsPower((ThingDef)req.Def)); }