Beispiel #1
0
 public static bool AttemptActiveReloadOnlyMultireload(this GameUIReloadBarController self)
 {
     if (!self.ReloadIsActive)
     {
         return(false);
     }
     if (tempraryActiveReloads.ContainsKey(self))
     {
         foreach (MultiActiveReload reload in tempraryActiveReloads[self])
         {
             if (self.progressSlider.Value >= (float)reload.startValue && self.progressSlider.Value <= (float)reload.endValue)
             {
                 self.progressSlider.Color = Color.green;
                 AkSoundEngine.PostEvent("Play_WPN_active_reload_01", self.gameObject);
                 reload.celebrationSprite.enabled = true;
                 reload.sprite.enabled            = false;
                 if (reload.stopsReload)
                 {
                     self.progressSlider.Thumb.enabled = false;
                     info.SetValue(self, false);
                 }
                 reload.celebrationSprite.GetComponent <dfSpriteAnimation>().Play();
                 return(true);
             }
         }
     }
     self.progressSlider.Color = Color.red;
     return(false);
 }
Beispiel #2
0
    public static MultiActiveReload GetMultiActiveReloadForController(this GameUIReloadBarController controller)
    {
        MultiActiveReload result = null;

        if (tempraryActiveReloads.ContainsKey(controller))
        {
            foreach (MultiActiveReload reload in tempraryActiveReloads[controller])
            {
                if (controller.progressSlider.Value >= (float)reload.startValue && controller.progressSlider.Value <= (float)reload.endValue)
                {
                    result = reload;
                    break;
                }
            }
        }
        return(result);
    }
Beispiel #3
0
        // Token: 0x060001DF RID: 479 RVA: 0x00011928 File Offset: 0x0000FB28
        public static MultiActiveReload GetMultiActiveReloadForController(this GameUIReloadBarController controller)
        {
            MultiActiveReload result = null;
            bool flag = MultiActiveReloadManager.tempraryActiveReloads.ContainsKey(controller);

            if (flag)
            {
                foreach (MultiActiveReload multiActiveReload in MultiActiveReloadManager.tempraryActiveReloads[controller])
                {
                    bool flag2 = controller.progressSlider.Value >= (float)multiActiveReload.startValue && controller.progressSlider.Value <= (float)multiActiveReload.endValue;
                    if (flag2)
                    {
                        result = multiActiveReload;
                        break;
                    }
                }
            }
            return(result);
        }
Beispiel #4
0
        // Token: 0x060001DD RID: 477 RVA: 0x0001162C File Offset: 0x0000F82C
        public static bool AttemptActiveReloadOnlyMultireload(this GameUIReloadBarController self)
        {
            bool flag = !self.ReloadIsActive;
            bool result;

            if (flag)
            {
                result = false;
            }
            else
            {
                bool flag2 = MultiActiveReloadManager.tempraryActiveReloads.ContainsKey(self);
                if (flag2)
                {
                    foreach (MultiActiveReload multiActiveReload in MultiActiveReloadManager.tempraryActiveReloads[self])
                    {
                        bool flag3 = self.progressSlider.Value >= (float)multiActiveReload.startValue && self.progressSlider.Value <= (float)multiActiveReload.endValue;
                        if (flag3)
                        {
                            self.progressSlider.Color = Color.green;
                            AkSoundEngine.PostEvent("Play_WPN_active_reload_01", self.gameObject);
                            multiActiveReload.celebrationSprite.enabled = true;
                            multiActiveReload.sprite.enabled            = false;
                            bool stopsReload = multiActiveReload.stopsReload;
                            if (stopsReload)
                            {
                                self.progressSlider.Thumb.enabled = false;
                                MultiActiveReloadManager.info.SetValue(self, false);
                            }
                            multiActiveReload.celebrationSprite.GetComponent <dfSpriteAnimation>().Play();
                            return(true);
                        }
                    }
                }
                self.progressSlider.Color = Color.red;
                result = false;
            }
            return(result);
        }
