using System; using System.Collections; using System.Collections.Generic; using DG.Tweening; using Ichni.Editor; using Ichni.RhythmGame.Beatmap; using Ichni.RhythmGame.ThemeBundles.Basic.Beatmap; using UnityEngine; namespace Ichni.RhythmGame.ThemeBundles.Basic { public class BasicNoteGoodBurst : NoteGoodEffect { private GameObject effectRing; public BasicNoteGoodBurst(NoteBase note) { this.note = note; this.noteVisual = note.noteVisual.GetComponent(); this.effectRing = noteVisual.effectPartList[0]; this.effectTime = 0.1f; } public override void Recover() { effectRing.SetActive(false); effectRing.transform.localScale = Vector3.zero; effectRing.GetComponent().color = Color.white; noteVisual.noteMain.SetActive(true); } public override void Adjust() { effectRing.gameObject.SetActive(true); effectRing.transform.DOScale(Vector3.one * 0.5f, effectTime).SetEase(Ease.OutQuad); effectRing.GetComponent().DOFade(0, effectTime).SetEase(Ease.OutQuad).OnComplete(() => effectRing.SetActive(false)); noteVisual.noteMain.SetActive(false); } public override EffectBase_BM ConvertToBM() { return new BasicNoteGoodBurst_BM(effectTime, note.elementGuid); } public override void SetUpInspector() { var container = inspector.GenerateContainer("Basic Note Good Burst"); var effectTimeField = inspector.GenerateInputField(this, container, "Effect Time", nameof(effectTime)); } } namespace Beatmap { public class BasicNoteGoodBurst_BM : NoteGoodEffect_BM { public BasicNoteGoodBurst_BM() { } public BasicNoteGoodBurst_BM(float effectTime, Guid attachedNoteID) : base(effectTime, attachedNoteID) { } public override EffectBase ConvertToGameType() { return new BasicNoteGoodBurst(GameElement_BM.GetElement(attachedNoteID) as NoteBase); } } } }