private void NoRecoil()
        {
            if (!CVars.Misc.NoRecoil)
            {
                return;
            }
            HumanController localController     = HackLocal.LocalController;
            InventoryItem   currentEquippedItem = HackLocal.GetCurrentEquippedItem(localController);

            if (currentEquippedItem != null && !(currentEquippedItem is MeleeWeaponItem <MeleeWeaponDataBlock>))
            {
                BulletWeaponItem <BulletWeaponDataBlock> bulletWeaponItem = currentEquippedItem as BulletWeaponItem <BulletWeaponDataBlock>;
                if (bulletWeaponItem != null)
                {
                    bulletWeaponItem.datablock.bulletRange    = 300f;
                    bulletWeaponItem.datablock.recoilPitchMin = 0f;
                    bulletWeaponItem.datablock.recoilPitchMax = 0f;
                    bulletWeaponItem.datablock.recoilYawMin   = 0f;
                    bulletWeaponItem.datablock.recoilYawMax   = 0f;
                    bulletWeaponItem.datablock.aimSway        = 0f;
                    bulletWeaponItem.datablock.aimSwaySpeed   = 0f;
                }
            }
            CameraMount componentInChildren = localController.GetComponentInChildren <CameraMount>();

            if (componentInChildren != null)
            {
                HeadBob component = componentInChildren.GetComponent <HeadBob>();
                if (component != null)
                {
                    component.aimRotationScalar       = 0f;
                    component.viewModelRotationScalar = 0f;
                }
            }
        }
        private bool SilentAim(Character localCharacter, Character targetCharacter)
        {
            HumanController component           = localCharacter.GetComponent <HumanController>();
            InventoryItem   currentEquippedItem = HackLocal.GetCurrentEquippedItem(component);

            if (currentEquippedItem == null)
            {
                return(false);
            }
            uLink.BitStream bitStream = new uLink.BitStream(false);
            if (currentEquippedItem is BulletWeaponItem <BulletWeaponDataBlock> )
            {
                BulletWeaponItem <BulletWeaponDataBlock> bulletWeaponItem = currentEquippedItem as BulletWeaponItem <BulletWeaponDataBlock>;
                bitStream.WriteByte(9);
                bitStream.Write <NetEntityID>(NetEntityID.Get(targetCharacter), new object[0]);
                bitStream.WriteVector3(targetCharacter.transform.position);
                bulletWeaponItem.itemRepresentation.ActionStream(1, uLink.RPCMode.Server, bitStream);
            }
            else
            {
                if (currentEquippedItem is BowWeaponItem <BowWeaponDataBlock> )
                {
                    BowWeaponItem <BowWeaponDataBlock> bowWeaponItem = currentEquippedItem as BowWeaponItem <BowWeaponDataBlock>;
                    bitStream.Write <NetEntityID>(NetEntityID.Get(targetCharacter), new object[0]);
                    bitStream.Write <Vector3>(targetCharacter.transform.position, new object[0]);
                    bowWeaponItem.itemRepresentation.ActionStream(2, uLink.RPCMode.Server, bitStream);
                }
                else
                {
                    if (!(currentEquippedItem is BulletWeaponItem <ShotgunDataBlock>))
                    {
                        return(false);
                    }
                    BulletWeaponItem <ShotgunDataBlock> bulletWeaponItem2 = currentEquippedItem as BulletWeaponItem <ShotgunDataBlock>;
                    for (int i = 0; i < bulletWeaponItem2.datablock.numPellets; i++)
                    {
                        bitStream.WriteByte(9);
                        bitStream.Write <NetEntityID>(NetEntityID.Get(targetCharacter), new object[0]);
                        bitStream.WriteVector3(targetCharacter.transform.position);
                    }
                    bulletWeaponItem2.itemRepresentation.ActionStream(1, uLink.RPCMode.Server, bitStream);
                }
            }
            return(true);
        }
        private void NoReload()
        {
            if (!CVars.Misc.NoReload)
            {
                return;
            }
            HumanController localController     = HackLocal.LocalController;
            InventoryItem   currentEquippedItem = HackLocal.GetCurrentEquippedItem(localController);

            if (currentEquippedItem != null && currentEquippedItem is BulletWeaponItem <BulletWeaponDataBlock> )
            {
                BulletWeaponItem <BulletWeaponDataBlock> bulletWeaponItem = currentEquippedItem as BulletWeaponItem <BulletWeaponDataBlock>;
                if (bulletWeaponItem.clipAmmo <= 1)
                {
                    bulletWeaponItem.itemRepresentation.Action(3, uLink.RPCMode.Server);
                }
            }
        }