This repository has been archived on 2024-06-13. You can view files and clone it, but cannot push or open issues or pull requests.
2020-08-04 13:13:01 -04:00

75 lines
2.2 KiB
C++

//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: Base combat character with no AI
//
// $Workfile: $
// $Date: $
//
//-----------------------------------------------------------------------------
// $Log: $
//
// $NoKeywords: $
//=============================================================================//
#ifndef NPC_BULLSQUID_H
#define NPC_BULLSQUID_H
#include "ai_basenpc.h"
class CNPC_Bullsquid : public CAI_BaseNPC {
DECLARE_CLASS(CNPC_Bullsquid, CAI_BaseNPC);
DECLARE_DATADESC();
public:
void Spawn(void);
void Precache(void);
Class_T Classify(void);
void IdleSound(void);
void PainSound(const CTakeDamageInfo &info);
void AlertSound(void);
void DeathSound(const CTakeDamageInfo &info);
void AttackSound(void);
void GrowlSound(void);
float MaxYawSpeed(void);
void HandleAnimEvent(animevent_t *pEvent);
int RangeAttack1Conditions(float flDot, float flDist);
int MeleeAttack1Conditions(float flDot, float flDist);
int MeleeAttack2Conditions(float flDot, float flDist);
bool FValidateHintType(CAI_Hint *pHint);
void RemoveIgnoredConditions(void);
Disposition_t IRelationType(CBaseEntity *pTarget);
int OnTakeDamage_Alive(const CTakeDamageInfo &inputInfo);
int GetSoundInterests(void);
void RunAI(void);
virtual void OnListened(void);
int SelectSchedule(void);
bool FInViewCone(Vector pOrigin);
void StartTask(const Task_t *pTask);
void RunTask(const Task_t *pTask);
NPC_STATE SelectIdealState(void);
DEFINE_CUSTOM_AI;
private:
bool m_fCanThreatDisplay; // this is so the squid only does the "I see a
// headcrab!" dance one time.
float m_flLastHurtTime; // we keep track of this, because if something
// hurts a squid, it will forget about its love of
// headcrabs for a while.
float m_flNextSpitTime; // last time the bullsquid used the spit attack.
int m_nSquidSpitSprite;
float m_flHungryTime; // set this is a future time to stop the monster from
// eating for a while.
float m_nextSquidSoundTime;
};
#endif // NPC_BULLSQUID_H