using System; using System.Collections; using System.Collections.Generic; using TcgEngine.Gameplay; using UnityEngine; using UnityEngine.UI; namespace TcgEngine.UI { public class TaskItem : MonoBehaviour { public string taskID; public Text taskName_text; public Text teskDesc_text; public Slider progressBar_slider; public Text progressBar_text; public Button reward_button; public Image reward_icon; private PlayerTask playerTask; private TaskData taskConfig; public void SetTask(TaskData config, PlayerTask task) { taskID = config.id; taskConfig = config; playerTask = task; taskName_text.text = taskConfig.name; teskDesc_text.text = taskConfig.desc; progressBar_slider.maxValue = config.value1; progressBar_slider.value = task.progress; progressBar_text.text = task.progress + "/" + taskConfig.value1; progressBar_slider.interactable = false; // 禁用交互性 reward_button.interactable = task.status == TaskStatus.Completed; reward_button.onClick.RemoveAllListeners(); reward_button.onClick.AddListener(OnClickReward); RefreshStatus(); } private void OnClickReward() { if (playerTask != null && playerTask.status == TaskStatus.Completed) { TaskManager.Instance.ClaimTaskReward(playerTask); RefreshStatus(); } } private void RefreshStatus() { if (playerTask == null) return; progressBar_slider.value = playerTask.progress; progressBar_text.text = playerTask.progress + "/" + taskConfig.value1; } private void RewardColl(Sprite icon) { if (reward_icon != null) { reward_icon.sprite = icon; } } } }