PC Stable Documentation
 
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
Loading...
Searching...
No Matches
StaminaHandler Class Reference

Private Member Functions

void StaminaHandler (PlayerBase player)
 
void Init ()
 
void ActivateDepletionModifier (EStaminaMultiplierTypes type)
 
void DeactivateDepletionModifier (EStaminaMultiplierTypes type)
 
void RecalculateDepletionMultiplier ()
 
void ActivateRecoveryModifier (EStaminaMultiplierTypes type)
 
void DeactivateRecoveryModifier (EStaminaMultiplierTypes type)
 
void RecalculateRecoveryMultiplier ()
 
void Update (float deltaT, int pCurrentCommandID)
 
void OnRPC (float stamina, float stamina_cap, bool cooldown)
 deprecated use, StaminaHandler uses SyncJunctures now
 
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)
 
protected void StaminaProcessor_Move (HumanMovementState pHumanMovementState)
 
protected void StaminaProcessor_Ladder (HumanMovementState pHumanMovementState)
 
protected void StaminaProcessor_Swimming (HumanMovementState pHumanMovementState)
 
protected void SyncStamina (float stamina, float stamina_cap, bool cooldown)
 stamina sync - server part
 
protected void SyncAdditionalStaminaInfo (Param par)
 Method to sync more info for stamina manager. Template parameter means it is very extendable for further use.
 
protected void ReadAdditionalStaminaInfo (ParamsReadContext pCtx)
 Order of read parameters must match the order of writing above.
 
protected void RegisterStaminaConsumers ()
 
protected void RegisterStaminaModifiers ()
 
protected float CalcStaminaGainBonus ()
 Calulates stamina regain bonus coef based on current stamina cap and level.
 
protected void ApplyExhaustion ()
 
protected void CheckStaminaState ()
 check if the stamina is completely depleted
 
protected void SetCooldown (float time, int modifier=-1)
 set cooldown timer between each consume of stamina

 
protected void ResetCooldown (int modifier=-1)
 
Timer GetCooldownTimer (int modifier)
 
bool HasEnoughStaminaFor (EStaminaConsumers consumer)
 
bool HasEnoughStaminaToStart (EStaminaConsumers consumer)
 
void SetStamina (float stamina_value)
 
float GetStamina ()
 
float GetStaminaNormalized ()
 
float GetSyncedStamina ()
 
float GetSyncedStaminaNormalized ()
 
float GetStaminaCap ()
 
float GetStaminaMax ()
 
void SetDepletionMultiplier (float val)
 
void SetRecoveryMultiplier (float val)
 
float GetDepletionMultiplier ()
 
float GetRecoveryMultiplier ()
 
void DepleteStaminaEx (EStaminaModifiers modifier, float dT=-1, float coef=1.0)
 
void DepleteStamina (EStaminaModifiers modifier, float dT=-1)
 Deprecated.
 

Private Attributes

protected float m_PlayerLoad
 
protected float m_StaminaDelta
 
protected float m_Stamina
 
protected float m_StaminaSynced
 
protected float m_StaminaCap
 
protected float m_StaminaDepletion
 
protected float m_StaminaDepletionMultiplier
 
protected float m_StaminaRecoveryMultiplier
 
protected float m_Time
 
protected ref Param3< float, float, boolm_StaminaParams
 
protected ref HumanMovementState m_State
 
protected SHumanCommandMoveSettings m_HumanMoveSettings
 
protected PlayerBase m_Player
 
protected bool m_Debug
 
protected bool m_StaminaDepleted
 DEPRECATED.
 
protected ref map< int, ref Timerm_TimerMap
 
ref map< EStaminaMultiplierTypes, floatm_RegisteredDepletionModifiers
 
ref set< EStaminaMultiplierTypesm_ActiveDepletionModifiers
 
ref map< EStaminaMultiplierTypes, floatm_RegisteredRecoveryModifiers
 
ref set< EStaminaMultiplierTypesm_ActiveRecoveryModifiers
 
protected bool m_IsInCooldown
 
protected ref StaminaConsumers m_StaminaConsumers
 
protected ref StaminaModifiers m_StaminaModifiers
 

Constructor & Destructor Documentation

◆ StaminaHandler()

Member Function Documentation

◆ ActivateDepletionModifier()

void ActivateDepletionModifier ( EStaminaMultiplierTypes  type)
inlineprivate

◆ ActivateRecoveryModifier()

void ActivateRecoveryModifier ( EStaminaMultiplierTypes  type)
inlineprivate

◆ ApplyExhaustion()

protected void ApplyExhaustion ( )
inlineprivate

sets exhaustion look of player based on stamina level

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

Referenced by Update().

◆ CalcStaminaGainBonus()

protected float CalcStaminaGainBonus ( )
inlineprivate

Calulates stamina regain bonus coef based on current stamina cap and level.

References m_Stamina, m_StaminaDepletion, Math::Min(), and GameConstants::STAMINA_GAIN_BONUS_CAP.

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

◆ CheckStaminaState()

protected void CheckStaminaState ( )
inlineprivate

