Started implementing SFX

Fixed Shield animation jumps and secondary attack
Fixed demon wall stone behavior
Made overworld ambient sounds unpausable
This commit is contained in:
2025-11-25 03:04:07 -08:00
parent 3e8c11d55d
commit db7a1df1f7
122 changed files with 2313 additions and 1687 deletions

View File

@@ -74,8 +74,6 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<IPlayer>
#region Node Dependencies
[Node] private IAnimationPlayer AnimationPlayer { get; set; } = default!;
[Node] private IAnimationPlayer PlayerFXAnimations { get; set; } = default!;
[Node] private Area3D Hitbox { get; set; } = default!;
[Node] private Area3D CollisionDetector { get; set; } = default!;
@@ -193,6 +191,7 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<IPlayer>
{
var damageReceived = DamageCalculator.CalculateDamage(damage, DefenseComponent.CurrentDefense.Value + EquipmentComponent.BonusDefense, EquipmentComponent.ElementalResistance);
HealthComponent.Damage(damageReceived);
SfxDatabase.Instance.Play(SoundEffect.TakeDamage);
}
public void Knockback(float impulse)
@@ -208,6 +207,7 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<IPlayer>
var hpIncrease = rng.RandiRange(3, 6);
HealthComponent.RaiseMaximumHP(hpIncrease);
ExperiencePointsComponent.LevelUp();
SfxDatabase.Instance.Play(SoundEffect.LevelUp);
}
public void Die()
@@ -279,13 +279,9 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<IPlayer>
private void Attack()
{
if (PlayerIsHittingGeometry())
{
AnimationPlayer.Play("hit_wall");
}
else
{
else if (!AnimationPlayer.IsPlaying())
PlayAttackAnimation();
}
}
private void ThrowItem()
@@ -299,6 +295,7 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<IPlayer>
private void PlayAttackAnimation()
{
SfxDatabase.Instance.Play(((Weapon)EquipmentComponent.EquippedWeapon.Value).SoundEffect);
var attackSpeed = ((Weapon)EquipmentComponent.EquippedWeapon.Value).AttackSpeed;
AnimationPlayer.SetSpeedScale((float)attackSpeed);
AnimationPlayer.Play("attack");
@@ -364,7 +361,10 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<IPlayer>
var element = (EquipmentComponent.EquippedWeapon.Value as Weapon).WeaponElement;
if (isCriticalHit)
{
totalDamage += (int)(totalDamage * 0.5f);
SfxDatabase.Instance.Play(SoundEffect.Crit);
}
var baseAttack = new AttackData(totalDamage, element, ignoreDefense, ignoreElementalResistance);
var damageDealt = DamageCalculator.CalculateDamage(baseAttack, enemy.DefenseComponent.CurrentDefense.Value, ElementalResistanceSet.None);
@@ -398,7 +398,6 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<IPlayer>
}
if (area.GetParent() is Restorative restorative)
{
//_gameRepo.OnRestorativePickedUp(restorative);
restorative.QueueFree();
}
}