using System; using TMPro; using UnityEngine; using UnityEngine.UI; public class DeliveryResultUI : MonoBehaviour { private const string Popup = "Popup"; [SerializeField] private Image backgroundImage; [SerializeField] private Image iconImage; [SerializeField] private TextMeshProUGUI messageText; [SerializeField] private Color successColor; [SerializeField] private Color failedColor; [SerializeField] private Sprite successSprite; [SerializeField] private Sprite failedSprite; private Animator animator; private void Awake() => animator = GetComponent(); private void Start() { DeliveryManager.Instance.OnRecipeSuccess += DeliveryManager_OnRecipeSuccess; DeliveryManager.Instance.OnRecipeFailed += DeliveryManager_OnRecipeFailed; gameObject.SetActive(false); } private void DeliveryManager_OnRecipeFailed(object sender, System.EventArgs e) { gameObject.SetActive(true); animator.SetTrigger(Popup); backgroundImage.color = failedColor; iconImage.sprite = failedSprite; messageText.text = $"Delivery\nfailed!\n-1"; } private void DeliveryManager_OnRecipeSuccess(object sender, RecipeEventArgs e) { gameObject.SetActive(true); animator.SetTrigger(Popup); backgroundImage.color = successColor; iconImage.sprite = successSprite; messageText.text = $"{e.RecipeSO.RecipeName}\ndelivered!\n+{e.RecipeSO.Points}"; } }