]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/server/monsters/lib/defs.qh
eca1d73403d26fd11fbf2bd56d70c8af8ace1689
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / monsters / lib / defs.qh
1 .float sprite_height;
2
3 .void()         attack_melee;
4 .float()        attack_ranged;
5 .float()        checkattack;
6
7 entity(entity ent) FindTarget;
8
9 .float spawner_monstercount;
10
11 .float monster_respawned; // used to make sure we're not recounting respawned monster stats
12
13 float monsters_spawned;
14
15 const float MONSTERSKILL_NOTEASY = 256; // monster will not spawn on skill <= 2
16 const float MONSTERSKILL_NOTMEDIUM = 512; // monster will not spawn on skill 3
17 const float MONSTERSKILL_NOTHARD = 1024; // monster will not spawn on skill 4
18 const float MONSTERSKILL_NOTINSANE = 2048; // monster will not spawn on skill 5
19 const float MONSTERSKILL_NOTNIGHTMARE = 4096; // monster will not spawn on skill >= 6
20
21 const float MONSTERFLAG_NORESPAWN = 2;
22 const float MONSTERFLAG_MINIBOSS = 64;  // monster spawns as mini-boss (also has a chance of naturally becoming one)
23 const float MONSTERFLAG_NOWANDER = 128; // disable wandering around (currently unused)
24 const float MONSTERFLAG_APPEAR = 256; // delay spawn until triggered
25 const float MONSTERFLAG_GIANT = 512; // experimental giant monsters feature
26 const float MONSTERFLAG_SPAWNED = 1024; // flag for spawned monsters
27
28 .void() monster_spawnfunc;
29 .void() monster_die;
30 .void() monster_delayedattack;
31
32 .float monster_moveflags; // checks where to move when not attacking
33 .float monster_movestate; // used to tell what the monster is currently doing
34 const float MONSTER_MOVE_OWNER = 1; // monster will move to owner if in range, or stand still
35 const float MONSTER_MOVE_WANDER = 2; // monster will ignore owner & wander around
36 const float MONSTER_MOVE_SPAWNLOC = 3; // monster will move to its spawn location when not attacking
37 const float MONSTER_MOVE_NOMOVE = 4; // monster simply stands still
38 const float MONSTER_MOVE_ENEMY = 5; // used only as a movestate
39
40 float enemy_range () { return vlen(self.enemy.origin - self.origin); }
41
42 float MONSTER_STATE_ATTACK_LEAP = 1; // the start of something big?