mirror of
https://github.com/jmarshall23/DoomRTX.git
synced 2026-08-19 20:19:50 +02:00
62 lines
2.1 KiB
C++
62 lines
2.1 KiB
C++
// AI_monster_flying_lostsoul.h
|
|
// Native state-machine replacement for ai_monster_flying_lostsoul.script.
|
|
|
|
#pragma once
|
|
|
|
|
|
#ifndef LOSTSOUL_CHARGE_SPEED
|
|
#define LOSTSOUL_CHARGE_SPEED 440
|
|
#endif
|
|
#ifndef LOSTSOUL_NORMAL_SPEED
|
|
#define LOSTSOUL_NORMAL_SPEED 140
|
|
#endif
|
|
#ifndef LOSTSOUL_ATTACK_RATE
|
|
#define LOSTSOUL_ATTACK_RATE 2
|
|
#endif
|
|
#ifndef LOSTSOUL_CHARGE_RANGE_MAX
|
|
#define LOSTSOUL_CHARGE_RANGE_MAX 768
|
|
#endif
|
|
#ifndef LOSTSOUL_CHARGE_RANGE_MIN
|
|
#define LOSTSOUL_CHARGE_RANGE_MIN 64
|
|
#endif
|
|
#ifndef LOSTSOUL_NOFOVTIME
|
|
#define LOSTSOUL_NOFOVTIME 4
|
|
#endif
|
|
#ifndef ATTACK_LOSTSOUL_CHARGE
|
|
#define ATTACK_LOSTSOUL_CHARGE ATTACK_SPECIAL1
|
|
#endif
|
|
#ifndef ATTACK_LOSTSOUL_RETREAT
|
|
#define ATTACK_LOSTSOUL_RETREAT ATTACK_SPECIAL2
|
|
#endif
|
|
|
|
class rvmMonsterFlyingLostsoul : public rvmMonsterBase {
|
|
public:
|
|
CLASS_PROTOTYPE( rvmMonsterFlyingLostsoul );
|
|
|
|
rvmMonsterFlyingLostsoul();
|
|
virtual void Init( idAI* aiOwner ) override;
|
|
virtual stateResult_t RunStateByName( const char* stateName, stateParms_t* parms ) override;
|
|
|
|
protected:
|
|
float nextAttack;
|
|
float nextNoFOVAttack;
|
|
float noMeleeTime;
|
|
float fly_offset;
|
|
float painNextTime;
|
|
idVec3 chargeVelocity;
|
|
|
|
virtual stateResult_t Torso_Idle( stateParms_t* parms );
|
|
virtual stateResult_t Torso_Fly( stateParms_t* parms );
|
|
virtual stateResult_t Torso_Charge( stateParms_t* parms );
|
|
virtual stateResult_t Torso_Pain( stateParms_t* parms );
|
|
virtual stateResult_t Torso_MeleeAttack( stateParms_t* parms );
|
|
virtual stateResult_t state_Begin( stateParms_t* parms );
|
|
virtual stateResult_t state_Idle( stateParms_t* parms );
|
|
virtual stateResult_t combat_charge( stateParms_t* parms );
|
|
virtual stateResult_t combat_melee( stateParms_t* parms );
|
|
virtual stateResult_t combat_retreat( stateParms_t* parms );
|
|
virtual int check_attacks() override;
|
|
virtual bool do_attack( int attack_flags ) override;
|
|
|
|
};
|