|
|
|
|
@@ -2034,30 +2034,16 @@ public partial class PlayerController : CharacterBody3D,
|
|
|
|
|
public bool CanPerformEmpoweredAction()
|
|
|
|
|
{
|
|
|
|
|
if(_empoweredActionHandle == null) return false;
|
|
|
|
|
var cooldowns = _empoweredActionHandle.GetCooldownData();
|
|
|
|
|
foreach (var cd in cooldowns)
|
|
|
|
|
{
|
|
|
|
|
//GD.Print($"Cooldown remaining: {cd.RemainingTime}");
|
|
|
|
|
}
|
|
|
|
|
var costs = _empoweredActionHandle.GetCostData();
|
|
|
|
|
foreach (var cost in costs)
|
|
|
|
|
{
|
|
|
|
|
// Assuming you want to check Mana costs
|
|
|
|
|
if (cost.Attribute == "PlayerAttributeSet.Mana")
|
|
|
|
|
{
|
|
|
|
|
//GD.Print($"Mana Cost: {cost.Cost}");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// var cooldowns = _empoweredActionHandle.GetCooldownData();
|
|
|
|
|
// var costs = _empoweredActionHandle.GetCostData();
|
|
|
|
|
|
|
|
|
|
var canActivate = _empoweredActionHandle.CanActivate(out var failures);
|
|
|
|
|
if (!canActivate)
|
|
|
|
|
{
|
|
|
|
|
GD.PrintErr($"Cannot activate empowered action: {failures}");
|
|
|
|
|
if (failures.HasFlag(AbilityActivationFailures.Cooldown)) GD.PrintErr("In Cooldown");
|
|
|
|
|
if (failures.HasFlag(AbilityActivationFailures.InsufficientResources)) GD.PrintErr("Not Enough Mana");
|
|
|
|
|
}
|
|
|
|
|
return canActivate;
|
|
|
|
|
return EmpoweredActionsLeft > 0 && TutorialDone;
|
|
|
|
|
}
|
|
|
|
|
public void PerformEmpoweredAction()
|
|
|
|
|
{
|
|
|
|
|
@@ -2066,19 +2052,10 @@ public partial class PlayerController : CharacterBody3D,
|
|
|
|
|
var canActivate = _empoweredActionHandle.Activate(out var failures);
|
|
|
|
|
if (!canActivate)
|
|
|
|
|
{
|
|
|
|
|
GD.PrintErr($"Cannot activate empowered action: {failures}");
|
|
|
|
|
if (failures.HasFlag(AbilityActivationFailures.Cooldown)) GD.PrintErr("In Cooldown");
|
|
|
|
|
if (failures.HasFlag(AbilityActivationFailures.InsufficientResources)) GD.PrintErr("Not Enough Mana");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
GD.Print($"Remaining mana: {Attributes["PlayerAttributeSet.Mana"].CurrentValue}");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Inhibit Mana Regeneration for a while after using an empowered action
|
|
|
|
|
// TODO: Use Forge events instead of relying on direct referencing
|
|
|
|
|
// _manaRegenEffectHandle!.SetInhibit(true);
|
|
|
|
|
// GetTree().CreateTimer(EmpoweredAction.ManaRegenPause).Timeout += () => {_manaRegenEffectHandle!.SetInhibit(false);};
|
|
|
|
|
|
|
|
|
|
_isWallJumpAvailable = true;
|
|
|
|
|
_canDashAirborne = true;
|
|
|
|
|
@@ -2411,13 +2388,7 @@ public partial class PlayerController : CharacterBody3D,
|
|
|
|
|
{
|
|
|
|
|
// Manage head and camera movement
|
|
|
|
|
LookAround(delta);
|
|
|
|
|
|
|
|
|
|
EffectsManager.UpdateEffects(delta);
|
|
|
|
|
// TODO: change for actual Cue
|
|
|
|
|
// var currentMana = Attributes["PlayerAttributeSet.Mana"].CurrentValue;
|
|
|
|
|
// if (Mathf.Abs(currentMana - _oldMana) > Mathf.Epsilon)
|
|
|
|
|
// PlayerUi.OnManaChanged(currentMana);
|
|
|
|
|
// _oldMana = currentMana;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
///////////////////////////
|
|
|
|
|
|