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.
63 lines
1.6 KiB
63 lines
1.6 KiB
//========= Copyright Valve Corporation, All rights reserved. ============//
|
|
//
|
|
// Purpose:
|
|
//
|
|
// $NoKeywords: $
|
|
//
|
|
//=============================================================================//
|
|
#ifndef NPC_HEADCRAB_H
|
|
#define NPC_HEADCRAB_H
|
|
#pragma once
|
|
|
|
|
|
#include "hl1_ai_basenpc.h"
|
|
|
|
class CNPC_Headcrab : public CHL1BaseNPC
|
|
{
|
|
DECLARE_CLASS( CNPC_Headcrab, CHL1BaseNPC );
|
|
public:
|
|
|
|
void Spawn( void );
|
|
void Precache( void );
|
|
|
|
void RunTask ( const Task_t *pTask );
|
|
void StartTask ( const Task_t *pTask );
|
|
void SetYawSpeed ( void );
|
|
Vector Center( void );
|
|
Vector BodyTarget( const Vector &posSrc, bool bNoisy = true );
|
|
|
|
float MaxYawSpeed( void );
|
|
Class_T Classify( void );
|
|
|
|
void LeapTouch ( CBaseEntity *pOther );
|
|
void BiteSound( void );
|
|
void AttackSound( void );
|
|
void TouchDamage( CBaseEntity *pOther );
|
|
void HandleAnimEvent( animevent_t *pEvent );
|
|
int SelectSchedule( void );
|
|
void Touch( CBaseEntity *pOther );
|
|
int OnTakeDamage_Alive( const CTakeDamageInfo &inputInfo );
|
|
int TranslateSchedule( int scheduleType );
|
|
void PrescheduleThink( void );
|
|
int RangeAttack1Conditions ( float flDot, float flDist );
|
|
float GetDamageAmount( void );
|
|
virtual void PainSound( const CTakeDamageInfo &info );
|
|
virtual void DeathSound( const CTakeDamageInfo &info );
|
|
virtual void IdleSound();
|
|
virtual void AlertSound();
|
|
|
|
virtual int GetVoicePitch( void ) { return 100; }
|
|
virtual float GetSoundVolume( void ) { return 1.0; }
|
|
|
|
int m_nGibCount;
|
|
|
|
DEFINE_CUSTOM_AI;
|
|
DECLARE_DATADESC();
|
|
|
|
protected:
|
|
void HeadCrabSound( const char *pchSound );
|
|
|
|
Vector m_vecJumpVel;
|
|
};
|
|
|
|
#endif //NPC_HEADCRAB_H
|