Dayz Explorer 1.28.160049
Loading...
Searching...
No Matches
playerconstants.c
Go to the documentation of this file.
2{
3 static const float WEAPON_RAISE_BLEND_DELAY = 0.2;
4 static const float MELEE2_MOVEMENT_BLEND_DELAY = 0.35;
5 static const float HEAVY_HIT_THRESHOLD = 0.5; //defines what is considered a 'heavy hit' from the indicator's standpoint
6
7 static const float FULL_SPRINT_DELAY_DEFAULT = 0.5;
8 static const float FULL_SPRINT_DELAY_FROM_CROUCH = 1.0;
9 static const float FULL_SPRINT_DELAY_FROM_PRONE = 2.0;
10
11 //approximate head heights
12 static const float HEAD_HEIGHT_ERECT = 1.6;
13 static const float HEAD_HEIGHT_CROUCH = 1.05;
14 static const float HEAD_HEIGHT_PRONE = 0.66;
15
16 //----------------------------------------------------------
17 // SHOES DAMAGE/FEET BLEEDING
18 //----------------------------------------------------------
19 static const float BAREFOOT_MOVEMENT_BLEED_MODIFIER = 0.1;
20 static const float SHOES_MOVEMENT_DAMAGE_PER_STEP = 0.035;
21 static const int CHECK_EVERY_N_STEP = 10;//will process every n-th step(for performance reasons)
22 //----------------------------------------------------------
23 // STAT LEVELS START
24 //----------------------------------------------------------
25 static const float SL_HEALTH_CRITICAL = 15;
26 static const float SL_HEALTH_LOW = 30;
27 static const float SL_HEALTH_NORMAL = 50;
28 static const float SL_HEALTH_HIGH = 80;
29
30 static const float SL_TOXICITY_CRITICAL = 20;
31 static const float SL_TOXICITY_LOW = 40;
32 static const float SL_TOXICITY_NORMAL = 60;
33 static const float SL_TOXICITY_HIGH = 80;
34
35 static const float SL_BLOOD_CRITICAL = 3000;
36 static const float SL_BLOOD_LOW = 3500;
37 static const float SL_BLOOD_NORMAL = 4000;
38 static const float SL_BLOOD_HIGH = 4500;
39
40 static const float SL_ENERGY_CRITICAL = 0;
41 static const float SL_ENERGY_LOW = 300;
42 static const float SL_ENERGY_NORMAL = 800;
43 static const float SL_ENERGY_HIGH = 3500;
44 static const float SL_ENERGY_MAX = 5000;
45
46 static const float SL_WATER_CRITICAL = 0;
47 static const float SL_WATER_LOW = 300;
48 static const float SL_WATER_NORMAL = 800;
49 static const float SL_WATER_HIGH = 3500;
50 static const float SL_WATER_MAX = 5000;
51 //----------------------------------------------------------
52 // STAT LEVELS END
53 //----------------------------------------------------------
54
55 //-------------------------------------------------------
56 static const float NORMAL_TEMPERATURE_L = 36.0;
57 static const float NORMAL_TEMPERATURE_H = 36.5;
58 static const float HIGH_TEMPERATURE_L = 38.5;
59 static const float HIGH_TEMPERATURE_H = 39.0;
60 //-------------------------------------------------------
61 static const float DIGESTION_SPEED = 1.7; //quantity processed in the stomach per second
62 static const float CONSUMPTION_MULTIPLIER_BASE = 1; //must not be 0 or less
63 static const float STOMACH_ENERGY_TRANSFERED_PER_SEC = 3; //amount of kcal transfered to energy per second(this should ideally be higher than what player burns under high metabolic load[sprint])
64 static const float STOMACH_WATER_TRANSFERED_PER_SEC = 6; //amount of ml transfered to water per second(this should ideally be higher than what player burns under high metabolic load[sprint])
65 static const float STOMACH_SOLID_EMPTIED_PER_SEC = 7; //amount of g/ml emptied from stomach per second
66
67 static const float STOMACH_DIGEST_AGENT_RANDOM_MIN = -0.5;
68 static const float STOMACH_DIGEST_AGENT_RANDOM_MAX = 0.5;
69
70 static const float LOW_WATER_THRESHOLD = SL_WATER_LOW; //threshold from which water affects health
71
72 static const float LOW_ENERGY_THRESHOLD = SL_ENERGY_LOW; //threshold from which energy affects health
73
74 //--------------------------------------------------------
75 static const float METABOLIC_SPEED_ENERGY_BASAL = 0.01; //energy loss per second while idle
76
77 static const float METABOLIC_SPEED_ENERGY_WALK = 0.1; //energy loss per second
78 static const float METABOLIC_SPEED_ENERGY_JOG = 0.3; //energy loss per second
79 static const float METABOLIC_SPEED_ENERGY_SPRINT = 0.6; //energy loss per second
80
81 static const float METABOLIC_SPEED_WATER_BASAL = 0.01; //water loss per second while idle
82
83 static const float METABOLIC_SPEED_WATER_WALK = 0.1; //water loss per second
84 static const float METABOLIC_SPEED_WATER_JOG = 0.3; //water loss per second
85 static const float METABOLIC_SPEED_WATER_SPRINT = 0.6; //water loss per second
86 //--------------------------------------------------------
87
88 static const float THRESHOLD_HEAT_COMFORT_PLUS_WARNING = 0.15; //yellow zone
89 static const float THRESHOLD_HEAT_COMFORT_PLUS_CRITICAL = 0.45; //red zone
90 static const float THRESHOLD_HEAT_COMFORT_PLUS_EMPTY = 0.75; //flashing red zone
91
92 static const float THRESHOLD_HEAT_COMFORT_MINUS_WARNING = -0.15; //light blue zone
93 static const float THRESHOLD_HEAT_COMFORT_MINUS_CRITICAL = -0.45; //dark blue zone
94 static const float THRESHOLD_HEAT_COMFORT_MINUS_EMPTY = -0.75; //flashing dark blue zone
95
96 //--------------------------------------------------------
97 static const int BLOOD_THRESHOLD_FATAL = 2500; //fatal blood level
98
99 static const float BLOOD_REGEN_RATE_PER_SEC = 0.3; //base amount of blood regenerated per second
100 static const float DAMAGE_ZONE_BLOOD_REGEN_MODIFIER = 0.7;
101
102 static const float UNCONSCIOUS_BLOOD_REGEN_MLTP = 2; //multiplier for blood regen while character has critical blood and uncon
103
104 static const float BLOOD_REGEN_MODIFIER_ENERGY_LOW = 0; //multiplier for blood regen rate
105 static const float BLOOD_REGEN_MODIFIER_ENERGY_MID = 0.65;
106 static const float BLOOD_REGEN_MODIFIER_ENERGY_HIGH = 1;
107
108 static const float BLOOD_REGEN_MODIFIER_WATER_LOW = 0; //multiplier for blood regen rate (BLOOD_REGEN_MULTIPLIER_WATER_LOW ?)
109 static const float BLOOD_REGEN_MODIFIER_WATER_MID = 0.65;
110 static const float BLOOD_REGEN_MODIFIER_WATER_HIGH = 1;
111
112 static const float SALINE_BLOOD_REGEN_PER_SEC = 3; //boost for blood regen per second, independent on BLOOD_REGEN_SPEED
113 static const float SALINE_LIQUID_AMOUNT = 500;
114 static const float SALINE_WATER_REGEN_PER_SEC = 2.1;
115
116 static const float HEMOLYTIC_BLOOD_DRAIN_PER_SEC = 7; //hemolytic reaction blood drain per second
117 static const float HEMOLYTIC_BLOODLOSS_AMOUNT = 500;
118 static const float HEMOLYTIC_RISK_SHOCK_THRESHOLD = 75; // amount of blood from transfusion causing player character going into shock
119 static const float HEMOLYTIC_REACTION_THRESHOLD = 175; // amount of blood from transfusion triggering hemolytic reaction
120
121 static const float WATER_LOSS_THRESHOLD_HC_PLUS_LOW = THRESHOLD_HEAT_COMFORT_PLUS_WARNING;
122 static const float WATER_LOSS_THRESHOLD_HC_PLUS_HIGH = THRESHOLD_HEAT_COMFORT_PLUS_CRITICAL;
123
124 static const float ENERGY_LOSS_THRESHOLD_HC_MINUS_LOW = THRESHOLD_HEAT_COMFORT_MINUS_WARNING;
125 static const float ENERGY_LOSS_THRESHOLD_HC_MINUS_HIGH = THRESHOLD_HEAT_COMFORT_MINUS_CRITICAL;
126
127 static const float WATER_LOSS_HC_PLUS_LOW = 0;
128 static const float WATER_LOSS_HC_PLUS_HIGH = 0.4;
129
130 static const float ENERGY_LOSS_HC_MINUS_LOW = 0.2;
131 static const float ENERGY_LOSS_HC_MINUS_HIGH = 0.45;
132
133 static const float HEALTH_LOSS_HC_PLUS_LOW = 0.035;
134 static const float HEALTH_LOSS_HC_PLUS_HIGH = 0.30;
135
136 static const float HEALTH_LOSS_HC_MINUS_LOW = 0.035;
137 static const float HEALTH_LOSS_HC_MINUS_HIGH = 0.30;
138
139 static const float WATER_LOSS_FEVER = 0.2;
140
141 //--------------------------------------------------------
142 static const float LOW_ENERGY_DAMAGE_PER_SEC = 0.05; //health loss per second while low on energy
143 static const float LOW_WATER_DAMAGE_PER_SEC = 0.05; //health loss per second while low on water
144
145 static const float CONSUMPTION_DAMAGE_PER_BITE = 2.0;
146 static const float CONSUMPTION_DAMAGE_TEMP_THRESHOLD = 70.0; //Celsius
147
148 static const float HEALTH_REGEN_MIN = 0.005; //health regen rate at BLOOD_THRESHOLD_FATAL blood level
149 static const float HEALTH_REGEN_MAX = 0.03; //health regen rate at MAXIMUM blood level
150
151 static const float LEG_HEALTH_REGEN = 1; //Leg health regen when leg is NOT BROKEN
152 static const float LEG_HEALTH_REGEN_BROKEN = 0.18; //Leg health regen when BROKEN OR SPLINTED
153
154 static const float UNCONSCIOUS_THRESHOLD = 25.0; //player goes unconscious when we get under this threshold
155 static const float CONSCIOUS_THRESHOLD = 50.0; //player regains consciousness when he gets above this threshold
156
157 static const float SHOCK_REFILL_CONSCIOUS_SPEED = 5; //shock refill speed when the player is conscious
158 static const float SHOCK_REFILl_UNCONSCIOUS_SPEED = 1; //shock refill speed when the player is unconscious
159 static const float SHOCK_REFILL_UNCON_CRITICAL_BLOOD_MLTP = 0.8; //shock refill speed multiplier when the player is unconscious and has critical blood level
160
161 static const float SHOCK_DAMAGE_BLOOD_THRESHOLD_HIGH = 3000; // we start dealing shock damage over time when we get at this value or lower
162 static const float SHOCK_DAMAGE_BLOOD_THRESHOLD_LOW = 2500; // the closer we get to this value, the higher the over time shock damage we deal
163
164 static const float SHOCK_DAMAGE_HIGH = 5.5; // shock damage per second when the blood is near the upper blood threshold
165 static const float SHOCK_DAMAGE_LOW = 6.25; // shock damage per second when the blood is near the lower blood threshold
166
167 static const float SHOCK_REFILL_COOLDOWN_AFTER_HIT = 1000; // duration of cooldown (ms) during which shock regeneration is paused
168
169 static const float UNCONSCIOUS_IN_WATER_TIME_LIMIT_TO_DEATH = 20; // how long can player survive while unconscious when in water in secs
170 //----------------------------------------------------------
171 static const float BLEEDING_SOURCE_BLOODLOSS_PER_SEC = -20; // amount of blood loss per second from one bleeding source
172 static const float BLEEDING_SOURCE_FLOW_MODIFIER_MEDIUM = 0.6; // modifier of the bloodloss given by BLEEDING_SOURCE_BLOODLOSS_PER_SEC, multiplying these two will give the resulting bloodloss
173 static const float BLEEDING_SOURCE_FLOW_MODIFIER_LOW = 0.1; // modifier of the bloodloss given by BLEEDING_SOURCE_BLOODLOSS_PER_SEC, multiplying these two will give the resulting bloodloss
174 static const float BLEEDING_SOURCE_FLOW_MODIFIER_HIGH = 1; // modifier of the bloodloss given by BLEEDING_SOURCE_BLOODLOSS_PER_SEC, multiplying these two will give the resulting bloodloss
175 static const int BLEEDING_SOURCE_DURATION_NORMAL = 300; // in seconds, how long will bleeding source exist until disapearing
176 static const float BLEEDING_LOW_PRESSURE_BLOOD = 4000.0; // from which blood level we start lowering BLEEDING_SOURCE_BLOODLOSS_PER_SEC
177 static const float BLEEDING_LOW_PRESSURE_MIN_MOD = 0.3; // minimal value for low pressure bleeding (lowest possible multiplier of BLEEDING_SOURCE_BLOODLOSS_PER_SEC)
178
179 static const float BLEEDING_SOURCE_CLOSE_INFECTION_CHANCE = 0.40; // a chance for wound infection when the wound is self-closing
180 static const float BLEEDING_SOURCE_BURN_MODIFIER = 0.65; // modifies a bloodflow for any bleeding source obtained through skin burn from contaminated area
181
182
183 //----------------------------------------------------------
184 static const float BREATH_VAPOUR_THRESHOLD_HIGH = -5.0; //missing comment
185 static const float BREATH_VAPOUR_THRESHOLD_LOW = 7.0; //missing comment
186 //----------------------------------------------------------
187 static const float IMMUNITY_THRESHOLD_LEVEL_HIGH = 0.95;
188 static const float IMMUNITY_THRESHOLD_LEVEL_NORMAL = 0.72;
189 static const float IMMUNITY_THRESHOLD_LEVEL_LOW = 0.35;
190 static const float IMMUNITY_THRESHOLD_LEVEL_CRITICAL = 0.15;
191 //----------------------------------------------------------
192 static const float VITAMINS_LIFETIME_SECS = 300;
193
194 static const float CHANCE_TO_BLEED_SLIDING_LADDER_PER_SEC = 0.3; // probability of bleeding source occuring while sliding down ladder without gloves given as percentage per second(0.5 means 50% chance bleeding source will happen every second while sliding down)
195 static const float GLOVES_DAMAGE_SLIDING_LADDER_PER_SEC = -3;// how much damage the gloves receive while sliding down the ladder (per sec)
196
197 //----------------------------------------------------------
198 // BADGE THRESHOLDS
199 //----------------------------------------------------------
200 static const int BT_STOMACH_VOLUME_LVL3 = 1000;
201 static const int BT_STOMACH_VOLUME_LVL2 = 750;
202 static const int BT_STOMACH_VOLUME_LVL1 = 1;
203
205 static const int LAST_UA_MSG_LIFETIME = 30;
206
208 const int VOMIT_THRESHOLD = 2000;
209
210 static const float CORPSE_THRESHOLD_MEDIUM = 0.7; //0.7
211 static const float CORPSE_THRESHOLD_DECAYED = 0.3; //0.3
212
213 static const int CORPSE_STATE_FRESH = 0;
214 static const int CORPSE_STATE_MEDIUM = 1;
215 static const int CORPSE_STATE_DECAYED = 2;
216 //----------------------------------------------------------
217 static const float CAMERA_THRESHOLD_PITCH = -70.0;
218
219 //----------------------------------------------------------
220 // BROKEN LEGS SHOCK
221 //----------------------------------------------------------
222 static const float BROKEN_LEGS_INITIAL_SHOCK = 20; //Inflicted shock on modifier start
223 static const float BROKEN_LEGS_LOW_SHOCK_WALK = 4; //Inflicted shock on modifier update with almost healthy legs
224 static const float BROKEN_LEGS_MID_SHOCK_WALK = 6; //Inflicted shock on modifier update with mid health legs
225 static const float BROKEN_LEGS_HIGH_SHOCK_WALK = 8; //Inflicted shock on modifier update with low health legs
226 static const float BROKEN_LEGS_SHOCK_SWIM = 2; //Inflicted shock on modifier update when swimming
227 static const float BROKEN_LEGS_LIGHT_MELEE_SHOCK = 10; //Inflicted shock per light weapon swing
228 static const float BROKEN_LEGS_HEAVY_MELEE_SHOCK = 25; //Inflicted shock per heavy weapon swing
229 static const float BROKEN_LEGS_LOW_HEALTH_THRESHOLD = 25; //Amount of health BELOW which legs have "low health"
230 static const float BROKEN_LEGS_HIGH_HEALTH_THRESHOLD = 75; //Amount of health OVER which legs have "low health"
231 //static const int BROKEN_LEGS_FALL_STEP_COUNT = 10; //Number of steps before falling over
232 static const float BROKEN_LEGS_STAND_SHOCK = 0; //Shock dealt when standing with broken legs
233 static const float BROKEN_LEGS_ROLL_SHOCK = 10; //Shock dealt when rolling with broken legs
234 static const float BROKEN_CROUCH_MODIFIER = 0.5; //Inflicted shock modifier for crouched stance
235
236 //----------------------------------------------------------
237 // AI SENSOR MULTIPLIER
238 //----------------------------------------------------------
239 static const float AI_NOISE_ROLL = 2; //Multiplier for the noise generated while prone rolling
240 static const float AI_NOISE_SPRINT = 1; //Multiplier for the noise generated while sprinting
241 static const float AI_NOISE_RUN = 0.8; //Multiplier for the noise generated while jogging
242 static const float AI_NOISE_CROUCH_RUN = 0.6; //Multiplier for the noise generated while Sprint crouch
243 static const float AI_NOISE_WALK = 0.4; //Multiplier for the noise generated while walking
244 static const float AI_NOISE_IDLE = 0; //Multiplier for the noise generated while staying still
245 static const float AI_NOISE_SHOES_BOOTS = 0.85; //Multiplier for the noise generated while wearing boots
246 static const float AI_NOISE_SHOES_SNEAKERS = 0.6; //Multiplier for the noise generated while wearing sneakers
247 static const float AI_NOISE_SHOES_NONE = 0.45; //Multiplier for the noise generated while not wearing shoes
248 static const float AI_VISIBILITY_RUN = 1; //Multiplier for the visibility of the player while jogging or sprinting
249 static const float AI_VISIBILITY_WALK = 0.66; //Multiplier for the visibility of the player while walking
250 static const float AI_VISIBILITY_IDLE = 0.3; //Multiplier for the visibility of the player while staying still
251 static const float AI_VISIBILITY_STANDING = 1.5; //Multiplier for the visibility of the player while standing
252 static const float AI_VISIBILITY_CROUCH = 0.6; //Multiplier for the visibility of the player while crouched
253 static const float AI_VISIBILITY_PRONE = 0.15; //Multiplier for the visibility of the player while prone
254 //----------------------------------------------------------
255 // DROWNING
256 //----------------------------------------------------------
257
258 //(positive values mean the distance under water surface, ie 0.1 --> 10cm under water, -0.1 --> 10cm above water)
259 static const float DROWNING_DEFAULT_THRESHOLD = 0.25; //what water level value does it take for the player to be considered drowning while swimming - values <0.35 observed as the highest during swimming
260 static const float DROWNING_SWIMMING_THRESHOLD = 0.4; //what water level value does it take for the player to be considered drowning while swimming - values <0.35 observed as the highest during swimming
261 static const float DROWNING_UNCONSCIOUS_THRESHOLD = 0.1; //what water level value does it take for the player to be considered drowning while unconscious - 0.10 seemed a reasonable value based on visual observation and matching it to water depth values(can be adjust more precisely though)
262 static const int DROWNING_BUBBLE_FREQUENCY_MAX = 4000; //how often should bubbles appear when the stamina is at its highest,(in ms)
263 static const int DROWNING_BUBBLE_FREQUENCY_MIN = 1000; //how often should bubbles appear when the stamina is at its lowest,(in ms)
264
265 static const float BLOODY_HANDS_FOOD_POISON_AGENT_INCREMENT = 5;
266
268 static const float BLOODY_HANDS_SALMONELLA_CHANCE = 0.05;
269}