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 !; } }
static void handleEffectDidFinish(FlyingObjectEffect effect) { effect.didFinishEvent -= handleEffectDidFinish; if (currentEffect == effect) { currentEffect = null; } }
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; } }
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); }