summaryrefslogtreecommitdiff
path: root/game/server/tf/halloween/zombie/zombie_behavior/zombie_attack.h
diff options
context:
space:
mode:
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.h36
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