From e1d4ef13f567b2f81034d663ec6e833e719d40a5 Mon Sep 17 00:00:00 2001 From: edwardtheelbowhigh <73761109+edwardtheelbowhigh@users.noreply.github.com> Date: Thu, 28 May 2026 16:10:55 +0100 Subject: [PATCH 01/12] Update 01_landed_titles.txt --- common/coat_of_arms/coat_of_arms/01_landed_titles.txt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/common/coat_of_arms/coat_of_arms/01_landed_titles.txt b/common/coat_of_arms/coat_of_arms/01_landed_titles.txt index cfd75639..b076f791 100644 --- a/common/coat_of_arms/coat_of_arms/01_landed_titles.txt +++ b/common/coat_of_arms/coat_of_arms/01_landed_titles.txt @@ -15586,7 +15586,7 @@ d_epirus = { } } -d_peloponnese = { +d_achaia = { pattern = "pattern_solid.dds" color1 = "yellow" color2 = "black" @@ -18035,7 +18035,6 @@ d_somogy = { instance = { position = { 0.5 0.48 } scale = { 0.9 1.1 } } } } -} c_baghdad = { #Baghdad pattern="pattern_solid.dds" From 9e1295bd020ad6d5301f4f1fa21b6aba935c9a2a Mon Sep 17 00:00:00 2001 From: edwardtheelbowhigh <73761109+edwardtheelbowhigh@users.noreply.github.com> Date: Thu, 28 May 2026 16:20:28 +0100 Subject: [PATCH 02/12] Update court_positions_l_english.yml --- localization/english/replace/court_positions_l_english.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localization/english/replace/court_positions_l_english.yml b/localization/english/replace/court_positions_l_english.yml index 9cd0bd64..b0f88560 100644 --- a/localization/english/replace/court_positions_l_english.yml +++ b/localization/english/replace/court_positions_l_english.yml @@ -807,7 +807,7 @@ gracious_host_impeccable_guest_perk_bonus: "[GetPerk('gracious_host_impeccable_guest_perk').GetName( GetNullCharacter )]" # MPO - court_astrologer_court_position: "Stargazer" + court_astrologer_court_position: "Meteorologist" court_astrologer_court_position_desc: "The $court_astrologer_court_position$ searches the skies to predict what fate may be upon us." court_astrologer_employer_custom_effect_description: "$BULLET$Enables the #EMP $mpo_divination_decision$#! [decision|E]#!\n$BULLET$Enables the #EMP $mpo_decision_fertility_dance$#! [decision|E]#!" court_position_mongolic: "Their culture is of $heritage_mongolic_name$ [heritage|E]" From b28d5848cea763dcf7a3fa9048f34d8d75f3732f Mon Sep 17 00:00:00 2001 From: Fishedotjpg Date: Thu, 28 May 2026 17:27:37 +0100 Subject: [PATCH 03/12] migration less goofy and steppe less harsh and steppe situation adjusted --- .../09_mpo_interactions.txt | 16 ++++++++++++++++ common/situation/situations/the_great_steppe.txt | 16 +++++++++++++--- common/terrain_types/00_terrains.txt | 5 ++--- 3 files changed, 31 insertions(+), 6 deletions(-) diff --git a/common/character_interactions/09_mpo_interactions.txt b/common/character_interactions/09_mpo_interactions.txt index e6f83ae9..9608bc1f 100644 --- a/common/character_interactions/09_mpo_interactions.txt +++ b/common/character_interactions/09_mpo_interactions.txt @@ -2554,6 +2554,22 @@ migration_interaction = { } scope:recipient = { is_ruler = yes + NOR = { + government_has_flag = government_is_feudal + government_has_flag = government_is_republic + government_has_flag = government_is_theocracy + government_has_flag = government_is_clan + government_has_flag = government_is_tribal + government_has_flag = government_is_holy_order + government_has_flag = government_is_mercenary + government_has_flag = government_is_administrative + government_has_flag = government_is_prepublic + government_has_flag = government_is_urepublic + government_has_flag = government_is_celestial + government_has_flag = government_is_mandala + government_has_flag = government_is_steppe_admin + government_has_flag = government_is_meritocratic + } NOT = { is_allied_to = scope:actor } } } diff --git a/common/situation/situations/the_great_steppe.txt b/common/situation/situations/the_great_steppe.txt index e93f8185..247856c9 100644 --- a/common/situation/situations/the_great_steppe.txt +++ b/common/situation/situations/the_great_steppe.txt @@ -300,6 +300,11 @@ county_fertility_decline_mult = cf_severe_drought_decline_mult_value county_fertility_growth_mult = cf_severe_drought_growth_mult_value } + character_modifier = { + levy_size = 0.1 + vassal_tax_contribution_mult = 0.1 + vassal_levy_contribution_mult = 0.1 + } } } @@ -328,9 +333,9 @@ character_modifier = { herd_conversion = 0.1 herd_gain_mult = -0.1 - levy_size = -0.25 - vassal_tax_contribution_mult = -0.1 - vassal_levy_contribution_mult = -0.1 + levy_size = -0.05 + vassal_tax_contribution_mult = -0.05 + vassal_levy_contribution_mult = -0.05 } } } @@ -404,6 +409,11 @@ county_modifier = { county_fertility_growth_mult = cf_warm_nights_growth_mult_value } + character_modifier = { + levy_size = 0.15 + vassal_tax_contribution_mult = 0.15 + vassal_levy_contribution_mult = 0.15 + } } } diff --git a/common/terrain_types/00_terrains.txt b/common/terrain_types/00_terrains.txt index 77b7c561..085f6a8c 100644 --- a/common/terrain_types/00_terrains.txt +++ b/common/terrain_types/00_terrains.txt @@ -359,12 +359,11 @@ steppe = { supply_limit_mult = 0 travel_danger = steppe_danger_value county_fertility_growth_add = steppe_county_fertility_value - monthly_county_control_decline_factor = 0.15 - fort_level = -1 + monthly_county_control_decline_factor = 0.1 } county_capital_modifier = { - development_growth_factor = -0.5 + development_growth_factor = -0.2 } audio_parameter = 5.0 From 68a0752e413f684e2da2380e7fde41461a251d6a Mon Sep 17 00:00:00 2001 From: edwardtheelbowhigh <73761109+edwardtheelbowhigh@users.noreply.github.com> Date: Thu, 28 May 2026 17:35:11 +0100 Subject: [PATCH 04/12] retooled pastoral isolation --- .../00_1_neow_universal_tolerance_doctrines.txt | 2 +- common/religion/doctrine_types/30_core_tenets.txt | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/common/religion/doctrine_types/00_1_neow_universal_tolerance_doctrines.txt b/common/religion/doctrine_types/00_1_neow_universal_tolerance_doctrines.txt index 7925660d..2f469ce7 100644 --- a/common/religion/doctrine_types/00_1_neow_universal_tolerance_doctrines.txt +++ b/common/religion/doctrine_types/00_1_neow_universal_tolerance_doctrines.txt @@ -499,7 +499,7 @@ special_doctrine_reformation_roots = { hostility_override_special_doctrine_christian_kinship = 2 - hostility_override_special_doctrine_via_media = 2 + hostility_override_special_doctrine_via_media = 1 hostility_override_special_doctrine_radical_reform = 3 diff --git a/common/religion/doctrine_types/30_core_tenets.txt b/common/religion/doctrine_types/30_core_tenets.txt index 16b793b1..4195b71b 100644 --- a/common/religion/doctrine_types/30_core_tenets.txt +++ b/common/religion/doctrine_types/30_core_tenets.txt @@ -2244,10 +2244,14 @@ } parameters = { + hostility_override_special_doctrine_is_christian_faith = 1 #For loc: + is_christian_faith_pastoral_isolation_loc_override = 1 sanctioned_false_conversion = yes unattractive_for_character_conversions = yes tenet_unlocks_t3_withdraw_from_view = yes + christian_syncretic_actor_opinion_active = yes + opinion_of_christian_syncretic_recipient_opinion_active = 30 #Sync this to syncretic_mutual_opinion_bonus_value } character_modifier = { From b960ad943c19d888e7618f008aebb03c16623098 Mon Sep 17 00:00:00 2001 From: edwardtheelbowhigh <73761109+edwardtheelbowhigh@users.noreply.github.com> Date: Thu, 28 May 2026 18:28:07 +0100 Subject: [PATCH 05/12] Some mena at arms stuff --- .../00_cultural_maa_types.txt | 1327 +++++++++++++++++ common/men_at_arms_types/00_maa_types.txt | 3 +- common/men_at_arms_types/09_mpo_maa_types.txt | 6 +- .../religion/religion_types/NEOW_baltic.txt | 2 +- .../religion_types/NEOW_folkgerman.txt | 2 +- 5 files changed, 1334 insertions(+), 6 deletions(-) create mode 100644 common/men_at_arms_types/00_cultural_maa_types.txt diff --git a/common/men_at_arms_types/00_cultural_maa_types.txt b/common/men_at_arms_types/00_cultural_maa_types.txt new file mode 100644 index 00000000..8457a310 --- /dev/null +++ b/common/men_at_arms_types/00_cultural_maa_types.txt @@ -0,0 +1,1327 @@ +# standard costs +@maa_buy_cost = 150 +@maa_low_maintenance_cost = 1.0 +@maa_high_maintenance_cost = 5.0 +@cultural_maa_extra_ai_score = 80 # Equivalent to having 8 extra regiments beyond what the code scoring would indicate (see NEGATIVE_SCORE_PER_EXISTING_REGIMENT) + +# Must be synced between files with the values located at "# Provisions Costs #". +@provisions_cost_infantry_cheap = 3 +@provisions_cost_infantry_moderate = 7 +@provisions_cost_infantry_expensive = 12 +@provisions_cost_infantry_bankrupting = 15 + +@provisions_cost_cavalry_cheap = 7 +@provisions_cost_cavalry_moderate = 15 +@provisions_cost_cavalry_expensive = 21 +@provisions_cost_cavalry_bankrupting = 30 + +@provisions_cost_special_cheap = 6 +@provisions_cost_special_moderate = 12 +@provisions_cost_special_expensive = 18 +@provisions_cost_special_bankrupting = 24 + +huscarl = { + type = heavy_infantry + + damage = 40 + toughness = 26 + pursuit = 0 + screen = 24 + + terrain_bonus = { + taiga = { damage = 8 } + forest = { damage = 8 } + } + + counters = { + pikemen = 1 + peasant_militia = 2 + archers = 1 + } + + can_recruit = { + valid_for_maa_trigger = { PARAMETER = unlock_maa_huscarls } + NOT = { + culture = { has_cultural_parameter = strength_in_numbers_heavy_maa_ban } + } + } + + winter_bonus = { + normal_winter = { toughness = 6 screen = 6 } + harsh_winter = { toughness = 6 screen = 6 } + } + + buy_cost = { gold = huscarls_recruitment_cost } + low_maintenance_cost = { gold = huscarls_low_maint_cost } + high_maintenance_cost = { gold = huscarls_high_maint_cost } + provision_cost = @provisions_cost_infantry_cheap + + stack = 100 + ai_quality = { value = @cultural_maa_extra_ai_score } + icon = danish_huskarls +} + +landsknecht = { + type = pikemen + + damage = 30 + toughness = 24 + pursuit = 0 + screen = 0 + + terrain_bonus = { + mountains = { damage = 5 toughness = 12 } + desert_mountains = { damage = 5 toughness = 12 } + hills = { damage = 3 toughness = 8 } + } + + counters = { + pikemen = 0.5 + peasant_militia = 1 + light_cavalry = 2 + heavy_cavalry = 2 + } + + buy_cost = { gold = landsknecht_recruitment_cost } + low_maintenance_cost = { gold = landsknecht_low_maint_cost } + high_maintenance_cost = { gold = landsknecht_high_maint_cost } + provision_cost = @provisions_cost_infantry_cheap + + stack = 100 + ai_quality = { value = @cultural_maa_extra_ai_score } + icon = pikemen +} + +longbowmen = { + type = archers + can_recruit = { + valid_for_maa_trigger = { PARAMETER = unlock_maa_longbowmen } + } + + damage = 20 + toughness = 8 + pursuit = 0 + screen = 0 + + terrain_bonus = { + hills = { damage = 12 toughness = 4 } + } + + counters = { + skirmishers = 1 + heavy_cavalry = 1 + } + + buy_cost = { gold = longbowmen_recruitment_cost } + low_maintenance_cost = { gold = longbowmen_low_maint_cost } + high_maintenance_cost = { gold = longbowmen_high_maint_cost } + provision_cost = @provisions_cost_infantry_moderate + + stack = 100 + ai_quality = { value = @cultural_maa_extra_ai_score } + icon = bowmen +} + +goedendag = { + type = skirmishers + + damage = 13 + toughness = 18 + pursuit = 0 + screen = 16 + + counters = { + heavy_infantry = 1 + heavy_cavalry = 1 + } + + buy_cost = { gold = goedendag_recruitment_cost } + low_maintenance_cost = { gold = goedendag_low_maint_cost } + high_maintenance_cost = { gold = goedendag_high_maint_cost } + provision_cost = @provisions_cost_infantry_cheap + + stack = 100 + ai_quality = { value = @cultural_maa_extra_ai_score } + icon = skirmishers +} + +gendarme = { + type = heavy_cavalry + + damage = 125 + toughness = 40 + pursuit = 20 + screen = 10 + + terrain_bonus = { + plains = { damage = 30 } + drylands = { damage = 30 } + hills = { damage = -10 } + jungle = { damage = -25 } + mountains = { damage = -50 } + desert_mountains = { damage = -50 } + wetlands = { damage = -75 } + } + + counters = { + archers = 1 + gunpowder = 1 + } + + winter_bonus = { + normal_winter = { damage = -15 toughness = -5 } + harsh_winter = { damage = -30 toughness = -10 } + } + + buy_cost = { gold = gendarme_recruitment_cost } + low_maintenance_cost = { gold = gendarme_low_maint_cost } + high_maintenance_cost = { gold = gendarme_high_maint_cost } + provision_cost = @provisions_cost_cavalry_expensive + + stack = 50 + ai_quality = { value = @cultural_maa_extra_ai_score } + icon = heavy_cavalry +} + +chasseur = { + type = light_cavalry + + damage = 40 + toughness = 15 + pursuit = 40 + screen = 15 + + terrain_bonus = { + plains = { damage = 10 } + drylands = { damage = 10 } + desert = { damage = 10 } + hills = { damage = -5 } + mountains = { damage = -25 } + desert_mountains = { damage = -25 } + wetlands = { damage = -30 toughness = -10 pursuit = -25 screen = -15 } + } + + counters = { + archers = 1 + gunpowder = 1 + } + + winter_bonus = { + harsh_winter = { damage = -5 toughness = -2 } + } + + buy_cost = { gold = chasseur_recruitment_cost } + low_maintenance_cost = { gold = chasseur_low_maint_cost } + high_maintenance_cost = { gold = chasseur_high_maint_cost } + provision_cost = @provisions_cost_cavalry_moderate + + stack = 100 + ai_quality = { value = @cultural_maa_extra_ai_score } + icon = light_cavalry +} + +picchieri = { + type = pikemen + + damage = 40 + toughness = 24 + pursuit = 0 + screen = 0 + + terrain_bonus = { + mountains = { toughness = 12 } + desert_mountains = { toughness = 12 } + hills = { toughness = 10 } + } + + counters = { + light_cavalry = 1 + heavy_cavalry = 1 + camel_cavalry = 1 + elephant_cavalry = 1 + } + + buy_cost = { gold = picchieri_recruitment_cost } + low_maintenance_cost = { gold = picchieri_low_maint_cost } + high_maintenance_cost = { gold = picchieri_high_maint_cost } + provision_cost = @provisions_cost_infantry_cheap + + stack = 100 + ai_quality = { value = @cultural_maa_extra_ai_score } + icon = pikemen +} + +praetorian = { + type = heavy_infantry + + damage = 60 + toughness = 30 + pursuit = 0 + screen = 20 + + counters = { + pikemen = 1 + peasant_militia = 2 + } + + buy_cost = { gold = praetorian_recruitment_cost } + low_maintenance_cost = { gold = praetorian_low_maint_cost } + high_maintenance_cost = { gold = praetorian_high_maint_cost } + provision_cost = @provisions_cost_infantry_bankrupting + + stack = 100 + ai_quality = { value = @cultural_maa_extra_ai_score } + icon = heavy_infantry +} + +caballero = { + type = light_cavalry + + damage = 22 + toughness = 16 + pursuit = 30 + screen = 50 + + terrain_bonus = { + hills = { damage = 15 toughness = 10 } + plains = { damage = 10 } + drylands = { damage = 10 } + mountains = { damage = -8 pursuit = -10 } + desert_mountains = { damage = -12 pursuit = -20 } + wetlands = { damage = -15 toughness = -10 pursuit = -20 screen = -20 } + } + + counters = { + archers = 1 + gunpowder = 1 + } + + winter_bonus = { + harsh_winter = { damage = -5 toughness = -2 } + } + + buy_cost = { gold = caballero_recruitment_cost } + low_maintenance_cost = { gold = caballero_low_maint_cost } + high_maintenance_cost = { gold = caballero_high_maint_cost } + provision_cost = @provisions_cost_cavalry_cheap + + stack = 100 + ai_quality = { value = @[cultural_maa_extra_ai_score + 20] } + icon = light_cavalry +} + +monaspa = { + type = heavy_cavalry + + damage = 110 + toughness = 30 + pursuit = 25 + screen = 10 + + terrain_bonus = { + hills = { damage = 20 pursuit = 10 } + mountains = { damage = 20 pursuit = 10 } + desert_mountains = { damage = -30 } + wetlands = { damage = -80 toughness = -15 pursuit = -20 } + } + + counters = { + archers = 1 + gunpowder = 1 + } + + winter_bonus = { + normal_winter = { damage = -10 toughness = -5 } + harsh_winter = { damage = -20 toughness = -5 } + } + + can_recruit = { + valid_for_maa_trigger = { PARAMETER = unlock_maa_monaspa } + NOT = { + culture = { has_cultural_parameter = strength_in_numbers_heavy_maa_ban } + } + } + + buy_cost = { gold = monaspa_recruitment_cost } + low_maintenance_cost = { gold = monaspa_low_maint_cost } + high_maintenance_cost = { gold = monaspa_high_maint_cost } + provision_cost = @provisions_cost_cavalry_moderate + + stack = 50 + ai_quality = { value = @cultural_maa_extra_ai_score } + icon = monaspa +} + +cataphract = { + type = heavy_cavalry + + damage = 125 + toughness = 35 + pursuit = 10 + screen = 0 + + terrain_bonus = { + plains = { damage = 30 toughness = 5 } + drylands = { damage = 30 } + hills = { damage = -10 } + mountains = { damage = -50 } + desert_mountains = { damage = -50 } + wetlands = { damage = -80 toughness = -15 pursuit = -10 } + } + + counters = { + archers = 1 + gunpowder = 1 + } + + winter_bonus = { + normal_winter = { damage = -15 toughness = -5 } + harsh_winter = { damage = -30 toughness = -10 } + } + + can_recruit = { + valid_for_maa_trigger = { PARAMETER = unlock_maa_cataphract } + NOT = { + culture = { has_cultural_parameter = strength_in_numbers_heavy_maa_ban } + } + } + + buy_cost = { gold = cataphract_recruitment_cost } + low_maintenance_cost = { gold = cataphract_low_maint_cost } + high_maintenance_cost = { gold = cataphract_high_maint_cost } + provision_cost = @provisions_cost_cavalry_bankrupting + + stack = 50 + ai_quality = { value = @cultural_maa_extra_ai_score } + icon = cataphracts +} + +hobelar = { + type = light_cavalry + + damage = 22 + toughness = 15 + pursuit = 50 + screen = 30 + + terrain_bonus = { + forest = { damage = 15 } + hills = { damage = 10 } + mountains = { damage = -10 pursuit = -30 } + desert_mountains = { damage = -15 pursuit = -30 } + wetlands = { damage = -10 pursuit = -20 screen = -15 } + } + + counters = { + archers = 1 + gunpowder = 1 + } + + winter_bonus = { + harsh_winter = { damage = -5 } + } + + buy_cost = { gold = hobelar_recruitment_cost } + low_maintenance_cost = { gold = hobelar_low_maint_cost } + high_maintenance_cost = { gold = hobelar_high_maint_cost } + provision_cost = @provisions_cost_cavalry_cheap + + stack = 100 + ai_quality = { value = @cultural_maa_extra_ai_score } + icon = light_cavalry +} + +schiltron = { + type = pikemen + + damage = 36 + toughness = 28 + pursuit = 0 + screen = 0 + + terrain_bonus = { + mountains = { toughness = 12 } + desert_mountains = { toughness = 12 } + hills = { toughness = 8 } + plains = { damage = 8 } + } + + counters = { + light_cavalry = 1 + heavy_cavalry = 1 + } + + buy_cost = { gold = schiltron_recruitment_cost } + low_maintenance_cost = { gold = schiltron_low_maint_cost } + high_maintenance_cost = { gold = schiltron_high_maint_cost } + provision_cost = @provisions_cost_infantry_moderate + + stack = 100 + ai_quality = { value = @cultural_maa_extra_ai_score } + icon = pikemen +} + +metsanvartija = { + type = archers + + damage = 30 + toughness = 14 + pursuit = 10 + screen = 10 + + terrain_bonus = { + forest = { damage = 10 toughness = 4 } + taiga = { damage = 10 toughness = 4 } + } + + counters = { + skirmishers = 1 + } + + winter_bonus = { + normal_winter = { toughness = 4 screen = 8 } + harsh_winter = { toughness = 4 screen = 8 } + } + + can_recruit = { + valid_for_maa_trigger = { PARAMETER = unlock_maa_metsanvartija } + } + + buy_cost = { gold = metsanvartija_recruitment_cost } + low_maintenance_cost = { gold = metsanvartija_low_maint_cost } + high_maintenance_cost = { gold = metsanvartija_high_maint_cost } + provision_cost = @provisions_cost_infantry_cheap + + stack = 100 + ai_quality = { value = @cultural_maa_extra_ai_score } + icon = bowmen +} + +horse_archers = { + type = archer_cavalry + + damage = 30 + toughness = 18 + pursuit = 40 + screen = 40 + + terrain_bonus = { + steppe = { damage = 45 } + plains = { damage = 20 } + drylands = { damage = 20 } + jungle = { damage = -20 pursuit = -20 } + wetlands = { damage = -30 pursuit = -30 } + mountains = { damage = -30 pursuit = -30 } + desert_mountains = { damage = -30 pursuit = -30 } + } + + counters = { + skirmishers = 1 + #heavy_infantry = 1 + peasant_militia = 2 + } + + can_recruit = { + OR = { + AND = { + is_landless_adventurer = yes + has_perk = planned_cultivation_perk + location.county.culture ?= { culture_has_archer_cavalry_maa = yes } + } + culture = { has_cultural_parameter = unlock_maa_horse_archers } + mpo_can_recruit_nomad_maa_trigger = yes + } + } + + buy_cost = { gold = horse_archers_recruitment_cost } + low_maintenance_cost = { gold = horse_archers_low_maint_cost } + high_maintenance_cost = { gold = horse_archers_high_maint_cost } + provision_cost = @provisions_cost_cavalry_cheap + + stack = 100 + ai_quality = { + value = @cultural_maa_extra_ai_score + add = 60 #I mean... they're horse archers + } + icon = horse_archers +} + +ayyar = { + type = heavy_infantry + + damage = 35 + toughness = 22 + pursuit = 12 + screen = 0 + + counters = { + pikemen = 1 + peasant_militia = 2 + } + + can_recruit = { + valid_for_maa_trigger = { PARAMETER = unlock_maa_ayyar } + NOT = { + culture = { has_cultural_parameter = strength_in_numbers_heavy_maa_ban } + } + } + + buy_cost = { gold = ayyar_recruitment_cost } + low_maintenance_cost = { gold = ayyar_low_maint_cost } + high_maintenance_cost = { gold = ayyar_high_maint_cost } + provision_cost = @provisions_cost_infantry_expensive + + stack = 100 + ai_quality = { value = @cultural_maa_extra_ai_score } + icon = ayyar +} + +mubarizun = { + type = heavy_infantry + + damage = 45 + toughness = 25 + pursuit = 0 + screen = 0 + + counters = { + pikemen = 1 + peasant_militia = 2 + heavy_infantry = 1 + } + + can_recruit = { + valid_for_maa_trigger = { PARAMETER = unlock_maa_mubarizun } + NOT = { + culture = { has_cultural_parameter = strength_in_numbers_heavy_maa_ban } + } + } + + buy_cost = { gold = mubarizun_recruitment_cost } + low_maintenance_cost = { gold = mubarizun_low_maint_cost } + high_maintenance_cost = { gold = mubarizun_high_maint_cost } + provision_cost = @provisions_cost_infantry_moderate + + stack = 100 + ai_quality = { value = @[cultural_maa_extra_ai_score - 20] } + icon = mubarizun +} + +mulaththamun = { #Murabit Cavalry + type = light_cavalry + + damage = 22 + toughness = 15 + pursuit = 30 + screen = 40 + + terrain_bonus = { + drylands = { damage = 10 toughness = 5 screen = 10 pursuit = 5 } + desert = { damage = 10 toughness = 5 screen = 20 pursuit = 10 } + plains = { damage = 10 toughness = 3 screen = 5 pursuit = 5 } + oasis = { damage = 10 } + + mountains = { damage = -8 pursuit = -10 } + desert_mountains = { damage = -12 pursuit = -20 } + wetlands = { damage = -15 toughness = -10 pursuit = -20 screen = -20 + } + } + + counters = { + archers = 1 + gunpowder = 1 + } + + winter_bonus = { + harsh_winter = { damage = -5 toughness = -2 } + } + + can_recruit = { + valid_for_maa_trigger = { PARAMETER = unlock_maa_mulaththamun } + } + + buy_cost = { gold = mulaththamun_recruitment_cost } + low_maintenance_cost = { gold = mulaththamun_low_maint_cost } + high_maintenance_cost = { gold = mulaththamun_high_maint_cost } + provision_cost = @provisions_cost_cavalry_cheap + + stack = 100 + ai_quality = { value = @[cultural_maa_extra_ai_score + 20] } + icon = light_cavalry +} + +archers_of_the_nile = { #Nile Archers + type = archers + + damage = 30 + toughness = 14 + pursuit = 10 + screen = 10 + + terrain_bonus = { + floodplains = { damage = 15 toughness = 15 pursuit = 10 screen = 10 } + oasis = { damage = 15 pursuit = 5 screen = 5 } + drylands = { damage = 10 toughness = 10 } + desert = { damage = -5 toughness = -5 } + } + + counters = { + skirmishers = 1 + } + + can_recruit = { + valid_for_maa_trigger = { PARAMETER = unlock_maa_archers_of_the_nile } + } + + buy_cost = { gold = archers_of_the_nile_recruitment_cost } + low_maintenance_cost = { gold = archers_of_the_nile_low_maint_cost } + high_maintenance_cost = { gold = archers_of_the_nile_high_maint_cost } + provision_cost = @provisions_cost_infantry_moderate + + stack = 100 + ai_quality = { value = @cultural_maa_extra_ai_score } + icon = bowmen +} + +paiks = { #Indian Footmen - carrying bows but also swords and spears. + type = archers + + damage = 28 + toughness = 16 + pursuit = 10 + screen = 10 + + terrain_bonus = { + jungle = { damage = 15 toughness = 15 pursuit = 10 screen = 10 } + forest = { damage = 15 pursuit = 5 screen = 5 } + hills = { damage = 10 toughness = 10 } + } + + counters = { + elephant_cavalry = 1 + } + + buy_cost = { gold = paiks_recruitment_cost } + low_maintenance_cost = { gold = paiks_low_maint_cost } + high_maintenance_cost = { gold = paiks_high_maint_cost } + provision_cost = @provisions_cost_infantry_moderate + + stack = 100 + ai_quality = { value = @[cultural_maa_extra_ai_score - 40] } + + icon = paiks +} + +druzhina = { + type = heavy_infantry + + damage = 40 + toughness = 30 + pursuit = 0 + screen = 30 + + counters = { + pikemen = 1 + peasant_militia = 2 + } + + can_recruit = { + valid_for_maa_trigger = { PARAMETER = unlock_maa_druzhina } + NOT = { + culture = { has_cultural_parameter = strength_in_numbers_heavy_maa_ban } + } + } + + buy_cost = { gold = druzhina_recruitment_cost } + low_maintenance_cost = { gold = druzhina_low_maint_cost } + high_maintenance_cost = { gold = druzhina_high_maint_cost } + provision_cost = @provisions_cost_infantry_moderate + + stack = 100 + ai_quality = { value = @cultural_maa_extra_ai_score } + icon = heavy_infantry +} + +hussar = { + type = light_cavalry + + damage = 25 + toughness = 15 + pursuit = 60 + screen = 20 + + terrain_bonus = { + plains = { damage = 15 } + drylands = { damage = 15 } + hills = { damage = -15 } + mountains = { damage = -15 pursuit = -40 } + desert_mountains = { damage = -20 pursuit = -50 } + wetlands = { damage = -15 toughness = -10 pursuit = -50 screen = -20 } + } + + counters = { + archers = 1 + gunpowder = 1 + } + + winter_bonus = { + harsh_winter = { damage = -5 } + } + + can_recruit = { + valid_for_maa_trigger = { PARAMETER = unlock_maa_hussar } + } + + buy_cost = { gold = hussar_recruitment_cost } + low_maintenance_cost = { gold = hussar_low_maint_cost } + high_maintenance_cost = { gold = hussar_high_maint_cost } + provision_cost = @provisions_cost_cavalry_cheap + + stack = 100 + ai_quality = { value = @[cultural_maa_extra_ai_score + 10] } + icon = light_cavalry +} + +horn_warrior = { + type = skirmishers + + damage = 12 + toughness = 16 + pursuit = 0 + screen = 20 + + terrain_bonus = { + mountains = { damage = 10 toughness = 10 } + desert_mountains = { damage = 10 toughness = 10 } + hills = { damage = 4 toughness = 6 } + } + + counters = { + heavy_infantry = 1 + } + + can_recruit = { + valid_for_maa_trigger = { PARAMETER = unlock_maa_horn_warrior } + } + + buy_cost = { gold = horn_warrior_recruitment_cost } + low_maintenance_cost = { gold = horn_warrior_low_maint_cost } + high_maintenance_cost = { gold = horn_warrior_high_maint_cost } + provision_cost = @provisions_cost_infantry_moderate + + stack = 100 + ai_quality = { value = @cultural_maa_extra_ai_score } + icon = skirmishers +} + +bush_hunter = { + type = archers + + damage = 30 + toughness = 12 + pursuit = 5 + screen = 0 + + terrain_bonus = { + jungle = { damage = 8 toughness = 4 } + forest = { damage = 8 toughness = 4 } + hills = { damage = 8 toughness = 4 } + } + + counters = { + skirmishers = 1 + } + + can_recruit = { + valid_for_maa_trigger = { PARAMETER = unlock_maa_bush_hunter } + } + + buy_cost = { gold = bush_hunter_recruitment_cost } + low_maintenance_cost = { gold = bush_hunter_low_maint_cost } + high_maintenance_cost = { gold = bush_hunter_high_maint_cost } + provision_cost = @provisions_cost_infantry_cheap + + stack = 100 + ai_quality = { value = @cultural_maa_extra_ai_score } + icon = bowmen +} + +shomer = { + type = skirmishers + + damage = 10 + toughness = 24 + pursuit = 0 + screen = 40 + + counters = { + heavy_infantry = 1 + } + + can_recruit = { + valid_for_maa_trigger = { PARAMETER = unlock_maa_shomer } + } + + buy_cost = { gold = shomer_recruitment_cost } + low_maintenance_cost = { gold = shomer_low_maint_cost } + high_maintenance_cost = { gold = shomer_high_maint_cost } + provision_cost = @provisions_cost_infantry_moderate + + stack = 100 + ai_quality = { value = @cultural_maa_extra_ai_score } + icon = skirmishers +} + +garudas = { + type = heavy_infantry + + damage = 42 + toughness = 22 + pursuit = 24 + screen = 0 + + terrain_bonus = { + jungle = { damage = 8 } + forest = { damage = 8 } + } + + counters = { + pikemen = 1 + peasant_militia = 2 + archers = 1 + } + + buy_cost = { gold = garudas_recruitment_cost } + low_maintenance_cost = { gold = garudas_low_maint_cost } + high_maintenance_cost = { gold = garudas_high_maint_cost } + provision_cost = @provisions_cost_infantry_expensive + + stack = 100 + ai_quality = { value = @cultural_maa_extra_ai_score } + + can_recruit = { + valid_for_maa_trigger = { PARAMETER = unlock_maa_garudas } + NOT = { + culture = { has_cultural_parameter = strength_in_numbers_heavy_maa_ban } + } + } + + stack = 100 + ai_quality = { value = @cultural_maa_extra_ai_score } + + icon = garudas +} + +khandayat = { + type = heavy_infantry + + damage = 42 + toughness = 22 + pursuit = 0 + screen = 0 + + terrain_bonus = { + jungle = { damage = 12 toughness = 8 } + } + + counters = { + light_cavalry = 1 + pikemen = 1 + peasant_militia = 2 + } + + can_recruit = { + valid_for_maa_trigger = { PARAMETER = unlock_maa_khandayat } + NOT = { + culture = { has_cultural_parameter = strength_in_numbers_heavy_maa_ban } + } + } + + buy_cost = { gold = khandayat_recruitment_cost } + low_maintenance_cost = { gold = khandayat_low_maint_cost } + high_maintenance_cost = { gold = khandayat_high_maint_cost } + provision_cost = @provisions_cost_infantry_bankrupting + + stack = 100 + ai_quality = { value = @cultural_maa_extra_ai_score } + + icon = khandayat +} + +mountaineer = { + type = heavy_infantry + + damage = 40 + toughness = 26 + pursuit = 0 + screen = 0 + + terrain_bonus = { + mountains = { damage = 12 toughness = 12 } + desert_mountains = { damage = 12 toughness = 12 } + } + + counters = { + pikemen = 1 + peasant_militia = 2 + } + + winter_bonus = { + normal_winter = { damage = 5 } + harsh_winter = { damage = 5 } + } + + can_recruit = { + valid_for_maa_trigger = { PARAMETER = unlock_maa_mountaineer } + NOT = { + culture = { has_cultural_parameter = strength_in_numbers_heavy_maa_ban } + } + } + + buy_cost = { gold = mountaineer_recruitment_cost } + low_maintenance_cost = { gold = mountaineer_low_maint_cost } + high_maintenance_cost = { gold = mountaineer_high_maint_cost } + provision_cost = @provisions_cost_infantry_moderate + + stack = 100 + ai_quality = { value = @cultural_maa_extra_ai_score } + + icon = mountaineer +} + +sahel_horsemen = { + type = light_cavalry + + damage = 22 + toughness = 15 + pursuit = 30 + screen = 30 + + terrain_bonus = { + drylands = { damage = 15 toughness = 3 } + floodplains = { damage = 15 toughness = 3 } + desert = { damage = 10 } + oasis = { damage = 10 } + hills = { damage = -10 pursuit = -10 } + desert_mountains = { damage = -10 pursuit = -20 } + mountains = { damage = -15 pursuit = -20 } + wetlands = { damage = -15 toughness = -10 pursuit = -30 screen = -30 } + } + + counters = { + archers = 1 + heavy_infantry = 1 + gunpowder = 1 + } + + winter_bonus = { + harsh_winter = { damage = -5 toughness = -2 } + } + + buy_cost = { gold = sahel_rider_recruitment_cost } + low_maintenance_cost = { gold = sahel_rider_low_maint_cost } + high_maintenance_cost = { gold = sahel_rider_high_maint_cost } + provision_cost = @provisions_cost_cavalry_cheap + + stack = 100 + ai_quality = { value = @[cultural_maa_extra_ai_score + 30] } + icon = light_cavalry +} + +guinea_warrior = { #AKA Guinean uplander + type = skirmishers + + damage = 18 + toughness = 14 + pursuit = 0 + screen = 20 + + terrain_bonus = { + forest = { damage = 10 toughness = 8 } + hills = { damage = 6 toughness = 4 } + drylands = { damage = 6 toughness = 4 } + } + + counters = { + heavy_infantry = 1 + } + + can_recruit = { + valid_for_maa_trigger = { PARAMETER = unlock_maa_guinea_warrior } + } + + buy_cost = { gold = guinea_warrior_recruitment_cost } + low_maintenance_cost = { gold = guinea_warrior_low_maint_cost } + high_maintenance_cost = { gold = guinea_warrior_high_maint_cost } + provision_cost = @provisions_cost_infantry_cheap + + stack = 100 + ai_quality = { value = @cultural_maa_extra_ai_score } + icon = skirmishers +} + +sarawit = { #AKA Ethiopian mountaineer + type = heavy_infantry + + damage = 32 + toughness = 26 + pursuit = 0 + screen = 10 + + terrain_bonus = { + mountains = { damage = 12 toughness = 10 } + desert_mountains = { damage = 10 toughness = 8 } + hills = { damage = 8 toughness = 5 } + drylands = { screen = -10 } + desert = { toughness = -10 screen = -10 } + } + + counters = { + light_cavalry = 1 + } + + buy_cost = { gold = sarawit_recruitment_cost } + low_maintenance_cost = { gold = sarawit_low_maint_cost } + high_maintenance_cost = { gold = sarawit_high_maint_cost } + provision_cost = @provisions_cost_infantry_moderate + + stack = 100 + ai_quality = { value = @cultural_maa_extra_ai_score } + icon = heavy_infantry +} + +abudrar = { #AKA Jabali - Berber mountaineer + type = skirmishers + + damage = 20 + toughness = 16 + pursuit = 20 + screen = 10 + + terrain_bonus = { + desert_mountains = { damage = 10 toughness = 8 } + mountains = { damage = 8 toughness = 6 } + hills = { damage = 8 toughness = 6 } + desert = { pursuit = -10 screen = -10 } + } + + counters = { + light_cavalry = 1 + heavy_infantry = 1 + } + + can_recruit = { + valid_for_maa_trigger = { PARAMETER = unlock_maa_abudrar } + } + + buy_cost = { gold = abudrar_recruitment_cost } + low_maintenance_cost = { gold = abudrar_low_maint_cost } + high_maintenance_cost = { gold = abudrar_high_maint_cost } + provision_cost = @provisions_cost_infantry_cheap + + stack = 100 + ai_quality = { value = @cultural_maa_extra_ai_score } + icon = skirmishers +} + +zbrojnosh = { + type = heavy_infantry + + damage = 34 + toughness = 20 + pursuit = 0 + screen = 10 + + terrain_bonus = { + hills = { damage = 8 toughness = 5 } + mountains = { damage = 6 } + forest = { damage = 6 } + wetlands = { damage = -10 pursuit = -10 } + } + + counters = { + pikemen = 1 + peasant_militia = 2 + archers = 1 + } + + can_recruit = { + valid_for_maa_trigger = { PARAMETER = unlock_maa_zbrojnosh } + NOT = { + culture = { has_cultural_parameter = strength_in_numbers_heavy_maa_ban } + } + } + + buy_cost = { gold = zbrojnosh_recruitment_cost } + low_maintenance_cost = { gold = zbrojnosh_low_maint_cost } + high_maintenance_cost = { gold = zbrojnosh_high_maint_cost } + provision_cost = @provisions_cost_infantry_expensive + + stack = 100 + ai_quality = { value = @cultural_maa_extra_ai_score } + icon = heavy_infantry +} + +palace_guards = { + type = heavy_infantry + + damage = 38 + toughness = 24 + pursuit = 0 + screen = 20 + + terrain_bonus = { + jungle = { damage = 10 toughness = 6 } + hills = { damage = 8 toughness = 4 } + } + + counters = { + pikemen = 2 + peasant_militia = 4 + } + + can_recruit = { + valid_for_maa_trigger = { PARAMETER = unlock_maa_palace_guards } + NOT = { + culture = { has_cultural_parameter = strength_in_numbers_heavy_maa_ban } + } + } + + buy_cost = { gold = palace_guards_recruitment_cost } + low_maintenance_cost = { gold = palace_guards_low_maint_cost } + high_maintenance_cost = { gold = palace_guards_high_maint_cost } + provision_cost = @provisions_cost_infantry_bankrupting + + stack = 100 + ai_quality = { value = @cultural_maa_extra_ai_score } + + icon = palace_guards +} + +shenbigong = { + type = archers + + damage = 44 + toughness = 18 + pursuit = 0 + screen = 0 + + terrain_bonus = { + hills = { damage = 10 toughness = 4 } + mountains = { damage = 8 toughness = 2 } + plains = { toughness = -8 } + drylands = { toughness = -8 } + desert = { toughness = -8 } + steppe = { toughness = -8 } + } + + counters = { + heavy_infantry = 1.25 + heavy_cavalry = 1.25 + pikemen = 1 + peasant_militia = 2 + } + + buy_cost = { gold = shenbigong_recruitment_cost } + low_maintenance_cost = { gold = shenbigong_low_maint_cost } + high_maintenance_cost = { gold = shenbigong_high_maint_cost } + provision_cost = @provisions_cost_infantry_expensive + + stack = 100 + ai_quality = { + value = counter_synergy_ai_weight_crossbowmen + add = @cultural_maa_extra_ai_score + } + + icon = shenbigong +} + +guanch_vaulter = { + type = skirmishers + + damage = 10 + toughness = 12 + pursuit = 15 + screen = 20 + siege_value = 0.1 + + terrain_bonus = { + hills = { damage = 4 toughness = 6 } + mountains = { damage = 4 pursuit = 6 } + desert_mountains = { damage = 4 pursuit = 6 } + wetlands = { damage = 4 pursuit = 6 } + } + + counters = { + heavy_infantry = 1 + } + + buy_cost = { gold = guanch_vaulter_recruitment_cost } + low_maintenance_cost = { gold = guanch_vaulter_low_maint_cost } + high_maintenance_cost = { gold = guanch_vaulter_high_maint_cost } + provision_cost = @provisions_cost_infantry_moderate + + + stack = 100 + ai_quality = { value = culture_ai_weight_skirmishers } + icon = skirmishers +} + +teulu = { + type = light_cavalry + + damage = 25 + toughness = 25 + pursuit = 35 + screen = 30 + + terrain_bonus = { + hills = { pursuit = 5 toughness = 10 } + forest = { pursuit = 5 toughness = 10 } + plains = { pursuit = 5 damage = 10 toughness = 10 } + wetlands = { damage = -15 toughness = -10 pursuit = -30 screen = -30 } + mountains = { damage = -10 pursuit = -20 } + desert_mountains = { damage = -15 pursuit = -20 } + } + + counters = { + archers = 1 + gunpowder = 1 + } + + can_recruit = { + culture = { + OR = { + this = culture:welsh + this = culture:cumbrian + any_parent_culture_or_above = { + OR = { + this = culture:welsh + this = culture:cumbrian + } + has_cultural_pillar = heritage_brythonic + } + } + } + } + + buy_cost = { gold = teulu_recruitment_cost } + low_maintenance_cost = { gold = teulu_low_maint_cost } + high_maintenance_cost = { gold = teulu_high_maint_cost } + provision_cost = @provisions_cost_infantry_cheap + + stack = 100 + ai_quality = { value = @cultural_maa_extra_ai_score } + + illustration = { + trigger = { + should_use_asian_maa_graphics = yes + } + + reference = light_cavalry_asia + } + + illustration = { + reference = light_cavalry + } +} diff --git a/common/men_at_arms_types/00_maa_types.txt b/common/men_at_arms_types/00_maa_types.txt index 678209e5..d2814cba 100644 --- a/common/men_at_arms_types/00_maa_types.txt +++ b/common/men_at_arms_types/00_maa_types.txt @@ -88,6 +88,7 @@ bowmen = { counters = { skirmishers = 1 chemical_weapons = 1 + archer_cavalry = 0.5 } can_recruit = { @@ -478,7 +479,7 @@ crossbowmen = { counters = { heavy_infantry = 1 heavy_cavalry = 1 - archer_cavalry = 0.5 + #archer_cavalry = 0.5 } can_recruit = { diff --git a/common/men_at_arms_types/09_mpo_maa_types.txt b/common/men_at_arms_types/09_mpo_maa_types.txt index e06d080e..10a027a7 100644 --- a/common/men_at_arms_types/09_mpo_maa_types.txt +++ b/common/men_at_arms_types/09_mpo_maa_types.txt @@ -298,9 +298,9 @@ mangudai = { } counters = { - pikemen = 0.5 + #pikemen = 0.5 peasant_militia = 2 - heavy_infantry = 1 + #heavy_infantry = 1 } can_recruit = { @@ -354,7 +354,7 @@ cataphract_archers = { counters = { archer_cavalry = 1 archers = 1 - gunpowder = 0.5 + #gunpowder = 0.5 } winter_bonus = { diff --git a/common/religion/religion_types/NEOW_baltic.txt b/common/religion/religion_types/NEOW_baltic.txt index 73df9d61..4c789e25 100644 --- a/common/religion/religion_types/NEOW_baltic.txt +++ b/common/religion/religion_types/NEOW_baltic.txt @@ -22,7 +22,7 @@ baltic_religion = { #placeholder doctrine = doctrine_homosexuality_shunned doctrine = doctrine_adultery_men_shunned doctrine = doctrine_adultery_women_shunned - doctrine = doctrine_kinslaying_close_kin_shunned + doctrine = doctrine_kinslaying_shunned doctrine = doctrine_deviancy_accepted doctrine = doctrine_witchcraft_accepted diff --git a/common/religion/religion_types/NEOW_folkgerman.txt b/common/religion/religion_types/NEOW_folkgerman.txt index 2078faac..20799b4d 100644 --- a/common/religion/religion_types/NEOW_folkgerman.txt +++ b/common/religion/religion_types/NEOW_folkgerman.txt @@ -440,7 +440,7 @@ doctrine = tenet_christian_syncretism doctrine = tenet_ancestor_worship - doctrine = tenet_megaliths + doctrine = tenet_ritual_celebrations } midnighter = { color = { 39 20 102 } From da5c7069a003d508ad26d5d2569482e4effc26a7 Mon Sep 17 00:00:00 2001 From: Fishedotjpg Date: Thu, 28 May 2026 18:51:35 +0100 Subject: [PATCH 06/12] horse archer blow up --- common/men_at_arms_types/00_maa_types.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/common/men_at_arms_types/00_maa_types.txt b/common/men_at_arms_types/00_maa_types.txt index 678209e5..028ee646 100644 --- a/common/men_at_arms_types/00_maa_types.txt +++ b/common/men_at_arms_types/00_maa_types.txt @@ -88,6 +88,7 @@ bowmen = { counters = { skirmishers = 1 chemical_weapons = 1 + archer_cavalry = 1 } can_recruit = { @@ -623,6 +624,7 @@ handgunners = { counters = { heavy_infantry = 1 + archer_cavalry = 0.25 } buy_cost = { gold = handgunner_recruitment_cost } From 3d244c53bd81d268cf45e9102456e00a2b62c370 Mon Sep 17 00:00:00 2001 From: edwardtheelbowhigh <73761109+edwardtheelbowhigh@users.noreply.github.com> Date: Thu, 28 May 2026 22:37:58 +0100 Subject: [PATCH 07/12] folkgerman godslist --- .../religion_types/NEOW_folkgerman.txt | 166 +++++++++++++++++- ..._NEOW_religion_folk_germanic_l_english.yml | 8 +- 2 files changed, 171 insertions(+), 3 deletions(-) diff --git a/common/religion/religion_types/NEOW_folkgerman.txt b/common/religion/religion_types/NEOW_folkgerman.txt index 20799b4d..576972d1 100644 --- a/common/religion/religion_types/NEOW_folkgerman.txt +++ b/common/religion/religion_types/NEOW_folkgerman.txt @@ -440,7 +440,171 @@ doctrine = tenet_christian_syncretism doctrine = tenet_ancestor_worship - doctrine = tenet_ritual_celebrations + doctrine = tenet_bhakti + doctrine = doctrine_witchcraft_crime + localization = { + #HighGod | placeholder + HighGodName = folketro_high_god_name + HighGodName2 = folketro_high_god_name_alternate + HighGodNamePossessive = folketro_high_god_name_alternate_possessive + HighGodNameSheHe = CHARACTER_SHEHE_HE + HighGodHerselfHimself = CHARACTER_HIMSELF + HighGodHerHis = CHARACTER_HERHIS_HIS + HighGodNameAlternate = germanic_high_god_alternate + HighGodNameAlternatePossessive = folketro_high_god_name_alternate_possessive + + #Creator | placeholder + CreatorName = folketro_high_god_name + CreatorNamePossessive = folketro_high_god_name_possessive + CreatorSheHe = CHARACTER_SHEHE_HE + CreatorHerHis = CHARACTER_HERHIS_HIS + CreatorHerHim = CHARACTER_HERHIM_HIM + + #HealthGod | placeholder + HealthGodName = folketro_health_god_name + HealthGodNamePossessive = folketro_health_god_name_possessive + HealthGodSheHe = CHARACTER_SHEHE_HE + HealthGodHerHis = CHARACTER_HERHIS_HIS + HealthGodHerHim = CHARACTER_HERHIM_HIM + + #FertilityGod | placeholder + FertilityGodName = folketro_health_god_name + FertilityGodNamePossessive = folketro_health_god_name_possessive + FertilityGodSheHe = CHARACTER_SHEHE_SHE + FertilityGodHerHis = CHARACTER_HERHIS_HER + FertilityGodHerHim = CHARACTER_HERHIM_HER + + #WealthGod | placeholder + WealthGodName = folketro_wealth_god_name + WealthGodNamePossessive = folketro_wealth_god_name_possessive + WealthGodSheHe = CHARACTER_SHEHE_HE + WealthGodHerHis = CHARACTER_HERHIS_HIS + WealthGodHerHim = CHARACTER_HERHIM_HIM + + #HouseholdGod | placeholder + HouseholdGodName = folketro_health_god_name + HouseholdGodNamePossessive = folketro_health_god_name_possessive + HouseholdGodSheHe = CHARACTER_SHEHE_HSE + HouseholdGodHerHis = CHARACTER_HERHIS_HER + HouseholdGodHerHim = CHARACTER_HERHIM_HER + + #FateGod | placeholder + FateGodName = folketro_fate_god_name + FateGodNamePossessive = folketro_fate_god_name_possessive + FateGodSheHe = CHARACTER_SHEHE_HE + FateGodHerHis = CHARACTER_HERHIS_HIS + FateGodHerHim = CHARACTER_HERHIM_HIM + + #KnowledgeGod | placeholder + KnowledgeGodName = folketro_wealth_god_name + KnowledgeGodNamePossessive = folketro_wealth_god_name_possessive + KnowledgeGodSheHe = CHARACTER_SHEHE_HE + KnowledgeGodHerHis = CHARACTER_HERHIS_HIS + KnowledgeGodHerHim = CHARACTER_HERHIM_HIM + + #WarGod | placeholder + WarGodName = folketro_war_god_name + WarGodNamePossessive = folketro_war_god_name_possessive + WarGodSheHe = CHARACTER_SHEHE_HE + WarGodHerHis = CHARACTER_HERHIS_HIS + WarGodHerHim = CHARACTER_HERHIM_HIM + + #TricksterGod | placeholder + TricksterGodName = folketro_trickster_god_name + TricksterGodNamePossessive = folketro_trickster_god_name_possessive + TricksterGodSheHe = CHARACTER_SHEHE_HE + TricksterGodHerHis = CHARACTER_HERHIS_HIS + TricksterGodHerHim = CHARACTER_HERHIM_HIM + + #NightGod | placeholder + NightGodName = folketro_trickster_god_name + NightGodNamePossessive = folketro_trickster_god_name_possessive + NightGodSheHe = CHARACTER_SHEHE_HE + NightGodHerHis = CHARACTER_HERHIS_HIS + NightGodHerHim = CHARACTER_HERHIM_HIM + + #WaterGod | placeholder + WaterGodName = folketro_wealth_god_name + WaterGodNamePossessive = folketro_wealth_god_name_possessive + WaterGodSheHe = CHARACTER_SHEHE_HE + WaterGodHerHis = CHARACTER_HERHIS_HIS + WaterGodHerHim = CHARACTER_HERHIM_HIM + + PantheonTerm = folkgerman_high_god_name + PantheonTerm2 = folkgerman_high_god_name_2 + PantheonTerm3 = folkgerman_high_god_name_3 + PantheonTermHasHave = pantheon_term_has + GoodGodNames = { + folkgerman_high_god_name + folkgerman_high_god_name_alternate + } + DevilName = folketro_trickster_god_name + DevilNamePossessive = folketro_trickster_god_name_possessive + DevilSheHe = CHARACTER_SHEHE_HE + DevilHerHis = CHARACTER_HERHIS_HIS + DevilHerHis = CHARACTER_HERHIS_HIS + DevilHerselfHimself = CHARACTER_HIMSELF + EvilGodNames = { + folkgerman_devil_name + } + HouseOfWorship = christianity_house_of_worship + HouseOfWorship2 = christianity_house_of_worship_2 + HouseOfWorship3 = christianity_house_of_worship_3 + HouseOfWorshipPlural = christianity_house_of_worship_plural + ReligiousSymbol = christianity_religious_symbol + ReligiousSymbol2 = christianity_religious_symbol_2 + ReligiousSymbol3 = christianity_religious_symbol_3 + ReligiousText = germanic_religious_text + ReligiousText2 = germanic_religious_text_2 + ReligiousText3 = germanic_religious_text_3 + ReligiousHeadName = adoptionist_religious_head_title + ReligiousHeadTitleName = adoptionist_religious_head_title_name + DevoteeMale = folkgerman_devotee_male + DevoteeMalePlural = folkgerman_devotee_male_plural + DevoteeFemale = folkgerman_devotee_female + DevoteeFemalePlural = folkgerman_devotee_female_plural + DevoteeNeuter = folkgerman_devotee_neuter + DevoteeNeuterPlural = folkgerman_devotee_neuter_plural + PriestMale = christianity_priest_male + PriestMalePlural = christianity_priest_male_plural + PriestFemale = christianity_priest_male + PriestFemalePlural = christianity_priest_male_plural + PriestNeuter = christianity_priest_male + PriestNeuterPlural = christianity_priest_male_plural + AltPriestTermPlural = christianity_priest_male_plural + BishopMale = christianity_bishop + BishopMalePlural = christianity_bishop_plural + BishopFemale = christianity_bishop + BishopFemalePlural = christianity_bishop_plural + BishopNeuter = christianity_bishop + BishopNeuterPlural = christianity_bishop_plural + DivineRealm = christianity_positive_afterlife + DivineRealm2 = christianity_positive_afterlife + DivineRealm3 = christianity_positive_afterlife + PositiveAfterLife = christianity_positive_afterlife + PositiveAfterLife2 = christianity_positive_afterlife + PositiveAfterLife3 = christianity_positive_afterlife + NegativeAfterLife = folkgerman_negative_afterlife + NegativeAfterLife2 = folkgerman_negative_afterlife_2 + NegativeAfterLife3 = folkgerman_negative_afterlife_3 + DeathDeityName = folketro_fate_god_name + DeathDeityNamePossessive = folketro_fate_god_name_possessive + DeathDeitySheHe = CHARACTER_SHEHE_HE + DeathDeityHerHis = CHARACTER_HERHIS_HIS + DeathDeityHerHim = CHARACTER_HERHIM_HIM + WitchGodName = folketro_trickster_god_name + WitchGodNamePossessive = folketro_trickster_god_name_possessive + WitchGodHerHis = CHARACTER_HERHIS_HIS + WitchGodSheHe = CHARACTER_SHEHE_HE + WitchGodHerHim = CHARACTER_HERHIM_HIM + WitchGodMistressMaster = master + WitchGodMotherFather = father + + + GHWName = ghw_crusade + GHWNamePlural = ghw_crusades + + } } midnighter = { color = { 39 20 102 } diff --git a/localization/english/replace/religion/zz_NEOW_religion_folk_germanic_l_english.yml b/localization/english/replace/religion/zz_NEOW_religion_folk_germanic_l_english.yml index b7555e42..a19fe543 100644 --- a/localization/english/replace/religion/zz_NEOW_religion_folk_germanic_l_english.yml +++ b/localization/english/replace/religion/zz_NEOW_religion_folk_germanic_l_english.yml @@ -206,14 +206,18 @@ folketro_adherent:0 "Folktro" folketro_adherent_plural:0 "Folktros" folketro_desc:0 "The Scandinavian folk religion centers around a pantheon headed by the Allfather - the primordial ancestor of mankind ruling over Heaven, where valkyries guide the souls of the dead. Standing next to him are the Helgener - his saints, who were once mortal people that ascended to divinity for their virtue. By far the most important Helgen to the Folklorists is Jesus, a great warrior who sacrificed his life in order to prevent Ragnarök and save all the people on Earth, and is now invoked by his followers for aid in battle. Other deities include Sankte Per, who judges the souls of the dead, Sankta Lucia, who brings kindness and warmth into the hearts of even the hardest of warriors, and Sankt Olaf, the patron and guardian of rulers everywhere. The goal in every Folklorist's life is to become one of the Helgener, making the Father of Fathers proud, and to be a virtuous example for all future generations." - folketro_high_god_name:0 "the Allfather" + folketro_high_god_name:0 "The Allfather" folketro_high_god_name_possessive:0 "the Allfather's" - folketro_war_god_name:0 "Jesus the Warrior" + folketro_war_god_name:0 "Jesus" folketro_war_god_name_possessive:0 "Jesus'" folketro_health_god_name:0 "Sankta Lucia" folketro_health_god_name_possessive:0 "Sankta Lucia's" folketro_fate_god_name:0 "Sankte Per" folketro_fate_god_name_possessive:0 "Sankte Per's" + folketro_wealth_god_name:0 "Sankte Olaf" + folketro_wealth_god_name_possessive:0 "Sankte Olaf's" + folketro_trickster_god_name:0 "The Trickster" + folketro_trickster_god_name_possessive:0 "the Trickster's" midnighter:0 "Midnighter" midnighter_adj:0 "Midnighter" From 8420cfa39df96578948a6bde3aef1875dd01cb08 Mon Sep 17 00:00:00 2001 From: edwardtheelbowhigh <73761109+edwardtheelbowhigh@users.noreply.github.com> Date: Thu, 28 May 2026 22:45:27 +0100 Subject: [PATCH 08/12] folketero development --- .../NEOW_religious_decision_events.txt | 77 +++++++++++++++++++ .../english/replace/decisions_l_english.yml | 12 +++ .../zz_NEOW_religious_decisions_l_english.yml | 35 ++++++++- 3 files changed, 123 insertions(+), 1 deletion(-) diff --git a/events/religion_events/NEOW_religious_decision_events.txt b/events/religion_events/NEOW_religious_decision_events.txt index 586a64f8..fdc02d07 100644 --- a/events/religion_events/NEOW_religious_decision_events.txt +++ b/events/religion_events/NEOW_religious_decision_events.txt @@ -1,5 +1,82 @@ namespace = NEOW_religious_decision +NEOW_religious_decision.0001 = { #custom patron gods for Leviathan + type = character_event + title = NEOW_religious_decision.0001.t + desc = NEOW_religious_decision.0001.desc + theme = faith + left_portrait = { + character = root + animation = personality_rational + } + + option = { + name = NEOW_religious_decision.0001.nationalisators + trigger = { + NOT = { has_character_modifier = bhakti_leviathan_nationalisators } + } + NEOW_set_bhakti_effect = { BHAKTI = bhakti_leviathan_nationalisators } + } + + option = { + name = NEOW_religious_decision.0001.technosaurs + trigger = { + NOT = { has_character_modifier = bhakti_leviathan_technosaurs } + } + NEOW_set_bhakti_effect = { BHAKTI = bhakti_leviathan_technosaurs } + } + + option = { + name = NEOW_religious_decision.0001.mechasaurs + trigger = { + NOT = { has_character_modifier = bhakti_leviathan_mechasaurs } + } + NEOW_set_bhakti_effect = { BHAKTI = bhakti_leviathan_mechasaurs } + } + + option = { + name = NEOW_religious_decision.0001.petrosaurs + trigger = { + NOT = { has_character_modifier = bhakti_leviathan_petrosaurs } + } + NEOW_set_bhakti_effect = { BHAKTI = bhakti_leviathan_petrosaurs } + } + + option = { + name = NEOW_religious_decision.0001.metallurgicals + trigger = { + NOT = { has_character_modifier = bhakti_leviathan_metallurgicals } + } + NEOW_set_bhakti_effect = { BHAKTI = bhakti_leviathan_metallurgicals } + } + + option = { + name = NEOW_religious_decision.0001.nautiluses + trigger = { + NOT = { has_character_modifier = bhakti_leviathan_nautiluses } + } + NEOW_set_bhakti_effect = { BHAKTI = bhakti_leviathan_nautiluses } + } + + option = { + name = NEOW_religious_decision.0001.aerosaurs + trigger = { + NOT = { has_character_modifier = bhakti_leviathan_aerosaurs } + } + NEOW_set_bhakti_effect = { BHAKTI = bhakti_leviathan_aerosaurs } + } + + # Opt-Out + option = { + name = NEOW_religious_decision.0001.optout + flavor = NEOW_religious_decision.0001.flavor + + ai_chance = { + base = 0 + } + } +} + NEOW_religious_decision.0001 = { #custom patron gods for Leviathan type = character_event title = NEOW_religious_decision.0001.t diff --git a/localization/english/replace/decisions_l_english.yml b/localization/english/replace/decisions_l_english.yml index af5b7506..865a436b 100644 --- a/localization/english/replace/decisions_l_english.yml +++ b/localization/english/replace/decisions_l_english.yml @@ -190,6 +190,18 @@ select_personal_deity_germanic_decision.select_thor:0 "Thor, Guardian of Man" select_personal_deity_germanic_decision.select_freyr:0 "Freyr, Bringer of Peace" + select_personal_deity_folketero_decision:0 "Determine Personal Deity" + select_personal_deity_folketero_decision_tooltip:0 "Think about [ROOT.Char.GetFaith.PantheonTerm]" + select_personal_deity_folketero_decision_desc:1 "#F It is not uncommon for [ROOT.Char.GetFaith.GetAdherentNamePluralNoTooltip] to single out one amongst [ROOT.Char.GetFaith.PantheonTerm] who suits their particular tastes and aims in life for special attention.\n\nI should contemplate these divine beings and decide which one calls to me the most.#!" + select_personal_deity_folketero_decision_confirm:0 "Dedicate your Worship to a particular God" + select_personal_deity_folketero_decision_tt:1 "You begin to live your life according to the values of" + select_personal_deity_folketero_decision.select_jesus:0 "Jesus, The Warrior, the Savior" + select_personal_deity_folketero_decision.select_per:0 "Sankt Per, Judge of the Dead" + select_personal_deity_folketero_decision.select_thor:0 "Sankt Olaf, Guardian of Rulers" + select_personal_deity_folketero_decision.select_freyr:0 "Sankt Lucia, Heart Warmer" + + + #N3OW Added: select_personal_leviathan_union_decision:0 "Determine Leviathan Union" diff --git a/localization/english/replace/event_localization/religion_events/zz_NEOW_religious_decisions_l_english.yml b/localization/english/replace/event_localization/religion_events/zz_NEOW_religious_decisions_l_english.yml index fcdf7376..8aba7cd5 100644 --- a/localization/english/replace/event_localization/religion_events/zz_NEOW_religious_decisions_l_english.yml +++ b/localization/english/replace/event_localization/religion_events/zz_NEOW_religious_decisions_l_english.yml @@ -24,4 +24,37 @@ republic_administrative_province_military_short: "Military" republic_administrative_province_military_text_icon: "@government_type_republic!" republic_administrative_province_military_desc: "#low A military administration focused on fortification and recruitment. Providing the realm with the means of protecting itself, or expanding its borders when necessary.#!" - republic_administrative_province_military_amount_desc: "$republic_administrative_province_military_short$ limit reached" \ No newline at end of file + republic_administrative_province_military_amount_desc: "$republic_administrative_province_military_short$ limit reached" + + religious_decision.0101.t:0 "Bhakti" + religious_decision.0101.desc.start:0 "Bhakti can be likened to feelings of fondness, devotion, and worship, but none of these fully encompass the concept. By devoting myself to an avatar of divinity, I am committing myself to them in body and soul.\n\n[ROOT.Char.GetFaith.GetNameNoTooltip] focuses on the veneration of" + religious_decision.0101.desc.generic:0 "just several of them." + religious_decision.0101.desc.vaishnavism:0 "the various incarnations of Vishnu the Preserver." + religious_decision.0101.desc.shaivism:0 "the many incarnations of Shiva the Destroyer." + religious_decision.0101.desc.smartism:0 "the aspects of the ultimate reality." + religious_decision.0101.desc.end:0 "Of these aspects, one must speak to me more than the others..." + religious_decision.0101.ganga:0 "Ganga, god of purity and atonement." + religious_decision.0101.saraswati:0 "Saraswati, goddess of learning and art." + religious_decision.0101.kali:0 "Kali, goddess of the destruction of evil." + religious_decision.0101.kubera:0 "Kubera, god of wealth and justice." + religious_decision.0101.lakishmi:0 "Lakishmi, goddess of fortune and prosperity." + religious_decision.0101.jagganath:0 "Jagganath, Lord of the Universe." + religious_decision.0101.hayagriva:0 "Haygriva, god of knowledge and wisdom." + religious_decision.0101.parvati:0 "Parvati, goddess of fertility and beauty." + religious_decision.0101.virabhadra:0 "Vīrabhadra, god of righteous anger." + religious_decision.0101.munishwarar:0 "Munīshwarar, god of the home and family." + religious_decision.0101.dakshinamoorthy:0 "Dakshinamoorthy, god of all forms of learning." + religious_decision.0101.ganesha:0 "Ganesha, god of wisdom and new beginnings." + religious_decision.0101.vishnu:0 "Vishnu, the god who watches over creation." + religious_decision.0101.shiva:0 "Shiva, the god who hunts down evil." + religious_decision.0101.optout:0 "I am not yet ready to decide." + religious_decision.0101.flavor:0 "There is no shame in waiting until I am certain." + + NEOW_religious_decision.0103.t:0 "Deciding on a Helgener" + NEOW_religious_decision.0103.desc:0 "[ROOT.Char.GetFaith.PantheonTerm|U] are many, yet I cannot say that there are not some who hold a level of special appeal for me. Were I to dedicate myself openly to the express worship of primarily one such deity, I would doubtless draw like-minded souls to my side.\n\nWhatever the blessings my patron provides, being with similar [ROOT.Char.GetFaith.GetAdherentNamePluralNoTooltip] can only bring me health, wealth, and glory." + NEOW_religious_decision.0103.jesus:0 "Jesus, Warrior and Savior!" + NEOW_religious_decision.0103.per:0 "Per, Judge of the Dead!" + NEOW_religious_decision.0103.lucia:0 "Lucia, the Warm-Hearted!" + NEOW_religious_decision.0103.olaf:0 "Olaf, Guardian of Rulers!"" + NEOW_religious_decision.0103.optout:0 "$religious_decision.0101.flavor$" + NEOW_religious_decision.0103.flavor:0 "$religious_decision.0101.flavor$" \ No newline at end of file From a07d9938c871c575bb58a47376c538186abbd5cd Mon Sep 17 00:00:00 2001 From: edwardtheelbowhigh <73761109+edwardtheelbowhigh@users.noreply.github.com> Date: Fri, 29 May 2026 00:57:10 +0100 Subject: [PATCH 09/12] Big Folktero update --- common/decisions/10_religious_decisions.txt | 174 +++++++++--------- common/decisions/religious_decisions_NEOW.txt | 72 ++++++++ .../modifiers/00_NEOW_religion_modifiers.txt | 24 +++ .../doctrine_types/30_core_tenets.txt | 19 ++ .../religion_types/NEOW_folkgerman.txt | 10 +- .../religion_types/NEOW_protestant.txt | 2 +- .../NEOW_religious_decision_events.txt | 54 ++---- .../english/replace/decisions_l_english.yml | 8 +- .../zz_NEOW_religious_decisions_l_english.yml | 2 +- .../modifiers/NEOW_modifiers_l_english.yml | 11 +- ...zz_NEOW_religion_core_tenets_l_english.yml | 3 + ..._NEOW_religion_folk_germanic_l_english.yml | 1 + 12 files changed, 242 insertions(+), 138 deletions(-) diff --git a/common/decisions/10_religious_decisions.txt b/common/decisions/10_religious_decisions.txt index 372b57ec..1171a16e 100644 --- a/common/decisions/10_religious_decisions.txt +++ b/common/decisions/10_religious_decisions.txt @@ -601,93 +601,93 @@ select_personal_deity_hinduism_decision = { } ### Determine Personal Deity ### -select_personal_deity_germanic_decision = { - picture = { - reference = "gfx/interface/illustrations/decisions/fp1_decisons_hold_bolt.dds" - } - desc = select_personal_deity_germanic_decision_desc - selection_tooltip = select_personal_deity_germanic_decision_tooltip - - is_shown = { - # DLC check. - has_fp1_dlc_trigger = yes - # Following a valid religion & faith. - religion = religion:folkgerman_religion - faith = { has_doctrine_parameter = select_personal_god_active } - } - - is_valid = { - } - - is_valid_showing_failures_only = { - # Have to at _least_ not be in piety debt. - piety >= 0 - } - - cooldown = { years = 2 } - - effect = { - # Show the possible options. - show_as_tooltip = { - random_list = { - desc = select_personal_deity_germanic_decision_tt - 100 = { - show_chance = no - desc = select_personal_deity_germanic_decision.select_odin - add_character_modifier = bhakti_germanic_generic_odin - } - 100 = { - trigger = { is_vaguely_danish_bhakti_trigger = no } - show_chance = no - desc = select_personal_deity_germanic_decision.select_ullr - add_character_modifier = bhakti_germanic_not_danish_ullr - } - 100 = { - trigger = { is_vaguely_danish_bhakti_trigger = yes } - show_chance = no - desc = select_personal_deity_germanic_decision.select_tyr - add_character_modifier = bhakti_germanic_danish_tyr - } - 100 = { - show_chance = no - desc = select_personal_deity_germanic_decision.select_thor - add_character_modifier = bhakti_germanic_generic_thor - } - 100 = { - show_chance = no - desc = select_personal_deity_germanic_decision.select_freyr - add_character_modifier = bhakti_germanic_generic_freyr - } - } - } - # And the actual effect. - trigger_event = religious_decision.0102 - } - - ai_check_interval_by_tier = { - barony = 0 - county = 96 - duchy = 96 - kingdom = 96 - empire = 96 - hegemony = 96 - } - - ai_potential = { - piety >= minor_piety_value - NOR = { - has_character_modifier = bhakti_germanic_generic_odin - has_character_modifier = bhakti_germanic_not_danish_ullr - has_character_modifier = bhakti_germanic_danish_tyr - has_character_modifier = bhakti_germanic_generic_thor - has_character_modifier = bhakti_germanic_generic_freyr - } - } - - ai_will_do = { - base = 100 - } -} +#select_personal_deity_germanic_decision = { +# picture = { +# reference = "gfx/interface/illustrations/decisions/fp1_decisons_hold_bolt.dds" +# } +# desc = select_personal_deity_germanic_decision_desc +# selection_tooltip = select_personal_deity_germanic_decision_tooltip +# +# is_shown = { +# # DLC check. +# has_fp1_dlc_trigger = yes +# # Following a valid religion & faith. +# religion = religion:folkgerman_religion +# faith = { has_doctrine_parameter = select_personal_god_active } +# } +# +# is_valid = { +# } +# +# is_valid_showing_failures_only = { +# # Have to at _least_ not be in piety debt. +# piety >= 0 +# } +# +# cooldown = { years = 2 } +# +# effect = { +# # Show the possible options. +# show_as_tooltip = { +# random_list = { +# desc = select_personal_deity_germanic_decision_tt +# 100 = { +# show_chance = no +# desc = select_personal_deity_germanic_decision.select_odin +# add_character_modifier = bhakti_germanic_generic_odin +# } +# 100 = { +# trigger = { is_vaguely_danish_bhakti_trigger = no } +# show_chance = no +# desc = select_personal_deity_germanic_decision.select_ullr +# add_character_modifier = bhakti_germanic_not_danish_ullr +# } +# 100 = { +# trigger = { is_vaguely_danish_bhakti_trigger = yes } +# show_chance = no +# desc = select_personal_deity_germanic_decision.select_tyr +# add_character_modifier = bhakti_germanic_danish_tyr +# } +# 100 = { +# show_chance = no +# desc = select_personal_deity_germanic_decision.select_thor +# add_character_modifier = bhakti_germanic_generic_thor +# } +# 100 = { +# show_chance = no +# desc = select_personal_deity_germanic_decision.select_freyr +# add_character_modifier = bhakti_germanic_generic_freyr +# } +# } +# } +# # And the actual effect. +# trigger_event = religious_decision.0102 +# } +# +# ai_check_interval_by_tier = { +# barony = 0 +# county = 96 +# duchy = 96 +# kingdom = 96 +# empire = 96 +# hegemony = 96 +# } +# +# ai_potential = { +# piety >= minor_piety_value +# NOR = { +# has_character_modifier = bhakti_germanic_generic_odin +# has_character_modifier = bhakti_germanic_not_danish_ullr +# has_character_modifier = bhakti_germanic_danish_tyr +# has_character_modifier = bhakti_germanic_generic_thor +# has_character_modifier = bhakti_germanic_generic_freyr +# } +# } +# +# ai_will_do = { +# base = 100 +# } +#} ### Meditate in Seclusion ### meditate_in_seclusion_decision = { diff --git a/common/decisions/religious_decisions_NEOW.txt b/common/decisions/religious_decisions_NEOW.txt index 0b00e975..a21531ff 100644 --- a/common/decisions/religious_decisions_NEOW.txt +++ b/common/decisions/religious_decisions_NEOW.txt @@ -83,6 +83,78 @@ } } + ai_will_do = { + base = 100 + } +} + +select_personal_deity_folketero_decision = { + picture = { + reference = "gfx/interface/illustrations/decisions/decision_personal_religious.dds" + } + desc = select_personal_deity_folketero_decision_desc + selection_tooltip = select_personal_deity_folketero_decision_tooltip + + is_shown = { + # Following a valid religion & faith. + faith = faith:folketro + + faith = { has_doctrine_parameter = select_personal_god_active } + } + + is_valid = { + } + + is_valid_showing_failures_only = { + # Have to at _least_ not be in piety debt. + piety >= 0 + } + + cooldown = { years = 2 } + + effect = { + # Show the possible options. + show_as_tooltip = { + random_list = { + desc = select_personal_deity_folketero_decision_tt + 100 = { + show_chance = no + desc = select_personal_deity_folketero_decision.select_jesus + add_character_modifier = bhakti_folketero_jesus + } + 100 = { + show_chance = no + desc = select_personal_deity_folketero_decision.select_per + add_character_modifier = bhakti_folketero_per + } + 100 = { + show_chance = no + desc = select_personal_deity_folketero_decision.select_lucia + add_character_modifier = bhakti_folketero_lucia + } + 100 = { + show_chance = no + desc = select_personal_deity_folketero_decision.select_olaf + add_character_modifier = bhakti_folketero_olaf + } + } + } + # And the actual effect. + trigger_event = NEOW_religious_decision.0103 + } + + ai_check_interval = 96 + + ai_potential = { + piety >= minor_piety_value + NOR = { + has_character_modifier = bhakti_folketero_olaf + has_character_modifier = bhakti_folketero_lucia + has_character_modifier = bhakti_folketero_jesus + has_character_modifier = bhakti_folketero_per + } + } + ai_will_do = { base = 100 } diff --git a/common/modifiers/00_NEOW_religion_modifiers.txt b/common/modifiers/00_NEOW_religion_modifiers.txt index f6749927..bbde905a 100644 --- a/common/modifiers/00_NEOW_religion_modifiers.txt +++ b/common/modifiers/00_NEOW_religion_modifiers.txt @@ -38,4 +38,28 @@ bhakti_leviathan_aerosaurs = { # Gods of warfare, combat, destruction, fire, dea icon = martial_positive martial = 1 movement_speed = 0.1 +} + +bhakti_folketero_jesus = { + icon = prowess_positive + prowess = 3 + martial = 1 +} + +bhakti_folketero_per = { + icon = learning_positive + learning = 1 + monthly_piety = 0.5 +} + +bhakti_folketero_lucia = { + icon = letter_positive + diplomacy = 1 + build_speed = -0.1 +} + +bhakti_folketero_olaf = { + icon = stewardship_positive + stewardship = 1 + monthly_county_control_growth_add = 0.1 } \ No newline at end of file diff --git a/common/religion/doctrine_types/30_core_tenets.txt b/common/religion/doctrine_types/30_core_tenets.txt index 4195b71b..454faee9 100644 --- a/common/religion/doctrine_types/30_core_tenets.txt +++ b/common/religion/doctrine_types/30_core_tenets.txt @@ -3050,9 +3050,28 @@ trigger = { religion_tag = hinduism_religion } desc = tenet_bhakti_name } + triggered_desc = { + trigger = { faith = faith:folketro } + desc = tenet_bhakti_folketro_name + } desc = tenet_bhakti_patron_god_name } } + + desc = { + first_valid = { + triggered_desc = { + trigger = { + OR = { + faith = faith:orthodox + faith = faith:folketro + } + } + desc = tenet_bhakti_folketro_name_desc + } + desc = tenet_bhakti_folketro_name_desc + } + } icon = core_tenet_bhakti piety_cost = faith_tenet_cost_mid diff --git a/common/religion/religion_types/NEOW_folkgerman.txt b/common/religion/religion_types/NEOW_folkgerman.txt index 576972d1..886c7eec 100644 --- a/common/religion/religion_types/NEOW_folkgerman.txt +++ b/common/religion/religion_types/NEOW_folkgerman.txt @@ -530,13 +530,13 @@ WaterGodHerHis = CHARACTER_HERHIS_HIS WaterGodHerHim = CHARACTER_HERHIM_HIM - PantheonTerm = folkgerman_high_god_name - PantheonTerm2 = folkgerman_high_god_name_2 + PantheonTerm = folketro_pantheon_name + PantheonTerm2 = folketro_pantheon_name PantheonTerm3 = folkgerman_high_god_name_3 - PantheonTermHasHave = pantheon_term_has + PantheonTermHasHave = pantheon_term_have GoodGodNames = { - folkgerman_high_god_name - folkgerman_high_god_name_alternate + folketro_high_god_name + folketro_high_god_name_alternate } DevilName = folketro_trickster_god_name DevilNamePossessive = folketro_trickster_god_name_possessive diff --git a/common/religion/religion_types/NEOW_protestant.txt b/common/religion/religion_types/NEOW_protestant.txt index 80420ba6..be19652e 100644 --- a/common/religion/religion_types/NEOW_protestant.txt +++ b/common/religion/religion_types/NEOW_protestant.txt @@ -346,7 +346,7 @@ #Tenets | placeholder doctrine = tenet_adaptive - doctrine = tenet_pentarchy + doctrine = tenet_mendicant_preachers doctrine = tenet_literalism holy_order_names = { #placeholder diff --git a/events/religion_events/NEOW_religious_decision_events.txt b/events/religion_events/NEOW_religious_decision_events.txt index fdc02d07..70992c3d 100644 --- a/events/religion_events/NEOW_religious_decision_events.txt +++ b/events/religion_events/NEOW_religious_decision_events.txt @@ -77,10 +77,10 @@ NEOW_religious_decision.0001 = { #custom patron gods for Leviathan } } -NEOW_religious_decision.0001 = { #custom patron gods for Leviathan +NEOW_religious_decision.0103 = { #custom patron gods for Leviathan type = character_event - title = NEOW_religious_decision.0001.t - desc = NEOW_religious_decision.0001.desc + title = NEOW_religious_decision.0103.t + desc = NEOW_religious_decision.0103.desc theme = faith left_portrait = { character = root @@ -88,59 +88,35 @@ NEOW_religious_decision.0001 = { #custom patron gods for Leviathan } option = { - name = NEOW_religious_decision.0001.nationalisators + name = NEOW_religious_decision.0103.jesus trigger = { - NOT = { has_character_modifier = bhakti_leviathan_nationalisators } + NOT = { has_character_modifier = bhakti_folketero_jesus } } - NEOW_set_bhakti_effect = { BHAKTI = bhakti_leviathan_nationalisators } + NEOW_set_bhakti_effect = { BHAKTI = bhakti_folketero_jesus } } option = { - name = NEOW_religious_decision.0001.technosaurs + name = NEOW_religious_decision.0103.per trigger = { - NOT = { has_character_modifier = bhakti_leviathan_technosaurs } + NOT = { has_character_modifier = bhakti_folketero_per } } - NEOW_set_bhakti_effect = { BHAKTI = bhakti_leviathan_technosaurs } + NEOW_set_bhakti_effect = { BHAKTI = bhakti_folketero_per } } option = { - name = NEOW_religious_decision.0001.mechasaurs + name = NEOW_religious_decision.0103.lucia trigger = { - NOT = { has_character_modifier = bhakti_leviathan_mechasaurs } + NOT = { has_character_modifier = bhakti_folketero_lucia } } - NEOW_set_bhakti_effect = { BHAKTI = bhakti_leviathan_mechasaurs } + NEOW_set_bhakti_effect = { BHAKTI = bhakti_folketero_lucia } } option = { - name = NEOW_religious_decision.0001.petrosaurs + name = NEOW_religious_decision.0103.olaf trigger = { - NOT = { has_character_modifier = bhakti_leviathan_petrosaurs } + NOT = { has_character_modifier = bhakti_folketero_olaf } } - NEOW_set_bhakti_effect = { BHAKTI = bhakti_leviathan_petrosaurs } - } - - option = { - name = NEOW_religious_decision.0001.metallurgicals - trigger = { - NOT = { has_character_modifier = bhakti_leviathan_metallurgicals } - } - NEOW_set_bhakti_effect = { BHAKTI = bhakti_leviathan_metallurgicals } - } - - option = { - name = NEOW_religious_decision.0001.nautiluses - trigger = { - NOT = { has_character_modifier = bhakti_leviathan_nautiluses } - } - NEOW_set_bhakti_effect = { BHAKTI = bhakti_leviathan_nautiluses } - } - - option = { - name = NEOW_religious_decision.0001.aerosaurs - trigger = { - NOT = { has_character_modifier = bhakti_leviathan_aerosaurs } - } - NEOW_set_bhakti_effect = { BHAKTI = bhakti_leviathan_aerosaurs } + NEOW_set_bhakti_effect = { BHAKTI = bhakti_folketero_olaf } } # Opt-Out diff --git a/localization/english/replace/decisions_l_english.yml b/localization/english/replace/decisions_l_english.yml index 865a436b..0aad203e 100644 --- a/localization/english/replace/decisions_l_english.yml +++ b/localization/english/replace/decisions_l_english.yml @@ -190,15 +190,15 @@ select_personal_deity_germanic_decision.select_thor:0 "Thor, Guardian of Man" select_personal_deity_germanic_decision.select_freyr:0 "Freyr, Bringer of Peace" - select_personal_deity_folketero_decision:0 "Determine Personal Deity" + select_personal_deity_folketero_decision:0 "Determine Personal Helgen" select_personal_deity_folketero_decision_tooltip:0 "Think about [ROOT.Char.GetFaith.PantheonTerm]" select_personal_deity_folketero_decision_desc:1 "#F It is not uncommon for [ROOT.Char.GetFaith.GetAdherentNamePluralNoTooltip] to single out one amongst [ROOT.Char.GetFaith.PantheonTerm] who suits their particular tastes and aims in life for special attention.\n\nI should contemplate these divine beings and decide which one calls to me the most.#!" select_personal_deity_folketero_decision_confirm:0 "Dedicate your Worship to a particular God" select_personal_deity_folketero_decision_tt:1 "You begin to live your life according to the values of" - select_personal_deity_folketero_decision.select_jesus:0 "Jesus, The Warrior, the Savior" + select_personal_deity_folketero_decision.select_jesus:0 "Jesus, The Warrior and Savior" select_personal_deity_folketero_decision.select_per:0 "Sankt Per, Judge of the Dead" - select_personal_deity_folketero_decision.select_thor:0 "Sankt Olaf, Guardian of Rulers" - select_personal_deity_folketero_decision.select_freyr:0 "Sankt Lucia, Heart Warmer" + select_personal_deity_folketero_decision.select_olaf:0 "Sankt Olaf, Guardian of Rulers" + select_personal_deity_folketero_decision.select_lucia:0 "Sankt Lucia, Heart Warmer" diff --git a/localization/english/replace/event_localization/religion_events/zz_NEOW_religious_decisions_l_english.yml b/localization/english/replace/event_localization/religion_events/zz_NEOW_religious_decisions_l_english.yml index 8aba7cd5..4eb9eee9 100644 --- a/localization/english/replace/event_localization/religion_events/zz_NEOW_religious_decisions_l_english.yml +++ b/localization/english/replace/event_localization/religion_events/zz_NEOW_religious_decisions_l_english.yml @@ -50,7 +50,7 @@ religious_decision.0101.optout:0 "I am not yet ready to decide." religious_decision.0101.flavor:0 "There is no shame in waiting until I am certain." - NEOW_religious_decision.0103.t:0 "Deciding on a Helgener" + NEOW_religious_decision.0103.t:0 "Deciding on a Helgen" NEOW_religious_decision.0103.desc:0 "[ROOT.Char.GetFaith.PantheonTerm|U] are many, yet I cannot say that there are not some who hold a level of special appeal for me. Were I to dedicate myself openly to the express worship of primarily one such deity, I would doubtless draw like-minded souls to my side.\n\nWhatever the blessings my patron provides, being with similar [ROOT.Char.GetFaith.GetAdherentNamePluralNoTooltip] can only bring me health, wealth, and glory." NEOW_religious_decision.0103.jesus:0 "Jesus, Warrior and Savior!" NEOW_religious_decision.0103.per:0 "Per, Judge of the Dead!" diff --git a/localization/english/replace/modifiers/NEOW_modifiers_l_english.yml b/localization/english/replace/modifiers/NEOW_modifiers_l_english.yml index 6b555f6c..987a2d6d 100644 --- a/localization/english/replace/modifiers/NEOW_modifiers_l_english.yml +++ b/localization/english/replace/modifiers/NEOW_modifiers_l_english.yml @@ -13,4 +13,13 @@ bhakti_leviathan_metallurgicals_desc:0 "This character follows one of the wise l bhakti_leviathan_nautiluses: "Nautiluses" bhakti_leviathan_nautiluses_desc:0 "This character follows one of the gods of the blue waters." bhakti_leviathan_aerosaurs: "Aerosaurs" -bhakti_leviathan_aerosaurs_desc:0 "This character follows one of the gods of war, flight, desolation, and violence: the most prevalent and classical of the Leviathans." \ No newline at end of file +bhakti_leviathan_aerosaurs_desc:0 "This character follows one of the gods of war, flight, desolation, and violence: the most prevalent and classical of the Leviathans." +# +bhakti_folketero_jesus: "Jesus" +bhakti_folketero_jesus_desc:0 "This character emulates the warrior-savior who prevented raganrok." +bhakti_folketero_per: "Sankt Per" +bhakti_folketero_per_desc:0 "This character emulates the judge of the dead." +bhakti_folketero_lucia: "Sankt Lucia" +bhakti_folketero_lucia_desc:0 "This character emulates the kind heart-warmer." +bhakti_folketero_olaf: "Sankt Olaf" +bhakti_folketero_olaf_desc:0 "This character emulates the patron and guardian of rulers." \ No newline at end of file diff --git a/localization/english/replace/religion/doctrines/zz_NEOW_religion_core_tenets_l_english.yml b/localization/english/replace/religion/doctrines/zz_NEOW_religion_core_tenets_l_english.yml index 8bc202d3..145f0428 100644 --- a/localization/english/replace/religion/doctrines/zz_NEOW_religion_core_tenets_l_english.yml +++ b/localization/english/replace/religion/doctrines/zz_NEOW_religion_core_tenets_l_english.yml @@ -54,6 +54,9 @@ tenet_pursuit_of_power_europeanist_name:0 "Ascendancy" tenet_pursuit_of_power_europeanist_desc:0 "Our laws are not defined by any virtues or moral maxims, but by the pursuit of greatness that is the duty of each follower. It is our responsibility to rebel against the limits of humanity and claim our own divinity." + tenet_bhakti_folketro_name_desc: "The veneration of the Helgener is a integral part of our faith, a sign of piety and right thinking. Those who humby emulate their deeds and creeds are lauded and respected." + tenet_bhakti_folketro_name:0 "The Helgener" + tenet_bhakti_saints_name:0 "Patron Saints" doctrine_pantheist_name: "Pantheist" doctrine_pantheist_desc: "God is reality. Any other gods are merely an aspect or interpretation of the Supreme Being, and must be acknowledged and studied with as much respect as any other." diff --git a/localization/english/replace/religion/zz_NEOW_religion_folk_germanic_l_english.yml b/localization/english/replace/religion/zz_NEOW_religion_folk_germanic_l_english.yml index a19fe543..2134130b 100644 --- a/localization/english/replace/religion/zz_NEOW_religion_folk_germanic_l_english.yml +++ b/localization/english/replace/religion/zz_NEOW_religion_folk_germanic_l_english.yml @@ -208,6 +208,7 @@ folketro_desc:0 "The Scandinavian folk religion centers around a pantheon headed by the Allfather - the primordial ancestor of mankind ruling over Heaven, where valkyries guide the souls of the dead. Standing next to him are the Helgener - his saints, who were once mortal people that ascended to divinity for their virtue. By far the most important Helgen to the Folklorists is Jesus, a great warrior who sacrificed his life in order to prevent Ragnarök and save all the people on Earth, and is now invoked by his followers for aid in battle. Other deities include Sankte Per, who judges the souls of the dead, Sankta Lucia, who brings kindness and warmth into the hearts of even the hardest of warriors, and Sankt Olaf, the patron and guardian of rulers everywhere. The goal in every Folklorist's life is to become one of the Helgener, making the Father of Fathers proud, and to be a virtuous example for all future generations." folketro_high_god_name:0 "The Allfather" folketro_high_god_name_possessive:0 "the Allfather's" + folketro_pantheon_name:0 "The Helgener" folketro_war_god_name:0 "Jesus" folketro_war_god_name_possessive:0 "Jesus'" folketro_health_god_name:0 "Sankta Lucia" From 59695358fe0512a06fc241e6bfba5d6796cf503d Mon Sep 17 00:00:00 2001 From: edwardtheelbowhigh <73761109+edwardtheelbowhigh@users.noreply.github.com> Date: Fri, 29 May 2026 00:59:51 +0100 Subject: [PATCH 10/12] Update 30_core_tenets.txt --- common/religion/doctrine_types/30_core_tenets.txt | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/common/religion/doctrine_types/30_core_tenets.txt b/common/religion/doctrine_types/30_core_tenets.txt index 454faee9..47f3979e 100644 --- a/common/religion/doctrine_types/30_core_tenets.txt +++ b/common/religion/doctrine_types/30_core_tenets.txt @@ -3062,14 +3062,11 @@ first_valid = { triggered_desc = { trigger = { - OR = { - faith = faith:orthodox - faith = faith:folketro - } + faith = faith:folketro } - desc = tenet_bhakti_folketro_name_desc + desc = tenet_bhakti_folketro_name_desc } - desc = tenet_bhakti_folketro_name_desc + desc = tenet_bhakti_patron_god_desc } } icon = core_tenet_bhakti From 238c801be1a9ae20cd40620d872d55f92789ec5d Mon Sep 17 00:00:00 2001 From: edwardtheelbowhigh <73761109+edwardtheelbowhigh@users.noreply.github.com> Date: Fri, 29 May 2026 01:00:56 +0100 Subject: [PATCH 11/12] Update 30_core_tenets.txt --- common/religion/doctrine_types/30_core_tenets.txt | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/common/religion/doctrine_types/30_core_tenets.txt b/common/religion/doctrine_types/30_core_tenets.txt index 47f3979e..d70cbdeb 100644 --- a/common/religion/doctrine_types/30_core_tenets.txt +++ b/common/religion/doctrine_types/30_core_tenets.txt @@ -3061,9 +3061,7 @@ desc = { first_valid = { triggered_desc = { - trigger = { - faith = faith:folketro - } + trigger = { faith = faith:folketro } desc = tenet_bhakti_folketro_name_desc } desc = tenet_bhakti_patron_god_desc From 6f18efe60e9a9bb28ebfc6f70a086fdad97ddf14 Mon Sep 17 00:00:00 2001 From: edwardtheelbowhigh <73761109+edwardtheelbowhigh@users.noreply.github.com> Date: Fri, 29 May 2026 01:18:03 +0100 Subject: [PATCH 12/12] loc fix --- common/religion/doctrine_types/30_core_tenets.txt | 8 ++++---- .../doctrines/zz_NEOW_religion_core_tenets_l_english.yml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/common/religion/doctrine_types/30_core_tenets.txt b/common/religion/doctrine_types/30_core_tenets.txt index d70cbdeb..4d14dd62 100644 --- a/common/religion/doctrine_types/30_core_tenets.txt +++ b/common/religion/doctrine_types/30_core_tenets.txt @@ -3051,7 +3051,7 @@ desc = tenet_bhakti_name } triggered_desc = { - trigger = { faith = faith:folketro } + faith = faith:folketro desc = tenet_bhakti_folketro_name } desc = tenet_bhakti_patron_god_name @@ -3061,10 +3061,10 @@ desc = { first_valid = { triggered_desc = { - trigger = { faith = faith:folketro } - desc = tenet_bhakti_folketro_name_desc + faith = faith:folketro + desc = tenet_bhakti_folketro_desc } - desc = tenet_bhakti_patron_god_desc + desc = tenet_bhakti_desc } } icon = core_tenet_bhakti diff --git a/localization/english/replace/religion/doctrines/zz_NEOW_religion_core_tenets_l_english.yml b/localization/english/replace/religion/doctrines/zz_NEOW_religion_core_tenets_l_english.yml index 145f0428..96cca04d 100644 --- a/localization/english/replace/religion/doctrines/zz_NEOW_religion_core_tenets_l_english.yml +++ b/localization/english/replace/religion/doctrines/zz_NEOW_religion_core_tenets_l_english.yml @@ -54,7 +54,7 @@ tenet_pursuit_of_power_europeanist_name:0 "Ascendancy" tenet_pursuit_of_power_europeanist_desc:0 "Our laws are not defined by any virtues or moral maxims, but by the pursuit of greatness that is the duty of each follower. It is our responsibility to rebel against the limits of humanity and claim our own divinity." - tenet_bhakti_folketro_name_desc: "The veneration of the Helgener is a integral part of our faith, a sign of piety and right thinking. Those who humby emulate their deeds and creeds are lauded and respected." + tenet_bhakti_folketro_desc: "The veneration of the Helgener is a integral part of our faith, a sign of piety and right thinking. Those who humby emulate their deeds and creeds are lauded and respected." tenet_bhakti_folketro_name:0 "The Helgener" tenet_bhakti_saints_name:0 "Patron Saints"