Take damage/Screen shake
This commit is contained in:
@@ -76,6 +76,8 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<IPlayer>
|
||||
|
||||
[Node] private IAnimationPlayer PlayerFXAnimations { get; set; } = default!;
|
||||
|
||||
[Node] private IAnimationPlayer TakeDamageAnimationPlayer { get; set; } = default!;
|
||||
|
||||
[Node] private Area3D Hitbox { get; set; } = default!;
|
||||
|
||||
[Node] private Area3D CollisionDetector { get; set; } = default!;
|
||||
@@ -87,6 +89,8 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<IPlayer>
|
||||
[Node] private AudioStreamPlayer3D WalkSFX { get; set; } = default!;
|
||||
|
||||
[Node] private CollisionShape3D MainCollision { get; set; } = default!;
|
||||
|
||||
[Node] private ShakeCamera _camera3D { get; set; } = default!;
|
||||
#endregion
|
||||
|
||||
|
||||
@@ -168,7 +172,6 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<IPlayer>
|
||||
|
||||
public void Activate()
|
||||
{
|
||||
MainCollision.Disabled = false;
|
||||
SetProcessInput(true);
|
||||
SetPhysicsProcess(true);
|
||||
SetHealthTimerStatus(HealthTimerIsActive);
|
||||
@@ -176,7 +179,6 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<IPlayer>
|
||||
|
||||
public void Deactivate()
|
||||
{
|
||||
MainCollision.Disabled = true;
|
||||
SetProcessInput(false);
|
||||
SetPhysicsProcess(false);
|
||||
SetHealthTimerStatus(false);
|
||||
@@ -197,6 +199,8 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<IPlayer>
|
||||
|
||||
public void TakeDamage(AttackData damage)
|
||||
{
|
||||
_camera3D.AddShake(1.0f);
|
||||
TakeDamageAnimationPlayer.Play("take_damage");
|
||||
var damageReceived = DamageCalculator.CalculateDamage(damage, DefenseComponent.CurrentDefense.Value + EquipmentComponent.BonusDefense, EquipmentComponent.ElementalResistance);
|
||||
HealthComponent.Damage(damageReceived);
|
||||
SfxDatabase.Instance.Play(SoundEffect.TakeDamage);
|
||||
|
||||
Reference in New Issue
Block a user