Beispiel #5
0
 public static void TriggerReloadHook(Action <GameUIReloadBarController, PlayerController, Vector3, float, float, int> orig, GameUIReloadBarController self, PlayerController attachParent, Vector3 offset, float duration, float activeReloadStartPercent,
                                      int pixelWidth)
 {
     if (tempraryActiveReloads.ContainsKey(self))
     {
         foreach (MultiActiveReload multiactivereload in tempraryActiveReloads[self])
         {
             if (multiactivereload.sprite != null && multiactivereload.sprite.gameObject != null)
             {
                 UnityEngine.Object.Destroy(multiactivereload.sprite.gameObject);
             }
             if (multiactivereload.celebrationSprite != null && multiactivereload.celebrationSprite.gameObject != null)
             {
                 UnityEngine.Object.Destroy(multiactivereload.celebrationSprite.gameObject);
             }
         }
         tempraryActiveReloads[self].Clear();
     }
     orig(self, attachParent, offset, duration, activeReloadStartPercent, pixelWidth);
     if (attachParent != null && attachParent.CurrentGun != null && attachParent.CurrentGun.GetComponent <MultiActiveReloadController>() != null)
     {
         foreach (MultiActiveReloadData data in attachParent.CurrentGun.GetComponent <MultiActiveReloadController>().reloads)
         {
             dfSprite sprite = UnityEngine.Object.Instantiate(self.activeReloadSprite);
             self.activeReloadSprite.Parent.AddControl(sprite);
             sprite.enabled = true;
             float width    = self.progressSlider.Width;
             float maxValue = self.progressSlider.MaxValue;
             float num      = data.startValue / maxValue * width;
             float num2     = data.endValue / maxValue * width;
             float x        = num + (num2 - num) * data.activeReloadStartPercentage;
             float width2   = (float)pixelWidth * Pixelator.Instance.CurrentTileScale;
             sprite.RelativePosition = self.activeReloadSprite.RelativePosition;
             sprite.RelativePosition = GameUIUtility.QuantizeUIPosition(sprite.RelativePosition.WithX(x));
             sprite.Width            = width2;
             sprite.IsVisible        = true;
             dfSprite celebrationSprite = UnityEngine.Object.Instantiate(self.celebrationSprite);
             self.activeReloadSprite.Parent.AddControl(celebrationSprite);
             celebrationSprite.enabled = true;
             dfSpriteAnimation component = celebrationSprite.GetComponent <dfSpriteAnimation>();
             component.Stop();
             component.SetFrameExternal(0);
             celebrationSprite.enabled          = false;
             celebrationSprite.RelativePosition = sprite.RelativePosition + new Vector3(Pixelator.Instance.CurrentTileScale * -1f, Pixelator.Instance.CurrentTileScale * -2f, 0f);
             int activeReloadStartValue = Mathf.RoundToInt((float)(data.endValue - data.startValue) * data.activeReloadStartPercentage) + data.startValue - data.activeReloadLastTime / 2;
             MultiActiveReload reload   = new MultiActiveReload
             {
                 sprite            = sprite,
                 celebrationSprite = celebrationSprite,
                 startValue        = activeReloadStartValue,
                 endValue          = activeReloadStartValue + data.activeReloadLastTime,
                 stopsReload       = data.stopsReload,
                 canAttemptActiveReloadAfterwards = data.canAttemptActiveReloadAfterwards,
                 reloadData           = data.reloadData,
                 usesActiveReloadData = data.usesActiveReloadData
             };
             if (tempraryActiveReloads.ContainsKey(self))
             {
                 tempraryActiveReloads[self].Add(reload);
             }
             else
             {
                 tempraryActiveReloads.Add(self, new List <MultiActiveReload> {
                     reload
                 });
             }
         }
     }
 }
