N3OW/common/script_values/10_health_values.txt
2024-11-16 19:09:11 +00:00

756 lines
13 KiB
Text

# Dependencies:
# _basic_values.txt
# When their health drop too low and they're slated for death, a character will die within 15-50 days (based on DEATH_MAXIMUM_DELAY , DEATH_MINIMUM_DELAY and DEATH_CHECK_INTERVAL in defines)
######################
# Diseases
######################
#### TREATMENT PROCESS SPEED ###
#The speed should most likely be under the minimum delay between health check and death DEATH_MINIMUM_DELAY (15)
court_physician_search_min = 7
court_physician_search_max = 10
physician_treatment_delay_ruler_min = 2
physician_treatment_delay_ruler_max = 4
physician_treatment_delay_subject_min = 6 #Subject span should be after ruler span so ruler's own treatment is always first
physician_treatment_delay_subject_max = 15
### RECOVERY TIMES ###
minimum_recovery_time = 51 #Needs to be higher than 50 (the longest amount of days between health change and death, so that a character can't recover before they're slated to be checked for death)
ill_recovery_min = minimum_recovery_time
ill_recovery_max = 365
pneumonic_recovery_min = minimum_recovery_time
pneumonic_recovery_max = 250
gout_ridden_recovery_min = { #1 year
value = minimum_recovery_time
add = 314
}
gout_ridden_recovery_max = 10950 #30 years
smallpox_min_recovery_time = minimum_recovery_time
smallpox_max_recovery_time = 150
bubonic_plague_min_recovery_time = minimum_recovery_time
bubonic_plague_max_recovery_time = 150
measles_min_recovery_time = minimum_recovery_time
measles_max_recovery_time = 100
dysentery_min_recovery_time = minimum_recovery_time
dysentery_max_recovery_time = 100
ergotism_min_recovery_time = minimum_recovery_time
ergotism_max_recovery_time = 150
### CONTAGION ###
smallpox_contagion_min = 15 #If there is a physician, the character should be likely to meet them before first spread
smallpox_contagion_max = 65
bubonic_plague_contagion_min = 15 #If there is a physician, the character should be likely to meet them before first spread
bubonic_plague_contagion_max = 45 #Shorter than smallpox because you die faster
physician_contagion_prevention_value = {
add = physician_base_skill_factor #Between 1 for average skill and 3 for high skill
if = {
limit = {
AND = {
has_trait = lifestyle_physician
has_trait_xp = {
trait = lifestyle_physician
value >= 100
}
}
}
multiply = 2
}
else_if = {
limit = {
OR = {
AND = {
has_trait = lifestyle_physician
has_trait_xp = {
trait = lifestyle_physician
value >= 50
}
}
AND = {
has_trait = lifestyle_mystic
has_trait_xp = {
trait = lifestyle_mystic
value >= 100
}
}
}
}
multiply = 1.5
}
else_if = {
limit = {
OR = {
has_trait = lifestyle_physician
AND = {
has_trait = lifestyle_mystic
has_trait_xp = {
trait = lifestyle_mystic
value >= 50
}
}
has_trait = lifestyle_herbalist
}
}
multiply = 1.3
}
else_if = {
limit = {
has_trait = lifestyle_mystic
}
multiply = 1.1
}
max = 7.5
}
#####################
# Treatments
#####################
######################
# Court Physician
######################
high_skill_court_physician_cost = {
value = medium_gold_value
if = {
limit = {
has_perk = anatomical_studies_perk
}
multiply = 0.5
}
}
low_skill_court_physician_cost = {
value = minor_gold_value
if = {
limit = {
has_perk = anatomical_studies_perk
}
multiply = 0.5
}
}
physician_base_skill_factor = {
# 1 for an average learning skill character without traits
# 0.2 min for low learning
# ~3 for high skill character without traits
add = learning
divide = average_skill_rating #At average skill rating, we have a factor of 1
if = {
limit = { learning >= high_skill_rating } #At high skill rating, they become 30% better
multiply = 1.3
}
min = 0.2
}
physician_safe_treatment_skill_factor = {
# 1 for an average learning skill character without traits
# 0.2 min for low learning
# ~3 for high skill character without traits
# ~12 for high skill character with best trait (physician_3)
value = physician_base_skill_factor
if = {
limit = {
AND = {
has_trait = lifestyle_physician
has_trait_xp = {
trait = lifestyle_physician
value >= 100
}
}
}
multiply = 4
}
else_if = {
limit = {
OR = {
AND = {
has_trait = lifestyle_physician
has_trait_xp = {
trait = lifestyle_physician
value >= 50
}
}
AND = {
has_trait = lifestyle_mystic
has_trait_xp = {
trait = lifestyle_mystic
value >= 100
}
}
}
}
multiply = 2
}
else_if = {
limit = {
OR = {
has_trait = lifestyle_physician
AND = {
has_trait = lifestyle_mystic
has_trait_xp = {
trait = lifestyle_mystic
value >= 50
}
}
has_trait = lifestyle_herbalist
}
}
multiply = 1.5
}
else_if = {
limit = {
has_trait = lifestyle_mystic
}
multiply = 1.2
}
if = {
limit = {
liege ?= {
domicile ?= {
has_domicile_building_or_higher = bath_04
}
}
}
multiply = 1.4
}
else_if = {
limit = {
liege ?= {
domicile ?= {
has_domicile_building_or_higher = bath_01
}
}
}
multiply = 1.2
}
if = {
limit = {
exists = liege
liege = { has_perk = anatomical_studies_perk }
}
multiply = 2
}
}
#################
# Weight
################
#These values are used to calculate the target weight that characters will trend towards once every three years
underweight_threshold = 0
overweight_threshold = 0
feast_weight_modifier_value = {
add = 5
# You have a lot of very desirable food
if = {
limit = {
scope:activity.activity_host = {
has_royal_court = yes
has_dlc_feature = royal_court
amenity_level = {
type = court_food_quality
value >= 5
}
}
}
add = 3
}
# You have a lot of food in general
else_if = {
limit = {
scope:activity.activity_host = {
has_royal_court = yes
has_dlc_feature = royal_court
amenity_level = {
type = court_food_quality
value >= 3
}
}
}
add = 2
}
# It's a smaller amount of food, but it's still a feast
else_if = {
limit = {
scope:activity.activity_host = {
has_royal_court = yes
has_dlc_feature = royal_court
amenity_level = {
type = court_food_quality
value <= 1
}
}
}
add = -1
}
}
hunt_weight_modifier_value = -4
cake_shaft_modifier_value = 4
character_weight_base_value = {
add = 0
#Any modifiers that will affect weight?
if = {
limit = {
is_ai = yes # Players gaining weight is handled through health.5004
has_character_modifier = gaining_weight_modifier
}
add = 35
}
if = {
limit = {
is_ai = yes # Players losing weight is handled through health.5005
has_character_modifier = losing_weight_modifier
}
add = -35
}
if = {
limit = {
has_character_modifier = fasting_bad_modifier
}
add = -10
}
#Do you have a food taster? For some reason your plate is always weirdly empty since you employed them...
if = {
limit = {
employs_court_position = food_taster_court_position
}
add = -5
}
#Any activities attended/other things that will affect weight?
if = {
limit = {
has_variable = character_weight_variable
}
add = var:character_weight_variable
}
# PRISON/STARVATION
if = {
limit = {
is_imprisoned = yes
}
if = {
limit = {
is_in_prison_type = dungeon
}
add = -75
}
else = {
add = -30
}
}
# DISEASE
if = {
limit = {
has_trait = consumption
}
add = -75
}
if = {
limit = {
has_trait = cancer
}
add = -50
}
if = {
limit = {
has_trait = great_pox
}
add = -35
}
if = {
limit = {
has_trait = leper
}
add = -15
}
# Court amenities, weight gain from court_food_quality
if = {
limit = {
has_royal_court = yes
has_dlc_feature = royal_court
court_owner = {
amenity_level = { type = court_food_quality value = 3 }
}
}
add = 3
}
else_if = {
limit = {
has_royal_court = yes
has_dlc_feature = royal_court
court_owner = {
amenity_level = { type = court_food_quality value = 4 }
}
}
add = 5
}
else_if = {
limit = {
has_royal_court = yes
has_dlc_feature = royal_court
court_owner = {
amenity_level = { type = court_food_quality value = 5 }
}
}
add = 7
}
########
#Trait check
########
#ADD
if = {
limit = { has_trait = gluttonous }
add = 50
}
if = {
limit = { has_trait = comfort_eater }
add = 25
}
if = {
limit = { has_trait = drunkard }
add = 20
}
if = {
limit = { has_trait = hashishiyah }
add = 20
}
if = {
limit = { has_trait = lazy }
add = 10
}
if = {
limit = { has_trait = greedy }
add = 10
}
if = {
limit = { has_trait = calm }
add = 10
}
if = {
limit = { has_trait = trusting }
add = 10
}
if = {
limit = { has_trait = gregarious }
add = 10
}
if = {
limit = { has_trait = patient }
add = 5
}
if = {
limit = { has_trait = arrogant }
add = 5
}
if = {
limit = { has_trait = ambitious }
add = 5
}
if = {
limit = {
has_trait = lifestyle_reveler
}
add = 5
if = {
limit = {
has_trait_xp = {
trait = lifestyle_reveler
value >= 100
}
}
add = 15
}
else_if = {
limit = {
has_trait_xp = {
trait = lifestyle_reveler
value >= 50
}
}
add = 10
}
}
#SUBTRACT
if = {
limit = { has_trait = shy }
add = -5
}
if = {
limit = { has_trait = zealous }
add = -5
}
if = {
limit = { has_trait = craven }
add = -5
}
if = {
limit = { has_trait = impatient }
add = -10
}
if = {
limit = { has_trait = fickle}
add = -10
}
if = {
limit = { has_trait = vengeful }
add = -10
}
if = {
limit = { has_trait = wrathful }
add = -10
}
if = {
limit = { has_trait = humble }
add = -10
}
if = {
limit = { has_trait = content }
add = -15
}
if = {
limit = { has_trait = generous }
add = -15
}
if = {
limit = { has_trait = diligent }
add = -15 # Further 'moderation' impact below.
}
if = {
limit = { has_trait = temperate }
add = -20 # Further 'moderation' impact below.
}
if = {
limit = { has_trait = reclusive }
add = -20
}
if = {
limit = { has_trait = paranoid }
add = -25
}
if = {
limit = { has_trait = inappetetic }
add = -50
}
# MODERATION - reduces weight if overweight, and increases it if underweight
if = {
limit = {
has_trait = athletic
}
multiply = 0.8
}
if = {
limit = {
has_trait = whole_of_body
}
multiply = 0.75
}
if = {
limit = { is_very_young_character = yes }
multiply = 0.33
}
if = {
limit = { is_young_character = yes }
multiply = 0.66
}
if = {
limit = { is_aging_character = yes }
multiply = 1.5
}
if = {
limit = {
has_trait = physique_good_1
}
multiply = 0.9
}
if = {
limit = {
has_trait = physique_good_2
}
multiply = 0.8
}
if = {
limit = {
has_trait = physique_good_3
}
multiply = 0.7
}
if = {
limit = {
has_trait = temperate
}
multiply = 0.9
}
if = {
limit = {
has_trait = diligent
}
multiply = 0.9
}
#Bad physique has the opposite effect, making you skew even further towards extremes
if = {
limit = {
has_trait = physique_bad_1
}
multiply = 1.1
}
if = {
limit = {
has_trait = physique_bad_2
}
multiply = 1.2
}
if = {
limit = {
has_trait = physique_bad_3
}
multiply = 1.3
}
}
base_weight_plus = {
add = base_weight
add = 10
}
base_weight_minus = {
add = base_weight
add = -10
}
#The actual value that will be looked at
character_weight_target_value = {
add = character_weight_base_value
#To even the numbers out some if you have "good" and/or active traits
if = {
limit = {
OR = {
character_weight_base_value < base_weight_minus
character_weight_base_value > base_weight_plus
}
}
if = {
limit = { #You weigh too little
character_weight_base_value < base_weight_minus
}
if = {
limit = { has_trait = lifestyle_hunter }
add = 2
if = {
limit = {
hunt_lifestyle_track_greater_equal_trigger = { TRACK = hunter GREATER_EQUAL = 50 }
}
add = 2
}
if = {
limit = {
hunt_lifestyle_track_greater_equal_trigger = { TRACK = hunter GREATER_EQUAL = 100 }
}
add = 2
}
}
if = {
limit = {
has_lifestyle = martial_lifestyle
}
add = 10
}
}
else = { #You weigh too much
if = {
limit = { has_trait = lifestyle_hunter }
if = {
limit = {
hunt_lifestyle_track_greater_equal_trigger = { TRACK = hunter GREATER_EQUAL = 50 }
}
add = -2
}
if = {
limit = {
hunt_lifestyle_track_greater_equal_trigger = { TRACK = hunter GREATER_EQUAL = 100 }
}
add = -2
}
else = {
add = -2
}
}
if = {
limit = {
has_lifestyle = martial_lifestyle
}
add = -10
}
}
}
}
# Pregnancy
pregnancy_month = {
value = pregnancy_days
divide = 30
floor = yes
min = 1
}
vigorous_sex_age_difference_value = {
value = age
subtract = 25
}
harm_event_random_list_low_odd_success_value = 40
harm_event_random_list_low_odd_failure_value = 60
harm_event_random_list_medium_odd_success_value = 60
harm_event_random_list_medium_odd_failure_value = 40
harm_event_random_list_high_odd_success_value = 70
harm_event_random_list_high_odd_failure_value = 30