Esempio n. 1
0
        // Token: 0x060001DE RID: 478 RVA: 0x00011794 File Offset: 0x0000F994
        public static void OnActiveReloadPressedHook(Action <Gun, PlayerController, Gun, bool> orig, Gun self, PlayerController p, Gun g, bool actualPress)
        {
            orig(self, p, g, actualPress);
            bool flag = self.IsReloading || self.reloadTime < 0f;

            if (flag)
            {
                PlayerController exists = self.CurrentOwner as PlayerController;
                bool             flag2  = exists && (actualPress || true);
                if (flag2)
                {
                    MultiActiveReloadController component = self.GetComponent <MultiActiveReloadController>();
                    bool flag3 = component != null && component.activeReloadEnabled && component.canAttemptActiveReload && !GameUIRoot.Instance.GetReloadBarForPlayer(self.CurrentOwner as PlayerController).IsActiveReloadGracePeriod();
                    if (flag3)
                    {
                        bool flag4 = GameUIRoot.Instance.AttemptActiveReloadOnlyMultireload(self.CurrentOwner as PlayerController);
                        MultiActiveReload multiActiveReloadForController = GameUIRoot.Instance.GetReloadBarForPlayer(self.CurrentOwner as PlayerController).GetMultiActiveReloadForController();
                        bool flag5 = flag4;
                        if (flag5)
                        {
                            component.OnActiveReloadSuccess(multiActiveReloadForController);
                            GunFormeSynergyProcessor component2 = self.GetComponent <GunFormeSynergyProcessor>();
                            bool flag6 = component2;
                            if (flag6)
                            {
                                component2.JustActiveReloaded = true;
                            }
                            ChamberGunProcessor component3 = self.GetComponent <ChamberGunProcessor>();
                            bool flag7 = component3;
                            if (flag7)
                            {
                                component3.JustActiveReloaded = true;
                            }
                        }
                        else
                        {
                            component.OnActiveReloadFailure(multiActiveReloadForController);
                        }
                        bool flag8 = multiActiveReloadForController == null || !multiActiveReloadForController.canAttemptActiveReloadAfterwards;
                        if (flag8)
                        {
                            ETGModConsole.Log("yes", false);
                            component.canAttemptActiveReload = false;
                            Action <PlayerController, Gun, bool> value = (Action <PlayerController, Gun, bool>)MultiActiveReloadManager.info2.CreateDelegate <Action <PlayerController, Gun, bool> >();
                            self.OnReloadPressed = (Action <PlayerController, Gun, bool>)Delegate.Remove(self.OnReloadPressed, value);
                        }
                    }
                }
            }
        }
Esempio n. 2
0
 public static void OnActiveReloadPressedHook(Action <Gun, PlayerController, Gun, bool> orig, Gun self, PlayerController p, Gun g, bool actualPress)
 {
     orig(self, p, g, actualPress);
     if (self.IsReloading || self.reloadTime < 0f)
     {
         PlayerController playerController = self.CurrentOwner as PlayerController;
         if (playerController && (actualPress || true))
         {
             MultiActiveReloadController controller = self.GetComponent <MultiActiveReloadController>();
             if (controller != null && controller.activeReloadEnabled && controller.canAttemptActiveReload && !GameUIRoot.Instance.GetReloadBarForPlayer(self.CurrentOwner as PlayerController).IsActiveReloadGracePeriod())
             {
                 bool flag2 = GameUIRoot.Instance.AttemptActiveReloadOnlyMultireload(self.CurrentOwner as PlayerController);
                 MultiActiveReload reload = GameUIRoot.Instance.GetReloadBarForPlayer(self.CurrentOwner as PlayerController).GetMultiActiveReloadForController();
                 if (flag2)
                 {
                     controller.OnActiveReloadSuccess(reload);
                     GunFormeSynergyProcessor component = self.GetComponent <GunFormeSynergyProcessor>();
                     if (component)
                     {
                         component.JustActiveReloaded = true;
                     }
                     ChamberGunProcessor component2 = self.GetComponent <ChamberGunProcessor>();
                     if (component2)
                     {
                         component2.JustActiveReloaded = true;
                     }
                 }
                 else
                 {
                     controller.OnActiveReloadFailure(reload);
                 }
                 if (reload == null || !reload.canAttemptActiveReloadAfterwards)
                 {
                     ETGModConsole.Log("yes");
                     controller.canAttemptActiveReload = false;
                     Action <PlayerController, Gun, bool> act = (Action <PlayerController, Gun, bool>)info2.CreateDelegate <Action <PlayerController, Gun, bool> >();
                     self.OnReloadPressed -= act;
                 }
             }
         }
     }
 }