(client) feat:健康给予,路径优化,结算界面,商店界面 (#60)

Co-authored-by: m0_75251201 <m0_75251201@noreply.gitcode.com>
Reviewed-on: http://47.107.252.169:3000/Roguelite-Game-Developing-Team/Gen_Hack-and-Slash-Roguelite/pulls/60
This commit is contained in:
2025-10-10 14:08:23 +08:00
parent 9a797479ff
commit 16b49f3d3a
1900 changed files with 114053 additions and 34157 deletions

View File

@@ -1,4 +1,3 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Managers;
@@ -8,12 +7,13 @@ namespace UI
{
public class SkillTreeUI : FullScreenUI
{
public SkillTreeNodeInformationUI skillTreeNodeInformationUI;
public SkillTreePageUI skillTreePageUIPrefab;
public Transform skillTreePageUIParent; // 用于承载 SkillTreePageUI 实例的 Transform
public List<SkillTreePageUI> skillTreePages = new List<SkillTreePageUI>();
public List<SkillTreePageUI> skillTreePages = new();
private int _index = 0;
private int _index;
public int Index
{
@@ -23,15 +23,9 @@ namespace UI
_index = value;
if (skillTreePages.Count == 0)
return;
while (_index < 0)
{
_index += skillTreePages.Count;
}
while (_index < 0) _index += skillTreePages.Count;
while (_index >= skillTreePageUIParent.childCount)
{
_index -= skillTreePageUIParent.childCount;
}
while (_index >= skillTreePageUIParent.childCount) _index -= skillTreePageUIParent.childCount;
}
}
@@ -45,12 +39,21 @@ namespace UI
foreach (var page in pageList)
{
var pageUI = Instantiate(skillTreePageUIPrefab, skillTreePageUIParent);
pageUI.skillTreeUI = this;
pageUI.GenerateAndLayoutAllSkillTrees(page);
skillTreePages.Add(pageUI);
pageUI.gameObject.SetActive(false);
}
FocusedSkillTreePage.gameObject.SetActive(true);
FocusedSkillTreePage?.gameObject.SetActive(true);
}
public override void TickUI()
{
if (skillTreeNodeInformationUI.gameObject.activeInHierarchy && Input.GetKeyDown(KeyCode.Escape))
skillTreeNodeInformationUI.OnHide();
else
base.TickUI();
}
public void OnLeft()
@@ -66,5 +69,11 @@ namespace UI
Index++;
FocusedSkillTreePage.gameObject.SetActive(true);
}
public void OnShowNodeInformation(SkillTreeNodeUI skillTreeNodeUI)
{
skillTreeNodeInformationUI.Init(skillTreeNodeUI);
skillTreeNodeInformationUI.gameObject.SetActive(true);
}
}
}