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.

72 lines
2.0 KiB

  1. //========= Copyright Valve Corporation, All rights reserved. ============//
  2. //
  3. // Purpose:
  4. //
  5. // $Workfile: $
  6. // $Date: $
  7. //
  8. //-----------------------------------------------------------------------------
  9. // $Log: $
  10. //
  11. // $NoKeywords: $
  12. //=============================================================================//
  13. #ifndef NPC_HOUNDEYE_H
  14. #define NPC_HOUNDEYE_H
  15. #pragma once
  16. #include "ai_basenpc.h"
  17. #include "energy_wave.h"
  18. class CNPC_Houndeye : public CAI_BaseNPC
  19. {
  20. DECLARE_CLASS( CNPC_Houndeye, CAI_BaseNPC );
  21. public:
  22. void Spawn( void );
  23. void Precache( void );
  24. Class_T Classify ( void );
  25. void HandleAnimEvent( animevent_t *pEvent );
  26. float MaxYawSpeed ( void );
  27. void WarmUpSound ( void );
  28. void AlertSound( void );
  29. void DeathSound( const CTakeDamageInfo &info );
  30. void WarnSound( void );
  31. void PainSound( const CTakeDamageInfo &info );
  32. void IdleSound( void );
  33. void StartTask( const Task_t *pTask );
  34. void RunTask( const Task_t *pTask );
  35. int GetSoundInterests( void );
  36. void SonicAttack( void );
  37. void PrescheduleThink( void );
  38. void WriteBeamColor ( void );
  39. int RangeAttack1Conditions ( float flDot, float flDist );
  40. bool FCanActiveIdle ( void );
  41. virtual int TranslateSchedule( int scheduleType );
  42. Activity NPC_TranslateActivity( Activity eNewActivity );
  43. virtual int SelectSchedule( void );
  44. bool HandleInteraction(int interactionType, void *data, CBaseCombatCharacter* sourceEnt);
  45. void NPCThink(void);
  46. int OnTakeDamage_Alive( const CTakeDamageInfo &info );
  47. void Event_Killed( const CTakeDamageInfo &info );
  48. bool IsAnyoneInSquadAttacking( void );
  49. void SpeakSentence( int sentenceType );
  50. float m_flNextSecondaryAttack;
  51. bool m_bLoopClockwise;
  52. CEnergyWave* m_pEnergyWave;
  53. float m_flEndEnergyWaveTime;
  54. bool m_fAsleep;// some houndeyes sleep in idle mode if this is set, the houndeye is lying down
  55. bool m_fDontBlink;// don't try to open/close eye if this bit is set!
  56. DEFINE_CUSTOM_AI;
  57. DECLARE_DATADESC();
  58. };
  59. #endif // NPC_HOUNDEYE_H