using System.Collections.Generic; using System.Linq; using Cirno.Scripts.Resources; using Cirno.Scripts.Resources.Loot; using Godot; namespace Cirno.Scripts.Components.FSM.Enemy._3D; public partial class EnemyStorage3D : Node { [Export] public EnemyProxy3D Root { get; private set; } public Node3D RootAsNode => Root; public EnemyResource EnemyData => Root.EnemyResource; public Vector3 HomePosition { get; set; } public Vector2 MovementDirection { get; set; } public Vector2 FacingDirection { get; set; } public Vector2 AimingDirection { get; set; } public Vector3 KnockbackVelocity { get; set; } = Vector3.Zero; public float MovementSpeed => Root.EnemyResource.MovementSpeed; public IEnumerable LootDrops => Root.OverrideLoot ? Root.ExtraLoot : Root.EnemyResource.LootDrops.Concat(Root.ExtraLoot); public AiState AiState { get; set; } }