Dayz Explorer  1.24.157551 (v105080)
Dayz Code Explorer by Zeroy
healthregen.c
Go to the documentation of this file.
2 {
3  override void Init()
4  {
5  m_TrackActivatedTime = false;
6  m_ID = eModifiers.MDF_HEALTH_REGEN;
10  }
11 
12  override bool ActivateCondition(PlayerBase player)
13  {
14  return true;
15  }
16 
17  override void OnActivate(PlayerBase player)
18  {
19  }
20 
21  override void OnReconnect(PlayerBase player)
22  {
23 
24  }
25 
26  override bool DeactivateCondition(PlayerBase player)
27  {
28  return false;
29  }
30 
31  override void OnTick(PlayerBase player, float deltaT)
32  {
33  if (player.IsAlive())//this needs to be here, some of the other modifiers can kill the character during the same modifier tick, and not checking here can partially revive him(resulting in a broken char)
34  {
35 
36  float regen_speed = player.GetHealthRegenSpeed() * deltaT;;
37  player.AddHealth("GlobalHealth", "Health" , regen_speed );
38 
39  player.AddHealth("RightArm","Health",regen_speed * PlayerConstants.DAMAGE_ZONE_BLOOD_REGEN_MODIFIER );
40  player.AddHealth("RightHand","Health",regen_speed * PlayerConstants.DAMAGE_ZONE_BLOOD_REGEN_MODIFIER);
41  player.AddHealth("LeftArm","Health",regen_speed * PlayerConstants.DAMAGE_ZONE_BLOOD_REGEN_MODIFIER);
42  player.AddHealth("LeftHand","Health",regen_speed * PlayerConstants.DAMAGE_ZONE_BLOOD_REGEN_MODIFIER);
43 
44  //Leg regen when legs are NOT BROKEN
45  if ( player.GetBrokenLegs() == eBrokenLegs.NO_BROKEN_LEGS )
46  {
47  player.AddHealth("RightLeg","Health", PlayerConstants.LEG_HEALTH_REGEN);
48  player.AddHealth("RightFoot","Health", PlayerConstants.LEG_HEALTH_REGEN);
49  player.AddHealth("LeftLeg","Health", PlayerConstants.LEG_HEALTH_REGEN);
50  player.AddHealth("LeftFoot","Health", PlayerConstants.LEG_HEALTH_REGEN);
51  }
52  else
53  {
54  //Leg regen when legs are BROKEN or SPLINTED
55  player.AddHealth("RightLeg","Health", PlayerConstants.LEG_HEALTH_REGEN_BROKEN);
56  player.AddHealth("RightFoot","Health",PlayerConstants.LEG_HEALTH_REGEN_BROKEN);
57  player.AddHealth("LeftLeg","Health", PlayerConstants.LEG_HEALTH_REGEN_BROKEN);
58  player.AddHealth("LeftFoot","Health", PlayerConstants.LEG_HEALTH_REGEN_BROKEN);
59  }
60 
61  player.AddHealth("Torso","Health",regen_speed * PlayerConstants.DAMAGE_ZONE_BLOOD_REGEN_MODIFIER);
62 
63  // We increase head health regeneration as it is unclear to players what health level individual zones have
64  player.AddHealth("Head","Health",( regen_speed * PlayerConstants.DAMAGE_ZONE_BLOOD_REGEN_MODIFIER ) * 2 );
65  }
66  }
67 };
m_TickIntervalActive
float m_TickIntervalActive
Definition: modifierbase.c:19
m_TrackActivatedTime
bool m_TrackActivatedTime
Definition: modifierbase.c:15
eBrokenLegs
eBrokenLegs
Definition: ebrokenlegs.c:1
DisableDeactivateCheck
void DisableDeactivateCheck()
Definition: modifierbase.c:83
DEFAULT_TICK_TIME_ACTIVE
const int DEFAULT_TICK_TIME_ACTIVE
Definition: modifiersmanager.c:31
PlayerBase
Definition: playerbaseclient.c:1
PlayerConstants
Definition: playerconstants.c:1
HealthRegenMdfr
Definition: healthregen.c:1
m_TickIntervalInactive
float m_TickIntervalInactive
Definition: modifierbase.c:18
eModifiers
eModifiers
Definition: emodifiers.c:1
ModifierBase
Definition: breathvapourmdfr.c:3
m_ID
protected int m_ID
ID of effect, given by SEffectManager when registered (automatically done when playing through it)
Definition: effect.c:49
DEFAULT_TICK_TIME_INACTIVE
const int DEFAULT_TICK_TIME_INACTIVE
Definition: modifiersmanager.c:33