﻿using UnityEngine;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

public enum AISteeringOutputType { Dynamic, Kinematic, Both };

public class AIBehaviour : MonoBehaviour
{
    //
    public AIController Controller = null;
    //
    public AI.Kinematic Kinematic { get { return Controller.Kinematic; } }
    //
    public float Weight = 1.0f;

    virtual public AI.DynamicSteeringOutput GetSteeringDynamic()
    {
        return new AI.DynamicSteeringOutput();
    }

    virtual public AI.KinematicSteeringOutput GetSteeringKinematic()
    {
        return new AI.KinematicSteeringOutput();
    }

    virtual public AISteeringOutputType GetSteeringType()
    {
        return AISteeringOutputType.Both;
    }
}

/// <summary>
/// AIBehaviour with built-in variables for target and source.
/// </summary>
public class TargetedAIBehaviour : AIBehaviour
{
    public Transform Target;

    public Transform Source;
}