I have Bat enemy, I want its health decrease when player's Hitbox enter Bat's Hurtbox.
Bat.cs:
`public class Bat : KinematicBody2D
{
private const float KNOCKBACK_FORCE = 120;
private Vector2 knockback = Vector2.Zero;
private Stats stats;
public SwordHitbox swordHitbox;
public override void _Ready()
{
stats = (Stats)GetNode("Stats");
swordHitbox = (SwordHitbox)GetParent().GetNode("/root/scenes/Player/SwordHitbox");
}
public override void _PhysicsProcess(float delta)
{
knockback = knockback.MoveToward(Vector2.Zero, delta * 200);
knockback = MoveAndSlide(knockback);
}
private void onHurtBoxAreaEntered(Area2D area)
{
var pivot = area.GetParent();
var player = (Player)pivot.GetParent();
stats.Health -= swordHitbox.damage; // ERROR Node not found
knockback = player.rollVector * KNOCKBACK_FORCE; // player.rollVector: Get the direction player is facing and make it knockback direction.
}
private void onStatsNoHealth()
{
QueueFree();
}
}`
The player.tscn node look like this:
Player
|-- ...
|-- HitboxPivot (Type: Posittion2D)
|-- SwordHitbox (Type: Area2D)
|-- CollisionShap2D
Continue in next message...