Quake II RTX doxygen
1.0 dev
|
|
Go to the documentation of this file.
70 gi.sound(
self, CHAN_WEAPON,
sound_tap, 1, ATTN_IDLE, 0);
264 if (self->health < (self->max_health / 2))
267 if (
level.
time < self->pain_debounce_time)
270 self->pain_debounce_time =
level.
time + 3;
272 if (
skill->value == 3)
289 VectorSubtract(start, end, dir);
290 if (VectorLength(dir) > 256)
295 if (angles[0] < -180)
297 if (fabs(angles[0]) > 30)
305 vec3_t offset, start, f, r, end, dir;
310 VectorSet(offset, 24, 0, 6);
313 VectorCopy(self->enemy->s.origin, end);
315 end[2] =
self->enemy->s.origin[2] +
self->enemy->maxs[2] - 8;
317 end[2] =
self->enemy->s.origin[2] +
self->enemy->mins[2] + 8;
322 VectorCopy(self->enemy->s.origin, end);
324 tr =
gi.trace(start, NULL, NULL, end,
self, MASK_SHOT);
325 if (tr.ent != self->enemy)
333 gi.sound(
self, CHAN_WEAPON,
sound_suck, 1, ATTN_NORM, 0);
338 gi.WriteByte(TE_PARASITE_ATTACK);
340 gi.WritePosition(start);
341 gi.WritePosition(end);
342 gi.multicast(self->s.origin, MULTICAST_PVS);
344 VectorSubtract(start, end, dir);
371 mframe_t parasite_frames_break [] = {
431 VectorSet(self->mins, -16, -16, -24);
432 VectorSet(self->maxs, 16, 16, -8);
434 self->svflags |= SVF_DEADMONSTER;
450 void parasite_die(edict_t *
self, edict_t *inflictor, edict_t *attacker,
int damage, vec3_t point)
455 if (self->health <= self->gib_health) {
456 gi.sound(
self, CHAN_VOICE,
gi.soundindex(
"misc/udeath.wav"), 1, ATTN_NORM, 0);
457 for (n = 0; n < 2; n++)
459 for (n = 0; n < 4; n++)
470 gi.sound(
self, CHAN_VOICE,
sound_die, 1, ATTN_NORM, 0);
493 sound_die =
gi.soundindex(
"parasite/pardeth1.wav");
499 sound_tap =
gi.soundindex(
"parasite/paridle1.wav");
503 self->s.modelindex =
gi.modelindex(
"models/monsters/parasite/tris.md2");
504 VectorSet(self->mins, -16, -16, -24);
505 VectorSet(self->maxs, 16, 16, 24);
507 self->solid = SOLID_BBOX;
510 self->gib_health = -50;
void parasite_walk(edict_t *self)
mmove_t parasite_move_death
mmove_t parasite_move_fidget
mmove_t parasite_move_stop_walk
void G_ProjectSource(const vec3_t point, const vec3_t distance, const vec3_t forward, const vec3_t right, vec3_t result)
void parasite_scratch(edict_t *self)
void ThrowGib(edict_t *self, char *gibname, int damage, int type)
void ai_charge(edict_t *self, float dist)
void parasite_idle(edict_t *self)
mframe_t parasite_frames_stand[]
void parasite_run(edict_t *self)
mmove_t parasite_move_start_run
void parasite_search(edict_t *self)
mframe_t parasite_frames_start_run[]
mmove_t parasite_move_end_fidget
mmove_t parasite_move_stop_run
mframe_t parasite_frames_stop_run[]
void parasite_sight(edict_t *self, edict_t *other)
mframe_t parasite_frames_drain[]
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)
#define DAMAGE_NO_KNOCKBACK
void parasite_refidget(edict_t *self)
void parasite_reel_in(edict_t *self)
void vectoangles(vec3_t vec, vec3_t angles)
void G_FreeEdict(edict_t *e)
mmove_t parasite_move_drain
mmove_t parasite_move_walk
void parasite_launch(edict_t *self)
void parasite_drain_attack(edict_t *self)
mframe_t parasite_frames_end_fidget[]
mframe_t parasite_frames_walk[]
void parasite_attack(edict_t *self)
mmove_t parasite_move_stand
void ai_walk(edict_t *self, float dist)
void AngleVectors(vec3_t angles, vec3_t forward, vec3_t right, vec3_t up)
void parasite_stand(edict_t *self)
void parasite_start_walk(edict_t *self)
mframe_t parasite_frames_pain1[]
void parasite_end_fidget(edict_t *self)
static qboolean parasite_drain_attack_ok(vec3_t start, vec3_t end)
void ai_move(edict_t *self, float dist)
void parasite_tap(edict_t *self)
mframe_t parasite_frames_run[]
mmove_t parasite_move_start_fidget
mframe_t parasite_frames_stop_walk[]
void ai_run(edict_t *self, float dist)
mframe_t parasite_frames_death[]
mframe_t parasite_frames_start_fidget[]
void parasite_dead(edict_t *self)
mframe_t parasite_frames_fidget[]
void ThrowHead(edict_t *self, char *gibname, int damage, int type)
void parasite_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
mframe_t parasite_frames_start_walk[]
mmove_t parasite_move_pain1
mmove_t parasite_move_start_walk
mmove_t parasite_move_run
void parasite_start_run(edict_t *self)
void ai_stand(edict_t *self, float dist)
void SP_monster_parasite(edict_t *self)
void parasite_do_fidget(edict_t *self)
void parasite_pain(edict_t *self, edict_t *other, float kick, int damage)