refactor (#6)

Reviewed-on: #6
This commit was merged in pull request #6.
This commit is contained in:
2026-02-01 11:47:40 +00:00
parent dde3eaa52e
commit bfe951939d
71 changed files with 1583 additions and 661 deletions

View File

@@ -6,40 +6,25 @@ using Mr.BrickAdventures.scripts.Resources;
namespace Mr.BrickAdventures.scripts.components;
[GlobalClass]
public partial class DoubleJumpSkillComponent : Node, ISkill
public partial class DoubleJumpSkillComponent : SkillComponentBase
{
[Export] private PackedScene _doubleJumpAbilityScene;
private PlayerController _playerController;
public void Initialize(Node owner, SkillData data)
{
_playerController = owner as PlayerController;
if (_playerController == null)
{
GD.PrintErr("DoubleJumpSkillComponent must be a child of a PlayerController.");
}
}
public void Activate()
public override void Activate()
{
if (_playerController == null) return;
if (Player == null) return;
var hasAbility = _playerController.GetActiveAbilities().Any(ability => ability is DoubleJumpAbility);
var hasAbility = Player.GetActiveAbilities().Any(ability => ability is DoubleJumpAbility);
if (!hasAbility)
{
var abilityInstance = _doubleJumpAbilityScene.Instantiate<DoubleJumpAbility>();
_playerController.AddAbility(abilityInstance);
Player.AddAbility(abilityInstance);
}
}
public void Deactivate()
public override void Deactivate()
{
_playerController?.RemoveAbility<DoubleJumpAbility>();
}
public void ApplyUpgrade(SkillUpgrade upgrade)
{
Player?.RemoveAbility<DoubleJumpAbility>();
}
}