void AvHParalysisGun::FireProjectiles(void)
{
#ifdef AVH_SERVER
	
	UTIL_MakeVectors(this->m_pPlayer->pev->v_angle);
	
	Vector vecAiming = gpGlobals->v_forward;
	Vector vecSrc = this->m_pPlayer->GetGunPosition( ) + vecAiming;
	Vector vecEnd = vecSrc + vecAiming*kParalysisRange;
	
	const float kParalysisTime = 6;
	
	// Treat damage upgrade as modifier onto paralysis
	//int theTracerFreq;
	//float theDamageMultiplier;
	//AvHPlayerUpgrade::GetWeaponUpgrade(this->m_pPlayer->pev->iuser4, &theDamageMultiplier, &theTracerFreq);

	// Perform trace to hit victim
	TraceResult tr;
	UTIL_TraceLine(vecSrc, vecEnd, dont_ignore_monsters, dont_ignore_glass, this->m_pPlayer->edict(), &tr);
	CBaseEntity* theEntityHit = CBaseEntity::Instance(tr.pHit);
	if(theEntityHit)
	{
		AvHPlayer* thePlayer = dynamic_cast<AvHPlayer*>(theEntityHit);
		if(thePlayer)
		{
			// Check teams (hit friendly in tourny mode)
			if((thePlayer->pev->team != this->m_pPlayer->pev->team) || (GetGameRules()->GetIsTournamentMode()))
			{
				thePlayer->SetIsParalyzed(true, kParalysisTime/**theDamageMultiplier*/);

				// Play hit event
				PLAYBACK_EVENT_FULL(0, thePlayer->edict(), gParalysisStartEventID, 0, thePlayer->pev->origin, (float *)&g_vecZero, 0.0, 0.0, /*theWeaponIndex*/ 0, 0, 0, 0);
			}
		}
	}

	#endif	
}