Dayz Build 1.29.163047, Scripts Rev. 123548
Dayz Code Explorer by Zeroy
Loading...
Searching...
No Matches
StaminaHandler Class Reference

Protected Member Functions

void StaminaHandler (PlayerBase player)
void ~StaminaHandler ()
void ActivateDepletionModifier (EStaminaMultiplierTypes type)
void ActivateRecoveryModifier (EStaminaMultiplierTypes type)
void ApplyExhaustion ()
float CalcStaminaGainBonus ()
 Calulates stamina regain bonus coef based on current stamina cap and level and caches it during one Update call.
void CheckStaminaState ()
 check if the stamina is completely depleted
void DeactivateDepletionModifier (EStaminaMultiplierTypes type)
void DeactivateRecoveryModifier (EStaminaMultiplierTypes type)
void DepleteStamina (EStaminaModifiers modifier, float dT=-1)
void DepleteStaminaEx (EStaminaModifiers modifier, float dT=-1, float coef=1.0)
float GetDepletionMultiplier ()
float GetRecoveryMultiplier ()
float GetStamina ()
float GetStaminaCap ()
float GetStaminaMax ()
float GetStaminaNormalized ()
float GetSyncedStamina ()
float GetSyncedStaminaCap ()
float GetSyncedStaminaNormalized ()
bool HasEnoughStaminaFor (EStaminaConsumers consumer)
bool HasEnoughStaminaToStart (EStaminaConsumers consumer)
bool HasMovementStateChanged ()
void Init ()
void ObtainMove (PlayerBaseMove move)
void ObtainState (PlayerBaseOwnerState state)
void OnRPC (float stamina, float stamina_cap, bool cooldown)
void OnSyncJuncture (int pJunctureID, ParamsReadContext pCtx)
 called from PlayerBase - syncs stamina values on server with client AND sets the value to match on server and client both (m_StaminaSynced guarantees identical values)
void ProcessMovementState ()
void ProcessStaminaChanges (float deltaT, bool isServerOrSingleplayer)
void ReadAdditionalStaminaInfo (ParamsReadContext pCtx)
 Order of read parameters must match the order of writing above.
void RecalculateDepletionMultiplier ()
void RecalculateRecoveryMultiplier ()
void RecalculateStaminaCap ()
void RegisterStaminaConsumers ()
void RegisterStaminaModifiers ()
void ReplayMove (PlayerBaseMove move)
void ResetCooldown (int modifier=-1)
void RewindState (PlayerBaseOwnerState state, PlayerBaseMove move)
void SetCooldown (float time, int modifier=-1)
 set cooldown timer between each consume of stamina
void SetDepletionMultiplier (float val)
void SetRecoveryMultiplier (float val)
void SetStamina (float stamina_value)
void StaminaProcessor_Ladder (HumanMovementState pHumanMovementState)
void StaminaProcessor_Move (HumanMovementState pHumanMovementState)
void StaminaProcessor_Swimming (HumanMovementState pHumanMovementState)
void SyncAdditionalStaminaInfo (Param par)
 Method to sync more info for stamina manager. Template parameter means it is very extendable for further use.
void SyncStamina (float stamina, float stamina_cap, bool cooldown)
 stamina sync - server part
void SyncStaminaEx ()
 stamina sync - server part
void Update (float deltaT, int pCurrentCommandID)

Protected Attributes

ref set< EStaminaMultiplierTypesm_ActiveDepletionModifiers
ref set< EStaminaMultiplierTypesm_ActiveRecoveryModifiers
float m_CachedStaminaGainBonus
ref map< int, ref StaminaCooldownParamsm_CooldownMap
bool m_Debug
SHumanCommandMoveSettings m_HumanMoveSettings
bool m_InitUpdate
bool m_IsInCooldown
bool m_IsStaminaGainBonusCached
int m_LastCommandTypeId = -1
int m_LastMovementIdx = -1
float m_LastPlayerLoad = -1
int m_LastStanceIdx = -1
bool m_MovementStateChanged = true
PlayerBase m_Player
float m_PlayerLoad
ref map< EStaminaMultiplierTypes, floatm_RegisteredDepletionModifiers
ref map< EStaminaMultiplierTypes, floatm_RegisteredRecoveryModifiers
float m_Stamina
float m_StaminaCap
float m_StaminaCapSynced
ref StaminaConsumers m_StaminaConsumers
float m_StaminaDelta
bool m_StaminaDepleted
float m_StaminaDepletion
float m_StaminaDepletionMultiplier
float m_StaminaDepletionMultiplierNext
ref StaminaModifiers m_StaminaModifiers
ref Param3< float, float, boolm_StaminaParams
float m_StaminaRecoveryMultiplier
float m_StaminaRecoveryMultiplierNext
float m_StaminaSynced
ref HumanMovementState m_State
float m_Time
const float STAMINA_GAIN_MODIFIER = 10.0
const float STAMINA_GAIN_THRESHOLD = 25.0

