mirror of
https://github.com/jmarshall23/DoomRTX.git
synced 2026-08-21 13:10:37 +02:00
69 lines
2.4 KiB
C++
69 lines
2.4 KiB
C++
// AI_monster_boss_guardian_seeker.h
|
|
// Native state-machine replacement for ai_monster_boss_guardian_seeker.script.
|
|
|
|
#pragma once
|
|
|
|
|
|
#ifndef SEEKER_TOOCLOSE_RANGE
|
|
#define SEEKER_TOOCLOSE_RANGE 200
|
|
#endif
|
|
#ifndef SEEKER_TOOFAR_RANGE
|
|
#define SEEKER_TOOFAR_RANGE 650
|
|
#endif
|
|
#ifndef SEEKER_IDEAL_RANGE
|
|
#define SEEKER_IDEAL_RANGE 430
|
|
#endif
|
|
#ifndef SEEKER_MAXIMUM_RETREAT_RANGE
|
|
#define SEEKER_MAXIMUM_RETREAT_RANGE ( SEEKER_TOOFAR_RANGE + 200 )
|
|
#endif
|
|
#ifndef SEEKER_RUNTIME
|
|
#define SEEKER_RUNTIME 2
|
|
#endif
|
|
#ifndef SEEKER_GETCLOSER_DELAY
|
|
#define SEEKER_GETCLOSER_DELAY 3
|
|
#endif
|
|
#ifndef SEEKER_GETCLOSER_TIME
|
|
#define SEEKER_GETCLOSER_TIME 1
|
|
#endif
|
|
#ifndef SEEKER_SIGHTTIME
|
|
#define SEEKER_SIGHTTIME 2
|
|
#endif
|
|
#ifndef SEEKER_ESCAPE_SPEED
|
|
#define SEEKER_ESCAPE_SPEED 800
|
|
#endif
|
|
|
|
class rvmMonsterBossGuardianSeeker : public rvmSeekerBase {
|
|
public:
|
|
CLASS_PROTOTYPE( rvmMonsterBossGuardianSeeker );
|
|
|
|
rvmMonsterBossGuardianSeeker();
|
|
virtual void Init( idAI* aiOwner ) override;
|
|
virtual stateResult_t RunStateByName( const char* stateName, stateParms_t* parms ) override;
|
|
|
|
protected:
|
|
float painNextTime;
|
|
float nextEnemyCheck;
|
|
float getCloserEndTime;
|
|
float retreatEndTime;
|
|
idEntityPtr<idEntity> guardian;
|
|
|
|
virtual stateResult_t Torso_Idle( stateParms_t* parms );
|
|
virtual stateResult_t Torso_Fly( stateParms_t* parms );
|
|
virtual stateResult_t Torso_Pain( stateParms_t* parms );
|
|
virtual stateResult_t Torso_MeleeAttack( stateParms_t* parms );
|
|
virtual stateResult_t Torso_Death( stateParms_t* parms );
|
|
virtual stateResult_t see_enemy( stateParms_t* parms );
|
|
virtual stateResult_t lost_enemy( stateParms_t* parms );
|
|
virtual stateResult_t respawnSeeker( stateParms_t* parms );
|
|
virtual stateResult_t state_Respawn( stateParms_t* parms );
|
|
virtual stateResult_t state_Inactive( stateParms_t* parms );
|
|
virtual stateResult_t state_Idle( stateParms_t* parms );
|
|
virtual stateResult_t state_Killed( stateParms_t* parms );
|
|
virtual stateResult_t state_WatchPlayer( stateParms_t* parms );
|
|
virtual stateResult_t state_GetCloser( stateParms_t* parms );
|
|
virtual stateResult_t state_FindPlayer( stateParms_t* parms );
|
|
virtual stateResult_t state_Retreat( stateParms_t* parms );
|
|
virtual stateResult_t state_RunAway( stateParms_t* parms );
|
|
|
|
};
|