CHEGrenadeProjectile* CHEGrenadeProjectile::Create( 
	const Vector &position, 
	const QAngle &angles, 
	const Vector &velocity, 
	const AngularImpulse &angVelocity, 
	CBaseCombatCharacter *pOwner, 
	float timer )
{
	CHEGrenadeProjectile *pGrenade = (CHEGrenadeProjectile*)CBaseEntity::Create( "hegrenade_projectile", position, angles, pOwner );
	
	// Set the timer for 1 second less than requested. We're going to issue a SOUND_DANGER
	// one second before detonation.
	pGrenade->SetMoveType( MOVETYPE_FLYGRAVITY );
	pGrenade->SetMoveCollide( MOVECOLLIDE_FLY_BOUNCE );
	pGrenade->SetTimer( timer - 1.5 );
	pGrenade->SetAbsVelocity( velocity );
	pGrenade->SetOwner( pOwner );
	pGrenade->m_flDamage = 100;
	pGrenade->ChangeTeam( pOwner->GetTeamNumber() );

	return pGrenade;
}
Ejemplo n.º 2
0
CHEGrenadeProjectile* CHEGrenadeProjectile::Create( 
    const Vector &position, 
    const QAngle &angles, 
    const Vector &velocity, 
    const AngularImpulse &angVelocity, 
    CBaseCombatCharacter *pOwner, 
    float timer )
{
    CHEGrenadeProjectile *pGrenade = (CHEGrenadeProjectile*)CBaseEntity::Create( "hegrenade_projectile", position, angles, pOwner );

    // Set the timer for 1 second less than requested. We're going to issue a SOUND_DANGER
    // one second before detonation.

    pGrenade->SetDetonateTimerLength( 1.5 );
    pGrenade->SetAbsVelocity( velocity );
    pGrenade->SetupInitialTransmittedGrenadeVelocity( velocity );
    pGrenade->SetThrower( pOwner ); 

    pGrenade->SetGravity( BaseClass::GetGrenadeGravity() );
    pGrenade->SetFriction( BaseClass::GetGrenadeFriction() );
    pGrenade->SetElasticity( BaseClass::GetGrenadeElasticity() );

    pGrenade->m_flDamage = 100;
    pGrenade->m_DmgRadius = pGrenade->m_flDamage * 3.5f;
    pGrenade->ChangeTeam( pOwner->GetTeamNumber() );
    pGrenade->ApplyLocalAngularVelocityImpulse( angVelocity );	

    // make NPCs afaid of it while in the air
    pGrenade->SetThink( &CHEGrenadeProjectile::DangerSoundThink );
    pGrenade->SetNextThink( gpGlobals->curtime );

    return pGrenade;
}