Detailed Description

Definition at line 261 of file staminahandler.c.

Constructor & Destructor Documentation

◆ StaminaHandler()

◆ ~StaminaHandler()

void ~StaminaHandler ( )
inlineprotected

Definition at line 356 of file staminahandler.c.

References m_CooldownMap.

Member Function Documentation

◆ ActivateDepletionModifier()

void ActivateDepletionModifier ( EStaminaMultiplierTypes type)
inlineprotected

◆ ActivateRecoveryModifier()

void ActivateRecoveryModifier ( EStaminaMultiplierTypes type)
inlineprotected

◆ ApplyExhaustion()

void ApplyExhaustion ( )
inlineprotected

sets exhaustion look of player based on stamina level

Definition at line 954 of file staminahandler.c.

References HumanCommandAdditives(), m_Player, m_Stamina, m_StaminaCap, and Math::Min().

Referenced by Update().

◆ CalcStaminaGainBonus()

float CalcStaminaGainBonus ( )
inlineprotected

Calulates stamina regain bonus coef based on current stamina cap and level and caches it during one Update call.

Definition at line 932 of file staminahandler.c.

References m_CachedStaminaGainBonus, m_IsStaminaGainBonusCached, m_Stamina, m_StaminaDepletion, Math::Min(), GameConstants::STAMINA_GAIN_BONUS_CAP, STAMINA_GAIN_MODIFIER, and STAMINA_GAIN_THRESHOLD.

Referenced by StaminaProcessor_Ladder(), StaminaProcessor_Move(), and StaminaProcessor_Swimming().

◆ CheckStaminaState()

void CheckStaminaState ( )
inlineprotected

check if the stamina is completely depleted

in case of complete depletion - start a cooldown timer before the regeneration cycle start

Definition at line 981 of file staminahandler.c.

References m_IsInCooldown, m_Stamina, m_StaminaDepleted, SetCooldown(), and GameConstants::STAMINA_REGEN_COOLDOWN_EXHAUSTION.

Referenced by Update().

◆ DeactivateDepletionModifier()

void DeactivateDepletionModifier ( EStaminaMultiplierTypes type)
inlineprotected

◆ DeactivateRecoveryModifier()

void DeactivateRecoveryModifier ( EStaminaMultiplierTypes type)
inlineprotected

Definition at line 430 of file staminahandler.c.

References m_ActiveRecoveryModifiers, and RecalculateRecoveryMultiplier().

◆ DepleteStamina()

void DepleteStamina ( EStaminaModifiers modifier,
float dT = -1 )
inlineprotected

Definition at line 1238 of file staminahandler.c.

References DepleteStaminaEx().

◆ DepleteStaminaEx()

◆ GetDepletionMultiplier()

float GetDepletionMultiplier ( )
inlineprotected

Definition at line 1100 of file staminahandler.c.

References m_StaminaDepletionMultiplier.

◆ GetRecoveryMultiplier()

float GetRecoveryMultiplier ( )
inlineprotected

Definition at line 1105 of file staminahandler.c.

References m_StaminaRecoveryMultiplier.

◆ GetStamina()

float GetStamina ( )
inlineprotected

Definition at line 1047 of file staminahandler.c.

References m_Stamina.

◆ GetStaminaCap()

float GetStaminaCap ( )
inlineprotected

Definition at line 1067 of file staminahandler.c.

References m_StaminaCap.

◆ GetStaminaMax()

float GetStaminaMax ( )
inlineprotected

◆ GetStaminaNormalized()

float GetStaminaNormalized ( )
inlineprotected

Definition at line 1052 of file staminahandler.c.

References GetStaminaMax(), and m_Stamina.

◆ GetSyncedStamina()

float GetSyncedStamina ( )
inlineprotected

Definition at line 1057 of file staminahandler.c.

References m_StaminaSynced.

Referenced by GetSyncedStaminaNormalized().

◆ GetSyncedStaminaCap()

float GetSyncedStaminaCap ( )
inlineprotected

Definition at line 1072 of file staminahandler.c.

References m_StaminaCapSynced.

◆ GetSyncedStaminaNormalized()

float GetSyncedStaminaNormalized ( )
inlineprotected

Definition at line 1062 of file staminahandler.c.

References GetStaminaMax(), and GetSyncedStamina().

◆ HasEnoughStaminaFor()

bool HasEnoughStaminaFor ( EStaminaConsumers consumer)
inlineprotected

◆ HasEnoughStaminaToStart()

bool HasEnoughStaminaToStart ( EStaminaConsumers consumer)
inlineprotected

◆ HasMovementStateChanged()

bool HasMovementStateChanged ( )
inlineprotected

Definition at line 456 of file staminahandler.c.

