Team Fortress 2 Source Code as on 22/4/2020
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.

51 lines
1.5 KiB

  1. //========= Copyright Valve Corporation, All rights reserved. ============//
  2. //
  3. // Purpose:
  4. //
  5. // $NoKeywords: $
  6. //
  7. //=============================================================================//
  8. #ifndef NPC_ZOMBIE_H
  9. #define NPC_ZOMBIE_H
  10. #include "hl1_ai_basenpc.h"
  11. //=========================================================
  12. // Monster's Anim Events Go Here
  13. //=========================================================
  14. #define ZOMBIE_AE_ATTACK_RIGHT 0x01
  15. #define ZOMBIE_AE_ATTACK_LEFT 0x02
  16. #define ZOMBIE_AE_ATTACK_BOTH 0x03
  17. #define ZOMBIE_FLINCH_DELAY 2 // at most one flinch every n secs
  18. //=========================================================
  19. //=========================================================
  20. class CNPC_Zombie : public CHL1BaseNPC
  21. {
  22. DECLARE_CLASS( CNPC_Zombie, CHL1BaseNPC );
  23. public:
  24. void Spawn( void );
  25. void Precache( void );
  26. float MaxYawSpeed( void ) { return 120.0f; };
  27. Class_T Classify( void );
  28. void HandleAnimEvent( animevent_t *pEvent );
  29. // int IgnoreConditions ( void );
  30. float m_flNextFlinch;
  31. void PainSound( const CTakeDamageInfo &info );
  32. void AlertSound( void );
  33. void IdleSound( void );
  34. void AttackSound( void );
  35. // No range attacks
  36. BOOL CheckRangeAttack1 ( float flDot, float flDist ) { return FALSE; }
  37. BOOL CheckRangeAttack2 ( float flDot, float flDist ) { return FALSE; }
  38. int OnTakeDamage_Alive( const CTakeDamageInfo &inputInfo );
  39. void RemoveIgnoredConditions ( void );
  40. int MeleeAttack1Conditions ( float flDot, float flDist );
  41. };
  42. #endif //NPC_ZOMBIE_H