protected override bool TryCastShot()
        {
            if (!done)
            {
                compAmmo = ownerEquipment.GetComp <CompReloader>();
                done     = true;
            }

            if (compAmmo == null)
            {
                Log.ErrorOnce("No compAmmo found!", 12423);
                return(base.TryCastShot());
            }

            if (compAmmo.needReload)
            {
                compAmmo.StartReload();
                return(false);
            }

            if (!base.TryCastShot())
            {
                return(false);
            }

            compAmmo.count--;
            if (compAmmo.count <= 0)
            {
                compAmmo.StartReload();
            }

            return(true);
        }
        protected override bool TryCastShot()
        {
            if ( !done )
            {
                compAmmo = ownerEquipment.GetComp< CompReloader >();
                done = true;
            }

            if ( compAmmo == null )
            {
                Log.ErrorOnce( "No compAmmo found!", 12423 );
                return base.TryCastShot();
            }

            if ( compAmmo.needReload || compAmmo.count <= 0)
            {
                compAmmo.StartReload();
                return false;
            }

            if ( !base.TryCastShot() )
            {
                return false;
            }

            compAmmo.count--;
            if ( compAmmo.count <= 0 )
            {
                compAmmo.StartReload();
            }

            return true;
        }