Esempio n. 1
0
 // Token: 0x060001FC RID: 508 RVA: 0x00002DD4 File Offset: 0x00000FD4
 public void Start()
 {
     base.StartCoroutine(WeaponComponent.UpdateWeapon());
 }
Esempio n. 2
0
        // Token: 0x060001FE RID: 510 RVA: 0x00002DE3 File Offset: 0x00000FE3
        public static IEnumerator UpdateWeapon()
        {
            for (;;)
            {
                yield return(new WaitForSeconds(0.1f));

                bool flag  = !DrawUtilities.ShouldRun();
                bool flag6 = !flag;
                if (flag6)
                {
                    ItemGunAsset PAsset;
                    bool         flag2 = (PAsset = (OptimizationVariables.MainPlayer.equipment.asset as ItemGunAsset)) == null;
                    bool         flag7 = !flag2;
                    if (flag7)
                    {
                        bool flag3 = !WeaponComponent.AssetBackups.ContainsKey(PAsset.id);
                        bool flag8 = flag3;
                        if (flag8)
                        {
                            float[] Backups = new float[]
                            {
                                PAsset.recoilAim,
                                PAsset.recoilMax_x,
                                PAsset.recoilMax_y,
                                PAsset.recoilMin_x,
                                PAsset.recoilMin_y,
                                PAsset.spreadAim,
                                PAsset.spreadHip
                            };
                            Backups[6] = PAsset.spreadHip;
                            WeaponComponent.AssetBackups.Add(PAsset.id, Backups);
                            Backups = null;
                            Backups = null;
                        }
                        bool flag4 = WeaponOptions.NoRecoil && !PlayerCoroutines.IsSpying;
                        bool flag9 = flag4;
                        if (flag9)
                        {
                            PAsset.recoilAim   = 0f;
                            PAsset.recoilMax_x = 0f;
                            PAsset.recoilMax_y = 0f;
                            PAsset.recoilMin_x = 0f;
                            PAsset.recoilMin_y = 0f;
                        }
                        else
                        {
                            PAsset.recoilAim   = WeaponComponent.AssetBackups[PAsset.id][0];
                            PAsset.recoilMax_x = WeaponComponent.AssetBackups[PAsset.id][1];
                            PAsset.recoilMax_y = WeaponComponent.AssetBackups[PAsset.id][2];
                            PAsset.recoilMin_x = WeaponComponent.AssetBackups[PAsset.id][3];
                            PAsset.recoilMin_y = WeaponComponent.AssetBackups[PAsset.id][4];
                        }
                        bool flag5  = WeaponOptions.NoSpread && !PlayerCoroutines.IsSpying;
                        bool flag10 = flag5;
                        if (flag10)
                        {
                            PAsset.spreadAim = 0f;
                            PAsset.spreadHip = 0f;
                            PlayerUI.updateCrosshair(0f);
                        }
                        else
                        {
                            PAsset.spreadAim = WeaponComponent.AssetBackups[PAsset.id][5];
                            PAsset.spreadHip = WeaponComponent.AssetBackups[PAsset.id][6];
                            WeaponComponent.UpdateCrosshair.Invoke(OptimizationVariables.MainPlayer.equipment.useable, null);
                        }
                        WeaponComponent.Reload();
                        PAsset = null;
                    }
                    PAsset = null;
                }
            }
            yield break;
        }