using SHADE; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace SHADE_Scripting.UI { public class MultiplierTextFx : Script { [NonSerialized] private TweenThread sizeThread; private TweenThread alphaThread; public float maxSize = 1.0f; public float minSize = 0.3f; public float minAlpha = 0.3f; private bool showMultiplier = false; [NonSerialized] private Vector3 defaultScale; protected override void start() { sizeThread = TweenManager.CreateTweenThread(0.0f, maxSize, minSize, EASING_METHOD.EASE_IN_SINE); alphaThread = TweenManager.CreateTweenThread(0.0f, 1.0f, minAlpha, EASING_METHOD.EASE_OUT_SINE); Transform transform = GetComponent(); if (transform != null) { defaultScale = transform.LocalScale; transform.LocalScale = Vector3.Zero; } showMultiplier = false; } protected override void update() { Transform transform = GetComponent(); if (transform != null && showMultiplier == true) { if(sizeThread.IsCompleted()) { transform.LocalScale = Vector3.Zero; showMultiplier = false; } else { transform.LocalScale = defaultScale * sizeThread.GetValue(); GetComponentInChildren().Material.SetProperty("data.alpha",alphaThread.GetValue()); } } } public void ShowMultiplier(int multiplier, float duration) { GetComponent().Text = $"X {multiplier}"; sizeThread.duration = duration; alphaThread.duration = duration; sizeThread.Reset(); alphaThread.Reset(); showMultiplier = true; } } }