sqwarmed/sdk_src/game/server/swarm/asw_simple_grub.h

55 lines
1.5 KiB
C++

#ifndef _DEFINED_ASW_SIMPLE_GRUB_H
#define _DEFINED_ASW_SIMPLE_GRUB_H
#ifdef _WIN32
#pragma once
#endif
#include "asw_simple_alien.h"
class CASW_Simple_Grub : public CASW_Simple_Alien
{
public:
DECLARE_CLASS( CASW_Simple_Grub, CASW_Simple_Alien );
//DECLARE_SERVERCLASS();
DECLARE_DATADESC();
CASW_Simple_Grub();
virtual ~CASW_Simple_Grub();
virtual void Spawn();
virtual void Precache();
virtual void AlienThink();
virtual Class_T Classify( void ) { return (Class_T) CLASS_ASW_GRUB; }
// anims
virtual void PlayRunningAnimation();
virtual void PlayAttackingAnimation();
virtual void PlayFallingAnimation();
// movement
virtual float GetIdealSpeed() const;
virtual float GetPitchSpeed() const;
virtual float GetIdealPitch();
virtual void UpdatePitch(float delta);
virtual float GetZigZagChaseDistance() const;
virtual float GetFaceEnemyDistance() const;
virtual bool TryMove(const Vector &vecSrc, Vector &vecTarget, float deltatime, bool bStepMove = false);
virtual bool ApplyGravity(Vector &vecTarget, float deltatime);
bool m_bSkipGravity;
void GrubTouch( CBaseEntity *pOther );
// sounds
virtual void PainSound( const CTakeDamageInfo &info );
virtual void AlertSound();
virtual void DeathSound( const CTakeDamageInfo &info );
virtual void AttackSound();
// health related
bool ShouldGib( const CTakeDamageInfo &info );
bool CorpseGib( const CTakeDamageInfo &info );
void Event_Killed( const CTakeDamageInfo &info );
};
#endif // _DEFINED_ASW_SIMPLE_GRUB_H