156 gi.sound(
self, CHAN_AUTO,
sound_hit, 1, ATTN_NONE, 0);
409 VectorCopy(self->enemy->s.origin, vec);
410 vec[2] +=
self->enemy->viewheight;
411 VectorSubtract(vec, start, dir);
482 VectorCopy(self->enemy->s.origin, self->pos1);
483 self->pos1[2] +=
self->enemy->viewheight;
497 VectorSubtract(self->pos1, start, dir);
512 flash_number = MZ2_MAKRON_BLASTER_1 + (
self->s.frame -
FRAME_attak405);
518 VectorCopy(self->enemy->s.origin, vec);
519 vec[2] +=
self->enemy->viewheight;
520 VectorSubtract(vec, start, vec);
527 dir[1] =
self->s.angles[1] - 10 * (
self->s.frame -
FRAME_attak413);
529 dir[1] =
self->s.angles[1] + 10 * (
self->s.frame -
FRAME_attak421);
541 if (self->health < (self->max_health / 2))
544 if (
level.
time < self->pain_debounce_time)
552 self->pain_debounce_time =
level.
time + 3;
553 if (
skill->value == 3)
560 }
else if (damage <= 110) {
605 if (++self->s.frame < 365)
616 ent->solid = SOLID_NOT;
617 VectorSet(ent->mins, -8, -8, 0);
618 VectorSet(ent->maxs, 8, 8, 8);
620 ent->s.modelindex =
gi.modelindex(
"models/monsters/boss3/rider/tris.md2");
623 ent->s.sound =
gi.soundindex(
"makron/spine.wav");
634 VectorSet(self->mins, -60, -60, 0);
635 VectorSet(self->maxs, 60, 60, 72);
637 self->svflags |= SVF_DEADMONSTER;
643 void makron_die(edict_t *
self, edict_t *inflictor, edict_t *attacker,
int damage, vec3_t point)
651 if (self->health <= self->gib_health) {
652 gi.sound(
self, CHAN_VOICE,
gi.soundindex(
"misc/udeath.wav"), 1, ATTN_NORM, 0);
653 for (n = 0; n < 1 ; n++)
655 for (n = 0; n < 4; n++)
671 VectorCopy(self->s.origin, tempent->s.origin);
672 VectorCopy(self->s.angles, tempent->s.angles);
673 tempent->s.origin[1] -= 84;
689 if (self->enemy->health > 0) {
691 VectorCopy(self->s.origin, spot1);
692 spot1[2] +=
self->viewheight;
693 VectorCopy(self->enemy->s.origin, spot2);
694 spot2[2] +=
self->enemy->viewheight;
696 tr =
gi.trace(spot1, NULL, NULL, spot2,
self, CONTENTS_SOLID | CONTENTS_MONSTER | CONTENTS_SLIME | CONTENTS_LAVA);
699 if (tr.ent != self->enemy)
704 VectorSubtract(self->enemy->s.origin, self->s.origin, temp);
712 if (self->monsterinfo.melee)
713 self->monsterinfo.attack_state =
AS_MELEE;
720 if (!self->monsterinfo.attack)
723 if (
level.
time < self->monsterinfo.attack_finished)
747 if (self->flags &
FL_FLY) {
779 gi.modelindex(
"models/monsters/boss3/rider/tris.md2");
794 self->solid = SOLID_BBOX;
795 self->s.modelindex =
gi.modelindex(
"models/monsters/boss3/rider/tris.md2");
796 VectorSet(self->mins, -30, -30, 0);
797 VectorSet(self->maxs, 30, 30, 90);
800 self->gib_health = -2000;
808 self->monsterinfo.dodge = NULL;
810 self->monsterinfo.melee = NULL;
842 VectorSubtract(player->s.origin, self->s.origin, vec);
843 self->s.angles[YAW] =
vectoyaw(vec);
846 self->velocity[2] = 200;
847 self->groundentity = NULL;
864 ent->target =
self->target;
865 VectorCopy(self->s.origin, ent->s.origin);