// Function from file: shadowling_abilities.dm
        public override bool cast(dynamic targets = null, dynamic thearea = null, dynamic user = null)
        {
            thearea = thearea ?? Task13.User;

            dynamic                  T      = null;
            Obj_Item                 F      = null;
            Obj_Machinery_Light      L      = null;
            Obj_Machinery_Computer   C      = null;
            Obj_Effect_Glowshroom    G      = null;
            Mob_Living               H      = null;
            Mob_Living_Silicon_Robot borgie = null;


            if (!this.shadowling_check(thearea) && !this.admin_override)
            {
                this.revert_cast();
                return(false);
            }
            thearea.WriteMsg("<span class='shadowling'>You silently disable all nearby lights.</span>");

            foreach (dynamic _g in Lang13.Enumerate(targets))
            {
                T = _g;


                foreach (dynamic _a in Lang13.Enumerate(T.contents, typeof(Obj_Item)))
                {
                    F = _a;

                    this.extinguishItem(F);
                }

                foreach (dynamic _b in Lang13.Enumerate(T.contents, typeof(Obj_Machinery_Light)))
                {
                    L = _b;

                    L.on = false;
                    L.visible_message("<span class='warning'>" + L + " flickers and falls dark.</span>");
                    L.update(false);
                }

                foreach (dynamic _c in Lang13.Enumerate(T.contents, typeof(Obj_Machinery_Computer)))
                {
                    C = _c;

                    C.SetLuminosity(0);
                    C.visible_message("<span class='warning'>" + C + " grows dim, its screen barely readable.</span>");
                }

                foreach (dynamic _d in Lang13.Enumerate(Map13.FetchInRangeExcludeThis(thearea, 7), typeof(Obj_Effect_Glowshroom)))
                {
                    G = _d;

                    G.visible_message("<span class='warning'>" + G + " withers away!</span>");
                    GlobalFuncs.qdel(G);
                }

                foreach (dynamic _e in Lang13.Enumerate(T.contents, typeof(Mob_Living)))
                {
                    H = _e;

                    this.extinguishMob(H);
                }

                foreach (dynamic _f in Lang13.Enumerate(T.contents, typeof(Mob_Living_Silicon_Robot)))
                {
                    borgie = _f;

                    borgie.update_headlamp(true);
                }
            }
            return(false);
        }