cirnogodot/Scripts/Components/Actors/ActorDefeatScriptHandler.cs
2025-02-23 22:38:33 +01:00

43 lines
No EOL
911 B
C#

using Godot;
namespace Cirno.Scripts.Components.Actors;
public partial class ActorDefeatScriptHandler : ActorModule
{
[Export] public Node2D DefeatScript { get; private set; }
[Export] public ActivationType ActivationType { get; private set; }
protected Actor _actor;
public override void Init(Actor actor)
{
_actor = actor;
DefeatScript = actor.DefeatScript;
ActivationType = actor.ActivationType;
_actor.OnDeath += ActorOnOnDeath;
}
private void ActorOnOnDeath()
{
ActivateDefeatScript();
}
public override void Update(double delta)
{
}
public override void PhysicsUpdate(double delta)
{
}
protected void ActivateDefeatScript()
{
if (DefeatScript is not IActivable target)
{
return;
}
target?.Activate();
}
}