Beispiel #1
0
void
widow_ready_spawn(edict_t *self)
{
	vec3_t f, r, u, offset, startpoint, spawnpoint;
	int i;

	if (!self)
	{
		return;
	}

	WidowBlaster(self);
	AngleVectors(self->s.angles, f, r, u);

	for (i = 0; i < 2; i++)
	{
		VectorCopy(spawnpoints[i], offset);
		G_ProjectSource2(self->s.origin, offset, f, r, u, startpoint);

		if (FindSpawnPoint(startpoint, stalker_mins, stalker_maxs, spawnpoint,
					64))
		{
			SpawnGrow_Spawn(spawnpoint, 1);
		}
	}
}
Beispiel #2
0
void
widow_reattack_blaster(edict_t *self)
{
	if (!self)
	{
		return;
	}

	WidowBlaster(self);

	if ((self->monsterinfo.currentmove == &widow_move_attack_post_blaster_l) ||
		(self->monsterinfo.currentmove == &widow_move_attack_post_blaster_r))
	{
		return;
	}

	/* if we're not done with the attack, don't leave the sequence */
	if (self->monsterinfo.pausetime >= level.time)
	{
		return;
	}

	self->monsterinfo.aiflags &= ~AI_MANUAL_STEERING;
	self->monsterinfo.currentmove = &widow_move_attack_post_blaster;
}
Beispiel #3
0
void widow_reattack_blaster (edict_t *self)
{
	WidowBlaster(self);

//	if ((g_showlogic) && (g_showlogic->value))
//	{
//		if (self->monsterinfo.currentmove == &widow_move_attack_post_blaster_l)
//			gi.dprintf ("pulling left!\n");
//		if (self->monsterinfo.currentmove == &widow_move_attack_post_blaster_r)
//			gi.dprintf ("pulling right!\n");
//	}

//	self->monsterinfo.currentmove = &widow_move_attack_blaster;
//		self->monsterinfo.aiflags |= AI_MANUAL_STEERING;
//	return;
	// if WidowBlaster bailed us out of the frames, just bail
	if ((self->monsterinfo.currentmove == &widow_move_attack_post_blaster_l) ||
		(self->monsterinfo.currentmove == &widow_move_attack_post_blaster_r))
		return;

	// if we're not done with the attack, don't leave the sequence
	if (self->monsterinfo.pausetime >= level.time)
		return;

	self->monsterinfo.aiflags &= ~AI_MANUAL_STEERING;

	self->monsterinfo.currentmove = &widow_move_attack_post_blaster;
}
Beispiel #4
0
void
widow_stepshoot(edict_t *self)
{
	if (!self)
	{
		return;
	}

	gi.sound(self, CHAN_BODY, gi.soundindex("widow/bwstep2.wav"), 1, ATTN_NORM, 0);
	WidowBlaster(self);
}
Beispiel #5
0
void
widow_spawn_check(edict_t *self)
{
	if (!self)
	{
		return;
	}

	WidowBlaster(self);
	WidowSpawn(self);
}
Beispiel #6
0
void widow_spawn_check (edict_t *self)
{
	WidowBlaster(self);
	WidowSpawn (self);
}