References m_LastCommandTypeId, m_LastMovementIdx, m_LastStanceIdx, m_Player, and m_State.

Referenced by Update().

◆ Init()

◆ ObtainMove()

void ObtainMove ( PlayerBaseMove move)
inlineprotected

Definition at line 1197 of file staminahandler.c.

◆ ObtainState()

void ObtainState ( PlayerBaseOwnerState state)
inlineprotected

Definition at line 1192 of file staminahandler.c.

◆ OnRPC()

void OnRPC ( float stamina,
float stamina_cap,
bool cooldown )
protected

◆ OnSyncJuncture()

void OnSyncJuncture ( int pJunctureID,
ParamsReadContext pCtx )
inlineprotected

called from PlayerBase - syncs stamina values on server with client AND sets the value to match on server and client both (m_StaminaSynced guarantees identical values)

Definition at line 638 of file staminahandler.c.

References m_IsInCooldown, m_Player, m_Stamina, m_StaminaCap, m_StaminaCapSynced, m_StaminaSynced, Serializer::Read(), ReadAdditionalStaminaInfo(), DayZPlayerSyncJunctures::SJ_STAMINA, and DayZPlayerSyncJunctures::SJ_STAMINA_MISC.

◆ ProcessMovementState()

void ProcessMovementState ( )
inlineprotected

◆ ProcessStaminaChanges()

◆ ReadAdditionalStaminaInfo()

void ReadAdditionalStaminaInfo ( ParamsReadContext pCtx)
inlineprotected

Order of read parameters must match the order of writing above.

Definition at line 819 of file staminahandler.c.

References m_StaminaDepletionMultiplier, m_StaminaRecoveryMultiplier, and Serializer::Read().

Referenced by OnSyncJuncture().

◆ RecalculateDepletionMultiplier()

void RecalculateDepletionMultiplier ( )
inlineprotected

◆ RecalculateRecoveryMultiplier()

void RecalculateRecoveryMultiplier ( )
inlineprotected

◆ RecalculateStaminaCap()

void RecalculateStaminaCap ( )
inlineprotected

◆ RegisterStaminaConsumers()

◆ RegisterStaminaModifiers()

◆ ReplayMove()

void ReplayMove ( PlayerBaseMove move)
inlineprotected

◆ ResetCooldown()

void ResetCooldown ( int modifier = -1)
inlineprotected

Definition at line 1013 of file staminahandler.c.

References m_CooldownMap, m_IsInCooldown, m_StaminaModifiers, and StaminaModifier().

Referenced by Update().

◆ RewindState()

void RewindState ( PlayerBaseOwnerState state,
PlayerBaseMove move )
inlineprotected

Definition at line 1202 of file staminahandler.c.

References m_Stamina, and m_StaminaCap.

◆ SetCooldown()

void SetCooldown ( float time,
int modifier = -1 )
inlineprotected

set cooldown timer between each consume of stamina

Definition at line 1000 of file staminahandler.c.

References m_CooldownMap, and m_IsInCooldown.

Referenced by CheckStaminaState(), DepleteStaminaEx(), StaminaProcessor_Ladder(), StaminaProcessor_Move(), and StaminaProcessor_Swimming().

◆ SetDepletionMultiplier()

void SetDepletionMultiplier ( float val)
inlineprotected

◆ SetRecoveryMultiplier()

void SetRecoveryMultiplier ( float val)
inlineprotected

◆ SetStamina()

void SetStamina ( float stamina_value)
inlineprotected

◆ StaminaProcessor_Ladder()

◆ StaminaProcessor_Move()

◆ StaminaProcessor_Swimming()

◆ SyncAdditionalStaminaInfo()

void SyncAdditionalStaminaInfo ( Param par)
inlineprotected

Method to sync more info for stamina manager. Template parameter means it is very extendable for further use.

Definition at line 808 of file staminahandler.c.

References m_Player, DayZPlayerSyncJunctures::SJ_STAMINA_MISC, and Serializer::Write().

Referenced by SetDepletionMultiplier(), and SetRecoveryMultiplier().

◆ SyncStamina()

void SyncStamina ( float stamina,
float stamina_cap,
bool cooldown )
inlineprotected

stamina sync - server part

Definition at line 797 of file staminahandler.c.

References m_Player, DayZPlayerSyncJunctures::SJ_STAMINA, and Serializer::Write().

Referenced by SyncStaminaEx().

◆ SyncStaminaEx()

void SyncStaminaEx ( )
inlineprotected

stamina sync - server part

Definition at line 791 of file staminahandler.c.

References m_IsInCooldown, m_Stamina, m_StaminaCap, and SyncStamina().

Referenced by ProcessStaminaChanges(), and SetStamina().

◆ Update()

Field Documentation

◆ m_ActiveDepletionModifiers

ref set<EStaminaMultiplierTypes> m_ActiveDepletionModifiers
protected

