mirror of
https://github.com/jmarshall23/DoomRTX.git
synced 2026-08-17 11:00:38 +02:00
48 lines
1.7 KiB
C++
48 lines
1.7 KiB
C++
#ifndef __GAME_DEATHWRAITH_H__
|
|
#define __GAME_DEATHWRAITH_H__
|
|
|
|
class hhDeathWraith : public hhWraith {
|
|
public:
|
|
CLASS_PROTOTYPE( hhDeathWraith );
|
|
|
|
void Spawn();
|
|
virtual void FlyToEnemy();
|
|
virtual void SetEnemy( idActor *newEnemy ) { enemy = newEnemy; }
|
|
virtual void Damage( idEntity *inflictor, idEntity *attacker, const idVec3 &dir, const char *damageDefName, const float damageScale, const int location );
|
|
virtual void Think( void );
|
|
|
|
protected:
|
|
virtual int PlayAnim( const char *name, int blendFrame );
|
|
virtual void PlayCycle( const char *name, int blendFrame );
|
|
virtual void Killed( idEntity *inflictor, idEntity *attacker, int damage, const idVec3 &dir, int location );
|
|
virtual void NotifyDeath( idEntity *inflictor, idEntity *attacker );
|
|
void SpawnEnergy(hhPlayer *player);
|
|
void EnterAttackState();
|
|
void ExitAttackState();
|
|
virtual bool ChargeEnemy();
|
|
bool CheckEnemy();
|
|
void HitEnemy();
|
|
void ApplyImpulseToEnemy();
|
|
virtual void FlyUp();
|
|
virtual void FlyMove( void );
|
|
virtual void EnemyDead();
|
|
void Event_FindEnemy( int useFOV );
|
|
void TeleportIn( idEntity *activator );
|
|
|
|
protected:
|
|
// Variables for controlling the movement of the wraith around the anchor point
|
|
// These variables are unique for each wraith for variety
|
|
float circleDist; // Distance to stay from the anchor point
|
|
float circleSpeed; // Orbit speed
|
|
float circleHeight; // Height above the point
|
|
bool circleClockwise; // if true, orbit clockwise
|
|
|
|
int attackTimeMin; // Range for the attack time
|
|
int attackTimeDelta; // Range for the attack time
|
|
|
|
idMat3 chargeAxis;
|
|
|
|
bool healthWraith; // true if a health type
|
|
};
|
|
|
|
#endif |