using System; using Framework.Services; using UnityEngine; using UnityEngine.AI; namespace Framework.Actors.Platformer { /// Stores moves an AI-controlled character can execute /// /// /// This component can be added to an actor in order to support both caching /// of moves and use of modified moves. /// /// public class AiMoveRepository : ScriptComponent { /// Returns and configures the move for an idling actor /// The move that should be used for idling actors public virtual Move GetIdleMove() { return null; // TODO: Create enemy idle move } /// /// Returns and configures a move that makes the actor walk to a specific point /// /// Target X coordinate the actor will walk to /// A move that makes the actor walk to the specific spot public virtual Move GetWalkToMove(float targetX) { return null; } /// /// Returns and configures a move that makes the actor fly to a specific point /// /// Position the actor will fly to /// A move that makes the actor fly to the specific spot public virtual Move GetFlyToMove(Vector3 position) { return null; } /// /// Returns and configures a move that makes the actor jump to a specific point /// /// Spot where the actor lands /// A move that makes the actor jump to the specified spot public virtual Move GetJumpMove(Vector3 landingSpot) { return null; } } } // namespace Framework.Actors.Platformer