DayZ Scripts
PC Stable Documentation
 
Loading...
Searching...
No Matches
StaminaHandler Class Reference

Private Member Functions

void StaminaHandler (PlayerBase player)
 
void ~StaminaHandler ()
 
void Init ()
 
void ActivateDepletionModifier (EStaminaMultiplierTypes type)
 
void DeactivateDepletionModifier (EStaminaMultiplierTypes type)
 
void RecalculateDepletionMultiplier ()
 
void ActivateRecoveryModifier (EStaminaMultiplierTypes type)
 
void DeactivateRecoveryModifier (EStaminaMultiplierTypes type)
 
void RecalculateRecoveryMultiplier ()
 
protected bool HasMovementStateChanged ()
 
void Update (float deltaT, int pCurrentCommandID)
 
protected void ProcessMovementState ()
 
protected void ProcessStaminaChanges (float deltaT, bool isServerOrSingleplayer)
 
void RecalculateStaminaCap ()
 
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 SyncStaminaEx ()
 stamina sync - server part
 
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 and caches it during one Update call.
 
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)
 
bool HasEnoughStaminaFor (EStaminaConsumers consumer)
 
bool HasEnoughStaminaToStart (EStaminaConsumers consumer)
 
void SetStamina (float stamina_value)
 
float GetStamina ()
 
float GetStaminaNormalized ()
 
float GetSyncedStamina ()
 
float GetSyncedStaminaNormalized ()
 
float GetStaminaCap ()
 
float GetSyncedStaminaCap ()
 
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 ObtainState (PlayerBaseOwnerState state)
 
void ObtainMove (PlayerBaseMove move)
 
void RewindState (PlayerBaseOwnerState state, PlayerBaseMove move)
 
void ReplayMove (PlayerBaseMove move)
 
void DepleteStamina (EStaminaModifiers modifier, float dT=-1)
 
void OnRPC (float stamina, float stamina_cap, bool cooldown)
 

Private Attributes

protected const float STAMINA_GAIN_THRESHOLD = 25.0
 
protected const float STAMINA_GAIN_MODIFIER = 10.0
 
protected bool m_InitUpdate
 
protected float m_PlayerLoad
 
protected float m_StaminaDelta
 
protected float m_Stamina
 
protected float m_StaminaSynced
 
protected float m_StaminaCap
 
protected float m_StaminaCapSynced
 
protected float m_StaminaDepletionMultiplierNext
 
protected float m_StaminaRecoveryMultiplierNext
 
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_StaminaDepleted
 
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
 
protected float m_LastPlayerLoad = -1
 
protected float m_CachedStaminaGainBonus
 
protected bool m_IsStaminaGainBonusCached
 
protected ref map< int, ref StaminaCooldownParamsm_CooldownMap
 
protected int m_LastCommandTypeId = -1
 
protected int m_LastMovementIdx = -1
 
protected int m_LastStanceIdx = -1
 
protected bool m_MovementStateChanged = true
 
protected bool m_Debug
 

Constructor & Destructor Documentation

◆ StaminaHandler()

◆ ~StaminaHandler()

void ~StaminaHandler ( )
inlineprivate

References m_CooldownMap.

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_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 and caches it during one Update call.

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()

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

References DepleteStaminaEx().

◆ DepleteStaminaEx()

◆ 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().

◆ GetSyncedStaminaCap()

float GetSyncedStaminaCap ( )
inlineprivate

References m_StaminaCapSynced.

◆ GetSyncedStaminaNormalized()

float GetSyncedStaminaNormalized ( )
inlineprivate

◆ HasEnoughStaminaFor()

◆ HasEnoughStaminaToStart()

◆ HasMovementStateChanged()

◆ Init()

◆ ObtainMove()

void ObtainMove ( PlayerBaseMove  move)
inlineprivate

◆ ObtainState()

void ObtainState ( PlayerBaseOwnerState  state)
inlineprivate

◆ OnRPC()

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

◆ 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_Stamina, m_StaminaCap, m_StaminaCapSynced, m_StaminaSynced, Serializer::Read(), ReadAdditionalStaminaInfo(), DayZPlayerSyncJunctures::SJ_STAMINA, and DayZPlayerSyncJunctures::SJ_STAMINA_MISC.

Referenced by ManBase::OnSyncJuncture().

