diff options
Diffstat (limited to 'game/server/tf/halloween/zombie/zombie_behavior/zombie_attack.h')
| -rw-r--r-- | game/server/tf/halloween/zombie/zombie_behavior/zombie_attack.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/game/server/tf/halloween/zombie/zombie_behavior/zombie_attack.h b/game/server/tf/halloween/zombie/zombie_behavior/zombie_attack.h new file mode 100644 index 0000000..476ffc0 --- /dev/null +++ b/game/server/tf/halloween/zombie/zombie_behavior/zombie_attack.h @@ -0,0 +1,36 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// +// +//============================================================================= +#ifndef ZOMBIE_ATTACK_H +#define ZOMBIE_ATTACK_H + +//--------------------------------------------------------------------------------------------- +//--------------------------------------------------------------------------------------------- +class CZombieAttack : public Action< CZombie > +{ +public: + virtual ActionResult< CZombie > OnStart( CZombie *me, Action< CZombie > *priorAction ); + virtual ActionResult< CZombie > Update( CZombie *me, float interval ); + + virtual EventDesiredResult< CZombie > OnStuck( CZombie *me ); + virtual EventDesiredResult< CZombie > OnContact( CZombie *me, CBaseEntity *other, CGameTrace *result = NULL ); + virtual EventDesiredResult< CZombie > OnOtherKilled( CZombie *me, CBaseCombatCharacter *victim, const CTakeDamageInfo &info ); + + virtual const char *GetName( void ) const { return "Attack"; } // return name of this action + +private: + PathFollower m_path; + + CHandle< CBaseCombatCharacter > m_attackTarget; + CountdownTimer m_attackTimer; + CountdownTimer m_specialAttackTimer; + CountdownTimer m_attackTargetFocusTimer; + CountdownTimer m_tauntTimer; + + bool IsPotentiallyChaseable( CZombie *me, CBaseCombatCharacter *victim ); + void SelectVictim( CZombie *me ); +}; + +#endif // ZOMBIE_ATTACK_H |