Example #1
0
 private void ShakePosition_UpdateShaking(On.HutongGames.PlayMaker.Actions.ShakePosition.orig_UpdateShaking orig, ShakePosition self)
 {
     try
     {
         if (CustomShake && self.State.Name.Contains("Shake") && self.State.Fsm == shakerFSM.Fsm)
         {
             bool    value = self.isLooping.Value;
             float   num   = Mathf.Clamp01(1f - GetTimer(self) / ShakeDuration);
             Vector3 a     = Vector3.Scale(ShakeExtents, new Vector3(UnityEngine.Random.Range(-1f, 1f), UnityEngine.Random.Range(-1f, 1f), UnityEngine.Random.Range(-1f, 1f)));
             transform.position = GetStartingWorldPosition(self) + a * ((!value) ? num : 1f);
             //this.timer += Time.deltaTime;
             SetTimer(self, GetTimer(self) + Time.deltaTime);
             if (!value && GetTimer(self) > ShakeDuration)
             {
                 CustomShake = false;
                 StopAndReset(self);
                 self.Fsm.Event(self.stopEvent);
                 self.Finish();
             }
         }
         else if (CustomRumble && self.State.Name.Contains("Rumbling") && self.State.Fsm == shakerFSM.Fsm)
         {
             bool    value = self.isLooping.Value;
             float   num   = Mathf.Clamp01(1f - GetTimer(self));
             Vector3 a     = Vector3.Scale(RumbleExtents, new Vector3(UnityEngine.Random.Range(-1f, 1f), UnityEngine.Random.Range(-1f, 1f), UnityEngine.Random.Range(-1f, 1f)));
             transform.position = GetStartingWorldPosition(self) + a * ((!value) ? num : 1f);
             //this.timer += Time.deltaTime;
             SetTimer(self, GetTimer(self) + Time.deltaTime);
             if (!value && GetTimer(self) > 1f)
             {
                 CustomRumble = false;
                 StopAndReset(self);
                 self.Fsm.Event(self.stopEvent);
                 self.Finish();
             }
         }
         else
         {
             orig(self);
         }
     }
     catch (Exception e)
     {
         WeaverLog.LogError("Camera Shaker Exception = " + e);
     }
 }