// ================
// TASKS!
// ================

pushtask(number pos, string name, int/pointer targer)
  -- Pushes a task onto the queue.
    -- pos    : Place task at the beginning if 0, or end if 1.
    -- name   : Function name, this is to be defined in the lua file.
    -- target : int or pointer containing target info (for example, could be
                pilot id or a Vec2).
    -- return nil.

poptask()
  -- Pops the current task from the list.
    -- return nil

taskname()
  -- Returns the current task name.
    -- return string name of the current task.

// ================
// CONSULT!
// ================

gettarget()
  -- Gets the current target.
    -- return pointer to the target.

gettargerid()
  -- Gets the current targets id.
    -- return number of the current target id.

getdist(Vec2 vect)
  -- Gets the distance from the position of the Vec2 vect.
    -- Vect point to calculate the distance from.
    -- return nil.

getpos(number/pilot)
  -- Get the pilots position of the current pilots position if no pilot
     is specified.
    -- pilot ID or poiunter to the pilot to get the position of, if no params are called
       it uses the current pilot as target.
    -- return Vec2

minbrakedist()
  -- Returns the minimum required braking distance assuming all goes well.
    -- return number distance needed to brake.

// ================
// BOOLEAN!
// ================

ismaxval()
  -- Check if velocity is maximum.
    -- return true if velocity is max, false otherwise.

isstopped()
  -- Check if we are stopped.
    -- return true if stopped, false otherwise.

isenemy(Pilot pilot)
  -- Check if p is an enemy of current pilot.
    -- p - Pilot to check if enemy.
    -- return true if p is enemy.

isally(Pilot p)
  -- Check if p is an ally of current pilot.
    -- p - Pilot to check if ally.
    -- return true if p is ally.

// ================
// MOVEMENT!
// ================

accel(number mod)
  -- Accelerates the pilot.
    -- mod float that represents acceleration ratio between 0(stopped) and 1(max accel).
    -- return nil.

turn(number mod)
  -- Turns the pilot.
    -- mod float that represents the turning ratio between -1(max right) and 1(max left).
    -- return nil.

face(number/Vec2 target, number invert)
  -- Turn to face the current target.
    -- target pilot ID or Vec2 to face.
    -- invert face away if 1
    -- return number offset from target in grad

// ================
// COMBAT!
// ================

shoot([number weapon])
  -- Make the pilot shoot weapons.
    -- weapon to shoot, 1 if primary, 2 if secondary, 3 if both. Defaults to 1.
    -- return nil.

getenemy()
  -- return the id of the nearest enemy.


// ================
// MISC!
// ================

createvect(number x, number y)
  -- Create a vector from cartesian coords.
    -- x coord of the vector.
    -- y coord of the vector.
    -- return pointer to the Vec2

say(string message)
  -- Make the pilot say something to the player.
    -- message - string to output.
    -- return nil

rng(number low, number high)
  -- Return a random number between low and high.
    -- low - minimum to return.
    -- high - maximum to return
    -- return random number between low and high.