Modified source engine (2017) developed by valve and leaked in 2020. Not for commercial purporses
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.

73 lines
2.1 KiB

#ifndef _INCLUDED_ASW_GRUB_H
#define _INCLUDED_ASW_GRUB_H
#ifdef _WIN32
#pragma once
#endif
#include "asw_alien.h"
class CSoundPatch;
class CASW_Grub : public CASW_Alien
{
DECLARE_CLASS( CASW_Grub, CASW_Alien );
public:
DECLARE_SERVERCLASS();
DECLARE_DATADESC();
CASW_Grub();
virtual ~CASW_Grub();
void Spawn();
void Precache();
float GetIdealSpeed() const;
float GetIdealAccel( ) const;
float MaxYawSpeed( void );
virtual bool BlocksLOS();
//void HandleAnimEvent( animevent_t *pEvent );
Class_T Classify( void ) { return CLASS_EARTH_FAUNA; }
bool CorpseGib( const CTakeDamageInfo &info );
//void BuildScheduleTestBits( void );
int SelectFailSchedule( int failedSchedule, int failedTask, AI_TaskFailureCode_t taskFailCode );
//void GatherEnemyConditions( CBaseEntity *pEnemy );
void StartTask(const Task_t *pTask);
void RunTask( const Task_t *pTask );
int SelectSchedule();
int TranslateSchedule( int scheduleType );
virtual void JumpAttack( bool bRandomJump, const Vector &vecPos = vec3_origin, bool bThrown = false );
void Leap( const Vector &vecVel );
//int RangeAttack1Conditions( float flDot, float flDist );
void LeapThink();
void NormalTouch(CBaseEntity* pOther);
void LeapTouch(CBaseEntity* pOther);
bool HasHeadroom();
void DoJumpFromGoo();
void SetJumpFromGoo(bool bDoJump, float flJumpAngle, float flJumpDistance = 100.0f);
bool m_bJumpFromGoo;
float m_flGooJumpDistance;
void IdleInGoo(bool b);
bool bDoGooIdle;
Activity TranslateActivity( Activity baseAct, Activity *pIdealWeaponActivity );
virtual bool ShouldCollide(int collisionGroup, int contentsMask);
void Squash(CBaseEntity* pSquasher);
virtual void UpdateEfficiency( bool bInPVS );
bool m_bMidJump, m_bCommittedToJump;
float m_flGooJumpAngle;
Vector m_vecCommittedJumpPos;
float m_flNextNPCThink;
void SetIgnoreCollisionTime(float f) { m_flIgnoreWorldCollisionTime = f; }
float m_flIgnoreWorldCollisionTime;
// sounds
virtual void AlertSound();
virtual void PainSound( const CTakeDamageInfo &info );
virtual void AttackSound();
virtual void IdleSound();
//virtual void PrescheduleThink();
protected:
DEFINE_CUSTOM_AI;
};
#endif // _INCLUDED_ASW_GRUB_H