refactor: Consolidate skill component logic into SkillComponentBase and update manager access to singletons.
This commit is contained in:
@@ -26,9 +26,8 @@ public partial class Marketplace : Control
|
||||
|
||||
public override void _Ready()
|
||||
{
|
||||
_gameManager = GetNode<GameManager>(Constants.GameManagerPath);
|
||||
_skillManager = GetNode<SkillManager>(Constants.SkillManagerPath);
|
||||
_skillManager.SkillRemoved += OnSkillRemoved;
|
||||
_gameManager = GameManager.Instance;
|
||||
_skillManager = SkillManager.Instance;
|
||||
|
||||
Skills = _skillManager.AvailableSkills;
|
||||
|
||||
@@ -42,11 +41,16 @@ public partial class Marketplace : Control
|
||||
foreach (var skill in unlockedSkills) CreateSkillButton(skill);
|
||||
|
||||
SkillUnlockerComponent.SkillUnlocked += OnSkillUnlocked;
|
||||
EventBus.Instance.SkillCollected += OnGlobalSkillCollected;
|
||||
}
|
||||
|
||||
public override void _ExitTree()
|
||||
{
|
||||
SkillUnlockerComponent.SkillUnlocked -= OnSkillUnlocked;
|
||||
if (EventBus.Instance != null)
|
||||
{
|
||||
EventBus.Instance.SkillCollected -= OnGlobalSkillCollected;
|
||||
}
|
||||
}
|
||||
|
||||
public override void _Input(InputEvent @event)
|
||||
@@ -81,7 +85,7 @@ public partial class Marketplace : Control
|
||||
|
||||
foreach (var btn in _skillButtons)
|
||||
{
|
||||
if (btn.Data.IsActive) btn.Activate();
|
||||
if (_skillManager.IsSkillActive(btn.Data)) btn.Activate();
|
||||
else btn.Deactivate();
|
||||
}
|
||||
}
|
||||
@@ -118,7 +122,7 @@ public partial class Marketplace : Control
|
||||
if (skill.Level < skill.MaxLevel)
|
||||
{
|
||||
SkillUnlockerComponent.TryUpgradeSkill(skill);
|
||||
if (!skill.IsActive) SkillUnlockerComponent.SkillManager.ToggleSkillActivation(skill);
|
||||
if (!SkillUnlockerComponent.SkillManager.IsSkillActive(skill)) SkillUnlockerComponent.SkillManager.ToggleSkillActivation(skill);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -137,28 +141,15 @@ public partial class Marketplace : Control
|
||||
|
||||
foreach (var btn in _skillButtons)
|
||||
{
|
||||
if (btn.Data.IsActive)
|
||||
if (SkillUnlockerComponent.SkillManager.IsSkillActive(btn.Data))
|
||||
btn.Activate();
|
||||
else
|
||||
btn.Deactivate();
|
||||
}
|
||||
}
|
||||
|
||||
private void OnSkillRemoved(SkillData skill)
|
||||
private void OnGlobalSkillCollected(SkillData skill, Vector2 position)
|
||||
{
|
||||
SkillButton buttonToRemove = null;
|
||||
foreach (var button in _skillButtons)
|
||||
{
|
||||
if (button.Data == skill)
|
||||
{
|
||||
buttonToRemove = button;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (buttonToRemove != null)
|
||||
{
|
||||
_skillButtons.Remove(buttonToRemove);
|
||||
buttonToRemove.QueueFree();
|
||||
}
|
||||
OnSkillUnlocked(skill);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user