refactor: Consolidate skill component logic into SkillComponentBase and update manager access to singletons.

This commit is contained in:
2026-01-31 17:35:27 +01:00
parent 425fa5b940
commit 288f0b1916
27 changed files with 212 additions and 179 deletions

View File

@@ -30,6 +30,8 @@ public partial class GameManager : Node
/// </summary>
private GameStateStore Store => GameStateStore.Instance;
public static GameManager Instance { get; private set; }
public override void _EnterTree()
{
GetTree().NodeAdded += OnNodeAdded;
@@ -38,6 +40,7 @@ public partial class GameManager : Node
public override void _ExitTree()
{
if (Instance == this) Instance = null;
GetTree().NodeAdded -= OnNodeAdded;
GetTree().NodeRemoved -= OnNodeRemoved;
_sceneNodes.Clear();
@@ -45,6 +48,7 @@ public partial class GameManager : Node
public override void _Ready()
{
Instance = this;
_speedRunManager = GetNode<SpeedRunManager>(Constants.SpeedRunManagerPath);
}
@@ -140,11 +144,9 @@ public partial class GameManager : Node
{
if (Store == null) return new Array<SkillData>();
var skills = Store.GetAllUnlockedSkills();
var result = new Array<SkillData>();
foreach (var s in Store.Player.UnlockedSkills)
result.Add(s);
foreach (var s in Store.Session.SkillsUnlocked)
if (!result.Contains(s)) result.Add(s);
foreach (var s in skills) result.Add(s);
return result;
}