#nullable enable


namespace TagFighter.Effects.Steps
{
    using System.Collections.Generic;

    [StepType(StepTypeAttribute.GetterStep)]
    public class PathAreaGet : OutputStep<IAreaOfEffect>
    {
        [UnityEngine.SerializeField]
        SinglePort<double> _width = new() {
            DisplayName = "Width"
        };
        [UnityEngine.SerializeField]
        SinglePort<double> _length = new() {
            DisplayName = "Length"
        };

        public override IEnumerable<IPort> Inputs {
            get {
                yield return _width;
                yield return _length;
            }
        }
        public override string ToString() => "Path AOE";

        public override IAreaOfEffect Run(EffectInput blackBoard) => new PathArea() {
            Width = (float)(_width.Node != null ? _width.Node.Run(blackBoard) : default),
            Length = (float)(_length.Node != null ? _length.Node.Run(blackBoard) : default),
        };

        public override bool IsValid => true;
    }
}