Ejemplo n.º 1
0
        private static void Postfix(FlyingObjectEffect __instance, float ____duration, Vector3 ____startPos, ref Vector3 ____targetPos, float ____elapsedTime, ref float ____shakeFrequency, ref float ____shakeStrength)
        {
            bool flag = __instance.name != FlyingObjectEffectParameters.tag;

            if (!flag)
            {
                bool flag2 = !PluginConfig.Instance.pro;
                if (flag2)
                {
                    ____shakeStrength  -= FlyingObjectEffectParameters.gravity * Time.deltaTime;
                    ____shakeFrequency += ____shakeStrength * Time.deltaTime;
                    bool flag3 = ____shakeFrequency < ____startPos.y;
                    if (flag3)
                    {
                        ____shakeFrequency = ____startPos.y;
                        ____shakeStrength  = ____shakeStrength * -1f * FlyingObjectEffectParameters.restitution;
                    }
                    float jump    = ____shakeFrequency - ____startPos.y;
                    bool  forward = PluginConfig.Instance.forward;
                    if (forward)
                    {
                        float t = (float)Math.Tanh((double)(FlyingObjectEffectParameters.forwardSpeed * ____elapsedTime / ____duration));
                        float x = Mathf.Lerp(____startPos.x, ____targetPos.x, t);
                        float y = Mathf.Lerp(____startPos.y, ____targetPos.y, t) + jump;
                        float z = Mathf.Lerp(____startPos.z, ____targetPos.z, t);
                        __instance.transform.localPosition = new Vector3(x, y, z);
                    }
                    else
                    {
                        __instance.transform.localPosition = new Vector3(____targetPos.x, ____targetPos.y + jump, ____targetPos.z);
                    }
                }
            }
        }
 private static void HandleEffectDidFinish(FlyingObjectEffect effect)
 {
     effect.didFinishEvent -= HandleEffectDidFinish;
     if (_currentEffect == effect)
     {
         _currentEffect = null !;
     }
 }
Ejemplo n.º 3
0
 static void handleEffectDidFinish(FlyingObjectEffect effect)
 {
     effect.didFinishEvent -= handleEffectDidFinish;
     if (currentEffect == effect)
     {
         currentEffect = null;
     }
 }
Ejemplo n.º 4
0
        private static void Postfix(FlyingObjectEffect __instance, float duration, ref float ____duration, ref Vector3 ____targetPos, ref Vector3 ____startPos, Quaternion rotation, ref bool ____shake, ref float ____shakeFrequency, ref float ____shakeStrength)
        {
            bool flag = NoteCutScoreSpawnerHandleNoteWasCut.isNoteCutEffect || duration < 0f;

            if (flag)
            {
                __instance.name = FlyingObjectEffectParameters.tag;
                bool flag2 = duration < 0f;
                if (flag2)
                {
                    ____duration = -1f * duration;
                }
                ____shake          = false;
                ____shakeStrength  = FlyingObjectEffectParameters.initialMomentum;
                ____shakeFrequency = ____startPos.y;
                bool forward = PluginConfig.Instance.forward;
                if (forward)
                {
                    bool flag3 = duration >= 0f;
                    if (flag3)
                    {
                        float offsetY = (PluginConfig.Instance.scale - 0.5f) * FlyingObjectEffectParameters.scaleOffsetCoefY;
                        bool  pro     = PluginConfig.Instance.pro;
                        if (pro)
                        {
                            ____targetPos = new Vector3(____targetPos.x, PluginConfig.Instance.forwardTargetYpro + offsetY, ____targetPos.z);
                        }
                        else
                        {
                            ____targetPos = new Vector3(____targetPos.x, PluginConfig.Instance.forwardTargetY + offsetY, ____targetPos.z);
                        }
                    }
                }
                else
                {
                    ____targetPos = ____startPos;
                }
                bool flag4 = __instance is FlyingScoreEffect;
                if (flag4)
                {
                    __instance.transform.localScale = Vector3.one * PluginConfig.Instance.scale;
                }
                else
                {
                    __instance.transform.localScale = Vector3.one * PluginConfig.Instance.scale * FlyingObjectEffectParameters.spriteScale;
                }
                bool forward2 = PluginConfig.Instance.forward;
                if (forward2)
                {
                    __instance.transform.localScale = __instance.transform.localScale * FlyingObjectEffectParameters.forwardScale;
                }
            }
            else
            {
                __instance.name = "FlyingSpriteEffect(Clone)";
                __instance.transform.localScale = Vector3.one;
            }
        }
Ejemplo n.º 5
0
        public static bool Prefix(FlyingObjectEffect __instance, ref bool ____initialized, ref float ____elapsedTime, ref float ____duration, ref Vector3 ____startPos, ref Vector3 ____targetPos, ref AnimationCurve ____moveAnimationCurve, ref bool ____shake, ref Quaternion ____rotation, ref float ____shakeFrequency, ref float ____shakeStrength, ref AnimationCurve ____shakeStrengthAnimationCurve, ref Action <FlyingObjectEffect> ___didFinishEvent)
        {
            if (!Plugin.active)
            {
                return(true);
            }

            if (!____initialized)
            {
                __instance.enabled = false;
                return(false);
            }

            if (____elapsedTime < ____duration)
            {
                float num = ____elapsedTime / ____duration;
                ReflectionUtil.InvokePrivateMethod(__instance, "ManualUpdate", new object[]
                {
                    num
                });
                __instance.transform.localPosition = Vector3.Lerp(____startPos, ____targetPos, ____moveAnimationCurve.Evaluate(num));

                if (____shake)
                {
                    Vector3 eulerAngles = __instance.transform.localRotation.eulerAngles;
                    ____rotation.eulerAngles           = new Vector3(eulerAngles.x, eulerAngles.y, Mathf.Sin(num * 3.14159274f * ____shakeFrequency) * ____shakeStrength * ____shakeStrengthAnimationCurve.Evaluate(num));
                    __instance.transform.localRotation = ____rotation;
                }
                ____elapsedTime += Time.deltaTime;
            }
            else
            {
                ___didFinishEvent?.Invoke(__instance);
            }

            return(false);
        }