Go to the documentation of this file.
260 if (
fire_hit (
self, aim, (10 + (rand() %5)), 100))
271 if (
fire_hit (
self, aim, (10 + (rand() %5)), 100))
279 if (!self->enemy || !self->enemy->inuse || self->enemy->health <= 0)
310 if (self->health <= 0)
326 VectorMA (self->s.origin, self->maxs[0], normal, point);
327 damage = 40 + 10 *
random();
334 if (self->groundentity)
351 self->s.origin[2] += 1;
353 self->velocity[2] = 250;
354 self->groundentity =
NULL;
356 self->monsterinfo.attack_finished =
level.time + 3;
362 if (self->groundentity)
365 self->monsterinfo.attack_finished = 0;
370 if (
level.time > self->monsterinfo.attack_finished)
411 if (self->absmin[2] > (self->enemy->absmin[2] + 0.75 * self->enemy->size[2]))
414 if (self->absmax[2] < (self->enemy->absmin[2] + 0.25 * self->enemy->size[2]))
417 v[0] =
self->s.origin[0] -
self->enemy->s.origin[0];
418 v[1] =
self->s.origin[1] -
self->enemy->s.origin[1];
435 if (!self->enemy || self->enemy->health <= 0)
440 self->monsterinfo.attack_state =
AS_MELEE;
500 if (self->health < (self->max_health / 2))
503 if (
level.time < self->pain_debounce_time)
506 self->pain_debounce_time =
level.time + 3;
578 if (self->health <= self->gib_health)
581 for (n= 0; n < 2; n++)
583 for (n= 0; n < 4; n++)
635 self->s.modelindex =
gi.
modelindex (
"models/monsters/mutant/tris.md2");
640 self->gib_health = -120;
649 self->monsterinfo.dodge =
NULL;
void mutant_check_landing(edict_t *self)
void mutant_sight(edict_t *self, edict_t *other)
void ThrowGib(edict_t *self, char *gibname, int damage, int type)
void ai_charge(edict_t *self, float dist)
void mutant_run(edict_t *self)
mmove_t mutant_move_death2
void mutant_pain(edict_t *self, edict_t *other, float kick, int damage)
mmove_t mutant_move_start_walk
void mutant_hit_left(edict_t *self)
void mutant_jump(edict_t *self)
mframe_t mutant_frames_jump[]
void mutant_step(edict_t *self)
void VectorScale(vec3_t in, vec_t scale, vec3_t out)
mmove_t mutant_move_pain2
mmove_t mutant_move_pain3
qboolean mutant_check_melee(edict_t *self)
mframe_t mutant_frames_attack[]
mframe_t mutant_frames_run[]
void(* sound)(edict_t *ent, int channel, int soundindex, float volume, float attenuation, float timeofs)
void SP_monster_mutant(edict_t *self)
qboolean fire_hit(edict_t *self, vec3_t aim, int damage, int kick)
void mutant_search(edict_t *self)
mframe_t mutant_frames_stand[]
void T_Damage(edict_t *targ, edict_t *inflictor, edict_t *attacker, vec3_t dir, vec3_t point, vec3_t normal, int damage, int knockback, int dflags, int mod)
void walkmonster_start(edict_t *self)
void mutant_jump_touch(edict_t *self, edict_t *other, cplane_t *plane, csurface_t *surf)
void AngleVectors(vec3_t angles, vec3_t forward, vec3_t right, vec3_t up)
void mutant_jump_takeoff(edict_t *self)
mframe_t mutant_frames_pain3[]
mmove_t mutant_move_pain1
void G_FreeEdict(edict_t *e)
void mutant_melee(edict_t *self)
int(* soundindex)(char *name)
vec_t VectorLength(vec3_t v)
void mutant_idle(edict_t *self)
int(* modelindex)(char *name)
mmove_t mutant_move_death1
void ai_walk(edict_t *self, float dist)
qboolean M_CheckBottom(edict_t *ent)
vec_t VectorNormalize(vec3_t v)
void mutant_check_refire(edict_t *self)
void mutant_dead(edict_t *self)
void mutant_hit_right(edict_t *self)
mframe_t mutant_frames_start_walk[]
void mutant_walk(edict_t *self)
void mutant_walk_loop(edict_t *self)
void ai_move(edict_t *self, float dist)
mframe_t mutant_frames_idle[]
mframe_t mutant_frames_pain2[]
void ai_run(edict_t *self, float dist)
void VectorMA(vec3_t veca, float scale, vec3_t vecb, vec3_t vecc)
void M_FlyCheck(edict_t *self)
void mutant_stand(edict_t *self)
mframe_t mutant_frames_walk[]
void ThrowHead(edict_t *self, char *gibname, int damage, int type)
mframe_t mutant_frames_pain1[]
#define VectorSet(v, x, y, z)
qboolean mutant_checkattack(edict_t *self)
void(* linkentity)(edict_t *ent)
void mutant_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
mframe_t mutant_frames_death1[]
void mutant_swing(edict_t *self)
void ai_stand(edict_t *self, float dist)
mmove_t mutant_move_stand
void mutant_idle_loop(edict_t *self)
qboolean mutant_check_jump(edict_t *self)
mmove_t mutant_move_attack
mframe_t mutant_frames_death2[]