Add new skills: Double Jump, Ground Pound, Brick Armor, and Brick Shield; implement skill removal signal in SkillManager (#11)

This commit is contained in:
2025-08-31 15:17:11 +02:00
committed by GitHub
parent bd40c797d4
commit ead52f6d51
89 changed files with 682 additions and 7 deletions

View File

@@ -19,12 +19,17 @@ public partial class Marketplace : Control
[Export] public PackedScene SkillButtonScene { get; set; }
private GameManager _gameManager;
private SkillManager _skillManager;
private readonly List<Button> _unlockButtons = [];
private readonly List<SkillButton> _skillButtons = [];
public override void _Ready()
{
_gameManager = GetNode<GameManager>("/root/GameManager");
_skillManager = GetNode<SkillManager>("/root/SkillManager");
_skillManager.SkillRemoved += OnSkillRemoved;
Skills = _skillManager.AvailableSkills;
var skillsToUnlock = new List<SkillData>();
@@ -137,4 +142,22 @@ public partial class Marketplace : Control
btn.Deactivate();
}
}
private void OnSkillRemoved(SkillData skill)
{
SkillButton buttonToRemove = null;
foreach (var button in _skillButtons)
{
if (button.Data == skill)
{
buttonToRemove = button;
break;
}
}
if (buttonToRemove != null)
{
_skillButtons.Remove(buttonToRemove);
buttonToRemove.QueueFree();
}
}
}

View File

@@ -14,6 +14,7 @@ public partial class MarketplaceButton : Button
private GameManager _gameManager;
private SkillUnlockerComponent _skillUnlockerComponent;
private SkillManager _skillManager;
public override void _Ready()
{
@@ -27,6 +28,9 @@ public partial class MarketplaceButton : Button
_skillUnlockerComponent.SkillUnlocked += OnSkillStateChanged;
}
_skillManager = GetNode<SkillManager>("/root/SkillManager");
_skillManager.SkillRemoved += OnSkillStateChanged;
UpdateButtonState();
}