# 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