LI2 Roguelite
Classes | Macros | Typedefs | Functions
monster.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  monster
 Structure of a monster. More...
 

Macros

#define NUMBER_OF_MONSTERS   5
 
#define PATHFINDING_RANDOM   0
 
#define PATHFINDING_SEARCHING   1
 
#define PATHFINDING_TOWARDS_PLAYER   2
 
#define PATHFINDING_AWAY_FROM_PLAYER   3
 
#define PATHFINDING_RECRUITING   4
 
#define RAT_HEALTH   20
 
#define RAT_ATTACK   3
 
#define RAT_DEFENSE   0
 
#define RAT_SYMBOL   'r'
 
#define RAT_COLOR   COLOR_GREEN
 
#define RAT_GOLD_MIN   1
 
#define RAT_GOLD_MAX   2
 
#define RAT_NOISE   "squeaks and sniffles"
 
#define GOBLIN_HEALTH   30
 
#define GOBLIN_ATTACK   5
 
#define GOBLIN_DEFENSE   10
 
#define GOBLIN_SYMBOL   'g'
 
#define GOBLIN_COLOR   COLOR_MAGENTA
 
#define GOBLIN_GOLD_MIN   1
 
#define GOBLIN_GOLD_MAX   3
 
#define GOBLIN_NOISE   "robbing noises"
 
#define ORC_HEALTH   40
 
#define ORC_ATTACK   8
 
#define ORC_DEFENSE   20
 
#define ORC_SYMBOL   'o'
 
#define ORC_COLOR   COLOR_RED
 
#define ORC_GOLD_MIN   2
 
#define ORC_GOLD_MAX   4
 
#define ORC_NOISE   "grunts and growls"
 
#define TROLL_HEALTH   50
 
#define TROLL_ATTACK   10
 
#define TROLL_DEFENSE   30
 
#define TROLL_SYMBOL   't'
 
#define TROLL_COLOR   COLOR_YELLOW
 
#define TROLL_GOLD_MIN   3
 
#define TROLL_GOLD_MAX   4
 
#define TROLL_NOISE   "laughs and grunts"
 
#define DRAGON_HEALTH   60
 
#define DRAGON_ATTACK   20
 
#define DRAGON_DEFENSE   50
 
#define DRAGON_SYMBOL   'd'
 
#define DRAGON_COLOR   COLOR_BLUE
 
#define DRAGON_GOLD_MIN   4
 
#define DRAGON_GOLD_MAX   5
 
#define DRAGON_NOISE   "roars and growls"
 

Typedefs

typedef struct state State
 
typedef struct map Map
 
typedef struct monster Monster
 Structure of a monster. More...
 

Functions

MonsterinitMonster (int x, int y, int health, int attack, int defense, char symbol, char *name, int color, int pathfinding, int gold, const char *noise, int index)
 Initialize a new monster. More...
 
void moveMonster (State *st, Monster *monster, int x, int y)
 Move the monster to the given coordinates. More...
 
void drawMonsters (State *st)
 Draw all the monsters on the map. More...
 
void freeMonster (void *p)
 Free the monster. More...
 
Monster ** generateMonsters (Map *map)
 Generate monsters array randomly. More...
 
void moveMonsters (State *st, Monster **monsters, int nMonsters)
 Move all the monsters. More...
 

Macro Definition Documentation

◆ DRAGON_ATTACK

#define DRAGON_ATTACK   20

◆ DRAGON_COLOR

#define DRAGON_COLOR   COLOR_BLUE

◆ DRAGON_DEFENSE

#define DRAGON_DEFENSE   50

◆ DRAGON_GOLD_MAX

#define DRAGON_GOLD_MAX   5

◆ DRAGON_GOLD_MIN

#define DRAGON_GOLD_MIN   4

◆ DRAGON_HEALTH

#define DRAGON_HEALTH   60

◆ DRAGON_NOISE

#define DRAGON_NOISE   "roars and growls"

◆ DRAGON_SYMBOL

#define DRAGON_SYMBOL   'd'

◆ GOBLIN_ATTACK

#define GOBLIN_ATTACK   5

◆ GOBLIN_COLOR

#define GOBLIN_COLOR   COLOR_MAGENTA

◆ GOBLIN_DEFENSE

#define GOBLIN_DEFENSE   10

◆ GOBLIN_GOLD_MAX

#define GOBLIN_GOLD_MAX   3

◆ GOBLIN_GOLD_MIN

#define GOBLIN_GOLD_MIN   1

◆ GOBLIN_HEALTH

#define GOBLIN_HEALTH   30

◆ GOBLIN_NOISE

#define GOBLIN_NOISE   "robbing noises"

◆ GOBLIN_SYMBOL

#define GOBLIN_SYMBOL   'g'

◆ NUMBER_OF_MONSTERS

#define NUMBER_OF_MONSTERS   5

