예제 #1
0
void lvl1_sentry_atk3(  )
{
    self->s.v.frame = 0;
    self->s.v.think = ( func_t ) lvl1_sentry_atk1;
    self->s.v.nextthink = g_globalvars.time + 0.1;

    ai_face(  );
}
예제 #2
0
void lvl1_sentry_atk2(  )
{
    self->s.v.frame = 2;
    self->s.v.think = ( func_t ) lvl1_sentry_atk3;
    self->s.v.nextthink = g_globalvars.time + 0.1;

    ai_face(  );
    Sentry_Fire(  );
}
예제 #3
0
파일: sp_ai.c 프로젝트: JosephPecoraro/ktx
void ai_charge( float d )
{
	if ( k_bloodfest )
	{
		if ( (int)self->s.v.flags & FL_SWIM )
		{
			d *= 5; // let fish swim faster in bloodfest mode.
		}
		else if ( self->bloodfest_boss )
		{
			d *= 2; // let boss move faster
		}
	}

	ai_face ();
	movetogoal (d);		// done in C code...
}
예제 #4
0
void lvl1_sentry_atk1(  )
{
    gedict_t *enemy = PROG_TO_EDICT( self->s.v.enemy );

    self->s.v.frame = 1;
    self->s.v.think = ( func_t ) lvl1_sentry_atk3;
    self->s.v.nextthink = g_globalvars.time + 0.1;

    ai_face(  );
    if ( enemy == world || enemy->is_feigning || enemy->s.v.health <= 0 || !visible( enemy )
            || enemy->has_disconnected == 1 )
        lvl1_sentry_stand(  );
    else
    {
        if ( self->s.v.ammo_shells <= 0 && !tg_data.sg_unlimit_ammo )
            lvl1_sentry_stand(  );
        else
        {
            if ( !Sentry_Fire(  ) )
                lvl1_sentry_atk3(  );
        }
    }
}