# AIBase Class Reference

Class that handles some basic functions. More...

`#include <ai_base.hpp>`

Inheritance diagram for AIBase:

## Static Public Member Functions
static const char * | GetClassName ()
static uint32 | Rand ()
| Get a random value.
static uint32 | RandItem (int unused_param)
| Get a random value.
static uint | RandRange (uint max)
| Get a random value in a range.
static uint | RandRangeItem (int unused_param, uint max)
| Get a random value in a range.
static bool | Chance (uint out, uint max)
| Returns approximatelly 'out' times true when called 'max' times.
static bool | ChanceItem (int unused_param, uint out, uint max)
| Returns approximatelly 'out' times true when called 'max' times.

## Detailed Description

Class that handles some basic functions.

Note:
  The random functions are not called Random and RandomRange, because RANDOM_DEBUG does some tricky stuff, which messes with those names.

  In MP we cannot use Random because that will cause desyncs (AIs are ran on the server only, not on all clients). This means that we use InteractiveRandom in MP. Rand() takes care of this for you.

Definition at line 19 of file ai_base.hpp.

## Member Function Documentation

uint32 AIBase::Rand | ( |  | ) | `[static]`

Get a random value.

Returns:
  A random value between 0 and MAX(uint32).

Definition at line 9 of file ai_base.cpp.

Referenced by Chance(), and RandItem().

uint32 AIBase::RandItem | ( | int | unused_param | ) | `[static]`

Get a random value.

Parameters:

  | unused_param | This param is not used, but is needed to work with lists.

Returns:
  A random value between 0 and MAX(uint32).

Definition at line 17 of file ai_base.cpp.

References Rand().

uint AIBase::RandRange | ( | uint | max | ) | `[static]`

Get a random value in a range.

Parameters:

  | max | The first number this function will never return (the maximum it returns is max - 1).

Returns:
  A random value between 0 .. max - 1.

Definition at line 22 of file ai_base.cpp.

Referenced by RandRangeItem().

uint32 AIBase::RandRangeItem | ( | int | unused_param,
|  | uint | max |
| ) |  |  | `[static]`

Get a random value in a range.

Parameters:

  | unused_param | This param is not used, but is needed to work with lists.
  | max | The first number this function will never return (the maximum it returns is max - 1).

Returns:
  A random value between 0 .. max - 1.

Definition at line 30 of file ai_base.cpp.

References RandRange().

bool AIBase::Chance | ( | uint | out,
|  | uint | max |
| ) |  |  | `[static]`

Returns approximatelly 'out' times true when called 'max' times.

After all, it is a random function.

Parameters:

  | out | How many times it should return true.
  | max | Out of this many times.

Returns:
  True if the chance worked out.

Definition at line 35 of file ai_base.cpp.

References Rand().

Referenced by ChanceItem().

bool AIBase::ChanceItem | ( | int | unused_param,
|  | uint | out,
|  | uint | max |
| ) |  |  | `[static]`

Returns approximatelly 'out' times true when called 'max' times.

After all, it is a random function.

Parameters:

  | unused_param | This param is not used, but is needed to work with lists.
  | out | How many times it should return true.
  | max | Out of this many times.

Returns:
  True if the chance worked out.

Definition at line 40 of file ai_base.cpp.

References Chance().

The documentation for this class was generated from the following files:

- src/ai/api/ai_base.hpp
- src/ai/api/ai_base.cpp