using Cirno.Scripts.Components.FSM.Enemy._3D; using Cirno.Scripts.Enums; using Cirno.Scripts.Utils; using Cirno.Scripts.Weapons; using Godot; namespace Cirno.Scripts.Components.FSM.Boss._3D; public partial class Shooting : EnemyStateBase3D { public override EnemyState StateId => EnemyState.Shooting; [Export] public EnemyStorage3D Storage { get; private set; } [Export] public GravityProvider GravityProvider { get; private set; } public override void EnterState() { base.EnterState(); // Enable damage receiver } public override void ExitState() { base.ExitState(); } public override void PhysicsProcessState(double delta) { base.PhysicsProcessState(delta); // Calculate gravity MainObject.Velocity = new Vector3(MainObject.Velocity.X, GravityProvider.CalculateGravityVelocity(MainObject.Velocity.Y, delta), MainObject.Velocity.Z); MainObject.MoveAndSlide(); } public override void ProcessState(double delta) { base.ProcessState(delta); } }