// ================= // ================= void Vengeance_Launch (edict_t *self) { edict_t *sphere; sphere = Sphere_Spawn (self, SPHERE_VENGEANCE); Own_Sphere (self, sphere); }
// ================= // ================= void Defender_Launch (edict_t *self) { edict_t *sphere; sphere = Sphere_Spawn (self, SPHERE_DEFENDER); Own_Sphere (self, sphere); }
// ================= // ================= void Hunter_Launch (edict_t *self) { edict_t *sphere; sphere = Sphere_Spawn (self, SPHERE_HUNTER); Own_Sphere (self, sphere); }
void doppleganger_die(edict_t *self, edict_t *inflictor /* unused */, edict_t *attacker, int damage, vec3_t point) { edict_t *sphere; float dist; vec3_t dir; if (!self || !attacker) { return; } if ((self->enemy) && (self->enemy != self->teammaster)) { VectorSubtract(self->enemy->s.origin, self->s.origin, dir); dist = VectorLength(dir); if (dist > 768) { sphere = Sphere_Spawn(self, SPHERE_HUNTER | SPHERE_DOPPLEGANGER); sphere->pain(sphere, attacker, 0, 0); } else { sphere = Sphere_Spawn(self, SPHERE_VENGEANCE | SPHERE_DOPPLEGANGER); sphere->pain(sphere, attacker, 0, 0); } } if (self->teamchain) { BecomeExplosion1(self->teamchain); } BecomeExplosion1(self); }