This commit is contained in:
SoulliesOfficial
2025-06-28 12:06:19 -04:00
parent 1a3d37d9b5
commit 1b87a4345b
22 changed files with 32991 additions and 17950 deletions

View File

@@ -10,8 +10,7 @@ namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
{
public class DTMRippleEffect : EffectBase
{
private SpriteRenderer ripple;
public bool isCircle;
private DTM_Ripple ripple;
public float rippleTime;
public Vector3 positionOffset;
public Vector3 eulerAnglesOffset;
@@ -19,10 +18,9 @@ namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
public Color emissionColor;
public float emissionIntensity;
public DTMRippleEffect(bool isCircle, float rippleTime, Color emissionColor, float emissionIntensity)
public DTMRippleEffect(float rippleTime, Color emissionColor, float emissionIntensity)
{
this.effectTime = 0;
this.isCircle = isCircle;
this.rippleTime = rippleTime;
this.positionOffset = Vector3.zero;
this.eulerAnglesOffset = Vector3.zero;
@@ -31,11 +29,10 @@ namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
this.emissionIntensity = emissionIntensity;
}
public DTMRippleEffect(bool isCircle, float rippleTime, Color emissionColor, float emissionIntensity,
public DTMRippleEffect(float rippleTime, Color emissionColor, float emissionIntensity,
Vector3 positionOffset, Vector3 eulerAnglesOffset, Vector3 scale)
{
this.effectTime = 0;
this.isCircle = isCircle;
this.rippleTime = rippleTime;
this.positionOffset = positionOffset;
this.eulerAnglesOffset = eulerAnglesOffset;
@@ -47,33 +44,21 @@ namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
public override void Adjust()
{
GameObject prefab = EditorManager.instance.customPrefabs["departure_to_multiverse"].GetPrefab("DTM_Ripple");
ripple = LeanPool.Spawn(prefab, attachedGameElement.transform).GetComponentInChildren<SpriteRenderer>();
ripple = LeanPool.Spawn(prefab, attachedGameElement.transform).GetComponent<DTM_Ripple>();
ripple.transform.localPosition = positionOffset;
ripple.transform.localEulerAngles = eulerAnglesOffset;
ripple.transform.localScale = scale;
ripple.transform.parent.transform.SetParent(null);
if (isCircle)
{
ripple.material.EnableKeyword("_ISCIRCLE_ON");
}
else
{
ripple.material.DisableKeyword("_ISCIRCLE_ON");
}
ripple.transform.SetParent(null);
ripple.material.SetFloat("_EdgeValue", 0f);
ripple.material.SetFloat("_Width", 1f);
ripple.material.SetFloat("_Opacity", 1f);
ripple.material.SetColor("_ImageColor", emissionColor * Mathf.Pow(2, emissionIntensity));
ripple.material.DOFloat(0.5f, "_EdgeValue", rippleTime).SetEase(Ease.OutQuart).Play();
ripple.material.DOFloat(0f, "_Width", rippleTime).SetEase(Ease.OutQuart).Play();
ripple.material.DOFloat(0f, "_Opacity", rippleTime).SetEase(Ease.Linear).Play();
LeanPool.Despawn(ripple.transform.parent.gameObject, rippleTime);
ripple.SetRippleTime(rippleTime);
ripple.SetEmissionColor(emissionColor * Mathf.Pow(2, emissionIntensity));
ripple.mainRipple.Play();
LeanPool.Despawn(ripple.gameObject, rippleTime);
}
public override EffectBase_BM ConvertToBM()
{
return new Beatmap.DTMRippleEffect_BM(isCircle, rippleTime, emissionColor, emissionIntensity, positionOffset, eulerAnglesOffset, scale);
return new Beatmap.DTMRippleEffect_BM(rippleTime, emissionColor, emissionIntensity, positionOffset, eulerAnglesOffset, scale);
}
public override void SetUpInspector()
@@ -81,7 +66,6 @@ namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
var container = inspector.GenerateContainer("DTM Ripple Effect");
var effectSettings1 = container.GenerateSubcontainer(3);
var isCircleToggle = inspector.GenerateToggle(this, effectSettings1, "Is Circle", nameof(isCircle));
var rippleTimeInputField = inspector.GenerateInputField(this, effectSettings1, "Ripple Time", nameof(rippleTime));
var effectSettings2 = container.GenerateSubcontainer(1);
var emissionColorPicker = inspector.GenerateEmissionColorPicker(this, effectSettings2, "Color", "NULL", nameof(emissionColor), nameof(emissionIntensity));
@@ -96,22 +80,20 @@ namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
{
public class DTMRippleEffect_BM : EffectBase_BM
{
public bool isCircle;
public float rippleTime;
public Vector3 positionOffset;
public Vector3 eulerAngles;
public Vector3 scale;
public Color emissionColor = Color.white;
public float emissionIntensity = 0;
public DTMRippleEffect_BM()
{
}
public DTMRippleEffect_BM(bool isCircle, float rippleTime, Color emissionColor, float emissionIntensity, Vector3 positionOffset, Vector3 eulerAngles, Vector3 scale)
public DTMRippleEffect_BM(float rippleTime, Color emissionColor, float emissionIntensity, Vector3 positionOffset, Vector3 eulerAngles, Vector3 scale)
{
this.isCircle = isCircle;
this.rippleTime = rippleTime;
this.positionOffset = positionOffset;
this.eulerAngles = eulerAngles;
@@ -122,7 +104,7 @@ namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
public override EffectBase ConvertToGameType(GameElement attachedGameElement)
{
return new DTMRippleEffect(isCircle, rippleTime, emissionColor, emissionIntensity, positionOffset, eulerAngles, scale)
return new DTMRippleEffect(rippleTime, emissionColor, emissionIntensity, positionOffset, eulerAngles, scale)
{
attachedGameElement = attachedGameElement
};