diff options
Diffstat (limited to 'game/server/hl1/hl1_npc_houndeye.h')
| -rw-r--r-- | game/server/hl1/hl1_npc_houndeye.h | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/game/server/hl1/hl1_npc_houndeye.h b/game/server/hl1/hl1_npc_houndeye.h new file mode 100644 index 0000000..dfe7495 --- /dev/null +++ b/game/server/hl1/hl1_npc_houndeye.h @@ -0,0 +1,73 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +// $NoKeywords: $ +// +//=============================================================================// +#ifndef NPC_HOUNDEYE_H +#define NPC_HOUNDEYE_H +#pragma once + +#include "hl1_ai_basenpc.h" +#define HOUNDEYE_MAX_ATTACK_RADIUS 384 + +class CNPC_Houndeye : public CHL1BaseNPC +{ + DECLARE_CLASS( CNPC_Houndeye, CHL1BaseNPC ); + +public: + void Spawn( void ); + void Precache( void ); + + void Event_Killed( const CTakeDamageInfo &info ); + + void WarmUpSound ( void ); + void AlertSound( void ); + void DeathSound( const CTakeDamageInfo &info ); + void WarnSound( void ); + void PainSound( const CTakeDamageInfo &info ); + void IdleSound( void ); + + float MaxYawSpeed ( void ); + + Class_T Classify ( void ); + + void HandleAnimEvent( animevent_t *pEvent ); + + void SonicAttack ( void ); + + Vector WriteBeamColor( void ); + bool ShouldGoToIdleState( void ); + bool FValidateHintType ( CAI_Hint *pHint ); + + void SetActivity ( Activity NewActivity ); + + void StartTask( const Task_t *pTask ); + void RunTask ( const Task_t *pTask ); + void PrescheduleThink ( void ); + + int TranslateSchedule( int scheduleType ); + int SelectSchedule( void ); + + float FLSoundVolume( CSound *pSound ); + int RangeAttack1Conditions ( float flDot, float flDist ); + + void StartNPC ( void ); + + virtual float InnateRange1MinRange( void ) { return 0.0f; } + virtual float InnateRange1MaxRange( void ) { return HOUNDEYE_MAX_ATTACK_RADIUS; } + + DEFINE_CUSTOM_AI; + DECLARE_DATADESC(); + +private: + int SquadRecruit( int searchRadius, int maxMembers ); + + int m_iSpriteTexture; + bool m_fAsleep;// some houndeyes sleep in idle mode if this is set, the houndeye is lying down + bool m_fDontBlink;// don't try to open/close eye if this bit is set! + Vector m_vecPackCenter; // the center of the pack. The leader maintains this by averaging the origins of all pack members. +}; + +#endif // NPC_HOUNDEYE_H
\ No newline at end of file |