//----------------------------------------------------------------------------- // Purpose: Fire a pipe bomb //----------------------------------------------------------------------------- CBaseEntity *CTFWeaponBaseGun::FirePipeBomb( CTFPlayer *pPlayer, bool bRemoteDetonate ) { PlayWeaponShootSound(); #ifdef GAME_DLL Vector vecForward, vecRight, vecUp; AngleVectors( pPlayer->EyeAngles(), &vecForward, &vecRight, &vecUp ); // Create grenades here!! Vector vecSrc = pPlayer->Weapon_ShootPosition(); vecSrc += vecForward * 16.0f + vecRight * 8.0f + vecUp * -6.0f; Vector vecVelocity = ( vecForward * GetProjectileSpeed() ) + ( vecUp * 200.0f ) + ( random->RandomFloat( -10.0f, 10.0f ) * vecRight ) + ( random->RandomFloat( -10.0f, 10.0f ) * vecUp ); CTFGrenadePipebombProjectile *pProjectile = CTFGrenadePipebombProjectile::Create( vecSrc, pPlayer->EyeAngles(), vecVelocity, AngularImpulse( 600, random->RandomInt( -1200, 1200 ), 0 ), pPlayer, GetTFWpnData(), bRemoteDetonate ); if ( pProjectile ) { pProjectile->SetCritical( IsCurrentAttackACrit() ); } return pProjectile; #endif return NULL; }
//----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- CTFWeaponBaseGrenadeProj *CTFGrenadeEmp::EmitGrenade( Vector vecSrc, QAngle vecAngles, Vector vecVel, AngularImpulse angImpulse, CBasePlayer *pPlayer, float flTime, int iflags ) { return CTFGrenadeEmpProjectile::Create( vecSrc, vecAngles, vecVel, angImpulse, pPlayer, GetTFWpnData(), flTime ); }