◆ ProcessMovementState()

◆ ProcessStaminaChanges()

◆ 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()

◆ RecalculateStaminaCap()

◆ RegisterStaminaConsumers()

◆ RegisterStaminaModifiers()

◆ ReplayMove()

void ReplayMove ( PlayerBaseMove  move)
inlineprivate

◆ ResetCooldown()

protected void ResetCooldown ( int  modifier = -1)
inlineprivate

◆ RewindState()

void RewindState ( PlayerBaseOwnerState  state,
PlayerBaseMove  move 
)
inlineprivate

References m_Stamina, and m_StaminaCap.

◆ SetCooldown()

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

set cooldown timer between each consume of stamina

References m_CooldownMap, and m_IsInCooldown.

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

◆ 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 DayZPlayerSyncJunctures::SJ_STAMINA_MISC, and Serializer::Write().

Referenced by SetDepletionMultiplier(), and SetRecoveryMultiplier().

◆ SyncStamina()

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

stamina sync - server part

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

Referenced by SyncStaminaEx().

◆ SyncStaminaEx()

protected void SyncStaminaEx ( )
inlineprivate

stamina sync - server part

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

Referenced by ProcessStaminaChanges(), and SetStamina().

◆ Update()

Field Documentation

◆ m_ActiveDepletionModifiers

◆ m_ActiveRecoveryModifiers

◆ m_CachedStaminaGainBonus

protected float m_CachedStaminaGainBonus
private

Referenced by CalcStaminaGainBonus().

◆ m_CooldownMap

protected ref map<int, ref StaminaCooldownParams> m_CooldownMap
private

◆ m_Debug

protected bool m_Debug
private

◆ m_HumanMoveSettings

protected SHumanCommandMoveSettings m_HumanMoveSettings
private

◆ m_InitUpdate

protected bool m_InitUpdate
private

Referenced by StaminaHandler(), and Update().

◆ m_IsInCooldown

◆ m_IsStaminaGainBonusCached

protected bool m_IsStaminaGainBonusCached
private

◆ m_LastCommandTypeId

protected int m_LastCommandTypeId = -1
private

Referenced by HasMovementStateChanged().

◆ m_LastMovementIdx

protected int m_LastMovementIdx = -1
private

Referenced by HasMovementStateChanged().

◆ m_LastPlayerLoad

protected float m_LastPlayerLoad = -1
private

Referenced by Update().

◆ m_LastStanceIdx

protected int m_LastStanceIdx = -1
private

Referenced by HasMovementStateChanged().

◆ m_MovementStateChanged

protected bool m_MovementStateChanged = true
private

Referenced by Update().

◆ m_Player

protected PlayerBase m_Player
private

◆ m_PlayerLoad

protected float m_PlayerLoad
private

Referenced by RecalculateStaminaCap(), and Update().

◆ m_RegisteredDepletionModifiers

ref map<EStaminaMultiplierTypes, float> m_RegisteredDepletionModifiers
private

◆ m_RegisteredRecoveryModifiers

ref map<EStaminaMultiplierTypes, float> m_RegisteredRecoveryModifiers
private

◆ m_Stamina

◆ m_StaminaCap

◆ m_StaminaCapSynced

◆ m_StaminaConsumers

protected ref StaminaConsumers m_StaminaConsumers
private

◆ m_StaminaDelta

◆ m_StaminaDepleted

protected bool m_StaminaDepleted
private

◆ m_StaminaDepletion

◆ m_StaminaDepletionMultiplier

◆ m_StaminaDepletionMultiplierNext

protected float m_StaminaDepletionMultiplierNext
private

Referenced by StaminaHandler().

◆ 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_StaminaRecoveryMultiplierNext

protected float m_StaminaRecoveryMultiplierNext
private

Referenced by StaminaHandler().

◆ m_StaminaSynced

◆ m_State

protected ref HumanMovementState m_State
private

◆ m_Time

protected float m_Time
private

◆ STAMINA_GAIN_MODIFIER

protected const float STAMINA_GAIN_MODIFIER = 10.0
private

Referenced by CalcStaminaGainBonus().

◆ STAMINA_GAIN_THRESHOLD

protected const float STAMINA_GAIN_THRESHOLD = 25.0
private

Referenced by CalcStaminaGainBonus().


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