Пример #1
0
void monster_triggered_spawn (edict_t *self)
{
	self->s.origin[2] += 1;
	MonsterKillBox (self);

	self->solid = SOLID_BBOX;
	self->movetype = MOVETYPE_STEP;
	self->svflags &= ~SVF_NOCLIENT;
	self->air_finished = level.time + 12;
	gi.linkentity (self);

	monster_start_go (self);

	if (self->enemy && !(self->spawnflags & 1) && !(self->enemy->flags & FL_NOTARGET))
	{
		FoundTarget (self);
	}
	else
	{
		self->enemy = NULL;
	}

	// some sort of spawn effect
	// TODO good enough?
	self->s.event = EV_PLAYER_TELEPORT;
	MonsterPlayerKillBox(self);
}
Пример #2
0
void monster_triggered_spawn(edict_t *self)
{
    self->s.origin[2] += 1;
    KillBox(self);

    self->solid        = SOLID_BBOX;
    self->movetype     = MOVETYPE_STEP;
    self->svflags     &= ~SVF_NOCLIENT;
    self->air_finished = level.time + 12;
    gi.linkentity(self);

    monster_start_go(self);

    if (self->enemy && !(self->spawnflags & SF_MONSTER_SIGHT) && !(self->enemy->flags & FL_NOTARGET))
    {
        if (!(self->enemy->flags & FL_DISGUISED))
        {
            FoundTarget(self);
        }
        else
        {
            self->enemy = NULL;
        }
    }
    else
    {
        self->enemy = NULL;
    }
}
Пример #3
0
void walkmonster_start_go(edict_t *self)
{
    if (!(self->spawnflags & SF_MONSTER_TRIGGER_SPAWN) && (level.time < 1))
    {
        M_droptofloor(self);

        if (self->groundentity)
        {
            if (!M_walkmove(self, 0, 0))
            {
                gi.dprintf("%s in solid at %s\n", self->classname, vtos(self->s.origin));
            }
        }
    }

    if (!self->yaw_speed)
    {
        self->yaw_speed = 20;
    }
    self->viewheight = 25;

    monster_start_go(self);

    if (self->spawnflags & SF_MONSTER_TRIGGER_SPAWN)
    {
        monster_triggered_start(self);
    }
}
Пример #4
0
void swimmonster_start_go(edict_t *self){
	if(!self->yaw_speed)
		self->yaw_speed = 10;
	self->viewheight = 10;
	
	monster_start_go(self);
	
	if(self->spawnflags & 2)
		monster_triggered_start(self);
}
Пример #5
0
void swimmonster_start_go (edict_t *self)
{
	if (!self->yaw_speed)
		self->yaw_speed = 10;
	self->viewheight = 10;

	monster_start_go (self);

	if (self->spawnflags & SF_MONSTER_TRIGGER_SPAWN)
		monster_triggered_start (self);
}
Пример #6
0
void flymonster_start_go(edict_t *self){
	if(!M_walkmove(self, 0, 0))
		gi.dprintf("%s in solid at %s\n", self->classname, vtos(self->s.origin));
		
	if(!self->yaw_speed)
		self->yaw_speed = 10;
	self->viewheight = 25;
	
	monster_start_go(self);
	
	if(self->spawnflags & 2)
		monster_triggered_start(self);
}
Пример #7
0
void flymonster_start_go (edict_t *self)
{
	if (!M_walkmove (self, 0, 0))
		gi.dprintf ("%s in solid at %s\n", self->classname, vtos(self->s.origin));

	if (!self->yaw_speed)
		self->yaw_speed = 10;
	self->viewheight = 25;

	self->monsterinfo.flies = 0.0;

	monster_start_go (self);

	if (self->spawnflags & SF_MONSTER_TRIGGER_SPAWN)
		monster_triggered_start (self);
}
Пример #8
0
void walkmonster_start_go(edict_t *self){
	if(!(self->spawnflags & 2) && level.time < 1){
		M_droptofloor(self);
		
		if(self->groundentity)
			if(!M_walkmove(self, 0, 0))
				gi.dprintf("%s in solid at %s\n", self->classname, vtos(self->s.origin));
	}
	
	if(!self->yaw_speed)
		self->yaw_speed = 20;
	self->viewheight = 25;
	
	monster_start_go(self);
	
	if(self->spawnflags & 2)
		monster_triggered_start(self);
}