2025-03-20 18:22:40 +01:00
|
|
|
|
using Cirno.Scripts.Components.Actors;
|
|
|
|
|
|
using Cirno.Scripts.Enums;
|
|
|
|
|
|
using Godot;
|
|
|
|
|
|
|
|
|
|
|
|
namespace Cirno.Scripts.Components.FSM.Enemy;
|
|
|
|
|
|
|
|
|
|
|
|
public partial class Init : EnemyStateBase
|
|
|
|
|
|
{
|
|
|
|
|
|
public override EnemyState StateId => EnemyState.Init;
|
|
|
|
|
|
|
|
|
|
|
|
[Export]
|
|
|
|
|
|
public GenericDamageReceiver DamageReceiver { get; private set; }
|
|
|
|
|
|
|
|
|
|
|
|
[Export]
|
|
|
|
|
|
public EnemyStorageModule StorageModule { get; private set; }
|
|
|
|
|
|
|
|
|
|
|
|
public override void EnterState()
|
|
|
|
|
|
{
|
|
|
|
|
|
DamageReceiver.HealthProvider.MaxResource = StorageModule.Root.EnemyResource.MaxHealth;
|
2025-03-21 17:52:01 +01:00
|
|
|
|
|
|
|
|
|
|
StorageModule.AiState = StorageModule.Root.StartingAiState;
|
2025-04-28 18:06:07 +02:00
|
|
|
|
|
|
|
|
|
|
StorageModule.HomePosition = MainObject.GlobalPosition;
|
2025-03-21 17:52:01 +01:00
|
|
|
|
// TODO: Hide wings
|
|
|
|
|
|
// TODO: Hide aiming reticule
|
2025-03-20 18:22:40 +01:00
|
|
|
|
|
|
|
|
|
|
StateMachine.SetState(EnemyState.Idle);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void PhysicsProcessState(double delta)
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void ProcessState(double delta)
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|