using System; using System.Collections; using System.Collections.Generic; using DG.Tweening; using Dreamteck.Splines; using Ichni.Editor; using Ichni.RhythmGame; using Ichni.RhythmGame.Beatmap; using Ichni.RhythmGame.ThemeBundles.Basic.Beatmap; using UnityEngine; namespace Ichni.RhythmGame.ThemeBundles.Basic { public class BasicNoteGenerateExpand : NoteGenerateEffect { public BasicNoteGenerateExpand(NoteVisualBase noteVisual) { this.note = noteVisual.note; this.noteVisual = noteVisual; this.generateTime = 1f; this.effectTime = 0.1f; } public override void Recover() { noteVisual.noteMain.SetActive(false); noteVisual.noteMain.transform.localScale = Vector3.zero; if (noteVisual is BasicHoldVisualMesh holdVisualMesh) { holdVisualMesh.notePartList[1].SetActive(false); holdVisualMesh.notePartList[1].GetComponent().size = 0; holdVisualMesh.notePartList[2].SetActive(false); holdVisualMesh.notePartList[2].transform.localScale = Vector3.zero; } } public override void Adjust() { noteVisual.noteMain.SetActive(true); noteVisual.noteMain.transform.DOScale(Vector3.one, effectTime).SetEase(Ease.OutBack); if (noteVisual is BasicHoldVisualMesh holdVisualMesh) { holdVisualMesh.notePartList[1].SetActive(true); MeshGenerator meshGenerator = holdVisualMesh.notePartList[1].GetComponent(); DOTween.To(() => meshGenerator.size, x => meshGenerator.size = x, 1, effectTime).SetEase(Ease.OutBack); holdVisualMesh.notePartList[2].SetActive(true); holdVisualMesh.notePartList[2].transform.DOScale(Vector3.one, effectTime).SetEase(Ease.OutBack); } } public override EffectBase_BM ConvertToBM() { return new BasicNoteGenerateExpand_BM(effectTime, generateTime); } public override void SetUpInspector() { IHaveInspection inspector = EditorManager.instance.uiManager.inspector; var container = inspector.GenerateContainer("Basic Note Generate Expand"); var generateTimeField = inspector.GenerateInputField(this, container, "Generate Time", nameof(generateTime)); var effectTimeField = inspector.GenerateInputField(this, container, "Effect Time", nameof(effectTime)); } } namespace Beatmap { public class BasicNoteGenerateExpand_BM : NoteGenerateEffect_BM { public BasicNoteGenerateExpand_BM() { } public BasicNoteGenerateExpand_BM(float effectTime, float generateTime) : base(effectTime, generateTime) { } public override EffectBase ConvertToGameType(GameElement attachedGameElement) { return new BasicNoteGenerateExpand(attachedGameElement as NoteVisualBase); } } } }