1 #ifdef REGISTER_MONSTER
3 /* MON_##id */ BRUISER,
4 /* function */ m_bruiser,
5 /* spawnflags */ MONSTER_SIZE_BROKEN | MON_FLAG_MELEE | MON_FLAG_MUTATORBLOCKED,
6 /* mins,maxs */ '-20 -20 -31', '20 20 53',
7 /* model */ "knight.mdl",
8 /* netname */ "bruiser",
9 /* fullname */ _("Bruiser")
12 #define BRUISER_SETTINGS(monster) \
13 MON_ADD_CVAR(monster, health) \
14 MON_ADD_CVAR(monster, attack_melee_damage) \
15 MON_ADD_CVAR(monster, speed_stop) \
16 MON_ADD_CVAR(monster, speed_run) \
17 MON_ADD_CVAR(monster, speed_walk)
20 BRUISER_SETTINGS(bruiser)
24 const float bruiser_anim_stand = 0;
25 const float bruiser_anim_run = 1;
26 const float bruiser_anim_runattack = 2;
27 const float bruiser_anim_pain1 = 3;
28 const float bruiser_anim_pain2 = 4;
29 const float bruiser_anim_attack = 5;
30 const float bruiser_anim_walk = 6;
31 const float bruiser_anim_kneel = 7;
32 const float bruiser_anim_standing = 8;
33 const float bruiser_anim_death1 = 9;
34 const float bruiser_anim_death2 = 10;
36 float bruiser_attack(float attack_type)
40 case MONSTER_ATTACK_MELEE:
42 float len = vlen(self.velocity);
44 return monster_melee(self.enemy, MON_CVAR(bruiser, attack_melee_damage), ((len < 50) ? bruiser_anim_attack : bruiser_anim_runattack), self.attack_range, 1.25, DEATH_MONSTER_BRUISER, FALSE);
46 case MONSTER_ATTACK_RANGED:
48 // no ranged attacks for bruiser
56 void spawnfunc_monster_bruiser()
58 self.classname = "monster_bruiser";
60 self.monster_spawnfunc = spawnfunc_monster_bruiser;
62 if(Monster_CheckAppearFlags(self))
65 if not(monster_initialize(MON_BRUISER, FALSE)) { remove(self); return; }
68 float m_bruiser(float req)
75 pet = findentity(pet, monster_owner, self);
76 float rspeed = MON_CVAR(bruiser, speed_run);
80 if(vlen(self.enemy.origin - pet.origin) < vlen(self.enemy.origin - self.origin))
83 monster_move(rspeed, MON_CVAR(bruiser, speed_walk), MON_CVAR(bruiser, speed_stop), bruiser_anim_run, bruiser_anim_walk, bruiser_anim_stand);
88 self.frame = ((random() > 0.5) ? bruiser_anim_death1 : bruiser_anim_death2);
93 if not(self.health) self.health = MON_CVAR(bruiser, health);
95 self.monster_loot = spawnfunc_item_armor_medium;
96 self.monster_attackfunc = bruiser_attack;
97 self.frame = bruiser_anim_stand;
103 precache_model ("models/monsters/knight.mdl");
108 MON_CONFIG_SETTINGS(BRUISER_SETTINGS(bruiser))
118 float m_bruiser(float req)
124 precache_model ("models/monsters/knight.mdl");
133 #endif // REGISTER_MONSTER