-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathkots_monster.h
113 lines (102 loc) · 3.45 KB
/
kots_monster.h
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
#ifndef KOTS_MONSTER_H
#define KOTS_MONSTER_H
#include "kots_character.h"
//monster definitions
#define KOTS_MONSTERS_ONLY_SPAWN_INTERVAL 5.0
#define KOTS_MONSTERS_MIXED_SPAWN_INTERVAL 15.0
#define KOTS_MONSTERS_MAX 25
#define KOTS_MONSTERS_ONLY_MAX 10
#define KOTS_MONSTERS_MIXED_MAX 4
#define KOTS_MONSTERS_PER_CLIENT 2
#define KOTS_MONSTERS_SPAWN_TRIES 5 /*Try spawning a monster # times before giving up*/
#define KOTS_MONSTERS_SPAWN_LOC_TRIES 10 /*Try # locations before giving up*/
#define KOTS_MONSTERS_SPAWN_AFTERPK 45.0 /*Don't spawn a monster for this long after a player kill*/
#define KOTS_MONSTERS_VOTE_INTERVAL 15.0 /*Check for monster vote changes this often*/
//monster vote settings
#define KOTS_MONSTERS_OFF 1
#define KOTS_MONSTERS_MIXED 2
#define KOTS_MONSTERS_ONLY 3
int KOTS_MONSTER_VOTE;
int KOTS_MONSTER_NEXT_SPAWN;
int KOTS_MONSTER_NEXT_VOTE_INTERVAL;
typedef struct kots_monster_s
{
char *classname;
char *name;
float health;
float armor;
float damage;
int bonus_exp;
void (*spawn)(edict_t *self);
int frequency;
qboolean enabled;
qboolean boss;
} kots_monster_t;
typedef struct monster_build_s
{
float dexterity;
float strength;
float karma;
float wisdom;
float technical;
float spirit;
float rage;
float vitarmor;
float vithealth;
float munition;
} monster_build_t;
//define quake 2 methods referenced
void SP_monster_jorg(edict_t *self);
void SP_monster_boss2(edict_t *self);
void SP_monster_berserk(edict_t *self);
void SP_monster_soldier_ss(edict_t *self);
void SP_monster_soldier(edict_t *self);
void SP_monster_brain(edict_t *self);
void SP_monster_chick(edict_t *self);
void SP_monster_flipper(edict_t *self);
void SP_monster_floater(edict_t *self);
void SP_monster_flyer(edict_t *self);
void SP_monster_gladiator(edict_t *self);
void SP_monster_hover(edict_t *self);
void SP_monster_infantry(edict_t *self);
void SP_misc_insane(edict_t *self);
void SP_monster_medic(edict_t *self);
void SP_monster_mutant(edict_t *self);
void SP_monster_parasite(edict_t *self);
void SP_monster_tank(edict_t *self);
//void SP_monster_makron(edict_t *self);
void SP_monster_gunner(edict_t *self);
void SP_monster_supertank(edict_t *self);
void SP_monster_soldier_light(edict_t *self);
//define kots methods
qboolean Kots_MonstersEnabled();
void Kots_MonsterRecreateAll();
void Kots_MonsterStart(edict_t *ent);
void Kots_MonsterCreate(edict_t *ent);
kots_monster_t *Kots_MonsterGetBonus(edict_t *ent);
void Kots_MonsterAddBonuses(edict_t *ent);
void Kots_MonsterAddDamageBonus(edict_t *ent, int *damage);
void Kots_MonsterCreateBuild(edict_t *ent);
void Kots_MonsterDead(edict_t *old);
kots_monster_t *Kots_MonsterGetRandom();
void Kots_MonsterKillAll();
int Kots_MonsterGetClientsLoggedIn();
void Kots_MonsterCheckSpawn();
qboolean Kots_MonsterSelectSpawn(edict_t *ent);
qboolean Kots_MonsterDropToFloor(edict_t *ent);
edict_t *Kots_MonsterFindRandomEdict();
void Kots_MonsterInitSpawnPoints();
kots_monster_t *Kots_MonsterFind(char *name);
qboolean Kots_MonsterSpawnNew(kots_monster_t *monster);
void Kots_MonsterWriteStats(edict_t *ent);
qboolean Kots_MonsterFindGoal(edict_t *ent);
qboolean Kots_MonsterCanWalkTo(edict_t *self, edict_t *targ);
void Kots_MonsterVoteCommand(edict_t *ent);
void Kots_MonsterVote (edict_t *ent, int vote);
void Kots_MonsterCheckVote();
float Kots_MonstersRangeFromSpot(edict_t *spot);
void Kots_MonstersInit();
void Kots_MonstersFree();
void Kots_MonstersClear();
void Kots_MonsterPrintVoteInfo(edict_t *ent);
#endif