119 lines
3.1 KiB
C#
119 lines
3.1 KiB
C#
using System;
|
||
using System.Collections.Generic;
|
||
using Animancer;
|
||
using Logic;
|
||
using Logic.Action;
|
||
using Logic.Audio;
|
||
using Logic.CrashSight;
|
||
using Logic.Multilingual;
|
||
using RuntimeData;
|
||
using TH1_Core.Events;
|
||
using TH1_Core.Managers;
|
||
using TH1_Logic.Core;
|
||
using TH1_Logic.MatchConfig;
|
||
using TH1_Logic.Net;
|
||
using TH1_Logic.Steam;
|
||
using TH1_UI.Components;
|
||
using TH1_UI.HintUI;
|
||
using TH1_UI.View.Info;
|
||
using TH1Renderer;
|
||
using TH1Resource;
|
||
using TMPro;
|
||
using UI.HintUI;
|
||
using Unity.VisualScripting;
|
||
using UnityEngine;
|
||
using UnityEngine.EventSystems;
|
||
using UnityEngine.UI;
|
||
|
||
namespace TH1_UI.View.Bottom
|
||
{
|
||
public class UIBottomTutorView : Base.View
|
||
{
|
||
//public Button closeButton;
|
||
//public ViDelegateAssisstant.Dele OnBtnCloseClick;
|
||
|
||
public GameObject RowPrefab;
|
||
public Transform RowFather;
|
||
//public Button CloseButton;
|
||
|
||
private List<UIBottomTutorMissionRow> Rows = new List<UIBottomTutorMissionRow>();
|
||
|
||
|
||
protected override void OnInit()
|
||
{
|
||
base.OnInit();
|
||
//CloseButton.onClick.RemoveAllListeners();
|
||
//CloseButton.onClick.AddListener(() => { OnBtnCloseClick.Invoke(); });
|
||
//CheckPanel.InitStart(RefreshStatus);
|
||
|
||
|
||
}
|
||
|
||
|
||
//通常一局只会set一次,每次都是完全清空,然后绑定新的一个对局的按钮
|
||
public void SetContent()
|
||
{
|
||
//if (Main.Instance.GameLogic.GetCurState() == GameState.Menu) return;
|
||
|
||
var taskList = new List<PlayerTaskInfo>();
|
||
//Step #2 安排好每个row的游戏对象
|
||
if (Main.MapData.MatchSettlement.PlayerSettlements.TryGetValue(Main.MapData.PlayerMap.SelfPlayerId,
|
||
out var settlement) && settlement.Settlements.Count > 0)
|
||
{
|
||
var data = settlement.Settlements[0];
|
||
taskList = data.Tasks;
|
||
}
|
||
|
||
// 串行任务支持:只展示"已完成"+"当前激活波次"的任务,未来波次完全隐藏。
|
||
// activeOrder = 未完成任务中最小 Order,全部完成时为 int.MaxValue。
|
||
// Order 全为 0 时等价于全部并行展示,保持老行为。
|
||
int activeOrder = int.MaxValue;
|
||
if (taskList != null)
|
||
{
|
||
foreach (var t in taskList)
|
||
{
|
||
if (t.IsSettlement) continue;
|
||
if (t.Order < activeOrder) activeOrder = t.Order;
|
||
}
|
||
}
|
||
|
||
var visibleTasks = new List<PlayerTaskInfo>();
|
||
if (taskList != null)
|
||
{
|
||
foreach (var t in taskList)
|
||
{
|
||
if (t.Order <= activeOrder) visibleTasks.Add(t);
|
||
}
|
||
}
|
||
|
||
int count = visibleTasks.Count;
|
||
|
||
//Step #3逐个设置
|
||
for (int i = 0; i < count; i++)
|
||
{
|
||
Table.Instance.PlayerTaskDataAssets.GetPlayerTaskData(visibleTasks[i].TaskType, out var data);
|
||
if(Rows.Count <= i)
|
||
{
|
||
var row = Instantiate(RowPrefab,RowFather);
|
||
var t = row.GetComponent<UIBottomTutorMissionRow>();
|
||
Rows.Add(t);
|
||
}
|
||
Rows[i]?.gameObject.SetActive(true);
|
||
Rows[i]?.SetContent(visibleTasks[i],data);
|
||
}
|
||
for(int i = count; i < Rows.Count;i ++)
|
||
Rows[i].gameObject.SetActive(false);
|
||
|
||
}
|
||
|
||
|
||
public void CloseView()
|
||
{
|
||
//AudioManager.Instance.StopMusic();
|
||
}
|
||
|
||
|
||
}
|
||
|
||
}
|