check if the stamina is completely depleted

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

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

Referenced by Update().

◆ DeactivateDepletionModifier()

void DeactivateDepletionModifier ( EStaminaMultiplierTypes  type)
inlineprivate

◆ DeactivateRecoveryModifier()

void DeactivateRecoveryModifier ( EStaminaMultiplierTypes  type)
inlineprivate

◆ DepleteStamina()

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

Deprecated.

References DepleteStaminaEx().

◆ DepleteStaminaEx()

◆ GetCooldownTimer()

Timer GetCooldownTimer ( int  modifier)
inlineprivate

◆ GetDepletionMultiplier()

float GetDepletionMultiplier ( )
inlineprivate

◆ GetRecoveryMultiplier()

float GetRecoveryMultiplier ( )
inlineprivate

◆ GetStamina()

float GetStamina ( )
inlineprivate

References m_Stamina.

◆ GetStaminaCap()

float GetStaminaCap ( )
inlineprivate

References m_StaminaCap.

◆ GetStaminaMax()

float GetStaminaMax ( )
inlineprivate

◆ GetStaminaNormalized()

float GetStaminaNormalized ( )
inlineprivate

References GetStaminaMax(), and m_Stamina.

◆ GetSyncedStamina()

float GetSyncedStamina ( )
inlineprivate

References m_StaminaSynced.

Referenced by GetSyncedStaminaNormalized().

◆ GetSyncedStaminaNormalized()

float GetSyncedStaminaNormalized ( )
inlineprivate

◆ HasEnoughStaminaFor()

◆ HasEnoughStaminaToStart()

◆ Init()

◆ OnRPC()

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

deprecated use, StaminaHandler uses SyncJunctures now

◆ OnSyncJuncture()

void OnSyncJuncture ( int  pJunctureID,
ParamsReadContext  pCtx 
)
inlineprivate

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)

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

Referenced by ManBase::OnSyncJuncture().

◆ ReadAdditionalStaminaInfo()

protected void ReadAdditionalStaminaInfo ( ParamsReadContext  pCtx)
inlineprivate

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

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

Referenced by OnSyncJuncture().

◆ RecalculateDepletionMultiplier()

◆ RecalculateRecoveryMultiplier()

◆ RegisterStaminaConsumers()

◆ RegisterStaminaModifiers()

◆ ResetCooldown()

protected void ResetCooldown ( int  modifier = -1)
inlineprivate

◆ SetCooldown()

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

◆ SetDepletionMultiplier()

void SetDepletionMultiplier ( float  val)
inlineprivate

◆ SetRecoveryMultiplier()

void SetRecoveryMultiplier ( float  val)
inlineprivate

◆ SetStamina()

void SetStamina ( float  stamina_value)
inlineprivate

◆ StaminaProcessor_Ladder()

◆ StaminaProcessor_Move()

◆ StaminaProcessor_Swimming()

◆ SyncAdditionalStaminaInfo()

protected void SyncAdditionalStaminaInfo ( Param  par)
inlineprivate

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

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

Referenced by SetDepletionMultiplier(), and SetRecoveryMultiplier().

◆ SyncStamina()

protected void SyncStamina ( float  stamina,
float  stamina_cap,
bool  cooldown 
)
inlineprivate

◆ Update()

Field Documentation

◆ m_ActiveDepletionModifiers

◆ m_ActiveRecoveryModifiers

◆ m_Debug

protected bool m_Debug
private

◆ m_HumanMoveSettings

protected SHumanCommandMoveSettings m_HumanMoveSettings
private

◆ m_IsInCooldown

◆ m_Player

◆ m_PlayerLoad

protected float m_PlayerLoad
private

Referenced by Update().

◆ m_RegisteredDepletionModifiers

ref map<EStaminaMultiplierTypes, float> m_RegisteredDepletionModifiers
private

◆ m_RegisteredRecoveryModifiers

ref map<EStaminaMultiplierTypes, float> m_RegisteredRecoveryModifiers
private

◆ m_Stamina

◆ m_StaminaCap

◆ m_StaminaConsumers

protected ref StaminaConsumers m_StaminaConsumers
private

◆ m_StaminaDelta

protected float m_StaminaDelta
private

◆ m_StaminaDepleted

protected bool m_StaminaDepleted
private

◆ m_StaminaDepletion

protected float m_StaminaDepletion
private

◆ m_StaminaDepletionMultiplier

◆ m_StaminaModifiers

protected ref StaminaModifiers m_StaminaModifiers
private

◆ m_StaminaParams

protected ref Param3<float,float,bool> m_StaminaParams
private

Referenced by StaminaHandler().

◆ m_StaminaRecoveryMultiplier

◆ m_StaminaSynced

protected float m_StaminaSynced
private

◆ m_State

protected ref HumanMovementState m_State
private

Referenced by StaminaHandler(), and Update().

◆ m_Time

protected float m_Time
private

Referenced by StaminaHandler(), and Update().

◆ m_TimerMap

protected ref map<int,ref Timer> m_TimerMap
private

Referenced by SetCooldown(), and StaminaHandler().


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