using System; using Cirno.Scripts.Enums; using Cirno.Scripts.Resources; using Cirno.Scripts.Resources.Loot; using Godot; using Godot.Collections; namespace Cirno.Scripts.Components.FSM.Enemy; public partial class EnemyFSMProxy : CharacterBody2D, IActivable { [Export] public EnemyStateMachine EnemyFSM { get; private set; } [Export] public EnemyResource EnemyResource { get; private set; } [Export] public Array ExtraLoot { get; private set; } = []; [Export] public AiState StartingAiState { get; private set; } [ExportCategory("Defeat Script")] [Export] public Node2D DefeatScript { get; set; } [Export] public ActivationType ActivationType { get; private set; } = ActivationType.Toggle; public bool Activate(ActivationType activationType = ActivationType.Toggle) { switch (activationType) { case ActivationType.Toggle: EnemyFSM.SetState(EnemyState.Controlled); break; case ActivationType.Enable: // Enable or disable AI break; case ActivationType.Disable: // Enable or disable AI break; case ActivationType.Use: break; case ActivationType.Destroy: EnemyFSM.SetState(EnemyState.Dead); break; case ActivationType.Open: break; case ActivationType.Close: break; } return true; } }