From f76ce1d64beda7e9a5d326e8410cdecc2e7e0776 Mon Sep 17 00:00:00 2001 From: BjossiAlfreds Date: Thu, 26 Sep 2019 12:23:57 +0000 Subject: [PATCH 1/2] Fixed medics unable to heal makrons --- src/g_spawn.c | 2 ++ src/monster/boss3/boss32.c | 17 +++++++++++------ 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/g_spawn.c b/src/g_spawn.c index a16e2ab..eb75b3c 100644 --- a/src/g_spawn.c +++ b/src/g_spawn.c @@ -127,6 +127,7 @@ void SP_monster_mutant(edict_t *self); void SP_monster_supertank(edict_t *self); void SP_monster_boss2(edict_t *self); void SP_monster_jorg(edict_t *self); +void SP_monster_makron(edict_t *self); void SP_monster_boss3_stand(edict_t *self); void SP_monster_commander_body(edict_t *self); @@ -284,6 +285,7 @@ spawn_t spawns[] = { {"monster_supertank", SP_monster_supertank}, {"monster_boss2", SP_monster_boss2}, {"monster_boss3_stand", SP_monster_boss3_stand}, + {"monster_makron", SP_monster_makron}, {"monster_jorg", SP_monster_jorg}, {"monster_commander_body", SP_monster_commander_body}, diff --git a/src/monster/boss3/boss32.c b/src/monster/boss3/boss32.c index a6961ee..abbd120 100644 --- a/src/monster/boss3/boss32.c +++ b/src/monster/boss3/boss32.c @@ -799,15 +799,18 @@ makron_torso_think(edict_t *self) return; } - if (++self->s.frame < 365) + if (self->owner && self->owner->inuse && self->owner->deadflag != DEAD_DEAD) { - self->nextthink = level.time + FRAMETIME; + G_FreeEdict(self); + return; } - else + + if (++self->s.frame >= FRAME_death320) { - self->s.frame = 346; - self->nextthink = level.time + FRAMETIME; + self->s.frame = FRAME_death301; } + + self->nextthink = level.time + FRAMETIME; } void @@ -822,7 +825,7 @@ makron_torso(edict_t *ent) ent->solid = SOLID_NOT; VectorSet(ent->mins, -8, -8, 0); VectorSet(ent->maxs, 8, 8, 8); - ent->s.frame = 346; + ent->s.frame = FRAME_death301; ent->s.modelindex = gi.modelindex("models/monsters/boss3/rider/tris.md2"); ent->think = makron_torso_think; ent->nextthink = level.time + 2 * FRAMETIME; @@ -895,6 +898,7 @@ makron_die(edict_t *self, edict_t *inflictor /* update */, edict_t *attacker /* VectorCopy(self->s.origin, tempent->s.origin); VectorCopy(self->s.angles, tempent->s.angles); tempent->s.origin[1] -= 84; + tempent->owner = self; makron_torso(tempent); self->monsterinfo.currentmove = &makron_move_death2; @@ -1126,6 +1130,7 @@ MakronToss(edict_t *self) } ent = G_Spawn(); + ent->classname = "monster_makron"; ent->nextthink = level.time + 0.8; ent->think = MakronSpawn; ent->target = self->target; From f7e9b2c150a24c665135383d1223f158aaf25c90 Mon Sep 17 00:00:00 2001 From: BjossiAlfreds Date: Thu, 26 Sep 2019 12:42:57 +0000 Subject: [PATCH 2/2] Makron torso flashes red like the legs --- src/monster/boss3/boss32.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/monster/boss3/boss32.c b/src/monster/boss3/boss32.c index abbd120..38214c9 100644 --- a/src/monster/boss3/boss32.c +++ b/src/monster/boss3/boss32.c @@ -805,6 +805,17 @@ makron_torso_think(edict_t *self) return; } + if (self->owner && (self->owner->monsterinfo.aiflags & AI_RESURRECTING)) + { + self->s.effects |= EF_COLOR_SHELL; + self->s.renderfx |= RF_SHELL_RED; + } + else + { + self->s.effects &= ~EF_COLOR_SHELL; + self->s.renderfx &= ~RF_SHELL_RED; + } + if (++self->s.frame >= FRAME_death320) { self->s.frame = FRAME_death301;