From 884ac18c56b794e3a1a2305aa6ed3c7f51ed4d2b Mon Sep 17 00:00:00 2001 From: Heidesommer Date: Fri, 29 May 2026 21:29:55 -0400 Subject: [PATCH] Disease tweaks --- common/epidemics/00_epidemics.txt | 628 +++++++++--------- .../00_physician_character_template.txt | 24 + .../dlc/ce1/ce1_epidemic_events_l_english.yml | 2 +- ...e1_epidemic_physician_events_l_english.yml | 8 +- 4 files changed, 343 insertions(+), 319 deletions(-) diff --git a/common/epidemics/00_epidemics.txt b/common/epidemics/00_epidemics.txt index 66b7d7cd..ce91018b 100644 --- a/common/epidemics/00_epidemics.txt +++ b/common/epidemics/00_epidemics.txt @@ -1,319 +1,319 @@ @default_tile_multiplier = 0.009702 -smallpox = { - trait = smallpox - color = { 88 12 31 } - priority = 3 - - shader_data = { - strength = 0.8 - edge_fade = 0.25 - tile_multiplier = 0.004702 - texture_index = 0 - channel = alpha - } - - name = { - first_valid = { - triggered_desc = { - trigger = { - outbreak_intensity = apocalyptic - outbreak_province = province:3045 - } - desc = epidemic_bonifacy_gift - } - triggered_desc = { - trigger = { - outbreak_intensity = apocalyptic - outbreak_province = province:7596 - } - desc = epidemic_raqguul_plague - } - random_valid = { - triggered_desc = { - trigger = { - outbreak_intensity = apocalyptic - outbreak_province = { - geographical_region = ghw_region_egypt - county.faith.religion = { is_in_family = rf_abrahamic } - } - } - desc = epidemic_eleventh_plague - } - desc = epidemic_rulers_pox - desc = epidemic_titled_rulers_pox - desc = epidemic_animal_pox # Monkeypox, chickenpox and the like - desc = epidemic_realm_pox - desc = epidemic_holder_pox - desc = epidemic_culture_pox - desc = epidemic_location_pox - } - desc = trait_smallpox - } - } - - on_start = { - # LEGITIMACY LOSS FROM EPIDEMIC OUTBREAK - epidemic_outbreak_legitimacy_effect = { PROVINCE = root.outbreak_province } - #if = { - # limit = { - # outbreak_intensity = apocalyptic - # } - # if = { - # limit = { - # NOT = { - # exists = global_var:epidemic_smallpox_apocalyptic - # } - # } - # set_global_variable = { - # name = epidemic_smallpox_apocalyptic - # value = 1 - # } - # } - # else = { - # change_global_variable = { - # name = epidemic_smallpox_apocalyptic - # add = 1 - # } - # } - #} - #else_if = { - # limit = { - # outbreak_intensity = major - # } - # if = { - # limit = { - # NOT = { - # exists = global_var:epidemic_smallpox_major - # } - # } - # set_global_variable = { - # name = epidemic_smallpox_major - # value = 1 - # } - # } - # else = { - # change_global_variable = { - # name = epidemic_smallpox_major - # add = 1 - # } - # } - #} - #else = { - # if = { - # limit = { - # NOT = { - # exists = global_var:epidemic_smallpox_minor - # } - # } - # set_global_variable = { - # name = epidemic_smallpox_minor - # value = 1 - # } - # } - # else = { - # change_global_variable = { - # name = epidemic_smallpox_minor - # add = 1 - # } - # } - #} - } - - on_monthly = { - trigger_event = { - on_action = epidemic_ongoing_events - } - } - - character_infection_chance = { - value = character_infection_chance_default_value - } - - can_infect_character = { - can_contract_disease_trigger = { DISEASE = smallpox } - immune_to_epidemic = { EPIDEMIC = scope:epidemic } - } - - on_character_infected = { - contract_disease_notify_effect = { DISEASE = smallpox } - if = { - limit = { - is_commanding_army = yes - } - trigger_event = epidemic_events.0001 #we infect your army - } - } - - infection_levels = { - 10 = { - province_modifier = { - county_opinion_add = -2 - epidemic_travel_danger = 10 - development_decline = -1 - } - } - 50 = { - province_modifier = { - county_opinion_add = -3 - epidemic_travel_danger = 20 - development_decline = -2 - } - } - 80 = { - province_modifier = { - monthly_county_control_decline_add = -0.1 - supply_limit_mult = -0.2 - county_opinion_add = -5 - epidemic_travel_danger = 30 - development_decline = -3 - } - } - } - - outbreak_intensities = { - minor = { - outbreak_chance = { - value = outbreak_chance_minor_default_value - multiply = outbreak_chance_minor_mult_value - multiply = recent_epidemics_outbreak_mult_value - - ### NO DLC - We increase the chance to make up for the locked diseases ### - if = { - limit = { - NOT = { has_dlc_feature = legends_of_the_dead } - } - multiply = 2 - } - if = { - limit = { - has_game_rule = epidemic_frequency_disabled - } - multiply = 0 - } - } - spread_chance = { - value = spread_chance_epidemics_default_value - multiply = spread_chance_epidemics_mult_value - } - max_provinces = { 30 55 } - - infection_duration = { - months = { 6 8 } - } - - infection_progress_duration = { - days = { 80 120 } - } - - infection_recovery_duration = { - days = { 15 22 } - } - } - - major = { - outbreak_chance = { - value = outbreak_chance_major_default_value - multiply = outbreak_chance_major_mult_value - multiply = recent_epidemics_outbreak_mult_value - - ### NO DLC - We increase the chance to make up for the locked diseases ### - if = { - limit = { - NOT = { has_dlc_feature = legends_of_the_dead } - } - multiply = 1.5 - } - if = { - limit = { - has_game_rule = epidemic_frequency_disabled - } - multiply = 0 - } - } - spread_chance = { - value = spread_chance_epidemics_default_value - multiply = spread_chance_epidemics_mult_value - } - max_provinces = { 85 130 } - - infection_duration = { - months = { 10 20 } - } - - infection_progress_duration = { - days = { 40 60 } - } - - infection_recovery_duration = { - days = 25 - } - } - - apocalyptic = { - outbreak_chance = { - value = outbreak_chance_apocalyptic_default_value - multiply = outbreak_chance_apocalyptic_mult_value - multiply = recent_epidemics_outbreak_mult_value - - ### NO DLC - We increase the chance to make up for the locked diseases ### - if = { - limit = { - NOT = { has_dlc_feature = legends_of_the_dead } - } - multiply = 1.25 - } - if = { - limit = { - has_game_rule = epidemic_frequency_disabled - } - multiply = 0 - } - } - spread_chance = { - value = spread_chance_epidemics_default_value - multiply = spread_chance_epidemics_mult_value - } - max_provinces = { 220 325 } - - infection_duration = { - months = { 22 40 } - } - - infection_progress_duration = { - days = { 15 20 } - } - - infection_recovery_duration = { - days = { 25 35 } - } - } - } - - on_province_infected = { - county = { - apply_infection_development_loss = { BASE = 5 } - } - cant_touch_this_achievement_effect = yes - } - - on_province_recovered = { - county = { - remove_isolated_capital_modifiers_effect = yes - } - add_to_variable_list = { - name = epidemic_cooldown - target = scope:epidemic.epidemic_type - years = 50 - } - set_variable = { - name = epidemic_cooldown_general - years = 15 - } - # Prosperity event - plague_recovery_event_effect = yes - } -} +#smallpox = { +# trait = smallpox +# color = { 88 12 31 } +# priority = 3 +# +# shader_data = { +# strength = 0.8 +# edge_fade = 0.25 +# tile_multiplier = 0.004702 +# texture_index = 0 +# channel = alpha +# } +# +# name = { +# first_valid = { +# triggered_desc = { +# trigger = { +# outbreak_intensity = apocalyptic +# outbreak_province = province:3045 +# } +# desc = epidemic_bonifacy_gift +# } +# triggered_desc = { +# trigger = { +# outbreak_intensity = apocalyptic +# outbreak_province = province:7596 +# } +# desc = epidemic_raqguul_plague +# } +# random_valid = { +# triggered_desc = { +# trigger = { +# outbreak_intensity = apocalyptic +# outbreak_province = { +# geographical_region = ghw_region_egypt +# county.faith.religion = { is_in_family = rf_abrahamic } +# } +# } +# desc = epidemic_eleventh_plague +# } +# desc = epidemic_rulers_pox +# desc = epidemic_titled_rulers_pox +# desc = epidemic_animal_pox # Monkeypox, chickenpox and the like +# desc = epidemic_realm_pox +# desc = epidemic_holder_pox +# desc = epidemic_culture_pox +# desc = epidemic_location_pox +# } +# desc = trait_smallpox +# } +# } +# +# on_start = { +# # LEGITIMACY LOSS FROM EPIDEMIC OUTBREAK +# epidemic_outbreak_legitimacy_effect = { PROVINCE = root.outbreak_province } +# #if = { +# # limit = { +# # outbreak_intensity = apocalyptic +# # } +# # if = { +# # limit = { +# # NOT = { +# # exists = global_var:epidemic_smallpox_apocalyptic +# # } +# # } +# # set_global_variable = { +# # name = epidemic_smallpox_apocalyptic +# # value = 1 +# # } +# # } +# # else = { +# # change_global_variable = { +# # name = epidemic_smallpox_apocalyptic +# # add = 1 +# # } +# # } +# #} +# #else_if = { +# # limit = { +# # outbreak_intensity = major +# # } +# # if = { +# # limit = { +# # NOT = { +# # exists = global_var:epidemic_smallpox_major +# # } +# # } +# # set_global_variable = { +# # name = epidemic_smallpox_major +# # value = 1 +# # } +# # } +# # else = { +# # change_global_variable = { +# # name = epidemic_smallpox_major +# # add = 1 +# # } +# # } +# #} +# #else = { +# # if = { +# # limit = { +# # NOT = { +# # exists = global_var:epidemic_smallpox_minor +# # } +# # } +# # set_global_variable = { +# # name = epidemic_smallpox_minor +# # value = 1 +# # } +# # } +# # else = { +# # change_global_variable = { +# # name = epidemic_smallpox_minor +# # add = 1 +# # } +# # } +# #} +# } +# +# on_monthly = { +# trigger_event = { +# on_action = epidemic_ongoing_events +# } +# } +# +# character_infection_chance = { +# value = character_infection_chance_default_value +# } +# +# can_infect_character = { +# can_contract_disease_trigger = { DISEASE = smallpox } +# immune_to_epidemic = { EPIDEMIC = scope:epidemic } +# } +# +# on_character_infected = { +# contract_disease_notify_effect = { DISEASE = smallpox } +# if = { +# limit = { +# is_commanding_army = yes +# } +# trigger_event = epidemic_events.0001 #we infect your army +# } +# } +# +# infection_levels = { +# 10 = { +# province_modifier = { +# county_opinion_add = -2 +# epidemic_travel_danger = 10 +# development_decline = -1 +# } +# } +# 50 = { +# province_modifier = { +# county_opinion_add = -3 +# epidemic_travel_danger = 20 +# development_decline = -2 +# } +# } +# 80 = { +# province_modifier = { +# monthly_county_control_decline_add = -0.1 +# supply_limit_mult = -0.2 +# county_opinion_add = -5 +# epidemic_travel_danger = 30 +# development_decline = -3 +# } +# } +# } +# +# outbreak_intensities = { +# minor = { +# outbreak_chance = { +# value = outbreak_chance_minor_default_value +# multiply = outbreak_chance_minor_mult_value +# multiply = recent_epidemics_outbreak_mult_value +# +# ### NO DLC - We increase the chance to make up for the locked diseases ### +# if = { +# limit = { +# NOT = { has_dlc_feature = legends_of_the_dead } +# } +# multiply = 2 +# } +# if = { +# limit = { +# has_game_rule = epidemic_frequency_disabled +# } +# multiply = 0 +# } +# } +# spread_chance = { +# value = spread_chance_epidemics_default_value +# multiply = spread_chance_epidemics_mult_value +# } +# max_provinces = { 30 55 } +# +# infection_duration = { +# months = { 6 8 } +# } +# +# infection_progress_duration = { +# days = { 80 120 } +# } +# +# infection_recovery_duration = { +# days = { 15 22 } +# } +# } +# +# major = { +# outbreak_chance = { +# value = outbreak_chance_major_default_value +# multiply = outbreak_chance_major_mult_value +# multiply = recent_epidemics_outbreak_mult_value +# +# ### NO DLC - We increase the chance to make up for the locked diseases ### +# if = { +# limit = { +# NOT = { has_dlc_feature = legends_of_the_dead } +# } +# multiply = 1.5 +# } +# if = { +# limit = { +# has_game_rule = epidemic_frequency_disabled +# } +# multiply = 0 +# } +# } +# spread_chance = { +# value = spread_chance_epidemics_default_value +# multiply = spread_chance_epidemics_mult_value +# } +# max_provinces = { 85 130 } +# +# infection_duration = { +# months = { 10 20 } +# } +# +# infection_progress_duration = { +# days = { 40 60 } +# } +# +# infection_recovery_duration = { +# days = 25 +# } +# } +# +# apocalyptic = { +# outbreak_chance = { +# value = outbreak_chance_apocalyptic_default_value +# multiply = outbreak_chance_apocalyptic_mult_value +# multiply = recent_epidemics_outbreak_mult_value +# +# ### NO DLC - We increase the chance to make up for the locked diseases ### +# if = { +# limit = { +# NOT = { has_dlc_feature = legends_of_the_dead } +# } +# multiply = 1.25 +# } +# if = { +# limit = { +# has_game_rule = epidemic_frequency_disabled +# } +# multiply = 0 +# } +# } +# spread_chance = { +# value = spread_chance_epidemics_default_value +# multiply = spread_chance_epidemics_mult_value +# } +# max_provinces = { 220 325 } +# +# infection_duration = { +# months = { 22 40 } +# } +# +# infection_progress_duration = { +# days = { 15 20 } +# } +# +# infection_recovery_duration = { +# days = { 25 35 } +# } +# } +# } +# +# on_province_infected = { +# county = { +# apply_infection_development_loss = { BASE = 5 } +# } +# cant_touch_this_achievement_effect = yes +# } +# +# on_province_recovered = { +# county = { +# remove_isolated_capital_modifiers_effect = yes +# } +# add_to_variable_list = { +# name = epidemic_cooldown +# target = scope:epidemic.epidemic_type +# years = 50 +# } +# set_variable = { +# name = epidemic_cooldown_general +# years = 15 +# } +# # Prosperity event +# plague_recovery_event_effect = yes +# } +#} bubonic_plague = { trait = bubonic_plague diff --git a/common/scripted_character_templates/00_physician_character_template.txt b/common/scripted_character_templates/00_physician_character_template.txt index 92aa147e..fb769d68 100644 --- a/common/scripted_character_templates/00_physician_character_template.txt +++ b/common/scripted_character_templates/00_physician_character_template.txt @@ -62,6 +62,18 @@ physician_high_character_template = { medium_lifestyle_random_xp_high } } + random = { + chance = 10 + if = { + limit = { + root.capital_province = { + geographical_region = world_europe + } + } + add_character_flag = ai_will_not_convert + set_character_faith = faith:trenchsinger + } + } } } @@ -104,5 +116,17 @@ physician_excellent_character_template = { add_trait = lifestyle_herbalist } } + random = { + chance = 33 + if = { + limit = { + root.capital_province = { + geographical_region = world_europe + } + } + add_character_flag = ai_will_not_convert + set_character_faith = faith:trenchsinger + } + } } } diff --git a/localization/english/replace/dlc/ce1/ce1_epidemic_events_l_english.yml b/localization/english/replace/dlc/ce1/ce1_epidemic_events_l_english.yml index 8d8bdfa9..3a6e991f 100644 --- a/localization/english/replace/dlc/ce1/ce1_epidemic_events_l_english.yml +++ b/localization/english/replace/dlc/ce1/ce1_epidemic_events_l_english.yml @@ -212,7 +212,7 @@ epidemic_events.1110.a: "Very well." epidemic_events.1110.b: "That site is only for me and mine." epidemic_events.1120.t: "A Gruesome Gift" - epidemic_events.1120.desc: "As we enter [flung_corpse_location.GetName], a devilish idea crosses my mind. A few troops lie on the brink of death with [epidemic_scope.GetName] and soon will depart from this world. It is possible, however, for them to serve me in this war even in death.\n\nThe miasma from the corpses will surely cause more of my soldiers to fall ill, unless we were to dispose of the bodies somehow. Perhaps we may bring [corpse_flingee.GetName] to [corpse_flingee.GetHerHis] knees by sending [corpse_flingee.GetHerHim] a gift via catapult..." + epidemic_events.1120.desc: "As we enter [flung_corpse_location.GetName], a devilish idea crosses my mind. A few troops lie on the brink of death with [epidemic_scope.GetName] and soon will depart from this world. It is possible, however, for them to serve me in this war even in death.\n\nThe germs from the corpses will surely cause more of my soldiers to fall ill, unless we were to dispose of the bodies somehow. Perhaps we may bring [corpse_flingee.GetName] to [corpse_flingee.GetHerHis] knees by sending [corpse_flingee.GetHerHim] a gift via catapult..." epidemic_events.1120.a: "Load up the bodies!" epidemic_events.1120.b: "This is obscene!" epidemic_events.1121.t: "A Gift From Above" diff --git a/localization/english/replace/dlc/ce1/ce1_epidemic_physician_events_l_english.yml b/localization/english/replace/dlc/ce1/ce1_epidemic_physician_events_l_english.yml index 3a9e45c9..d4c9b2db 100644 --- a/localization/english/replace/dlc/ce1/ce1_epidemic_physician_events_l_english.yml +++ b/localization/english/replace/dlc/ce1/ce1_epidemic_physician_events_l_english.yml @@ -1,13 +1,13 @@ l_english: physician_epidemic_events.1000.t: "Unorthodox Treatment" - physician_epidemic_events.1000.desc: "My [physician.Custom2('MyCharacterIntroduction', ROOT.Char)] and [zealous_courtier.Custom2('MyCharacterIntroduction', ROOT.Char)] are at each other's throats over how to handle the spreading [epidemic_scope.GetName].\n\n"I am a physician!" Talāra insists. "Let me purge this plague!"\n\n"Heresy!" Mahakala snarls. "We must anoint the dead and give them proper [zealous_courtier.GetFaith.GetAdjective] rites."" + physician_epidemic_events.1000.desc: "My [physician.Custom2('MyCharacterIntroduction', ROOT.Char)] and [zealous_courtier.Custom2('MyCharacterIntroduction', ROOT.Char)] are at each other's throats over how to handle the spreading [epidemic_scope.GetName].\n\n"I am a physician!" [physician.GetFirstNameNoTooltip] insists. "Let me purge this plague!"\n\n"Heresy!" [zealous_courtier.GetFirstNameNoTooltip] snarls. "We must anoint the dead and give them proper [zealous_courtier.GetFaith.GetAdjective] rites."" physician_epidemic_events.1000.a: "Perhaps we should simply keep the bodies away from the living." physician_epidemic_events.1000.b: "We must do whatever we can to end this plague." physician_epidemic_events.1000.b.success: "The treatment works" physician_epidemic_events.1000.b.failure: "The treatment fails" physician_epidemic_events.1000.c: "We will not defile these bodies." physician_epidemic_events.1010.t: "Quarantine" - physician_epidemic_events.1010.desc: "As [epidemic_scope.GetName] spreads, my [physician.Custom2('MyCharacterIntroduction', ROOT.Char)] urges a drastic course: seal off the sick. "Miasma clings to corpses," [physician.GetSheHe] warns, "and bad air feeds the plague."\n\n[physician.GetSheHe|U] wants quarantine — no one in or out of infected lands.\n\n"In desperate times, my Kaiser, we must do what we must."" + physician_epidemic_events.1010.desc: "As [epidemic_scope.GetName] spreads, my [physician.Custom2('MyCharacterIntroduction', ROOT.Char)] urges a drastic course: seal off the sick. "Germs cling to corpses," [physician.GetSheHe] warns, "and unsanitary conditions feed the plague."\n\n[physician.GetSheHe|U] wants quarantine — no one in or out of infected lands.\n\n"In desperate times, my [ROOT.Char.GetTitleAsNameNoTooltip|U], we must do what we must."" physician_epidemic_events.1010.a: "Seal the roads. Quarantine the sick." physician_epidemic_events.1010.b: "This is too extreme." physician_epidemic_events.1020.t: "[epidemic.GetNameNoTooltip|U]: Early Prevention" @@ -26,7 +26,7 @@ physician_epidemic_events.1021.desc: "It would seem the moderate approach has proven successful, with a slow in spread of disease symptoms among the commoners. Though the impact is quite minimal, it should at least grant more time to work on a more permanent solution." physician_epidemic_events.1021.a: "Wonderful!" physician_epidemic_events.1022.t: "Early Prevention: Failure" - physician_epidemic_events.1022.desc: "Not only have [physician.GetNamePossessive] preventative measures failed, they seem to have actually irritated the humors and made the corruption both more infectious and more severe." + physician_epidemic_events.1022.desc: "Not only have [physician.GetNamePossessive] preventative measures failed, they seem to have actually invigorated the germs and made the pathogen both more infectious and more severe." physician_epidemic_events.1023.t: "$physician_epidemic_events.1021.t$" physician_epidemic_events.1023.desc: "The disease which was set to spread like a flame to paper across my realm has slowed to a crawl. The radical measures proposed by [physician.GetFirstName] have taken a toll on the economy in the short term, but [epidemic.GetName] may not quite be the threat we had all feared." physician_epidemic_events.1023.a: "$physician_epidemic_events.1021.a$" @@ -48,7 +48,7 @@ physician_epidemic_events.1040.a: "Let them feel the royal touch." physician_epidemic_events.1040.b: "Let the priests handle the poor." physician_epidemic_events.1050.t: "The [ROOT.Char.GetPrimaryTitle.GetAdjectiveNoTooltip|U] Inn" - physician_epidemic_events.1050.desc: "My guards drag [physician.Custom2('MyCharacterIntroduction', ROOT.Char)] before me in irons. [physician.GetSheHe]'s been treating wounded soldiers — friend and foe alike — after every battle.\n\nThey call [physician.GetHerHis] shelter the "[ROOT.Char.GetPrimaryTitle.GetAdjective|U] Inn", and my commanders demand it shut down. But Edaraja only says, "They bleed and suffer like our own. Who am I to turn them away?"" + physician_epidemic_events.1050.desc: "My guards drag [physician.Custom2('MyCharacterIntroduction', ROOT.Char)] before me in irons. [physician.GetSheHe]'s been treating wounded soldiers — friend and foe alike — after every battle.\n\nThey call [physician.GetHerHis] shelter the "[ROOT.Char.GetPrimaryTitle.GetAdjective|U] Inn", and my commanders demand it shut down. But [physician.GetFirstNameNoTooltip] only says, "They bleed and suffer like our own. Who am I to turn them away?"" physician_epidemic_events.1050.a: "[physician.GetSheHe|U] has my leave to continue." physician_epidemic_events.1050.b: "You only serve #EMP me!#!" physician_epidemic_events.1060.t: "A Desperate Banishment"