Add new skills: Double Jump, Ground Pound, Brick Armor, and Brick Shield; implement skill removal signal in SkillManager (#11)
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
@@ -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();
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user