// Function from file: infrared.dm
        public override int?process(dynamic seconds = null)
        {
            Obj_Effect_Beam_IBeam I = null;


            if (this.loc.density || !(this.master != null))
            {
                GlobalFuncs.qdel(this);
                return(null);
            }

            if (this.left > 0)
            {
                this.left--;
            }

            if (this.left < 1)
            {
                if (!this.visible)
                {
                    this.invisibility = 101;
                }
                else
                {
                    this.invisibility = 0;
                }
            }
            else
            {
                this.invisibility = 0;
            }

            if (!(this.next != null) && this.limit > 0)
            {
                I          = new Obj_Effect_Beam_IBeam(this.loc);
                I.master   = this.master;
                I.density  = true;
                I.dir      = this.dir;
                I.previous = this;
                this.next  = I;
                Map13.Step(I, I.dir);

                if (this.next != null)
                {
                    I.density = false;
                    I.vis_spread(this.visible);
                    I.limit          = this.limit - 1;
                    this.master.last = I;
                    I.process();
                }
            }
            return(null);
        }
        // Function from file: infrared.dm
        public override int?process(dynamic seconds = null)
        {
            dynamic T = null;
            Obj_Effect_Beam_IBeam I = null;


            if (!this.on)
            {
                if (this.first != null)
                {
                    GlobalFuncs.qdel(this.first);
                }
                return(null);
            }

            if (!this.secured)
            {
                return(null);
            }

            if (this.first != null && this.last != null)
            {
                this.last.process();
                return(null);
            }
            T = GlobalFuncs.get_turf(this);

            if (Lang13.Bool(T))
            {
                I          = new Obj_Effect_Beam_IBeam(T);
                I.master   = this;
                I.density  = true;
                I.dir      = this.dir;
                this.first = I;
                Map13.Step(I, I.dir);

                if (this.first != null)
                {
                    I.density = false;
                    I.vis_spread(this.visible);
                    I.limit = 8;
                    I.process();
                }
            }
            return(null);
        }
        // Function from file: infrared.dm
        public override dynamic Destroy(  )
        {
            if (this.master.first == this)
            {
                this.master.first = null;
            }

            if (this.next != null)
            {
                GlobalFuncs.qdel(this.next);
                this.next = null;
            }

            if (this.previous != null)
            {
                this.previous.next = null;
                this.master.last   = this.previous;
            }
            return(base.Destroy());
        }