Files
DoomRTX/neo/doom3/game/ai/AI_monster_boss_guardian_seeker.h
T
2026-05-23 14:30:21 -07:00

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 );
};