2 const vector BRUISER_MIN = '-20 -20 -31';
3 const vector BRUISER_MAX = '20 20 53';
6 string BRUISER_MODEL = "models/monsters/knight.mdl";
10 float autocvar_g_monster_bruiser;
11 float autocvar_g_monster_bruiser_health;
12 float autocvar_g_monster_bruiser_melee_damage;
13 float autocvar_g_monster_bruiser_speed_walk;
14 float autocvar_g_monster_bruiser_speed_run;
17 const float bruiser_anim_stand = 0;
18 const float bruiser_anim_run = 1;
19 const float bruiser_anim_runattack = 2;
20 const float bruiser_anim_pain1 = 3;
21 const float bruiser_anim_pain2 = 4;
22 const float bruiser_anim_attack = 5;
23 const float bruiser_anim_walk = 6;
24 const float bruiser_anim_kneel = 7;
25 const float bruiser_anim_standing = 8;
26 const float bruiser_anim_death1 = 9;
27 const float bruiser_anim_death2 = 10;
31 self.think = bruiser_think;
32 self.nextthink = time + self.ticrate;
34 monster_move(autocvar_g_monster_bruiser_speed_run, autocvar_g_monster_bruiser_speed_walk, 50, bruiser_anim_run, bruiser_anim_walk, bruiser_anim_stand);
37 float bruiser_attack(float attack_type)
41 case MONSTER_ATTACK_MELEE:
43 float len = vlen(self.velocity);
44 monsters_setframe((len < 50) ? bruiser_anim_attack : bruiser_anim_runattack);
45 self.attack_finished_single = time + 1.25;
47 monster_melee(self.enemy, autocvar_g_monster_bruiser_melee_damage, 0.3, DEATH_MONSTER_BRUISER, FALSE);
51 case MONSTER_ATTACK_RANGED:
59 Monster_CheckDropCvars ("bruiser");
61 self.think = monster_dead_think;
62 self.nextthink = time + self.ticrate;
63 self.ltime = time + 5;
64 monsters_setframe((random() > 0.5) ? bruiser_anim_death1 : bruiser_anim_death2);
66 monster_hook_death(); // for post-death mods
72 self.health = autocvar_g_monster_bruiser_health;
74 self.damageforcescale = 0.003;
75 self.classname = "monster_bruiser";
76 self.monster_attackfunc = bruiser_attack;
77 self.nextthink = time + random() * 0.5 + 0.1;
78 self.think = bruiser_think;
80 monsters_setframe(bruiser_anim_stand);
82 monster_setupsounds("bruiser");
84 monster_hook_spawn(); // for post-spawn mods
87 void spawnfunc_monster_bruiser ()
89 if not(autocvar_g_monster_bruiser) { remove(self); return; }
91 self.monster_spawnfunc = spawnfunc_monster_bruiser;
93 if(Monster_CheckAppearFlags(self))
98 if not (monster_initialize(
99 "Bruiser", MONSTER_BRUISER,
100 BRUISER_MIN, BRUISER_MAX,
102 bruiser_die, bruiser_spawn))