修改天梯UI数据,及任务的UI数据的初步同步
This commit is contained in:
73
Assets/TcgEngine/Scripts/Tasks/TaskItem.cs
Normal file
73
Assets/TcgEngine/Scripts/Tasks/TaskItem.cs
Normal file
@@ -0,0 +1,73 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user