using System; using System.Collections; using System.Collections.Generic; using DG.Tweening; using Ichni.Editor; using Ichni.RhythmGame.Beatmap; using UnityEngine; namespace Ichni.RhythmGame.ThemeBundles.Basic { public class BasicNoteMissPale : NoteMissEffect { Renderer noteMainRenderer; public BasicNoteMissPale(NoteVisualBase noteVisual) { this.note = noteVisual.note; this.noteVisual = noteVisual; this.noteMainRenderer = noteVisual.noteMain.GetComponent(); this.effectTime = 0.2f; } public override void Recover() { noteVisual.noteMain.SetActive(true); noteMainRenderer.material.SetColor("_BaseColor", Color.white); if (noteVisual is BasicHoldVisualMesh holdVisualMesh) { holdVisualMesh.notePartList[1].SetActive(true); holdVisualMesh.notePartList[2].SetActive(true); } } public override void Adjust() { noteMainRenderer.material.SetColor("_BaseColor", Color.white / 2f); noteMainRenderer.material.DOColor(Color.clear, effectTime).SetEase(Ease.OutQuad).OnComplete(() => { noteVisual.noteMain.SetActive(false); if (noteVisual is BasicHoldVisualMesh holdVisualMesh) { holdVisualMesh.notePartList[1].SetActive(false); holdVisualMesh.notePartList[2].SetActive(false); } }); } public override EffectBase_BM ConvertToBM() { return new Beatmap.BasicNoteMissPale_BM(effectTime); } public override void SetUpInspector() { IHaveInspection inspector = EditorManager.instance.uiManager.inspector; var container = inspector.GenerateContainer("Basic Note Miss Pale"); var subcontainer = container.GenerateSubcontainer(3); var effectTimeField = inspector.GenerateInputField(this, subcontainer, "Effect Time", nameof(effectTime)); } } namespace Beatmap { public class BasicNoteMissPale_BM : NoteMissEffect_BM { public BasicNoteMissPale_BM() { } public BasicNoteMissPale_BM(float effectTime) : base(effectTime) { } public override EffectBase ConvertToGameType(GameElement attachedGameElement) { return new BasicNoteMissPale(attachedGameElement as NoteVisualBase); } } } }