You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
82 lines
2.0 KiB
82 lines
2.0 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: Rockets (Weapon) |
|
// |
|
//=============================================================================// |
|
|
|
#ifndef WEAPON_GRENADE_ROCKET_H |
|
#define WEAPON_GRENADE_ROCKET_H |
|
#ifdef _WIN32 |
|
#pragma once |
|
#endif |
|
|
|
#if defined( CLIENT_DLL ) |
|
// Client Only |
|
#define CWeaponGrenadeRocket C_WeaponGrenadeRocket |
|
#else |
|
#include "iscorer.h" |
|
#endif |
|
|
|
class CWeaponGrenadeRocket: public CBaseAnimating |
|
#if !defined( CLIENT_DLL ) |
|
, public IScorer |
|
#endif |
|
{ |
|
DECLARE_CLASS( CWeaponGrenadeRocket, CBaseAnimating ); |
|
|
|
public: |
|
|
|
DECLARE_NETWORKCLASS(); |
|
DECLARE_PREDICTABLE(); |
|
|
|
CWeaponGrenadeRocket(); |
|
~CWeaponGrenadeRocket(); |
|
|
|
void Spawn( void ); |
|
void SetRealOwner( CBasePlayer *pOwner ) { m_hOwner = pOwner; } |
|
float GetDamage( void ) { return m_flDamage; } |
|
void SetDamage( float flDamage ) { m_flDamage = flDamage; } |
|
int GetDamageType() const { return DMG_BLAST; } |
|
float GetDamageRadius( void ) { return m_flRadius; } |
|
void SetDamageRadius( float flRadius ) { m_flRadius = flRadius; } |
|
void SetMaxRange( float flRange ); |
|
void RocketTouch( CBaseEntity *pOther ); |
|
|
|
static CWeaponGrenadeRocket *Create( const Vector &vecOrigin, const Vector &vecAngles, float flMaxRange, CBaseEntity *pRealOwner ); |
|
|
|
#if !defined( CLIENT_DLL ) |
|
// Server Only |
|
void Precache( void ); |
|
|
|
void SetAnglesToMatchVelocity( void ); |
|
void ExceededRangeThink( void ); |
|
void TrackThink( void ); |
|
void ApplyForcesToVehicle( CBaseEntity *pEntity ); |
|
|
|
// IScorer |
|
public: |
|
// Return the entity that should receive the score |
|
virtual CBasePlayer *GetScorer( void ); |
|
// Return the entity that should get assistance credit |
|
virtual CBasePlayer *GetAssistant( void ) { return NULL; }; |
|
|
|
#else |
|
// Client Only |
|
void OnDataChanged( DataUpdateType_t updateType ); |
|
void ClientThink( void ); |
|
#endif |
|
|
|
private: |
|
|
|
CWeaponGrenadeRocket( const CWeaponGrenadeRocket& ); |
|
|
|
private: |
|
float m_flDamage; |
|
float m_flRadius; |
|
float m_flMaxRange; |
|
float m_flFallingSpeed; |
|
float m_flExceedRangeTime; |
|
EHANDLE m_hOwner; |
|
}; |
|
|
|
#endif // WEAPON_GRENADE_ROCKET_H
|
|
|