cirnogodot/Scripts/Components/FSM/Boss/Idle.cs

42 lines
953 B
C#
Raw Normal View History

2025-04-29 18:34:58 +02:00
using System.Threading.Tasks;
using Cirno.Scripts.Components.Actors;
2025-04-28 18:06:07 +02:00
using Cirno.Scripts.Components.FSM.Enemy;
using Cirno.Scripts.Enums;
using Godot;
namespace Cirno.Scripts.Components.FSM.Boss;
public partial class Idle : EnemyStateBase
{
public override EnemyState StateId => EnemyState.Idle;
[Export]
public EnemyStorageModule StorageModule { get; private set; }
[Export]
public GenericDamageReceiver DamageReceiver { get; private set; }
public override void EnterState()
{
base.EnterState();
2025-05-16 17:38:02 +02:00
StorageModule.HomePosition = StateMachine.MainObject.GlobalPosition;
2025-04-29 18:34:58 +02:00
DamageReceiver.ChangeState(false);
GD.Print("Boss idle");
_ = DelayStart();
2025-04-28 18:06:07 +02:00
}
2025-04-29 18:34:58 +02:00
private async Task DelayStart()
{
await Task.Delay(1000);
ChangeState(EnemyState.Shooting);
}
2025-04-28 18:06:07 +02:00
public override void ExitState()
{
base.ExitState();
}
}