Quake II RTX doxygen
1.0 dev
|
|
Go to the documentation of this file.
426 if (
visible(
self, self->enemy))
438 if (self->health < (self->max_health / 2))
441 if (
level.
time < self->pain_debounce_time)
450 if (
skill->value >= 2)
454 self->pain_debounce_time =
level.
time + 3;
456 if (
skill->value == 3)
462 }
else if (damage <= 25) {
481 flash_number = MZ2_SUPERTANK_ROCKET_1;
483 flash_number = MZ2_SUPERTANK_ROCKET_2;
485 flash_number = MZ2_SUPERTANK_ROCKET_3;
490 VectorCopy(self->enemy->s.origin, vec);
491 vec[2] +=
self->enemy->viewheight;
492 VectorSubtract(vec, start, dir);
506 flash_number = MZ2_SUPERTANK_MACHINEGUN_1 + (
self->s.frame -
FRAME_attak1_1);
510 dir[1] =
self->s.angles[1];
517 VectorCopy(self->enemy->s.origin, vec);
518 VectorMA(vec, 0, self->enemy->velocity, vec);
519 vec[2] +=
self->enemy->viewheight;
520 VectorSubtract(vec, start,
forward);
534 VectorSubtract(self->enemy->s.origin, self->s.origin, vec);
535 range = VectorLength(vec);
560 VectorSet(self->mins, -60, -60, 0);
561 VectorSet(self->maxs, 60, 60, 72);
563 self->svflags |= SVF_DEADMONSTER;
575 VectorCopy(self->s.origin, org);
576 org[2] += 24 + (rand() & 15);
577 switch (self->count++) {
612 for (n = 0; n < 4; n++)
614 for (n = 0; n < 8; n++)
623 gi.WriteByte(TE_EXPLOSION1);
624 gi.WritePosition(org);
625 gi.multicast(self->s.origin, MULTICAST_PVS);
631 void supertank_die(edict_t *
self, edict_t *inflictor, edict_t *attacker,
int damage, vec3_t point)
664 self->solid = SOLID_BBOX;
665 self->s.modelindex =
gi.modelindex(
"models/monsters/boss1/tris.md2");
666 VectorSet(self->mins, -64, -64, 0);
667 VectorSet(self->maxs, 64, 64, 112);
670 self->gib_health = -500;
678 self->monsterinfo.dodge = NULL;
681 self->monsterinfo.melee = NULL;
682 self->monsterinfo.sight = NULL;
mmove_t supertank_move_stand
mframe_t supertank_frames_attack2[]
void G_ProjectSource(const vec3_t point, const vec3_t distance, const vec3_t forward, const vec3_t right, vec3_t result)
#define DEFAULT_BULLET_HSPREAD
void ThrowGib(edict_t *self, char *gibname, int damage, int type)
mframe_t supertank_frames_pain3[]
void ai_charge(edict_t *self, float dist)
mframe_t supertank_frames_turn_right[]
void supertank_dead(edict_t *self)
mmove_t supertank_move_attack1
mframe_t supertank_frames_forward[]
mframe_t supertank_frames_attack1[]
mframe_t supertank_frames_death1[]
void supertank_forward(edict_t *self)
mframe_t supertank_frames_turn_left[]
mmove_t supertank_move_attack4
mmove_t supertank_move_run
void walkmonster_start(edict_t *self)
qboolean visible(edict_t *self, edict_t *other)
mframe_t supertank_frames_pain2[]
void supertank_walk(edict_t *self)
#define DEFAULT_BULLET_VSPREAD
void G_FreeEdict(edict_t *e)
void supertank_stand(edict_t *self)
mmove_t supertank_move_forward
mframe_t supertank_frames_attack4[]
mmove_t supertank_move_attack2
mframe_t supertank_frames_stand[]
mmove_t supertank_move_end_attack1
void supertank_run(edict_t *self)
mframe_t supertank_frames_backward[]
void ai_walk(edict_t *self, float dist)
void AngleVectors(vec3_t angles, vec3_t forward, vec3_t right, vec3_t up)
mmove_t supertank_move_pain2
mmove_t supertank_move_backward
void monster_fire_bullet(edict_t *self, vec3_t start, vec3_t dir, int damage, int kick, int hspread, int vspread, int flashtype)
mmove_t supertank_move_turn_right
void monster_fire_rocket(edict_t *self, vec3_t start, vec3_t dir, int damage, int speed, int flashtype)
void SP_monster_supertank(edict_t *self)
mframe_t supertank_frames_end_attack1[]
void ai_move(edict_t *self, float dist)
void supertank_reattack1(edict_t *self)
mframe_t supertank_frames_pain1[]
void BossExplode(edict_t *self)
mmove_t supertank_move_attack3
mmove_t supertank_move_pain3
mframe_t supertank_frames_attack3[]
void TreadSound(edict_t *self)
mmove_t supertank_move_turn_left
void supertank_attack(edict_t *self)
void ai_run(edict_t *self, float dist)
const vec3_t monster_flash_offset[256]
void ThrowHead(edict_t *self, char *gibname, int damage, int type)
int range(edict_t *self, edict_t *other)
void supertankMachineGun(edict_t *self)
mmove_t supertank_move_death
void supertank_search(edict_t *self)
vec_t VectorNormalize(vec3_t v)
mframe_t supertank_frames_run[]
void supertank_pain(edict_t *self, edict_t *other, float kick, int damage)
void supertank_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
void ai_stand(edict_t *self, float dist)
void supertankRocket(edict_t *self)
mmove_t supertank_move_pain1