mirror of
https://github.com/jmarshall23/DoomRTX.git
synced 2026-08-17 19:23:51 +02:00
49 lines
1.7 KiB
C++
49 lines
1.7 KiB
C++
// AI_monster_turret.h
|
|
// Native state-machine replacement for ai_monster_turret.script.
|
|
|
|
#pragma once
|
|
|
|
|
|
#ifndef TURRET_FIRE_RATE
|
|
#define TURRET_FIRE_RATE 0.1f
|
|
#endif
|
|
#ifndef TURRET_MIN_ATTACK_TIME
|
|
#define TURRET_MIN_ATTACK_TIME 1.5f
|
|
#endif
|
|
#ifndef TURRET_SHUTDOWN_TIME
|
|
#define TURRET_SHUTDOWN_TIME 4
|
|
#endif
|
|
|
|
class rvmMonsterTurret : public rvmMonsterBase {
|
|
public:
|
|
CLASS_PROTOTYPE( rvmMonsterTurret );
|
|
|
|
rvmMonsterTurret();
|
|
virtual void Init( idAI* aiOwner ) override;
|
|
virtual stateResult_t RunStateByName( const char* stateName, stateParms_t* parms ) override;
|
|
|
|
protected:
|
|
bool fire;
|
|
bool attack_monsters;
|
|
bool light_is_on;
|
|
float attackTime;
|
|
float nextFireTime;
|
|
float shutdownTime;
|
|
idEntityPtr<idEntity> light;
|
|
|
|
virtual stateResult_t Torso_Death( stateParms_t* parms );
|
|
virtual stateResult_t Torso_Idle( stateParms_t* parms );
|
|
virtual stateResult_t Torso_Attack( stateParms_t* parms );
|
|
virtual stateResult_t state_Begin( stateParms_t* parms );
|
|
virtual stateResult_t state_Idle( stateParms_t* parms );
|
|
virtual stateResult_t state_Disabled( stateParms_t* parms );
|
|
virtual stateResult_t state_Killed( stateParms_t* parms );
|
|
virtual stateResult_t state_Combat( stateParms_t* parms );
|
|
virtual stateResult_t combat_attack( stateParms_t* parms );
|
|
virtual stateResult_t spawn_light( stateParms_t* parms );
|
|
virtual stateResult_t light_off( stateParms_t* parms );
|
|
virtual stateResult_t light_on( stateParms_t* parms );
|
|
virtual bool checkForEnemy( bool use_fov );
|
|
|
|
};
|