◆ ORC_ATTACK

#define ORC_ATTACK   8

◆ ORC_COLOR

#define ORC_COLOR   COLOR_RED

◆ ORC_DEFENSE

#define ORC_DEFENSE   20

◆ ORC_GOLD_MAX

#define ORC_GOLD_MAX   4

◆ ORC_GOLD_MIN

#define ORC_GOLD_MIN   2

◆ ORC_HEALTH

#define ORC_HEALTH   40

◆ ORC_NOISE

#define ORC_NOISE   "grunts and growls"

◆ ORC_SYMBOL

#define ORC_SYMBOL   'o'

◆ PATHFINDING_AWAY_FROM_PLAYER

#define PATHFINDING_AWAY_FROM_PLAYER   3

◆ PATHFINDING_RANDOM

#define PATHFINDING_RANDOM   0

◆ PATHFINDING_RECRUITING

#define PATHFINDING_RECRUITING   4

◆ PATHFINDING_SEARCHING

#define PATHFINDING_SEARCHING   1

◆ PATHFINDING_TOWARDS_PLAYER

#define PATHFINDING_TOWARDS_PLAYER   2

◆ RAT_ATTACK

#define RAT_ATTACK   3

◆ RAT_COLOR

#define RAT_COLOR   COLOR_GREEN

◆ RAT_DEFENSE

#define RAT_DEFENSE   0

◆ RAT_GOLD_MAX

#define RAT_GOLD_MAX   2

◆ RAT_GOLD_MIN

#define RAT_GOLD_MIN   1

◆ RAT_HEALTH

#define RAT_HEALTH   20

◆ RAT_NOISE

#define RAT_NOISE   "squeaks and sniffles"

◆ RAT_SYMBOL

#define RAT_SYMBOL   'r'

◆ TROLL_ATTACK

#define TROLL_ATTACK   10

◆ TROLL_COLOR

#define TROLL_COLOR   COLOR_YELLOW

◆ TROLL_DEFENSE

#define TROLL_DEFENSE   30

◆ TROLL_GOLD_MAX

#define TROLL_GOLD_MAX   4

◆ TROLL_GOLD_MIN

#define TROLL_GOLD_MIN   3

◆ TROLL_HEALTH

#define TROLL_HEALTH   50

◆ TROLL_NOISE

#define TROLL_NOISE   "laughs and grunts"

◆ TROLL_SYMBOL

#define TROLL_SYMBOL   't'

Typedef Documentation

◆ Map

typedef struct map Map

◆ Monster

typedef struct monster Monster

Structure of a monster.

Contains the monster's position, attributes, name, symbol and index.

Parameters
xMonster x coordinate
yMonster y coordinate
healthMonster current hit points
max_healthMonster maximum hit points
attackMonster attack points
defenseMonster defense points
is_aliveIs the Monster is alive?
symbolMonster symbol
nameMonster name
colorThe current color of the monster is affected by bombs
default_colorThe default color of the monster
pathfindingpathfinding type of the Monster
goldMonster gold value when killed
noiseMonster noise
indexMonster index in the monsters array also stored in the cell (used as a pointer)

◆ State

typedef struct state State

Function Documentation

◆ drawMonsters()

void drawMonsters ( State st)

Draw all the monsters on the map.

Parameters
stThe game state

◆ freeMonster()

void freeMonster ( void *  p)

Free the monster.

Parameters
pa pointer to the Monster to free
Returns
void

◆ generateMonsters()

Monster** generateMonsters ( Map map)

Generate monsters array randomly.

Parameters
mapThe game map
Returns
Monster** The monsters array with NUMBER_OF_MONSTERS monsters

◆ initMonster()

Monster* initMonster ( int  x,
int  y,
int  health,
int  attack,
int  defense,
char  symbol,
char *  name,
int  color,
int  pathfinding,
int  gold,
const char *  noise,
int  index 
)

Initialize a new monster.

Parameters
xMonster x coordinate
yMonster y coordinate
healthMonster health points
attackMonster attack points
defenseMonster defense points
symbolMonster symbol
nameMonster name
colorMonster color
pathfindingMonster pathfinding type
goldMonster gold value when killed
noiseMonster noise
indexMonster index in the monsters array also stored in the cell (used as a pointer)
Returns
Monster*

◆ moveMonster()

void moveMonster ( State st,
Monster monster,
int  x,
int  y 
)

Move the monster to the given coordinates.

Update the monster's coordinates and the cell's monster_index

Parameters
stThe game state
monsterThe monster to move
xX coordinates to move the monster to
yY coordinates to move the monster to

◆ moveMonsters()

void moveMonsters ( State st,
Monster **  monsters,
int  nMonsters 
)

Move all the monsters.

Monster movements vary depending on the monster pathfinding type and the map obstacles.

Parameters
stThe game state
monstersThe monsters array
nMonstersThe number of monsters
Returns
void