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
- }
|