diff options
Diffstat (limited to 'mp/src/game/server/hl2/npc_assassin.h')
| -rw-r--r-- | mp/src/game/server/hl2/npc_assassin.h | 180 |
1 files changed, 90 insertions, 90 deletions
diff --git a/mp/src/game/server/hl2/npc_assassin.h b/mp/src/game/server/hl2/npc_assassin.h index 17fb9e0f..1849c064 100644 --- a/mp/src/game/server/hl2/npc_assassin.h +++ b/mp/src/game/server/hl2/npc_assassin.h @@ -1,90 +1,90 @@ -//========= Copyright Valve Corporation, All rights reserved. ============//
-//
-// Purpose:
-//
-// $NoKeywords: $
-//=============================================================================//
-
-#ifndef NPC_ASSASSIN_H
-#define NPC_ASSASSIN_H
-#ifdef _WIN32
-#pragma once
-#endif
-
-#include "ai_basenpc.h"
-#include "Sprite.h"
-#include "SpriteTrail.h"
-#include "soundent.h"
-
-//Eye states
-enum eyeState_t
-{
- ASSASSIN_EYE_SEE_TARGET = 0, //Sees the target, bright and big
- ASSASSIN_EYE_SEEKING_TARGET, //Looking for a target, blinking (bright)
- ASSASSIN_EYE_ACTIVE, //Actively looking
- ASSASSIN_EYE_DORMANT, //Not active
- ASSASSIN_EYE_DEAD, //Completely invisible
-};
-
-//=========================================================
-//=========================================================
-class CNPC_Assassin : public CAI_BaseNPC
-{
-public:
- DECLARE_CLASS( CNPC_Assassin, CAI_BaseNPC );
- // DECLARE_SERVERCLASS();
- DECLARE_DATADESC();
-
- CNPC_Assassin( void );
-
- Class_T Classify( void ) { return CLASS_COMBINE; }
- int GetSoundInterests ( void ) { return (SOUND_WORLD|SOUND_COMBAT|SOUND_PLAYER); }
-
- int SelectSchedule ( void );
- int MeleeAttack1Conditions ( float flDot, float flDist );
- int RangeAttack1Conditions ( float flDot, float flDist );
- int RangeAttack2Conditions ( float flDot, float flDist );
-
- void Precache( void );
- void Spawn( void );
- void PrescheduleThink( void );
- void HandleAnimEvent( animevent_t *pEvent );
- void StartTask( const Task_t *pTask );
- void RunTask( const Task_t *pTask );
- void OnScheduleChange( void );
- void GatherEnemyConditions( CBaseEntity *pEnemy );
- void BuildScheduleTestBits( void );
- void Event_Killed( const CTakeDamageInfo &info );
-
- bool FValidateHintType ( CAI_Hint *pHint );
- bool IsJumpLegal(const Vector &startPos, const Vector &apex, const Vector &endPos) const;
- bool MovementCost( int moveType, const Vector &vecStart, const Vector &vecEnd, float *pCost );
-
- float MaxYawSpeed( void );
-
- const Vector &GetViewOffset( void );
-
-private:
-
- void SetEyeState( eyeState_t state );
- void FirePistol( int hand );
- bool CanFlip( int flipType, Activity &activity, const Vector *avoidPosition );
-
- int m_nNumFlips;
- int m_nLastFlipType;
- float m_flNextFlipTime; //Next earliest time the assassin can flip again
- float m_flNextLungeTime;
- float m_flNextShotTime;
-
- bool m_bEvade;
- bool m_bAggressive; // Sets certain state, including whether or not her eye is visible
- bool m_bBlinkState;
-
- CSprite *m_pEyeSprite;
- CSpriteTrail *m_pEyeTrail;
-
- DEFINE_CUSTOM_AI;
-};
-
-
-#endif // NPC_ASSASSIN_H
+//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +// $NoKeywords: $ +//=============================================================================// + +#ifndef NPC_ASSASSIN_H +#define NPC_ASSASSIN_H +#ifdef _WIN32 +#pragma once +#endif + +#include "ai_basenpc.h" +#include "Sprite.h" +#include "SpriteTrail.h" +#include "soundent.h" + +//Eye states +enum eyeState_t +{ + ASSASSIN_EYE_SEE_TARGET = 0, //Sees the target, bright and big + ASSASSIN_EYE_SEEKING_TARGET, //Looking for a target, blinking (bright) + ASSASSIN_EYE_ACTIVE, //Actively looking + ASSASSIN_EYE_DORMANT, //Not active + ASSASSIN_EYE_DEAD, //Completely invisible +}; + +//========================================================= +//========================================================= +class CNPC_Assassin : public CAI_BaseNPC +{ +public: + DECLARE_CLASS( CNPC_Assassin, CAI_BaseNPC ); + // DECLARE_SERVERCLASS(); + DECLARE_DATADESC(); + + CNPC_Assassin( void ); + + Class_T Classify( void ) { return CLASS_COMBINE; } + int GetSoundInterests ( void ) { return (SOUND_WORLD|SOUND_COMBAT|SOUND_PLAYER); } + + int SelectSchedule ( void ); + int MeleeAttack1Conditions ( float flDot, float flDist ); + int RangeAttack1Conditions ( float flDot, float flDist ); + int RangeAttack2Conditions ( float flDot, float flDist ); + + void Precache( void ); + void Spawn( void ); + void PrescheduleThink( void ); + void HandleAnimEvent( animevent_t *pEvent ); + void StartTask( const Task_t *pTask ); + void RunTask( const Task_t *pTask ); + void OnScheduleChange( void ); + void GatherEnemyConditions( CBaseEntity *pEnemy ); + void BuildScheduleTestBits( void ); + void Event_Killed( const CTakeDamageInfo &info ); + + bool FValidateHintType ( CAI_Hint *pHint ); + bool IsJumpLegal(const Vector &startPos, const Vector &apex, const Vector &endPos) const; + bool MovementCost( int moveType, const Vector &vecStart, const Vector &vecEnd, float *pCost ); + + float MaxYawSpeed( void ); + + const Vector &GetViewOffset( void ); + +private: + + void SetEyeState( eyeState_t state ); + void FirePistol( int hand ); + bool CanFlip( int flipType, Activity &activity, const Vector *avoidPosition ); + + int m_nNumFlips; + int m_nLastFlipType; + float m_flNextFlipTime; //Next earliest time the assassin can flip again + float m_flNextLungeTime; + float m_flNextShotTime; + + bool m_bEvade; + bool m_bAggressive; // Sets certain state, including whether or not her eye is visible + bool m_bBlinkState; + + CSprite *m_pEyeSprite; + CSpriteTrail *m_pEyeTrail; + + DEFINE_CUSTOM_AI; +}; + + +#endif // NPC_ASSASSIN_H |