| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269 | class PlayerConstants {	static const float WEAPON_RAISE_BLEND_DELAY = 0.2;	static const float MELEE2_MOVEMENT_BLEND_DELAY = 0.35;	static const float HEAVY_HIT_THRESHOLD = 0.5; //defines what is considered a 'heavy hit' from the indicator's standpoint	static const float FULL_SPRINT_DELAY_DEFAULT 		= 0.5;	//! [seconds]	static const float FULL_SPRINT_DELAY_FROM_CROUCH 	= 1.0;	//! [seconds]	static const float FULL_SPRINT_DELAY_FROM_PRONE 	= 2.0;	//! [seconds]		//approximate head heights	static const float HEAD_HEIGHT_ERECT = 1.6;	static const float HEAD_HEIGHT_CROUCH = 1.05;	static const float HEAD_HEIGHT_PRONE = 0.66;		//----------------------------------------------------------	//				SHOES DAMAGE/FEET BLEEDING	//----------------------------------------------------------	static const float BAREFOOT_MOVEMENT_BLEED_MODIFIER = 0.1;	static const float SHOES_MOVEMENT_DAMAGE_PER_STEP = 0.035;	static const int CHECK_EVERY_N_STEP = 10;//will process every n-th step(for performance reasons)	//----------------------------------------------------------	//					STAT LEVELS START	//----------------------------------------------------------	static const float SL_HEALTH_CRITICAL = 15;	static const float SL_HEALTH_LOW = 30;	static const float SL_HEALTH_NORMAL = 50;	static const float SL_HEALTH_HIGH = 80;			static const float SL_TOXICITY_CRITICAL = 20;	static const float SL_TOXICITY_LOW = 40;	static const float SL_TOXICITY_NORMAL = 60;	static const float SL_TOXICITY_HIGH = 80;	static const float SL_BLOOD_CRITICAL = 3000;	static const float SL_BLOOD_LOW = 3500;	static const float SL_BLOOD_NORMAL = 4000;	static const float SL_BLOOD_HIGH = 4500;		static const float SL_ENERGY_CRITICAL = 0;	static const float SL_ENERGY_LOW = 300;	static const float SL_ENERGY_NORMAL = 800;	static const float SL_ENERGY_HIGH = 3500;	static const float SL_ENERGY_MAX = 5000;		static const float SL_WATER_CRITICAL = 0;	static const float SL_WATER_LOW = 300;	static const float SL_WATER_NORMAL = 800;	static const float SL_WATER_HIGH = 3500;	static const float SL_WATER_MAX = 5000;	//----------------------------------------------------------	//						STAT LEVELS END	//----------------------------------------------------------	//-------------------------------------------------------	static const float NORMAL_TEMPERATURE_L = 36.0;	static const float NORMAL_TEMPERATURE_H = 36.5;	static const float HIGH_TEMPERATURE_L 	= 38.5;	static const float HIGH_TEMPERATURE_H	= 39.0;	//-------------------------------------------------------	static const float DIGESTION_SPEED							= 1.7;	//quantity processed in the stomach per second	static const float CONSUMPTION_MULTIPLIER_BASE				= 1;	//must not be 0 or less	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])	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])	static const float STOMACH_SOLID_EMPTIED_PER_SEC 			= 7;	//amount of g/ml emptied from stomach per second		static const float STOMACH_DIGEST_AGENT_RANDOM_MIN = -0.5; 	//! Percents of agents count <-1.0; 1.0>	static const float STOMACH_DIGEST_AGENT_RANDOM_MAX = 0.5; 	//! Percents of agents count <-1.0; 1.0>	static const float LOW_WATER_THRESHOLD 						= SL_WATER_LOW;		//threshold from which water affects health	static const float LOW_ENERGY_THRESHOLD 					= SL_ENERGY_LOW;	//threshold from which energy affects health	//--------------------------------------------------------	static const float METABOLIC_SPEED_ENERGY_BASAL		= 0.01;		//energy loss per second while idle		static const float METABOLIC_SPEED_ENERGY_WALK		= 0.1;		//energy loss per second	static const float METABOLIC_SPEED_ENERGY_JOG		= 0.3;		//energy loss per second	static const float METABOLIC_SPEED_ENERGY_SPRINT	= 0.6;		//energy loss per second		static const float METABOLIC_SPEED_WATER_BASAL		= 0.01;		//water loss per second while idle		static const float METABOLIC_SPEED_WATER_WALK		= 0.1;		//water loss per second	static const float METABOLIC_SPEED_WATER_JOG		= 0.3;		//water loss per second	static const float METABOLIC_SPEED_WATER_SPRINT		= 0.6;		//water loss per second	//--------------------------------------------------------		static const float	THRESHOLD_HEAT_COMFORT_PLUS_WARNING		= 0.15;	//yellow zone	static const float	THRESHOLD_HEAT_COMFORT_PLUS_CRITICAL 	= 0.45;	//red zone	static const float	THRESHOLD_HEAT_COMFORT_PLUS_EMPTY		= 0.75;	//flashing red zone	static const float	THRESHOLD_HEAT_COMFORT_MINUS_WARNING	= -0.15;	//light blue zone	static const float	THRESHOLD_HEAT_COMFORT_MINUS_CRITICAL	= -0.45;	//dark blue zone	static const float	THRESHOLD_HEAT_COMFORT_MINUS_EMPTY		= -0.75;	//flashing dark blue zone	//--------------------------------------------------------	static const int BLOOD_THRESHOLD_FATAL 					= 2500;	//fatal blood level		static const float BLOOD_REGEN_RATE_PER_SEC				= 0.3; 	//base amount of blood regenerated per second	static const float DAMAGE_ZONE_BLOOD_REGEN_MODIFIER 	= 0.7;		static const float UNCONSCIOUS_BLOOD_REGEN_MLTP 		= 2;	//multiplier for blood regen while character has critical blood and uncon		static const float BLOOD_REGEN_MODIFIER_ENERGY_LOW		= 0; 	//multiplier for blood regen rate 	static const float BLOOD_REGEN_MODIFIER_ENERGY_MID		= 0.65;	static const float BLOOD_REGEN_MODIFIER_ENERGY_HIGH		= 1;		static const float BLOOD_REGEN_MODIFIER_WATER_LOW		= 0; 	//multiplier for blood regen rate (BLOOD_REGEN_MULTIPLIER_WATER_LOW ?)	static const float BLOOD_REGEN_MODIFIER_WATER_MID		= 0.65;	static const float BLOOD_REGEN_MODIFIER_WATER_HIGH		= 1;		static const float SALINE_BLOOD_REGEN_PER_SEC			= 3;	//boost for blood regen per second, independent on BLOOD_REGEN_SPEED	static const float SALINE_LIQUID_AMOUNT					= 500;	static const float SALINE_WATER_REGEN_PER_SEC 			= 2.1;		static const float HEMOLYTIC_BLOOD_DRAIN_PER_SEC		= 7;	//hemolytic reaction blood drain per second	static const float HEMOLYTIC_BLOODLOSS_AMOUNT			= 500;	static const float HEMOLYTIC_RISK_SHOCK_THRESHOLD		= 75;	// amount of blood from transfusion causing player character going into shock	static const float HEMOLYTIC_REACTION_THRESHOLD			= 175;	// amount of blood from transfusion triggering hemolytic reaction		static const float WATER_LOSS_THRESHOLD_HC_PLUS_LOW		= THRESHOLD_HEAT_COMFORT_PLUS_WARNING;	static const float WATER_LOSS_THRESHOLD_HC_PLUS_HIGH	= THRESHOLD_HEAT_COMFORT_PLUS_CRITICAL;		static const float ENERGY_LOSS_THRESHOLD_HC_MINUS_LOW	= THRESHOLD_HEAT_COMFORT_MINUS_WARNING;	static const float ENERGY_LOSS_THRESHOLD_HC_MINUS_HIGH	= THRESHOLD_HEAT_COMFORT_MINUS_CRITICAL;		static const float WATER_LOSS_HC_PLUS_LOW				= 0;	static const float WATER_LOSS_HC_PLUS_HIGH				= 0.4;	static const float ENERGY_LOSS_HC_MINUS_LOW				= 0.2;	static const float ENERGY_LOSS_HC_MINUS_HIGH			= 0.45;		static const float HEALTH_LOSS_HC_PLUS_LOW				= 0.035;	static const float HEALTH_LOSS_HC_PLUS_HIGH				= 0.30;				static const float HEALTH_LOSS_HC_MINUS_LOW				= 0.035;	static const float HEALTH_LOSS_HC_MINUS_HIGH 			= 0.30;			static const float WATER_LOSS_FEVER						= 0.2;		//--------------------------------------------------------	static const float LOW_ENERGY_DAMAGE_PER_SEC			= 0.05;	//health loss per second while low on energy	static const float LOW_WATER_DAMAGE_PER_SEC				= 0.05;	//health loss per second while low on water		static const float CONSUMPTION_DAMAGE_PER_BITE 			= 2.0;	static const float CONSUMPTION_DAMAGE_TEMP_THRESHOLD	= 70.0; //Celsius		static const float HEALTH_REGEN_MIN						= 0.005;	//health regen rate at BLOOD_THRESHOLD_FATAL blood level	static const float HEALTH_REGEN_MAX						= 0.03;		//health regen rate at MAXIMUM blood level		static const float LEG_HEALTH_REGEN						= 1;		//Leg health regen when leg is NOT BROKEN	static const float LEG_HEALTH_REGEN_BROKEN				= 0.18;		//Leg health regen when BROKEN OR SPLINTED		static const float UNCONSCIOUS_THRESHOLD				= 25.0;		//player goes unconscious when we get under this threshold	static const float CONSCIOUS_THRESHOLD					= 50.0;		//player regains consciousness when he gets above this threshold		static const float SHOCK_REFILL_CONSCIOUS_SPEED				= 5;		//shock refill speed when the player is conscious	static const float SHOCK_REFILl_UNCONSCIOUS_SPEED			= 1;		//shock refill speed when the player is unconscious	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		static const float SHOCK_DAMAGE_BLOOD_THRESHOLD_HIGH	= 3000;		// we start dealing shock damage over time when we get at this value or lower	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		static const float SHOCK_DAMAGE_HIGH					= 5.5; 		// shock damage per second when the blood is near the upper blood threshold	static const float SHOCK_DAMAGE_LOW						= 6.25; 	// shock damage per second when the blood is near the lower blood threshold		static const float SHOCK_REFILL_COOLDOWN_AFTER_HIT 		= 1000; 	// duration of cooldown (ms) during which shock regeneration is paused		static const float UNCONSCIOUS_IN_WATER_TIME_LIMIT_TO_DEATH	= 20;	// how long can player survive while unconscious when in water in secs 	//----------------------------------------------------------	static const float BLEEDING_SOURCE_BLOODLOSS_PER_SEC 	= -20; 		// amount of blood loss per second from one bleeding source 	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	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	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	static const int BLEEDING_SOURCE_DURATION_NORMAL = 300; 			// in seconds, how long will bleeding source exist until disapearing	static const float BLEEDING_LOW_PRESSURE_BLOOD = 4000.0;			// from which blood level we start lowering BLEEDING_SOURCE_BLOODLOSS_PER_SEC	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)		static const float BLEEDING_SOURCE_CLOSE_INFECTION_CHANCE = 0.40;	// a chance for wound infection when the wound is self-closing	static const float BLEEDING_SOURCE_BURN_MODIFIER = 0.65;			// modifies a bloodflow for any bleeding source obtained through skin burn from contaminated area	 	//----------------------------------------------------------	static const float BREATH_VAPOUR_THRESHOLD_HIGH 		= -5.0; 	//missing comment	static const float BREATH_VAPOUR_THRESHOLD_LOW 			= 7.0; 		//missing comment	//----------------------------------------------------------	static const float IMMUNITY_THRESHOLD_LEVEL_HIGH = 0.95;	static const float IMMUNITY_THRESHOLD_LEVEL_NORMAL = 0.72;	static const float IMMUNITY_THRESHOLD_LEVEL_LOW = 0.35;	static const float IMMUNITY_THRESHOLD_LEVEL_CRITICAL = 0.15;	//----------------------------------------------------------	static const float VITAMINS_LIFETIME_SECS				= 300;	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) 	static const float GLOVES_DAMAGE_SLIDING_LADDER_PER_SEC = -3;// how much damage the gloves receive while sliding down the ladder (per sec)		//----------------------------------------------------------	//						BADGE THRESHOLDS	//----------------------------------------------------------	static const int BT_STOMACH_VOLUME_LVL3 = 1000;	static const int BT_STOMACH_VOLUME_LVL2 = 750;	static const int BT_STOMACH_VOLUME_LVL1 = 1;	//!	static const int LAST_UA_MSG_LIFETIME = 30;						//! last User Action message lifetime [s] (default: 30s)		//!	const int	 	VOMIT_THRESHOLD 			= 2000;		static const float 	CORPSE_THRESHOLD_MEDIUM = 0.7; //0.7	static const float 	CORPSE_THRESHOLD_DECAYED = 0.3; //0.3		static const int 	CORPSE_STATE_FRESH = 0;	static const int 	CORPSE_STATE_MEDIUM = 1;	static const int 	CORPSE_STATE_DECAYED = 2;	//----------------------------------------------------------	static const float 	CAMERA_THRESHOLD_PITCH = -70.0;		//----------------------------------------------------------	//						BROKEN LEGS SHOCK	//----------------------------------------------------------	static const float 	BROKEN_LEGS_INITIAL_SHOCK = 20;				//Inflicted shock on modifier start	static const float 	BROKEN_LEGS_LOW_SHOCK_WALK = 4;				//Inflicted shock on modifier update with almost healthy legs 	static const float 	BROKEN_LEGS_MID_SHOCK_WALK = 6;				//Inflicted shock on modifier update with mid health legs	static const float 	BROKEN_LEGS_HIGH_SHOCK_WALK = 8;			//Inflicted shock on modifier update with low health legs	static const float 	BROKEN_LEGS_SHOCK_SWIM = 2;					//Inflicted shock on modifier update when swimming	static const float 	BROKEN_LEGS_LIGHT_MELEE_SHOCK = 10; 		//Inflicted shock per light weapon swing	static const float 	BROKEN_LEGS_HEAVY_MELEE_SHOCK = 25; 		//Inflicted shock per heavy weapon swing	static const float	BROKEN_LEGS_LOW_HEALTH_THRESHOLD = 25;		//Amount of health BELOW which legs have "low health"	static const float	BROKEN_LEGS_HIGH_HEALTH_THRESHOLD = 75;		//Amount of health OVER which legs have "low health"	//static const int	BROKEN_LEGS_FALL_STEP_COUNT = 10;			//Number of steps before falling over	static const float	BROKEN_LEGS_STAND_SHOCK = 0;				//Shock dealt when standing with broken legs	static const float	BROKEN_LEGS_ROLL_SHOCK = 10;				//Shock dealt when rolling with broken legs	static const float	BROKEN_CROUCH_MODIFIER = 0.5;				//Inflicted shock modifier for crouched stance		//----------------------------------------------------------	//						AI SENSOR MULTIPLIER	//----------------------------------------------------------	static const float AI_NOISE_ROLL 			= 2;				//Multiplier for the noise generated while prone rolling	static const float AI_NOISE_SPRINT 			= 1;				//Multiplier for the noise generated while sprinting	static const float AI_NOISE_RUN 			= 0.8;				//Multiplier for the noise generated while jogging	static const float AI_NOISE_CROUCH_RUN 		= 0.6;				//Multiplier for the noise generated while Sprint crouch	static const float AI_NOISE_WALK 			= 0.4;				//Multiplier for the noise generated while walking	static const float AI_NOISE_IDLE 			= 0;				//Multiplier for the noise generated while staying still	static const float AI_NOISE_SHOES_BOOTS 	= 0.85;				//Multiplier for the noise generated while wearing boots	static const float AI_NOISE_SHOES_SNEAKERS	= 0.6;				//Multiplier for the noise generated while wearing sneakers	static const float AI_NOISE_SHOES_NONE 		= 0.45;				//Multiplier for the noise generated while not wearing shoes	static const float AI_VISIBILITY_RUN 		= 1;				//Multiplier for the visibility of the player while jogging or sprinting	static const float AI_VISIBILITY_WALK 		= 0.66;				//Multiplier for the visibility of the player while walking	static const float AI_VISIBILITY_IDLE 		= 0.3;				//Multiplier for the visibility of the player while staying still	static const float AI_VISIBILITY_STANDING	= 1.5;				//Multiplier for the visibility of the player while standing	static const float AI_VISIBILITY_CROUCH		= 0.6;				//Multiplier for the visibility of the player while crouched	static const float AI_VISIBILITY_PRONE 		= 0.15;				//Multiplier for the visibility of the player while prone	//----------------------------------------------------------	//						DROWNING	//----------------------------------------------------------																		//(positive values mean the distance under water surface, ie 0.1 --> 10cm under water, -0.1 --> 10cm above water)	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	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	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)	static const int	DROWNING_BUBBLE_FREQUENCY_MAX		= 4000; //how often should bubbles appear when the stamina is at its highest,(in ms)	static const int	DROWNING_BUBBLE_FREQUENCY_MIN		= 1000; //how often should bubbles appear when the stamina is at its lowest,(in ms)		static const float	BLOODY_HANDS_FOOD_POISON_AGENT_INCREMENT = 5;		//! DEPRECATED	static const float	BLOODY_HANDS_SALMONELLA_CHANCE		= 0.05; //! replaced by EntityAI::m_BloodInfectionChanceCached}
 |