修改天梯UI数据,及任务的UI数据的初步同步

This commit is contained in:
YiHan0621
2025-09-04 18:04:09 +08:00
parent 9275b66383
commit 1f8e74b6c5
92 changed files with 6288 additions and 1393 deletions

View File

@@ -1,6 +1,8 @@
using System;
using System.Collections.Generic;
using UnityEngine;
using TcgEngine.Client;
using TcgEngine.Gameplay;
using TcgEngine.UI;
namespace TcgEngine.Client
{
@@ -9,25 +11,48 @@ namespace TcgEngine.Client
/// </summary>
public class GameClientTaskIntegration : MonoBehaviour
{
[Header("所有任务")]
public List<PlayerTask> tasks = new List<PlayerTask>();
[Header("活跃任务")]
public List<PlayerTask> activeTasks = new List<PlayerTask>();
[Header("已完成任务")]
public List<PlayerTask> completedTasks = new List<PlayerTask>();
private GameClient client;
private TaskPanel taskPanel;
private void Start()
{
Debug.LogError("------------"+gameObject.name+"-------------------");
// 在游戏客户端启动时初始化任务系统
GameClient client = GameClient.Get();
client = FindFirstObjectByType<GameClient>();
client = GameClient.Get();
Debug.LogError(client.name);
if (client != null)
{
// 玩家连接到游戏服务器时触发任务检查
client.onConnectServer += OnConnectToServer;
Debug.LogError(client.onConnectServer + "任务系统初始化成功");
}
if (TaskManager.Instance != null)
{
TaskManager.Instance.refreshTaskUI += OnRefreshTaskPanel;
}
// 找 UI 面板
taskPanel = GetComponent<TaskPanel>();
if (taskPanel == null)
taskPanel = FindObjectOfType<TaskPanel>();
}
private void OnDestroy()
{
// 取消订阅事件
GameClient client = GameClient.Get();
if (client != null)
{
client.onConnectServer -= OnConnectToServer;
}
client.onConnectServer -= OnConnectToServer;
TaskManager.Instance.refreshTaskUI -= OnRefreshTaskPanel;
}
private void OnConnectToServer()
@@ -36,8 +61,25 @@ namespace TcgEngine.Client
TaskManager taskManager = TaskManager.Instance;
if (taskManager != null)
{
Debug.LogError("初始化完成");
taskManager.OnPlayerLogin();
taskPanel.ShowTasks(taskManager.GetAllTasks());
}
}
private void OnRefreshTaskPanel(List<PlayerTask> tasksList)
{
TaskManager taskManager = TaskManager.Instance;
if (taskManager == null || taskPanel == null)
return;
tasks = taskManager.GetAllTasks();
activeTasks = taskManager.GetActiveTasks();
completedTasks = taskManager.GetCompletedTasks();
taskPanel.RefreshTasks(activeTasks);
}
}
}