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.

73 lines
1.8 KiB

  1. //========= Copyright Valve Corporation, All rights reserved. ============//
  2. //
  3. // Purpose:
  4. //
  5. // $NoKeywords: $
  6. //
  7. //=============================================================================//
  8. #ifndef NPC_VORTIGAUNT_H
  9. #define NPC_VORTIGAUNT_H
  10. #define VORTIGAUNT_MAX_BEAMS 8
  11. #include "hl1_ai_basenpc.h"
  12. //=========================================================
  13. //=========================================================
  14. class CNPC_Vortigaunt : public CHL1BaseNPC
  15. {
  16. DECLARE_CLASS( CNPC_Vortigaunt, CHL1BaseNPC );
  17. public:
  18. void Spawn( void );
  19. void Precache( void );
  20. Class_T Classify ( void );
  21. void AlertSound( void );
  22. void IdleSound( void );
  23. void PainSound( const CTakeDamageInfo &info );
  24. void DeathSound( const CTakeDamageInfo &info );
  25. int GetSoundInterests ( void );
  26. float MaxYawSpeed ( void );
  27. void Event_Killed( const CTakeDamageInfo &info );
  28. void CallForHelp( char *szClassname, float flDist, CBaseEntity * pEnemy, Vector &vecLocation );
  29. int RangeAttack1Conditions( float flDot, float flDist );
  30. int OnTakeDamage_Alive( const CTakeDamageInfo &inputInfo );
  31. void TraceAttack( const CTakeDamageInfo &info, const Vector &vecDir, trace_t *ptr, CDmgAccumulator *pAccumulator );
  32. void StartTask( const Task_t *pTask );
  33. int SelectSchedule( void );
  34. int TranslateSchedule( int scheduleType );
  35. void ArmBeam( int side );
  36. void BeamGlow( void );
  37. void WackBeam( int side, CBaseEntity *pEntity );
  38. void ZapBeam( int side );
  39. void ClearBeams( void );
  40. void HandleAnimEvent( animevent_t *pEvent );
  41. virtual Disposition_t IRelationType ( CBaseEntity *pTarget );
  42. DEFINE_CUSTOM_AI;
  43. DECLARE_DATADESC();
  44. private:
  45. int m_iVoicePitch;
  46. int m_iBeams;
  47. int m_iBravery;
  48. CBeam *m_pBeam[VORTIGAUNT_MAX_BEAMS];
  49. float m_flNextAttack;
  50. EHANDLE m_hDead;
  51. };
  52. #endif //NPC_VORTIGAUNT_