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

47 lines
1.8 KiB
C++

// AI_monster_zombie_commando_tentacle.h
// Native state-machine replacement for ai_monster_zombie_commando_tentacle.script.
#pragma once
#ifndef ZCT_RUNDISTANCE
#define ZCT_RUNDISTANCE 128
#define ZCT_WALKTURN 65
#define ZCT_ATTACK_RATE 5
#define ZCT_TENTACLE_RANGE_MAX 200
#define ZCT_NOFOVTIME 4
#define ATTACK_TENTACLE ATTACK_SPECIAL1
#endif
class rvmMonsterZombieCommandoTentacle : public rvmMonsterBase {
public:
CLASS_PROTOTYPE( rvmMonsterZombieCommandoTentacle );
rvmMonsterZombieCommandoTentacle();
virtual void Init( idAI* aiOwner ) override;
virtual stateResult_t RunStateByName( const char* stateName, stateParms_t* parms ) override;
protected:
float nextAttack;
float nextNoFOVAttack;
bool tentacleDamage;
float painNextTime;
virtual stateResult_t Torso_Idle( stateParms_t* parms ) override;
virtual stateResult_t Torso_Pain( stateParms_t* parms );
virtual stateResult_t Torso_MeleeAttack( stateParms_t* parms );
virtual stateResult_t Torso_TentacleAttack( stateParms_t* parms );
virtual stateResult_t Legs_Idle( stateParms_t* parms ) override;
virtual stateResult_t Legs_Walk( stateParms_t* parms );
virtual stateResult_t Legs_Run( stateParms_t* parms );
virtual stateResult_t state_Begin( stateParms_t* parms ) override;
virtual stateResult_t state_Idle( stateParms_t* parms );
virtual stateResult_t combat_tentacle( stateParms_t* parms );
virtual stateResult_t combat_melee( stateParms_t* parms );
virtual int check_attacks() override;
virtual bool do_attack( int attack_flags ) override;
virtual void tentacle_attack_start();
virtual void tentacle_attack_end();
};