Wave of item effects and implementation

This commit is contained in:
2026-02-15 22:44:43 -08:00
parent 5233da4225
commit f09d6ac8e8
57 changed files with 508 additions and 86 deletions

View File

@@ -190,6 +190,7 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<IPlayer>
HealthComponent.CurrentHP.Changed += InverseHPToAttackPowerSync;
HealthComponent.HealthReachedZero += Die;
ExperiencePointsComponent.PlayerLevelUp += OnLevelUp;
ExperiencePointsComponent.PlayerLevelDown += OnLevelDown;
PlayerFXAnimations.AnimationFinished += PlayerFXAnimations_AnimationFinished;
HealthTimer.WaitTime = _healthTimerWaitTime;
SetProcessInput(false);
@@ -527,6 +528,11 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<IPlayer>
BoostPlayerHPFromLevelUp();
}
private void OnLevelDown()
{
LowerPlayerHPFromLevelDown();
}
private void BoostPlayerHPFromLevelUp()
{
var rng = new RandomNumberGenerator();
@@ -535,6 +541,14 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<IPlayer>
HealthComponent.RaiseMaximumHP(hpIncrease);
}
private void LowerPlayerHPFromLevelDown()
{
var rng = new RandomNumberGenerator();
rng.Randomize();
var hpIncrease = rng.RandiRange(3, 6);
HealthComponent.LowerMaximumHP(hpIncrease);
}
private static float LeftStrafeInputVector => Input.GetActionStrength(GameInputs.StrafeLeft);
private static float RightStrafeInputVector => Input.GetActionStrength(GameInputs.StrafeRight);