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.
69 lines
1.4 KiB
69 lines
1.4 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// TF Generic Bomb |
|
// |
|
//============================================================================= |
|
#ifndef TF_GENERIC_BOMB_H |
|
#define TF_GENERIC_BOMB_H |
|
#ifdef _WIN32 |
|
#pragma once |
|
#endif |
|
|
|
#ifdef CLIENT_DLL |
|
#define CTFGenericBomb C_TFGenericBomb |
|
#endif |
|
|
|
class CTFGenericBombShim : public CBaseAnimating |
|
{ |
|
virtual void GenericTouch( CBaseEntity *pOther ) = 0; |
|
public: |
|
void Touch( CBaseEntity *pOther ) { return GenericTouch( pOther ) ; } |
|
}; |
|
|
|
DECLARE_AUTO_LIST( ITFGenericBomb ); |
|
|
|
class CTFGenericBomb : public CTFGenericBombShim, public ITFGenericBomb |
|
{ |
|
DECLARE_CLASS( CTFGenericBomb, CBaseAnimating ); |
|
DECLARE_NETWORKCLASS(); |
|
|
|
enum EWhoToDamage |
|
{ |
|
DAMAGE_ATTACKER_AND_ATTACKER_ENEMIES, |
|
DAMAGE_EVERYONE |
|
}; |
|
|
|
public: |
|
CTFGenericBomb(); |
|
~CTFGenericBomb() {} |
|
|
|
virtual void Precache( void ); |
|
virtual void Spawn( void ); |
|
virtual void GenericTouch( CBaseEntity *pOther ) OVERRIDE; |
|
|
|
#ifdef GAME_DLL |
|
DECLARE_DATADESC(); |
|
|
|
virtual void Event_Killed( const CTakeDamageInfo &info ); |
|
#endif |
|
|
|
private: |
|
#ifdef GAME_DLL |
|
void Detonate( inputdata_t& inputdata ); |
|
COutputEvent m_OnDetonate; |
|
#endif |
|
|
|
bool m_bDead; |
|
bool m_bPrecached; |
|
|
|
int m_iTeam; |
|
float m_flDamage; |
|
int m_nHealth; |
|
float m_flRadius; |
|
string_t m_strExplodeParticleName; |
|
string_t m_strHitParticleName; |
|
string_t m_strExplodeSoundName; |
|
EWhoToDamage m_eWhoToDamage; |
|
}; |
|
|
|
#endif //TF_GENERIC_BOMB_H
|