◆ m_ActiveRecoveryModifiers

ref set<EStaminaMultiplierTypes> m_ActiveRecoveryModifiers
protected

◆ m_CachedStaminaGainBonus

float m_CachedStaminaGainBonus
protected

Definition at line 299 of file staminahandler.c.

Referenced by CalcStaminaGainBonus().

◆ m_CooldownMap

ref map<int, ref StaminaCooldownParams> m_CooldownMap
protected

Definition at line 302 of file staminahandler.c.

Referenced by StaminaHandler(), ~StaminaHandler(), ResetCooldown(), SetCooldown(), and Update().

◆ m_Debug

bool m_Debug
protected

Definition at line 1235 of file staminahandler.c.

◆ m_HumanMoveSettings

SHumanCommandMoveSettings m_HumanMoveSettings
protected

Definition at line 281 of file staminahandler.c.

Referenced by StaminaHandler(), and StaminaProcessor_Move().

◆ m_InitUpdate

bool m_InitUpdate
protected

Definition at line 266 of file staminahandler.c.

Referenced by StaminaHandler(), and Update().

◆ m_IsInCooldown

◆ m_IsStaminaGainBonusCached

bool m_IsStaminaGainBonusCached
protected

Definition at line 300 of file staminahandler.c.

Referenced by StaminaHandler(), CalcStaminaGainBonus(), and Update().

◆ m_LastCommandTypeId

int m_LastCommandTypeId = -1
protected

Definition at line 305 of file staminahandler.c.

Referenced by HasMovementStateChanged().

◆ m_LastMovementIdx

int m_LastMovementIdx = -1
protected

Definition at line 306 of file staminahandler.c.

Referenced by HasMovementStateChanged().

◆ m_LastPlayerLoad

float m_LastPlayerLoad = -1
protected

Definition at line 297 of file staminahandler.c.

Referenced by Update().

◆ m_LastStanceIdx

int m_LastStanceIdx = -1
protected

Definition at line 307 of file staminahandler.c.

Referenced by HasMovementStateChanged().

◆ m_MovementStateChanged

bool m_MovementStateChanged = true
protected

Definition at line 308 of file staminahandler.c.

Referenced by Update().

◆ m_Player

◆ m_PlayerLoad

float m_PlayerLoad
protected

Definition at line 267 of file staminahandler.c.

Referenced by RecalculateStaminaCap(), and Update().

◆ m_RegisteredDepletionModifiers

ref map<EStaminaMultiplierTypes, float> m_RegisteredDepletionModifiers
protected

◆ m_RegisteredRecoveryModifiers

ref map<EStaminaMultiplierTypes, float> m_RegisteredRecoveryModifiers
protected

◆ m_Stamina

◆ m_StaminaCap

◆ m_StaminaCapSynced

◆ m_StaminaConsumers

ref StaminaConsumers m_StaminaConsumers
protected

◆ m_StaminaDelta

◆ m_StaminaDepleted

bool m_StaminaDepleted
protected

◆ m_StaminaDepletion

float m_StaminaDepletion
protected

◆ m_StaminaDepletionMultiplier

◆ m_StaminaDepletionMultiplierNext

float m_StaminaDepletionMultiplierNext
protected

Definition at line 273 of file staminahandler.c.

Referenced by StaminaHandler().

◆ m_StaminaModifiers

ref StaminaModifiers m_StaminaModifiers
protected

Definition at line 295 of file staminahandler.c.

Referenced by DepleteStaminaEx(), RegisterStaminaModifiers(), and ResetCooldown().

◆ m_StaminaParams

ref Param3<float,float,bool> m_StaminaParams
protected

Definition at line 279 of file staminahandler.c.

Referenced by StaminaHandler().

◆ m_StaminaRecoveryMultiplier

◆ m_StaminaRecoveryMultiplierNext

float m_StaminaRecoveryMultiplierNext
protected

Definition at line 274 of file staminahandler.c.

Referenced by StaminaHandler().

◆ m_StaminaSynced

◆ m_State

ref HumanMovementState m_State
protected

Definition at line 280 of file staminahandler.c.

Referenced by StaminaHandler(), HasMovementStateChanged(), and ProcessMovementState().

◆ m_Time

float m_Time
protected

Definition at line 278 of file staminahandler.c.

Referenced by StaminaHandler(), and ProcessStaminaChanges().

◆ STAMINA_GAIN_MODIFIER

const float STAMINA_GAIN_MODIFIER = 10.0
protected

Definition at line 264 of file staminahandler.c.

Referenced by CalcStaminaGainBonus().

◆ STAMINA_GAIN_THRESHOLD

const float STAMINA_GAIN_THRESHOLD = 25.0
protected

Definition at line 263 of file staminahandler.c.

Referenced by CalcStaminaGainBonus().


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