mirror of
https://github.com/celisej567/source-engine.git
synced 2026-01-04 18:09:53 +03:00
1
This commit is contained in:
132
game/server/hl2/weapon_irifle.cpp
Normal file
132
game/server/hl2/weapon_irifle.cpp
Normal file
@@ -0,0 +1,132 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
// $NoKeywords: $
|
||||
//
|
||||
//=============================================================================//
|
||||
//========= Copyright <20> 1996-2003, Valve LLC, All rights reserved. ============
|
||||
//
|
||||
// Purpose: This is the incendiary rifle.
|
||||
//
|
||||
//=============================================================================
|
||||
|
||||
|
||||
#include "cbase.h"
|
||||
#include "npcevent.h"
|
||||
#include "basehlcombatweapon.h"
|
||||
#include "basecombatcharacter.h"
|
||||
#include "soundent.h"
|
||||
#include "player.h"
|
||||
#include "IEffects.h"
|
||||
#include "vstdlib/random.h"
|
||||
#include "engine/IEngineSound.h"
|
||||
#include "weapon_flaregun.h"
|
||||
|
||||
// memdbgon must be the last include file in a .cpp file!!!
|
||||
#include "tier0/memdbgon.h"
|
||||
|
||||
//###########################################################################
|
||||
// >> CWeaponIRifle
|
||||
//###########################################################################
|
||||
|
||||
class CWeaponIRifle : public CBaseHLCombatWeapon
|
||||
{
|
||||
public:
|
||||
|
||||
CWeaponIRifle();
|
||||
|
||||
DECLARE_SERVERCLASS();
|
||||
DECLARE_CLASS( CWeaponIRifle, CBaseHLCombatWeapon );
|
||||
|
||||
void Precache( void );
|
||||
bool Deploy( void );
|
||||
|
||||
void PrimaryAttack( void );
|
||||
virtual float GetFireRate( void ) { return 1; };
|
||||
|
||||
int CapabilitiesGet( void ) { return bits_CAP_WEAPON_RANGE_ATTACK1; }
|
||||
|
||||
virtual const Vector& GetBulletSpread( void )
|
||||
{
|
||||
static Vector cone = VECTOR_CONE_3DEGREES;
|
||||
return cone;
|
||||
}
|
||||
|
||||
DECLARE_ACTTABLE();
|
||||
};
|
||||
|
||||
IMPLEMENT_SERVERCLASS_ST(CWeaponIRifle, DT_WeaponIRifle)
|
||||
END_SEND_TABLE()
|
||||
|
||||
LINK_ENTITY_TO_CLASS( weapon_irifle, CWeaponIRifle );
|
||||
PRECACHE_WEAPON_REGISTER(weapon_irifle);
|
||||
|
||||
//---------------------------------------------------------
|
||||
// Activity table
|
||||
//---------------------------------------------------------
|
||||
acttable_t CWeaponIRifle::m_acttable[] =
|
||||
{
|
||||
{ ACT_RANGE_ATTACK1, ACT_RANGE_ATTACK_ML, true },
|
||||
};
|
||||
IMPLEMENT_ACTTABLE(CWeaponIRifle);
|
||||
|
||||
//---------------------------------------------------------
|
||||
// Constructor
|
||||
//---------------------------------------------------------
|
||||
CWeaponIRifle::CWeaponIRifle()
|
||||
{
|
||||
m_bReloadsSingly = true;
|
||||
|
||||
m_fMinRange1 = 65;
|
||||
m_fMinRange2 = 65;
|
||||
m_fMaxRange1 = 200;
|
||||
m_fMaxRange2 = 200;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------
|
||||
//---------------------------------------------------------
|
||||
void CWeaponIRifle::Precache( void )
|
||||
{
|
||||
BaseClass::Precache();
|
||||
}
|
||||
|
||||
//---------------------------------------------------------
|
||||
//---------------------------------------------------------
|
||||
void CWeaponIRifle::PrimaryAttack( void )
|
||||
{
|
||||
CBasePlayer *pOwner = ToBasePlayer( GetOwner() );
|
||||
|
||||
if ( pOwner == NULL )
|
||||
return;
|
||||
|
||||
m_iClip1 = m_iClip1 - 1;
|
||||
|
||||
SendWeaponAnim( ACT_VM_PRIMARYATTACK );
|
||||
pOwner->m_flNextAttack = gpGlobals->curtime + 1;
|
||||
|
||||
CFlare *pFlare = CFlare::Create( pOwner->Weapon_ShootPosition(), pOwner->EyeAngles(), pOwner, FLARE_DURATION );
|
||||
|
||||
if ( pFlare == NULL )
|
||||
return;
|
||||
|
||||
Vector forward;
|
||||
pOwner->EyeVectors( &forward );
|
||||
|
||||
pFlare->SetAbsVelocity( forward * 1500 );
|
||||
|
||||
WeaponSound( SINGLE );
|
||||
}
|
||||
|
||||
//---------------------------------------------------------
|
||||
// BUGBUG - don't give ammo here.
|
||||
//---------------------------------------------------------
|
||||
bool CWeaponIRifle::Deploy( void )
|
||||
{
|
||||
CBaseCombatCharacter *pOwner = GetOwner();
|
||||
if (pOwner)
|
||||
{
|
||||
pOwner->GiveAmmo( 90, m_iPrimaryAmmoType);
|
||||
}
|
||||
return BaseClass::Deploy();
|
||||
}
|
||||
Reference in New Issue
Block a user