private Chore CreateNarcolepsyChore(StatesInstance smi) { GameObject bed = smi.CreateFloorLocator(); SleepChore sleepChore = new SleepChore(Db.Get().ChoreTypes.Narcolepsy, smi.master, bed, true, false); sleepChore.AddPrecondition(IsNarcolepsingPrecondition, null); return(sleepChore); }
public GameObject CreateFloorLocator() { Sleepable safeFloorLocator = SleepChore.GetSafeFloorLocator(base.master.gameObject); safeFloorLocator.effectName = "NarcolepticSleep"; safeFloorLocator.stretchOnWake = false; return(safeFloorLocator.gameObject); }
public GameObject CreateFloorLocator() { Sleepable safeFloorLocator = SleepChore.GetSafeFloorLocator(base.master.gameObject); safeFloorLocator.effectName = "FloorSleep"; safeFloorLocator.wakeEffects = new List <string> { "SoreBack" }; safeFloorLocator.stretchOnWake = false; return(safeFloorLocator.gameObject); }
public static SafeFlags GetFlags(int cell, MinionBrain brain, bool avoid_light = false) { int num = Grid.CellAbove(cell); if (!Grid.IsValidCell(num)) { return((SafeFlags)0); } if (Grid.Solid[cell] || Grid.Solid[num]) { return((SafeFlags)0); } if (Grid.IsTileUnderConstruction[cell] || Grid.IsTileUnderConstruction[num]) { return((SafeFlags)0); } bool flag = brain.IsCellClear(cell); bool flag2 = !Grid.Element[cell].IsLiquid; bool flag3 = !Grid.Element[num].IsLiquid; bool flag4 = Grid.Temperature[cell] > 285.15f && Grid.Temperature[cell] < 303.15f; bool flag5 = brain.OxygenBreather.IsBreathableElementAtCell(cell, Grid.DefaultOffset); bool flag6 = !brain.Navigator.NavGrid.NavTable.IsValid(cell, NavType.Ladder) && !brain.Navigator.NavGrid.NavTable.IsValid(cell, NavType.Pole); bool flag7 = !brain.Navigator.NavGrid.NavTable.IsValid(cell, NavType.Tube); bool flag8 = !avoid_light || SleepChore.IsLightLevelOk(cell); if (cell == Grid.PosToCell(brain)) { flag5 = !brain.OxygenBreather.IsSuffocating; } SafeFlags safeFlags = (SafeFlags)0; if (flag) { safeFlags |= SafeFlags.IsClear; } if (flag4) { safeFlags |= SafeFlags.CorrectTemperature; } if (flag5) { safeFlags |= SafeFlags.IsBreathable; } if (flag6) { safeFlags |= SafeFlags.IsNotLadder; } if (flag7) { safeFlags |= SafeFlags.IsNotTube; } if (flag2) { safeFlags |= SafeFlags.IsNotLiquid; } if (flag3) { safeFlags |= SafeFlags.IsNotLiquidOnMyFace; } if (flag8) { safeFlags |= SafeFlags.IsLightOk; } return(safeFlags); }