// Function from file: shotgun.dm
        public override void shoot_live_shot(dynamic user = null, bool?pointblank = null, dynamic pbtarget = null, bool?message = null)
        {
            pointblank = pointblank ?? false;
            message    = message ?? true;

            Obj_Item_Weapon_Gun_Projectile_Shotgun_Boltaction_Enchanted GUN = null;

            base.shoot_live_shot((object)(user), pointblank, (object)(pbtarget), message);

            if (this.guns_left != 0)
            {
                GUN           = new Obj_Item_Weapon_Gun_Projectile_Shotgun_Boltaction_Enchanted();
                GUN.guns_left = this.guns_left - 1;
                user.drop_item();
                ((Mob)user).swap_hand();
                ((Mob)user).put_in_hands(GUN);
            }
            else
            {
                user.drop_item();
            }
            this.throw_at_fast(Rand13.PickFromTable(Map13.FetchInViewExcludeThis(GlobalFuncs.get_turf(user), 7)), 1, 1);
            ((Ent_Static)user).visible_message("<span class='warning'>" + user + " tosses aside the spent rifle!</span>");
            return;
        }
        // Function from file: infinite_guns.dm
        public override bool cast(dynamic targets = null, dynamic thearea = null, dynamic user = null)
        {
            thearea = thearea ?? Task13.User;

            Mob_Living_Carbon C = null;
            Obj_Item_Weapon_Gun_Projectile_Shotgun_Boltaction_Enchanted GUN = null;


            foreach (dynamic _a in Lang13.Enumerate(targets, typeof(Mob_Living_Carbon)))
            {
                C = _a;

                C.drop_item();
                C.swap_hand();
                C.drop_item();
                GUN = new Obj_Item_Weapon_Gun_Projectile_Shotgun_Boltaction_Enchanted();
                C.put_in_hands(GUN);
            }
            return(false);
        }