mirror of
https://github.com/jmarshall23/DoomRTX.git
synced 2026-08-17 11:00:38 +02:00
74 lines
2.6 KiB
C++
74 lines
2.6 KiB
C++
// AI_monster_demon_trite.h
|
|
// Native state-machine replacement for ai_monster_demon_trite.script.
|
|
|
|
#pragma once
|
|
|
|
|
|
#ifndef TRITE_RUNDISTANCE
|
|
#define TRITE_RUNDISTANCE 192
|
|
#endif
|
|
#ifndef TRITE_WALKTURN
|
|
#define TRITE_WALKTURN 65
|
|
#endif
|
|
#ifndef TRITE_LEAP_RATE
|
|
#define TRITE_LEAP_RATE 2
|
|
#endif
|
|
#ifndef TRITE_DODGE_RATE
|
|
#define TRITE_DODGE_RATE 2
|
|
#endif
|
|
#ifndef TRITE_LEAP_RANGE_MIN
|
|
#define TRITE_LEAP_RANGE_MIN 64
|
|
#endif
|
|
#ifndef TRITE_LEAP_RANGE_MAX
|
|
#define TRITE_LEAP_RANGE_MAX 1024
|
|
#endif
|
|
#ifndef TRITE_LEAP_SPEED
|
|
#define TRITE_LEAP_SPEED 650
|
|
#endif
|
|
#ifndef TRITE_LEAP_MAXHEIGHT
|
|
#define TRITE_LEAP_MAXHEIGHT 48
|
|
#endif
|
|
#ifndef TRITE_EXPLOSION_RADIUS
|
|
#define TRITE_EXPLOSION_RADIUS 200
|
|
#endif
|
|
|
|
class rvmMonsterDemonTrite : public rvmMonsterBase {
|
|
public:
|
|
CLASS_PROTOTYPE( rvmMonsterDemonTrite );
|
|
|
|
rvmMonsterDemonTrite();
|
|
virtual void Init( idAI* aiOwner ) override;
|
|
virtual stateResult_t RunStateByName( const char* stateName, stateParms_t* parms ) override;
|
|
|
|
protected:
|
|
bool explode;
|
|
float nextDodge;
|
|
float nextLeap;
|
|
float painNextTime;
|
|
idVec3 jumpVelocity;
|
|
idEntityPtr<idEntity> combat_node;
|
|
|
|
virtual stateResult_t Torso_Idle( stateParms_t* parms );
|
|
virtual stateResult_t Torso_Pain( stateParms_t* parms );
|
|
virtual stateResult_t Torso_MeleeAttack( stateParms_t* parms );
|
|
virtual stateResult_t Torso_LeapAttack( stateParms_t* parms );
|
|
virtual stateResult_t Torso_Walk( stateParms_t* parms );
|
|
virtual stateResult_t Torso_Run( stateParms_t* parms );
|
|
virtual stateResult_t Torso_DodgeLeft( stateParms_t* parms );
|
|
virtual stateResult_t Torso_DodgeRight( stateParms_t* parms );
|
|
virtual stateResult_t state_Begin( stateParms_t* parms );
|
|
virtual stateResult_t state_Idle( stateParms_t* parms );
|
|
virtual stateResult_t combat_leap( stateParms_t* parms );
|
|
virtual stateResult_t combat_melee( stateParms_t* parms );
|
|
virtual stateResult_t combat_dodge_left( stateParms_t* parms );
|
|
virtual stateResult_t combat_dodge_right( stateParms_t* parms );
|
|
virtual stateResult_t path_jump( stateParms_t* parms );
|
|
virtual stateResult_t state_LostCombat( stateParms_t* parms );
|
|
virtual stateResult_t state_Explode( stateParms_t* parms );
|
|
virtual stateResult_t combat_explode( stateParms_t* parms );
|
|
virtual stateResult_t state_Killed( stateParms_t* parms );
|
|
virtual int check_attacks() override;
|
|
virtual bool do_attack( int attack_flags ) override;
|
|
|
|
};
|