using System.Collections; using System.Collections.Generic; using Ichni.RhythmGame.Beatmap; using Lean.Pool; using MoreMountains.Feedbacks; using MoreMountains.FeedbacksForThirdParty; using UnityEngine; namespace Ichni.RhythmGame { public class ChromaticAberrationEffect : EffectBase { public float duration; public float peak; public AnimationCurve intensityCurve; public ChromaticAberrationEffect(float duration, float peak, AnimationCurve intensityCurve) { this.effectTime = 0; this.duration = duration; this.peak = peak; this.intensityCurve = intensityCurve; } public override void Adjust() { MMF_Player effect = LeanPool.Spawn(GameManager.instance.basePrefabs.chromaticAberrationEffect).GetComponent(); effect.GetFeedbackOfType().Duration = duration; effect.GetFeedbackOfType().RemapIntensityOne = peak; effect.GetFeedbackOfType().Intensity = intensityCurve; effect.PlayFeedbacks(); LeanPool.Despawn(effect.gameObject, duration); } public override EffectBase_BM ConvertToBM() { return new ChromaticAberrationEffect_BM(duration, peak); } } namespace Beatmap { public class ChromaticAberrationEffect_BM : EffectBase_BM { public float duration; public float peak; public AnimationCurve intensityCurve; public ChromaticAberrationEffect_BM() { } public ChromaticAberrationEffect_BM(float duration, float peak) { this.effectTime = 0; this.duration = duration; this.peak = peak; } public override EffectBase ConvertToGameType(GameElement attachedGameElement) { return new ChromaticAberrationEffect(duration, peak, intensityCurve); } } } }