void flyer_kamikaze_explode(edict_t *self) { vec3_t dir; if (!self) { return; } if (self->monsterinfo.commander && self->monsterinfo.commander->inuse && !strcmp(self->monsterinfo.commander->classname, "monster_carrier")) { self->monsterinfo.commander->monsterinfo.monster_slots++; } if (self->enemy) { VectorSubtract(self->enemy->s.origin, self->s.origin, dir); T_Damage(self->enemy, self, self, dir, self->s.origin, vec3_origin, (int)50, (int)50, DAMAGE_RADIUS, MOD_UNKNOWN); } flyer_die(self, NULL, NULL, 0, dir); }
void flyer_kamikaze_explode (edict_t *self) { vec3_t dir; if (self->monsterinfo.commander && self->monsterinfo.commander->inuse && !strcmp(self->monsterinfo.commander->classname, "monster_carrier")) { self->monsterinfo.commander->monsterinfo.monster_slots++; // if ((g_showlogic) && (g_showlogic->value)) // gi.dprintf ("suicide hit!. %d slots left\n", self->monsterinfo.commander->monsterinfo.monster_slots); } // gi.dprintf ("boom!\n"); // T_RadiusDamage(self, self->owner, 125, self, self->dmg_radius, MOD_NUKE); // T_RadiusDamage(self, self->owner, 125, self, 150, MOD_NUKE); if (self->enemy) { VectorSubtract (self->enemy->s.origin, self->s.origin, dir); //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) T_Damage (self->enemy, self, self, dir, self->s.origin, vec3_origin, (int)50, (int)50, DAMAGE_RADIUS, MOD_UNKNOWN); } flyer_die (self, NULL, NULL, 0, dir); /* VectorMA (self->s.origin, -0.02, self->velocity, origin); gi.WriteByte (svc_temp_entity); gi.WriteByte (TE_ROCKET_EXPLOSION); gi.WritePosition (origin); gi.multicast (self->s.origin, MULTICAST_PHS); G_FreeEdict (self); */ }
//mxd. ROGUE - kamikaze stuff void flyer_kamikaze_explode(edict_t *self) { vec3_t dir; if (self->enemy) { VectorSubtract(self->enemy->s.origin, self->s.origin, dir); T_RadiusDamage(self, self, 45 + 5 * skill->value, NULL, 128 + 16 * skill->value, MOD_EXPLOSIVE, -2.0 / (4.0 + skill->value)); //mxd. We can explode when stuck, so no direct damage to the target } flyer_die(self, NULL, NULL, 0, dir); }