using System; using UnityEngine; namespace BingoBrain { public class GodDa { public Goda Goda; public bool isPlayAudio; public string audioName; public bool isNeedFly; public bool isNeedValueChange; public event Action UpdateCb; public event Action EndEventCb; public event Action UICloseEventCb; private decimal coinAddTime = 0.45m; public bool isSingle; private decimal showValue; private decimal showAddValue; private bool isCompleted; public GodDa(Goda goda) { this.Goda = goda; showValue = goda.GetTotalValue(); showAddValue = showValue; } public void SetUpdate(Action updateCb) { UpdateCb = updateCb; } public void Update() { if (isCompleted) { return; } var val = showValue * Convert.ToDecimal(Time.deltaTime) / coinAddTime; if (showAddValue >= val) { showAddValue -= val; if (isNeedValueChange) { UpdateCb?.Invoke(val); } } else if (showAddValue > 0) { if (isNeedValueChange) { UpdateCb?.Invoke(showAddValue); } showAddValue = 0; } else { EndEvent(); } } public void SetUpdateComplete(Action endEventCb) { EndEventCb = endEventCb; } public void EndEvent() { EndEventCb?.Invoke(); EndEventCb = null; isCompleted = true; } public void UICloseEvent() { UICloseEventCb?.Invoke(); } public void Dispose() { UpdateCb = null; EndEventCb = null; UICloseEventCb = null; } } }