DayZ 1.24
Loading...
Searching...
No Matches
DayZInfected Class Reference
Collaboration diagram for DayZInfected:
[legend]

Protected Member Functions

void ZombieBase ()
 
void Init ()
 
override void OnVariablesSynchronized ()
 synced variable(s) handler
 
override void EOnInit (IEntity other, int extra)
 
override bool IsZombie ()
 
override bool IsDanger ()
 
override bool IsZombieMilitary ()
 
bool IsMale ()
 
override bool CanBeBackstabbed ()
 
override AnimBootsType GetBootsType ()
 
override bool CanBeSkinned ()
 
override bool IsHealthVisible ()
 
override bool IsRefresherSignalingViable ()
 
override string GetHitComponentForAI ()
 returns hit component for attacking AI
 
override string GetDefaultHitComponent ()
 returns default hit component (fallback)
 
override vector GetDefaultHitPosition ()
 
vector SetDefaultHitPosition (string pSelection)
 
override array< stringGetSuitableFinisherHitComponents ()
 returns suitable hit components for finisher attacks; DEPRECATED
 
int GetMindStateSynced ()
 
int GetOrientationSynced ()
 returns rounded zombie yaw for sync purposes
 
void CommandHandler (float pDt, int pCurrentCommandID, bool pCurrentCommandFinished)
 
void CommandHandlerDebug (float pDt, int pCurrentCommandID, bool pCurrentCommandFinished)
 
void HandleMove (int pCurrentCommandID)
 
void HandleOrientation (float pDt, int pCurrentCommandID)
 
bool HandleDeath (int pCurrentCommandID)
 
bool EvaluateDeathAnimationEx (EntityAI pSource, ZombieHitData data, out int pAnimType, out float pAnimHitDir)
 
bool EvaluateDeathAnimation (EntityAI pSource, string pComponent, string pAmmoType, out int pAnimType, out float pAnimHitDir)
 
int GetVaultType (float height)
 
bool HandleVault (int pCurrentCommandID, DayZInfectedInputController pInputController, float pDt)
 
bool HandleMindStateChange (int pCurrentCommandID, DayZInfectedInputController pInputController, float pDt)
 
void HandleSoundEvents ()
 
AbstractWave ProcessVoiceFX (string pSoundSetName)
 
override void OnSoundVoiceEvent (int event_id, string event_user_string)
 
void ProcessSoundVoiceEvent (AnimSoundVoiceEvent sound_event, out AbstractWave aw)
 
bool FightLogic (int pCurrentCommandID, DayZInfectedInputController pInputController, float pDt)
 
bool ChaseAttackLogic (int pCurrentCommandID, DayZInfectedInputController pInputController, float pDt)
 
bool FightAttackLogic (int pCurrentCommandID, DayZInfectedInputController pInputController, float pDt)
 
int GetAttackPitch (EntityAI target)
 
bool HandleCrawlTransition (int pCurrentCommandID)
 
bool EvaluateCrawlTransitionAnimation (EntityAI pSource, string pComponent, string pAmmoType, out int pAnimType)
 
bool HandleDamageHit (int pCurrentCommandID)
 
bool EvaluateDamageHitAnimation (EntityAI pSource, string pComponent, string pAmmoType, out bool pHeavyHit, out int pAnimType, out float pAnimHitDir)
 selects animation type and direction based on damage system data
 
float ComputeHitDirectionAngle (EntityAI pSource)
 
float ComputeHitDirectionAngleEx (EntityAI pSource, int invertHitDir=0)
 
override void EEHitBy (TotalDamageResult damageResult, int damageType, EntityAI source, int component, string dmgZone, string ammo, vector modelPos, float speedCoef)
 
override void EEHitByRemote (int damageType, EntityAI source, int component, string dmgZone, string ammo, vector modelPos)
 
void DebugSound (string s)
 sound debug messages
 
void EOnContact (IEntity other, Contact extra)
 
override bool CanReceiveAttachment (EntityAI attachment, int slotId)
 
override vector GetCenter ()
 
override bool IsBeingBackstabbed ()
 returns true if backstab is in progress; used for suspending of AI targeting and other useful things besides
 
override void SetBeingBackstabbed (int backstabType)
 
bool IsCrawling ()
 returns true if crawling; 'DayZInfectedCommandCrawl' is only for the transition, after that it remains 'DayZInfectedCommandMove' (unreliable)
 
void OnRecoverFromDeath ()
 
override void AddArrow (Object arrow, int componentIndex, vector closeBonePosWS, vector closeBoneRotWS)
 
override bool IsManagingArrows ()
 
override ArrowManagerBase GetArrowManager ()
 

Protected Attributes

int m_StanceVariation = 0
 server / singleplayer properties
 
int m_LastMindState = -1
 
float m_LastMovementSpeed = -1
 
bool m_KnuckleLand = false
 
float m_KnuckleOutTimer = 0
 
int m_MindState = -1
 
int m_OrientationLocal = -1
 
int m_OrientationSynced = -1
 
float m_OrientationTimer
 
float m_MovementSpeed = -1
 
vector m_DefaultHitPosition
 
float m_DeltaTime
 
AbstractWave m_LastSoundVoiceAW
 
ref InfectedSoundEventHandler m_InfectedSoundEventHandler
 
ref array< Objectm_AllTargetObjects
 
ref array< typenamem_TargetableObjects
 
bool m_IsCrawling
 
bool m_FinisherInProgress = false
 
ref ArrowManagerBase m_ArrowManager
 
float m_DamageHitDirection = 0
 
int m_DeathType = 0
 
int m_ActiveVaultType = -1
 
EntityAI m_ActualTarget = null
 
float m_AttackCooldownTime = 0
 
DayZInfectedAttackType m_ActualAttackType = null
 
int m_CrawlTransition = -1
 
bool m_DamageHitToProcess = false
 
bool m_DamageHitHeavy = false
 
int m_DamageHitType = 0
 
float m_ShockDamage = 0
 
const float HIT_INTERVAL_MIN = 0.3
 
float m_HitElapsedTime = HIT_INTERVAL_MIN
 

Private Attributes

const float TARGET_CONE_ANGLE_CHASE = 20
 
const float TARGET_CONE_ANGLE_FIGHT = 30
 
const float ORIENTATION_SYNC_THRESHOLD = 30
 
const float SHOCK_TO_STUN_MULTIPLIER = 2.82
 

Detailed Description

Definition at line 1 of file ZombieBase.c.

Member Function Documentation

◆ AddArrow()

override void DayZInfected::AddArrow ( Object arrow,
int componentIndex,
vector closeBonePosWS,
vector closeBoneRotWS )
inlineprotected

Definition at line 1052 of file ZombieBase.c.

