aboutsummaryrefslogtreecommitdiff
path: root/src/entities/sergente.h
blob: f73a191f94ac1583f3e72cbff9ca31ed2a06b64d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include "gameCommon.h"
#include "entity.h"
#include "bullets.h"

#ifndef SERGENTE_H
#define SERGENTE_H

#define SERGENTE_TARGET_DIS_MIN 5
#define SERGENTE_TARGET_DIS_MAX 100
#define SERGENTE_NEXT_POINT_THRESHOLD 1.0
#define SERGENTE_COME_BACK_DIS 200.0
#define SERGENTE_COME_BACK_PERCENT 0.5
#define SERGENTE_ROTATION_SPEED 20.0

// Gun stuff.
#define SERGENTE_COOL_DOWN 0.5
#define SERGENTE_SHOT_COUNT 50
#define SERGENTE_SPREAD 0.1
#define SERGENTE_DAMAGE 0.001

typedef struct Sergente {
	EntityFlyToPointInfo flyToPoint;
	Vector3 target;
	double timeSinceLastShot;
	Bullet shots[SERGENTE_SHOT_COUNT];
} Sergente;

void initSergente(Entity * entity, Game * game);
void closeSergente(Entity * entity);
void updateSergente(Game * game, Entity * entity);
void drawSergente(Game * game, Entity * entity);

// Sets target to random.
void createSergenteTarget(Game * game, Entity * entity);

#endif