using System; using System.Collections; using System.Collections.Generic; using DG.Tweening; using Ichni.RhythmGame; using Ichni.RhythmGame.Beatmap; using UnityEngine; namespace Ichni.RhythmGame.ThemeBundles.Basic { public class BasicNoteGenerateExpand : NoteEffectBase { public float generateTime; public BasicNoteGenerateExpand(NoteBase note) { this.note = note; this.generateTime = 1f; this.effectTime = 0.1f; this.noteVisual = note.noteVisual.GetComponent(); } public override void Recover() { noteVisual.noteMain.SetActive(false); noteVisual.noteMain.transform.localScale = Vector3.zero; } public override void Adjust() { noteVisual.noteMain.SetActive(true); noteVisual.noteMain.transform.DOScale(Vector3.one, 0.1f).SetEase(Ease.OutBack); } public override EffectState CheckEffectState() { float songTime = EditorManager.instance.songModule.songTime; if (songTime < note.exactJudgeTime - generateTime) { return EffectState.Before; } if (songTime >= note.exactJudgeTime - generateTime && songTime <= note.exactJudgeTime - generateTime + effectTime) { return EffectState.Middle; } if (songTime > note.exactJudgeTime - generateTime + effectTime) { return EffectState.After; } return EffectState.Error; } public override EffectBase_BM ConvertToBM() { return new Beatmap.BasicNoteGenerateExpand_BM(effectTime, generateTime, note.elementGuid); } } namespace Beatmap { public class BasicNoteGenerateExpand_BM : NoteEffectBase_BM { public float generateTime; public BasicNoteGenerateExpand_BM() { } public BasicNoteGenerateExpand_BM(float effectTime, float generateTime, Guid attachedNoteID) : base(effectTime, attachedNoteID) { this.generateTime = generateTime; } public override EffectBase ConvertToGameType() { return new BasicNoteGenerateExpand(GameElement_BM.GetElement(attachedNoteID) as NoteBase); } } } }