mirror of
https://github.com/jmarshall23/DoomRTX.git
synced 2026-08-19 12:14:35 +02:00
73 lines
2.2 KiB
C++
73 lines
2.2 KiB
C++
// AI_monster_boss_cyberdemon.h
|
|
// Native state-machine replacement for ai_monster_boss_cyberdemon.script.
|
|
|
|
#pragma once
|
|
|
|
|
|
#ifndef CYBER_ATTACK_RATE
|
|
#define CYBER_ATTACK_RATE 5
|
|
#endif
|
|
#ifndef CYBER_PAIN_DELAY
|
|
#define CYBER_PAIN_DELAY 0.25f
|
|
#endif
|
|
#ifndef CYBER_NOFOVTIME
|
|
#define CYBER_NOFOVTIME 4
|
|
#endif
|
|
#ifndef CYBER_PAIN_TO_IDLE
|
|
#define CYBER_PAIN_TO_IDLE 2
|
|
#endif
|
|
#ifndef CYBER_PAIN_TO_PAIN
|
|
#define CYBER_PAIN_TO_PAIN 0
|
|
#endif
|
|
#ifndef CYBER_MELEE_TO_IDLE
|
|
#define CYBER_MELEE_TO_IDLE 4
|
|
#endif
|
|
#ifndef CYBER_RANGE_TO_IDLE
|
|
#define CYBER_RANGE_TO_IDLE 4
|
|
#endif
|
|
#ifndef CYBER_IDLE_TO_PAIN
|
|
#define CYBER_IDLE_TO_PAIN 0
|
|
#endif
|
|
#ifndef CYBER_IDLE_TO_WALK
|
|
#define CYBER_IDLE_TO_WALK 4
|
|
#endif
|
|
#ifndef CYBER_WALK_TO_IDLE
|
|
#define CYBER_WALK_TO_IDLE 4
|
|
#endif
|
|
#ifndef CYBER_WALK_TO_RANGEATTACK
|
|
#define CYBER_WALK_TO_RANGEATTACK 4
|
|
#endif
|
|
#ifndef CYBER_WALK_TO_MELEE
|
|
#define CYBER_WALK_TO_MELEE 4
|
|
#endif
|
|
|
|
class rvmMonsterBossCyberdemon : public rvmMonsterBase {
|
|
public:
|
|
CLASS_PROTOTYPE( rvmMonsterBossCyberdemon );
|
|
|
|
rvmMonsterBossCyberdemon();
|
|
virtual void Init( idAI* aiOwner ) override;
|
|
virtual stateResult_t RunStateByName( const char* stateName, stateParms_t* parms ) override;
|
|
|
|
protected:
|
|
float nextAttack;
|
|
float nextNoFOVAttack;
|
|
float painNextTime;
|
|
idStr range_attack_anim;
|
|
idEntityPtr<idEntity> kick_entity;
|
|
|
|
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_RangeAttack( stateParms_t* parms );
|
|
virtual stateResult_t Legs_Idle( stateParms_t* parms );
|
|
virtual stateResult_t Legs_Walk( stateParms_t* parms );
|
|
virtual stateResult_t state_Begin( stateParms_t* parms );
|
|
virtual stateResult_t state_Idle( stateParms_t* parms );
|
|
virtual stateResult_t combat_range( stateParms_t* parms );
|
|
virtual stateResult_t combat_melee( stateParms_t* parms );
|
|
virtual int check_attacks() override;
|
|
virtual bool do_attack( int attack_flags ) override;
|
|
|
|
};
|