diff options
Diffstat (limited to 'game/shared/tf/tf_pumpkin_bomb.h')
| -rw-r--r-- | game/shared/tf/tf_pumpkin_bomb.h | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/game/shared/tf/tf_pumpkin_bomb.h b/game/shared/tf/tf_pumpkin_bomb.h new file mode 100644 index 0000000..b032f8f --- /dev/null +++ b/game/shared/tf/tf_pumpkin_bomb.h @@ -0,0 +1,65 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// TF Pumpkin Bomb +// +//============================================================================= +#ifndef TF_PUMPKIN_BOMB_H +#define TF_PUMPKIN_BOMB_H +#ifdef _WIN32 +#pragma once +#endif + +#ifdef CLIENT_DLL +#define CTFPumpkinBomb C_TFPumpkinBomb +#endif + +class CTFPumpkinBombShim : public CBaseAnimating +{ + virtual void PumpkinTouch( CBaseEntity *pOther ) = 0; +public: + void Touch( CBaseEntity *pOther ) { return PumpkinTouch( pOther ) ; } +}; + +DECLARE_AUTO_LIST( ITFPumpkinBomb ); + +class CTFPumpkinBomb : public CTFPumpkinBombShim, public ITFPumpkinBomb +{ + DECLARE_CLASS( CTFPumpkinBomb, CBaseAnimating ); + DECLARE_NETWORKCLASS(); + +public: + CTFPumpkinBomb(); + ~CTFPumpkinBomb() {} + + virtual void Precache( void ); + virtual void Spawn( void ); + void Break( void ); + virtual void PumpkinTouch( CBaseEntity *pOther ) OVERRIDE; + + void SetInitParams( float scale, float damage, float radius, int iTeam, float flLifeTime ); + + void RemovePumpkin(); + +#ifdef GAME_DLL + virtual void Event_Killed( const CTakeDamageInfo &info ); + virtual int OnTakeDamage( const CTakeDamageInfo &info ); + + void SetSpell( bool bSpell ) { m_bIsSpell = bSpell; } +#endif + +private: +#ifdef GAME_DLL + bool m_bIsSpell; +#endif + + bool m_bDead; + bool m_bPrecached; + + int m_iTeam; + float m_flDamage; + float m_flScale; + float m_flRadius; + float m_flLifeTime; +}; + +#endif //TF_PUMPKIN_BOMB_H
\ No newline at end of file |