コード例 #1
0
        // Function from file: disposal-unit.dm
        public void expel(Obj_Structure_Disposalholder H = null)
        {
            dynamic     T      = null;
            Tile        target = null;
            Ent_Dynamic AM     = null;

            T = GlobalFuncs.get_turf(this);
            GlobalFuncs.playsound(this, "sound/machines/hiss.ogg", 50, 0, 0);

            if (H != null)
            {
                foreach (dynamic _a in Lang13.Enumerate(H, typeof(Ent_Dynamic)))
                {
                    AM = _a;

                    target = GlobalFuncs.get_offset_target_turf(this.loc, Rand13.Int(5) - Rand13.Int(5), Rand13.Int(5) - Rand13.Int(5));
                    AM.forceMove(T);
                    AM.pipe_eject(0);
                    AM.throw_at_fast(target, 5, 1);
                }
                H.vent_gas(this.loc);
                GlobalFuncs.qdel(H);
            }
            return;
        }
コード例 #2
0
        // Function from file: disposal-structures.dm
        public void expel(Obj_Structure_Disposalholder H = null)
        {
            dynamic     T  = null;
            Ent_Dynamic AM = null;

            T = GlobalFuncs.get_turf(this);
            Icon13.Flick("outlet-open", this);

            if (this.start_eject + 30 < Game13.time)
            {
                this.start_eject = Game13.time;
                GlobalFuncs.playsound(this, "sound/machines/warning-buzzer.ogg", 50, 0, 0);
                Task13.Sleep(20);
                GlobalFuncs.playsound(this, "sound/machines/hiss.ogg", 50, 0, 0);
            }
            else
            {
                Task13.Sleep(20);
            }

            if (H != null)
            {
                foreach (dynamic _a in Lang13.Enumerate(H, typeof(Ent_Dynamic)))
                {
                    AM = _a;

                    AM.forceMove(T);
                    AM.pipe_eject(this.dir);
                    AM.throw_at_fast(this.target, this.eject_range, 1);
                }
                H.vent_gas(T);
                GlobalFuncs.qdel(H);
            }
            return;
        }
コード例 #3
0
        // Function from file: disposal-structures.dm
        public override dynamic Destroy(  )
        {
            dynamic     H  = null;
            Ent_Static  T  = null;
            Ent_Dynamic AM = null;

            H = Lang13.FindIn(typeof(Obj_Structure_Disposalholder), this);

            if (Lang13.Bool(H))
            {
                H.active = 0;
                T        = this.loc;

                if (T.density)
                {
                    foreach (dynamic _a in Lang13.Enumerate(H, typeof(Ent_Dynamic)))
                    {
                        AM = _a;

                        AM.forceMove(this.loc);
                        AM.pipe_eject(0);
                    }
                    GlobalFuncs.qdel(H);
                    return(base.Destroy());
                }
                else
                {
                    this.expel(H, T, 0);
                }
            }
            return(base.Destroy());
        }
コード例 #4
0
        // Function from file: disposal-structures.dm
        public void broken(bool?remains = null)
        {
            remains = remains ?? false;

            dynamic D = null;
            Obj_Structure_Disposalpipe_Broken P = null;
            dynamic     H  = null;
            Ent_Static  T  = null;
            Ent_Dynamic AM = null;


            if (remains == true)
            {
                foreach (dynamic _a in Lang13.Enumerate(GlobalVars.cardinal))
                {
                    D = _a;


                    if (Lang13.Bool(D & this.dpdir))
                    {
                        P     = new Obj_Structure_Disposalpipe_Broken(this.loc);
                        P.dir = Convert.ToInt32(D);
                    }
                }
            }
            this.invisibility = 101;
            H = Lang13.FindIn(typeof(Obj_Structure_Disposalholder), this);

            if (Lang13.Bool(H))
            {
                H.active = 0;
                T        = this.loc;

                if (T.density)
                {
                    foreach (dynamic _b in Lang13.Enumerate(H, typeof(Ent_Dynamic)))
                    {
                        AM = _b;

                        AM.forceMove(this.loc);
                        AM.pipe_eject(0);
                    }
                    GlobalFuncs.qdel(H);
                    return;
                }

                if (Lang13.Bool(H))
                {
                    this.expel(H, T, 0);
                }
            }
            Task13.Schedule(2, (Task13.Closure)(() => {
                GlobalFuncs.qdel(this);
                return;
            }));
            return;
        }
コード例 #5
0
        // Function from file: disposal-unit.dm
        public void eject(  )
        {
            dynamic     T  = null;
            Ent_Dynamic AM = null;

            T = GlobalFuncs.get_turf(this);

            foreach (dynamic _a in Lang13.Enumerate(this, typeof(Ent_Dynamic)))
            {
                AM = _a;

                AM.forceMove(T);
                AM.pipe_eject(0);
            }
            this.update();
            return;
        }
コード例 #6
0
        // Function from file: disposal-structures.dm
        public void expel(dynamic H = null, dynamic T = null, int?direction = null)
        {
            dynamic     target = null;
            dynamic     myturf = null;
            Ent_Dynamic AM     = null;
            Ent_Dynamic AM2    = null;


            if (T is Tile_Simulated_Floor)
            {
                myturf = T;

                if (Lang13.Bool(myturf.builtin_tile))
                {
                    myturf.builtin_tile.loc = T;
                    myturf.builtin_tile     = null;
                }
                ((Tile_Simulated_Floor)myturf).make_plating();
            }

            if (Lang13.Bool(direction))
            {
                if (T is Tile_Space)
                {
                    target = GlobalFuncs.get_edge_target_turf(T, direction);
                }
                else
                {
                    target = GlobalFuncs.get_ranged_target_turf(T, direction, 10);
                }
                GlobalFuncs.playsound(this, "sound/machines/hiss.ogg", 50, 0, 0);

                if (Lang13.Bool(H))
                {
                    foreach (dynamic _a in Lang13.Enumerate(H, typeof(Ent_Dynamic)))
                    {
                        AM = _a;

                        AM.forceMove(this.loc);
                        AM.pipe_eject(direction);
                        AM.throw_at_fast(target, 10, 1);
                    }
                }
            }
            else
            {
                GlobalFuncs.playsound(this, "sound/machines/hiss.ogg", 50, 0, 0);

                if (Lang13.Bool(H))
                {
                    foreach (dynamic _b in Lang13.Enumerate(H, typeof(Ent_Dynamic)))
                    {
                        AM2 = _b;

                        target = GlobalFuncs.get_offset_target_turf(T, Rand13.Int(5) - Rand13.Int(5), Rand13.Int(5) - Rand13.Int(5));
                        AM2.forceMove(this.loc);
                        AM2.pipe_eject(0);
                        AM2.throw_at_fast(target, 5, 1);
                    }
                }
            }
            ((Obj_Structure_Disposalholder)H).vent_gas(T);
            GlobalFuncs.qdel(H);
            return;
        }