// Function from file: gloves.dm
        public override dynamic Touch(Ent_Static A = null, bool proximity = false)
        {
            Ent_Static H = null;
            Obj_Item_Clothing_Suit_Space_SpaceNinja suit = null;
            dynamic drained = null;


            if (!this.candrain || this.draining)
            {
                return(0);
            }

            if (!(this.loc is Mob_Living_Carbon_Human))
            {
                return(0);
            }
            H    = this.loc;
            suit = ((dynamic)H).wear_suit;

            if (!(suit is Obj_Item_Clothing_Suit_Space_SpaceNinja))
            {
                return(0);
            }

            if (A is Tile)
            {
                return(0);
            }

            if (!proximity)
            {
                return(0);
            }
            A.add_fingerprint(H);
            this.draining = true;
            drained       = A.ninjadrain_act(suit, H, this);
            this.draining = false;

            if (Lang13.Bool(Lang13.IsNumber(drained)))
            {
                if (Lang13.Bool(drained))
                {
                    ((dynamic)H).WriteMsg(new Txt("<span class='notice'>Gained <B>").item(drained).str("</B> energy from ").the(A).item().str(".</span>").ToString());
                }
                else
                {
                    ((dynamic)H).WriteMsg(new Txt("<span class='danger'>").The(A).item().str(" has run dry of power, you must find another source!</span>").ToString());
                }
            }
            else
            {
                drained = 0;
            }
            return(drained);
        }