Beispiel #6
0
        // Token: 0x060001DA RID: 474 RVA: 0x000110B4 File Offset: 0x0000F2B4
        public static void TriggerReloadHook(MultiActiveReloadManager.Action <GameUIReloadBarController, PlayerController, Vector3, float, float, int> orig, GameUIReloadBarController self, PlayerController attachParent, Vector3 offset, float duration, float activeReloadStartPercent, int pixelWidth)
        {
            bool flag = MultiActiveReloadManager.tempraryActiveReloads.ContainsKey(self);

            if (flag)
            {
                foreach (MultiActiveReload multiActiveReload in MultiActiveReloadManager.tempraryActiveReloads[self])
                {
                    bool flag2 = multiActiveReload.sprite != null && multiActiveReload.sprite.gameObject != null;
                    if (flag2)
                    {
                        UnityEngine.Object.Destroy(multiActiveReload.sprite.gameObject);
                    }
                    bool flag3 = multiActiveReload.celebrationSprite != null && multiActiveReload.celebrationSprite.gameObject != null;
                    if (flag3)
                    {
                        UnityEngine.Object.Destroy(multiActiveReload.celebrationSprite.gameObject);
                    }
                }
                MultiActiveReloadManager.tempraryActiveReloads[self].Clear();
            }
            orig(self, attachParent, offset, duration, activeReloadStartPercent, pixelWidth);
            bool flag4 = attachParent != null && attachParent.CurrentGun != null && attachParent.CurrentGun.GetComponent <MultiActiveReloadController>() != null;

            if (flag4)
            {
                foreach (MultiActiveReloadData multiActiveReloadData in attachParent.CurrentGun.GetComponent <MultiActiveReloadController>().reloads)
                {
                    dfSprite dfSprite = UnityEngine.Object.Instantiate <dfSprite>(self.activeReloadSprite);
                    self.activeReloadSprite.Parent.AddControl(dfSprite);
                    dfSprite.enabled = true;
                    float width    = self.progressSlider.Width;
                    float maxValue = self.progressSlider.MaxValue;
                    float num      = (float)multiActiveReloadData.startValue / maxValue * width;
                    float num2     = (float)multiActiveReloadData.endValue / maxValue * width;
                    float x        = num + (num2 - num) * multiActiveReloadData.activeReloadStartPercentage;
                    float width2   = (float)pixelWidth * Pixelator.Instance.CurrentTileScale;
                    dfSprite.RelativePosition = self.activeReloadSprite.RelativePosition;
                    dfSprite.RelativePosition = GameUIUtility.QuantizeUIPosition(dfSprite.RelativePosition.WithX(x));
                    dfSprite.Width            = width2;
                    dfSprite.IsVisible        = true;
                    dfSprite dfSprite2 = UnityEngine.Object.Instantiate <dfSprite>(self.celebrationSprite);
                    self.activeReloadSprite.Parent.AddControl(dfSprite2);
                    dfSprite2.enabled = true;
                    dfSpriteAnimation component = dfSprite2.GetComponent <dfSpriteAnimation>();
                    component.Stop();
                    component.SetFrameExternal(0);
                    dfSprite2.enabled          = false;
                    dfSprite2.RelativePosition = dfSprite.RelativePosition + new Vector3(Pixelator.Instance.CurrentTileScale * -1f, Pixelator.Instance.CurrentTileScale * -2f, 0f);
                    int num3 = Mathf.RoundToInt((float)(multiActiveReloadData.endValue - multiActiveReloadData.startValue) * multiActiveReloadData.activeReloadStartPercentage) + multiActiveReloadData.startValue - multiActiveReloadData.activeReloadLastTime / 2;
                    MultiActiveReload item = new MultiActiveReload
                    {
                        sprite            = dfSprite,
                        celebrationSprite = dfSprite2,
                        startValue        = num3,
                        endValue          = num3 + multiActiveReloadData.activeReloadLastTime,
                        stopsReload       = multiActiveReloadData.stopsReload,
                        canAttemptActiveReloadAfterwards = multiActiveReloadData.canAttemptActiveReloadAfterwards,
                        reloadData           = multiActiveReloadData.reloadData,
                        usesActiveReloadData = multiActiveReloadData.usesActiveReloadData,
                        Name = multiActiveReloadData.Name
                    };
                    bool flag5 = MultiActiveReloadManager.tempraryActiveReloads.ContainsKey(self);
                    if (flag5)
                    {
                        MultiActiveReloadManager.tempraryActiveReloads[self].Add(item);
                    }
                    else
                    {
                        MultiActiveReloadManager.tempraryActiveReloads.Add(self, new List <MultiActiveReload>
                        {
                            item
                        });
                    }
                }
            }
        }