Files
GameJam2023/Enemies/Scripts/BasicEnemy.cs
2023-09-11 17:42:11 -07:00

37 lines
882 B
C#

using Godot;
public partial class BasicEnemy : Node3D
{
[Export]
private HealthPoints _hp;
protected GameManager _gameManager;
public override void _Ready()
{
_gameManager = GetTree().Root.GetNode<GameManager>("Main/GameManager");
}
public void OnEnemyHit(Node3D node)
{
_hp.TakeDamage(1);
if (_hp.CurrentHP <= 0)
{
var currentLevel = (Level)GetTree().GetFirstNodeInGroup("Level");
currentLevel.OnEnemyDefeated(this);
QueueFree();
}
}
public void OnPlayerHit(Node3D node)
{
if (node is Character character && character.HasMethod(Character.MethodName.OnHit))
{
GD.Print("Collision with player at " + node.GlobalPosition + "by " + Name);
GD.Print("Player hit: " + character.Name);
character.Call(Character.MethodName.OnHit, this);
}
}
}