using Cirno.Scripts.Components.Actors; using Cirno.Scripts.Enums; using Godot; namespace Cirno.Scripts.Components.FSM.Enemy; public partial class InitState : EnemyStateBase { public override EnemyState StateId => EnemyState.Init; private GenericDamageReceiver DamageReceiver { get; set; } private EnemyStorageModule StorageModule { get; set; } public override void Init(IStateMachine machine) { base.Init(machine); DamageReceiver ??= StateMachine.GetModule(); StorageModule ??= StateMachine.GetModule(); } public override void EnterState() { DamageReceiver.HealthProvider.MaxResource = StorageModule.Root.EnemyResource.MaxHealth; StorageModule.AiState = StorageModule.Root.StartingAiState; StorageModule.HomePosition = MainObject.GlobalPosition; // TODO: Hide wings // TODO: Hide aiming reticule StateMachine.SetState(EnemyState.Idle); } public override void PhysicsProcessState(double delta) { } public override void ProcessState(double delta) { } }