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