コード例 #1
0
        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);
        }
コード例 #2
0
        public GameObject CreateFloorLocator()
        {
            Sleepable safeFloorLocator = SleepChore.GetSafeFloorLocator(base.master.gameObject);

            safeFloorLocator.effectName    = "NarcolepticSleep";
            safeFloorLocator.stretchOnWake = false;
            return(safeFloorLocator.gameObject);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
    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);
    }