1053 {
1055 GetActionComponentNameList(componentIndex, CachedObjectsArrays.ARRAY_STRING, "fire");
1056
1057 int pivot = -1;
1058
1059
1060 for (int i = 0; i < CachedObjectsArrays.ARRAY_STRING.Count() && pivot == -1; i++)
1062
1065
1066 if (pivot == -1)
1068 else
1069 {
1070 vector rotMatrix[3];
1072
1073 parentTransMat[0] = rotMatrix[0];
1074 parentTransMat[1] = rotMatrix[1];
1075 parentTransMat[2] = rotMatrix[2];
1077 }
1078
1079 arrow.GetTransform(arrowTransMat);
1081 // orthogonalize matrix - parent might be skewed
1083 arrow.SetTransform(arrowTransMat);
1084
1086 }
proto native int GetBoneIndexByName(string pBoneName)
returns bone index for a name (-1 if pBoneName doesn't exist)
static ref TStringArray ARRAY_STRING
Definition EnMath.c:7
static proto void YawPitchRollMatrix(vector ang, out vector mat[3])
Creates rotation matrix from angles.
static proto void MatrixInvMultiply4(vector mat0[4], vector mat1[4], out vector res[4])
Invert-transforms matrix.
static proto void MatrixOrthogonalize4(vector mat[4])
Orthogonalizes matrix.
static const float RAD2DEG
Definition EnMath.c:16
proto native void AddChild(Widget child, bool immedUpdate=true)
enum HumanMoveCommandID GetTransformWS(out vector pTm[4])
gets human transform in World Space

References AddChild(), CachedObjectsArrays::ARRAY_STRING, GetBoneIndexByName(), GetTransformWS(), Math3D::MatrixInvMultiply4(), Math3D::MatrixOrthogonalize4(), Math::RAD2DEG, and Math3D::YawPitchRollMatrix().

◆ CanBeBackstabbed()

override bool DayZInfected::CanBeBackstabbed ( )
inlineprotected

Definition at line 120 of file ZombieBase.c.

121 {
122 return true;
123 }

◆ CanBeSkinned()

override bool DayZInfected::CanBeSkinned ( )
inlineprotected

Definition at line 131 of file ZombieBase.c.

132 {
133 return false;
134 }

◆ CanReceiveAttachment()

override bool DayZInfected::CanReceiveAttachment ( EntityAI attachment,
int slotId )
inlineprotected

Definition at line 990 of file ZombieBase.c.

991 {
992 if (!IsAlive())
993 return false;
994 return super.CanReceiveAttachment(attachment, slotId);
995 }

◆ ChaseAttackLogic()

bool DayZInfected::ChaseAttackLogic ( int pCurrentCommandID,
DayZInfectedInputController pInputController,
float pDt )
inlineprotected

do not attack players in vehicle - hotfix

target is outside the targeting cone; skip attack

Definition at line 641 of file ZombieBase.c.

642 {
643 // always update target - it can be destroyed
644 m_ActualTarget = pInputController.GetTargetEntity();
645
648 if (pb && pb.GetCommand_Vehicle())
649 return false;
650
651 if (m_ActualTarget == NULL)
652 return false;
653
654 vector targetPos = m_ActualTarget.GetPosition();
656 return false;
657
660
663 {
666 if (m_ActualTarget != target)
667 {
668 m_AllTargetObjects.Clear();
669 return false;
670 }
671
674 return true;
675 }
676
677 return false;
678 }
DayZInfectedAttackGroupType
void DayZPlayerUtils()
cannot be instantiated
class JsonUndergroundAreaTriggerData GetPosition
const float TARGET_CONE_ANGLE_CHASE
Definition ZombieBase.c:3
ref array< Object > m_AllTargetObjects
Definition ZombieBase.c:29
DayZInfectedAttackType m_ActualAttackType
Definition ZombieBase.c:576
EntityAI m_ActualTarget
Definition ZombieBase.c:574
float m_AttackCooldownTime
Definition ZombieBase.c:575
ref array< typename > m_TargetableObjects
Definition ZombieBase.c:30
int GetAttackPitch(EntityAI target)
Definition ZombieBase.c:725
static proto native float Distance(vector v1, vector v2)
Returns the distance between tips of two 3D vectors.

References DayZPlayerUtils(), vector::Distance(), GetPosition, m_AllTargetObjects, DayZInfectedAttackType::m_Cooldown, DayZInfectedAttackType::m_Distance, DayZInfectedAttackType::m_Subtype, m_TargetableObjects, and DayZInfectedAttackType::m_Type.

◆ CommandHandler()

void DayZInfected::CommandHandler ( float pDt,
int pCurrentCommandID,
bool pCurrentCommandFinished )
inlineprotected

CommandHandler

for mods

handle death

movement handler (just for sync now)

handle finished commands

default behaviour after finish is to start move

for mods

crawl transition

damage hits

Definition at line 190 of file ZombieBase.c.

191 {
193
196 return;
197
199 if (pCurrentCommandID != DayZInfectedConstants.COMMANDID_DEATH)
200 {
202 return;
203 }
204 else if (!pCurrentCommandFinished)
205 return;
206
207
211
214 {
217 moveCommand.SetStanceVariation(m_StanceVariation);
218
219 return;
220 }
221
224 return;
225
228 return;
229
232 return;
233
235 if (inputController)
236 {
238 return;
239
241 return;
242
244 return;
245 }
246
249 return;
250 }
bool ModCommandHandlerInside(float pDt, int pCurrentCommandID, bool pCurrentCommandFinished)
Definition DayZAnimal.c:127
bool ModCommandHandlerBefore(float pDt, int pCurrentCommandID, bool pCurrentCommandFinished)
Definition DayZAnimal.c:122
bool ModCommandHandlerAfter(float pDt, int pCurrentCommandID, bool pCurrentCommandFinished)
Definition DayZAnimal.c:132
DayZInfectedConstants
Definition DayZInfected.c:2
int m_StanceVariation
server / singleplayer properties
Definition ZombieBase.c:10
bool FightLogic(int pCurrentCommandID, DayZInfectedInputController pInputController, float pDt)
Definition ZombieBase.c:578
bool HandleVault(int pCurrentCommandID, DayZInfectedInputController pInputController, float pDt)
Definition ZombieBase.c:386
float m_DeltaTime
Definition ZombieBase.c:24
void HandleOrientation(float pDt, int pCurrentCommandID)
Definition ZombieBase.c:286
bool HandleDamageHit(int pCurrentCommandID)
Definition ZombieBase.c:814
bool HandleCrawlTransition(int pCurrentCommandID)
Definition ZombieBase.c:758
void HandleMove(int pCurrentCommandID)
Definition ZombieBase.c:271
bool HandleDeath(int pCurrentCommandID)
Definition ZombieBase.c:322
bool HandleMindStateChange(int pCurrentCommandID, DayZInfectedInputController pInputController, float pDt)
Definition ZombieBase.c:423
proto native HumanCommandMove StartCommand_Move()
--— MOVE --—
proto native HumanInputController GetInputController()
returns human input controller

References GetInputController(), ModCommandHandlerAfter(), ModCommandHandlerBefore(), ModCommandHandlerInside(), and StartCommand_Move().

◆ CommandHandlerDebug()

void DayZInfected::CommandHandlerDebug ( float pDt,
int pCurrentCommandID,
bool pCurrentCommandFinished )
inlineprotected

CommandHandlerDebug

Definition at line 257 of file ZombieBase.c.

258 {
259 if (GetPluginManager())
260 {
261 PluginDayZInfectedDebug infectedDebug = PluginDayZInfectedDebug.Cast(GetPluginManager().GetPluginByType(PluginDayZInfectedDebug));
262 if (infectedDebug)
263 infectedDebug.CommandHandler(this);
264 }
265 }
PluginManager GetPluginManager()
Returns registred plugin by class type, better is to use global funtion GetPlugin(typename plugin_typ...

References GetPluginManager().

◆ ComputeHitDirectionAngle()

float DayZInfected::ComputeHitDirectionAngle ( EntityAI pSource)
inlineprotected

Definition at line 876 of file ZombieBase.c.

877 {
878 vector targetDirection = GetDirection();
879 vector toSourceDirection = (pSource.GetPosition() - GetPosition());
880
881 targetDirection[1] = 0;
882 toSourceDirection[1] = 0;
883
884 targetDirection.Normalize();
885 toSourceDirection.Normalize();
886
889
890 float dirAngle = Math.Acos(cosFi) * Math.RAD2DEG;
891 if (cross[1] < 0)
893
894 return dirAngle;
895 }
static float Dot(vector v1, vector v2)
Returns Dot product of vector v1 and vector v2.
Definition EnConvert.c:271
static proto float Acos(float c)
Returns angle in radians from cosinus.

References Math::Acos(), vector::Dot(), GetPosition, and Math::RAD2DEG.

◆ ComputeHitDirectionAngleEx()

float DayZInfected::ComputeHitDirectionAngleEx ( EntityAI pSource,
int invertHitDir = 0 )
inlineprotected

Definition at line 897 of file ZombieBase.c.

898 {
899 vector targetDirection = GetDirection();
900 vector toSourceDirection = (pSource.GetPosition() - GetPosition());
901
902 targetDirection[1] = 0;
903 toSourceDirection[1] = 0;
904
905 targetDirection.Normalize();
906 toSourceDirection.Normalize();
907
910
911 float dirAngle = Math.Acos(cosFi) * Math.RAD2DEG;
912
913 // We will invert direction of the hit
914 if (invertHitDir > 0)
915 dirAngle -= 180;
916
917 if (cross[1] < 0)
919
920 return dirAngle;
921 }

References Math::Acos(), vector::Dot(), GetPosition, and Math::RAD2DEG.

◆ DebugSound()

void DayZInfected::DebugSound ( string s)
inlineprotected

sound debug messages

Definition at line 967 of file ZombieBase.c.

968 {
969 //Print(s);
970 }

◆ EEHitBy()

override void DayZInfected::EEHitBy ( TotalDamageResult damageResult,
int damageType,
EntityAI source,
int component,
string dmgZone,
string ammo,
vector modelPos,
float speedCoef )
inlineprotected

Events from damage system

Definition at line 928 of file ZombieBase.c.

929 {
931
932 m_TransportHitRegistered = false;
933
934 if (!IsAlive())
935 {
937 data.m_Component = component;
938 data.m_DamageZone = dmgZone;
939 data.m_AmmoType = ammo;
941 }
942 else
943 {
944 int crawlTransitionType = -1;
946 {
948 return;
949 }
950
952 {
953 if (dmgZone)
954 m_ShockDamage = damageResult.GetDamage(dmgZone, "Shock");
956 return;
957 }
958 }
959 }
class BoxCollidingParams component
ComponentInfo for BoxCollidingResult.
int m_CrawlTransition
Definition ZombieBase.c:756
bool m_DamageHitHeavy
Definition ZombieBase.c:807
int m_DamageHitType
Definition ZombieBase.c:808
bool EvaluateCrawlTransitionAnimation(EntityAI pSource, string pComponent, string pAmmoType, out int pAnimType)
Definition ZombieBase.c:773
float m_DamageHitDirection
Definition ZombieBase.c:319
bool EvaluateDeathAnimationEx(EntityAI pSource, ZombieHitData data, out int pAnimType, out float pAnimHitDir)
Definition ZombieBase.c:336
float m_ShockDamage
Definition ZombieBase.c:809
bool EvaluateDamageHitAnimation(EntityAI pSource, string pComponent, string pAmmoType, out bool pHeavyHit, out int pAnimType, out float pAnimHitDir)
selects animation type and direction based on damage system data
Definition ZombieBase.c:849
bool m_DamageHitToProcess
Definition ZombieBase.c:805

References component.

◆ EEHitByRemote()

override void DayZInfected::EEHitByRemote ( int damageType,
EntityAI source,
int component,
string dmgZone,
string ammo,
vector modelPos )
inlineprotected

Definition at line 961 of file ZombieBase.c.

962 {
964 }

References component.

◆ EOnContact()

void DayZInfected::EOnContact ( IEntity other,
Contact extra )
inlineprotected

Phx contact event

Definition at line 977 of file ZombieBase.c.

978 {
979 if (!IsAlive())
980 return;
981
983 if (transport)
984 {
985 if (GetGame().IsServer())
986 RegisterTransportHit(transport);
987 }
988 }
Base native class for all motorized wheeled vehicles.
Definition Car.c:75
proto native CGame GetGame()

References GetGame().

◆ EOnInit()

override void DayZInfected::EOnInit ( IEntity other,
int extra )
inlineprotected

Definition at line 89 of file ZombieBase.c.

90 {
91 if (!GetGame().IsMultiplayer() || GetGame().IsServer())
92 {
94
96 moveCommand.SetStanceVariation(m_StanceVariation);
97 }
98 }
static proto int RandomInt(int min, int max)
Returns a random int number between and min [inclusive] and max [exclusive].
proto native HumanCommandMove GetCommand_Move()

References GetCommand_Move(), GetGame(), and Math::RandomInt().

◆ EvaluateCrawlTransitionAnimation()

bool DayZInfected::EvaluateCrawlTransitionAnimation ( EntityAI pSource,
string pComponent,
string pAmmoType,
out int pAnimType )
inlineprotected

Definition at line 773 of file ZombieBase.c.

774 {
775 pAnimType = -1;
776 if (pComponent == "LeftLeg" && GetHealth(pComponent, "Health") == 0)
777 pAnimType = 0;
778 else if (pComponent == "RightLeg" && GetHealth(pComponent, "Health") == 0)
779 pAnimType = 2;
780
781 if (pAnimType != -1)
782 {
783 vector targetDirection = GetDirection();
784 vector toSourceDirection = (pSource.GetPosition() - GetPosition());
785
786 targetDirection[1] = 0;
787 toSourceDirection[1] = 0;
788
789 targetDirection.Normalize();
790 toSourceDirection.Normalize();
791
793 if (cosFi >= 0) // front
794 pAnimType++;
795 }
796
797 return pAnimType != -1;
798 }

References vector::Dot(), and GetPosition.

◆ EvaluateDamageHitAnimation()

bool DayZInfected::EvaluateDamageHitAnimation ( EntityAI pSource,
string pComponent,
string pAmmoType,
out bool pHeavyHit,
out int pAnimType,
out float pAnimHitDir )
inlineprotected

selects animation type and direction based on damage system data

heavy hit

anim type

direction

shock GetDamage

Definition at line 849 of file ZombieBase.c.

850 {
851 int invertHitDir = 0; //Used to flip the heavy hit animation direction
852
854 pHeavyHit = ((GetGame().ConfigGetInt("cfgAmmo " + pAmmoType + " hitAnimation") > 0) || m_HeavyHitOverride);
855 invertHitDir = GetGame().ConfigGetInt("cfgAmmo " + pAmmoType + " invertHitDir");
856
858 pAnimType = 0; // belly
859
860 if (!pHeavyHit)
861 {
862 if (pComponent == "Torso") // body
863 pAnimType = 1;
864 else if (pComponent == "Head") // head
865 pAnimType = 2;
866 }
867
869 //pAnimHitDir = ComputeHitDirectionAngle(pSource);
872 //m_ShockDamage = GetGame().ConfigGetFloat( "CfgAmmo " + pAmmoType + " DamageApplied " + "Shock " + "damage");
873 return true;
874 }
float ComputeHitDirectionAngleEx(EntityAI pSource, int invertHitDir=0)
Definition ZombieBase.c:897

References GetGame().

◆ EvaluateDeathAnimation()

bool DayZInfected::EvaluateDeathAnimation ( EntityAI pSource,
string pComponent,
string pAmmoType,
out int pAnimType,
out float pAnimHitDir )
inlineprotected

anim type

direction

add some impulse if needed

Definition at line 343 of file ZombieBase.c.

344 {
346 bool doPhxImpulse = GetGame().ConfigGetInt("cfgAmmo " + pAmmoType + " doPhxImpulse") > 0;
347
350
353
355 if (doPhxImpulse)
356 {
357 vector impulse = 80 * m_TransportHitVelocity;
358 impulse[1] = 80 * 1.5;
359 //Print("Impulse: " + impulse.ToString());
360
362 }
363
364 return true;
365 }
float ComputeHitDirectionAngle(EntityAI pSource)
Definition ZombieBase.c:876
proto void dBodyApplyImpulse(notnull IEntity body, vector impulse)
Applies impuls on a rigidbody (origin)

References dBodyApplyImpulse(), and GetGame().

◆ EvaluateDeathAnimationEx()

bool DayZInfected::EvaluateDeathAnimationEx ( EntityAI pSource,
ZombieHitData data,
out int pAnimType,
out float pAnimHitDir )
inlineprotected

Definition at line 336 of file ZombieBase.c.

337 {
338 bool ret = EvaluateDeathAnimation(pSource, data.m_DamageZone, data.m_AmmoType, pAnimType, pAnimHitDir);
339
340 return ret;
341 }
bool EvaluateDeathAnimation(EntityAI pSource, string pComponent, string pAmmoType, out int pAnimType, out float pAnimHitDir)
Definition ZombieBase.c:343

◆ FightAttackLogic()

bool DayZInfected::FightAttackLogic ( int pCurrentCommandID,
DayZInfectedInputController pInputController,
float pDt )
inlineprotected

do not attack players in vehicle - hotfix

target is outside the targeting cone; skip attack

Definition at line 680 of file ZombieBase.c.

681 {
682 // always update target - it can be destroyed
683 m_ActualTarget = pInputController.GetTargetEntity();
684
687 if (pb && pb.GetCommand_Vehicle())
688 return false;
689
690 if (m_AttackCooldownTime > 0)
691 {
693 return false;
694 }
695
696 if (m_ActualTarget == null)
697 return false;
698
699 vector targetPos = m_ActualTarget.GetPosition();
702
704 return false;
705
708 {
712 {
713 m_AllTargetObjects.Clear();
714 return false;
715 }
716
719 return true;
720 }
721
722 return false;
723 }
const float TARGET_CONE_ANGLE_FIGHT
Definition ZombieBase.c:4
const float AI_ATTACKSPEED
Definition constants.c:914

References GameConstants::AI_ATTACKSPEED, DayZPlayerUtils(), vector::Distance(), GetPosition, m_AllTargetObjects, DayZInfectedAttackType::m_Cooldown, DayZInfectedAttackType::m_Distance, DayZInfectedAttackType::m_Subtype, m_TargetableObjects, and DayZInfectedAttackType::m_Type.

◆ FightLogic()

bool DayZInfected::FightLogic ( int pCurrentCommandID,
DayZInfectedInputController pInputController,
float pDt )
inlineprotected

player is in block stance and facing the infected

infected is playing heavy attack - decrease the dmg to light

override hit pos by pos defined in type

infected is playing light attack - do not send damage, play animation instead

override hit pos by pos defined in type

Definition at line 578 of file ZombieBase.c.

579 {
580 if (pCurrentCommandID == DayZInfectedConstants.COMMANDID_MOVE)
581 {
582 // we attack only in chase & fight state
583 int mindState = pInputController.GetMindState();
584 if (mindState == DayZInfectedConstants.MINDSTATE_CHASE)
586 else if (mindState == DayZInfectedConstants.MINDSTATE_FIGHT)
588 }
589 else if (pCurrentCommandID == DayZInfectedConstants.COMMANDID_ATTACK)
590 {
592 if (attackCommand && attackCommand.WasHit())
593 {
594 if (m_ActualTarget != null)
595 {
597 return false;
598
599 bool playerInBlockStance = false;
600 vector targetPos = m_ActualTarget.GetPosition();
603
605 if (playerTarget)
606 playerInBlockStance = playerTarget.GetMeleeFightLogic() && playerTarget.GetMeleeFightLogic().IsInBlock();
607
609 {
612 {
615 {
616 hitPosWS = m_ActualTarget.ModelToWorld(m_ActualTarget.GetDefaultHitPosition());
617 DamageSystem.CloseCombatDamageName(this, m_ActualTarget, m_ActualTarget.GetHitComponentForAI(), "MeleeZombie", hitPosWS);
618 }
619 else
620 {
622 hitPosWS = m_ActualTarget.ModelToWorld(m_ActualTarget.GetDefaultHitPosition());
623 DamageSystem.CloseCombatDamageName(this, m_ActualTarget, m_ActualTarget.GetHitComponentForAI(), "Dummy_Light", hitPosWS);
624 }
625 }
626 else
627 {
628 hitPosWS = m_ActualTarget.ModelToWorld(m_ActualTarget.GetDefaultHitPosition());
629 DamageSystem.CloseCombatDamageName(this, m_ActualTarget, m_ActualTarget.GetHitComponentForAI(), m_ActualAttackType.m_AmmoType, hitPosWS);
630 }
631 }
632 }
633 }
634
635 return true;
636 }
637
638 return false;
639 }
EMeleeTargetType
bool FightAttackLogic(int pCurrentCommandID, DayZInfectedInputController pInputController, float pDt)
Definition ZombieBase.c:680
bool ChaseAttackLogic(int pCurrentCommandID, DayZInfectedInputController pInputController, float pDt)
Definition ZombieBase.c:641
override int GetMeleeTargetType()
Definition Building.c:234
static proto native float DistanceSq(vector v1, vector v2)
Returns the square distance between tips of two 3D vectors.
const float AI_MAX_BLOCKABLE_ANGLE
Definition constants.c:915
static proto float AngleFromPosition(vector origin, vector originDir, vector target)
Angle that a target is from the direction of an origin.
static proto float AbsFloat(float f)
Returns absolute value.

References Math::AbsFloat(), GameConstants::AI_MAX_BLOCKABLE_ANGLE, Math3D::AngleFromPosition(), vector::DistanceSq(), EntityAI::GetMeleeTargetType(), GetPosition, DayZInfectedAttackType::m_AmmoType, DayZInfectedAttackType::m_Distance, DayZInfectedAttackType::m_IsHeavy, and Math::RAD2DEG.

◆ GetArrowManager()

override ArrowManagerBase DayZInfected::GetArrowManager ( )
inlineprotected

Definition at line 1093 of file ZombieBase.c.

1094 {
1095 return m_ArrowManager;
1096 }
ref ArrowManagerBase m_ArrowManager
Definition ZombieBase.c:38

References m_ArrowManager.

◆ GetAttackPitch()

int DayZInfected::GetAttackPitch ( EntityAI target)
inlineprotected

no default hit pos fallback

Definition at line 725 of file ZombieBase.c.

726 {
728
729 attackRefPos = target.GetDefaultHitPosition();
731 if (attackRefPos != vector.Zero)
732 attackRefPos = target.ModelToWorld(attackRefPos);
733 else
734 attackRefPos = target.GetPosition();
735
736 // Now we have only erect stance, we need to get head position later too
737 float headPosY = GetPosition()[1];
738 headPosY += 1.8;
739
740 float diff = Math.AbsFloat(attackRefPos[1] - headPosY);
741
742 if (diff < 0.3)
743 return 0;
744
745 if (headPosY > attackRefPos[1])
746 return -1;
747 else
748 return 1;
749 }
static const vector Zero
Definition EnConvert.c:110

References Math::AbsFloat(), GetPosition, and vector::Zero.

◆ GetBootsType()

override AnimBootsType DayZInfected::GetBootsType ( )
inlineprotected

Definition at line 126 of file ZombieBase.c.

127 {
128 return AnimBootsType.Boots;
129 }
AnimBootsType

◆ GetCenter()

override vector DayZInfected::GetCenter ( )
inlineprotected

Definition at line 997 of file ZombieBase.c.

998 {
999 return GetBonePositionWS(GetBoneIndexByName("spine3"));
1000 }

References GetBoneIndexByName().

◆ GetDefaultHitComponent()

override string DayZInfected::GetDefaultHitComponent ( )
inlineprotected

returns default hit component (fallback)

Definition at line 153 of file ZombieBase.c.

154 {
155 return GetDayZInfectedType().GetDefaultHitComponent();
156 }

◆ GetDefaultHitPosition()

override vector DayZInfected::GetDefaultHitPosition ( )
inlineprotected

Definition at line 158 of file ZombieBase.c.

159 {
161 }
vector m_DefaultHitPosition
Definition ZombieBase.c:23

◆ GetHitComponentForAI()

override string DayZInfected::GetHitComponentForAI ( )
inlineprotected

returns hit component for attacking AI

Definition at line 147 of file ZombieBase.c.

148 {
149 return GetDayZInfectedType().GetHitComponentForAI();
150 }

◆ GetMindStateSynced()

int DayZInfected::GetMindStateSynced ( )
inlineprotected

Definition at line 174 of file ZombieBase.c.

175 {
176 return m_MindState;
177 }

◆ GetOrientationSynced()

int DayZInfected::GetOrientationSynced ( )
inlineprotected

returns rounded zombie yaw for sync purposes

Definition at line 180 of file ZombieBase.c.

181 {
182 return m_OrientationSynced;
183 }
int m_OrientationSynced
Definition ZombieBase.c:19

◆ GetSuitableFinisherHitComponents()

override array< string > DayZInfected::GetSuitableFinisherHitComponents ( )
inlineprotected

returns suitable hit components for finisher attacks; DEPRECATED

Definition at line 169 of file ZombieBase.c.

170 {
171 return GetDayZInfectedType().GetSuitableFinisherHitComponents();
172 }

◆ GetVaultType()

int DayZInfected::GetVaultType ( float height)
inlineprotected

Definition at line 374 of file ZombieBase.c.

375 {
376 if (height <= 0.6)
377 return 0;
378 else if (height <= 1.1)
379 return 1;
380 else if (height <= 1.6)
381 return 2;
382 else
383 return 3;
384 }

◆ HandleCrawlTransition()

bool DayZInfected::HandleCrawlTransition ( int pCurrentCommandID)
inlineprotected

Definition at line 758 of file ZombieBase.c.

759 {
760 if (m_CrawlTransition != -1)
761 {
763
765 m_IsCrawling = true;
766 SetSynchDirty();
767 return true;
768 }
769
770 return pCurrentCommandID == DayZInfectedConstants.COMMANDID_CRAWL;
771 }
bool m_IsCrawling
Definition ZombieBase.c:34

◆ HandleDamageHit()

bool DayZInfected::HandleDamageHit ( int pCurrentCommandID)
inlineprotected

Definition at line 814 of file ZombieBase.c.

815 {
816 if (pCurrentCommandID == DayZInfectedConstants.COMMANDID_HIT)
817 {
818 // Throttle hit command up to a fixed rate
820 {
822 m_DamageHitToProcess = false;
823 m_ShockDamage = 0;
824 return false;
825 }
826 }
827
829 {
830 int randNum = Math.RandomIntInclusive(0, 100);
832
833 if (m_DamageHitHeavy || randNum <= stunChange || (m_MindState == DayZInfectedConstants.MINDSTATE_CALM || m_MindState == DayZInfectedConstants.MINDSTATE_DISTURBED))
834 {
837 }
838
839 m_DamageHitToProcess = false;
840 m_ShockDamage = 0;
841 m_HeavyHitOverride = false;
842 return true;
843 }
844
845 return false;
846 }
const float HIT_INTERVAL_MIN
Definition ZombieBase.c:811
const float SHOCK_TO_STUN_MULTIPLIER
Definition ZombieBase.c:7
float m_HitElapsedTime
Definition ZombieBase.c:812
static int RandomIntInclusive(int min, int max)
Returns a random int number between and min [inclusive] and max [inclusive].
Definition EnMath.c:54

References Math::RandomIntInclusive().

◆ HandleDeath()

bool DayZInfected::HandleDeath ( int pCurrentCommandID)
inlineprotected

Definition at line 322 of file ZombieBase.c.

323 {
324 if (!IsAlive() || m_FinisherInProgress)
325 {
327 m_MovementSpeed = -1;
328 m_MindState = -1;
329 SetSynchDirty();
330 return true;
331 }
332
333 return false;
334 }
bool m_FinisherInProgress
Definition ZombieBase.c:36
float m_MovementSpeed
Definition ZombieBase.c:21
proto native HumanCommandDeathCallback StartCommand_Death(int pType, float pDirection, typename pCallbackClass, bool pKeepInLocalSpaceAfterLeave=false)
--— Death --—

References StartCommand_Death().

◆ HandleMindStateChange()

bool DayZInfected::HandleMindStateChange ( int pCurrentCommandID,
DayZInfectedInputController pInputController,
float pDt )
inlineprotected

Mind state change

Definition at line 423 of file ZombieBase.c.

424 {
426
427 m_MindState = pInputController.GetMindState();
429 {
430 switch (m_MindState)
431 {
432 case DayZInfectedConstants.MINDSTATE_CALM:
433 if (moveCommand && !moveCommand.IsTurning())
434 moveCommand.SetIdleState(0);
435 break;
436
437 case DayZInfectedConstants.MINDSTATE_DISTURBED:
438 if (moveCommand && !moveCommand.IsTurning())
439 moveCommand.SetIdleState(1);
440 break;
441
442 case DayZInfectedConstants.MINDSTATE_CHASE:
443 if (moveCommand && !moveCommand.IsTurning() && (m_LastMindState < DayZInfectedConstants.MINDSTATE_CHASE))
444 moveCommand.SetIdleState(2);
445 break;
446 }
447
450 SetSynchDirty();
451 }
452 return false;
453 }
int m_LastMindState
Definition ZombieBase.c:11

References GetCommand_Move().

◆ HandleMove()

void DayZInfected::HandleMove ( int pCurrentCommandID)
inlineprotected

HandleMove

Definition at line 271 of file ZombieBase.c.

272 {
274 m_MovementSpeed = ic.GetMovementSpeed();
276 SetSynchDirty();
277
279 }
float m_LastMovementSpeed
Definition ZombieBase.c:12

References Math::AbsFloat(), and GetInputController().

◆ HandleOrientation()

void DayZInfected::HandleOrientation ( float pDt,
int pCurrentCommandID )
inlineprotected

HandleOrientation

Definition at line 286 of file ZombieBase.c.

287 {
289
290 int yaw = Math.Round(GetOrientation()[0]);
292
293 //atan2(sin(x-y), cos(x-y))
295 float angleTargetRad = yaw * Math.DEG2RAD;
296
300
302 {
303 m_OrientationTimer = 0.0;
304
306 {
307 //Print("DbgSyncOrientation | HandleMove | original: " + m_OrientationSynced + " | target: " + yaw + " | diff: " + angleDiffRad);
309 SetSynchDirty();
310 }
311 }
312 }
vector GetOrientation()
const float ORIENTATION_SYNC_THRESHOLD
Definition ZombieBase.c:5
float m_OrientationTimer
Definition ZombieBase.c:20
static proto float NormalizeAngle(float ang)
Normalizes the angle (0...360)
static proto float Cos(float angle)
Returns cosinus of angle in radians.
static proto int AbsInt(int i)
Returns absolute value.
static proto float Round(float f)
Returns mathematical round of value.
static proto float Atan2(float y, float x)
Returns angle in radians from tangent.
static proto float Sin(float angle)
Returns sinus of angle in radians.
static const float DEG2RAD
Definition EnMath.c:17

References Math::AbsInt(), Math::Atan2(), Math::Cos(), Math::DEG2RAD, GetOrientation(), Math::NormalizeAngle(), Math::RAD2DEG, Math::Round(), and Math::Sin().

◆ HandleSoundEvents()

void DayZInfected::HandleSoundEvents ( )
inlineprotected

Sound (client only)

no sound handler - bail out

infected is dead

stop all sounds

Definition at line 460 of file ZombieBase.c.

461 {
464 return;
465
467 if (!IsAlive())
468 {
471 return;
472 }
473
474 switch (m_MindState)
475 {
476 case DayZInfectedConstants.MINDSTATE_CALM:
477 m_InfectedSoundEventHandler.PlayRequest(EInfectedSoundEventID.MINDSTATE_CALM_MOVE);
478 break;
479 case DayZInfectedConstants.MINDSTATE_ALERTED:
480 m_InfectedSoundEventHandler.PlayRequest(EInfectedSoundEventID.MINDSTATE_ALERTED_MOVE);
481 break;
482 case DayZInfectedConstants.MINDSTATE_DISTURBED:
483 m_InfectedSoundEventHandler.PlayRequest(EInfectedSoundEventID.MINDSTATE_DISTURBED_IDLE);
484 break
485 case DayZInfectedConstants.MINDSTATE_CHASE:
486 m_InfectedSoundEventHandler.PlayRequest(EInfectedSoundEventID.MINDSTATE_CHASE_MOVE);
487 break;
488 default:
490 break;
491 }
492
493 DebugSound("[Infected @ " + this + "][MindState]" + typename.EnumToString(DayZInfectedConstants, m_MindState));
494 DebugSound("[Infected @ " + this + "][SoundEventID]" + typename.EnumToString(EInfectedSoundEventID, m_InfectedSoundEventHandler.GetCurrentStateEventID()));
495 }
ref InfectedSoundEventHandler m_InfectedSoundEventHandler
Definition ZombieBase.c:27
void DebugSound(string s)
sound debug messages
Definition ZombieBase.c:967

◆ HandleVault()

bool DayZInfected::HandleVault ( int pCurrentCommandID,
DayZInfectedInputController pInputController,
float pDt )
inlineprotected

Definition at line 386 of file ZombieBase.c.

387 {
388 if (pCurrentCommandID == DayZInfectedConstants.COMMANDID_VAULT)
389 {
391 if (vaultCmd && vaultCmd.WasLand())
392 {
394 m_KnuckleLand = true;
395 }
396 if (m_KnuckleLand)
397 {
399 if (m_KnuckleOutTimer > 2.0)
401 }
402
403 return true;
404 }
405
406 if (pInputController.IsVault())
407 {
408 float vaultHeight = pInputController.GetVaultHeight();
410 m_KnuckleLand = false;
412 return true;
413 }
414
415 return false;
416 }
float m_KnuckleOutTimer
Definition ZombieBase.c:15
bool m_KnuckleLand
Definition ZombieBase.c:14
int GetVaultType(float height)
Definition ZombieBase.c:374

◆ Init()

void DayZInfected::Init ( )
inlineprotected

sets default hit position and cache it here (mainly for impact particles)

client only

Definition at line 47 of file ZombieBase.c.

48 {
49 SetEventMask(EntityEvent.INIT);
50
51 m_IsCrawling = false;
52
53 RegisterNetSyncVariableInt("m_MindState", -1, 4);
54 RegisterNetSyncVariableInt("m_OrientationSynced", 0, 359);
55 RegisterNetSyncVariableFloat("m_MovementSpeed", -1, 3);
56 RegisterNetSyncVariableBool("m_IsCrawling");
57
60
62 if (!GetGame().IsDedicatedServer())
63 {
66 }
67
72
74
76 }
void InfectedSoundEventHandler(ZombieBase pInfected)
vector SetDefaultHitPosition(string pSelection)
Definition ZombieBase.c:163
AbstractWave m_LastSoundVoiceAW
Definition ZombieBase.c:26
string GetDefaultHitPositionComponent()
Definition dayzplayer.c:497
EntityEvent
Entity events for event-mask, or throwing event from code.
Definition EnEntity.c:44

References GetDefaultHitPositionComponent(), GetGame(), InfectedSoundEventHandler(), m_AllTargetObjects, m_ArrowManager, and m_TargetableObjects.

◆ IsBeingBackstabbed()

override bool DayZInfected::IsBeingBackstabbed ( )
inlineprotected

returns true if backstab is in progress; used for suspending of AI targeting and other useful things besides

Definition at line 1003 of file ZombieBase.c.

1004 {
1005 return m_FinisherInProgress;
1006 }

◆ IsCrawling()

bool DayZInfected::IsCrawling ( )
inlineprotected

returns true if crawling; 'DayZInfectedCommandCrawl' is only for the transition, after that it remains 'DayZInfectedCommandMove' (unreliable)

Definition at line 1035 of file ZombieBase.c.

1036 {
1037 return m_IsCrawling;
1038 }

◆ IsDanger()

override bool DayZInfected::IsDanger ( )
inlineprotected

Definition at line 105 of file ZombieBase.c.

106 {
107 return true;
108 }

◆ IsHealthVisible()

override bool DayZInfected::IsHealthVisible ( )
inlineprotected

Definition at line 136 of file ZombieBase.c.

137 {
138 return false;
139 }

◆ IsMale()

bool DayZInfected::IsMale ( )
inlineprotected

Definition at line 115 of file ZombieBase.c.

116 {
117 return true;
118 }

◆ IsManagingArrows()

override bool DayZInfected::IsManagingArrows ( )
inlineprotected

Definition at line 1088 of file ZombieBase.c.

1089 {
1090 return true;
1091 }

◆ IsRefresherSignalingViable()

override bool DayZInfected::IsRefresherSignalingViable ( )
inlineprotected

Definition at line 141 of file ZombieBase.c.

142 {
143 return false;
144 }

◆ IsZombie()

override bool DayZInfected::IsZombie ( )
inlineprotected

Definition at line 100 of file ZombieBase.c.

101 {
102 return true;
103 }

◆ IsZombieMilitary()

override bool DayZInfected::IsZombieMilitary ( )
inlineprotected

Definition at line 110 of file ZombieBase.c.

111 {
112 return false;
113 }

◆ OnRecoverFromDeath()

void DayZInfected::OnRecoverFromDeath ( )
inlineprotected

Definition at line 1041 of file ZombieBase.c.

1042 {
1043 // enable AI simulation again
1044 GetAIAgent().SetKeepInIdle(false);
1045
1046 // reset flag
1047 m_FinisherInProgress = false;
1048
1049 //Print("DbgZombies | DumbZombie off: " + GetGame().GetTime());
1050 }

◆ OnSoundVoiceEvent()

override void DayZInfected::OnSoundVoiceEvent ( int event_id,
string event_user_string )
inlineprotected

stop state sound when playing anim SoundVoice

stop playing of old SoundVoice from anim (if any)

play new SoundVoice from anim

Definition at line 521 of file ZombieBase.c.

522 {
523 //super.OnSoundVoiceEvent(event_id, event_user_string);
524 AnimSoundVoiceEvent voice_event = GetCreatureAIType().GetSoundVoiceEvent(event_id);
525 if (voice_event != null)
526 {
528 if (m_InfectedSoundEventHandler) // && m_InfectedSoundEventHandler.IsPlaying())
529 {
531 DebugSound("[Infected @ " + this + "][SoundEvent] InfectedSoundEventHandler - stop all");
532 }
533
536 {
537 DebugSound("[Infected @ " + this + "][AnimVoiceEvent] Stopping LastAW");
539 }
540
543
545 }
546 }
proto void Stop()
void ProcessSoundVoiceEvent(AnimSoundVoiceEvent sound_event, out AbstractWave aw)
Definition ZombieBase.c:548
void HandleSoundEvents()
Definition ZombieBase.c:460

References AbstractWave::Stop().

◆ OnVariablesSynchronized()

override void DayZInfected::OnVariablesSynchronized ( )
inlineprotected

synced variable(s) handler

Definition at line 79 of file ZombieBase.c.

80 {
81 DebugSound("[Infected @ " + this + "][OnVariablesSynchronized]");
83
86 }
int m_OrientationLocal
Definition ZombieBase.c:18

◆ ProcessSoundVoiceEvent()

void DayZInfected::ProcessSoundVoiceEvent ( AnimSoundVoiceEvent sound_event,
out AbstractWave aw )
inlineprotected

Definition at line 548 of file ZombieBase.c.

549 {
550 if (!GetGame().IsDedicatedServer())
551 {
552 SoundObjectBuilder objectBuilder = sound_event.GetSoundBuilder();
553 if (NULL != objectBuilder)
554 {
555 objectBuilder.AddEnvSoundVariables(GetPosition());
556 SoundObject soundObject = objectBuilder.BuildSoundObject();
557 AttenuateSoundIfNecessary(soundObject);
559 }
560 }
561
562 if (GetGame().IsServer())
563 {
564 if (sound_event.m_NoiseParams != NULL)
565 GetGame().GetNoiseSystem().AddNoise(this, sound_event.m_NoiseParams);
566 }
567 }
void PlaySound()
class SoundObjectBuilder SoundObject(SoundParams soundParams)

References GetGame(), GetPosition, PlaySound(), and SoundObject().

◆ ProcessVoiceFX()

AbstractWave DayZInfected::ProcessVoiceFX ( string pSoundSetName)
inlineprotected

Definition at line 497 of file ZombieBase.c.

498 {
502 if (!GetGame().IsDedicatedServer())
503 {
505 if (!soundParams.IsValid())
506 {
507 //SoundError("Invalid sound set.");
508 return null;
509 }
510
512 soundObject = soundObjectBuilder.BuildSoundObject();
513 AttenuateSoundIfNecessary(soundObject);
514
516 }
517
518 return null;
519 }
void SoundObjectBuilder(SoundParams soundParams)

References GetGame(), PlaySound(), SoundObject(), and SoundObjectBuilder().

◆ SetBeingBackstabbed()

override void DayZInfected::SetBeingBackstabbed ( int backstabType)
inlineprotected

Definition at line 1008 of file ZombieBase.c.

1009 {
1010 // disable AI simulation
1011 GetAIAgent().SetKeepInIdle(true);
1012
1013 // select death animation
1014 switch (backstabType)
1015 {
1016 case EMeleeHitType.FINISHER_LIVERSTAB:
1017 m_DeathType = DayZInfectedDeathAnims.ANIM_DEATH_BACKSTAB;
1018 break;
1019
1020 case EMeleeHitType.FINISHER_NECKSTAB:
1021 m_DeathType = DayZInfectedDeathAnims.ANIM_DEATH_NECKSTAB;
1022 break;
1023
1024 default:
1025 m_DeathType = DayZInfectedDeathAnims.ANIM_DEATH_DEFAULT;
1026 }
1027
1028 // set flag - death command will be executed
1029 m_FinisherInProgress = true;
1030
1031 //Print("DbgZombies | DumbZombie on: " + GetGame().GetTime());
1032 }

◆ SetDefaultHitPosition()

vector DayZInfected::SetDefaultHitPosition ( string pSelection)
inlineprotected

Definition at line 163 of file ZombieBase.c.

164 {
165 return GetSelectionPositionMS(pSelection);
166 }

◆ ZombieBase()

void DayZInfected::ZombieBase ( )
inlineprotected

Definition at line 42 of file ZombieBase.c.

43 {
44 Init();
45 }
void Init()
Definition ZombieBase.c:47

References Init().

Member Data Documentation

◆ HIT_INTERVAL_MIN

const float DayZInfected::HIT_INTERVAL_MIN = 0.3
protected

Definition at line 811 of file ZombieBase.c.

◆ m_ActiveVaultType

int DayZInfected::m_ActiveVaultType = -1
protected

HandleVault

Definition at line 372 of file ZombieBase.c.

◆ m_ActualAttackType

DayZInfectedAttackType DayZInfected::m_ActualAttackType = null
protected

Definition at line 576 of file ZombieBase.c.

◆ m_ActualTarget

EntityAI DayZInfected::m_ActualTarget = null
protected

Combat

Definition at line 574 of file ZombieBase.c.

◆ m_AllTargetObjects

ref array<Object> DayZInfected::m_AllTargetObjects
protected

Definition at line 29 of file ZombieBase.c.

◆ m_ArrowManager

ref ArrowManagerBase DayZInfected::m_ArrowManager
protected

Definition at line 38 of file ZombieBase.c.

◆ m_AttackCooldownTime

float DayZInfected::m_AttackCooldownTime = 0
protected

Definition at line 575 of file ZombieBase.c.

◆ m_CrawlTransition

int DayZInfected::m_CrawlTransition = -1
protected

Crawl transition

Definition at line 756 of file ZombieBase.c.

◆ m_DamageHitDirection

float DayZInfected::m_DamageHitDirection = 0
protected

HandleDeath

Definition at line 319 of file ZombieBase.c.

◆ m_DamageHitHeavy

bool DayZInfected::m_DamageHitHeavy = false
protected

Definition at line 807 of file ZombieBase.c.

◆ m_DamageHitToProcess

bool DayZInfected::m_DamageHitToProcess = false
protected

Damage hits

Definition at line 805 of file ZombieBase.c.

◆ m_DamageHitType

int DayZInfected::m_DamageHitType = 0
protected

Definition at line 808 of file ZombieBase.c.

◆ m_DeathType

int DayZInfected::m_DeathType = 0
protected

Definition at line 320 of file ZombieBase.c.

◆ m_DefaultHitPosition

vector DayZInfected::m_DefaultHitPosition
protected

Definition at line 23 of file ZombieBase.c.

◆ m_DeltaTime

float DayZInfected::m_DeltaTime
protected

Definition at line 24 of file ZombieBase.c.

◆ m_FinisherInProgress

bool DayZInfected::m_FinisherInProgress = false
protected

Definition at line 36 of file ZombieBase.c.

◆ m_HitElapsedTime

float DayZInfected::m_HitElapsedTime = HIT_INTERVAL_MIN
protected

Definition at line 812 of file ZombieBase.c.

◆ m_InfectedSoundEventHandler

ref InfectedSoundEventHandler DayZInfected::m_InfectedSoundEventHandler
protected

Definition at line 27 of file ZombieBase.c.

◆ m_IsCrawling

bool DayZInfected::m_IsCrawling
protected

Definition at line 34 of file ZombieBase.c.

◆ m_KnuckleLand

bool DayZInfected::m_KnuckleLand = false
protected

Definition at line 14 of file ZombieBase.c.

◆ m_KnuckleOutTimer

float DayZInfected::m_KnuckleOutTimer = 0
protected

Definition at line 15 of file ZombieBase.c.

◆ m_LastMindState

int DayZInfected::m_LastMindState = -1
protected

Definition at line 11 of file ZombieBase.c.

◆ m_LastMovementSpeed

float DayZInfected::m_LastMovementSpeed = -1
protected

Definition at line 12 of file ZombieBase.c.

◆ m_LastSoundVoiceAW

AbstractWave DayZInfected::m_LastSoundVoiceAW
protected

Definition at line 26 of file ZombieBase.c.

◆ m_MindState

int DayZInfected::m_MindState = -1
protected

Definition at line 17 of file ZombieBase.c.

◆ m_MovementSpeed

float DayZInfected::m_MovementSpeed = -1
protected

Definition at line 21 of file ZombieBase.c.

◆ m_OrientationLocal

int DayZInfected::m_OrientationLocal = -1
protected

Definition at line 18 of file ZombieBase.c.

◆ m_OrientationSynced

int DayZInfected::m_OrientationSynced = -1
protected

Definition at line 19 of file ZombieBase.c.

◆ m_OrientationTimer

float DayZInfected::m_OrientationTimer
protected

Definition at line 20 of file ZombieBase.c.

◆ m_ShockDamage

float DayZInfected::m_ShockDamage = 0
protected

Definition at line 809 of file ZombieBase.c.

◆ m_StanceVariation

int DayZInfected::m_StanceVariation = 0
protected

server / singleplayer properties

Definition at line 10 of file ZombieBase.c.

◆ m_TargetableObjects

ref array<typename> DayZInfected::m_TargetableObjects
protected

Definition at line 30 of file ZombieBase.c.

◆ ORIENTATION_SYNC_THRESHOLD

const float DayZInfected::ORIENTATION_SYNC_THRESHOLD = 30
private

Definition at line 5 of file ZombieBase.c.

◆ SHOCK_TO_STUN_MULTIPLIER

const float DayZInfected::SHOCK_TO_STUN_MULTIPLIER = 2.82
private

Definition at line 7 of file ZombieBase.c.

◆ TARGET_CONE_ANGLE_CHASE

const float DayZInfected::TARGET_CONE_ANGLE_CHASE = 20
private

Definition at line 3 of file ZombieBase.c.

◆ TARGET_CONE_ANGLE_FIGHT

const float DayZInfected::TARGET_CONE_ANGLE_FIGHT = 30
private

Definition at line 4 of file ZombieBase.c.


The documentation for this class was generated from the following file: