mirror of
https://github.com/jmarshall23/DoomRTX.git
synced 2026-08-17 11:00:38 +02:00
70 lines
2.9 KiB
C++
70 lines
2.9 KiB
C++
// AI_monster_zombie_commando_cgun.h
|
|
// Native state-machine replacement for ai_monster_zombie_commando_cgun.script.
|
|
|
|
#pragma once
|
|
|
|
|
|
#ifndef ZOMBIE_CGUN_RUNDISTANCE
|
|
#define ZOMBIE_CGUN_RUNDISTANCE 192
|
|
#define ZOMBIE_CGUN_WALKTURN 65
|
|
#define ZOMBIE_CGUN_DODGE_RATE 3
|
|
#define ZOMBIE_CGUN_NOFOVTIME 4
|
|
#define ZOMBIE_CGUN_MIN_SHOT_TIME 0.5
|
|
#define ZOMBIE_CGUN_ATTACK_DELAY_MIN 0.5
|
|
#define ZOMBIE_CGUN_ATTACK_DELAY_MAX 2
|
|
#define ZOMBIE_CGUN_STAND_ATTACK_MIN_LENGTH 3
|
|
#define ZOMBIE_CGUN_STAND_ATTACK_MAX_LENGTH 15
|
|
#define ZOMBIE_CGUN_CROUCH_ATTACK_MIN_LENGTH 3
|
|
#define ZOMBIE_CGUN_CROUCH_ATTACK_MAX_LENGTH 15
|
|
#define ZOMBIE_CGUN_WAIT_MIN_LENGTH 0.3
|
|
#define ZOMBIE_CGUN_WAIT_MAX_LENGTH 1.5
|
|
#define ATTACK_ZCC_CROUCHFIRE ATTACK_SPECIAL1
|
|
#endif
|
|
|
|
class rvmMonsterZombieCommandoCGun : public rvmMonsterBase {
|
|
public:
|
|
CLASS_PROTOTYPE( rvmMonsterZombieCommandoCGun );
|
|
|
|
rvmMonsterZombieCommandoCGun();
|
|
virtual void Init( idAI* aiOwner ) override;
|
|
virtual stateResult_t RunStateByName( const char* stateName, stateParms_t* parms ) override;
|
|
|
|
protected:
|
|
bool fire;
|
|
bool crouch_fire;
|
|
bool step_left;
|
|
bool step_right;
|
|
bool run_attack;
|
|
float nextDodge;
|
|
float nextAttack;
|
|
float nextNoFOVAttack;
|
|
idEntityPtr<idEntity> combat_node;
|
|
float painNextTime;
|
|
float attackEndTime;
|
|
float loopEndTime;
|
|
float minShootTime;
|
|
bool firstShot;
|
|
|
|
virtual stateResult_t Torso_Idle( stateParms_t* parms ) override;
|
|
virtual stateResult_t Torso_Pain( stateParms_t* parms );
|
|
virtual stateResult_t Torso_RangeAttack( stateParms_t* parms );
|
|
virtual stateResult_t Torso_TurretAttack( stateParms_t* parms );
|
|
virtual stateResult_t Torso_CrouchAttack( 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 Legs_DodgeLeft( stateParms_t* parms );
|
|
virtual stateResult_t Legs_DodgeRight( stateParms_t* parms );
|
|
virtual stateResult_t Legs_StepLeft( stateParms_t* parms );
|
|
virtual stateResult_t Legs_StepRight( stateParms_t* parms );
|
|
virtual stateResult_t state_Begin( stateParms_t* parms ) override;
|
|
virtual stateResult_t state_Idle( stateParms_t* parms );
|
|
virtual stateResult_t stand_attack( stateParms_t* parms );
|
|
virtual stateResult_t crouch_attack( stateParms_t* parms );
|
|
virtual stateResult_t combat_dodge_left( stateParms_t* parms );
|
|
virtual stateResult_t combat_dodge_right( stateParms_t* parms );
|
|
|
|
virtual int check_attacks() override;
|
|
virtual bool do_attack( int attack_flags ) override;
|
|
};
|