Ejemplo n.º 1
0
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);
}
Ejemplo n.º 2
0
Archivo: m_flyer.c Proyecto: ZwS/qudos
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);
*/
}
Ejemplo n.º 3
0
//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);
}