using BlueWater.Audios; using BlueWater.Tycoons; using DG.Tweening; using TMPro; using UnityEngine; namespace BlueWater.Uis { public class PayMoneyUi : MonoBehaviour { [SerializeField] private RectTransform _rect; [SerializeField] private TMP_Text _text; [SerializeField] private ParticleSystem _payMoneyParticle; [SerializeField] private float _offsetY = 1f; [SerializeField] private float _duration = 2f; [SerializeField] private string _gainGoldSfxName = "GainGold"; public void Initialize(int gold, bool isTip, float duration = -1f) { float newDuration = duration >= 0f ? duration : _duration; EventManager.InvokeAddedGold(gold, isTip); _text.text = gold.ToString("N0"); _rect.localRotation = Quaternion.identity; var endPosition = _rect.localPosition + new Vector3(0, _offsetY, 0); var payMoneyParticle = Instantiate(_payMoneyParticle, transform.position, _payMoneyParticle.transform.rotation); payMoneyParticle.Play(); AudioManager.Instance.PlaySfx(_gainGoldSfxName); var tween = DOTween.Sequence().SetAutoKill(true); tween.Append(_rect.DOLocalMoveY(endPosition.y, newDuration).SetEase(Ease.InOutSine)); tween.Join(_rect.DOScale(Vector3.zero, newDuration).SetEase(Ease.InBack)); tween.OnComplete(() => Destroy(gameObject)); } } }