diff --git a/common/coat_of_arms/coat_of_arms/NEOW_landed_titles.txt b/common/coat_of_arms/coat_of_arms/NEOW_landed_titles.txt index bd2e7308..6a25a7b4 100644 --- a/common/coat_of_arms/coat_of_arms/NEOW_landed_titles.txt +++ b/common/coat_of_arms/coat_of_arms/NEOW_landed_titles.txt @@ -447,6 +447,260 @@ d_lincoln={ } +d_leicester={ + pattern="pattern_horizontal_split_01.dds" + color1=red + color2=red + color3=blue + colored_emblem={ + color1=red + color2=red + color3=white + texture="ce_wolf_passant.dds" + instance={ + position={ 0.500000 0.820000 } + scale={ 0.370000 0.280000 } + depth=2.010000 + } + + } + + colored_emblem={ + color1=red + color2=green_light + color3=red + texture="ce_flower.dds" + instance={ + position={ 0.500000 0.320000 } + scale={ 0.160000 -0.160000 } + depth=1.010000 + } + + } + + colored_emblem={ + color1=white + texture="ce_cinquefoil.dds" + instance={ + position={ 0.500000 0.320000 } + scale={ 0.090000 0.090000 } + } + + } + + colored_emblem={ + color1=black + texture="ce_block_03.dds" + instance={ + position={ 0.500000 0.320000 } + depth=7.010000 + } + + } + + colored_emblem={ + color1=yellow + texture="ce_block_04.dds" + instance={ + position={ 0.500000 0.510000 } + depth=5.010000 + rotation=90 + } + + instance={ + position={ 0.500000 0.320000 } + depth=6.010000 + } + + } + + colored_emblem={ + color1=red + texture="ce_block_02.dds" + instance={ + position={ 0.500000 0.910000 } + depth=9.010000 + } + + } + + colored_emblem={ + color1=white + texture="ce_fess_dancetty.dds" + instance={ + position={ 0.500000 0.760000 } + depth=3.010000 + } + + instance={ + position={ 0.500000 0.950000 } + depth=4.010000 + } + + } + + colored_emblem={ + color1=black + texture="ce_mena_fess.dds" + instance={ + depth=8.010000 + rotation=90 + } + + } + +} + + +d_nottingham={ + pattern="pattern_cross_02.dds" + color1=red + color2=blue_light + color3=red + colored_emblem={ + color1=green + texture="ce_ordinary_cross_5.dds" + instance={ + depth=5.010000 + } + + } + + colored_emblem={ + color1=blue_light + texture="ce_block_02.dds" + instance={ + depth=7.010000 + } + + } + + colored_emblem={ + color1=white + texture="ce_ordinary_cross_4.dds" + instance={ + depth=6.010000 + } + + } + + colored_emblem={ + color1=red + texture="ce_ordinary_cross_thinnest.dds" + instance={ + depth=4.010000 + } + + } + + colored_emblem={ + color1=yellow + color2=green + color3=green + texture="ce_flower.dds" + instance={ + scale={ 0.200000 0.200000 } + } + + instance={ + scale={ 0.360000 0.360000 } + depth=2.010000 + } + + } + + colored_emblem={ + color1=white + color2=white + texture="ce_shield_02.dds" + instance={ + scale={ 0.430000 0.430000 } + depth=3.010000 + } + + } + + colored_emblem={ + color1=green + texture="ce_cinquefoil_02.dds" + instance={ + scale={ 0.310000 0.310000 } + depth=1.010000 + } + + } + +} + + +d_black_country={ + pattern="pattern_vertical_split_01.dds" + color1=red + color2=yellow + color3=blue + colored_emblem={ + color1=blue + texture="ce_block_02.dds" + instance={ + position={ 1.000000 0.000000 } + scale={ 1.000000 0.370000 } + depth=1.010000 + } + + } + + colored_emblem={ + color1=white + texture="ce_ragged_staff.dds" + instance={ + position={ 0.180000 0.460000 } + scale={ 0.560000 0.530000 } + depth=3.010000 + rotation=89 + } + + } + + colored_emblem={ + color1=red + texture="ce_ordinary_chevron_5.dds" + instance={ + position={ 0.720000 0.400000 } + scale={ 0.460000 0.460000 } + depth=2.010000 + } + + } + + colored_emblem={ + color1=white + color2=grey + color3=red + texture="ce_bear_rampant.dds" + instance={ + position={ 0.360000 0.500000 } + scale={ 0.490000 0.490000 } + depth=4.010000 + } + + } + + colored_emblem={ + color1=yellow + color2=yellow + color3=yellow + texture="ce_leopard_passant_guardant.dds" + instance={ + position={ 0.720000 0.100000 } + scale={ 0.470000 0.470000 } + } + + } + +} + + + d_buckingham={ pattern="pattern_tricolor_horizontal_01.dds" color1=red diff --git a/common/culture/traditions/00_combat_traditions.txt b/common/culture/traditions/00_combat_traditions.txt new file mode 100644 index 00000000..ba4a1f0e --- /dev/null +++ b/common/culture/traditions/00_combat_traditions.txt @@ -0,0 +1,2495 @@ +############################## +# COMBAT CULTURAL TRADITIONS # +############################## + +tradition_winter_warriors = { + category = combat + + layers = { + 0 = learning + 1 = western + 4 = fight.dds + } + + can_pick = { + culture_not_pacifistic_trigger = yes + culture_in_winter_geographical_region_trigger = yes + } + parameters = { + winter_soldier_trait_more_common = yes + winter_trait_bonuses = yes + can_recruit_winter_specialist = yes + resistant_to_winter_privation = yes + } + character_modifier = { + taiga_travel_danger = taiga_low_danger_reduction + } + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_stoic_or_communal_desc + } + } + if = { + limit = { + NOT = { + any_culture_county = { + percent >= 0.3 + any_county_province = { + OR = { + geographical_region = world_europe_north + geographical_region = world_europe_west + geographical_region = world_europe_east + geographical_region = world_steppe + geographical_region = world_tibet + } + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = winter_percentage_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + ai_will_do = { + value = 400 + if = { + limit = { + NOT = { + scope:character = { + any_sub_realm_county = { + percent >= 0.3 + culture = scope:character.culture + any_county_province = { + OR = { + geographical_region = world_europe_north + geographical_region = world_europe_west + geographical_region = world_europe_east + geographical_region = world_steppe + geographical_region = world_tibet + } + } + } + } + } + } + multiply = 0 + } + } +} + +tradition_forest_fighters = { + category = combat + + layers = { + 0 = martial + 1 = western + 4 = forest.dds + } + + can_pick = { + culture_not_pacifistic_trigger = yes + custom_description = { + text = culture_in_forest_desc + any_culture_county = { + any_county_province = { + OR = { + terrain = forest + terrain = taiga + } + } + } + } + } + parameters = { + forest_fighter_trait_more_common = yes + forest_trait_bonuses = yes + can_recruit_forest_specialist = yes + } + character_modifier = { + forest_travel_danger = forest_low_danger_reduction + taiga_travel_danger = taiga_low_danger_reduction + } + province_modifier = { + forest_levy_size = 0.1 + taiga_levy_size = 0.1 + forest_supply_limit_mult = 0.25 + taiga_supply_limit_mult = 0.25 + } + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_stoic_or_communal_desc + } + } + if = { + limit = { + NOT = { + any_culture_county = { + percent >= 0.3 + any_county_province = { + OR = { + terrain = forest + terrain = taiga + } + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = forest_percentage_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + ai_will_do = { + value = 200 + if = { + limit = { + NOT = { + scope:character = { + any_sub_realm_county = { + percent >= 0.2 + culture = scope:character.culture + any_county_province = { + OR = { + terrain = forest + terrain = taiga + } + } + } + } + } + } + multiply = 0 + } + else_if = { + limit = { + any_culture_county = { + percent >= 0.6 + any_county_province = { + OR = { + terrain = forest + terrain = taiga + } + } + } + } + multiply = 2 + } + } +} + +tradition_mountaineers = { + category = combat + + layers = { + 0 = martial + 1 = western + 4 = mountain.dds + } + + is_shown = { #Replaced by Horn Mountain Skirmishing & Caucasian Wolves + NOR = { + has_cultural_pillar = heritage_somalian + has_cultural_pillar = heritage_east_african + this = culture:georgian + any_parent_culture_or_above = { + this = culture:georgian + } + has_cultural_tradition = tradition_caucasian_wolves + has_cultural_tradition = tradition_horn_mountain_skirmishing + } + } + + can_pick = { + culture_not_pacifistic_trigger = yes + custom_description = { + text = culture_in_mountains_desc + any_culture_county = { + any_county_province = { + OR = { + terrain = mountains + terrain = desert_mountains + } + } + } + } + } + parameters = { + rough_terrain_expert_trait_more_common = yes + mountain_trait_bonuses = yes + can_recruit_mountain_specialist = yes + resistant_to_mountain_privation = yes + } + character_modifier = { + mountains_travel_danger = mountains_low_danger_reduction + desert_mountains_travel_danger = desert_mountains_low_danger_reduction + } + province_modifier = { + mountains_levy_size = 0.1 + desert_mountains_levy_size = 0.1 + mountains_supply_limit_mult = 0.25 + desert_mountains_supply_limit_mult = 0.25 + } + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_stoic_or_communal_desc + } + } + if = { + limit = { + NOT = { + any_culture_county = { + percent >= 0.3 + any_county_province = { + OR = { + terrain = mountains + terrain = desert_mountains + } + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = mountain_percentage_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + ai_will_do = { + value = 200 + if = { + limit = { + NOT = { + scope:character = { + any_sub_realm_county = { + percent >= 0.2 + culture = scope:character.culture + any_county_province = { + OR = { + terrain = mountains + terrain = desert_mountains + } + } + } + } + } + } + multiply = 0 + } + else_if = { + limit = { + scope:character.culture ?= { + any_culture_county = { + percent > 0.6 + any_county_province = { + OR = { + terrain = mountains + terrain = desert_mountains + } + } + } + } + } + multiply = 6 + } + else_if = { + limit = { + scope:character.culture ?= { + any_culture_county = { + percent > 0.4 + any_county_province = { + OR = { + terrain = mountains + terrain = desert_mountains + } + } + } + } + } + multiply = 2 + } + } +} + +tradition_warriors_of_the_dry = { + category = combat + + layers = { + 0 = martial + 1 = mena + 4 = desert.dds + } + + is_shown = { #Replaced by Mubarizuns + NOT = { has_cultural_pillar = heritage_arabic } + } + + can_pick = { + culture_not_pacifistic_trigger = yes + custom_description = { + text = culture_in_dryland_desc + any_culture_county = { + any_county_province = { + OR = { + terrain = drylands + terrain = desert + } + } + } + } + NOT = { has_cultural_tradition = tradition_mubarizuns } #To prevent stacking after hybridization + } + parameters = { + desert_warrior_trait_more_common = yes + dry_trait_bonuses = yes + can_recruit_dry_specialist = yes + } + character_modifier = { + desert_travel_danger = desert_low_danger_reduction + drylands_travel_danger = drylands_low_danger_reduction + desert_mountains_travel_danger = desert_mountains_low_danger_reduction + } + province_modifier = { + drylands_levy_size = 0.1 + desert_levy_size = 0.1 + drylands_supply_limit_mult = 0.25 + desert_supply_limit_mult = 0.25 + } + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_stoic_or_communal_desc + } + } + if = { + limit = { + NOT = { + any_culture_county = { + percent >= 0.3 + any_county_province = { + OR = { + terrain = drylands + terrain = desert + } + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = dry_percentage_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + ai_will_do = { + value = 200 + if = { + limit = { + NOT = { + scope:character = { + any_sub_realm_county = { + percent >= 0.2 + culture = scope:character.culture + any_county_province = { + OR = { + terrain = drylands + terrain = desert + } + } + } + } + } + } + multiply = 0 + } + else_if = { + limit = { + scope:character.culture ?= { + any_culture_county = { + percent > 0.6 + any_county_province = { + OR = { + terrain = drylands + terrain = desert + } + } + } + } + } + multiply = 6 + } + else_if = { + limit = { + scope:character.culture ?= { + any_culture_county = { + percent > 0.4 + any_county_province = { + OR = { + terrain = drylands + terrain = desert + } + } + } + } + } + multiply = 2 + } + } +} + +tradition_highland_warriors = { + category = combat + + layers = { + 0 = intrigue + 1 = western + 4 = mountain.dds + } + + is_shown = { #Replaced by Upland Skirmishing + NOR = { + has_cultural_pillar = heritage_west_african + has_cultural_tradition = tradition_upland_skirmishing + } + } + can_pick = { + culture_not_pacifistic_trigger = yes + custom_description = { + text = culture_in_hills_desc + any_culture_county = { + any_county_province = { + terrain = hills + } + } + } + } + + parameters = { + rough_terrain_expert_trait_more_common = yes + hill_trait_bonuses = yes + can_recruit_hill_specialist = yes + } + province_modifier = { + hills_levy_size = 0.1 + hills_supply_limit_mult = 0.25 + } + character_modifier = { + hills_travel_danger = hills_low_danger_reduction + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_stoic_or_communal_desc + } + } + if = { + limit = { + NOT = { + any_culture_county = { + percent >= 0.3 + any_county_province = { + terrain = hills + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = hill_percentage_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 100 + if = { + limit = { + NOT = { + scope:character = { + any_sub_realm_county = { + percent >= 0.2 + culture = scope:character.culture + any_county_province = { + terrain = hills + } + } + } + } + } + multiply = 0 + } + else_if = { + limit = { + scope:character.culture ?= { + any_culture_county = { + percent > 0.6 + any_county_province = { + terrain = hills + } + } + } + } + multiply = 6 + } + else_if = { + limit = { + scope:character.culture ?= { + any_culture_county = { + percent > 0.4 + any_county_province = { + terrain = hills + } + } + } + } + multiply = 2 + } + } +} + +tradition_jungle_warriors = { + category = combat + + layers = { + 0 = intrigue + 1 = mena + 4 = jungle.dds + } + + is_shown = { #Replaced by Bush Hunting + NOR = { + has_cultural_pillar = heritage_akan + has_cultural_pillar = heritage_yoruba + has_cultural_tradition = tradition_bush_hunting + } + } + + can_pick = { + culture_not_pacifistic_trigger = yes + custom_description = { + text = culture_in_jungle_desc + any_culture_county = { + any_county_province = { + terrain = jungle + } + } + } + } + parameters = { + jungle_stalker_trait_more_common = yes + jungle_trait_bonuses = yes + can_recruit_jungle_specialist = yes + } + character_modifier = { + jungle_travel_danger = jungle_low_danger_reduction + } + province_modifier = { + jungle_levy_size = 0.1 + jungle_supply_limit_mult = 0.25 + } + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_stoic_or_communal_desc + } + } + if = { + limit = { + NOT = { + any_culture_county = { + percent >= 0.3 + any_county_province = { + terrain = jungle + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = jungle_percentage_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + ai_will_do = { + value = 100 + if = { + limit = { + NOT = { + scope:character = { + any_sub_realm_county = { + percent >= 0.2 + culture = scope:character.culture + any_county_province = { + terrain = jungle + } + } + } + } + } + multiply = 0 + } + else_if = { + limit = { + scope:character.culture ?= { + any_culture_county = { + percent > 0.6 + any_county_province = { + terrain = jungle + } + } + } + } + multiply = 6 + } + else_if = { + limit = { + scope:character.culture ?= { + any_culture_county = { + percent > 0.4 + any_county_province = { + terrain = jungle + } + } + } + } + multiply = 2 + } + } +} + +tradition_only_the_strong = { + category = combat + + layers = { + 0 = martial + 1 = mena + 4 = soldiers2.dds + } + + can_pick = { + custom_description = { + text = culture_not_egalitarian + NOT = { + culture_pillar:ethos_egalitarian = { is_in_list = traits } + } + } + } + + parameters = { + minimum_prowess_for_knights = yes + blademaster_trait_bonuses = yes + prowess_from_martial_education = yes + } + province_modifier = { + levy_size = -0.25 + } + character_modifier = { + men_at_arms_recruitment_cost = 0.25 + knight_effectiveness_mult = 1 + knight_limit = 2 + accolade_glory_gain_mult = 0.2 + men_at_arms_limit = -2 + men_at_arms_cap = -1 + maa_damage_add = 8 + maa_toughness_add = 8 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_or_stoic_desc + } + } + if = { + limit = { + NOT = { + scope:character = { + any_knight = { + count >= 6 + prowess >= 12 + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = knights_with_prowess_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 200 + if = { + limit = { + scope:character = { + NOR = { + prowess >= 12 + has_trait = strong + has_trait = physique_good + } + } + } + multiply = 0.25 + } + else_if = { + limit = { + scope:character ?= { + ai_has_warlike_personality = yes + any_courtier = { + count >= 10 + prowess >= 12 + } + } + } + multiply = 4 + } + } +} + +tradition_warriors_by_merit = { + category = combat + + layers = { + 0 = martial + 1 = mediterranean + 4 = soldiers2.dds + } + + can_pick = { + + } + + parameters = { + high_prowess_ignores_knight_restrictions = yes + blademaster_traits_more_common = yes + } + character_modifier = { + prowess_per_prestige_level = 2 + accolade_glory_gain_mult = 0.1 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_egalitarian = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_egalitarian_or_communal_desc + } + } + if = { + limit = { + NOT = { + scope:character = { + any_courtier = { + count >= 5 + prowess >= 10 + is_adult = yes + NOT = { + can_be_knight_trigger = { ARMY_OWNER = prev } + } + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = courtiers_with_prowess_who_cant_be_knight_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 150 + if = { + limit = { + NOR = { + culture_pillar:ethos_egalitarian = { is_in_list = traits } + scope:character = { + NOT = { + can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = this } + } + } + } + } + multiply = 0.25 + } + else_if = { + limit = { + scope:character ?= { + ai_has_warlike_personality = yes + } + } + multiply = 4 + } + } +} + +tradition_warrior_monks = { + category = combat + + layers = { + 0 = martial + 1 = indian + 4 = temple.dds + } + + can_pick = { + + } + + parameters = { + prowess_from_religious_traits = yes + culture_clergy_can_fight = yes + monastery_prowess_martial_bonus = yes + } + character_modifier = { + prowess_per_piety_level = 1 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_spiritual = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_or_spiritual_desc + } + } + if = { + limit = { + trigger_if = { + limit = { + scope:character = { + is_ai = no + } + } + NOT = { + scope:character = { + save_temporary_scope_as = culture_head_link + faith = { + any_faith_character = { + count >= 15 + culture = scope:culture_head_link.culture + prowess >= 10 + OR = { + is_clergy = yes + has_education_learning_trigger = yes + } + } + } + } + } + } + trigger_else = { + always = no + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = culture_head_faith_clergy_prowess_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 200 + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_spiritual = { is_in_list = traits } + } + } + multiply = 0.25 + } + } +} + +tradition_talent_acquisition = { + category = combat + + layers = { + 0 = diplo + 1 = mena + 4 = greeting.dds + } + + can_pick = { + + } + + parameters = { + can_recruit_prisoners_easily = yes + better_knights_from_decision = yes + pardoning_gives_loyalty = yes + } + character_modifier = { + accolade_glory_gain_mult = 0.1 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_egalitarian = { is_in_list = traits } + culture_pillar:ethos_courtly = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_egalitarian_or_courtly_desc + } + } + if = { + limit = { + NOT = { + scope:character = { + save_temporary_scope_as = culture_head_link + any_prisoner = { + count >= 10 + NOR = { + is_courtier_of = scope:culture_head_link + is_foreign_court_or_pool_guest_of = scope:culture_head_link + } + OR = { + martial >= 12 + diplomacy >= 12 + stewardship >= 12 + intrigue >= 12 + learning >= 12 + prowess >= 12 + } + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = skilled_prisoners_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 200 + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_egalitarian = { is_in_list = traits } + culture_pillar:ethos_courtly = { is_in_list = traits } + } + } + multiply = 0.5 + } + } +} + +tradition_strength_in_numbers = { + category = combat + + layers = { + 0 = martial + 1 = mena + 4 = soldiers3.dds + } + + parameters = { + strength_in_numbers_maa_limit_bonus = yes + strength_in_numbers_heavy_maa_ban = yes + } + + province_modifier = { + levy_size = 0.25 + } + character_modifier = { + supply_limit_mult = 0.5 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_spiritual = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_or_spiritual_desc + } + } + if = { + limit = { + NOT = { + scope:character = { + number_maa_soldiers_of_base_type = { + type = skirmishers + value >= 500 + } + number_maa_soldiers_of_base_type = { + type = archers + value >= 500 + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = culture_head_small_soldiers_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 5 # The AI shouldn't really pick this very often + if = { + limit = { + OR = { + culture_has_heavy_infantry_maa = yes + culture_has_pikemen_maa = yes + culture_has_heavy_cavalry_maa = yes + } + } + multiply = 0 + } + } +} + +tradition_frugal_armorsmiths = { + category = combat + + layers = { + 0 = steward + 1 = western + 4 = shield.dds + } + + parameters = { + frugal_blacksmith_maa_size = yes + } + + character_modifier = { + army_maintenance_mult = -0.25 + men_at_arms_recruitment_cost = -0.25 + knight_effectiveness_mult = -0.6 + maa_toughness_add = -6 + levy_toughness = -8 + heavy_cavalry_toughness_add = -14 + pikemen_toughness_add = -4 + heavy_infantry_toughness_add = -4 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_stoic_or_communal_desc + } + } + if = { + limit = { + NOT = { + scope:character = { + number_maa_soldiers_of_base_type = { + type = skirmishers + value >= 500 + } + number_maa_soldiers_of_base_type = { + type = archers + value >= 500 + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = culture_head_small_soldiers_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 5 # The AI shouldn't really pick this very often + if = { + limit = { + scope:character = { + OR = { + number_maa_soldiers_of_base_type = { + type = heavy_infantry + value >= 100 + } + number_maa_soldiers_of_base_type = { + type = pikemen + value >= 100 + } + number_maa_soldiers_of_base_type = { + type = heavy_cavalry + value >= 1 + } + number_maa_soldiers_of_base_type = { + type = elephant_cavalry + value >= 1 + } + } + } + } + multiply = 0 + } + if = { + limit = { + OR = { + culture_has_heavy_infantry_maa = yes + culture_has_pikemen_maa = yes + culture_has_heavy_cavalry_maa = yes + } + } + multiply = 0 + } + } +} + +tradition_malleable_invaders = { + category = combat + + layers = { + 0 = martial + 1 = mena + 4 = diplomacy.dds + } + + is_shown = { + has_dlc_feature = hybridize_culture + } + can_pick = { + culture_in_non_sedentary_geographical_region_trigger = yes + culture_not_pacifistic_trigger = yes + } + + parameters = { + easier_to_hybridize = yes + cheaper_to_hybridize = yes + cheaper_convert_to_local_culture = yes + } + character_modifier = { + faith_conversion_piety_cost_mult = -0.2 + different_faith_county_opinion_mult = -0.2 + + ai_war_chance = 0.5 + ai_war_cooldown = -0.25 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_egalitarian = { is_in_list = traits } + culture_pillar:ethos_bureaucratic = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_egalitarian_or_bureaucratic_desc + } + } + if = { + limit = { + NOR = { + culture_pillar:heritage_turkic = { is_in_list = traits } + culture_pillar:heritage_mongolic = { is_in_list = traits } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = turkic_or_mongolic_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 0 + } +} + +tradition_quarrelsome = { + category = combat + + layers = { + 0 = martial + 1 = mediterranean + 4 = speech.dds + } + + can_pick = { + culture_not_pacifistic_trigger = yes + } + + parameters = { + can_use_conquest_cbs = yes + cb_lower_prestige_level_requirement = yes + cheaper_cbs = yes + disloyal_trait_less_spurned = yes + disloyal_trait_more_common = yes + } + character_modifier = { + monthly_county_control_growth_factor = -0.4 + + ai_honor = -20 + ai_war_chance = 0.5 + ai_war_cooldown = -0.25 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_spiritual = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_or_spiritual_desc + } + } + if = { + limit = { + trigger_if = { + limit = { + scope:character = { + is_ai = no + } + } + NOT = { + any_ruler = { + count >= 5 + culture = prev + primary_title.tier >= tier_county + is_at_war = yes + } + } + } + trigger_else = { + always = no + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = rulers_at_war_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 50 + if = { + limit = { + NOT = { + scope:character = { + government_has_flag = government_is_tribal + } + } + } + multiply = 0.25 + } + if = { + limit = { + NOR = { + culture_pillar:heritage_turkic = { is_in_list = traits } + culture_pillar:heritage_mongolic = { is_in_list = traits } + is_divergent_culture = yes + } + } + multiply = 0 + } + } +} + +tradition_swords_for_hire = { + category = combat + + layers = { + 0 = martial + 1 = indian + 4 = swords.dds + } + + is_shown = { + NOT = { has_cultural_tradition = tradition_ep3_audacious_cadets } + } + + can_pick = { + + } + + parameters = { + wanderers_gain_extra_combat_skills = yes + mercenary_courtiers_gain_extra_skills = yes + more_likely_to_leave_court = yes + unlock_voluntary_laampdom = yes + more_likely_to_be_laamps = yes + } + culture_modifier = { + mercenary_count_mult = 1 + } + character_modifier = { + same_culture_mercenary_hire_cost_mult = -0.15 + character_travel_speed_mult = 0.1 + character_travel_safety_mult = 0.1 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_courtly = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_courtly_or_communal_desc + } + } + if = { + limit = { + trigger_if = { + limit = { + scope:character = { + is_ai = no + } + } + NOT = { + any_ruler = { + count >= 5 + culture = prev + primary_title.tier >= tier_county + has_trait = education_martial_4 + } + } + } + trigger_else = { + always = no + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = rulers_with_martial_edu_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 50 + if = { + limit = { + has_cultural_pillar = heritage_central_germanic + } + multiply = 2 + } + } +} + +tradition_reverence_for_veterans = { + category = combat + + layers = { + 0 = martial + 1 = mediterranean + 4 = knight.dds + } + + parameters = { + wounds_and_scars_give_bonuses = yes + guardians_can_transfer_commander_traits = yes + warrior_lodges_lift_restrictions = yes + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + culture_pillar:ethos_egalitarian = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_egalitarian_or_stoic_desc + } + } + if = { + limit = { + trigger_if = { + limit = { + scope:character = { + is_ai = no + } + } + NOT = { + any_ruler = { + count >= 5 + culture = prev + primary_title.tier >= tier_county + OR = { + has_trait = scarred + has_trait = maimed + has_trait = one_eyed + has_trait = one_legged + has_trait = disfigured + } + } + } + } + trigger_else = { + always = no + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = rulers_with_scars_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { # Generally good & flavorful + value = 400 + } +} + +tradition_stalwart_defenders = { + category = combat + + layers = { + 0 = intrigue + 1 = mediterranean + 4 = shield.dds + } + + parameters = { + can_end_defensive_wars_earlier = yes + more_fame_for_successful_defensive_wars = yes + more_gold_for_successful_defensive_wars = yes + next_level_fortification = yes + } + character_modifier = { + defender_advantage = 5 + controlled_province_advantage = 5 + } + province_modifier = { + garrison_size = 0.25 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + culture_pillar:ethos_courtly = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_stoic_or_courtly_desc + } + } + if = { + limit = { + NOT = { + any_culture_county = { + any_county_province = { + has_building_or_higher = march_01 + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = march_building_desc + } + } + if = { + limit = { + has_variable = defensive_traditionalist_discount + } + add = { + value = traditionalist_discount + desc = traditionalist_discount_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 400 + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + scope:character = { + sub_realm_size <= medium_realm_size + } + } + } + multiply = 0.25 + } + else_if = { + limit = { + scope:character ?= { + ai_has_warlike_personality = yes + } + } + multiply = 2 + } + } +} + +tradition_battlefield_looters = { + category = combat + + layers = { + 0 = martial + 1 = mediterranean + 4 = swords.dds + } + + parameters = { + gain_gold_from_battles = yes + less_prestige_from_battles = yes + } + character_modifier = { + max_loot_mult = 0.75 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_bureaucratic = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_or_bureaucratic_desc + } + } + if = { + limit = { + trigger_if = { + limit = { + scope:character = { + is_ai = no + } + } + NOT = { + any_ruler = { + count >= 3 + culture = prev + primary_title.tier >= tier_county + OR = { + has_trait = reaver + } + } + } + } + trigger_else = { + NOR = { + culture_pillar:heritage_turkic = { is_in_list = traits } + culture_pillar:heritage_mongolic = { is_in_list = traits } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = rulers_with_reaver_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 75 + if = { + limit = { + NOR = { + culture_pillar:heritage_turkic = { is_in_list = traits } + culture_pillar:heritage_mongolic = { is_in_list = traits } + scope:character = { + government_has_flag = government_is_tribal + } + } + } + multiply = 0 + } + } +} + +tradition_hit_and_run = { + category = combat + + layers = { + 0 = martial + 1 = mediterranean + 4 = soldiers4.dds + } + + is_shown = { + NOR = { #Replaced by Konni Raids (tradition_hussar) + has_cultural_pillar = heritage_south_slavic + has_cultural_pillar = heritage_magyar + has_cultural_pillar = heritage_west_slavic + } + } + can_pick = { + trigger_if = { + limit = { + OR = { + NOT = { exists = scope:replacing } + NOT = { scope:replacing = culture_tradition:tradition_hussar } + } + } + NOT = { has_cultural_tradition = tradition_hussar } #To prevent stacking after hybridization + } + } + + # Iberian: Concurso Tactics + character_modifier = { + skirmishers_damage_add = 2 + skirmishers_screen_add = 4 + light_cavalry_damage_add = 4 + light_cavalry_screen_add = 4 + retreat_losses = -0.1 + hard_casualty_modifier = -0.1 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_egalitarian = { is_in_list = traits } + culture_pillar:ethos_spiritual = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_egalitarian_or_spiritual_desc + } + } + if = { + limit = { + NOT = { + scope:character = { + number_maa_soldiers_of_base_type = { + type = skirmishers + value >= 500 + } + number_maa_soldiers_of_base_type = { + type = light_cavalry + value >= 500 + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = culture_head_skirmishers_and_light_cav_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 200 + if = { + limit = { + NOR = { + culture_has_skirmisher_maa = yes + culture_has_light_cavalry_maa = yes + } + } + multiply = 0.25 + } + else_if = { + limit = { + scope:character ?= { + ai_has_warlike_personality = yes + } + } + multiply = 4 + } + } +} + +tradition_stand_and_fight = { + category = combat + + is_shown = { + NOR = { #Replaced by Mobile Guards + has_cultural_pillar = heritage_israelite + has_cultural_tradition = tradition_mobile_guards + } + } + + layers = { + 0 = martial + 1 = indian + 4 = battle.dds + } + + character_modifier = { + levy_toughness = 2 + maa_toughness_add = 4 + heavy_infantry_toughness_add = 4 + heavy_cavalry_toughness_add = 20 + pikemen_toughness_add = 6 + hard_casualty_modifier = 0.4 + defender_advantage = 8 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_spiritual = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_spiritual_or_stoic_desc + } + } + if = { + limit = { + NOT = { + scope:character = { + number_maa_soldiers_of_base_type = { + type = heavy_infantry + value >= 500 + } + number_maa_soldiers_of_base_type = { + type = pikemen + value >= 500 + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = culture_head_heavy_inf_and_pikemen_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 400 + if = { + limit = { + NOR = { + culture_has_heavy_infantry_maa = yes + culture_has_heavy_cavalry_maa = yes + culture_has_pikemen_maa = yes + } + } + multiply = 0.25 + } + else_if = { + limit = { + scope:character ?= { + ai_has_warlike_personality = yes + } + } + multiply = 2 + } + } +} + +tradition_adaptive_skirmishing = { + category = combat + + layers = { + 0 = intrigue + 1 = western + 4 = soldiers4.dds + } + + parameters = { + next_level_military_camps = yes + } + + character_modifier = { + enemy_terrain_advantage = -0.25 + archers_damage_add = 4 + archers_toughness_add = 2 + archers_maintenance_mult = -0.05 + skirmishers_damage_add = 2 + skirmishers_toughness_add = 4 + skirmishers_maintenance_mult = -0.05 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_spiritual = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_spiritual_or_stoic_desc + } + } + if = { + limit = { + NOT = { + scope:character = { + number_maa_soldiers_of_base_type = { + type = skirmishers + value >= 500 + } + number_maa_soldiers_of_base_type = { + type = archers + value >= 500 + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = culture_head_small_soldiers_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 400 + if = { + limit = { + scope:character = { + OR = { + number_maa_soldiers_of_base_type = { + type = heavy_infantry + value >= 200 + } + number_maa_soldiers_of_base_type = { + type = pikemen + value >= 200 + } + } + } + } + multiply = 0 + } + if = { + limit = { + OR = { + culture_has_heavy_infantry_maa = yes + culture_has_heavy_cavalry_maa = yes + } + } + multiply = 0 + } + else_if = { + limit = { + NOR = { + culture_has_archer_maa = yes + culture_has_skirmisher_maa = yes + } + } + multiply = 0.25 + } + else_if = { + limit = { + scope:character ?= { + ai_has_warlike_personality = yes + } + } + multiply = 2 + } + } +} + +tradition_formation_fighting = { + category = combat + + layers = { + 0 = martial + 1 = mediterranean + 4 = soldiers3.dds + } + + layers = { + 0 = martial + } + + parameters = { + next_level_barracks = yes + formation_fighting_strategist = yes + } + + character_modifier = { + counter_efficiency = 0.15 + pursue_efficiency = -0.15 + archers_damage_add = 2 + archers_toughness_add = 4 + pikemen_damage_add = 4 + pikemen_toughness_add = 6 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_courtly = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_courtly_or_communal_desc + } + } + if = { + limit = { + NOT = { + scope:character = { + number_maa_soldiers_of_base_type = { + type = pikemen + value >= 500 + } + number_maa_soldiers_of_base_type = { + type = archers + value >= 500 + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = culture_head_archers_and_pikemen_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 200 + if = { + limit = { + scope:character = { + OR = { + number_maa_soldiers_of_base_type = { + type = light_cavalry + value >= 300 + } + number_maa_soldiers_of_base_type = { + type = skirmishers + value >= 400 + } + } + } + } + multiply = 0 + } + if = { + limit = { + OR = { + culture_has_skirmisher_maa = yes + culture_has_light_cavalry_maa = yes + } + } + multiply = 0 + } + else_if = { + limit = { + NOR = { + culture_has_archer_maa = yes + culture_has_pikemen_maa = yes + } + } + multiply = 0.25 + } + else_if = { + limit = { + scope:character ?= { + ai_has_warlike_personality = yes + } + } + multiply = 4 + } + } +} + +tradition_horse_breeder = { + category = combat + + layers = { + 0 = steward + 1 = mena + 4 = horses.dds + } + + is_shown = { + OR = { + culture_has_light_cavalry_maa = yes + culture_has_heavy_cavalry_maa = yes + culture_has_archer_cavalry_maa = yes + } + } + + parameters = { + next_level_stables = yes + } + + character_modifier = { + light_cavalry_maintenance_mult = -0.15 + light_cavalry_recruitment_cost_mult = -0.25 + heavy_cavalry_maintenance_mult = -0.15 + heavy_cavalry_recruitment_cost_mult = -0.25 + archer_cavalry_maintenance_mult = -0.15 + archer_cavalry_recruitment_cost_mult = -0.25 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_stoic_or_communal_desc + } + } + if = { + limit = { + scope:character = { + NOR = { # Culture Head need to have a 8 sized regiment of either Light/Heavy/Archer Cavalry + number_maa_soldiers_of_base_type = { + type = light_cavalry + value >= 800 + } + number_maa_soldiers_of_base_type = { + type = heavy_cavalry + value >= 400 + } + number_maa_soldiers_of_base_type = { + type = archer_cavalry + value >= 800 + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = culture_head_cavalry_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 200 + if = { + limit = { # Reduce chance if the culture has access to other "cavalry" types + OR = { + has_innovation = innovation_war_camels + has_innovation = innovation_elephantry + } + } + multiply = 0.2 + } + else_if = { + limit = { + scope:character ?= { + ai_has_warlike_personality = yes + } + } + multiply = 2 + } + } +} + +tradition_longbow_competitions = { + category = combat + layers = { + 0 = martial + 1 = western + 4 = bow.dds + } + + is_shown = { + OR = { + has_cultural_pillar = heritage_west_germanic + has_cultural_pillar = heritage_brythonic + has_cultural_pillar = heritage_goidelic + } + } + can_pick = { + OR = { + has_cultural_pillar = heritage_west_germanic + has_cultural_pillar = heritage_brythonic + has_cultural_pillar = heritage_goidelic + } + } + + parameters = { + unlock_maa_longbowmen = yes + archer_era_improvement = yes + } + character_modifier = { + archers_max_size_add = 4 + heavy_cavalry_max_size_add = -2 + pikemen_max_size_add = -2 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + # Ethos requirement. + if = { + limit = { + NOR = { + culture_pillar:ethos_stoic = { is_in_list = traits } + culture_pillar:ethos_bureaucratic = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_stoic_or_bureaucratic_desc + } + } + # Certain number of archer MaA requirement. + if = { + limit = { + scope:character = { + number_maa_soldiers_of_base_type = { + type = archers + # Remember to sync the below with longbow_competitions_minimum_archer_maa_value. + value < 1200 + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = culture_head_lacks_archer_maa_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 800 + if = { + limit = { + OR = { + culture_has_pikemen_maa = yes + culture_has_heavy_cavalry_maa = yes + } + } + multiply = 0 + } + } +} diff --git a/common/culture/traditions/00_debug_traditions.txt b/common/culture/traditions/00_debug_traditions.txt new file mode 100644 index 00000000..e836df15 --- /dev/null +++ b/common/culture/traditions/00_debug_traditions.txt @@ -0,0 +1,28 @@ +################################ +# DEBUG CULTURAL TRADITIONS # +################################ + +# Here as a container for parameters useful for modders. +tradition_debug = { + category = regional + + layers = { + 0 = intrigue + 1 = mediterranean + 4 = crown.dds + } + + is_shown = { always = no } + can_pick = { always = no } + can_pick_for_hybridization = { always = no } + + parameters = { + culture_can_raid_over_land_even_if_feudal = yes + culture_can_raid_at_sea_even_if_feudal_no_restrictions = yes + culture_can_raid_over_land_even_if_feudal_no_restrictions = yes + } + + cost = { prestige = 300000 } + + ai_will_do = { value = 0 } +} diff --git a/common/culture/traditions/00_maa_traditions.txt b/common/culture/traditions/00_maa_traditions.txt new file mode 100644 index 00000000..69b7c31c --- /dev/null +++ b/common/culture/traditions/00_maa_traditions.txt @@ -0,0 +1,2101 @@ +####################### +# CULTURAL TRADITIONS # +####################### + +###################### +# MAA Traditions # +###################### + +tradition_futuwaa = { + category = regional + + layers = { + 0 = martial + 1 = mena + 4 = soldiers.dds + } + + is_shown = { + has_cultural_pillar = heritage_iranian + NOR = { #Replaces Martial Admiration + has_cultural_tradition = tradition_chanson_de_geste + has_cultural_tradition = tradition_druzhina + has_cultural_tradition = tradition_martial_admiration + } + } + can_pick = { + has_cultural_pillar = heritage_iranian + NOR = { #Replaces Martial Admiration + has_cultural_tradition = tradition_chanson_de_geste + has_cultural_tradition = tradition_druzhina + has_cultural_tradition = tradition_martial_admiration + } + } + + parameters = { + unlock_maa_ayyar = yes + can_use_sparring_duel = yes + martial_education_more_valued = yes + prowess_traits_more_valued = yes + blademaster_trait_bonuses = yes + craven_and_content_traits_looked_down_upon = yes + knights_slightly_more_prone_to_injury = yes + unlock_voluntary_laampdom = yes + } + character_modifier = { + knight_limit = 2 + negate_prowess_penalty_add = 5 + accolade_glory_gain_mult = 0.2 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_courtly = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_courtly_or_communal_desc + } + } + if = { + limit = { + NOT = { + scope:character = { + any_knight = { + count >= 6 + prowess >= 12 + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = knights_with_prowess_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { value = 400 } +} + +tradition_mubarizuns = { + category = regional + + layers = { + 0 = martial + 1 = mena + 4 = soldiers.dds + } + + #Can pick this if you have arabic heritage. + is_shown = { #Replaces Warriors of the Dry + has_cultural_pillar = heritage_arabic + } + can_pick = { + culture_not_pacifistic_trigger = yes + trigger_if = { + limit = { + OR = { + NOT = { exists = scope:replacing } + NOT = { scope:replacing = culture_tradition:tradition_warriors_of_the_dry } + } + } + NOT = { has_cultural_tradition = tradition_warriors_of_the_dry } #To prevent stacking after hybridization + } + } + + parameters = { + unlock_maa_mubarizun = yes + desert_warrior_trait_more_common = yes + dry_trait_bonuses = yes + can_recruit_dry_specialist = yes + } + character_modifier = { + drylands_levy_size = 0.1 + desert_levy_size = 0.1 + drylands_supply_limit_mult = 0.25 + desert_supply_limit_mult = 0.25 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_stoic_or_communal_desc + } + } + if = { + limit = { + NOT = { + any_culture_county = { + percent >= 0.3 + any_county_province = { + OR = { + terrain = drylands + terrain = desert + } + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = dry_percentage_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 400 + if = { + limit = { + NOT = { + scope:character = { + any_sub_realm_county = { + culture = scope:character.culture + any_county_province = { + OR = { + terrain = drylands + terrain = desert + } + } + } + } + } + } + multiply = 0 + } + } +} + +tradition_desert_ribat = { + category = regional + + layers = { + 0 = martial + 1 = mena + 4 = city2.dds + } + + is_shown = { + has_cultural_pillar = heritage_berber + } + can_pick = { + culture_not_pacifistic_trigger = yes + custom_description = { + text = culture_in_dryland_desc + any_culture_county = { + any_county_province = { + OR = { + terrain = drylands + terrain = desert + } + } + } + } + } + + parameters = { + unlock_maa_mulaththamun = yes #Mulaththamun + desert_warrior_trait_more_common = yes + dry_trait_bonuses = yes + can_recruit_dry_specialist = yes + mystic_trait_more_common = yes + } + character_modifier = { + prowess_per_piety_level = 1 + desert_travel_danger = desert_low_danger_reduction + drylands_travel_danger = drylands_low_danger_reduction + desert_mountains_travel_danger = desert_mountains_low_danger_reduction + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_spiritual = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_spiritual_or_stoic_desc + } + } + if = { + limit = { + NOT = { + any_culture_county = { + percent >= 0.3 + any_county_province = { + OR = { + terrain = drylands + terrain = desert + } + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = dry_percentage_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 400 + if = { + limit = { + NOT = { + scope:character = { + any_sub_realm_county = { + culture = scope:character.culture + any_county_province = { + OR = { + terrain = drylands + terrain = desert + } + } + } + } + } + } + multiply = 0 + } + } +} + +tradition_land_of_the_bow = { + category = regional + + layers = { + 0 = martial + 1 = mena + 4 = bow.dds + } + + is_shown = { + has_cultural_pillar = heritage_east_african + } + can_pick = { + has_cultural_pillar = heritage_east_african + } + + parameters = { + unlock_maa_archers_of_the_nile = yes + hunting_archery_building_bonuses = yes + } + county_modifier = { + floodplains_levy_size = 0.1 + } + province_modifier = { + garrison_size = 0.25 + } + character_modifier = { + defender_advantage = 5 + archers_damage_add = 4 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_spiritual = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_or_spiritual_desc + } + } + if = { + limit = { + NOT = { + scope:character = { + number_maa_soldiers_of_base_type = { + type = archers + value >= 800 + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = culture_head_archers_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 400 + if = { + limit = { + NOT = { + scope:character = { + any_sub_realm_county = { + culture = scope:character.culture + any_county_province = { + terrain = floodplains + } + } + } + } + } + multiply = 0 + } + } +} + +tradition_druzhina = { + category = regional + + layers = { + 0 = martial + 1 = western + 4 = shield.dds + } + + #East Slavic + #This replaces Martial Admiration + is_shown = { + has_cultural_pillar = heritage_east_slavic + NOR = { #Replaces Martial Admiration + has_cultural_tradition = tradition_futuwaa + has_cultural_tradition = tradition_chanson_de_geste + has_cultural_tradition = tradition_martial_admiration + } + } + can_pick = { + has_cultural_pillar = heritage_east_slavic + NOR = { #Replaces Martial Admiration + has_cultural_tradition = tradition_futuwaa + has_cultural_tradition = tradition_chanson_de_geste + has_cultural_tradition = tradition_martial_admiration + } + } + + parameters = { + unlock_maa_druzhina = yes + martial_education_more_valued = yes + prowess_traits_more_valued = yes + blademaster_trait_bonuses = yes + craven_and_content_traits_looked_down_upon = yes + knights_slightly_more_prone_to_injury = yes + can_duel_rivals = yes + } + character_modifier = { + knight_limit = 2 + negate_prowess_penalty_add = 5 + accolade_glory_gain_mult = 0.2 + heavy_infantry_toughness_add = 2 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_or_stoic_desc + } + } + if = { + limit = { + NOT = { + scope:character = { + any_knight = { + count >= 6 + prowess >= 12 + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = knights_with_prowess_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { value = 400 } +} + +tradition_hussar = { #Konni Raids + category = regional + + layers = { + 0 = martial + 1 = western + 4 = rider.dds + } + + #This replaces Hit and Run + is_shown = { + OR = { + has_cultural_pillar = heritage_south_slavic + has_cultural_pillar = heritage_magyar + has_cultural_pillar = heritage_west_slavic + } + } + can_pick = { + trigger_if = { + limit = { + OR = { + NOT = { exists = scope:replacing } + NOT = { scope:replacing = culture_tradition:tradition_hit_and_run } + } + } + NOT = { has_cultural_tradition = tradition_hit_and_run } #To prevent stacking after hybridization + } + } + + parameters = { + unlock_maa_hussar = yes + } + character_modifier = { + skirmishers_screen_add = 2 + light_cavalry_damage_add = 6 + light_cavalry_screen_add = 6 + retreat_losses = -0.1 + hard_casualty_modifier = -0.1 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOT = { + culture_pillar:ethos_stoic = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_stoic_desc + } + } + if = { + limit = { + NOT = { + scope:character = { + number_maa_soldiers_of_base_type = { + type = light_cavalry + value >= 500 + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = culture_head_light_cavalry_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { value = 400 } +} + +tradition_horn_mountain_skirmishing = { + category = regional + + layers = { + 0 = steward + 1 = mena + 4 = desert_mountains.dds + } + + #In the Horn of Africa this replaces the Mountaineers tradition + is_shown = { + OR ={ + has_cultural_pillar = heritage_somalian + has_cultural_pillar = heritage_east_african + } + NOR = { + has_cultural_tradition = tradition_mountaineers + has_cultural_tradition = tradition_caucasian_wolves + } + } + can_pick = { + custom_description = { + text = culture_in_mountains_desc + any_culture_county = { + any_county_province = { + OR = { + terrain = mountains + terrain = desert_mountains + } + } + } + } + } + + parameters = { + unlock_maa_horn_warrior = yes + rough_terrain_expert_trait_more_common = yes + mountain_trait_bonuses = yes + can_recruit_mountain_specialist = yes + } + province_modifier = { + mountains_levy_size = 0.1 + desert_mountains_levy_size = 0.1 + mountains_supply_limit_mult = 0.25 + desert_mountains_supply_limit_mult = 0.25 + } + character_modifier = { + mountains_travel_danger = mountains_medium_danger_reduction + desert_mountains_travel_danger = desert_mountains_medium_danger_reduction + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_spiritual = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_spiritual_or_communal_desc + } + } + if = { + limit = { + NOT = { + any_culture_county = { + percent >= 0.3 + any_county_province = { + OR = { + terrain = mountains + terrain = desert_mountains + } + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = mountain_percentage_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 400 + if = { + limit = { + NOT = { + scope:character = { + any_sub_realm_county = { + culture = scope:character.culture + any_county_province = { + OR = { + terrain = mountains + terrain = desert_mountains + } + } + } + } + } + } + multiply = 0 + } + } +} + +tradition_bush_hunting = { + category = regional + + layers = { + 0 = martial + 1 = mena + 4 = jungle.dds + } + + #Replaces Jungle Warriors + is_shown = { + OR = { + has_cultural_pillar = heritage_akan + has_cultural_pillar = heritage_yoruba + } + NOT = { has_cultural_tradition = tradition_jungle_warriors } + } + can_pick = { + } + + parameters = { + unlock_maa_bush_hunter = yes + jungle_trait_bonuses = yes + dry_trait_bonuses = yes + can_recruit_jungle_specialist = yes + } + character_modifier = { + archers_damage_add = 4 + jungle_supply_limit_mult = 0.25 + jungle_travel_danger = jungle_medium_danger_reduction + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_communal = { is_in_list = traits } + culture_pillar:ethos_egalitarian = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_communal_or_egalitarian_desc + } + } + if = { + limit = { + NOT = { + any_culture_county = { + percent >= 0.3 + any_county_province = { + terrain = jungle + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = jungle_percentage_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 400 + if = { + limit = { + NOT = { + scope:character = { + any_sub_realm_county = { + culture = scope:character.culture + any_county_province = { + terrain = jungle + } + } + } + } + } + multiply = 0 + } + } +} + +tradition_mobile_guards = { + category = regional + + layers = { + 0 = martial + 1 = mena + 4 = forest.dds + } + + #Replaces Stand and Fight + is_shown = { + has_cultural_pillar = heritage_israelite + NOT = { has_cultural_tradition = tradition_stand_and_fight } + } + can_pick = { + } + + parameters = { + unlock_maa_shomer = yes + } + character_modifier = { + maa_toughness_add = 4 + heavy_infantry_toughness_add = 4 + heavy_infantry_maintenance_mult = 0.1 + heavy_cavalry_toughness_add = 20 + heavy_cavalry_maintenance_mult = 0.1 + pikemen_toughness_add = 6 + pikemen_maintenance_mult = 0.1 + hard_casualty_modifier = 0.25 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOT = { + culture_pillar:ethos_communal = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_communal_desc + } + } + if = { + limit = { + NOT = { + scope:character = { + number_maa_soldiers_of_base_type = { + type = skirmishers + value >= 800 + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = culture_head_skirmishers_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 400 + if = { + limit = { + NOR = { + culture_has_heavy_infantry_maa = yes + culture_has_heavy_cavalry_maa = yes + culture_has_pikemen_maa = yes + } + OR = { + culture_has_skirmisher_maa = yes + culture_has_archer_maa = yes + culture_has_light_cavalry_maa = yes + culture_has_archer_cavalry_maa = yes + } + } + multiply = 0.25 + } + } +} + +tradition_khadga_puja = { + category = regional + + layers = { + 0 = martial + 1 = mena + 4 = soldiers2.dds + } + + is_shown = { + has_cultural_pillar = heritage_indo_aryan + } + can_pick = { + custom_description = { + text = culture_not_egalitarian + NOT = { + culture_pillar:ethos_egalitarian = { is_in_list = traits } + } + } + } + + parameters = { + martial_education_more_valued = yes + unlock_maa_khandayat = yes + blademaster_trait_bonuses = yes + craven_and_content_traits_looked_down_upon = yes + } + province_modifier = { + } + character_modifier = { + knight_effectiveness_mult = 0.1 + accolade_glory_gain_mult = 0.1 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_or_stoic_desc + } + } + if = { + limit = { + NOT = { + scope:character = { + any_knight = { + count >= 6 + prowess >= 12 + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = knights_with_prowess_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 400 + } +} + +tradition_garuda_warriors = { + category = regional + + layers = { + 0 = martial + 1 = indian + 4 = soldiers2.dds + } + + is_shown = { + has_cultural_pillar = heritage_dravidian + } + can_pick = { + } + + parameters = { + unlock_maa_garudas = yes + unlock_garuda_warrior_title = yes + martial_education_more_valued = yes + prowess_traits_more_valued = yes + craven_and_content_traits_looked_down_upon = yes + loyal_trait_more_valued = yes + } + character_modifier = { + accolade_glory_gain_mult = 0.1 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_or_stoic_desc + } + } + if = { + limit = { + NOT = { + scope:character = { + any_knight = { + count >= 6 + prowess >= 12 + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = knights_with_prowess_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 400 + } +} + +tradition_burman_royal_army = { + category = regional + + layers = { + 0 = martial + 1 = indian + 4 = elephant.dds + } + + is_shown = { + has_cultural_pillar = heritage_burman + } + can_pick = { + has_cultural_pillar = heritage_burman + } + + parameters = { + unlock_maa_palace_guards = yes + jungle_stalker_trait_more_common = yes + jungle_trait_bonuses = yes + can_recruit_jungle_specialist = yes + } + character_modifier = { + elephant_cavalry_damage_add = 60 + elephant_cavalry_toughness_add = 20 + jungle_travel_danger = jungle_medium_danger_reduction + accolade_glory_gain_mult = 0.1 + } + province_modifier = { + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOT = { + culture_pillar:ethos_spiritual = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_spiritual_desc + } + } + if = { + limit = { + NOT = { + scope:character = { + number_maa_soldiers_of_base_type = { + type = elephant_cavalry + value >= 5 + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = culture_head_has_elephants_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 400 + } +} + +tradition_mountain_herding = { + category = regional + + layers = { + 0 = martial + 1 = mena + 4 = desert_mountains.dds + } + + #Replaces Mountain Homes + is_shown = { + OR ={ + has_cultural_pillar = heritage_arabic + has_cultural_pillar = heritage_berber + } + } + can_pick = { + OR ={ + has_cultural_pillar = heritage_arabic + has_cultural_pillar = heritage_berber + } + culture_not_pacifistic_trigger = yes + custom_description = { + text = culture_in_mountains_desc + any_culture_county = { + any_county_province = { + OR = { + terrain = mountains + terrain = desert_mountains + } + } + } + } + } + + parameters = { + unlock_maa_abudrar = yes + rough_terrain_expert_trait_more_common = yes + desert_warrior_trait_more_common = yes + mountain_trait_bonuses = yes + can_recruit_mountain_specialist = yes + } + character_modifier = { + mountains_travel_danger = mountains_high_danger_reduction + desert_mountains_travel_danger = desert_mountains_high_danger_reduction + } + county_modifier = { + desert_mountains_development_growth_factor = 0.35 + } + province_modifier = { + desert_mountains_construction_gold_cost = -0.1 + desert_mountains_holding_construction_gold_cost = -0.1 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_stoic_or_communal_desc + } + } + if = { + limit = { + NOT = { + any_culture_county = { + percent >= 0.3 + any_county_province = { + terrain = desert_mountains + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = mountain_percentage_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + ai_will_do = { + value = 400 + if = { + limit = { + NOT = { + scope:character = { + any_sub_realm_county = { + culture = scope:character.culture + any_county_province = { + terrain = desert_mountains + } + } + } + } + } + multiply = 0 + } + } +} + +tradition_forest_wardens = { + category = regional + + layers = { + 0 = martial + 1 = western + 4 = forest.dds + } + + #Replaces Forest Folk + is_shown = { + OR = { + has_cultural_pillar = heritage_balto_finnic + has_cultural_pillar = heritage_volga_finnic + has_cultural_pillar = heritage_ugro_permian + has_cultural_pillar = heritage_baltic + } + NOT = { has_cultural_tradition = tradition_forest_folk } + } + can_pick = { + OR = { + has_cultural_pillar = heritage_balto_finnic + has_cultural_pillar = heritage_volga_finnic + has_cultural_pillar = heritage_ugro_permian + has_cultural_pillar = heritage_baltic + } + custom_description = { + text = culture_in_forest_desc + any_culture_county = { + any_county_province = { + OR = { + terrain = forest + terrain = taiga + } + } + } + } + } + + parameters = { + unlock_maa_metsanvartija = yes + logging_camps_building_bonuses = yes + can_recruit_forest_specialist = yes + forest_fighter_trait_more_common = yes + forest_hunt_success_chance = yes + watermills_forestries_unlock = yes + } + character_modifier = { + forest_travel_danger = forest_high_danger_reduction + taiga_travel_danger = taiga_high_danger_reduction + } + county_modifier = { + forest_development_growth_factor = 0.15 + taiga_development_growth_factor = 0.15 + } + province_modifier = { + forest_construction_gold_cost = -0.1 + taiga_construction_gold_cost = -0.1 + forest_holding_construction_gold_cost = -0.1 + taiga_holding_construction_gold_cost = -0.1 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_stoic_or_communal_desc + } + } + if = { + limit = { + NOT = { + any_culture_county = { + percent >= 0.3 + any_county_province = { + OR = { + terrain = forest + terrain = taiga + } + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = forest_percentage_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 400 + if = { + limit = { + NOT = { + scope:character = { + any_sub_realm_county = { + culture = scope:character.culture + any_county_province = { + OR = { + terrain = forest + terrain = taiga + } + } + } + } + } + } + multiply = 0 + } + } +} + +tradition_upland_skirmishing = { + category = regional + + layers = { + 0 = martial + 1 = western + 4 = forest.dds + } + + #Replaces Highland Warriors + is_shown = { + has_cultural_pillar = heritage_west_african + NOT = { has_cultural_tradition = tradition_highland_warriors } + } + can_pick = { + has_cultural_pillar = heritage_west_african + custom_description = { + text = culture_in_hills_desc + any_culture_county = { + any_county_province = { + terrain = hills + } + } + } + } + + parameters = { + unlock_maa_guinea_warrior = yes + hill_farms_building_bonuses = yes + + rough_terrain_expert_trait_more_common = yes + hill_trait_bonuses = yes + can_recruit_hill_specialist = yes + } + character_modifier = { + hills_travel_danger = hills_medium_danger_reduction + forest_travel_danger = forest_medium_danger_reduction + } + province_modifier = { + hills_levy_size = 0.1 + hills_supply_limit_mult = 0.25 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_communal = { is_in_list = traits } + culture_pillar:ethos_egalitarian = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_communal_or_egalitarian_desc + } + } + if = { + limit = { + NOT = { + any_culture_county = { + percent >= 0.3 + any_county_province = { + terrain = hills + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = hill_percentage_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 400 + if = { + limit = { + NOT = { + scope:character = { + any_sub_realm_county = { + culture = scope:character.culture + any_county_province = { + terrain = hills + } + } + } + } + } + multiply = 0 + } + } +} + +tradition_strong_kinship = { #There can be only one! + category = regional + + layers = { + 0 = martial + 1 = western + 4 = conversation.dds + } + + is_shown = { + OR = { + this = culture:gaelic + this = culture:scottish + any_parent_culture_or_above = { + OR = { + this = culture:gaelic + this = culture:scottish + } + } + } + } + can_pick = { + OR = { + this = culture:gaelic + this = culture:scottish + any_parent_culture_or_above = { + OR = { + this = culture:gaelic + this = culture:scottish + } + } + } + } + + parameters = { + unlock_schiltron_innovation = yes + bonuses_from_patriarch_matriarch_trait = yes + cultural_house_personal_scheme_success_chance = yes + landing_house_members_give_prestige = yes + penalty_for_revoking_titles_from_house_members = yes + loyal_trait_more_common = yes + } + character_modifier = { + dynasty_house_opinion = 15 + opinion_of_liege = -10 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + culture_pillar:ethos_bureaucratic = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_stoic_or_bureaucratic_desc + } + } + if = { + limit = { + exists = scope:character.house + NOT = { + scope:character.house = { + any_house_member = { + count >= 3 + has_relation_friend = scope:character + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = house_friends_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 400 + } +} + +tradition_amharic_highlanders = { #Ethiopian Unique Tradition, replaces hill dwellers, Unlocks MAA innovation & Castration + category = realm + + layers = { + 0 = steward + 1 = mena + 4 = mountain.dds + } + + is_shown = { + NOT = { has_cultural_tradition = tradition_hill_dwellers } + OR = { + this = culture:ethiopian + any_parent_culture_or_above = { + this = culture:ethiopian + } + } + } + can_pick = { + NOT = { has_cultural_tradition = tradition_hill_dwellers } + OR = { + this = culture:ethiopian + any_parent_culture_or_above = { + this = culture:ethiopian + } + } + custom_description = { + text = culture_in_hills_desc + any_culture_county = { + any_county_province = { + terrain = hills + } + } + } + } + + parameters = { + unlock_sarawit_innovation = yes + can_castrate_prisoners = yes + hill_farms_building_bonuses = yes + } + county_modifier = { + hills_development_growth_factor = 0.2 + } + province_modifier = { + hills_construction_gold_cost = -0.1 + hills_holding_construction_gold_cost = -0.1 + } + character_modifier = { + hills_advantage = 5 + hills_travel_danger = hills_high_danger_reduction + mountains_travel_danger = mountains_low_danger_reduction + desert_mountains_travel_danger = desert_mountains_low_danger_reduction + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOT = { + culture_pillar:ethos_spiritual = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_spiritual_desc + } + } + if = { + limit = { + NOT = { + any_culture_county = { + percent >= 0.3 + any_county_province = { + terrain = hills + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = hill_percentage_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 400 + if = { + limit = { + NOT = { + scope:character = { + any_sub_realm_county = { + percent >= 0.2 + culture = scope:character.culture + any_county_province = { + terrain = hills + } + } + } + } + } + multiply = 0 + } + } +} + + +tradition_polders = { #Dutch Unique Tradition, bonuses to buildings along coastline, Unlocks MAA innovation + category = realm + + layers = { + 0 = steward + 1 = mena + 4 = svamp.dds + } + + is_shown = { + OR = { + this = culture:dutch + any_parent_culture_or_above = { + this = culture:dutch + } + } + } + can_pick = { + OR = { + this = culture:dutch + any_parent_culture_or_above = { + this = culture:dutch + } + } + custom_description = { + text = culture_on_coast_desc + any_culture_county = { + any_county_province = { + is_coastal = yes + } + } + } + } + + parameters = { + unlock_adaptive_militia_innovation = yes + coastal_agriculture_building_bonuses = yes + coastal_holding_bonuses = yes + } + character_modifier = { + skirmishers_damage_add = 4 + skirmishers_screen_add = 4 + coastal_sea_travel_danger = low_sea_danger_reduction + wetlands_travel_danger = wetlands_medium_danger_reduction + floodplains_travel_danger = floodplains_medium_danger_reduction + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_communal = { is_in_list = traits } + culture_pillar:ethos_bureaucratic = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_communal_bureaucratic_or_stoic_desc + } + } + if = { + limit = { + NOT = { + any_culture_county = { + percent >= 0.3 + any_county_province = { + is_coastal = yes + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = coastal_percentage_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 400 + if = { + limit = { + NOT = { + scope:character = { + any_sub_realm_county = { + percent >= 0.3 + any_county_province = { + is_coastal = yes + } + } + } + } + } + multiply = 0 + } + if = { + limit = { + scope:character = { + any_sub_realm_county = { + percent >= 0.6 + any_county_province = { + is_coastal = yes + } + } + } + } + multiply = 3 + } + } +} + +tradition_caucasian_wolves = { + category = regional + + layers = { + 0 = steward + 1 = mena + 4 = mountain.dds + } + + #For Georgians this replaces the Mountaineers tradition + is_shown = { + OR = { + this = culture:georgian + any_parent_culture_or_above = { + this = culture:georgian + } + } + NOR = { + has_cultural_tradition = tradition_mountaineers + has_cultural_tradition = tradition_horn_mountain_skirmishing + } + } + can_pick = { + custom_description = { + text = culture_in_mountains_desc + any_culture_county = { + any_county_province = { + OR = { + terrain = mountains + terrain = desert_mountains + } + } + } + } + } + + parameters = { + unlock_maa_monaspa = yes + rough_terrain_expert_trait_more_common = yes + mountain_trait_bonuses = yes + can_recruit_mountain_specialist = yes + } + province_modifier = { + mountains_levy_size = 0.1 + desert_mountains_levy_size = 0.1 + mountains_supply_limit_mult = 0.25 + desert_mountains_supply_limit_mult = 0.25 + } + character_modifier = { + mountains_travel_danger = mountains_medium_danger_reduction + desert_mountains_travel_danger = desert_mountains_medium_danger_reduction + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_stoic_or_communal_desc + } + } + if = { + limit = { + NOT = { + any_culture_county = { + percent >= 0.3 + any_county_province = { + OR = { + terrain = mountains + terrain = desert_mountains + } + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = mountain_percentage_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 1000 + if = { + limit = { + NOT = { + scope:character = { + any_sub_realm_county = { + culture = scope:character.culture + any_county_province = { + OR = { + terrain = mountains + terrain = desert_mountains + } + } + } + } + } + } + multiply = 0 + } + } +} + +tradition_hird = { + category = regional + + layers = { + 0 = martial + 1 = mena + 4 = viking.dds + } + + is_shown = { #Replaces Warrior Culture + NOR = { + has_cultural_tradition = tradition_warrior_culture + has_cultural_tradition = tradition_fp1_coastal_warriors + } + OR = { + AND = { + has_cultural_pillar = heritage_north_germanic + has_fp1_dlc_trigger = no + } + any_parent_culture_or_above = { + OR = { + this = culture:old_saxon + this = culture:norse #For instance Norman culture + } + } + } + } + can_pick = { + culture_not_pacifistic_trigger = yes + scope:character = { + government_has_flag = government_is_tribal + } + } + + parameters = { + unlock_maa_huscarls = yes + strong_traits_more_valued = yes + strong_traits_more_common = yes + weak_traits_looked_down_upon = yes + rowdy_trait_more_common = yes + pensive_trait_less_common = yes + cultrad_unlocks_t2_redouble_guards = yes + unlock_voluntary_laampdom = yes + more_likely_to_be_laamps = yes + } + character_modifier = { + cultural_head_fascination_mult = -0.05 + knight_limit = 1 + prowess = 2 + ai_boldness = 25 + accolade_glory_gain_mult = 0.1 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_spiritual = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_or_spiritual_desc + } + } + if = { + limit = { + trigger_if = { + limit = { + scope:character = { + is_ai = no + } + } + NOT = { + any_ruler = { + count >= 3 + culture = prev + primary_title.tier >= tier_county + OR = { + has_trait = strong + has_trait = physique_good + } + } + } + } + trigger_else = { + always = no + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = strong_rulers_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 400 + if = { + limit = { + NOT = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + } + } + multiply = 0 + } + } +} + + +tradition_chanson_de_geste = { +#Replaces Martial Admiration + category = regional + + layers = { + 0 = martial + 1 = indian + 4 = knight.dds + } + + is_shown = { + has_cultural_pillar = heritage_frankish + NOR = { #Replaces Martial Admiration + has_cultural_tradition = tradition_futuwaa + has_cultural_tradition = tradition_druzhina + has_cultural_tradition = tradition_martial_admiration + } + } + can_pick = { + has_cultural_pillar = heritage_frankish + NOR = { #Replaces Martial Admiration + has_cultural_tradition = tradition_futuwaa + has_cultural_tradition = tradition_druzhina + has_cultural_tradition = tradition_martial_admiration + } + } + + parameters = { + unlock_valets_innovation = yes + poet_trait_gives_bonuses = yes + poet_trait_more_common = yes + martial_education_more_valued = yes + prowess_traits_more_valued = yes + blademaster_trait_bonuses = yes + craven_and_content_traits_looked_down_upon = yes + knights_slightly_more_prone_to_injury = yes + can_duel_rivals = yes + can_host_joust_contests = yes + knight_errant_trait_bonuses = yes + } + character_modifier = { + knight_limit = 2 + negate_prowess_penalty_add = 5 # Wounded knights fight better! + accolade_glory_gain_mult = 0.2 + owned_legend_spread_mult = 0.05 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + culture_pillar:ethos_courtly = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_stoic_or_courtly_desc + } + } + if = { + limit = { + NOT = { + scope:character = { + any_knight = { + count >= 6 + prowess >= 12 + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = knights_with_prowess_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { value = 400 } +} diff --git a/common/culture/traditions/00_realm_traditions.txt b/common/culture/traditions/00_realm_traditions.txt new file mode 100644 index 00000000..2fd10e17 --- /dev/null +++ b/common/culture/traditions/00_realm_traditions.txt @@ -0,0 +1,3586 @@ +############################# +# REALM CULTURAL TRADITIONS # +############################# + +tradition_court_eunuchs = { + category = realm + + layers = { + 0 = intrigue + 1 = mediterranean + 4 = ceremony.dds + } + + can_pick = { + custom_tooltip = { + text = cannot_have_tradition_byzantine_succession + NOT = { culture_tradition:tradition_byzantine_succession = { is_in_list = traits } } + } + custom_tooltip = { + scope:character = { + OR = { + any_courtier = { is_eunuch_trigger = yes } + any_vassal = { is_eunuch_trigger = yes } + any_councillor = { is_eunuch_trigger = yes } + } + } + text = no_eunuch_in_realms + } + } + + parameters = { + can_castrate_prisoners = yes + eunuch_trait_bonuses = yes + can_appoint_chief_eunuch = yes + family_castration = yes + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_courtly = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + culture_pillar:ethos_spiritual = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_courtly_communal_or_spiritual_desc + } + } + if = { + limit = { + NOT = { + scope:character = { + any_councillor = { is_eunuch_trigger = yes } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = no_eunuch_councillors_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 50 + if = { + limit = { + NOT = { + scope:character = { + any_councillor = { is_eunuch_trigger = yes } + } + } + } + multiply = 0 + } + } +} + +tradition_legalistic = { + category = realm + + layers = { + 0 = learning + 1 = mediterranean + 4 = quill.dds + } + + is_shown = { # strict laws are heavily tied to the Religion during this era + scope:character.faith = { + OR = { + has_doctrine = doctrine_spiritual_head + has_doctrine = doctrine_temporal_head + } + } + } + + parameters = { + cheaper_to_change_laws = yes + just_trait_more_common = yes + just_trait_gives_bonuses = yes + vassals_more_likely_accept_punishments = yes + legalistic_administrator_bonuses = yes + } + character_modifier = { + title_creation_cost_mult = -0.3 + vassal_limit = 30 + monthly_prestige_gain_per_dread_mult = -0.01 + tyranny_gain_mult = 0.25 + tax_slot_add = 1 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_communal = { is_in_list = traits } + culture_pillar:ethos_egalitarian = { is_in_list = traits } + culture_pillar:ethos_courtly = { is_in_list = traits } } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_communal_egalitarian_or_courtly_desc + } + } + if = { + limit = { + NOT = { + has_innovation = innovation_baliffs + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = lacks_baliffs_innovation_desc + } + } + if = { + limit = { + NOT = { + has_innovation = innovation_development_02 + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = lacks_development_02_innovation_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 50 + if = { + limit = { + scope:character = { + any_vassal = { + count < 30 + } + } + } + multiply = 0.5 + } + if = { + limit = { + NOR = { + has_innovation = innovation_baliffs + has_innovation = innovation_development_02 + } + } + multiply = 0.25 + } + } +} + +tradition_republican_legacy = { + category = regional + + layers = { + 0 = steward + 1 = mediterranean + 4 = laurel.dds + } + + is_shown = { + OR ={ + this = culture:roman + any_parent_culture_or_above = { + this = culture:roman + } + } + NOT = { has_cultural_tradition = tradition_parochialism } + } + can_pick = { + OR ={ + this = culture:roman + any_parent_culture_or_above = { + this = culture:roman + } + } + NOT = { has_cultural_tradition = tradition_parochialism } + } + + parameters = { + can_make_republican_vassals = yes + unlock_innovation_pike_columns = yes + city_buildings_more_powerful = yes + city_buildings_less_control = yes + republican_vassals_pay_more = yes + more_parochial_vassals = yes + next_level_cities = yes + } + character_modifier = { + city_holding_build_gold_cost = -0.05 + city_holding_holding_build_gold_cost = -0.05 + barons_and_minor_landholders_opinion = -20 + parochial_opinion = -20 + parochial_tax_contribution_mult = 0.1 + parochial_levy_contribution_mult = 0.1 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_courtly = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + culture_pillar:ethos_spiritual = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_courtly_communal_or_spiritual_desc + } + } + if = { + limit = { + NOT = { + scope:character = { + any_sub_realm_county = { + percent >= 0.9 + culture = scope:character.culture + any_county_province = { + has_holding_type = city_holding + } + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = 90_percent_cities_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 200 + if = { + limit = { + NOT = { + scope:character = { + any_sub_realm_county = { + percent >= 0.15 + culture = scope:character.culture + any_county_province = { + has_holding_type = city_holding + } + } + } + } + } + multiply = 0 + } + if = { + limit = { + NOT = { + scope:character = { + any_vassal = { + primary_title.tier > tier_county + government_has_flag = government_is_republic + } + } + } + } + multiply = 0 + } + } +} + +tradition_hereditary_hierarchy = { + category = realm + + layers = { + 0 = diplo + 1 = western + 4 = king.dds + } + + can_pick = { + scope:character = { + government_has_flag = government_is_feudal + } + } + + parameters = { + poorly_educated_leaders_distrusted = yes + loyal_trait_more_valued = yes + } + character_modifier = { + castle_holding_holding_build_gold_cost = -0.05 + feudal_government_tax_contribution_mult = 0.1 + long_reign_bonus_mult = 0.25 + tyranny_loss_mult = -0.5 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_courtly = { is_in_list = traits } + culture_pillar:ethos_spiritual = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_courtly_or_spiritual_desc + } + } + if = { + limit = { + NOT = { + scope:character = { + primary_title.tier >= tier_kingdom + any_vassal = { + count >= 10 + primary_title.tier >= tier_county + government_has_flag = government_is_feudal + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = king_with_vassals_desc + } + } + if = { + limit = { + OR = { + has_variable = defensive_traditionalist_discount + has_variable = aggressive_traditionalist_discount + } + } + add = { + value = traditionalist_discount + desc = traditionalist_discount_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 50 + if = { + limit = { + NOT = { + scope:character.primary_title.tier >= tier_kingdom + } + } + multiply = 0 + } + } +} + +tradition_esteemed_hospitality = { + category = realm + + layers = { + 0 = diplo + 1 = mena + 4 = greeting.dds + } + + is_shown = { + } + can_pick = { + } + + parameters = { + courtiers_and_guests_less_likely_to_join_schemes = yes + cheaper_guest_recruitment = yes + cheaper_court_positions = yes + more_hostage_acceptance = yes + } + character_modifier = { + courtier_and_guest_opinion = 10 + owned_personal_scheme_success_chance_add = 5 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_courtly = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + culture_pillar:ethos_spiritual = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_courtly_communal_or_spiritual_desc + } + } + if = { + limit = { + NOT = { + has_cultural_pillar = heritage_iranian + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = iranian_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 50 + if = { + limit = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + } + multiply = 0 + } + } +} + +tradition_gardening = { + category = realm + + layers = { + 0 = steward + 1 = mediterranean + 4 = garden_architects.dds + } + + parameters = { + enable_garden_duchy_building = yes + can_appoint_court_gardener = yes + can_recruit_gardeners = yes + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_courtly = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + culture_pillar:ethos_spiritual = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_courtly_communal_or_spiritual_desc + } + } + if = { + limit = { + NOT = { + any_culture_county = { + count >= 10 + any_county_province = { + OR = { + has_building_or_higher = orchards_01 + has_building_or_higher = plantations_01 + has_building_or_higher = cereal_fields_01 + } + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = gardening_buildings_percentage_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 50 + if = { + limit = { + NOT = { + culture_pillar:ethos_courtly = { is_in_list = traits } + } + } + multiply = 0 + } + } +} + +tradition_tribe_unity = { + category = realm + + layers = { + 0 = martial + 1 = mena + 4 = crown.dds + } + + is_shown = { #Replaced by Strong Kinship + NOR = { + this = culture:gaelic + this = culture:scottish + any_parent_culture_or_above = { + OR = { + this = culture:gaelic + this = culture:scottish + } + } + } + } + can_pick = { + custom_tooltip = { + text = requires_tribal_or_clan_government_trigger + scope:character = { + OR = { + government_has_flag = government_is_clan + government_has_flag = government_is_tribal + } + } + } + } + + parameters = { + bonuses_from_patriarch_matriarch_trait = yes + cultural_house_personal_scheme_success_chance = yes + landing_house_members_give_prestige = yes + penalty_for_revoking_titles_from_house_members = yes + loyal_trait_more_valued = yes + tribal_holding_stationed_bonus = yes + } + character_modifier = { + dynasty_house_opinion = 10 + opinion_of_liege = -5 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_communal = { is_in_list = traits } + culture_pillar:ethos_spiritual = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_communal_spiritual_or_stoic_desc + } + } + if = { + limit = { + exists = scope:character.house + NOT = { + scope:character.house = { + any_house_member = { + count >= 3 + has_relation_friend = scope:character + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = house_friends_desc + } + } + if = { + limit = { + has_variable = defensive_traditionalist_discount + } + add = { + value = traditionalist_discount + desc = traditionalist_discount_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 200 + if = { + limit = { + NOT = { + scope:character = { + OR = { + government_has_flag = government_is_clan + government_has_flag = government_is_tribal + government_has_flag = government_is_administrative + } + } + } + } + multiply = 0 + } + } +} + +tradition_astute_diplomats = { + category = realm + + layers = { + 0 = diplo + 1 = western + 4 = diplomat.dds + } + + parameters = { + cannot_attack_allies = yes + cannot_attack_truces = yes + facilitate_alliance_acceptance = yes + facilitate_white_peace = yes + extra_language_cap_2 = yes + astute_diplomat_bonus = yes + cultrad_unlocks_t4_bounties_for_whispers = yes + } + + character_modifier = { + learn_language_scheme_phase_duration_add = medium_scheme_phase_duration_bonus_value + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = culture_not_bellicose + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { value = 100 } +} + +tradition_collective_lands = { + category = realm + + layers = { + 0 = learning + 1 = indian + 4 = farmland.dds + } + + parameters = { + grants_to_lowborns_bonuses = yes + collective_lands_farms_bonuses = yes + peasant_leader_is_inherited = yes + } + county_modifier = { + development_growth_factor = 0.1 + monthly_county_control_growth_factor = -0.2 + build_speed = 0.2 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_communal = { is_in_list = traits } + culture_pillar:ethos_egalitarian = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_communal_egalitarian_or_stoic_desc + } + } + if = { + limit = { + trigger_if = { + limit = { + scope:character = { + is_ai = no + } + } + NOT = { + any_ruler = { + count >= 2 + culture = prev + primary_title.tier >= tier_county + has_trait = peasant_leader + } + } + } + trigger_else = { + always = yes + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = rulers_with_peasant_leader_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 800 + if = { + limit = { + NOT = { + scope:character = { + OR = { + has_trait = peasant_leader + any_parent = { + has_trait = peasant_leader + } + } + } + } + } + multiply = 0 + } + } +} + +tradition_female_only_inheritance = { + category = realm + + layers = { + 0 = learning + 1 = indian + 4 = crown.dds + } + + is_shown = { + NOT = { has_game_rule = inversed_gender_equality } + } + + can_pick = { + custom_tooltip = { + NOT = { has_cultural_tradition = tradition_nubian_warrior_queens } + OR = { + has_cultural_pillar = heritage_senegambian + has_cultural_pillar = heritage_akan + has_cultural_pillar = heritage_west_african + has_cultural_pillar = heritage_yoruba + any_parent_culture_or_above = { + OR = { + this = culture:nubian + this = culture:daju + } + } + scope:character.faith = { + has_doctrine_parameter = female_dominated_law + } + } + text = tradition_female_only_inheritance_requirements + } + scope:character = { + primary_title = { + NOR = { + has_title_law = male_only_law + has_title_law = male_preference_law + } + } + NOR = { + has_realm_law = male_only_law + has_realm_law = male_preference_law + } + } + } + + parameters = { + female_only_inheritance = yes + female_preference_inheritance = yes + } + character_modifier = { + opinion_of_female_rulers = 10 + opinion_of_male_rulers = -10 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + has_game_rule = inversed_gender_equality + culture_pillar:ethos_egalitarian = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_egalitarian_desc + } + } + if = { + limit = { + trigger_if = { + limit = { + scope:character = { + is_ai = no + } + } + NOT = { + any_ruler = { + count >= 5 + culture = prev + primary_title.tier >= tier_county + is_female = yes + } + } + } + trigger_else = { + always = no + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = five_female_rulers_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 25 + if = { + limit = { + NOT = { + scope:character = { + is_female = yes + } + } + } + multiply = 0 + } + } +} + +tradition_equal_inheritance = { + category = realm + + layers = { + 0 = diplo + 1 = western + 4 = crown.dds + } + + can_pick = { + NOR = { + has_cultural_tradition = tradition_nubian_warrior_queens + has_cultural_tradition = tradition_nubian_warrior_kings + } + } + + parameters = { + gender_equal_inheritance = yes + } + doctrine_character_modifier = { + name = tradition_equal_inheritance_name + doctrine = doctrine_gender_male_dominated + opinion_of_female_rulers = 10 + } + doctrine_character_modifier = { + name = tradition_equal_inheritance_name + doctrine = doctrine_gender_female_dominated + opinion_of_male_rulers = 10 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOT = { + culture_pillar:ethos_egalitarian = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_egalitarian_desc + } + } + if = { + limit = { + trigger_if = { + limit = { + scope:character = { + is_ai = no + } + } + NAND = { + any_ruler = { + count >= 3 + culture = prev + primary_title.tier >= tier_county + is_male = yes + } + any_ruler = { + count >= 3 + culture = prev + primary_title.tier >= tier_county + is_female = yes + } + } + } + trigger_else = { + always = yes + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = three_gender_rulers_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 25 + if = { + limit = { + NOR = { + scope:character = { + is_female = yes + faith = { + has_doctrine_parameter = male_dominated_law + } + } + scope:character = { + is_male = yes + faith = { + has_doctrine_parameter = female_dominated_law + } + } + } + } + multiply = 0 + } + } +} + +tradition_roman_legacy = { + category = realm + + layers = { + 0 = martial + 1 = mediterranean + 4 = laurel.dds + } + + is_shown = { + OR = { + has_cultural_pillar = heritage_byzantine + has_cultural_pillar = heritage_caucasian + } + #replaced by new Byzantine traditions + has_ep3_dlc_trigger = no + } + can_pick = { + } + + parameters = { + unlock_maa_cataphract = yes + } + province_modifier = { + } + character_modifier = { + levy_size = -0.25 + men_at_arms_recruitment_cost = -0.15 + men_at_arms_maintenance = -0.15 + levy_reinforcement_rate = -0.25 + heavy_infantry_max_size_add = 2 + heavy_cavalry_max_size_add = 2 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_egalitarian = { is_in_list = traits } + culture_pillar:ethos_courtly = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_egalitarian_or_courtly_desc + } + } + if = { + limit = { + NOT = { + any_culture_county = { + count >= 50 + any_county_province = { + geographical_region = custom_eastern_roman_empire + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = culture_in_roman_empire_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 100 + } +} + +tradition_metal_craftsmanship = { + category = realm + + layers = { + 0 = steward + 1 = mediterranean + 4 = tools.dds + } + + parameters = { + better_armory_buildings = yes + better_blacksmith_buildings = yes + next_level_smiths = yes + } + character_modifier = { + maa_toughness_add = 2 + army_maintenance_mult = 0.1 + levy_toughness = 2 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_communal = { is_in_list = traits } + culture_pillar:ethos_bureaucratic = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_communal_bureaucratic_or_stoic_desc + } + } + if = { + limit = { + NOT = { + any_culture_county = { + count >= 1 + any_county_province = { + has_any_special_mine_trigger = yes + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = has_a_special_mine_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 400 + if = { + limit = { + NOT = { + any_culture_county = { + count >= 1 + any_county_province = { + has_building_or_higher = blacksmiths_01 + } + } + } + } + multiply = 0.25 + } + else_if = { + limit = { + any_culture_county = { + count >= 8 + any_county_province = { + has_building_or_higher = blacksmiths_01 + } + } + } + multiply = 2 + } + } +} + +tradition_family_entrepreneurship = { + category = realm + + layers = { + 0 = steward + 1 = indian + 4 = noble.dds + } + + can_pick = { + custom_tooltip = { + text = not_numerous_close_family_desc + scope:character = { + any_close_family_member = { + count >= 10 + is_alive = yes + } + } + } + } + + parameters = { + close_family_better_councillors = yes + close_family_better_court_positions = yes + penalty_for_revoking_titles_from_close_family = yes + } + character_modifier = { + close_relative_opinion = 5 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_communal = { is_in_list = traits } + culture_pillar:ethos_courtly = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_communal_or_courtly_desc + } + } + if = { + limit = { + trigger_if = { + limit = { + scope:character = { + is_ai = no + } + } + NOT = { + scope:character = { + any_close_family_member = { + percent > 0.5 + save_temporary_opinion_value_as = { name = target_opinion target = scope:character } + scope:target_opinion >= 80 + } + } + } + } + trigger_else = { + always = no + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = not_strong_opinion_close_family_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 50 + if = { + limit = { + NOR = { + has_cultural_pillar = heritage_west_african + has_cultural_pillar = heritage_central_african + has_cultural_pillar = heritage_chinese + has_cultural_pillar = heritage_indo_aryan + } + } + multiply = 0 + } + if = { + limit = { + scope:character = { + any_close_family_member = { + count < 15 + } + } + } + multiply = 0.25 + } + } +} + +tradition_wedding_ceremonies = { + category = realm + + layers = { + 0 = diplo + 1 = indian + 4 = greeting.dds + } + + parameters = { + better_spouses = yes + marriage_acceptance_bonus = yes + cannot_divorce = yes + adulterer_fornicator_penalties = yes + hostile_scheme_success_chance_vs_spouse_penalty = yes + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_courtly = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + culture_pillar:ethos_spiritual = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_courtly_communal_or_spiritual_desc + } + } + if = { + limit = { + trigger_if = { + limit = { + scope:character = { + is_ai = no + } + } + any_ruler = { + count >= 5 + primary_title.tier >= tier_county + culture = prev + has_trait = adulterer + } + } + trigger_else = { + always = no + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = rulers_with_adulterer_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 50 + if = { + limit = { + NOR = { + culture_pillar:ethos_courtly = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + culture_pillar:ethos_spiritual = { is_in_list = traits } + } + } + multiply = 0 + } + } +} + +tradition_culture_blending = { + category = realm + + layers = { + 0 = learning + 1 = indian + 4 = conversation.dds + } + + is_shown = { + has_dlc_feature = hybridize_culture + } + + parameters = { + cheaper_to_hybridize = yes + learns_more_languages = yes + } + culture_modifier = { + cultural_acceptance_gain_mult = 0.25 + } + character_modifier = { + max_learn_language_schemes_add = 1 + learn_language_scheme_phase_duration_add = medium_scheme_phase_duration_bonus_value + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_communal = { is_in_list = traits } + culture_pillar:ethos_egalitarian = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_communal_or_egalitarian_desc + } + } + if = { + limit = { + NOT = { + scope:character = { + any_sub_realm_county = { + percent >= 0.3 + NOT = { culture = root } + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = multiple_cultures_in_realm_percentage_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 50 + if = { + limit = { + is_divergent_culture = no + } + multiply = 0 + } + } +} + +tradition_isolationist = { + category = realm + + layers = { + 0 = intrigue + 1 = mediterranean + 4 = noble.dds + } + + parameters = { + courtiers_less_likely_to_leave_same_culture_court = yes + dislikes_marrying_outside_of_culture = yes + ai_doesnt_marry_outside_culture = yes + less_likely_to_culture_convert = yes + less_plague_spread_culture = yes + cultrad_unlocks_t3_strengthen_sentries = yes + cultrad_unlocks_t3_redouble_guards = yes + } + culture_modifier = { + cultural_acceptance_gain_mult = -0.35 + } + character_modifier = { + diplomatic_range_mult = -0.25 + same_culture_opinion = 5 + + ai_war_chance = -0.5 + ai_war_cooldown = 5 + } + county_modifier = { + monthly_county_control_growth_add = 0.5 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_communal = { is_in_list = traits } + culture_pillar:ethos_spiritual = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_communal_spiritual_or_stoic_desc + } + } + if = { + limit = { + scope:character = { + any_sub_realm_county = { + culture = scope:character.culture + any_neighboring_county = { + NOT = { + culture = scope:character.culture + } + culture = { + cultural_acceptance = { target = scope:character.culture value >= 40 } + } + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = non_tolerated_cultures_desc + } + } + if = { + limit = { + OR = { + has_variable = defensive_traditionalist_discount + has_variable = aggressive_traditionalist_discount + } + } + add = { + value = traditionalist_discount + desc = traditionalist_discount_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 100 + if = { + limit = { + NOT = { + is_divergent_culture = yes + } + } + multiply = 0 + } + if = { + limit = { + culture_pillar:ethos_egalitarian = { is_in_list = traits } + } + multiply = 0 + } + } +} + +tradition_fervent_temple_builders = { + category = realm + + layers = { + 0 = learning + 1 = mediterranean + 4 = temple.dds + } + + #can_pick = { + # custom_tooltip = { + # any_culture_county = { + # percent >= 0.2 + # any_county_province = { + # has_holding_type = church_holding + # } + # } + # text = 20_percent_churches + # } + #} + + parameters = { + more_fervor_on_church_construction = yes + prestige_from_temple_construction = yes + build_bonuses_on_religious_traits = yes + temple_next_level = yes + tribals_can_into_temples = yes + } + character_modifier = { + ai_zeal = 25 + church_holding_build_gold_cost = 0.1 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_communal = { is_in_list = traits } + culture_pillar:ethos_spiritual = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_communal_spiritual_or_stoic_desc + } + } + if = { + limit = { + trigger_if = { + limit = { + scope:character = { + is_ai = no + } + } + NOT = { + any_ruler = { + count >= 5 + culture = prev + primary_title.tier >= tier_county + faith = scope:character.faith + has_trait = zealous + } + } + } + trigger_else = { + always = no + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = rulers_with_same_faith_zealous_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 200 + if = { + limit = { + culture_pillar:ethos_spiritual = { is_in_list = traits } + } + multiply = 4 + } + if = { + limit = { + scope:character ?= { + government_has_flag = government_is_tribal + primary_title.tier >= tier_kingdom + piety_level >= 3 + } + } + multiply = 4 + } + + } +} + +tradition_agrarian = { + category = realm + + layers = { + 0 = steward + 1 = indian + 4 = farmland.dds + } + + can_pick = { + custom_tooltip = { + text = culture_in_farmlands_or_floodplains_terrain_desc + any_culture_county = { + any_county_province = { + OR = { + terrain = farmlands + terrain = floodplains + } + } + } + } + } + + parameters = { + content_trait_more_common = yes + martial_education_worse_outcomes = yes + hard_working_traits_more_valued = yes + } + character_modifier = { + men_at_arms_recruitment_cost = 0.25 + prowess = -2 + floodplains_travel_danger = floodplains_medium_danger_reduction + } + county_modifier = { + farmlands_development_growth_factor = 0.3 + farmlands_construction_gold_cost = -0.1 + floodplains_development_growth_factor = 0.3 + floodplains_construction_gold_cost = -0.1 + farmlands_levy_size = 0.1 + floodplains_levy_size = 0.1 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = culture_not_bellicose + } + } + if = { + limit = { + NOT = { + any_culture_county = { + count >= 5 + any_county_province = { + OR = { + terrain = farmlands + terrain = floodplains + } + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = culture_in_farmlands_or_floodplains_terrain_count_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 400 + if = { + limit = { + NOT = { + scope:character = { + any_sub_realm_county = { + count >= 2 + culture = scope:character.culture + any_county_province = { + OR = { + terrain = farmlands + terrain = floodplains + } + } + } + } + } + } + multiply = 0 + } + if = { + limit = { + scope:character = { + government_has_flag = government_is_tribal + } + } + multiply = 0 + } + } +} + +tradition_pastoralists = { + category = realm + + layers = { + 0 = steward + 1 = mena + 4 = horses.dds + } + + can_pick = { + custom_tooltip = { + text = culture_in_plains_or_steppe_terrain_desc + any_culture_county = { + percent >= 0.4 + any_county_province = { + OR = { + terrain = plains + terrain = steppe + geographical_region = world_steppe + } + } + } + } + } + + parameters = { + pastures_building_bonuses = yes + farm_estates_pastures_unlock = yes + } + character_modifier = { + negate_health_penalty_add = 0.15 + prowess = 1 + character_travel_speed_mult = 0.1 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_stoic_or_communal_desc + } + } + if = { + limit = { + NOT = { + any_culture_county = { + percent >= 0.6 + any_county_province = { + OR = { + terrain = plains + terrain = steppe + geographical_region = world_steppe + } + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = culture_in_plains_or_steppe_terrain_percentage_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 200 + if = { + limit = { + NOT = { + scope:character = { + any_sub_realm_county = { + percent >= 0.6 + culture = scope:character.culture + any_county_province = { + OR = { + terrain = plains + terrain = steppe + } + } + } + } + } + } + multiply = 0 + } + } +} + +tradition_parochialism = { + category = realm + + layers = { + 0 = intrigue + 1 = mediterranean + 4 = city.dds + } + + is_shown = { #Replaced by tradition_republican_legacy + NOT = { has_cultural_tradition = tradition_republican_legacy } + NOR ={ + this = culture:roman + any_parent_culture_or_above = { + this = culture:roman + } + } + } + can_pick = { + NOR ={ + this = culture:roman + any_parent_culture_or_above = { + this = culture:roman + } + } + NOT = { has_cultural_tradition = tradition_republican_legacy } + } + + parameters = { + city_buildings_more_powerful = yes + city_buildings_less_control = yes + more_parochial_vassals = yes + next_level_cities = yes + } + character_modifier = { + city_holding_build_gold_cost = -0.05 + city_holding_holding_build_gold_cost = -0.05 + barons_and_minor_landholders_opinion = -20 + parochial_opinion = -20 + parochial_tax_contribution_mult = 0.1 + parochial_levy_contribution_mult = 0.1 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_courtly = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + culture_pillar:ethos_spiritual = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_courtly_communal_or_spiritual_desc + } + } + if = { + limit = { + NOT = { + scope:character = { + any_sub_realm_county = { + percent >= 0.9 + culture = scope:character.culture + any_county_province = { + has_holding_type = city_holding + } + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = 90_percent_cities_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 200 + if = { + limit = { + NOT = { + scope:character = { + any_sub_realm_county = { + percent >= 0.15 + culture = scope:character.culture + any_county_province = { + has_holding_type = city_holding + } + } + } + } + } + multiply = 0 + } + if = { + limit = { + NOT = { + scope:character = { + any_vassal = { + primary_title.tier > tier_county + government_has_flag = government_is_republic + } + } + } + } + multiply = 0 + } + } +} + +tradition_ruling_caste = { + category = realm + + layers = { + 0 = intrigue + 1 = mediterranean + 4 = king.dds + } + + parameters = { + peasant_and_populist_factions_less_common = yes + expensive_convert_to_local_culture = yes + less_likely_to_promote_culture = yes + } + culture_modifier = { + cultural_acceptance_gain_mult = -0.25 + } + character_modifier = { + dread_per_tyranny_add = 0.3 + dread_decay_mult = -0.3 + revolting_siege_morale_loss_mult = 0.25 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_spiritual = { is_in_list = traits } + culture_pillar:ethos_courtly = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_spiritual_or_courtly_desc + } + } + if = { + limit = { + scope:character = { + any_councillor = { + NOR = { + culture = scope:character.culture + is_spouse_of = scope:character # Might be hard to have the right culture for the Spouse; but we can remove this helper if needed + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = has_other_cultures_in_council_desc + } + } + if = { + limit = { + has_variable = aggressive_traditionalist_discount + } + add = { + value = traditionalist_discount + desc = traditionalist_discount_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 50 + if = { + limit = { + scope:character.dread < 25 + } + multiply = 0.5 + } + if = { + limit = { + scope:character.tyranny < 25 + } + multiply = 0.5 + } + } +} + +tradition_staunch_traditionalists = { + category = realm + + layers = { + 0 = intrigue + 1 = western + 4 = king.dds + } + + is_shown = { + has_dlc_feature = hybridize_culture + } + can_pick = { + NOT = { + has_cultural_tradition = tradition_fp3_fierce_independence + } + } + + parameters = { + stubborn_trait_more_common = yes + expensive_convert_to_local_culture = yes + harder_to_hybridize = yes + less_likely_to_culture_convert = yes + } + character_modifier = { + controlled_province_advantage = 5 + monthly_county_control_growth_add = 0.3 + cultural_head_fascination_mult = -0.05 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_communal = { is_in_list = traits } + culture_pillar:ethos_spiritual = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_communal_spiritual_or_stoic_desc + } + } + if = { + limit = { + scope:character = { + any_sub_realm_county = { + NOT = { + culture = scope:character.culture + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = has_other_cultures_in_realm_desc + } + } + if = { + limit = { + OR = { + has_variable = defensive_traditionalist_discount + has_variable = aggressive_traditionalist_discount + } + } + add = { + value = traditionalist_discount + desc = traditionalist_discount_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 50 + if = { + limit = { + NOT = { + is_divergent_culture = yes + } + } + multiply = 0 + } + if = { + limit = { + culture_pillar:ethos_egalitarian = { is_in_list = traits } + } + multiply = 0 + } + } +} + +tradition_hill_dwellers = { + category = realm + + layers = { + 0 = steward + 1 = indian + 4 = desert_mountains.dds + } + + is_shown = { #Cannot be picked if you have access to Highland Farming + NOT = { has_cultural_tradition = tradition_amharic_highlanders } + NOR = { + this = culture:ethiopian + any_parent_culture_or_above = { + this = culture:ethiopian + } + } + } + can_pick = { + custom_description = { + text = culture_in_hills_desc + any_culture_county = { + any_county_province = { + terrain = hills + } + } + } + } + + parameters = { + hill_farms_building_bonuses = yes + hills_hunt_success_chance = yes + windmills_hill_farms_unlock = yes + } + character_modifier = { + hills_travel_danger = hills_medium_danger_reduction + } + county_modifier = { + hills_development_growth_factor = 0.2 + } + province_modifier = { + hills_construction_gold_cost = -0.1 + hills_holding_construction_gold_cost = -0.1 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = culture_not_bellicose + } + } + if = { + limit = { + NOT = { + any_culture_county = { + percent >= 0.3 + any_county_province = { + terrain = hills + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = hill_percentage_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 100 + if = { + limit = { + NOT = { + scope:character = { + any_sub_realm_county = { + percent >= 0.2 + culture = scope:character.culture + any_county_province = { + terrain = hills + } + } + } + } + } + multiply = 0 + } + else_if = { + limit = { + any_culture_county = { + percent >= 0.6 + any_county_province = { + terrain = hills + } + } + } + multiply = 8 + } + } +} + +tradition_forest_folk = { + category = realm + + layers = { + 0 = steward + 1 = mena + 4 = forest.dds + } + + is_shown = { + NOR = { #These cultures instead get Forest Wardens Tradition + has_cultural_pillar = heritage_balto_finnic + has_cultural_pillar = heritage_volga_finnic + has_cultural_pillar = heritage_ugro_permian + has_cultural_pillar = heritage_baltic + has_cultural_tradition = tradition_forest_wardens + } + } + can_pick = { + custom_description = { + text = culture_in_forest_desc + any_culture_county = { + any_county_province = { + OR = { + terrain = forest + terrain = taiga + } + } + } + } + } + + parameters = { + logging_camps_building_bonuses = yes + forest_hunt_success_chance = yes + watermills_forestries_unlock = yes + } + character_modifier = { + forest_travel_danger = forest_medium_danger_reduction + taiga_travel_danger = taiga_medium_danger_reduction + } + county_modifier = { + forest_development_growth_factor = 0.15 + taiga_development_growth_factor = 0.15 + } + province_modifier = { + forest_construction_gold_cost = -0.1 + taiga_construction_gold_cost = -0.1 + forest_holding_construction_gold_cost = -0.1 + taiga_holding_construction_gold_cost = -0.1 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = culture_not_bellicose + } + } + if = { + limit = { + NOT = { + any_culture_county = { + percent >= 0.3 + any_county_province = { + OR = { + terrain = forest + terrain = taiga + } + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = forest_percentage_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 100 + if = { + limit = { + NOT = { + scope:character = { + any_sub_realm_county = { + percent >= 0.2 + culture = scope:character.culture + any_county_province = { + OR = { + terrain = forest + terrain = taiga + } + } + } + } + } + } + multiply = 0 + } + else_if = { + limit = { + any_culture_county = { + percent >= 0.6 + any_county_province = { + OR = { + terrain = forest + terrain = taiga + } + } + } + } + multiply = 8 + } + } +} + +tradition_mountain_homes = { + category = realm + + layers = { + 0 = steward + 1 = mena + 4 = mountain.dds + } + + is_shown = { + NOR = { #This is replaced by Himalayan Settlers, Mountaineer Ruralism and Mountain Herding. + has_cultural_tradition = tradition_himalayan_settlers + has_cultural_tradition = tradition_mountaineer_ruralism + has_cultural_pillar = heritage_arabic + has_cultural_pillar = heritage_berber + has_cultural_pillar = heritage_tibetan + has_cultural_pillar = heritage_qiangic + has_cultural_pillar = heritage_west_slavic + any_culture_county = { + title_province = { + geographical_region = world_himalaya + } + } + } + } + can_pick = { + custom_description = { + text = culture_in_mountains_desc + any_culture_county = { + any_county_province = { + OR = { + terrain = mountains + terrain = desert_mountains + } + } + } + } + } + + parameters = { + quarries_building_bonuses = yes + prestige_gain_on_building_complete_in_mountains = yes + mountains_hunt_success_chance = yes + } + character_modifier = { + mountains_travel_danger = mountains_medium_danger_reduction + desert_mountains_travel_danger = desert_mountains_medium_danger_reduction + } + county_modifier = { + mountains_development_growth_factor = 0.2 + desert_mountains_development_growth_factor = 0.35 + } + province_modifier = { + mountains_construction_gold_cost = -0.1 + desert_mountains_construction_gold_cost = -0.1 + mountains_holding_construction_gold_cost = -0.1 + desert_mountains_holding_construction_gold_cost = -0.1 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = culture_not_bellicose + } + } + if = { + limit = { + NOT = { + any_culture_county = { + percent >= 0.3 + any_county_province = { + OR = { + terrain = mountains + terrain = desert_mountains + } + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = mountain_percentage_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 100 + if = { + limit = { + NOT = { + scope:character = { + any_sub_realm_county = { + percent >= 0.2 + culture = scope:character.culture + any_county_province = { + OR = { + terrain = mountains + terrain = desert_mountains + } + } + } + } + } + } + multiply = 0 + } + else_if = { + limit = { + any_culture_county = { + percent >= 0.6 + any_county_province = { + OR = { + terrain = mountains + terrain = desert_mountains + } + } + } + } + multiply = 8 + } + } +} + +tradition_dryland_dwellers = { + category = realm + + layers = { + 0 = steward + 1 = mena + 4 = desert.dds + } + + can_pick = { + custom_description = { + text = culture_in_dryland_desc + any_culture_county = { + any_county_province = { + OR = { + terrain = drylands + terrain = desert + } + } + } + } + custom_tooltip = { #FP3 addition + text = cannot_have_tradition_irrigation_experts + NOT = { culture_tradition:tradition_fp3_irrigation_experts = { is_in_list = traits } } + } + } + + parameters = { + plantations_building_bonuses = yes + drylands_hunt_success_chance = yes + } + character_modifier = { + desert_travel_danger = desert_medium_danger_reduction + drylands_travel_danger = drylands_medium_danger_reduction + desert_mountains_travel_danger = desert_mountains_medium_danger_reduction + } + county_modifier = { + desert_development_growth_factor = 0.35 + drylands_development_growth_factor = 0.15 + } + province_modifier = { + desert_construction_gold_cost = -0.1 + drylands_construction_gold_cost = -0.1 + desert_holding_construction_gold_cost = -0.1 + drylands_holding_construction_gold_cost = -0.1 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = culture_not_bellicose + } + } + if = { + limit = { + NOT = { + any_culture_county = { + percent >= 0.3 + any_county_province = { + OR = { + terrain = drylands + terrain = desert + } + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = dry_percentage_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 100 + if = { + limit = { + NOT = { + scope:character = { + any_sub_realm_county = { + percent >= 0.2 + culture = scope:character.culture + any_county_province = { + OR = { + terrain = drylands + terrain = desert + } + } + } + } + } + } + multiply = 0 + } + else_if = { + limit = { + any_culture_county = { + percent >= 0.6 + any_county_province = { + OR = { + terrain = drylands + terrain = desert + } + } + } + } + multiply = 8 + } + } +} + +tradition_jungle_dwellers = { + category = realm + + layers = { + 0 = steward + 1 = indian + 4 = jungle.dds + } + + is_shown = { + NOR = { + has_cultural_pillar = heritage_akan + has_cultural_pillar = heritage_yoruba + has_cultural_tradition = tradition_hidden_cities + } + } + can_pick = { + custom_description = { + text = culture_in_jungle_desc + any_culture_county = { + any_county_province = { + terrain = jungle + } + } + } + } + + parameters = { + outposts_building_bonuses = yes + jungle_hunt_success_chance = yes + } + character_modifier = { + jungle_travel_danger = jungle_medium_danger_reduction + } + county_modifier = { + jungle_development_growth_factor = 0.25 + } + province_modifier = { + jungle_construction_gold_cost = -0.1 + jungle_holding_construction_gold_cost = -0.1 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = culture_not_bellicose + } + } + if = { + limit = { + NOT = { + any_culture_county = { + percent >= 0.3 + any_county_province = { + terrain = jungle + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = jungle_percentage_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 100 + if = { + limit = { + NOT = { + scope:character = { + any_sub_realm_county = { + percent >= 0.2 + culture = scope:character.culture + any_county_province = { + terrain = jungle + } + } + } + } + } + multiply = 0 + } + else_if = { + limit = { + any_culture_county = { + percent >= 0.6 + any_county_province = { + terrain = jungle + } + } + } + multiply = 8 + } + } +} + +tradition_wetlanders = { + category = realm + + layers = { + 0 = diplo + 1 = western + 4 = svamp.dds + } + + can_pick = { + custom_tooltip = { + text = culture_in_wetlands_desc + any_culture_county = { + any_county_province = { + terrain = wetlands + } + } + } + } + + parameters = { + peat_quarries_building_bonuses = yes + wetlands_hunt_success_chance = yes + } + character_modifier = { + wetlands_advantage = 10 + wetlands_travel_danger = wetlands_high_danger_reduction + floodplains_travel_danger = floodplains_high_danger_reduction + } + county_modifier = { + wetlands_development_growth_factor = 0.25 + } + province_modifier = { + wetlands_construction_gold_cost = -0.15 + wetlands_holding_construction_gold_cost = -0.15 + wetlands_levy_size = 0.1 + wetlands_supply_limit_mult = 0.25 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = culture_not_bellicose + } + } + if = { + limit = { + NOT = { + any_culture_county = { + count >= 3 + any_county_province = { + terrain = wetlands + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = culture_in_wetlands_count_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 100 + if = { + limit = { + NOT = { + scope:character = { + any_sub_realm_county = { + count >= 3 + culture = scope:character.culture + any_county_province = { + terrain = wetlands + } + } + } + } + } + multiply = 0 + } + else_if = { + limit = { + any_culture_county = { + percent >= 0.6 + any_county_province = { + terrain = wetlands + } + } + } + multiply = 8 + } + } +} + +tradition_hidden_cities = { + category = realm + + layers = { + 0 = steward + 1 = mena + 4 = city2.dds + } + + is_shown = { + OR = { + has_cultural_pillar = heritage_akan + has_cultural_pillar = heritage_yoruba + } + NOT = { has_cultural_tradition = tradition_jungle_dwellers } + } + can_pick = { + custom_description = { + text = culture_in_jungle_desc + any_culture_county = { + any_county_province = { + terrain = jungle + } + } + } + } + + parameters = { + tribal_holding_fort_level_in_jungle_bonus = yes + castle_holding_fort_level_in_jungle_bonus = yes + } + character_modifier = { + jungle_travel_danger = jungle_high_danger_reduction + } + county_modifier = { + jungle_development_growth_factor = 0.35 + } + province_modifier = { + jungle_construction_gold_cost = -0.1 + jungle_holding_construction_gold_cost = -0.1 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOT = { culture_pillar:ethos_bureaucratic = { is_in_list = traits } } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_inventive_desc + } + } + if = { + limit = { + NOT = { + any_culture_county = { + percent >= 0.3 + any_county_province = { + terrain = jungle + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = jungle_percentage_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 100 + if = { + limit = { + NOT = { + any_culture_county = { + percent >= 0.3 + any_county_province = { + terrain = jungle + } + } + } + } + multiply = 0 + } + if = { + limit = { + NOT = { + scope:character = { + any_sub_realm_county = { + culture = scope:character.culture + any_county_province = { + has_holding_type = city_holding + terrain = jungle + } + } + } + } + } + multiply = 0.25 + } + else_if = { + limit = { + any_culture_county = { + percent >= 0.6 + any_county_province = { + terrain = wetlands + } + } + } + multiply = 8 + } + + } +} + +tradition_ancient_miners = { + category = realm + + is_shown = { + always = no + } + + layers = { + 0 = martial + 1 = mediterranean + 4 = tools.dds + } + + parameters = { + ancient_miners_quarries_building_bonuses = yes + can_build_quarries_in_hills = yes + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 400 + if = { + limit = { + NOT = { + scope:character = { + any_sub_realm_county = { + culture = scope:character.culture + any_county_province = { + terrain = hills + } + } + } + } + } + multiply = 0 + } + } +} + +tradition_castle_keepers = { + category = realm + + layers = { + 0 = martial + 1 = western + 4 = city.dds + } + + can_pick = { + custom_tooltip = { + scope:character = { + OR = { + government_has_flag = government_is_feudal + government_has_flag = government_is_clan + } + } + text = must_be_feudal_or_clan + } + custom_tooltip = { + text = cannot_have_tradition_city_keepers + NOT = { + culture_tradition:tradition_city_keepers = { is_in_list = traits } + } + } + } + + parameters = { + castle_fortifications_increase = yes + castle_grant_prestige = yes + architect_trait_prestige = yes + ai_more_likely_to_castle = yes + ai_more_likely_to_fortify = yes + } + character_modifier = { + castle_holding_holding_build_speed = 0.1 + castle_holding_holding_build_gold_cost = 0.2 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + # Ethos requirements. + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + culture_pillar:ethos_bureaucratic = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_stoic_or_bureaucratic_desc + } + } + # Requires battlements innovation. + if = { + limit = { + NOT = { has_innovation = innovation_battlements } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = lacks_battlements_innovation_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 800 + if = { + limit = { + NOT = { has_innovation = innovation_battlements } + } + multiply = 0 + } + if = { + limit = { + scope:character = { ai_boldness >= 0 } + } + multiply = 0.25 + } + } +} + +tradition_city_keepers = { + category = realm + + layers = { + 0 = steward + 1 = mediterranean + 4 = city.dds + } + + can_pick = { + trigger_if = { + limit = { has_ep3_dlc_trigger = yes } + custom_tooltip = { + scope:character = { + OR = { + government_has_flag = government_is_feudal + government_has_flag = government_is_clan #Update for FP3 + government_has_flag = government_is_administrative + } + } + text = must_be_feudal_clan_or_admin + } + } + trigger_else = { + custom_tooltip = { + scope:character = { + OR = { + government_has_flag = government_is_feudal + government_has_flag = government_is_clan #Update for FP3 + } + } + text = must_be_feudal_or_clan + } + } + custom_tooltip = { + text = cannot_have_tradition_castle_keepers + NOT = { + culture_tradition:tradition_castle_keepers = { is_in_list = traits } + } + } + } + + parameters = { + next_level_guild_halls = yes + city_buildings_more_county_opinion = yes + ai_more_likely_to_city = yes + architect_trait_prestige = yes + watermills_windmills_cities = yes + } + character_modifier = { + city_holding_build_speed = -0.25 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + # Ethos requirements. + if = { + limit = { + NOR = { + culture_pillar:ethos_bureaucratic = { is_in_list = traits } + culture_pillar:ethos_courtly = { is_in_list = traits } + culture_pillar:ethos_egalitarian = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bureaucratic_courtly_or_egalitarian_desc + } + } + # Requires communal government innovation. + if = { + limit = { + NOT = { has_innovation = innovation_development_02 } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = lacks_development_02_innovation_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 400 + add = { + value = scope:character.ai_sociability + divide = 2 + } + if = { + limit = { + NOT = { has_innovation = innovation_development_02 } + } + multiply = 0 + } + } +} + +tradition_maritime_mercantilism = { + category = realm + + layers = { + 0 = diplo + 1 = mediterranean + 4 = ship.dds + } + + can_pick = { + custom_description = { + text = culture_on_coast_desc + any_culture_county = { + any_county_province = { + is_coastal = yes + } + } + } + } + + parameters = { + next_level_trade_ports = yes + maritime_mercantilism_coastal_holdings = yes + maritime_mercantilism_avaricious_bonus = yes + } + character_modifier = { + republic_government_vassal_opinion = 10 + sea_travel_danger = low_sea_danger_reduction + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + # Ethos requirement. + if = { + limit = { + NOR = { + culture_pillar:ethos_egalitarian = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + culture_pillar:ethos_bureaucratic = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_egalitarian_stoic_or_bureaucratic_desc + } + } + # Coastal requirement. + if = { + limit = { + NOT = { + any_culture_county = { + percent >= 0.3 + any_county_province = { + is_coastal = yes + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = coastal_percentage_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 100 + if = { + limit = { + scope:character = { + any_sub_realm_county = { + percent >= 0.6 + any_county_province = { + is_coastal = yes + } + } + } + } + add = 50 + } + if = { # Make stacking a bit more common + limit = { + OR = { + culture_tradition:tradition_seafaring = { is_in_list = traits } + culture_tradition:tradition_fishermen = { is_in_list = traits } + } + } + multiply = 2 + } + if = { + limit = { + NOT = { + scope:character = { + any_sub_realm_county = { + percent >= 0.3 + any_county_province = { + is_coastal = yes + } + } + } + } + } + multiply = 0 + } + else_if = { + limit = { + any_culture_county = { + percent >= 0.6 + any_county_province = { + is_coastal = yes + } + } + } + multiply = 2 + } + } +} + +tradition_monastic_communities = { + category = realm + + layers = { + 0 = intrigue + 1 = mediterranean + 4 = temple.dds + } + + can_pick = { + scope:character = { + faith = { + has_doctrine_parameter = take_vows_active + } + } + } + + parameters = { + temperate_trait_more_common = yes # Synergy with Monastic Doctrines + temperate_trait_bonuses = yes + devoted_trait_bonuses = yes + monastic_expectations = yes + next_level_monasteries = yes + monastic_monastery_learning_bonus = yes + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + # Ethos requirement. + if = { + limit = { + NOR = { + culture_pillar:ethos_spiritual = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_spiritual_or_communal_desc + } + } + # Piety level requirement. + if = { + limit = { + NOT = { scope:character.piety_level >= high_piety_level } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = lacks_high_piety_level_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 100 + if = { + limit = { + NOT = { has_cultural_pillar = heritage_goidelic } + } + multiply = 0 + } + if = { + limit = { + culture_pillar:ethos_spiritual = { is_in_list = traits } + } + multiply = 2 + } + if = { + limit = { + scope:character ?= { + piety_level >= 3 + } + } + multiply = scope:character.piety_level + } + } +} + +tradition_brewery = { + category = realm + + layers = { + 0 = diplo + 1 = western + 4 = food.dds + } + + parameters = { + allows_brewery = yes + brewery_farming_bonus = yes + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOT = { + culture_pillar:ethos_spiritual = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_spiritual_desc + } + } + if = { + limit = { + NOT = { + any_culture_county = { + count >= 5 + any_county_province = { + OR = { + has_building_or_higher = farm_estates_01 + has_building_or_higher = cereal_fields_01 + } + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = culture_in_farm_or_mansion_count_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 10 + } +} diff --git a/common/culture/traditions/00_regional_traditions.txt b/common/culture/traditions/00_regional_traditions.txt new file mode 100644 index 00000000..21a6a585 --- /dev/null +++ b/common/culture/traditions/00_regional_traditions.txt @@ -0,0 +1,1419 @@ +################################ +# REGIONAL CULTURAL TRADITIONS # +################################ + +tradition_byzantine_succession = { + category = regional + + layers = { + 0 = intrigue + 1 = mediterranean + 4 = crown.dds + } + + is_shown = { + OR = { + has_cultural_pillar = heritage_byzantine + scope:character = { + has_title = title:e_byzantium + } + } + #replaced by new Byzantine traditions + has_ep3_dlc_trigger = no + } + can_pick = { + has_cultural_pillar = heritage_byzantine + scope:character = { + has_title = title:e_byzantium + } + custom_tooltip = { + text = cannot_have_tradition_court_eunuchs + NOT = { culture_tradition:tradition_court_eunuchs = { is_in_list = traits } } + } + custom_tooltip = { + text = cannot_have_tradition_merciful_blindings + NOT = { culture_tradition:tradition_merciful_blindings = { is_in_list = traits } } + } + } + + parameters = { + can_blind_prisoners = yes + can_castrate_prisoners = yes + eunuch_trait_bonuses = yes + can_appoint_chief_eunuch = yes + physical_disfigurement_blocks_inheritance = yes #Actually only blocks claimants and reduce score in elective. Also includes infertility for tooltip reasons. + children_can_be_born_in_the_purple = yes + disloyal_trait_more_common = yes + byzantine_faction_differences = yes + #byzantine_faction_preffered_claimants = yes + } + character_modifier = { + eligible_child_opinion = 20 + short_reign_duration_mult = 0.5 + hostile_scheme_phase_duration_add = medium_scheme_phase_duration_bonus_value + ai_amenity_target_baseline = 0.75 + ai_amenity_spending = 1 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_courtly = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_courtly_or_communal_desc + } + } + if = { + limit = { + NOT = { + scope:character = { + has_title = title:c_byzantion + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = byzantion_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { value = 1000 } +} + +tradition_lords_of_the_elephant = { + category = regional + + layers = { + 0 = learning + 1 = indian + 4 = elephant.dds + } + + is_shown = { + OR = { + any_culture_county = { + title_province = { + geographical_region = world_innovation_elephants + } + } + has_innovation = innovation_elephantry + } + } + can_pick = { + has_innovation = innovation_elephantry + } + + parameters = { + can_recruit_jungle_specialist = yes + elephant_pens_building_bonuses = yes + elephant_bonuses_for_rank_4_education = yes + } + character_modifier = { + elephant_cavalry_recruitment_cost_mult = -0.15 + elephant_cavalry_maintenance_mult = -0.15 + elephant_cavalry_toughness_add = 20 + elephant_cavalry_damage_add = 40 + jungle_travel_danger = jungle_medium_danger_reduction + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_courtly = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_stoic_or_courtly_desc + } + } + if = { + limit = { + NOT = { + any_culture_county = { + any_county_province = { + count >= 3 + has_building_or_higher = elephant_pens_02 + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = elephant_pens_percentage_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 1000 + if = { + limit = { + NOR = { + has_cultural_pillar = heritage_indo_aryan + has_cultural_pillar = heritage_dravidian + } + } + multiply = 0 + } + } +} + +tradition_african_tolerance = { + category = regional + + layers = { + 0 = diplo + 1 = mena + 4 = diplomat.dds + } + + is_shown = { + OR = { # For cultures with any heritage from western or central Africa + has_cultural_pillar = heritage_berber + has_cultural_pillar = heritage_west_african + has_cultural_pillar = heritage_central_african + has_cultural_pillar = heritage_sahelian + has_cultural_pillar = heritage_senegambian + has_cultural_pillar = heritage_akan + has_cultural_pillar = heritage_yoruba + } + NOT = { + culture_tradition:tradition_steppe_tolerance = { is_in_list = traits } + } + } + can_pick = { + } + + parameters = { + less_likely_to_force_conversion = yes + } + character_modifier = { + different_faith_opinion = 10 + different_faith_county_opinion_mult = -0.25 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_egalitarian = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_communal_or_egalitarian_desc + } + } + if = { + limit = { + trigger_if = { + limit = { + scope:character = { + is_ai = no + } + } + NOT = { + any_culture_global = { + count >= 5 + cultural_acceptance = { target = prev value >= 50 } + } + } + } + trigger_else = { + always = no + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = five_accepted_cultures_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 400 + if = { + limit = { + OR = { + culture_tradition:tradition_zealous_people = { is_in_list = traits } + culture_tradition:tradition_by_the_sword = { is_in_list = traits } + } + } + multiply = 0 + } + } +} + +tradition_the_witenagemot = { + category = regional + + layers = { + 0 = diplo + 1 = western + 4 = council.dds + } + + is_shown = { + OR = { + has_cultural_pillar = heritage_west_germanic + has_cultural_pillar = heritage_brythonic + has_cultural_pillar = heritage_goidelic + } + } + can_pick = { + OR = { + has_cultural_pillar = heritage_west_germanic + has_cultural_pillar = heritage_brythonic + has_cultural_pillar = heritage_goidelic + } + } + + parameters = { + witenagemot_succession_enabled = yes + } + character_modifier = { + monthly_prestige_gain_per_happy_powerful_vassal_mult = 0.04 + } + doctrine_character_modifier = { + name = tradition_the_witenagemot_name + doctrine = doctrine_theocracy_temporal + realm_priest_opinion = 15 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bureaucratic = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_stoic_or_bureaucratic_desc + } + } + if = { + limit = { + NOT = { + scope:character = { + any_councillor = { + percent = 1 + opinion = { + target = prev + value >= 0 + } + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = councillor_with_negative_opinion_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 200 + if = { + limit = { + OR = { + culture_tradition:tradition_things = { is_in_list = traits } + culture_tradition:tradition_fp3_jirga = { is_in_list = traits } + } + } + multiply = 0 + } + } +} + +tradition_things = { + category = regional + + layers = { + 0 = learning + 1 = western + 4 = council.dds + } + + is_shown = { + has_cultural_pillar = heritage_north_germanic + } + can_pick = { + has_cultural_pillar = heritage_north_germanic + } + + parameters = { + scandinavian_elective_enabled = yes + trait_county_opinion_modifiers = yes + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bureaucratic = { is_in_list = traits } + culture_pillar:ethos_bellicose = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_or_bureaucratic_desc + } + } + if = { + limit = { + NOT = { + scope:character = { + any_sub_realm_county = { + county_opinion < 0 + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = counties_with_low_county_opinion_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 200 + if = { + limit = { + OR = { + culture_tradition:tradition_the_witenagemot = { is_in_list = traits } + culture_tradition:tradition_fp3_jirga = { is_in_list = traits } + } + } + multiply = 0 + } + } +} + +tradition_caravaneers = { + category = regional + + layers = { + 0 = diplo + 1 = mena + 4 = camel.dds + } + + is_shown = { + always = no + } + + parameters = { + wanderers_gain_extra_economic_skills = yes + more_likely_to_leave_court = yes + second_caravanserai = yes + unlock_voluntary_laampdom = yes + } + + character_modifier = { + movement_speed = 0.05 + diplomatic_range_mult = 0.2 + character_travel_safety_mult = 0.2 + character_travel_speed_mult = 0.2 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOT = { + culture_pillar:ethos_egalitarian = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_egalitarian_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { value = 600 } +} + +tradition_horse_lords = { + category = regional + + layers = { + 0 = martial + 1 = mena + 4 = horses.dds + } + + is_shown = { + OR = { + has_cultural_pillar = heritage_mongolic + has_cultural_pillar = heritage_turkic + } + } + + can_pick = { + custom_description = { + text = culture_in_steppe_desc + any_culture_county = { + percent >= 0.4 + any_county_province = { + geographical_region = world_steppe + } + } + } + } + + parameters = { + unlock_maa_horse_archers = yes + can_recruit_open_specialist = yes + unlock_horse_pastures_building = yes + steppe_hunt_success_chance = yes + unlock_voluntary_laampdom = yes + } + + character_modifier = { + light_cavalry_damage_mult = 0.1 + light_cavalry_screen_mult = 0.1 + steppe_cancel_negative_supply = yes + supply_duration = 1 + movement_speed = 0.1 + character_travel_speed_mult = 0.2 + character_travel_safety_mult = 0.2 + steppe_travel_danger = steppe_high_danger_reduction + movement_speed_land_raiding = 0.3 + hostile_county_attrition_raiding = -0.5 + provisions_use_mult = -0.25 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_or_communal_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + #if = { + # limit = { + # NOR = { + # has_cultural_pillar = heritage_turkic + # has_cultural_pillar = heritage_mongolic + # } + # } + # add = { + # value = tradition_unfulfilled_criteria_penalty + # desc = steppe_heritage_reduction_desc + # } + #} + } + } + + ai_will_do = { + value = 400 + } +} + +tradition_saharan_nomads = { + category = regional + + layers = { + 0 = learning + 1 = mena + 4 = desert.dds + } + + is_shown = { + any_culture_county = { + title_province = { + geographical_region = custom_sahara_proper + } + } + } + can_pick = { + any_culture_county = { + title_province = { + geographical_region = custom_sahara_proper + } + } + } + + parameters = { + desert_hunt_success_chance = yes + resistant_to_desert_privation = yes + } + character_modifier = { + light_cavalry_maintenance_mult = -0.25 + light_cavalry_recruitment_cost_mult = -0.25 + oasis_development_growth_factor = 0.1 + movement_speed = 0.1 + character_travel_speed = 10 + desert_travel_danger = desert_high_danger_reduction + drylands_travel_danger = drylands_high_danger_reduction + desert_mountains_travel_danger = desert_mountains_high_danger_reduction + movement_speed_land_raiding = 0.2 + hostile_county_attrition_raiding = -0.3 + + # Nullify the maluses from world_africa_sahara_provisions_usage_multiplier_modifier. + desert_provisions_use_mult = -0.66 + desert_mountains_provisions_use_mult = -0.66 + desert_supply_limit_mult = 0.5 + desert_mountains_supply_limit_mult = 0.5 + } + province_modifier = { + oasis_construction_gold_cost = -0.15 + desert_construction_gold_cost = -0.1 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_spiritual = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_stoic_or_spiritual_desc + } + } + if = { + limit = { + NOT = { + any_culture_county = { + percent >= 0.3 + any_county_province = { + geographical_region = custom_sahara_proper + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = sahara_percentage_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { value = 400 } +} + +tradition_visigothic_codes = { + category = regional + + layers = { + 0 = intrigue + 1 = mediterranean + 4 = crown.dds + } + + is_shown = { + OR = { + this = culture:visigothic + this = culture:basque + any_parent_culture_or_above = { + OR = { + this = culture:visigothic + this = culture:basque + } + } + } + } + can_pick = { + OR = { + this = culture:visigothic + this = culture:basque + any_parent_culture_or_above = { + OR = { + this = culture:visigothic + this = culture:basque + } + } + } + scope:character = { + has_religion = religion:christianity_religion #The Visigothic code is strongly associated with Christian canon law. + } + } + + parameters = { + can_enact_high_partition_succession_law = yes + gender_equal_inheritance = yes + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOT = { + culture_pillar:ethos_egalitarian = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_egalitarian_desc + } + } + if = { + limit = { + trigger_if = { + limit = { + scope:character = { + is_ai = no + } + } + NAND = { + any_ruler = { + count >= 3 + culture = prev + primary_title.tier >= tier_county + is_male = yes + } + any_ruler = { + count >= 3 + culture = prev + primary_title.tier >= tier_county + is_female = yes + } + } + } + trigger_else = { + always = yes + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = three_gender_rulers_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { value = 200 } +} + +tradition_himalayan_settlers = { + category = regional + + layers = { + 0 = learning + 1 = indian + 4 = mountain.dds + } + + is_shown = { #Replaces Mountain Homes + OR = { + has_cultural_pillar = heritage_tibetan + has_cultural_pillar = heritage_qiangic + any_culture_county = { + title_province = { + geographical_region = world_himalaya + } + } + } + } + can_pick = { + OR = { + has_cultural_pillar = heritage_tibetan + has_cultural_pillar = heritage_qiangic + any_culture_county = { + title_province = { + geographical_region = world_himalaya + } + } + } + } + + parameters = { + unlock_maa_mountaineer = yes + rough_terrain_expert_trait_more_common = yes + mountain_trait_bonuses = yes + can_recruit_mountain_specialist = yes + resistant_to_mountain_privation = yes + } + + character_modifier = { + mountains_development_growth_factor = 0.2 + mountains_travel_danger = mountains_high_danger_reduction + movement_speed_land_raiding = 0.15 + hostile_county_attrition_raiding = -0.2 + } + province_modifier = { + mountains_construction_gold_cost = -0.1 + mountains_holding_construction_gold_cost = -0.1 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_spiritual = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_communal_or_spiritual_desc + } + } + if = { + limit = { + NOT = { + any_culture_county = { + percent >= 0.3 + title_province = { + geographical_region = world_himalaya + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = culture_in_himalaya_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 400 + if = { + limit = { + NOT = { + scope:character = { + any_sub_realm_county = { + percent >= 0.4 + title_province = { + geographical_region = world_himalaya + } + } + } + } + } + multiply = 0 + } + } +} + +tradition_desert_nomads = { + category = regional + + layers = { + 0 = martial + 1 = mena + 4 = camel.dds + } + + is_shown = { + OR = { + this = culture:bedouin + any_parent_culture_or_above = { + this = culture:bedouin + } + any_parent_culture = { + has_cultural_tradition = tradition_desert_nomads + } + } + } + can_pick = { + custom_tooltip = { + text = culture_in_camel_region_desc + any_culture_county = { + any_county_province = { + geographical_region = world_innovation_camels + } + } + } + } + + parameters = { + desert_warrior_trait_is_better = yes + desert_hunt_success_chance = yes + resistant_to_desert_privation = yes + } + character_modifier = { + camel_cavalry_maintenance_mult = -0.2 + camel_cavalry_recruitment_cost_mult = -0.2 + character_travel_speed = 10 + desert_travel_danger = desert_high_danger_reduction + drylands_travel_danger = drylands_high_danger_reduction + desert_mountains_travel_danger = desert_mountains_high_danger_reduction + movement_speed_land_raiding = 0.2 + hostile_county_attrition_raiding = -0.3 + } + province_modifier = { + desert_tax_mult = 0.1 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_spiritual = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_stoic_or_spiritual_desc + } + } + if = { + limit = { + NOT = { + any_culture_county = { + percent >= camel_percentage_multiplier_value + any_county_province = { + geographical_region = world_innovation_camels + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = culture_in_camel_region_percentage_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 400 + if = { + limit = { + NOT = { + scope:character = { + any_sub_realm_county = { + percent >= 0.5 + any_county_province = { + geographical_region = world_innovation_camels + } + } + } + } + } + multiply = 0 + } + } +} + +tradition_mountaineer_ruralism = { + category = regional + + layers = { + 0 = martial + 1 = western + 4 = mountain.dds + } + + is_shown = { + has_cultural_pillar = heritage_west_slavic + NOR = { + has_cultural_tradition = tradition_himalayan_settlers + has_cultural_tradition = tradition_mountain_homes + any_culture_county = { + title_province = { + geographical_region = world_himalaya + } + } + } + } + + can_pick = { + has_cultural_pillar = heritage_west_slavic + NOT = { + has_cultural_tradition = tradition_mountain_homes + } + custom_description = { + text = culture_in_mountains_desc + any_culture_county = { + any_county_province = { + OR = { + terrain = mountains + terrain = desert_mountains + } + } + } + } + } + + parameters = { + unlock_maa_zbrojnosh = yes + quarries_building_bonuses = yes + hill_farms_building_bonuses = yes + rough_terrain_expert_trait_more_common = yes + mountain_trait_bonuses = yes + can_recruit_mountain_specialist = yes + } + + character_modifier = { + mountains_travel_danger = mountains_high_danger_reduction + hills_travel_danger = hills_high_danger_reduction + } + + county_modifier = { + hills_development_growth_factor = 0.1 + mountains_development_growth_factor = 0.1 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOT = { + culture_pillar:ethos_stoic = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_stoic_desc + } + } + if = { + limit = { + NOT = { + any_culture_county = { + percent >= 0.3 + any_county_province = { + terrain = mountains + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = mountain_true_percentage_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 400 + if = { + limit = { + NOT = { + scope:character = { + any_sub_realm_county = { + culture = scope:character.culture + any_county_province = { + OR = { + terrain = mountains + terrain = hills + } + } + } + } + } + } + multiply = 0 + } + else_if = { + limit = { + any_culture_county = { + percent >= 0.6 + any_county_province = { + OR = { + terrain = mountains + terrain = hills + } + } + } + } + multiply = 8 + } + } +} + +tradition_steppe_tolerance = { + category = regional + + layers = { + 0 = intrigue + 1 = mena + 4 = greeting.dds + } + + is_shown = { + NOR = { + culture_tradition:tradition_african_tolerance = { is_in_list = traits } + culture_tradition:tradition_religion_blending = { is_in_list = traits } + } + OR = { + has_cultural_pillar = heritage_mongolic + has_cultural_pillar = heritage_turkic + } + } + can_pick = { + custom_tooltip = { + text = culture_in_steppe_desc + any_culture_county = { + percent >= 0.4 + any_county_province = { + geographical_region = world_steppe + } + } + } + } + + parameters = { #easily convert and don't force conversion + more_easily_converted = yes + less_likely_to_force_conversion = yes + } + + character_modifier = { # easier to self-convert and create or reform faith + faith_creation_piety_cost_mult = -0.2 + faith_conversion_piety_cost_mult = -0.2 + different_faith_opinion = 10 + different_faith_county_opinion_mult = -0.25 # reduced penalty for different faiths (note this appears confusing in the UI right now) + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_egalitarian = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_egalitarian_or_communal_desc + } + } + # No extra cost here, since we have a fairly restrictive can_pick block. + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 100 + if = { + limit = { + culture_pillar:ethos_spiritual = { is_in_list = traits } + } + multiply = 0.25 + } + else_if = { + limit = { + any_culture_county = { + percent >= 0.6 + any_county_province = { + terrain = steppe + } + } + } + multiply = 8 + } + } +} + +tradition_nubian_warrior_queens = { + category = regional + + layers = { + 0 = intrigue + 1 = mediterranean + 4 = crown.dds + } + + is_shown = { + NOT = { has_game_rule = inversed_gender_equality } + any_parent_culture_or_above = { + OR = { + this = culture:nubian + this = culture:daju + } + } + } + can_pick = { + any_parent_culture_or_above = { + OR = { + this = culture:nubian + this = culture:daju + } + } + } + + parameters = { + gender_equal_inheritance = yes + female_only_inheritance = yes + female_preference_inheritance = yes + prowess_from_martial_education = yes + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOT = { + culture_pillar:ethos_egalitarian = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_egalitarian_desc + } + } + if = { + limit = { + trigger_if = { + limit = { + scope:character = { + is_ai = no + } + } + NAND = { + any_ruler = { + count >= 3 + culture = prev + primary_title.tier > tier_barony + is_male = yes + } + any_ruler = { + count >= 3 + culture = prev + primary_title.tier > tier_barony + is_female = yes + } + } + } + trigger_else = { + always = yes + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = three_gender_rulers_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { value = 200 } +} + +tradition_nubian_warrior_kings = { + category = regional + + layers = { + 0 = intrigue + 1 = mediterranean + 4 = crown.dds + } + + is_shown = { + has_game_rule = inversed_gender_equality + any_parent_culture_or_above = { + OR = { + this = culture:nubian + this = culture:daju + } + } + } + can_pick = { + any_parent_culture_or_above = { + OR = { + this = culture:nubian + this = culture:daju + } + } + } + + parameters = { + gender_equal_inheritance = yes + male_only_inheritance = yes + male_preference_inheritance = yes + prowess_from_martial_education = yes + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOT = { + culture_pillar:ethos_egalitarian = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_egalitarian_desc + } + } + if = { + limit = { + trigger_if = { + limit = { + scope:character = { + is_ai = no + } + } + NAND = { + any_ruler = { + count >= 3 + culture = prev + primary_title.tier > tier_barony + is_male = yes + } + any_ruler = { + count >= 3 + culture = prev + primary_title.tier > tier_barony + is_female = yes + } + } + } + trigger_else = { + always = yes + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = three_gender_rulers_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { value = 200 } +} diff --git a/common/culture/traditions/00_ritual_traditions.txt b/common/culture/traditions/00_ritual_traditions.txt new file mode 100644 index 00000000..37585942 --- /dev/null +++ b/common/culture/traditions/00_ritual_traditions.txt @@ -0,0 +1,1625 @@ +############################## +# RITUAL CULTURAL TRADITIONS # +############################## + +tradition_monogamous = { + category = ritual + + layers = { + 0 = learning + 1 = western + 4 = knight.dds + } + + can_pick = { + custom_tooltip = { + text = only_one_marriage_tradition_allowed + trigger_if = { + limit = { + OR = { + NOT = { exists = scope:replacing } + NOR = { + scope:replacing = culture_tradition:tradition_polygamous + scope:replacing = culture_tradition:tradition_concubines + } + } + } + NOR = { + culture_tradition:tradition_polygamous = { is_in_list = traits } + culture_tradition:tradition_concubines = { is_in_list = traits } + } + } + } + } + can_pick_for_hybridization = { + custom_tooltip = { + text = only_one_marriage_tradition_allowed + NOT = { # Only blocks polygamous to avoid duplicate warnings, but is blocked by concubines + culture_tradition:tradition_polygamous = { is_in_list = traits } + } + } + } + + parameters = { + number_of_spouses = 1 + romance_scheme_bonus_vs_spouse = yes + } + + character_modifier = { + spouse_opinion = 10 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOT = { + scope:character.faith = { + has_doctrine = doctrine_monogamy + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = cheaper_tradition_from_faith + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { value = 0 } +} + +tradition_polygamous = { + category = ritual + + layers = { + 0 = diplo + 1 = mena + 4 = temple.dds + } + + can_pick = { + custom_tooltip = { + text = only_one_marriage_tradition_allowed + trigger_if = { + limit = { + OR = { + NOT = { exists = scope:replacing } + NOR = { + scope:replacing = culture_tradition:tradition_monogamous + scope:replacing = culture_tradition:tradition_concubines + } + } + } + NOR = { + culture_tradition:tradition_monogamous = { is_in_list = traits } + culture_tradition:tradition_concubines = { is_in_list = traits } + } + } + } + } + can_pick_for_hybridization = { + custom_tooltip = { + text = only_one_marriage_tradition_allowed + NOT = { # Only blocks concubines to avoid duplicate warnings, but is blocked by monogamous + culture_tradition:tradition_concubines = { is_in_list = traits } + } + } + } + + parameters = { + number_of_spouses = 4 + } + + cost = { + prestige = { + add = { + value = tradition_double_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOT = { + scope:character.faith = { + OR = { + has_doctrine = doctrine_polygamy + has_doctrine = doctrine_concubines + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = cheaper_tradition_from_faith + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { value = 0 } +} + +tradition_concubines = { + category = ritual + + layers = { + 0 = intrigue + 1 = indian + 4 = greeting.dds + } + + can_pick = { + custom_tooltip = { + text = only_one_marriage_tradition_allowed + trigger_if = { + limit = { + OR = { + NOT = { exists = scope:replacing } + NOR = { + scope:replacing = culture_tradition:tradition_monogamous + scope:replacing = culture_tradition:tradition_polygamous + } + } + } + NOR = { + culture_tradition:tradition_monogamous = { is_in_list = traits } + culture_tradition:tradition_polygamous = { is_in_list = traits } + } + } + } + } + can_pick_for_hybridization = { + custom_tooltip = { + text = only_one_marriage_tradition_allowed + NOT = { # Only blocks monogamous to avoid duplicate warnings, but is blocked by polygamous + culture_tradition:tradition_monogamous = { is_in_list = traits } + } + } + } + + parameters = { + number_of_spouses = 1 + number_of_consorts = 3 + } + + cost = { + prestige = { + add = { + value = tradition_double_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOT = { + scope:character.faith = { + OR = { + has_doctrine = doctrine_polygamy + has_doctrine = doctrine_concubines + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = cheaper_tradition_from_faith + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { value = 0 } +} + +tradition_sacred_mountains = { + category = ritual + + layers = { + 0 = learning + 1 = mediterranean + 4 = mountain.dds + } + + is_shown = { + NOR = { + has_cultural_pillar = heritage_somalian + has_cultural_pillar = heritage_east_african + has_cultural_pillar = heritage_tibetan + has_cultural_pillar = heritage_qiangic + any_culture_county = { + title_province = { + geographical_region = world_himalaya + } + } + has_cultural_tradition = tradition_himalayan_settlers + } + scope:character = { government_has_flag = government_is_tribal } + } + can_pick = { + custom_description = { + text = culture_in_mountains_desc + any_culture_county = { + any_county_province = { + OR = { + terrain = mountains + terrain = desert_mountains + } + } + } + } + } + + parameters = { + piety_gain_on_building_complete_in_mountains = yes + } + province_modifier = { + desert_mountains_tax_mult = 0.05 + mountains_tax_mult = 0.05 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOT = { + culture_pillar:ethos_spiritual = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_spiritual_desc + } + } + if = { + limit = { + NOT = { + any_culture_county = { + percent >= 0.3 + any_county_province = { + OR = { + terrain = mountains + terrain = desert_mountains + } + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = mountain_percentage_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 100 + if = { + limit = { + NOT = { culture_pillar:ethos_spiritual = { is_in_list = traits } } + } + multiply = 0.25 + } + else_if = { + limit = { + scope:character ?= { + piety_level >= 3 + } + } + multiply = scope:character.piety_level + } + if = { + limit = { + NOT = { + scope:character = { + any_sub_realm_county = { + percent >= 0.3 + culture = scope:character.culture + any_county_province = { + OR = { + terrain = mountains + terrain = desert_mountains + } + } + } + } + } + } + multiply = 0 + } + else_if = { + limit = { + any_culture_county = { + percent >= 0.6 + any_county_province = { + OR = { + terrain = mountains + terrain = desert_mountains + } + } + } + } + multiply = 2 + } + } +} + +tradition_sacred_groves = { + category = ritual + + layers = { + 0 = learning + 1 = western + 4 = forest.dds + } + + is_shown = { + scope:character = { government_has_flag = government_is_tribal } + } + can_pick = { + custom_description = { + text = culture_in_forest_desc + any_culture_county = { + any_county_province = { + OR = { + terrain = forest + terrain = taiga + terrain = jungle + } + } + } + } + } + + parameters = { + piety_gain_on_building_complete_in_forest_taiga = yes + } + province_modifier = { + forest_tax_mult = 0.05 + taiga_tax_mult = 0.05 + jungle_tax_mult = 0.05 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOT = { + culture_pillar:ethos_spiritual = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_spiritual_desc + } + } + if = { + limit = { + NOT = { + any_culture_county = { + percent >= 0.3 + any_county_province = { + OR = { + terrain = forest + terrain = taiga + terrain = jungle + } + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = forest_percentage_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 100 + if = { + limit = { + NOT = { culture_pillar:ethos_spiritual = { is_in_list = traits } } + } + multiply = 0.25 + } + else_if = { + limit = { + scope:character ?= { + piety_level >= 3 + } + } + multiply = scope:character.piety_level + } + if = { + limit = { + NOT = { + scope:character = { + any_sub_realm_county = { + percent >= 0.3 + culture = scope:character.culture + any_county_province = { + OR = { + terrain = forest + terrain = taiga + terrain = jungle + } + } + } + } + } + } + multiply = 0 + } + else_if = { + limit = { + any_culture_county = { + percent >= 0.6 + any_county_province = { + OR = { + terrain = forest + terrain = taiga + terrain = jungle + } + } + } + } + multiply = 4 + } + } +} + +tradition_culinary_art = { + category = ritual + + layers = { + 0 = diplo + 1 = indian + 4 = food.dds + } + + can_pick = { + custom_tooltip = { + text = culture_in_farmlands_or_floodplains_terrain_desc + any_culture_county = { + any_county_province = { + OR = { + terrain = farmlands + terrain = floodplains + } + } + } + } + } + + parameters = { + more_expensive_feasts = yes + refined_feasts = yes + renown_from_feasts = yes + characters_are_better_food_tasters = yes + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_courtly = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + culture_pillar:ethos_spiritual = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_courtly_communal_or_spiritual_desc + } + } + if = { + limit = { + NOT = { + any_culture_county = { + count >= 5 + any_county_province = { + OR = { + terrain = farmlands + terrain = floodplains + } + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = culture_in_farmlands_or_floodplains_terrain_count_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 50 + if = { + limit = { + NOT = { + scope:character = { + any_sub_realm_county = { + count >= 2 + culture = scope:character.culture + any_county_province = { + OR = { + terrain = farmlands + terrain = floodplains + } + } + } + } + } + } + multiply = 0 + } + } +} + +tradition_festivities = { + category = ritual + + layers = { + 0 = diplo + 1 = indian + 4 = food.dds + } + + parameters = { + more_frequent_feasts = yes + reveler_traits_more_common = yes + reveler_traits_more_valued = yes + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_courtly = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_courtly_communal_or_stoic_desc + } + } + if = { + limit = { + trigger_if = { + limit = { + scope:character = { + is_ai = no + } + } + NOT = { + any_ruler = { + count >= 5 + culture = prev + primary_title.tier >= tier_county + has_trait = lifestyle_reveler + } + } + } + trigger_else = { + always = no + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = rulers_with_reveler_lifestyle_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 100 + if = { + limit = { + NOT = { + scope:character ?= { + has_trait = lifestyle_reveler + } + } + } + multiply = 0.5 + } + else = { + multiply = 2 + } + } +} + +tradition_sorcerous_metallurgy = { + category = ritual + + layers = { + 0 = learning + 1 = mediterranean + 4 = tools.dds + } + + is_shown = { + } + + can_pick = { + scope:character = { + faith = { + NOR = { + has_doctrine_parameter = witchcraft_illegal + has_doctrine_parameter = witchcraft_shunned + } + } + } + } + + parameters = { + more_expensive_weapon_inspiration = yes + improved_weapon_inspiration = yes + building_barracks_piety_bonuses = yes + } + + character_modifier = { + prowess_per_piety_level = 2 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_spiritual = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_spiritual_or_communal_desc + } + } + if = { + limit = { + trigger_if = { + limit = { + scope:character = { + is_ai = no + } + } + NOT = { + any_ruler = { + count >= 3 + culture = prev + primary_title.tier >= tier_county + has_trait = witch + } + } + } + trigger_else = { + always = no + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = three_witch_rulers_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 100 + if = { + limit = { + NOT = { + scope:character = { + has_trait = witch + } + } + } + multiply = 0.5 + } + else = { + multiply = 8 + } + } +} + +tradition_mystical_ancestors = { + category = ritual + + layers = { + 0 = learning + 1 = mediterranean + 4 = philosopher.dds + } + + is_shown = { + any_parent_culture_or_above = { + has_cultural_tradition = tradition_mystical_ancestors + } + } + + can_pick = { #Can pick if your culture has mystical ancestors in its history + custom_tooltip = { + text = any_ancestor_culture_was_mystical + any_parent_culture_or_above = { + has_cultural_tradition = tradition_mystical_ancestors + } + } + } + + parameters = { + cannot_disherit = yes + landing_house_members_gives_renown = yes + piety_penalty_for_revoking_titles_from_house_members = yes + } + + character_modifier = { + dynasty_opinion = 10 + } + + cost = { + prestige = { + add = { + value = tradition_double_base_cost + desc = BASE + } + if = { + limit = { + NOT = { + culture_pillar:ethos_spiritual = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_spiritual_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { value = 1000 } +} + +tradition_religion_blending = { + category = ritual + + layers = { + 0 = diplo + 1 = mediterranean + 4 = temple.dds + } + + is_shown = { + NOT = { + culture_tradition:tradition_steppe_tolerance = { is_in_list = traits } + } + } + can_pick = { + custom_tooltip = { + text = rulers_following_different_faiths_trigger_desc + scope:character = { + any_vassal = { + count >= 2 + culture = prev.culture + NOT = { faith = prev.faith } + } + } + } + } + + parameters = { + more_easily_converted = yes + } + + character_modifier = { + faith_creation_piety_cost_mult = -0.2 + faith_conversion_piety_cost_mult = -0.2 + ignore_opinion_of_different_faith = yes + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_courtly = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + culture_pillar:ethos_spiritual = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_courtly_communal_or_spiritual_desc + } + } + if = { + limit = { + NOT = { + scope:character = { + any_vassal = { + count >= 5 + culture = prev.culture + NOT = { faith = prev.faith } + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = rulers_following_different_faiths_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 100 + if = { + limit = { + NOT = { + scope:character = { + any_vassal = { + count >= 5 + culture = prev.culture + NOT = { faith = prev.faith } + } + } + } + } + multiply = 0 + } + } +} + +tradition_religious_patronage = { + category = ritual + + layers = { + 0 = steward + 1 = indian + 4 = temple.dds + } + + can_pick = { + custom_tooltip = { + any_culture_county = { + percent >= 0.2 + any_county_province = { + has_holding_type = church_holding + } + } + text = 20_percent_churches + } + } + + parameters = { + extra_piety_from_temple_construction = yes + renown_from_temple_construction = yes + consolidate_rule_decision = yes + } + character_modifier = { + monthly_piety_from_buildings_mult = 0.25 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_courtly = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + culture_pillar:ethos_spiritual = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_courtly_communal_or_spiritual_desc + } + } + if = { + limit = { + trigger_if = { + limit = { + scope:character = { + is_ai = no + } + } + NOT = { + any_ruler = { + count >= 5 + culture = prev + primary_title.tier >= tier_county + faith = scope:character.faith + has_trait = zealous + } + } + } + trigger_else = { + always = no + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = rulers_with_same_faith_zealous_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + ai_will_do = { + value = 100 + if = { + limit = { + scope:character = { + government_has_flag = government_is_tribal + } + } + multiply = 0 + } + } +} + +tradition_medicinal_plants = { + category = ritual + + layers = { + 0 = learning + 1 = indian + 4 = forest.dds + } + + parameters = { + herbalist_traits_more_common = yes + herbalist_trait_gives_bonuses = yes + } + + character_modifier = { + owned_hostile_scheme_success_chance_add = 5 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bureaucratic = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_stoic_or_bureaucratic_desc + } + } + if = { + limit = { + trigger_if = { + limit = { + scope:character = { + is_ai = no + } + } + NOT = { + any_ruler = { + count >= 3 + culture = prev + primary_title.tier >= tier_county + has_trait = lifestyle_herbalist + } + } + } + trigger_else = { + always = no + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = rulers_with_lifestyle_herbalist_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 100 + if = { + limit = { + scope:character ?= { + NOT = { + has_trait = lifestyle_herbalist + } + } + } + multiply = 0.75 + } + else = { + multiply = 4 + } + } +} + +tradition_sacred_hunts = { + category = ritual + + layers = { + 0 = intrigue + 1 = mediterranean + 4 = hunter.dds + } + + can_pick = { + culture_not_pacifistic_trigger = yes + custom_tooltip = { + text = cannot_have_tradition_vegetarianism + NOT = { culture_tradition:tradition_vegetarianism = { is_in_list = traits } } + } + } + + parameters = { + sacred_hunts = yes + hunting_traits_more_pious = yes + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_spiritual = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_spiritual_or_stoic_desc + } + } + if = { + limit = { + trigger_if = { + limit = { + scope:character = { + is_ai = no + } + } + NOT = { + any_ruler = { + count >= 5 + culture = prev + primary_title.tier >= tier_county + has_trait = lifestyle_hunter + } + } + } + trigger_else = { + always = no + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = rulers_with_hunter_lifestyle_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 100 + if = { + limit = { + NOR = { + culture_pillar:ethos_spiritual = { is_in_list = traits } + culture_pillar:ethos_bellicose = { is_in_list = traits } + } + } + multiply = 0.5 + } + } +} + +tradition_faith_bound = { + category = ritual + + layers = { + 0 = learning + 1 = indian + 4 = crown.dds + } + + parameters = { + same_faith_inheritance_only = yes + } + character_modifier = { + opinion_of_different_faith = -10 + ai_zeal = 25 + } + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOT = { + culture_pillar:ethos_spiritual = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_spiritual_desc + } + } + if = { + limit = { + trigger_if = { + limit = { + scope:character = { + is_ai = no + } + any_ruler = { + culture = prev + NOT = { THIS = scope:character } + faith = scope:character.faith + primary_title.tier >= tier_county + } + } + NOT = { + any_ruler = { + percent >= 0.9 + culture = prev + primary_title.tier >= tier_county + faith = scope:character.faith + } + } + } + trigger_else = { + always = no + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = rulers_with_same_faith_desc + } + } + if = { + limit = { + OR = { + has_variable = defensive_traditionalist_discount + has_variable = aggressive_traditionalist_discount + } + } + add = { + value = traditionalist_discount + desc = traditionalist_discount_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + ai_will_do = { + value = 0 + if = { + limit = { + scope:character = { + has_trait = zealous + } + } + add = 100 + } + } +} + +tradition_by_the_sword = { + category = ritual + + layers = { + 0 = learning + 1 = mena + 4 = swords.dds + } + + can_pick = { + custom_tooltip = { + text = faith_not_allowed_holy_war_desc + scope:character = { + faith = { + NOT = { has_doctrine_parameter = holy_wars_forbidden } # Pacifists cannot Holy War + } + } + } + } + + parameters = { + no_limit_to_kingdom_level_holy_wars = yes + cb_lower_piety_level_requirement = yes + } + character_modifier = { + diplomacy_per_piety_level = -1 + martial_per_piety_level = 1 + different_faith_opinion = -15 + monthly_piety_gain_mult = -0.2 + ai_zeal = 25 + } + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOT = { + culture_pillar:ethos_spiritual = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_spiritual_desc + } + } + if = { + limit = { + trigger_if = { + limit = { + scope:character = { + is_ai = no + } + } + NOT = { + any_ruler = { + count >= 5 + culture = prev + primary_title.tier >= tier_county + faith = scope:character.faith + has_trait = zealous + } + } + } + trigger_else = { + always = no + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = rulers_with_same_faith_zealous_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + ai_will_do = { + value = 0 + if = { + limit = { + scope:character ?= { + has_trait = zealous + ai_has_warlike_personality = yes + any_neighboring_top_liege_realm_owner = { + count >= 2 + primary_title.tier >= tier_kingdom + NOT = { + faith = prev.faith + } + } + } + } + add = 1000 + } + } +} + +tradition_language_scholars = { + category = ritual + + layers = { + 0 = intrigue + 1 = indian + 4 = philosopher.dds + } + + parameters = { + piety_from_language_schemes = yes + language_success_chance_per_piety_level = yes + languages_speed_up_claims = yes + rulers_want_to_learn_languages_of_coreligionists = yes + } + character_modifier = { + learn_language_scheme_phase_duration_add = medium_scheme_phase_duration_bonus_value + } + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_spiritual = { is_in_list = traits } + culture_pillar:ethos_bureaucratic = { is_in_list = traits } + culture_pillar:ethos_egalitarian = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bureaucratic_spiritual_or_egalitarian_desc + } + } + if = { + limit = { + NOT = { + scope:character = { + piety_level >= 3 + num_of_known_languages >= 3 + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = piety_level_kown_languages_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + ai_will_do = { + value = 100 + } +} + +# This is the free version of runestones. +tradition_runestones = { + category = ritual + + layers = { + 0 = steward + 1 = western + 4 = runestone.dds + } + + # Runestones are available in a slightly reduced form in the base title, so we let you access this tradition regardless of whether you have FP1 or not. + is_shown = { + has_cultural_pillar = heritage_north_germanic + } + can_pick = { + custom_tooltip = { + text = cannot_have_tradition_fp1_northern_stories + NOT = { culture_tradition:tradition_fp1_northern_stories = { is_in_list = traits } } + } + } + + parameters = { + has_access_to_runestones = yes + } + + cost = { + prestige = { + # Base cost. + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + # Ethos requirement. + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_bureaucratic = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_or_bureaucratic_desc + } + } + # Poet, Arrogant, or Journaller requirement. + if = { + limit = { + trigger_if = { + limit = { + scope:character = { + is_ai = no + } + } + NOT = { + any_ruler = { + count >= 5 + culture = prev + primary_title.tier >= tier_county + OR = { + has_trait = poet + has_trait = arrogant + has_trait = journaller + } + } + } + } + trigger_else = { + always = no + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = rulers_lacks_storytelling_traits_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 100 + } +} + +tradition_merciful_blindings = { + category = ritual + + layers = { + 0 = intrigue + 1 = mediterranean + 4 = tools.dds + } + + can_pick = { + custom_tooltip = { + text = cannot_have_tradition_byzantine_succession + NOT = { culture_tradition:tradition_byzantine_succession = { is_in_list = traits } } + } + } + + parameters = { + can_blind_prisoners = yes + merciful_blinding = yes + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_spiritual = { is_in_list = traits } + culture_pillar:ethos_courtly = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_spiritual_or_courtly_desc + } + } + if = { + limit = { + scope:character = { + NOT = { + any_prisoner = { + scope:character = { + OR = { + has_banish_reason = prev + has_execute_reason = prev + } + } + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = no_prisoner_with_harsh_reason_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 100 + if = { + limit = { # Reduce chance of picking this if the culture has another use of prisoners already + culture_tradition:tradition_talent_acquisition = { is_in_list = traits } + } + multiply = 0.5 + } + } +} diff --git a/common/culture/traditions/00_societal_traditions.txt b/common/culture/traditions/00_societal_traditions.txt new file mode 100644 index 00000000..23d113b8 --- /dev/null +++ b/common/culture/traditions/00_societal_traditions.txt @@ -0,0 +1,2797 @@ +################################ +# SOCIETAL CULTURAL TRADITIONS # +################################ + +tradition_xenophilic = { + category = societal + + layers = { + 0 = learning + 1 = mena + 4 = conversation.dds + } + + can_pick = { + custom_tooltip = { + text = culture_acceptance_trigger_desc + any_culture_global = { + count >= xenophilic_nr_of_cultures_value + NOT = { this = prev } + cultural_acceptance = { target = prev value >= xenophilic_acceptance_value } + } + } + } + + culture_modifier = { + cultural_acceptance_gain_mult = 0.25 + } + character_modifier = { + different_culture_opinion = 10 + ignore_negative_opinion_of_culture = yes + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_communal = { is_in_list = traits } + culture_pillar:ethos_egalitarian = { is_in_list = traits } + #culture_pillar:ethos_bureaucratic = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_communal_or_egalitarian_desc + } + } + if = { + limit = { + NOT = { + any_culture_global = { + count >= xenophilic_nr_of_cultures_cost_value + NOT = { this = prev } + cultural_acceptance = { target = prev value >= xenophilic_acceptance_cost_value } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = culture_acceptance_cost_desc + } + } + + if = { + limit = { + scope:character = { + has_variable = tradition_xenophilic_travel_discount + } + + } + + add = { + value = tradition_travel_discount + desc = tradition_travel_discount_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 100 + if = { + limit = { # Avoid stacking similar traditions + culture_tradition:tradition_culture_blending = { is_in_list = traits } + } + multiply = 0.25 + } + if = { + limit = { # If you like to invade people, don't pick this tradition + culture_tradition:tradition_malleable_invaders = { is_in_list = traits } + } + multiply = 0 + } + + } +} + +tradition_chivalry = { + category = societal + + layers = { + 0 = diplo + 1 = western + 4 = knight.dds + } + + is_shown = { + OR = { + has_cultural_pillar = heritage_brythonic + has_cultural_pillar = heritage_central_germanic + has_cultural_pillar = heritage_frankish + has_cultural_pillar = heritage_goidelic + has_cultural_pillar = heritage_iberian + has_cultural_pillar = heritage_latin + has_cultural_pillar = heritage_west_germanic + } + } + + parameters = { + can_use_sparring_duel = yes + romance_scheme_bonuses = yes + romance_scheme_penalty = yes + ai_romance_scheme_increase = yes + poet_trait_romance_bonuses = yes + can_host_joust_contests = yes + knight_errant_trait_bonuses = yes + } + + character_modifier = { + tyranny_gain_mult = 0.5 + accolade_glory_gain_mult = 0.1 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_egalitarian = { is_in_list = traits } + culture_pillar:ethos_courtly = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_egalitarian_or_courtly_desc + } + } + if = { + limit = { + NOT = { + scope:character = { + any_knight = { + count >= 6 + prowess >= 12 + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = knights_with_prowess_desc + } + } + + if = { + limit = { + scope:character = { + has_variable = tradition_chivalry_travel_discount + } + + } + + add = { + value = tradition_travel_discount + desc = tradition_travel_discount_desc + } + } + + if = { + limit = { + scope:character = { + has_variable = tradition_chivalry_tournament_discount + } + + } + + add = { + value = tradition_tournament_discount + desc = tradition_tournament_discount_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 200 + } +} + +tradition_hard_working = { + category = societal + + layers = { + 0 = diplo + 1 = indian + 4 = tools.dds + } + + parameters = { + development_gain_on_building_complete = yes + next_level_w_mills = yes + } + character_modifier = { + build_speed = -0.15 + stress_gain_mult = 0.15 + build_gold_cost = 0.15 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_stoic_or_communal_desc + } + } + if = { + limit = { + trigger_if = { + limit = { + scope:character = { + is_ai = no + } + } + NOT = { + any_ruler = { + count >= 5 + culture = prev + primary_title.tier >= tier_county + has_trait = diligent + } + } + } + trigger_else = { + always = no + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = rulers_with_diligent_desc + } + } + + if = { + limit = { + scope:character = { + has_variable = tradition_hard_working_travel_discount + } + } + + add = { + value = tradition_travel_discount + desc = tradition_travel_discount_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 400 + if = { + limit = { + NOR = { + culture_pillar:ethos_stoic = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + } + } + multiply = 0.5 + } + else_if = { + limit = { + scope:character ?= { + ai_has_economical_boom_personality = yes + } + } + multiply = 4 + } + } +} + +tradition_loyal_soldiers = { + category = societal + + layers = { + 0 = diplo + 1 = mena + 4 = hostages.dds + } + + parameters = { + doesnt_care_about_culture_faith_in_factions = yes + wants_to_learn_liege_language = yes + extra_learn_language_success_chance_vs_liege = yes + loyal_trait_more_common = yes + more_hostage_acceptance_for_vassals = yes + } + character_modifier = { + opinion_of_liege = 10 + } + county_modifier = { + county_opinion_add = 5 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_stoic_or_communal_desc + } + } + if = { + limit = { + trigger_if = { + limit = { + scope:character = { + is_ai = no + } + } + NOT = { + any_ruler = { + count >= 3 + culture = prev + primary_title.tier >= tier_county + is_independent_ruler = no + NOT = { + culture = liege.culture + } + } + } + } + trigger_else = { + always = no + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = rulers_under_another_culture_desc + } + } + + if = { + limit = { + scope:character = { + has_variable = tradition_loyal_soldiers_travel_discount + } + } + + add = { + value = tradition_travel_discount + desc = tradition_travel_discount_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 200 + if = { + limit = { + is_divergent_culture = no + } + multiply = 0 + } + } +} + +tradition_pacifism = { + category = societal + + layers = { + 0 = learning + 1 = indian + 4 = diplomacy.dds + } + + can_pick = { + custom_description = { + text = culture_not_bellicose + NOT = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + } + } + culture_not_warlike_trigger = yes + } + + parameters = { + reduced_cost_for_conversion_to_pacifist_faith = yes + } + + county_modifier = { + development_growth_factor = 0.15 + county_opinion_add = 10 + } + character_modifier = { + martial = -1 + monthly_martial_lifestyle_xp_gain_mult = -0.2 + + ai_war_chance = -0.75 + ai_war_cooldown = 10 + ai_boldness = -25 + ai_compassion = 25 + } + province_modifier = { + travel_danger = -5 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_egalitarian = { is_in_list = traits } + culture_pillar:ethos_spiritual = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_spiritual_or_egalitarian_desc + } + } + if = { + limit = { + scope:character = { + is_at_war = yes + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = is_at_war_desc + } + } + + if = { + limit = { + scope:character = { + has_variable = tradition_pacifism_travel_discount + } + + } + + add = { + value = tradition_travel_discount + desc = tradition_travel_discount_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 0 + if = { + limit = { + scope:character = { religion = { is_in_family = rf_eastern } } + is_divergent_culture = yes + } + add = 100 + } + } +} + +tradition_spartan = { + category = societal + + layers = { + 0 = steward + 1 = indian + 4 = council.dds + } + + is_shown = { + NOT = { + scope:character = { + government_has_flag = government_is_tribal + } + } + } + + character_modifier = { + monthly_prestige_gain_mult = -0.35 + monthly_court_grandeur_change_mult = -0.2 + castle_holding_build_gold_cost = -0.15 + castle_holding_holding_build_gold_cost = -0.15 + courtly_opinion = -20 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_stoic = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_stoic_or_communal_desc + } + } + if = { + limit = { + scope:character.prestige_level >= 3 + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = prestige_level_desc + } + } + + if = { + limit = { + scope:character = { + has_variable = tradition_spartan_travel_discount + } + + } + + add = { + value = tradition_travel_discount + desc = tradition_travel_discount_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 50 + if = { + limit = { + is_divergent_culture = no + } + multiply = 0 + } + } +} + +tradition_diasporic = { + category = societal + + layers = { + 0 = learning + 1 = mediterranean + 4 = noble.dds + } + + # Disaporic peoples are marginalized people who have lost their traditional homeland and been forced to live elsewhere. Any hybrid or divergent culture will, by definition, have a new homeland. As a result, new cultures can never pick this tradition, and only historical cultures may start with it. + is_shown = { always = no } + can_pick = { always = no } + + parameters = { + wanderers_learn_languages = yes + extra_language_cap = yes + unlock_voluntary_laampdom = yes + } + + character_modifier = { + stewardship = 1 + learning = 1 + ignore_negative_opinion_of_culture = yes + diplomatic_range_mult = 0.2 + } + + cost = { prestige = 9999 } + ai_will_do = { value = 0 } +} + +tradition_hunters = { + category = societal + + layers = { + 0 = intrigue + 1 = mediterranean + 4 = hunter.dds + } + + can_pick = { + culture_not_pacifistic_trigger = yes + custom_tooltip = { + text = cannot_have_tradition_vegetarianism + NOT = { culture_tradition:tradition_vegetarianism = { is_in_list = traits } } + } + } + + parameters = { + more_frequent_hunts = yes + hunting_traits_more_valued = yes + hunting_traits_more_common = yes + always_unlock_legendary_hunting_lodge = yes + } + + character_modifier = { + character_travel_speed_mult = 0.15 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_spiritual = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_spiritual_or_stoic_desc + } + } + if = { + limit = { + trigger_if = { + limit = { + scope:character = { + is_ai = no + } + } + NOT = { + any_ruler = { + count >= 5 + culture = prev + primary_title.tier >= tier_county + has_trait = lifestyle_hunter + } + } + } + trigger_else = { + always = no + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = rulers_with_hunter_lifestyle_desc + } + } + + if = { + limit = { + scope:character = { + has_variable = tradition_hunters_travel_discount + } + + } + + add = { + value = tradition_travel_discount + desc = tradition_travel_discount_desc + } + } + + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 100 + if = { + limit = { + scope:character = { + government_has_flag = government_is_tribal + } + } + multiply = 0 + } + } +} + +tradition_vegetarianism = { + category = societal + + layers = { + 0 = intrigue + 1 = mediterranean + 4 = food.dds + } + + is_shown = { + OR = { + has_cultural_pillar = heritage_indo_aryan + has_cultural_pillar = heritage_dravidian + } + } + can_pick = { + OR = { + has_cultural_pillar = heritage_indo_aryan + has_cultural_pillar = heritage_dravidian + } + custom_tooltip = { + text = cannot_have_tradition_sacred_hunts + NOT = { culture_tradition:tradition_sacred_hunts = { is_in_list = traits } } + } + custom_tooltip = { + text = cannot_have_tradition_hunters + NOT = { culture_tradition:tradition_hunters = { is_in_list = traits } } + } + } + can_pick_for_hybridization = { + custom_tooltip = { + text = cannot_have_vegetarianism_and_sacred_hunts + NOT = { culture_tradition:tradition_sacred_hunts = { is_in_list = traits } } + } + custom_tooltip = { + text = cannot_have_vegetarianism_and_hunters + NOT = { culture_tradition:tradition_hunters = { is_in_list = traits } } + } + } + + parameters = { + cannot_hunt = yes + vegetarian_building_ban = yes + vegetarian_fruit_orchard_allowed = yes + vegetarian_next_level_cereal_fields = yes + } + character_modifier = { + health = 0.25 + } + county_modifier = { + plains_development_growth_factor = 0.1 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_communal = { is_in_list = traits } + culture_pillar:ethos_spiritual = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_communal_spiritual_or_stoic_desc + } + } + + if = { + limit = { + scope:character = { + has_variable = tradition_vegetarianism_travel_discount + } + + } + + add = { + value = tradition_travel_discount + desc = tradition_travel_discount_desc + } + } + + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 800 + if = { + limit = { + NOT = { + scope:character.faith = { + has_doctrine = tenet_dharmic_pacifism + } + } + } + multiply = 0 + } + } +} + +tradition_seafaring = { + category = societal + + layers = { + 0 = martial + 1 = western + 4 = ship.dds + } + + can_pick = { + custom_description = { + text = percentage_of_culture_on_coast_desc + any_culture_county = { + percent >= 0.5 + any_county_province = { + is_coastal = yes + } + } + } + custom_tooltip = { + text = cannot_have_tradition_fp1_coastal_warriors + NOT = { culture_tradition:tradition_fp1_coastal_warriors = { is_in_list = traits } } + } + } + + parameters = { + trade_ports_give_control_growth = yes + trade_ports_give_levies = yes + can_travel_along_rivers = yes + trade_ports_enabled_for_tribals = yes + } + character_modifier = { + embarkation_cost_mult = -0.85 + sea_travel_danger = medium_sea_danger_reduction + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_bureaucratic = { is_in_list = traits } + culture_pillar:ethos_spiritual = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_bureaucratic_or_spiritual_desc + } + } + if = { + limit = { + NOT = { + any_culture_county = { + percent >= 0.7 + any_county_province = { + is_coastal = yes + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = high_coastal_percentage_desc + } + } + + if = { + limit = { + scope:character = { + has_variable = tradition_seafaring_travel_discount + } + + } + + add = { + value = tradition_travel_discount + desc = tradition_travel_discount_desc + } + } + + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 200 + if = { # Make stacking more less common + limit = { + OR = { + culture_tradition:tradition_maritime_mercantilism = { is_in_list = traits } + culture_tradition:tradition_fishermen = { is_in_list = traits } + } + } + multiply = 2 + } + if = { + limit = { + NOT = { + scope:character = { + any_sub_realm_county = { + percent >= 0.3 + any_county_province = { + is_coastal = yes + } + } + } + } + } + multiply = 0 + } + else_if = { + limit = { + any_culture_county = { + percent >= 0.6 + any_county_province = { + is_coastal = yes + } + } + } + multiply = 8 + } + } +} + +tradition_storytellers = { + category = societal + + layers = { + 0 = learning + 1 = mena + 4 = ceremony.dds + } + + can_pick = { + custom_tooltip = { + text = cannot_have_tradition_fp1_northern_stories + NOT = { culture_tradition:tradition_fp1_northern_stories = { is_in_list = traits } } + } + } + + character_modifier = { + owned_scheme_secrecy_add = -15 + owned_legend_spread_mult = 0.05 + } + parameters = { + better_ward_education = yes + tells_stories = yes + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_courtly = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_courtly_communal_or_stoic_desc + } + } + if = { + limit = { + trigger_if = { + limit = { + scope:character = { + is_ai = no + } + } + NOT = { + any_ruler = { + count >= 3 + culture = prev + primary_title.tier >= tier_county + has_trait = poet + } + } + } + trigger_else = { + always = no + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = rulers_with_poet_desc + } + } + + if = { + limit = { + scope:character = { + has_variable = tradition_storytellers_travel_discount + } + + } + + add = { + value = tradition_travel_discount + desc = tradition_travel_discount_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 50 + if = { + limit = { # Less likely to adopt this tradition for non-tribals, unless any parent culture already has it + NOR = { + scope:character = { + government_has_flag = government_is_tribal + } + any_parent_culture_or_above = { + has_cultural_tradition = tradition_storytellers + } + } + } + multiply = 0.5 + } + else_if = { + limit = { + scope:character ?= { + OR = { + num_personal_legend_seeds >= 1 + num_triggered_legend_seeds >= 1 + } + } + } + multiply = 8 + } + } +} + +tradition_music_theory = { + category = societal + + layers = { + 0 = intrigue + 1 = western + 4 = musician.dds + } + + is_shown = { + has_ep1_court_positions_dlc_trigger = yes + } + + parameters = { + gregarious_trait_gives_bonuses = yes + characters_are_better_court_musicians = yes # Also hooked in to increase the Feast opinion bonus + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_courtly = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + culture_pillar:ethos_spiritual = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_courtly_communal_or_spiritual_desc + } + } + if = { + limit = { + trigger_if = { + limit = { + scope:character = { + is_ai = no + } + } + NOT = { + any_ruler = { + count >= 3 + culture = prev + primary_title.tier >= tier_county + has_trait = poet + } + } + } + trigger_else = { + always = no + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = rulers_with_poet_desc + } + } + + if = { + limit = { + scope:character = { + has_variable = tradition_music_theory_travel_discount + } + + } + + add = { + value = tradition_travel_discount + desc = tradition_travel_discount_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 50 + if = { + limit = { # AI should avoid stacking traditions for court positions + culture_tradition:tradition_poetry = { is_in_list = traits } + } + multiply = 0.25 + } + } +} + +tradition_poetry = { + category = societal + + layers = { + 0 = diplo + 1 = western + 4 = quill.dds + } + + is_shown = { + NOT = { has_cultural_tradition = tradition_fp3_enlightened_magnates } + NAND = { + has_fp3_dlc_trigger = yes + has_cultural_pillar = heritage_iranian + } + } + + can_pick = { + custom_tooltip = { + text = cannot_have_tradition_fp1_northern_stories + NOT = { culture_tradition:tradition_fp1_northern_stories = { is_in_list = traits } } + } + } + + parameters = { + poet_trait_gives_bonuses = yes + poet_trait_more_common = yes + characters_are_better_court_poets = yes + } + + character_modifier = { + owned_legend_spread_mult = 0.05 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_courtly = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + culture_pillar:ethos_spiritual = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_courtly_communal_or_spiritual_desc + } + } + if = { + limit = { + trigger_if = { + limit = { + scope:character = { + is_ai = no + } + } + NOT = { + any_ruler = { + count >= 3 + culture = prev + primary_title.tier >= tier_county + has_trait = poet + } + } + } + trigger_else = { + always = no + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = rulers_with_poet_desc + } + } + + if = { + limit = { + scope:character = { + has_variable = tradition_poetry_travel_discount + } + + } + + add = { + value = tradition_travel_discount + desc = tradition_travel_discount_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 50 + if = { + limit = { # AI should avoid stacking traditions for courtly court positions + culture_tradition:tradition_music_theory = { is_in_list = traits } + } + multiply = 0.25 + } + } +} + +tradition_fishermen = { + category = societal + + layers = { + 0 = steward + 1 = mediterranean + 4 = ship.dds + } + + can_pick = { + custom_description = { + text = culture_on_coast_desc + any_culture_county = { + any_county_province = { + is_coastal = yes + } + } + } + } + + parameters = { + coastal_holdings_give_defensive_bonus = yes + trade_ports_stationed_maa_bonus = yes + } + + character_modifier = { + coastal_advantage = 5 + supply_capacity_mult = 0.5 + coastal_sea_travel_danger = low_sea_danger_reduction + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = culture_not_bellicose + } + } + if = { + limit = { + NOT = { + any_culture_county = { + percent >= 0.3 + any_county_province = { + is_coastal = yes + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = coastal_percentage_desc + } + } + + if = { + limit = { + scope:character = { + has_variable = tradition_fishermen_travel_discount + } + + } + + add = { + value = tradition_travel_discount + desc = tradition_travel_discount_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 200 + if = { # Make stacking a bit more common + limit = { + OR = { + culture_tradition:tradition_maritime_mercantilism = { is_in_list = traits } + culture_tradition:tradition_seafaring = { is_in_list = traits } + } + } + multiply = 2 + } + if = { + limit = { + NOT = { + scope:character = { + any_sub_realm_county = { + percent >= 0.3 + any_county_province = { + is_coastal = yes + } + } + } + } + } + multiply = 0 + } + else_if = { + limit = { + any_culture_county = { + percent >= 0.6 + any_county_province = { + is_coastal = yes + } + } + } + multiply = 2 + } + } +} + +tradition_mendicant_mystics = { + category = societal + + layers = { + 0 = learning + 1 = indian + 4 = speech.dds + } + + parameters = { + mystic_trait_gives_bonuses = yes + mystic_trait_more_common = yes + mendicant_mystics_may_appear = yes + } + + character_modifier = { + character_travel_speed_mult = 0.1 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_communal = { is_in_list = traits } + culture_pillar:ethos_spiritual = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_communal_or_spiritual_desc + } + } + if = { + limit = { + trigger_if = { + limit = { + scope:character = { + is_ai = no + } + } + NOT = { + any_ruler = { + count >= 3 + culture = prev + primary_title.tier >= tier_county + has_trait = lifestyle_mystic + } + } + } + trigger_else = { + always = no + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = rulers_with_mystic_desc + } + } + + if = { + limit = { + scope:character = { + has_variable = tradition_mendicant_mystics_travel_discount + } + } + + add = { + value = tradition_travel_discount + desc = tradition_travel_discount_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 100 + if = { + limit = { + NOT = { + culture_pillar:ethos_spiritual = { is_in_list = traits } + } + } + multiply = 0.7 + } + } +} + +tradition_warrior_culture = { + category = societal + + layers = { + 0 = martial + 1 = western + 4 = soldiers.dds + } + + is_shown = { + NOT = { has_cultural_tradition = tradition_hird } + } + can_pick = { + culture_not_pacifistic_trigger = yes + custom_tooltip = { + text = government_is_tribal_tt + scope:character = { + government_has_flag = government_is_tribal + } + } + custom_tooltip = { + text = cannot_have_tradition_fp1_coastal_warriors + NOT = { culture_tradition:tradition_fp1_coastal_warriors = { is_in_list = traits } } + } + } + + parameters = { + strong_traits_more_valued = yes + strong_traits_more_common = yes + weak_traits_looked_down_upon = yes + rowdy_trait_more_common = yes + pensive_trait_less_common = yes + } + character_modifier = { + cultural_head_fascination_mult = -0.25 + ai_boldness = 25 + accolade_glory_gain_mult = 0.1 + monthly_martial_lifestyle_xp_gain_mult = 0.15 + men_at_arms_limit = 1 + } + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_spiritual = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_or_spiritual_desc + } + } + if = { + limit = { + trigger_if = { + limit = { + scope:character = { + is_ai = no + } + } + NOT = { + any_ruler = { + count >= 3 + culture = prev + primary_title.tier >= tier_county + OR = { + has_trait = strong + has_trait = physique_good + } + } + } + } + trigger_else = { + always = no + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = strong_rulers_desc + } + } + + if = { + limit = { + scope:character = { + has_variable = tradition_warrior_culture_travel_discount + } + } + + add = { + value = tradition_travel_discount + desc = tradition_travel_discount_desc + } + } + if = { + limit = { + has_variable = aggressive_traditionalist_discount + } + add = { + value = traditionalist_discount + desc = traditionalist_discount_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + ai_will_do = { + value = 400 + if = { + limit = { + NOT = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + } + } + multiply = 0 + } + else_if = { + limit = { + scope:character ?= { + ai_has_warlike_personality = yes + } + } + multiply = 4 + } + } +} + +tradition_martial_admiration = { + category = societal + + layers = { + 0 = martial + 1 = indian + 4 = knight.dds + } + + is_shown = { + NOR = { #Replaced by Futuwaa and Druzhina + has_cultural_pillar = heritage_iranian + has_cultural_pillar = heritage_frankish + has_cultural_pillar = heritage_east_slavic + has_cultural_tradition = tradition_futuwaa + has_cultural_tradition = tradition_druzhina + has_cultural_tradition = tradition_chanson_de_geste + } + } + + can_pick = { + culture_not_pacifistic_trigger = yes + NOR = { #Replaced by Futuwaa and Druzhina + has_cultural_pillar = heritage_iranian + has_cultural_pillar = heritage_frankish + has_cultural_pillar = heritage_east_slavic + has_cultural_tradition = tradition_futuwaa + has_cultural_tradition = tradition_druzhina + has_cultural_tradition = tradition_chanson_de_geste + } + } + + parameters = { + martial_education_more_valued = yes + prowess_traits_more_valued = yes + blademaster_trait_bonuses = yes + craven_and_content_traits_looked_down_upon = yes + knights_slightly_more_prone_to_injury = yes + can_duel_rivals = yes + } + + character_modifier = { + knight_limit = 2 + negate_prowess_penalty_add = 5 # Wounded knights fight better! + accolade_glory_gain_mult = 0.1 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_or_stoic_desc + } + } + if = { + limit = { + NOT = { + scope:character = { + any_knight = { + count >= 6 + prowess >= 12 + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = knights_with_prowess_desc + } + } + + if = { + limit = { + scope:character = { + has_variable = tradition_martial_admiration_travel_discount + } + } + + add = { + value = tradition_travel_discount + desc = tradition_travel_discount_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + ai_will_do = { + value = 400 + if = { + limit = { + NOT = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + } + } + multiply = 0.25 + } + else_if = { + limit = { + scope:character ?= { + ai_has_warlike_personality = yes + } + } + multiply = 4 + } + } +} + +tradition_philosopher_culture = { + category = societal + + layers = { + 0 = learning + 1 = indian + 4 = philosopher.dds + } + + is_shown = { + NOT = { has_cultural_tradition = tradition_fp3_beacon_of_learning } + } + + can_pick = { + custom_description = { + text = culture_not_bellicose + NOT = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + } + } + NOT = { has_cultural_tradition = tradition_warrior_culture } + } + + parameters = { + pensive_trait_more_common = yes + rowdy_trait_less_common = yes + innovation_from_learning_traits = yes + } + character_modifier = { + monthly_learning_lifestyle_xp_gain_mult = 0.2 + learning_per_prestige_level = 1 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_courtly = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + culture_pillar:ethos_spiritual = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_courtly_communal_or_spiritual_desc + } + } + if = { + limit = { + trigger_if = { + limit = { + scope:character = { + is_ai = no + } + } + NOT = { + any_ruler = { + count >= 5 + culture = prev + primary_title.tier >= tier_county + has_trait = scholar + } + } + } + trigger_else = { + always = no + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = rulers_with_scholar_desc + } + } + + if = { + limit = { + scope:character = { + has_variable = tradition_philosopher_culture_travel_discount + } + } + + add = { + value = tradition_travel_discount + desc = tradition_travel_discount_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 100 + if = { + limit = { + NOR = { + culture_pillar:ethos_communal = { is_in_list = traits } + culture_pillar:ethos_courtly = { is_in_list = traits } + culture_pillar:ethos_spiritual = { is_in_list = traits } + } + } + multiply = 0 + } + } +} + +tradition_welcoming = { + category = societal + + layers = { + 0 = diplo + 1 = mena + 4 = diplomat.dds + } + + parameters = { + diplomacy_education_better_outcomes = yes + charming_trait_more_common = yes + } + character_modifier = { + monthly_court_grandeur_change_mult = 0.15 + owned_personal_scheme_success_chance_add = 10 + enemy_hostile_scheme_success_chance_add = 10 + character_travel_safety_mult = 0.1 + } + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_communal = { is_in_list = traits } + culture_pillar:ethos_egalitarian = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_communal_egalitarian_or_stoic_desc + } + } + if = { + limit = { + trigger_if = { + limit = { + scope:character = { + is_ai = no + } + } + NOT = { + any_ruler = { + count >= 5 + culture = prev + primary_title.tier >= tier_county + OR = { + has_trait = education_diplomacy_4 + has_trait = education_diplomacy_5 + } + } + } + } + trigger_else = { + always = no + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = rulers_with_diplomacy_edu_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + ai_will_do = { + value = 100 + if = { + limit = { + OR = { + culture_tradition:tradition_eye_for_an_eye = { is_in_list = traits } + culture_tradition:tradition_zealous_people = { is_in_list = traits } + culture_tradition:tradition_forbearing = { is_in_list = traits } + culture_tradition:tradition_equitable = { is_in_list = traits } + culture_tradition:tradition_charitable = { is_in_list = traits } + culture_tradition:tradition_modest = { is_in_list = traits } + } + } + multiply = 0.1 + } + } +} + +tradition_eye_for_an_eye = { + category = societal + + layers = { + 0 = martial + 1 = mena + 4 = king.dds + } + + parameters = { + vengeful_trait_more_common = yes + vengeful_positive_forgiving_negative = yes + rivalries_more_common = yes + hostile_action_vs_rival_bonuses = yes + } + character_modifier = { + dread_baseline_add = 10 + } + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_communal = { is_in_list = traits } + culture_pillar:ethos_bellicose = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_or_communal_desc + } + } + if = { + limit = { + trigger_if = { + limit = { + scope:character = { + is_ai = no + } + } + NOT = { + any_ruler = { + count >= 5 + culture = prev + primary_title.tier >= tier_county + has_trait = vengeful + } + } + } + trigger_else = { + always = no + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = rulers_with_vengeful_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + ai_will_do = { + value = 100 + if = { + limit = { + OR = { + culture_tradition:tradition_welcoming = { is_in_list = traits } + culture_tradition:tradition_zealous_people = { is_in_list = traits } + culture_tradition:tradition_forbearing = { is_in_list = traits } + culture_tradition:tradition_equitable = { is_in_list = traits } + culture_tradition:tradition_charitable = { is_in_list = traits } + culture_tradition:tradition_modest = { is_in_list = traits } + } + } + multiply = 0.1 + } + } +} + +tradition_zealous_people = { + category = societal + + layers = { + 0 = learning + 1 = mediterranean + 4 = speech.dds + } + + parameters = { + zealous_trait_more_common = yes + humble_trait_more_common = yes + harder_to_convert_character_faith = yes + harder_to_convert_county_faith = yes + } + character_modifier = { + opinion_of_different_faith = -15 + ai_zeal = 25 + } + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_spiritual = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_spiritual_or_communal_desc + } + } + if = { + limit = { + trigger_if = { + limit = { + scope:character = { + is_ai = no + } + } + NOT = { + any_ruler = { + count >= 5 + culture = prev + primary_title.tier >= tier_county + has_trait = zealous + } + } + } + trigger_else = { + always = no + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = rulers_with_zealous_desc + } + } + if = { + limit = { + OR = { + has_variable = defensive_traditionalist_discount + has_variable = aggressive_traditionalist_discount + } + } + add = { + value = traditionalist_discount + desc = traditionalist_discount_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + ai_will_do = { + value = 100 + if = { + limit = { + OR = { + culture_tradition:tradition_welcoming = { is_in_list = traits } + culture_tradition:tradition_eye_for_an_eye = { is_in_list = traits } + culture_tradition:tradition_forbearing = { is_in_list = traits } + culture_tradition:tradition_equitable = { is_in_list = traits } + culture_tradition:tradition_charitable = { is_in_list = traits } + culture_tradition:tradition_modest = { is_in_list = traits } + } + } + multiply = 0.1 + } + } +} + +tradition_forbearing = { + category = societal + + layers = { + 0 = intrigue + 1 = mediterranean + 4 = philosopher.dds + } + + parameters = { + patient_trait_more_common = yes + calm_trait_more_common = yes + } + character_modifier = { + stress_gain_mult = -0.1 + dread_baseline_add = -5 + + ai_war_cooldown = 3 + } + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_spiritual = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_stoic_or_spiritual_desc + } + } + if = { + limit = { + trigger_if = { + limit = { + scope:character = { + is_ai = no + } + } + NOT = { + any_ruler = { + count >= 5 + culture = prev + primary_title.tier >= tier_county + has_trait = patient + } + } + } + trigger_else = { + always = no + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = rulers_with_patient_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + ai_will_do = { + value = 100 + if = { + limit = { + OR = { + culture_tradition:tradition_welcoming = { is_in_list = traits } + culture_tradition:tradition_eye_for_an_eye = { is_in_list = traits } + culture_tradition:tradition_zealous_people = { is_in_list = traits } + culture_tradition:tradition_equitable = { is_in_list = traits } + culture_tradition:tradition_charitable = { is_in_list = traits } + culture_tradition:tradition_modest = { is_in_list = traits } + } + } + multiply = 0.1 + } + } +} + +tradition_equitable = { + category = societal + + layers = { + 0 = diplo + 1 = mediterranean + 4 = hostages.dds + } + + parameters = { + just_trait_more_common = yes + honest_trait_more_common = yes + more_hostage_acceptance = yes + } + character_modifier = { + hostile_scheme_phase_duration_add = medium_scheme_phase_duration_malus_value + } + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_egalitarian = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_stoic_or_egalitarian_desc + } + } + if = { + limit = { + trigger_if = { + limit = { + scope:character = { + is_ai = no + } + } + NOT = { + any_ruler = { + count >= 5 + culture = prev + primary_title.tier >= tier_county + has_trait = just + } + } + } + trigger_else = { + always = no + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = rulers_with_just_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 100 + if = { + limit = { + OR = { + culture_tradition:tradition_welcoming = { is_in_list = traits } + culture_tradition:tradition_eye_for_an_eye = { is_in_list = traits } + culture_tradition:tradition_zealous_people = { is_in_list = traits } + culture_tradition:tradition_forbearing = { is_in_list = traits } + culture_tradition:tradition_charitable = { is_in_list = traits } + culture_tradition:tradition_modest = { is_in_list = traits } + } + } + multiply = 0.1 + } + } +} + +tradition_charitable = { + category = societal + + layers = { + 0 = diplo + 1 = mena + 4 = ceremony.dds + } + + parameters = { + generous_trait_more_common = yes + compassionate_trait_more_common = yes + more_gift_opinion = yes + gives_more_gifts = yes + } + character_modifier = { + general_opinion = 5 + monthly_income_mult = -0.03 + ai_greed = -25 + } + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_communal = { is_in_list = traits } + culture_pillar:ethos_spiritual = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_spiritual_or_communal_desc + } + } + if = { + limit = { + trigger_if = { + limit = { + scope:character = { + is_ai = no + } + } + NOT = { + any_ruler = { + count >= 5 + culture = prev + primary_title.tier >= tier_county + has_trait = generous + } + } + } + trigger_else = { + always = no + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = rulers_with_generous_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + ai_will_do = { + value = 100 + if = { + limit = { + OR = { + culture_tradition:tradition_welcoming = { is_in_list = traits } + culture_tradition:tradition_eye_for_an_eye = { is_in_list = traits } + culture_tradition:tradition_zealous_people = { is_in_list = traits } + culture_tradition:tradition_forbearing = { is_in_list = traits } + culture_tradition:tradition_equitable = { is_in_list = traits } + culture_tradition:tradition_modest = { is_in_list = traits } + } + } + multiply = 0.1 + } + } +} + +tradition_modest = { + category = societal + + layers = { + 0 = learning + 1 = indian + 4 = artisan.dds + } + + parameters = { + temperate_trait_more_common = yes + introverted_trait_bonuses = yes + ambitious_trait_penalty = yes + } + character_modifier = { + monthly_prestige_gain_mult = -0.1 + ai_boldness = -25 + } + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_stoic = { is_in_list = traits } + culture_pillar:ethos_spiritual = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_stoic_or_spiritual_desc + } + } + if = { + limit = { + trigger_if = { + limit = { + scope:character = { + is_ai = no + } + } + NOT = { + any_ruler = { + count >= 5 + culture = prev + primary_title.tier >= tier_county + has_trait = temperate + } + } + } + trigger_else = { + always = no + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = rulers_with_temperate_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + ai_will_do = { + value = 100 + if = { + limit = { + OR = { + culture_tradition:tradition_welcoming = { is_in_list = traits } + culture_tradition:tradition_eye_for_an_eye = { is_in_list = traits } + culture_tradition:tradition_zealous_people = { is_in_list = traits } + culture_tradition:tradition_forbearing = { is_in_list = traits } + culture_tradition:tradition_equitable = { is_in_list = traits } + culture_tradition:tradition_charitable = { is_in_list = traits } + } + } + multiply = 0.1 + } + } +} + +tradition_practiced_pirates = { + category = societal + + layers = { + 0 = intrigue + 1 = mediterranean + 4 = battle.dds + } + + can_pick = { + custom_description = { + text = percentage_of_culture_on_coast_desc + any_culture_county = { + percent >= 0.5 + any_county_province = { + is_coastal = yes + } + } + } + } + + parameters = { + culture_can_raid_at_sea_even_if_feudal = yes + not_tribal_raiding_malus = yes + } + + character_modifier = { + max_loot_mult = 0.25 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + # Ethos requirement. + if = { + limit = { + NOT = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_desc + } + } + # Coastal requirement. + if = { + limit = { + NOT = { + any_culture_county = { + percent >= 0.7 + any_county_province = { + is_coastal = yes + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = high_coastal_percentage_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 100 + if = { + limit = { # Should be fairly rare for cultures outside of a Berber heritage + has_cultural_pillar = heritage_berber + } + multiply = 5 + } + } +} + +tradition_life_is_just_a_joke = { + category = societal + + layers = { + 0 = intrigue + 1 = western + 4 = noble.dds + } + + parameters = { + # Gregarious, Content, Cynical, & Fickle all gain +5 same-culture opinion. + life_is_a_joke_trait_same_culture_opinion = yes + #lose stress on war declaration + war_stress_loss = yes + #AI boldness increased + added_character_boldness = yes + cultrad_unlocks_t3_arbitrary_arrests = yes + } + + character_modifier = { + ai_boldness = high_positive_ai_value + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_stoic = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_stoic_or_communal_desc + } + } + if = { + limit = { + trigger_if = { + limit = { + scope:character = { + is_ai = no + } + } + NOT = { + any_ruler = { + count >= 5 + culture = prev + primary_title.tier >= tier_county + has_trait = cynical + } + } + } + trigger_else = { + always = no + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = rulers_with_cynical_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { value = 0 } # The AI never pick this +} + +tradition_artisans = { + category = societal + + layers = { + 0 = steward + 1 = mena + 4 = artisan.dds + } + + is_shown = { + has_dlc_feature = royal_court + } + + parameters = { + improved_artisan_inspiration = yes + improved_weaver_inspiration = yes + } + county_modifier = { + build_gold_cost = -0.05 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_courtly = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + culture_pillar:ethos_spiritual = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_courtly_communal_or_spiritual_desc + } + } + if = { + limit = { + trigger_if = { + limit = { + scope:character = { + is_ai = no + } + } + NOT = { + any_ruler = { + count >= 3 + culture = prev + primary_title.tier >= tier_county + OR = { + has_completed_inspiration = yes + any_courtier_or_guest = { + OR = { + has_completed_inspiration = yes + exists = inspiration + } + } + } + } + } + } + trigger_else = { + always = no + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = has_courtier_or_guest_with_inspiration_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 100 + } +} + +tradition_noble_adoption = { + category = societal + + layers = { + 0 = diplo + 1 = mena + 4 = diplomat.dds + } + + is_shown = { + NOT = { + has_game_rule = no_adoption + } + } + + parameters = { + allows_adoption = yes + free_adoption = yes + better_ward_education = yes + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_courtly = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + culture_pillar:ethos_spiritual = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_courtly_communal_or_spiritual_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 100 + } +} diff --git a/common/culture/traditions/01_fp1_traditions.txt b/common/culture/traditions/01_fp1_traditions.txt new file mode 100644 index 00000000..419d224e --- /dev/null +++ b/common/culture/traditions/01_fp1_traditions.txt @@ -0,0 +1,545 @@ +########################### +# FP1 CULTURAL TRADITIONS +########################### + +####################### +# Norse Specific +####################### + +tradition_fp1_coastal_warriors = { + category = combat + + layers = { + 0 = martial + 1 = western + 4 = viking.dds + } + + is_shown = { + # DLC check. + has_fp1_dlc_trigger = yes + NOT = { has_cultural_tradition = tradition_hird } + has_cultural_pillar = heritage_north_germanic + } + + can_pick = { + # Must be of a suitable heritage. + custom_tooltip = { + text = northern_germanic_heritage_trigger + has_cultural_pillar = heritage_north_germanic + } + # And have a coastal presence. + custom_description = { + text = culture_on_coast_desc + any_culture_county = { + any_county_province = { + is_coastal = yes + } + } + } + # Shouldn't be combined with the following traditions: + custom_tooltip = { + text = cannot_have_tradition_warrior_culture + NOT = { culture_tradition:tradition_warrior_culture = { is_in_list = traits } } + } + custom_tooltip = { + text = cannot_have_tradition_seafaring + NOT = { culture_tradition:tradition_seafaring = { is_in_list = traits } } + } + } + + parameters = { + unlock_maa_bondi = yes + unlock_maa_vigmen = yes + unlock_maa_varangian_veterans = yes + unlock_maa_huscarls = yes + strong_traits_more_valued = yes + strong_traits_more_common = yes + trade_ports_stationed_maa_bonus = yes + trade_ports_enabled_for_tribals = yes + unlock_voluntary_laampdom = yes + more_likely_to_be_laamps = yes + } + + character_modifier = { + sea_travel_danger = medium_sea_danger_reduction + coastal_sea_travel_danger = medium_sea_danger_reduction + taiga_provisions_use_mult = -0.1 + forest_provisions_use_mult = -0.1 + } + + cost = { + prestige = { + # Base cost. + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + # Ethos requirement. + if = { + limit = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = culture_not_bellicose + } + } + # Gotta be a heavily coastal culture not to get a surcharge. + if = { + limit = { + NOT = { + any_culture_county = { + percent >= 0.3 + any_county_province = { + is_coastal = yes + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = coastal_percentage_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 100 + if = { + limit = { + NOT = { + scope:character = { + any_sub_realm_county = { + percent >= 0.3 + any_county_province = { + is_coastal = yes + } + } + } + } + } + multiply = 0 + } + } +} + +tradition_fp1_performative_honour = { + category = societal + + layers = { + 0 = diplo + 1 = western + 4 = shieldmaiden.dds + } + + is_shown = { + # DLC check. + has_fp1_dlc_trigger = yes + has_cultural_pillar = heritage_north_germanic + } + + can_pick = { + # Must be of a suitable heritage. + custom_tooltip = { + text = northern_germanic_heritage_trigger + has_cultural_pillar = heritage_north_germanic + } + # Shouldn't be combined with the following traditions: + custom_tooltip = { + text = cannot_have_tradition_fp1_trials_by_combat + NOT = { culture_tradition:tradition_fp1_trials_by_combat = { is_in_list = traits } } + } + custom_tooltip = { + text = cannot_have_tradition_fp1_the_right_to_prove + NOT = { culture_tradition:tradition_fp1_the_right_to_prove = { is_in_list = traits } } + } + } + + parameters = { + has_access_to_shieldmaidens = yes + has_access_to_trials_by_combat = yes + craven_trait_costs_prestige = yes + weak_traits_looked_down_upon = yes + } + + character_modifier = { + knight_limit = 1 + accolade_glory_gain_mult = 0.1 + } + + cost = { + prestige = { + # Base cost. + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + # Ethos requirement. + if = { + limit = { + NOT = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_desc + } + } + if = { + limit = { + NOT = { + scope:character = { + any_courtier = { + count >= 5 + prowess >= 10 + is_adult = yes + NOT = { can_be_knight_trigger = { ARMY_OWNER = prev } } + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = courtiers_with_prowess_who_cant_be_knight_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { value = 100 } +} + +tradition_fp1_northern_stories = { + category = societal + + layers = { + 0 = diplo + 1 = western + 4 = runestone.dds + } + + is_shown = { + # DLC check. + has_fp1_dlc_trigger = yes + has_cultural_pillar = heritage_north_germanic + } + + can_pick = { + # Must be of a suitable heritage. + custom_tooltip = { + text = northern_germanic_heritage_trigger + has_cultural_pillar = heritage_north_germanic + } + # Shouldn't be combined with the following traditions: + custom_tooltip = { + text = cannot_have_tradition_runestones + NOT = { culture_tradition:tradition_runestones = { is_in_list = traits } } + } + custom_tooltip = { + text = cannot_have_tradition_poetry + NOT = { culture_tradition:tradition_poetry = { is_in_list = traits } } + } + custom_tooltip = { + text = cannot_have_tradition_storytellers + NOT = { culture_tradition:tradition_storytellers = { is_in_list = traits } } + } + } + + parameters = { + has_access_to_runestones = yes + poet_trait_gives_bonuses = yes + poet_trait_more_common = yes + better_ward_education = yes + tells_stories = yes + } + + character_modifier = { + owned_scheme_secrecy_add = -15 + owned_legend_spread_mult = 0.1 + } + + cost = { + prestige = { + # Base cost. + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + # Ethos requirement. + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_bureaucratic = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_or_bureaucratic_desc + } + } + if = { + limit = { + trigger_if = { + limit = { + scope:character = { + is_ai = no + } + } + NOT = { + any_ruler = { + count >= 3 + culture = prev + primary_title.tier >= tier_county + has_trait = poet + } + } + } + trigger_else = { + always = no + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = rulers_with_poet_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { value = 100 } +} + +####################### +# Generic +####################### + +tradition_fp1_trials_by_combat = { + category = societal + + layers = { + 0 = intrigue + 1 = western + 4 = fight.dds + } + + is_shown = { + # DLC check. + has_fp1_dlc_trigger = yes + has_cultural_pillar = heritage_north_germanic + } + + can_pick = { + custom_tooltip = { + text = cannot_have_tradition_fp1_performative_honour + NOT = { culture_tradition:tradition_fp1_performative_honour = { is_in_list = traits } } + } + } + + parameters = { + has_access_to_trials_by_combat = yes + blademaster_traits_give_learning = yes + craven_trait_costs_prestige = yes + } + + character_modifier = { + knight_limit = 1 + accolade_glory_gain_mult = 0.1 + } + + cost = { + prestige = { + # Base cost. + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + # Ethos requirement. + if = { + limit = { + NOR = { + culture_pillar:ethos_bureaucratic = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + culture_pillar:ethos_courtly = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_stoic_or_courtly_desc + } + } + if = { + limit = { + trigger_if = { + limit = { + scope:character = { + is_ai = no + } + } + NOT = { + any_ruler = { + count >= 3 + culture = prev + primary_title.tier >= tier_county + OR = { + has_trait = education_martial_4 + has_trait = education_martial_5 + } + learning >= 10 + } + } + } + trigger_else_if = { + limit = { + scope:character = { + OR = { + has_trait = education_martial_4 + has_trait = education_martial_5 + } + learning >= 10 + } + } + always = no + } + trigger_else_if = { + limit = { + scope:character.culture = { + OR = { + has_cultural_pillar = heritage_brythonic + has_cultural_pillar = heritage_central_germanic + has_cultural_pillar = heritage_frankish + has_cultural_pillar = heritage_goidelic + has_cultural_pillar = heritage_iberian + has_cultural_pillar = heritage_latin + has_cultural_pillar = heritage_west_germanic + } + } + } + always = no + } + trigger_else = { + always = no + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = rulers_with_martial_edu_and_learning_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { value = 100 } +} + +tradition_fp1_the_right_to_prove = { + category = societal + + layers = { + 0 = intrigue + 1 = western + 4 = shieldmaiden.dds + } + + is_shown = { + # DLC check. + has_fp1_dlc_trigger = yes + } + + can_pick = { + custom_tooltip = { + text = cannot_have_tradition_fp1_performative_honour + NOT = { culture_tradition:tradition_fp1_performative_honour = { is_in_list = traits } } + } + } + + parameters = { + has_access_to_shieldmaidens = yes + } + + character_modifier = { + knight_limit = -2 + knight_effectiveness_mult = 0.25 + } + + cost = { + prestige = { + # Base cost. + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + # Ethos requirement. + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + + # Egalitarian, provided you're moving *up* the scale. Somewhat less so when moving down. + culture_pillar:ethos_egalitarian = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_egalitarian_or_communal_desc + } + } + if = { + limit = { + NOT = { + scope:character = { + any_courtier = { + count >= 5 + prowess >= 10 + is_adult = yes + NOT = { can_be_knight_trigger = { ARMY_OWNER = prev } } + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = courtiers_with_prowess_who_cant_be_knight_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 100 + if = { + limit = { + NOT = { + scope:character = { + any_courtier = { + count >= 5 + prowess >= 10 + is_adult = yes + NOT = { can_be_knight_trigger = { ARMY_OWNER = prev } } + } + } + } + } + multiply = 0 + } + } +} diff --git a/common/culture/traditions/03_fp2_traditions.txt b/common/culture/traditions/03_fp2_traditions.txt new file mode 100644 index 00000000..11fd79ce --- /dev/null +++ b/common/culture/traditions/03_fp2_traditions.txt @@ -0,0 +1,400 @@ +########################### +# FP2 CULTURAL TRADITIONS +########################### + +####################### +# Aragonese Specific +####################### + +tradition_fp2_state_ransoming = { + category = realm + + layers = { + 0 = steward + 1 = western + 4 = state_ransoming.dds + } + + is_shown = { + # DLC check. + has_fp2_dlc_trigger = yes + } + + # Anyone can take this. + + parameters = { + knights_die_less_but_are_captured_more = yes + characters_more_likely_to_be_captured_in_sieges = yes + can_demand_higher_ransoms_from_lower_tiers = yes + } + + character_modifier = { + hard_casualty_modifier = -0.5 + monthly_war_income_mult = -0.25 + } + + county_modifier = { + # Naturally, people are more keen to turn up to serve. + levy_size = 0.1 + } + + cost = { + prestige = { + # Base cost. + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + # Ethos requirement. + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_or_communal_desc + } + } + # Heritage or language + if = { + limit = { + NOR = { + has_cultural_pillar = heritage_iberian + AND = { + exists = culture_head + culture_head = { knows_language = language_iberian } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = lack_iberian_heritage_or_language_penalty_desc + } + } + # General replacement stuff. + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 100 + } +} + +####################### +# Castilian Specific +####################### + +tradition_fp2_strategy_gamers = { + category = ritual + + layers = { + 0 = diplo + 1 = western + 4 = board_gamers.dds + } + + is_shown = { + # DLC check. + has_fp2_dlc_trigger = yes + } + + # Anyone can take this. + + parameters = { + commanders_likelier_to_gain_commander_traits = yes + may_challenge_to_board_games = yes + may_wager_land_on_board_games = yes + } + + character_modifier = { + movement_speed = 0.1 + prowess = medium_skill_penalty + martial = medium_skill_bonus + } + + cost = { + prestige = { + # Base cost. + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + # Ethos requirement. + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_courtly = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_or_courtly_desc + } + } + # Either high martial, high learning, or a chess board required. + if = { + limit = { exists = culture_head } + if = { + limit = { + culture_head = { + NOR = { + martial >= very_high_skill_rating + learning >= very_high_skill_rating + any_character_artifact = { has_variable = can_be_used_for_board_games } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = lack_martial_learning_or_chess_board_penalty_desc + } + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 0 + + if = { + limit = { exists = culture_head } + culture_head = { + # Absolute nerds. + if = { + limit = { + martial >= extremely_high_skill_rating + learning >= extremely_high_skill_rating + has_trait = scholar + } + add = 100 + } + # People who got suckered in & accidentally started a trend. + if = { + limit = { + any_character_artifact = { has_variable = can_be_used_for_board_games } + } + add = 100 + } + } + } + } +} + +####################### +# Andalusian Specific +####################### + +tradition_fp2_malleable_subjects = { + category = realm + + layers = { + 0 = intrigue + 1 = mena + 4 = malleable_subjects.dds + } + + is_shown = { + # DLC check. + has_fp2_dlc_trigger = yes + has_cultural_pillar = heritage_iberian + } + + can_pick = { + # Must be of a suitable heritage. + custom_tooltip = { + text = iberian_heritage_trigger + has_cultural_pillar = heritage_iberian + } + } + + parameters = { + doesnt_care_about_culture_faith_in_factions = yes + wants_to_learn_liege_language = yes + harder_to_convert_county_culture_without_heritage = yes + easier_to_convert_county_culture_with_heritage = yes + powerful_foreign_knights_find_you_attractive = yes + # ^[blushes] + } + + character_modifier = { + mercenary_hire_cost_mult = -0.5 + vassal_levy_contribution_mult = 0.25 + different_culture_opinion = 10 + ignore_negative_opinion_of_culture = yes + } + + culture_modifier = { + mercenary_count_mult = 2 + cultural_acceptance_gain_mult = 0.25 + } + + cost = { + prestige = { + # Base cost. + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + # Ethos requirement. + if = { + limit = { + NOR = { + culture_pillar:ethos_egalitarian = { is_in_list = traits } + culture_pillar:ethos_courtly = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_egalitarian_or_courtly_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 0 + # Players might want this, but the AI never does. + } +} + +####################### +# Generic +####################### + +tradition_fp2_ritualised_friendship = { + category = societal + + layers = { + 0 = diplo + 1 = western + 4 = ritualised_friendship.dds + } + + is_shown = { + # DLC check. + #has_fp2_dlc_trigger = yes + } + + can_pick = { + # Must have at least one friend. No friendless losers. Especially you, Nick. + custom_tooltip = { + text = need_at_least_one_friend + culture_head ?= { + any_relation = { + type = friend + count >= 1 + } + } + } + } + + parameters = { + automatic_befriend_access = yes + may_propose_best_friendship = yes + strong_hooks_and_stress_effects_best_friends = yes + may_select_friendship_synergy_bonus = yes + } + + character_modifier = { + scheme_phase_duration_against_friend_add = 20 + scheme_phase_duration_against_best_friend_add = 40 + } + + cost = { + prestige = { + # Base cost. + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + # No ethos requirement: everyone likes friends. + # Need at least three friends. + if = { + limit = { exists = culture_head } + if = { + limit = { + culture_head = { + any_relation = { + type = friend + count < 3 + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = guess_you_need_more_friends_desc + } + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 0 + + if = { + limit = { exists = culture_head } + culture_head = { + # Some traits make you want to codify this more... + if = { + limit = { has_trait = gregarious } + add = 50 + } + if = { + limit = { has_trait = just } + add = 25 + } + if = { + limit = { has_trait = compassionate } + add = 25 + } + # ... but arbitrary characters have zero interest in anything nearly so formal + if = { + limit = { has_trait = arbitrary } + add = -200 + } + # We don't modify down for shy because, if anything, you'd expect a shy person to be more serious about the few friends they *do* have. + # Having lots of friends makes you more likely to want this. + if = { + limit = { + any_relation = { + type = friend + count >= 4 + } + } + add = 50 + } + # As does having a best friend already. + if = { + limit = { + any_relation = { + type = best_friend + count >= 1 + } + } + add = 25 + } + # And certain lifestyles also make you want to focus on this. + if = { + limit = { has_focus = martial_chivalry_focus } + add = 10 + } + } + } + } +} diff --git a/common/culture/traditions/03_fp3_traditions.txt b/common/culture/traditions/03_fp3_traditions.txt new file mode 100644 index 00000000..cce295ae --- /dev/null +++ b/common/culture/traditions/03_fp3_traditions.txt @@ -0,0 +1,801 @@ +########################### +# FP3 CULTURAL TRADITIONS +########################### + +####################### +# Central Asian Specific +####################### + +tradition_fp3_frontier_warriors = { + category = regional + + layers = { + 0 = martial + 1 = mena + 4 = dismounted_warrior.dds + } + + is_shown = { + # DLC check. + has_fp3_dlc_trigger = yes + + # Any culture present in the given area can pick this + any_culture_county = { + any_county_province = { + OR = { + geographical_region = world_transoxiana + geographical_region = world_khorasan + geographical_region = world_steppe_tarim + } + } + } + } + + can_pick = { + culture_not_pacifistic_trigger = yes + # Must have a significant cultural presence in the general Turanian area, i.e. the "frontier" + custom_tooltip = { + text = culture_on_eastern_frontier_desc + any_culture_county = { + percent >= 0.2 + any_county_province = { + OR = { + geographical_region = world_transoxiana + geographical_region = world_khorasan + geographical_region = world_steppe_tarim + } + } + } + } + } + + parameters = { + unlock_maa_tarkhan = yes + faith_warrior_traits_more_valued = yes + } + province_modifier = { + hostile_raid_time = 0.5 + } + character_modifier = { + mercenary_hire_cost_mult = -0.10 + movement_speed = 0.05 + } + + cost = { + prestige = { + # Base cost. + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + # Ethos requirement. + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_or_stoic_desc + } + } + # Gotta be a steppe-heavy culture not to get a surcharge. + if = { + limit = { + NOT = { + any_culture_county = { + percent >= 0.3 + any_county_province = { + OR = { + terrain = steppe + terrain = desert + } + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = steppe_or_desert_percentage_desc + } + } + #Turko-Mongol-Iranians get it cheaper! + if = { + limit = { + NOR = { + has_cultural_pillar = heritage_iranian + has_cultural_pillar = heritage_turkic + has_cultural_pillar = heritage_mongolic + has_cultural_pillar = heritage_tocharian + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = not_of_central_asian_heritage_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 100 + if = { + limit = { + NOT = { + scope:character = { + any_sub_realm_county = { + percent >= 0.3 + any_county_province = { + terrain = steppe + } + } + } + } + } + multiply = 0 + } + } +} + +####################### +# Persian Specific +####################### + +tradition_fp3_irrigation_experts = { + category = realm + + layers = { + 0 = steward + 1 = mena + 4 = water_technology.dds + } + + is_shown = { + # DLC check. + has_fp3_dlc_trigger = yes + has_cultural_pillar = heritage_iranian + NOT = { has_cultural_tradition = tradition_dryland_dwellers } + } + + can_pick = { + custom_description = { + text = culture_in_dryland_desc + any_culture_county = { + any_county_province = { + OR = { + terrain = drylands + terrain = desert + terrain = desert_mountains + } + } + } + } + # Shouldn't be combined with the following traditions: + custom_tooltip = { + text = cannot_have_tradition_dryland_dwellers + NOT = { culture_tradition:tradition_dryland_dwellers = { is_in_list = traits } } #this is another approach to drylands dwelling + } + } + + parameters = { + innovative_traits_more_valued = yes + unlocks_qanat_building = yes + plantations_building_bonuses = yes + drylands_hunt_success_chance = yes + } + character_modifier = { + negate_health_penalty_add = 0.1 + desert_travel_danger = desert_medium_danger_reduction + drylands_travel_danger = drylands_medium_danger_reduction + desert_mountains_travel_danger = desert_mountains_medium_danger_reduction + } + county_modifier = { + desert_development_growth_factor = 0.35 + drylands_development_growth_factor = 0.15 + } + province_modifier = { + desert_construction_gold_cost = -0.1 + drylands_construction_gold_cost = -0.1 + desert_holding_construction_gold_cost = -0.1 + drylands_holding_construction_gold_cost = -0.1 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_courtly = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + culture_pillar:ethos_egalitarian = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_communal_egalitarian_or_courtly_desc + } + } + if = { + limit = { + NOT = { + any_culture_county = { + percent >= 0.3 + any_county_province = { + OR = { + terrain = drylands + terrain = desert + } + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = dry_percentage_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 400 + if = { + limit = { + NOT = { #if the realm isn't very dry, the AI won't pick this + scope:character = { + any_sub_realm_county = { + percent >= 0.4 + culture = scope:character.culture + any_county_province = { + OR = { + terrain = drylands + terrain = desert + } + } + } + } + } + } + multiply = 0 + } + else_if = { + limit = { + any_culture_county = { + percent >= 0.6 + any_county_province = { + OR = { + terrain = drylands + terrain = desert + } + } + } + } + multiply = 4 + } + } +} + +tradition_fp3_beacon_of_learning = { # Offshoot of tradition_philosopher_culture + category = societal + + layers = { + 0 = learning + 1 = mena + 4 = beacon_of_learning.dds + } + + is_shown = { + has_fp3_dlc_trigger = yes + has_cultural_pillar = heritage_iranian + NOT = { has_cultural_tradition = tradition_philosopher_culture } # Replaces Philosopher Culture + } + + can_pick = { + custom_description = { + text = culture_not_bellicose + NOT = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + } + } + NOT = { has_cultural_tradition = tradition_warrior_culture } + NOT = { has_cultural_tradition = tradition_philosopher_culture } + } + can_pick_for_hybridization = { + custom_tooltip = { + text = no_warrior_culture + NOT = { # Only blocks polygamous to avoid duplicate warnings, but is blocked by concubines + culture_tradition:tradition_warrior_culture = { is_in_list = traits } + } + } + custom_tooltip = { + text = no_philosopher_culture + NOT = { # Only blocks polygamous to avoid duplicate warnings, but is blocked by concubines + culture_tradition:tradition_philosopher_culture = { is_in_list = traits } + } + } + } + + parameters = { + pensive_trait_more_common = yes + rowdy_trait_less_common = yes + innovation_from_learning_traits = yes + can_appoint_court_scholar = yes + guardian_education_better_outcomes = yes + } + + character_modifier = { + monthly_learning_lifestyle_xp_gain_mult = 0.2 + learning_per_piety_level = 1 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_courtly = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + culture_pillar:ethos_spiritual = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_courtly_communal_or_spiritual_desc + } + } + if = { + limit = { + trigger_if = { + limit = { + scope:character = { + is_ai = no + } + } + NOT = { + any_ruler = { + count >= 5 + culture = prev + primary_title.tier >= tier_county + has_trait = scholar + } + } + } + trigger_else = { + always = no + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = rulers_with_scholar_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 200 + if = { + limit = { + NOR = { + culture_pillar:ethos_courtly = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + culture_pillar:ethos_spiritual = { is_in_list = traits } + } + } + multiply = 0 + } + } +} + +# Replaces Refined Poetry +tradition_fp3_enlightened_magnates = { + category = societal + + layers = { + 0 = diplo + 1 = mena + 4 = jirga.dds + } + + is_shown = { + has_fp3_dlc_trigger = yes + has_cultural_pillar = heritage_iranian + NOT = { has_cultural_tradition = tradition_poetry } + } + + parameters = { + poet_trait_gives_bonuses = yes + poet_trait_more_common = yes + characters_are_better_court_poets = yes + characters_are_better_tax_collector = yes + unlock_tax_obligation_deqhan = yes + } + + character_modifier = { + clan_tax_slot_add = 1 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_courtly = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + culture_pillar:ethos_spiritual = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_courtly_communal_or_spiritual_desc + } + } + if = { + limit = { + trigger_if = { + limit = { + scope:character = { + is_ai = no + } + } + NOT = { + any_ruler = { + count >= 3 + culture = prev + primary_title.tier >= tier_county + has_trait = poet + } + } + } + trigger_else = { + always = no + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = rulers_with_poet_desc + } + } + + if = { + limit = { + scope:character = { + has_variable = tradition_poetry_travel_discount + } + + } + + add = { + value = tradition_travel_discount + desc = tradition_travel_discount_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 125 + if = { + limit = { # AI should avoid stacking traditions for courtly court positions + culture_tradition:tradition_music_theory = { is_in_list = traits } + } + multiply = 0.25 + } + } +} + +####################### +# Afghanistan/Baluchistan Specific +####################### + +tradition_fp3_jirga = { + category = regional + + layers = { + 0 = learning + 1 = indian + 4 = jirga.dds + } + + is_shown = { + # DLC check. + has_fp3_dlc_trigger = yes + OR = { + has_cultural_pillar = heritage_iranian + has_cultural_pillar = heritage_indo_aryan + } + } + + can_pick = { + scope:character = { + government_has_flag = government_is_tribal #This tradition is really a holdover from tribal culture, and though the Afghanis might have it despite having changed government forms, others cannot pick it now. + } + } + + parameters = { + tribal_elective_enabled = yes + just_trait_gives_bonuses = yes + pardoning_gives_prestige = yes + } + character_modifier = { + owned_personal_scheme_success_chance_add = 10 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_communal = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_stoic_or_communal_desc + } + } + if = { + limit = { + NOT = { + scope:character = { + any_sub_realm_county = { + county_opinion < 0 + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = counties_with_low_county_opinion_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 100 + if = { + limit = { + OR = { + culture_tradition:tradition_things = { is_in_list = traits } + culture_tradition:tradition_the_witenagemot = { is_in_list = traits } + } + } + multiply = 0 + } + } +} + +tradition_fp3_pragmatic_creed = { + category = regional + + layers = { + 0 = diplo + 1 = mena + 4 = pragmatic_creed.dds + } + + is_shown = { + # DLC check. + has_fp3_dlc_trigger = yes + has_cultural_pillar = heritage_iranian + } + + can_pick = { + culture_not_pacifistic_trigger = yes + custom_description = { + text = culture_in_mountains_desc + any_culture_county = { + any_county_province = { + OR = { + terrain = mountains + terrain = desert_mountains + } + } + } + } + } + + parameters = { + unlock_maa_zupin_warrior = yes + diligent_trait_more_common = yes + pragmatic_traits_county_opinion_modifiers = yes + commanders_likelier_to_gain_commander_traits = yes + } + character_modifier = { + skirmishers_toughness_mult = 0.10 + skirmishers_maintenance_mult = -0.15 + heavy_cavalry_maintenance_mult = 0.15 + light_cavalry_maintenance_mult = 0.15 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + culture_pillar:ethos_courtly = { is_in_list = traits } + culture_pillar:ethos_bureaucratic = { is_in_list = traits } + culture_pillar:ethos_spiritual = { is_in_list = traits } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bureaucratic_courtly_or_spiritual_desc + } + } + # Gotta be a mountain-heavy culture not to get a surcharge. + if = { + limit = { + NOT = { + any_culture_county = { + percent >= 0.3 + any_county_province = { + OR = { + terrain = mountains + terrain = desert_mountains + } + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = mountain_percentage_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 100 + if = { + limit = { + OR = { # Don't pick this if the culture have Light Cavalry or Heavy Cavalry MaAs + culture_has_heavy_cavalry_maa = yes + culture_has_light_cavalry_maa = yes + } + } + multiply = 0 + } + if = { + limit = { + NOT = { # Less likely for cultures who doesn't descend from Daylamite + any_parent_culture_or_above = { + this = culture:daylamite + } + } + } + multiply = 0.75 + } + } +} + +####################### +# Kurdish Specific +####################### + +tradition_fp3_fierce_independence = { + category = regional + + layers = { + 0 = martial + 1 = mena + 4 = fierce_independence.dds + } + + is_shown = { + has_fp3_dlc_trigger = yes + has_cultural_pillar = heritage_iranian + } + + can_pick = { + NOT = { + has_cultural_tradition = tradition_staunch_traditionalists + } + } + + parameters = { + unlock_maa_tawashi = yes + harder_to_hybridize = yes + harder_to_convert_county_culture = yes + } + + character_modifier = { + controlled_province_advantage = 5 + same_culture_opinion = 5 + opinion_of_liege = -10 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_stoic_or_communal_desc + } + } + if = { + limit = { + scope:character = { + any_sub_realm_county = { + NOT = { + culture = scope:character.culture + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = has_other_cultures_in_realm_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 400 + if = { + limit = { + NOR = { + culture_pillar:ethos_stoic = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + } + } + multiply = 0.5 + } + } +} diff --git a/common/culture/traditions/04_ep2_traditions.txt b/common/culture/traditions/04_ep2_traditions.txt new file mode 100644 index 00000000..32365dbd --- /dev/null +++ b/common/culture/traditions/04_ep2_traditions.txt @@ -0,0 +1,95 @@ +########################### +# EP2 CULTURAL TRADITIONS +########################### + +####################### +# Generic +####################### + +tradition_ep2_avid_falconers = { + category = societal + + layers = { + 0 = diplo + 1 = mena + 4 = hunter.dds + } + + is_shown = { + # DLC check. + has_dlc_feature = tours_and_tournaments + } + + can_pick = { + culture_not_pacifistic_trigger = yes + custom_tooltip = { + text = cannot_have_tradition_vegetarianism + NOT = { culture_tradition:tradition_vegetarianism = { is_in_list = traits } } + } + } + + parameters = { + more_frequent_hunts = yes + hunting_traits_more_valued = yes + falconer_traits_more_common = yes + always_unlock_legendary_hunting_lodge = yes + } + + province_modifier = { + stationed_maa_pursuit_mult = 0.15 + } + + cost = { + prestige = { + # Base cost. + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + # Ethos requirement. + if = { + limit = { + NOR = { + culture_pillar:ethos_courtly = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_stoic_or_courtly_desc + } + } + # General replacement stuff. + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 100 + + if = { + limit = { exists = culture_head } + culture_head = { + # Some traits make you want to codify this more... + if = { + limit = { has_trait = arrogant } + add = 25 + } + if = { + limit = { has_trait = diligent } + add = 25 + } + # ... and others less. + if = { + limit = { has_trait = lazy } + add = -50 + } + if = { + limit = { has_trait = humble } + add = -25 + } + } + } + } +} diff --git a/common/culture/traditions/06_ce1_traditions.txt b/common/culture/traditions/06_ce1_traditions.txt new file mode 100644 index 00000000..dbc1d2bf --- /dev/null +++ b/common/culture/traditions/06_ce1_traditions.txt @@ -0,0 +1,112 @@ +########################### +# EP2 CULTURAL TRADITIONS +########################### + +####################### +# Generic +####################### + +tradition_ce1_ritual_washing = { + category = ritual + + layers = { + 0 = diplo + 1 = mena + 4 = ritual_washing.dds + } + + character_modifier = { + monthly_learning_lifestyle_xp_gain_mult = 0.1 + } + + parameters = { + better_disease_resistance = yes + diligent_trait_more_common = yes + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_courtly = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + culture_pillar:ethos_spiritual = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_courtly_communal_or_spiritual_desc + } + } + if = { + limit = { + trigger_if = { + limit = { + scope:character = { + is_ai = no + } + } + NOT = { + any_ruler = { + count >= 5 + culture = prev + employs_court_position = court_physician_court_position + } + } + } + trigger_else = { + always = no + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = doesnt_employ_court_physician_desc + } + } + #Discounts + if = { + limit = { + scope:character = { + OR = { + has_trait = lifestyle_physician + has_trait = whole_of_body + } + } + } + add = { + value = tradition_trait_discount + desc = cheaper_tradition_physician_or_whole_of_body + } + } + if = { + limit = { + has_cultural_pillar = heritage_north_germanic + } + add = { + value = tradition_heritage_discount + desc = cheaper_tradition_norse_washing + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 100 + if = { + limit = { + scope:character = { + has_perk = wash_your_hands_perk + } + } + add = 100 + } + } +} \ No newline at end of file diff --git a/common/culture/traditions/07_ep3_traditions.txt b/common/culture/traditions/07_ep3_traditions.txt new file mode 100644 index 00000000..17e3325c --- /dev/null +++ b/common/culture/traditions/07_ep3_traditions.txt @@ -0,0 +1,654 @@ +####################### +# CULTURAL TRADITIONS # +####################### + +###################### +# EP3 Traditions # +###################### + +tradition_ep3_indomitable_azatani = { + category = regional + + layers = { + 0 = martial + 1 = mena + 4 = indomitable_azatani.dds + } + + is_shown = { + OR = { + this = culture:armenian + any_parent_culture_or_above = { + this = culture:armenian + } + } + # DLC check. + has_ep3_dlc_trigger = yes + NOT = { + has_cultural_tradition = tradition_horse_breeder + } + } + can_pick = { + culture_not_pacifistic_trigger = yes + trigger_if = { + limit = { + OR = { + NOT = { exists = scope:replacing } + NOT = { scope:replacing = culture_tradition:tradition_horse_breeder } + } + } + NOT = { has_cultural_tradition = tradition_horse_breeder } #To prevent stacking after hybridization + } + } + + parameters = { + unlock_maa_ayrudzi = yes + house_hostility_more_common = yes + vassals_more_likely_to_refuse_demands = yes + } + character_modifier = { + light_cavalry_maintenance_mult = -0.15 + heavy_cavalry_maintenance_mult = -0.15 + archer_cavalry_maintenance_mult = -0.15 + light_cavalry_damage_add = 4 + heavy_cavalry_damage_add = 20 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + culture_pillar:ethos_stoic = { is_in_list = traits } + culture_pillar:ethos_communal = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_stoic_or_communal_desc + } + } + if = { + limit = { + scope:character = { + NOR = { # Culture Head need to have a 8 sized regiment of either Light/Heavy/Archer Cavalry + number_maa_soldiers_of_base_type = { + type = light_cavalry + value >= 800 + } + number_maa_soldiers_of_base_type = { + type = heavy_cavalry + value >= 400 + } + number_maa_soldiers_of_base_type = { + type = archer_cavalry + value >= 800 + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = culture_head_cavalry_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 200 + if = { + limit = { # Reduce chance slightly if the culture has access to other "cavalry" types + OR = { + has_innovation = innovation_war_camels + has_innovation = innovation_elephantry + } + } + multiply = 0.4 + } + else_if = { + limit = { + scope:character ?= { + ai_has_warlike_personality = yes + } + } + multiply = 4 + } + } +} + +tradition_ep3_audacious_cadets = { + category = regional + + layers = { + 0 = martial + 1 = western + 4 = audacious_cadets.dds + } + + is_shown = { + OR = { + this = culture:norman + any_parent_culture_or_above = { + this = culture:norman + } + } + # DLC check. + has_ep3_dlc_trigger = yes + NOT = { + has_cultural_tradition = tradition_swords_for_hire + } + } + can_pick = { + culture_not_pacifistic_trigger = yes + trigger_if = { + limit = { + OR = { + NOT = { exists = scope:replacing } + NOT = { scope:replacing = culture_tradition:tradition_swords_for_hire } + } + } + NOT = { has_cultural_tradition = tradition_swords_for_hire } #To prevent stacking after hybridization + } + } + + parameters = { + unlock_maa_conrois = yes + unlock_voluntary_laampdom = yes + much_more_likely_to_be_laamps = yes + ambitious_trait_more_common = yes + wanderers_gain_extra_combat_skills = yes + mercenary_courtiers_gain_extra_skills = yes + more_likely_to_leave_court = yes + } + character_modifier = { + heavy_cavalry_damage_add = 20 + heavy_cavalry_pursuit_add = 20 + heavy_cavalry_max_size_add = 2 + siege_phase_time = -0.1 + ai_honor = -20 + ai_war_chance = 0.5 + ai_war_cooldown = -0.25 + same_culture_mercenary_hire_cost_mult = -0.15 + character_travel_speed_mult = 0.1 + character_travel_safety_mult = 0.1 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOT = { + culture_pillar:ethos_bellicose = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_desc + } + } + if = { + limit = { + scope:character = { + NOR = { # Culture Head need to have a 8 sized regiment of either Light/Heavy/Archer Cavalry + number_maa_soldiers_of_base_type = { + type = heavy_cavalry + value >= 400 + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = culture_head_heavy_cavalry_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 200 + if = { + limit = { + NOT = { + culture_has_heavy_cavalry_maa = yes + } + } + multiply = 0.25 + } + else_if = { + limit = { + scope:character ?= { + ai_has_warlike_personality = yes + } + } + multiply = 4 + } + } +} + +tradition_ep3_imperial_tagmata = { + category = regional + + layers = { + 0 = martial + 1 = mediterranean + 4 = imperial_tagmata.dds + } + + is_shown = { + OR = { + this = culture:greek + any_parent_culture_or_above = { + this = culture:greek + } + has_cultural_pillar = heritage_byzantine + } + # DLC check. + has_ep3_dlc_trigger = yes + NOT = { + has_cultural_tradition = tradition_roman_legacy + } + } + can_pick = { + } + + parameters = { + unlock_maa_cataphract = yes + unlock_maa_akritai = yes + unlock_maa_ballistrai = yes + unlock_maa_skoutatoi = yes + frontier_themes_borrow_neighbor_troops = yes + } + character_modifier = { + heavy_cavalry_max_size_add = 2 + counter_efficiency = 0.1 + knight_effectiveness_mult = -0.25 + men_at_arms_title_limit = 1 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bureaucratic = { is_in_list = traits } + culture_pillar:ethos_bellicose = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bellicose_or_bureaucratic_desc + } + } + if = { + limit = { + NOT = { + scope:character = { + any_held_title = { + tier = tier_county + count >= 8 + any_county_province = { + has_building_or_higher = stables_01 + } + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = domain_counties_with_stables_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 400 + if = { + limit = { # Admin should be more into this + scope:character = { + government_allows = administrative + } + } + multiply = 2 + } + else_if = { + limit = { + scope:character ?= { + ai_has_warlike_personality = yes + } + } + multiply = 4 + } + } +} + +tradition_ep3_roman_ceremonies = { + category = regional + + layers = { + 0 = diplo + 1 = mediterranean + 4 = roman_ceremonies.dds + } + + is_shown = { + OR = { + this = culture:greek + any_parent_culture_or_above = { + this = culture:greek + } + has_cultural_pillar = heritage_byzantine + scope:character = { + OR = { + has_title = title:e_byzantium + has_title = title:e_roman_empire + } + } + } + # DLC check. + has_ep3_dlc_trigger = yes + NOT = { + has_cultural_tradition = tradition_byzantine_succession + } + } + can_pick = { + } + + parameters = { + holds_triumphs = yes + hosts_chariot_races = yes + children_can_be_born_in_the_purple = yes + # We use the co-emperors parameter for most things... + unlock_co_emperors = yes + # ... which means the junior emperor parameter is _mostly_ just here for the loc. + unlock_junior_emperors = yes + #byzantine_faction_preffered_claimants = yes + } + county_modifier = { + county_opinion_add = -10 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bureaucratic = { is_in_list = traits } + culture_pillar:ethos_courtly = { is_in_list = traits } + culture_pillar:ethos_egalitarian = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bureaucratic_courtly_or_egalitarian_desc + } + } + if = { + limit = { + NOT = { + any_culture_county = { + count >= 50 + any_county_province = { + geographical_region = custom_eastern_roman_empire + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = culture_in_roman_empire_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 200 + if = { + limit = { # Admin should be more into this + scope:character = { + government_allows = administrative + } + } + multiply = 2 + } + } +} + +tradition_ep3_palace_politics = { + category = regional + + layers = { + 0 = intrigue + 1 = mediterranean + 4 = palace_politics.dds + } + + is_shown = { + OR = { + this = culture:greek + any_parent_culture_or_above = { + this = culture:greek + } + has_cultural_pillar = heritage_byzantine + scope:character = { + OR = { + has_title = title:e_byzantium + has_title = title:e_roman_empire + } + } + } + # DLC check. + has_ep3_dlc_trigger = yes + NOT = { + has_cultural_tradition = tradition_byzantine_succession + } + } + can_pick = { + custom_tooltip = { + text = cannot_have_tradition_court_eunuchs + NOT = { culture_tradition:tradition_court_eunuchs = { is_in_list = traits } } + } + custom_tooltip = { + text = cannot_have_tradition_merciful_blindings + NOT = { culture_tradition:tradition_merciful_blindings = { is_in_list = traits } } + } + } + + parameters = { + unlock_maa_varangian_guards = yes + unlock_akolouthos = yes + reduced_bodyguard_aptitude = yes + can_blind_prisoners = yes + can_castrate_prisoners = yes + eunuch_trait_bonuses = yes + can_appoint_chief_eunuch = yes + family_castration = yes + ambitious_trait_more_common = yes + physical_disfigurement_blocks_inheritance = yes #Actually only blocks claimants and reduce score in elective. Also includes infertility for tooltip reasons. + cultrad_unlocks_t2_countermeasures = yes + palace_politics_trait_bonuses = yes + palace_politics_trait_maluses = yes + } + character_modifier = { + monthly_court_grandeur_change_mult = 0.2 + political_scheme_phase_duration_add = minor_scheme_phase_duration_bonus_value + personal_scheme_phase_duration_add = minor_scheme_phase_duration_bonus_value + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bureaucratic = { is_in_list = traits } + culture_pillar:ethos_courtly = { is_in_list = traits } + culture_pillar:ethos_spiritual = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bureaucratic_courtly_or_spiritual_desc + } + } + if = { + limit = { + has_dlc_feature = royal_court + OR = { + scope:character = { has_royal_court = no } + NOT = { + scope:character = { + court_grandeur_current_level >= very_high_court_grandeur_level + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = culture_head_court_grandeur_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 200 + if = { + limit = { # Admin should be more into this + scope:character = { + government_allows = administrative + } + } + multiply = 2 + } + } +} + +tradition_ep3_cultivated_sophistication = { + category = societal + + layers = { + 0 = learning + 1 = mediterranean + 4 = cultivated_sophistication.dds + } + + is_shown = { + # DLC check. + has_ep3_dlc_trigger = yes + } + can_pick = { + custom_tooltip = { + text = must_have_administrative_government_tt + scope:character = { government_allows = administrative } + } + } + + parameters = { + less_likely_to_culture_convert = yes + other_cultures_more_likely_to_hybridize = yes + estate_building_upgrade_development_gain = yes + allows_noble_family_adoption = yes + } + character_modifier = { + monthly_influence_mult = 0.1 + diplomatic_range_mult = 0.2 + #cultural_head_fascination_mult = -0.10 + } + + cost = { + prestige = { + add = { + value = tradition_base_cost + desc = BASE + format = "BASE_VALUE_FORMAT" + } + if = { + limit = { + NOR = { + culture_pillar:ethos_bureaucratic = { is_in_list = traits } + culture_pillar:ethos_courtly = { is_in_list = traits } + culture_pillar:ethos_spiritual = { is_in_list = traits } + } + } + add = { + value = tradition_incompatible_ethos_penalty + desc = not_bureaucratic_courtly_or_spiritual_desc + } + } + if = { + limit = { + NOT = { + scope:character = { + exists = capital_county + capital_county = { + tier = tier_county + development_level >= 30 + } + } + } + } + add = { + value = tradition_unfulfilled_criteria_penalty + desc = capital_province_development_level_desc + } + } + + multiply = tradition_replacement_cost_if_relevant + } + } + + ai_will_do = { + value = 200 + if = { + limit = { # Admin should be more into this + OR = { + this = culture:greek + any_parent_culture_or_above = { + this = culture:greek + } + has_cultural_pillar = heritage_byzantine + } + } + multiply = 2 + } + } +} diff --git a/common/culture/traditions/_traditions.info b/common/culture/traditions/_traditions.info new file mode 100644 index 00000000..83b29a74 --- /dev/null +++ b/common/culture/traditions/_traditions.info @@ -0,0 +1,37 @@ +The structure is identical to cultural traits in general, except for a few added fields: + +category = string +This is used for grouping in the Add Tradition view, and in the Divergence view. + +Layers match the CULTURE_TRADITION_LAYER_PATHS define. Index starts from 0 +layers = { + 0 = martial # Use a random icon from the specific subfolder + # 1 = blah # By leaving out the index, it'll use a random icon from the folder + 3 = letter1.dds # By specifying a file name, that specific file will get used +} + +Example: + +#dummy_tradition = { +# parameters = { +# can_raid = yes +# } +# +# character_modifier = { +# diplomacy = 1 +# } +# +# county_modifier = { +# development_growth_factor = 0.05 +# } +# +# province_modifier = { +# monthly_income = poor_building_tax_tier_4 +# } +# +# doctrine_character_modifier = { +# doctrine = doctrine_pluralism_righteous +# same_faith_opinion = 5 +# tyranny_gain_mult = -0.25 +# } +#} diff --git a/common/traits/00_traits.txt b/common/traits/00_traits.txt new file mode 100644 index 00000000..08fd292e --- /dev/null +++ b/common/traits/00_traits.txt @@ -0,0 +1,13776 @@ +# Standard Values +@pos_compat_high = 30 +@pos_compat_medium = 15 +@pos_compat_low = 5 + +@neg_compat_high = -30 +@neg_compat_medium = -15 +@neg_compat_low = -5 + +# INTRIGUE OUTCOMES +education_intrigue_1 = { + minimum_age = 16 + intrigue = 2 + category = education + monthly_intrigue_lifestyle_xp_gain_mult = 0.1 + + ruler_designer_cost = 0 + + culture_modifier = { + parameter = poorly_educated_leaders_distrusted + feudal_government_opinion = -10 + } + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_education_intrigue_1_desc + } + desc = trait_education_intrigue_1_character_desc + } + } + + group = education_intrigue + level = 1 +} +education_intrigue_2 = { + minimum_age = 16 + intrigue = 4 + category = education + monthly_intrigue_lifestyle_xp_gain_mult = 0.2 + + ruler_designer_cost = 20 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_education_intrigue_2_desc + } + desc = trait_education_intrigue_2_character_desc + } + } + + group = education_intrigue + level = 2 +} +education_intrigue_3 = { + minimum_age = 16 + intrigue = 6 + category = education + monthly_intrigue_lifestyle_xp_gain_mult = 0.3 + + ruler_designer_cost = 40 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_education_intrigue_3_desc + } + desc = trait_education_intrigue_3_character_desc + } + } + + group = education_intrigue + level = 3 +} +education_intrigue_4 = { + minimum_age = 16 + intrigue = 8 + category = education + monthly_intrigue_lifestyle_xp_gain_mult = 0.4 + + ruler_designer_cost = 80 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_education_intrigue_4_desc + } + desc = trait_education_intrigue_4_character_desc + } + } + + group = education_intrigue + level = 4 +} +education_intrigue_5 = { + minimum_age = 16 + intrigue = 10 + diplomacy = 3 + category = education + monthly_intrigue_lifestyle_xp_gain_mult = 0.5 + monthly_diplomacy_lifestyle_xp_gain_mult = 0.25 + owned_hostile_scheme_success_chance_max_add = 10 + flag = agent_acceptance_25 + + ruler_designer_cost = 150 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_education_intrigue_5_desc + } + desc = trait_education_intrigue_5_character_desc + } + } + + random_creation_weight = 0 + group = education_intrigue + level = 5 +} + +# DIPLOMACY OUTCOMES +education_diplomacy_1 = { + minimum_age = 16 + diplomacy = 2 + category = education + monthly_diplomacy_lifestyle_xp_gain_mult = 0.1 + + ruler_designer_cost = 0 + + culture_modifier = { + parameter = poorly_educated_leaders_distrusted + feudal_government_opinion = -10 + } + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_education_diplomacy_1_desc + } + desc = trait_education_diplomacy_1_character_desc + } + } + + group = education_diplomacy + level = 1 +} +education_diplomacy_2 = { + minimum_age = 16 + diplomacy = 4 + category = education + monthly_diplomacy_lifestyle_xp_gain_mult = 0.2 + + ruler_designer_cost = 20 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_education_diplomacy_2_desc + } + desc = trait_education_diplomacy_2_character_desc + } + } + + group = education_diplomacy + level = 2 +} +education_diplomacy_3 = { + minimum_age = 16 + diplomacy = 6 + category = education + monthly_diplomacy_lifestyle_xp_gain_mult = 0.3 + + ruler_designer_cost = 40 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_education_diplomacy_3_desc + } + desc = trait_education_diplomacy_3_character_desc + } + } + + group = education_diplomacy + level = 3 +} +education_diplomacy_4 = { + minimum_age = 16 + diplomacy = 8 + category = education + monthly_diplomacy_lifestyle_xp_gain_mult = 0.4 + + ruler_designer_cost = 80 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_education_diplomacy_4_desc + } + desc = trait_education_diplomacy_4_character_desc + } + } + + culture_modifier = { + parameter = elephant_bonuses_for_rank_4_education + elephant_cavalry_damage_mult = 0.1 + elephant_cavalry_toughness_mult = 0.1 + elephant_cavalry_recruitment_cost_mult = -0.1 + elephant_cavalry_maintenance_mult = -0.1 + jungle_construction_gold_cost = -0.1 + } + + group = education_diplomacy + level = 4 +} +education_diplomacy_5 = { + minimum_age = 16 + diplomacy = 10 + martial = 3 + category = education + monthly_diplomacy_lifestyle_xp_gain_mult = 0.5 + monthly_martial_lifestyle_xp_gain_mult = 0.25 + owned_personal_scheme_success_chance_max_add = 10 + flag = offer_vassalisation_25 + flag = better_war_hostages + + ruler_designer_cost = 150 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_education_diplomacy_5_desc + } + desc = trait_education_diplomacy_5_character_desc + } + } + + culture_modifier = { + parameter = elephant_bonuses_for_rank_4_education + elephant_cavalry_damage_mult = 0.1 + elephant_cavalry_toughness_mult = 0.1 + elephant_cavalry_recruitment_cost_mult = -0.1 + elephant_cavalry_maintenance_mult = -0.1 + jungle_construction_gold_cost = -0.1 + } + + random_creation_weight = 0 + group = education_diplomacy + level = 5 +} + +# STEWARDSHIP OUTCOMES +education_stewardship_1 = { #Indulgent wastrel + minimum_age = 16 + stewardship = 2 + category = education + monthly_stewardship_lifestyle_xp_gain_mult = 0.1 + + ruler_designer_cost = 0 + + culture_modifier = { + parameter = poorly_educated_leaders_distrusted + feudal_government_opinion = -10 + } + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_education_stewardship_1_desc + } + desc = trait_education_stewardship_1_character_desc + } + } + + group = education_stewardship + level = 1 +} +education_stewardship_2 = { #Thrifty clerk + minimum_age = 16 + stewardship = 4 + category = education + monthly_stewardship_lifestyle_xp_gain_mult = 0.2 + + ruler_designer_cost = 20 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_education_stewardship_2_desc + } + desc = trait_education_stewardship_2_character_desc + } + } + + group = education_stewardship + level = 2 +} +education_stewardship_3 = { #Fortune builder + minimum_age = 16 + stewardship = 6 + category = education + monthly_stewardship_lifestyle_xp_gain_mult = 0.3 + + ruler_designer_cost = 40 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_education_stewardship_3_desc + } + desc = trait_education_stewardship_3_character_desc + } + } + + group = education_stewardship + level = 3 +} +education_stewardship_4 = { + minimum_age = 16 + stewardship = 8 + category = education + monthly_stewardship_lifestyle_xp_gain_mult = 0.4 + + culture_modifier = { + parameter = elephant_bonuses_for_rank_4_education + world_innovation_elephants_development_growth_factor = 0.3 + elephant_cavalry_recruitment_cost_mult = -0.2 + elephant_cavalry_maintenance_mult = -0.2 + jungle_construction_gold_cost = -0.2 + } + + ruler_designer_cost = 80 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_education_stewardship_4_desc + } + desc = trait_education_stewardship_4_character_desc + } + } + + group = education_stewardship + level = 4 +} +education_stewardship_5 = { + minimum_age = 16 + stewardship = 10 + learning = 3 + category = education + monthly_stewardship_lifestyle_xp_gain_mult = 0.5 + monthly_learning_lifestyle_xp_gain_mult = 0.25 + vassal_tax_mult = 0.25 + + culture_modifier = { + parameter = elephant_bonuses_for_rank_4_education + world_innovation_elephants_development_growth_factor = 0.3 + elephant_cavalry_recruitment_cost_mult = -0.2 + elephant_cavalry_maintenance_mult = -0.2 + jungle_construction_gold_cost = -0.2 + } + + ruler_designer_cost = 150 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_education_stewardship_5_desc + } + desc = trait_education_stewardship_5_character_desc + } + } + + random_creation_weight = 0 + group = education_stewardship + level = 5 +} + +# MARTIAL OUTCOMES +education_martial_1 = { + minimum_age = 16 + martial = 2 + category = education + monthly_martial_lifestyle_xp_gain_mult = 0.1 + + culture_modifier = { + parameter = poorly_educated_leaders_distrusted + feudal_government_opinion = -10 + } + + culture_modifier = { + parameter = prowess_from_martial_education + prowess = 1 + } + + culture_modifier = { + parameter = martial_education_more_valued + same_culture_opinion = 1 + attraction_opinion = 4 + } + + ruler_designer_cost = 0 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_education_martial_1_desc + } + desc = trait_education_martial_1_character_desc + } + } + + group = education_martial + level = 1 + + add_commander_trait = yes +} +education_martial_2 = { #Tough soldier + minimum_age = 16 + martial = 4 + category = education + monthly_martial_lifestyle_xp_gain_mult = 0.2 + + culture_modifier = { + parameter = prowess_from_martial_education + prowess = 2 + } + + culture_modifier = { + parameter = martial_education_more_valued + same_culture_opinion = 2 + attraction_opinion = 6 + } + + ruler_designer_cost = 20 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_education_martial_2_desc + } + desc = trait_education_martial_2_character_desc + } + } + + group = education_martial + level = 2 + add_commander_trait = yes +} +education_martial_3 = { #Skilled tactician + minimum_age = 16 + martial = 6 + category = education + monthly_martial_lifestyle_xp_gain_mult = 0.3 + + culture_modifier = { + parameter = prowess_from_martial_education + prowess = 3 + } + + culture_modifier = { + parameter = martial_education_more_valued + same_culture_opinion = 3 + attraction_opinion = 8 + } + + ruler_designer_cost = 40 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_education_martial_3_desc + } + desc = trait_education_martial_3_character_desc + } + } + + group = education_martial + level = 3 + add_commander_trait = yes +} +education_martial_4 = { #Brilliant strategist + minimum_age = 16 + martial = 8 + category = education + monthly_martial_lifestyle_xp_gain_mult = 0.4 + + culture_modifier = { + parameter = prowess_from_martial_education + prowess = 4 + } + + culture_modifier = { + parameter = martial_education_more_valued + same_culture_opinion = 4 + attraction_opinion = 10 + } + + culture_modifier = { + parameter = elephant_bonuses_for_rank_4_education + elephant_cavalry_damage_mult = 0.2 + elephant_cavalry_toughness_mult = 0.1 + elephant_cavalry_pursuit_add = 20 + jungle_advantage = 5 + } + + ruler_designer_cost = 80 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_education_martial_4_desc + } + desc = trait_education_martial_4_character_desc + } + } + + group = education_martial + level = 4 + add_commander_trait = yes +} +education_martial_5 = { + minimum_age = 16 + martial = 10 + stewardship = 3 + category = education + monthly_martial_lifestyle_xp_gain_mult = 0.5 + monthly_stewardship_lifestyle_xp_gain_mult = 0.25 + army_siege_value_mult = 0.5 + movement_speed = 0.2 + + culture_modifier = { + parameter = prowess_from_martial_education + prowess = 4 + } + + culture_modifier = { + parameter = martial_education_more_valued + same_culture_opinion = 5 + attraction_opinion = 10 + } + + culture_modifier = { + parameter = elephant_bonuses_for_rank_4_education + elephant_cavalry_damage_mult = 0.2 + elephant_cavalry_toughness_mult = 0.1 + elephant_cavalry_pursuit_add = 20 + jungle_advantage = 5 + } + + ruler_designer_cost = 150 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_education_martial_5_desc + } + desc = trait_education_martial_5_character_desc + } + } + + random_creation_weight = 0 + group = education_martial + level = 5 + add_commander_trait = yes +} + +# LEARNING OUTCOMES +education_learning_1 = { + minimum_age = 16 + learning = 2 + category = education + monthly_learning_lifestyle_xp_gain_mult = 0.1 + + culture_modifier = { + parameter = poorly_educated_leaders_distrusted + feudal_government_opinion = -10 + } + + culture_modifier = { + parameter = prowess_from_religious_traits + prowess = 1 + } + + culture_modifier = { + parameter = innovation_from_learning_traits + cultural_head_fascination_mult = 0.05 + } + + culture_modifier = { + parameter = build_bonuses_on_religious_traits + church_holding_build_speed = -0.05 + church_holding_holding_build_speed = -0.05 + } + + ruler_designer_cost = 0 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_education_learning_1_desc + } + desc = trait_education_learning_1_character_desc + } + } + + group = education_learning + level = 1 +} +education_learning_2 = { + minimum_age = 16 + learning = 4 + category = education + monthly_learning_lifestyle_xp_gain_mult = 0.2 + + culture_modifier = { + parameter = prowess_from_religious_traits + prowess = 2 + } + + culture_modifier = { + parameter = innovation_from_learning_traits + cultural_head_fascination_mult = 0.1 + } + + culture_modifier = { + parameter = build_bonuses_on_religious_traits + church_holding_build_speed = -0.1 + church_holding_holding_build_speed = -0.1 + } + + ruler_designer_cost = 20 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_education_learning_2_desc + } + desc = trait_education_learning_2_character_desc + } + } + + group = education_learning + level = 2 +} +education_learning_3 = { + minimum_age = 16 + learning = 6 + category = education + monthly_learning_lifestyle_xp_gain_mult = 0.3 + + culture_modifier = { + parameter = prowess_from_religious_traits + prowess = 3 + } + + culture_modifier = { + parameter = innovation_from_learning_traits + cultural_head_fascination_mult = 0.15 + } + + culture_modifier = { + parameter = build_bonuses_on_religious_traits + church_holding_build_speed = -0.15 + church_holding_holding_build_speed = -0.15 + } + + ruler_designer_cost = 40 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_education_learning_3_desc + } + desc = trait_education_learning_3_character_desc + } + } + + group = education_learning + level = 3 +} +education_learning_4 = { + minimum_age = 16 + learning = 8 + category = education + monthly_learning_lifestyle_xp_gain_mult = 0.4 + + culture_modifier = { + parameter = prowess_from_religious_traits + prowess = 4 + } + + culture_modifier = { + parameter = innovation_from_learning_traits + cultural_head_fascination_mult = 0.2 + } + + culture_modifier = { + parameter = build_bonuses_on_religious_traits + church_holding_build_speed = -0.2 + church_holding_holding_build_speed = -0.2 + church_holding_build_gold_cost = -0.05 + } + + culture_modifier = { + parameter = elephant_bonuses_for_rank_4_education + world_innovation_elephants_development_growth_factor = 0.3 + elephant_cavalry_maintenance_mult = -0.2 + elephant_cavalry_toughness_mult = 0.1 + elephant_cavalry_screen_add = 20 + jungle_attrition_mult = -0.35 + } + + ruler_designer_cost = 80 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_education_learning_4_desc + } + desc = trait_education_learning_4_character_desc + } + } + + group = education_learning + level = 4 +} +education_learning_5 = { + minimum_age = 16 + learning = 10 + intrigue = 3 + category = education + monthly_learning_lifestyle_xp_gain_mult = 0.5 + monthly_intrigue_lifestyle_xp_gain_mult = 0.25 + development_growth = 0.1 + + culture_modifier = { + parameter = prowess_from_religious_traits + prowess = 4 + } + + culture_modifier = { + parameter = innovation_from_learning_traits + cultural_head_fascination_mult = 0.25 + } + + culture_modifier = { + parameter = build_bonuses_on_religious_traits + church_holding_build_speed = -0.2 + church_holding_holding_build_speed = -0.2 + church_holding_build_gold_cost = -0.05 + } + + culture_modifier = { + parameter = elephant_bonuses_for_rank_4_education + world_innovation_elephants_development_growth_factor = 0.3 + elephant_cavalry_maintenance_mult = -0.2 + elephant_cavalry_toughness_mult = 0.1 + elephant_cavalry_screen_add = 20 + jungle_attrition_mult = -0.35 + } + + ruler_designer_cost = 150 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_education_learning_5_desc + } + desc = trait_education_learning_5_character_desc + } + } + + random_creation_weight = 0 + group = education_learning + level = 5 +} + +################### LIFESTYLE ################## +diplomat = { + category = lifestyle + + diplomacy = 3 + personal_scheme_phase_duration_add = medium_scheme_phase_duration_bonus_value + independent_ruler_opinion = 20 + + ruler_designer_cost = 50 + + culture_modifier = { + parameter = astute_diplomat_bonus + diplomacy = 2 + independent_ruler_opinion = 10 + vassal_opinion = 10 + } + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_diplomat_desc + } + desc = trait_diplomat_character_desc + } + } + + #AI Values + ai_energy = 20 + ai_sociability = low_positive_ai_value + ai_amenity_target_baseline = 0.2 + + compatibility = { + diplomat = @pos_compat_medium + family_first = @pos_compat_medium + august = @pos_compat_medium + gregarious = @pos_compat_low + shy = @neg_compat_low + } +} + +family_first = { + category = lifestyle + + fertility = 0.2 + dynasty_house_opinion = 10 + close_relative_opinion = 15 + stress_loss_mult = 0.2 + + ruler_designer_cost = 50 + + name = { + first_valid = { + triggered_desc = { + trigger = { NOT = { exists = this } } + desc = trait_family_first_neutral + } + triggered_desc = { + trigger = { is_female = yes } + desc = trait_family_first_female + } + desc = trait_family_first_male + } + } + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_family_first_desc + } + desc = trait_family_first_character_desc + } + } + + #AI Values + ai_energy = 20 + ai_sociability = low_positive_ai_value + + culture_modifier = { + parameter = bonuses_from_patriarch_matriarch_trait + levy_size = 0.1 + monthly_prestige = 1 + } + + compatibility = { + diplomat = @pos_compat_medium + family_first = @pos_compat_medium + august = @pos_compat_medium + gregarious = @pos_compat_low + shy = @neg_compat_low + } +} + +august = { + category = lifestyle + + diplomacy = 2 + martial = 1 + monthly_prestige = 1 + flag = initial_legitimacy_boost + + ruler_designer_cost = 50 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_august_desc + } + desc = trait_august_character_desc + } + } + + #AI Values + ai_energy = 20 + ai_amenity_target_baseline = 0.2 + ai_amenity_spending = 0.1 + + compatibility = { + diplomat = @pos_compat_medium + family_first = @pos_compat_medium + august = @pos_compat_medium + gregarious = @pos_compat_low + shy = @neg_compat_low + } +} + +lifestyle_reveler = { + category = lifestyle + icon = reveler.dds + + # Modifiers + courtly_opinion = 5 + intrigue = 1 + same_opinion = 15 + culture_modifier = { + parameter = reveler_traits_more_valued + monthly_prestige = 0.25 + } + + track = { + 50 = { + courtly_opinion = 5 + diplomacy = 1 + intrigue = 1 + culture_modifier = { + parameter = reveler_traits_more_valued + monthly_prestige = 0.5 + } + } + 100 = { + courtly_opinion = 5 + diplomacy = 2 + intrigue = 1 + owned_hostile_scheme_success_chance_add = 10 + culture_modifier = { + parameter = reveler_traits_more_valued + monthly_prestige = 0.75 + } + } + } + + ruler_designer_cost = 20 + + # AI Values + ai_greed = 25 + ai_sociability = medium_positive_ai_value + ai_amenity_target_baseline = 0.2 + + # Loc + name = { + first_valid = { + #Legendary Reveler + triggered_desc = { + trigger = { + exists = this + has_trait_xp = { + trait = lifestyle_reveler + value >= 100 + } + } + desc = trait_reveler_3 + } + #Famous Reveler + triggered_desc = { + trigger = { + exists = this + has_trait_xp = { + trait = lifestyle_reveler + value >= 50 + } + } + desc = trait_reveler_2 + } + #Eager Reveler + desc = trait_reveler_1 + } + } + + # Loc + desc = { + first_valid = { + #The trait can never go higher than the first level if it's not assigned to a character + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_reveler_1_desc + } + triggered_desc = { + trigger = { + has_trait_xp = { + trait = lifestyle_reveler + value >= 100 + } + } + desc = trait_reveler_3_character_desc + } + triggered_desc = { + trigger = { + has_trait_xp = { + trait = lifestyle_reveler + value >= 50 + } + } + desc = trait_reveler_2_character_desc + } + desc = trait_reveler_1_character_desc + } + } + + compatibility = { + gregarious = @pos_compat_low + shy = @neg_compat_low + lustful = @pos_compat_low + chaste = @neg_compat_low + drunkard = @pos_compat_low + temperate = @neg_compat_low + gluttonous = @pos_compat_low + } +} + +lifestyle_blademaster = { + category = lifestyle + icon = blademaster.dds + + # Modifiers + negate_health_penalty_add = 0.25 + prowess = 3 + culture_modifier = { + parameter = trait_county_opinion_modifiers + county_opinion_add = 2 + } + culture_modifier = { + parameter = blademaster_trait_bonuses + attraction_opinion = 5 + monthly_prestige = 0.25 + } + culture_modifier = { + parameter = blademaster_traits_give_learning + learning = 2 + } + + track = { + 50 = { + negate_health_penalty_add = 0.25 + prowess = 3 + culture_modifier = { + parameter = trait_county_opinion_modifiers + county_opinion_add = 3 + } + culture_modifier = { + parameter = blademaster_trait_bonuses + attraction_opinion = 5 + monthly_prestige = 0.25 + } + culture_modifier = { + parameter = blademaster_traits_give_learning + learning = 2 + } + } + 100 = { + negate_health_penalty_add = 0.5 + prowess = 6 + + culture_modifier = { + parameter = trait_county_opinion_modifiers + county_opinion_add = 5 + } + + culture_modifier = { + parameter = blademaster_trait_bonuses + attraction_opinion = 5 + monthly_prestige = 0.5 + } + + culture_modifier = { + parameter = blademaster_traits_give_learning + learning = 2 + } + } + } + + ruler_designer_cost = 20 + + # Loc + name = { + first_valid = { + #Legendary Blademaster + triggered_desc = { + trigger = { + exists = this + has_trait_xp = { + trait = lifestyle_blademaster + value >= 100 + } + } + desc = trait_blademaster_3 + } + #Blademaster + triggered_desc = { + trigger = { + exists = this + has_trait_xp = { + trait = lifestyle_blademaster + value >= 50 + } + } + desc = trait_blademaster_2 + } + #Aspiring Blademaster + desc = trait_blademaster_1 + } + } + + # Loc + desc = { + first_valid = { + #The trait can never go higher than the first level if it's not assigned to a character + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_blademaster_1_desc + } + triggered_desc = { + trigger = { + has_trait_xp = { + trait = lifestyle_blademaster + value >= 100 + } + } + desc = trait_blademaster_3_character_desc + } + triggered_desc = { + trigger = { + has_trait_xp = { + trait = lifestyle_blademaster + value >= 50 + } + } + desc = trait_blademaster_2_character_desc + } + desc = trait_blademaster_1_character_desc + } + } + + compatibility = { + brave = @pos_compat_low + craven = @neg_compat_low + } +} + +lifestyle_hunter = { + icon = hunter.dds + category = lifestyle + same_opinion = 10 + ruler_designer_cost = 20 + stress_loss_mult = 0.05 + prowess = 1 + culture_modifier = { + parameter = hunting_traits_more_valued + monthly_prestige = 0.5 + } + culture_modifier = { + parameter = hunting_traits_more_pious + monthly_piety = 0.3 + } + culture_modifier = { + parameter = forest_trait_bonuses + forest_advantage = 1 + taiga_advantage = 1 + } + culture_modifier = { + parameter = jungle_trait_bonuses + jungle_advantage = 1 + } + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_lifestyle_hunter_desc + } + desc = trait_lifestyle_hunter_character_desc + } + } + + tracks = { + hunter = { + 50 = { + stress_loss_mult = 0.05 + prowess = 1 + health = 0.05 + learning = 1 + glory_hound_opinion = 5 + culture_modifier = { + parameter = hunting_traits_more_valued + monthly_prestige = 0.5 + glory_hound_same_culture_opinion = 5 + } + culture_modifier = { + parameter = hunting_traits_more_pious + monthly_piety = 0.3 + glory_hound_same_faith_opinion = 5 + } + culture_modifier = { + parameter = forest_trait_bonuses + forest_advantage = 1 + taiga_advantage = 1 + } + culture_modifier = { + parameter = jungle_trait_bonuses + jungle_advantage = 1 + } + } + 100 = { + stress_loss_mult = 0.1 + prowess = 2 + health = 0.15 + learning = 1 + glory_hound_opinion = 10 + culture_modifier = { + parameter = hunting_traits_more_valued + monthly_prestige = 0.5 + glory_hound_same_culture_opinion = 5 + } + culture_modifier = { + parameter = hunting_traits_more_pious + monthly_piety = 0.4 + glory_hound_same_faith_opinion = 5 + } + culture_modifier = { + parameter = forest_trait_bonuses + forest_advantage = 1 + taiga_advantage = 1 + } + culture_modifier = { + parameter = jungle_trait_bonuses + jungle_advantage = 1 + } + } + } + falconer = { + 50 = { + attraction_opinion = 5 + stewardship = 1 + learning = 1 + courtly_opinion = 5 + monthly_prestige = 0.25 + culture_modifier = { + parameter = hunting_traits_more_valued + monthly_prestige = 0.5 + courtly_same_culture_opinion = 5 + } + culture_modifier = { + parameter = hunting_traits_more_pious + monthly_piety = 0.15 + courtly_same_faith_opinion = 5 + } + } + 100 = { + attraction_opinion = 5 + stewardship = 2 + learning = 1 + courtly_opinion = 10 + monthly_prestige = 0.5 + culture_modifier = { + parameter = hunting_traits_more_valued + monthly_prestige = 0.5 + courtly_same_culture_opinion = 5 + } + culture_modifier = { + parameter = hunting_traits_more_pious + monthly_piety = 0.4 + courtly_same_faith_opinion = 5 + } + } + } + } + + compatibility = { + brave = @pos_compat_low + diligent = @pos_compat_low + craven = @neg_compat_low + lazy = @neg_compat_low + } + + ai_energy = 15 +} + +strategist = { + category = lifestyle + + martial = 3 + diplomacy = 1 + enemy_hard_casualty_modifier = 0.25 + no_water_crossing_penalty = yes + + culture_modifier = { + parameter = formation_fighting_strategist + max_combat_roll = 4 + enemy_terrain_advantage = -0.2 + } + + ruler_designer_cost = 50 + + ai_rationality = 30 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_strategist_desc + } + desc = trait_strategist_character_desc + } + } + + compatibility = { + strategist = @pos_compat_medium + overseer = @pos_compat_medium + gallant = @pos_compat_medium + brave = @pos_compat_low + craven = @neg_compat_low + } +} + +overseer = { + category = lifestyle + + stewardship = 2 + martial = 2 + monthly_county_control_growth_add = 0.5 + epidemic_resistance = 5 + + ruler_designer_cost = 50 + + ai_rationality = 20 + + compatibility = { + strategist = @pos_compat_medium + overseer = @pos_compat_medium + gallant = @pos_compat_medium + brave = @pos_compat_low + craven = @neg_compat_low + } +} + +gallant = { + category = lifestyle + + martial = 2 + prowess = 4 + attraction_opinion = 20 + accolade_glory_gain_mult = 0.2 + monthly_prestige_gain_mult = 0.2 + + culture_modifier = { + parameter = poet_trait_romance_bonuses + courting_scheme_phase_duration_add = medium_scheme_phase_duration_bonus_value + } + + ruler_designer_cost = 50 + + ai_boldness = medium_positive_ai_value + ai_honor = low_positive_ai_value + ai_sociability = low_positive_ai_value + ai_amenity_target_baseline = 0.1 + ai_amenity_spending = 0.05 + + compatibility = { + strategist = @pos_compat_medium + overseer = @pos_compat_medium + gallant = @pos_compat_medium + brave = @pos_compat_low + craven = @neg_compat_low + } +} + +architect = { + category = lifestyle + + stewardship = 2 + build_speed = -0.15 + holding_build_speed = -0.15 + domicile_build_speed = -0.15 + build_gold_cost = -0.1 + holding_build_gold_cost = -0.1 + domicile_build_gold_cost = -0.1 + + culture_modifier = { + parameter = architect_trait_prestige + monthly_prestige = 0.5 + } + + ruler_designer_cost = 50 + + ai_rationality = 10 + ai_energy = 5 + + compatibility = { + architect = @pos_compat_medium + administrator = @pos_compat_medium + avaricious = @pos_compat_medium + diligent = @pos_compat_low + lazy = @neg_compat_low + lifestyle_gardener = @pos_compat_low + } +} + +administrator = { + category = lifestyle + + stewardship = 3 + diplomacy = 1 + parochial_opinion = 10 + vassal_opinion = 5 + epidemic_resistance = 10 + + ruler_designer_cost = 50 + + culture_modifier = { + parameter = legalistic_administrator_bonuses + long_reign_bonus_mult = 0.25 + } + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_administrator_desc + } + desc = trait_administrator_character_desc + } + } + + ai_rationality = 20 + ai_energy = 10 + ai_amenity_spending = 0.1 + + compatibility = { + architect = @pos_compat_medium + administrator = @pos_compat_medium + avaricious = @pos_compat_medium + diligent = @pos_compat_low + lazy = @neg_compat_low + } +} + +avaricious = { + category = lifestyle + + stewardship = 2 + tax_mult = 0.15 + + culture_modifier = { + parameter = maritime_mercantilism_avaricious_bonus + stewardship = 2 + tax_mult = 0.10 + } + + ruler_designer_cost = 50 + + ai_rationality = -20 + ai_greed = 30 + ai_honor = -20 + ai_compassion = -30 + ai_energy = 20 + ai_amenity_spending = -0.1 + + compatibility = { + architect = @pos_compat_medium + administrator = @pos_compat_medium + avaricious = @pos_compat_medium + diligent = @pos_compat_low + lazy = @neg_compat_low + } +} + +schemer = { + category = lifestyle + + intrigue = 5 + hostile_scheme_phase_duration_add = medium_scheme_phase_duration_bonus_value + + ruler_designer_cost = 50 + + ai_honor = -20 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_schemer_desc + } + desc = trait_schemer_character_desc + } + } + + compatibility = { + schemer = @pos_compat_medium + seducer = @pos_compat_medium + torturer = @pos_compat_medium + deceitful = @pos_compat_low + honest = @neg_compat_low + } +} + +seducer = { + category = lifestyle + + intrigue = 3 + attraction_opinion = 40 + fertility = 0.2 + + ruler_designer_cost = 50 + + name = { + first_valid = { + triggered_desc = { + trigger = { + exists = this + is_female = yes + } + desc = trait_seducer_female + } + desc = trait_seducer + } + } + + ai_honor = -10 + ai_sociability = low_positive_ai_value + + compatibility = { + schemer = @pos_compat_medium + seducer = @pos_compat_medium + torturer = @pos_compat_medium + deceitful = @pos_compat_low + honest = @neg_compat_low + } +} + +torturer = { + category = lifestyle + + dread_gain_mult = 0.5 + prowess = 4 + levy_size = 0.1 + enemy_hostile_scheme_phase_duration_add = medium_scheme_phase_duration_malus_value + + ruler_designer_cost = 50 + + ai_honor = -30 + ai_vengefulness = 20 + ai_boldness = 20 + + compatibility = { + schemer = @pos_compat_medium + seducer = @pos_compat_medium + torturer = @pos_compat_medium + deceitful = @pos_compat_low + honest = @neg_compat_low + } +} + +whole_of_body = { + category = lifestyle + + health = 0.5 + fertility = 0.2 + stress_gain_mult = -0.2 + + ruler_designer_cost = 75 + + ai_energy = 20 + + compatibility = { + whole_of_body = @pos_compat_medium + scholar = @pos_compat_medium + theologian = @pos_compat_medium + intellect_good_1 = @pos_compat_low + intellect_good_2 = @pos_compat_low + intellect_good_3 = @pos_compat_low + pensive = @pos_compat_low + shrewd = @pos_compat_low + diligent = @pos_compat_low + lazy = @neg_compat_low + intellect_bad_1 = @neg_compat_low + intellect_bad_2 = @neg_compat_low + intellect_bad_3 = @neg_compat_low + } +} + +scholar = { + category = lifestyle + + learning = 3 + owned_personal_scheme_success_chance_add = 10 + owned_hostile_scheme_success_chance_add = 10 + development_growth_factor = 0.15 + development_decline_factor = -0.15 + + ruler_designer_cost = 50 + + culture_modifier = { + parameter = prowess_from_religious_traits + prowess = 2 + } + + culture_modifier = { + parameter = innovation_from_learning_traits + cultural_head_fascination_mult = 0.1 + } + + culture_modifier = { + parameter = build_bonuses_on_religious_traits + church_holding_build_speed = -0.1 + church_holding_holding_build_speed = -0.1 + church_holding_build_gold_cost = -0.05 + church_holding_holding_build_gold_cost = -0.05 + } + + culture_modifier = { #for FP3's "Irrigation Expert" tradition + parameter = innovative_traits_more_valued + drylands_tax_mult = 0.1 + desert_tax_mult = 0.1 + desert_mountains_tax_mult = 0.1 + } + + ai_rationality = 30 + + compatibility = { + whole_of_body = @pos_compat_medium + scholar = @pos_compat_medium + theologian = @pos_compat_medium + lifestyle_gardener = @pos_compat_medium + intellect_good_1 = @pos_compat_low + intellect_good_2 = @pos_compat_low + intellect_good_3 = @pos_compat_low + pensive = @pos_compat_low + shrewd = @pos_compat_low + diligent = @pos_compat_low + lazy = @neg_compat_low + intellect_bad_1 = @neg_compat_low + intellect_bad_2 = @neg_compat_low + intellect_bad_3 = @neg_compat_low + } +} + +theologian = { + category = lifestyle + + learning = 3 + monthly_piety_gain_mult = 0.2 + + ruler_designer_cost = 50 + + culture_modifier = { + parameter = prowess_from_religious_traits + prowess = 2 + } + + culture_modifier = { + parameter = build_bonuses_on_religious_traits + church_holding_build_gold_cost = -0.1 + church_holding_holding_build_gold_cost = -0.1 + } + + ai_rationality = 10 + ai_zeal = 20 + + compatibility = { + whole_of_body = @pos_compat_medium + scholar = @pos_compat_medium + theologian = @pos_compat_medium + intellect_good_1 = @pos_compat_low + intellect_good_2 = @pos_compat_low + intellect_good_3 = @pos_compat_low + pensive = @pos_compat_low + shrewd = @pos_compat_low + diligent = @pos_compat_low + lazy = @neg_compat_low + intellect_bad_1 = @neg_compat_low + intellect_bad_2 = @neg_compat_low + intellect_bad_3 = @neg_compat_low + } +} + +lifestyle_mystic = { + category = lifestyle + icon = mystic.dds + + # Modifiers + learning = 1 + culture_modifier = { + parameter = prowess_from_religious_traits + prowess = 1 + } + culture_modifier = { + parameter = build_bonuses_on_religious_traits + church_holding_build_gold_cost = -0.05 + church_holding_holding_build_gold_cost = -0.05 + } + culture_modifier = { + parameter = mystic_trait_gives_bonuses + monthly_income_mult = 0.02 + } + + track = { + 50 = { + learning = 1 + culture_modifier = { + parameter = prowess_from_religious_traits + prowess = 1 + } + + culture_modifier = { + parameter = build_bonuses_on_religious_traits + church_holding_build_gold_cost = -0.05 + church_holding_holding_build_gold_cost = -0.05 + } + + culture_modifier = { + parameter = mystic_trait_gives_bonuses + monthly_income_mult = 0.02 + } + } + 100 = { + learning = 2 + culture_modifier = { + parameter = prowess_from_religious_traits + prowess = 1 + } + culture_modifier = { + parameter = build_bonuses_on_religious_traits + church_holding_build_gold_cost = -0.05 + church_holding_holding_build_gold_cost = -0.05 + } + culture_modifier = { + parameter = mystic_trait_gives_bonuses + monthly_income_mult = 0.04 + } + } + } + + ruler_designer_cost = 20 + + # AI Values + ai_rationality = -10 + ai_zeal = -10 + + # Loc + name = { + first_valid = { + #Miracle Worker + triggered_desc = { + trigger = { + exists = this + has_trait_xp = { + trait = lifestyle_mystic + value >= 100 + } + } + desc = trait_mystic_3 + } + #Mystic + triggered_desc = { + trigger = { + exists = this + has_trait_xp = { + trait = lifestyle_mystic + value >= 50 + } + } + desc = trait_mystic_2 + } + #Wise Woman/Man + triggered_desc = { + trigger = { + exists = this + is_female = yes + } + desc = trait_mystic_female_1 + } + desc = trait_mystic_male_1 + } + } + + # Loc + desc = { + first_valid = { + #The trait can never go higher than the first level if it's not assigned to a character + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_mystic_1_desc + } + triggered_desc = { + trigger = { + has_trait_xp = { + trait = lifestyle_mystic + value >= 100 + } + } + desc = trait_mystic_3_character_desc + } + triggered_desc = { + trigger = { + has_trait_xp = { + trait = lifestyle_mystic + value >= 50 + } + } + desc = trait_mystic_2_character_desc + } + desc = trait_mystic_1_character_desc + } + } +} + +lifestyle_physician = { + category = lifestyle + icon = physician.dds + + # Modifiers + learning = 1 + negate_health_penalty_add = 0.25 + + track = { + 50 = { + learning = 1 + negate_health_penalty_add = 0.25 + } + 100 = { + learning = 2 + negate_health_penalty_add = 0.5 + } + } + + ruler_designer_cost = 20 + + # AI Values + ai_rationality = 10 + + # Loc + name = { + first_valid = { + #Renowned Physician + triggered_desc = { + trigger = { + exists = this + has_trait_xp = { + trait = lifestyle_physician + value >= 100 + } + } + desc = trait_physician_3 + } + #Physician + triggered_desc = { + trigger = { + exists = this + has_trait_xp = { + trait = lifestyle_physician + value >= 50 + } + } + desc = trait_physician_2 + } + #Novice Physician + desc = trait_physician_1 + } + } + + # Loc + desc = { + first_valid = { + #The trait can never go higher than the first level if it's not assigned to a character + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_physician_1_desc + } + triggered_desc = { + trigger = { + has_trait_xp = { + trait = lifestyle_physician + value >= 100 + } + } + desc = trait_physician_3_character_desc + } + triggered_desc = { + trigger = { + has_trait_xp = { + trait = lifestyle_physician + value >= 50 + } + } + desc = trait_physician_2_character_desc + } + desc = trait_physician_1_character_desc + } + } + + compatibility = { + whole_of_body = @pos_compat_low + scholar = @pos_compat_low + theologian = @pos_compat_low + } +} + +#Herbalist has been made into a 1 tiered lifestyle trait because no lvl up system exists in the game +lifestyle_herbalist = { + index = 256 + category = lifestyle + + # Modifiers + learning = 2 + intrigue = 2 + negate_health_penalty_add = 0.5 + culture_modifier = { + parameter = forest_trait_bonuses + forest_attrition_mult = -0.5 + taiga_attrition_mult = -0.5 + } + culture_modifier = { + parameter = jungle_trait_bonuses + jungle_attrition_mult = -0.5 + } + culture_modifier = { + parameter = herbalist_trait_gives_bonuses + monthly_prestige_gain_mult = 0.05 + monthly_learning_lifestyle_xp_gain_mult = 0.05 + diplomacy = 1 + } + + ruler_designer_cost = 50 + + # AI Values + ai_rationality = 10 + + # Loc + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = lifestyle_herbalist_desc + } + desc = lifestyle_herbalist_character_desc + } + } + + compatibility = { + lifestyle_mystic = @pos_compat_medium + whole_of_body = @pos_compat_low + scholar = @pos_compat_low + theologian = @pos_compat_low + zealous = @neg_compat_low + lifestyle_gardener = @pos_compat_medium + } +} + +#Gardener has been made into a 1 tiered lifestyle trait because no lvl up system exists in the game +lifestyle_gardener = { + category = lifestyle + icon = gardener.dds + + stewardship = 2 + stress_gain_mult = -0.2 + courtier_and_guest_opinion = 10 + + culture_modifier = { #for FP3's "Irrigation Expert" tradition + parameter = innovative_traits_more_valued + drylands_tax_mult = 0.1 + desert_tax_mult = 0.1 + desert_mountains_tax_mult = 0.1 + } + + ruler_designer_cost = 50 + + # Loc + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = lifestyle_gardener_desc + } + desc = lifestyle_gardener_character_desc + } + } + + # AI Values + ai_rationality = 10 + + compatibility = { + lifestyle_gardener = @pos_compat_medium + lifestyle_herbalist = @pos_compat_medium + scholar = @pos_compat_medium + architect = @pos_compat_low + } +} + +################ PERSONALITY ############### +lustful = { + category = personality + opposites = { + chaste + } + #Asexual characters may still have the lustful trait. This is intended to represent asexuals who, whilst not generally experiencing attraction to other people, might still have a high libido. + fertility = 0.25 + intrigue = 2 + seduce_scheme_phase_duration_add = minor_scheme_phase_duration_bonus_value + + same_opinion = 10 + opposite_opinion = -10 + + ruler_designer_cost = 25 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_lustful_desc + } + desc = trait_lustful_character_desc + } + } + + ai_honor = very_low_negative_ai_value + ai_greed = low_positive_ai_value + ai_energy = very_low_positive_ai_value + ai_zeal = very_low_negative_ai_value + ai_sociability = medium_positive_ai_value + ai_amenity_target_baseline = 0.15 + ai_amenity_spending = 0.1 + + compatibility = { + lustful = @pos_compat_high + gregarious = @pos_compat_low + lifestyle_reveler = @pos_compat_low + seducer = @pos_compat_low + chaste = @neg_compat_high + celibate = @neg_compat_high + shy = @neg_compat_low + } +} + +chaste = { + category = personality + opposites = { + lustful + } + + fertility = -0.25 + seduce_scheme_phase_duration_add = major_scheme_phase_duration_malus_value + learning = 2 + + same_opinion = 10 + opposite_opinion = -10 + + ruler_designer_cost = 20 + + culture_modifier = { + parameter = introverted_trait_bonuses + same_culture_opinion = 10 + monthly_piety_gain_mult = 0.1 + } + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_chaste_desc + } + desc = trait_chaste_character_desc + } + } + + ai_honor = low_positive_ai_value + ai_greed = low_negative_ai_value + ai_energy = very_low_positive_ai_value + ai_zeal = very_low_positive_ai_value + ai_sociability = low_negative_ai_value + + compatibility = { + chaste = @pos_compat_medium + celibate = @pos_compat_medium + temperate = @pos_compat_low + calm = @pos_compat_low + lustful = @neg_compat_high + deviant = @neg_compat_high + lovers_pox = @neg_compat_low + early_great_pox = @neg_compat_low + great_pox = @neg_compat_low + lifestyle_reveler = @neg_compat_low + seducer = @neg_compat_low + } +} + +gluttonous = { + category = personality + opposites = { + temperate + } + + stewardship = -2 + stress_loss_mult = 0.1 + + attraction_opinion = -5 + same_opinion = 10 + opposite_opinion = -10 + + ruler_designer_cost = 20 + + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_gluttonous_desc + } + desc = trait_gluttonous_character_desc + } + } + + ai_greed = medium_positive_ai_value + ai_energy = very_low_negative_ai_value + ai_amenity_target_baseline = 0.2 + + compatibility = { + gluttonous = @pos_compat_medium + drunkard = @pos_compat_low + greedy = @pos_compat_low + ambitious = @pos_compat_low + lifestyle_reveler = @pos_compat_medium + temperate = @neg_compat_medium + } +} + +temperate = { + category = personality + opposites = { + gluttonous + } + stewardship = 2 + health = 0.25 + + courtly_opinion = -10 + + same_opinion = 10 + opposite_opinion = -10 + + ruler_designer_cost = 40 + + culture_modifier = { + parameter = introverted_trait_bonuses + same_culture_opinion = 10 + monthly_piety_gain_mult = 0.1 + } + + culture_modifier = { + parameter = temperate_trait_bonuses + same_culture_opinion = 10 + monthly_piety = 0.5 + } + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_temperate_desc + } + desc = trait_temperate_character_desc + } + } + + ai_greed = medium_negative_ai_value + ai_energy = very_low_positive_ai_value + ai_vengefulness = very_low_negative_ai_value + + compatibility = { + temperate = @pos_compat_medium + calm = @pos_compat_low + content = @pos_compat_low + chaste = @pos_compat_low + gluttonous = @neg_compat_medium + drunkard = @neg_compat_low + greedy = @neg_compat_low + lustful = @neg_compat_low + lifestyle_reveler = @neg_compat_medium + } +} + +greedy = { + category = personality + opposites = { + generous + } + diplomacy = -2 + + monthly_income_mult = 0.05 + monthly_income_per_stress_level_mult = 0.1 + courtly_opinion = -15 + + ai_war_chance = 0.5 + ai_amenity_spending = -0.25 + ai_amenity_target_baseline = -0.4 + + ruler_designer_cost = 30 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_greedy_desc + } + desc = trait_greedy_character_desc + } + } + + ai_honor = very_low_negative_ai_value + ai_greed = dominant_positive_ai_value + ai_compassion = low_negative_ai_value + + compatibility = { + greedy = @pos_compat_low + ambitious = @pos_compat_low + generous = @neg_compat_high + content = @neg_compat_medium + compassionate = @neg_compat_medium + } +} + +generous = { + category = personality + opposites = { + greedy + } + + diplomacy = 3 + monthly_income_mult = -0.1 + courtly_opinion = 15 + + opposite_opinion = -15 + + + ruler_designer_cost = 20 + + culture_modifier = { + parameter = trait_county_opinion_modifiers + county_opinion_add = 5 + } + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_generous_desc + } + desc = trait_generous_character_desc + } + } + + ai_honor = low_positive_ai_value + ai_greed = dominant_negative_ai_value + ai_compassion = medium_positive_ai_value + ai_sociability = very_low_positive_ai_value + ai_amenity_spending = 0.2 + + compatibility = { + generous = @pos_compat_high + compassionate = @pos_compat_medium + content = @pos_compat_low + forgiving = @pos_compat_low + greedy = @neg_compat_high + ambitious = @neg_compat_low + } +} + +lazy = { + category = personality + opposites = { + diligent + } + diplomacy = -1 + intrigue = -1 + stewardship = -1 + martial = -1 + learning = -1 + + character_travel_speed = -10 + + stress_loss_mult = 0.5 + + ruler_designer_cost = -10 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_lazy_desc + } + desc = trait_lazy_character_desc + } + } + + ai_vengefulness = very_low_negative_ai_value + ai_greed = very_low_positive_ai_value + ai_energy = high_negative_ai_value + ai_boldness = low_negative_ai_value + ai_compassion = very_low_negative_ai_value + ai_sociability = very_low_negative_ai_value + + compatibility = { + lazy = @pos_compat_medium + content = @pos_compat_low + calm = @pos_compat_low + gluttonous = @pos_compat_low + diligent = @neg_compat_medium + ambitious = @neg_compat_low + eccentric = @neg_compat_low + } +} + +diligent = { + category = personality + opposites = { + lazy + } + diplomacy = 2 + stewardship = 3 + learning = 3 + + parochial_opinion = 5 + + stress_loss_mult = -0.5 + + culture_modifier = { + parameter = hard_working_traits_more_valued + farmlands_tax_mult = 0.2 + floodplains_tax_mult = 0.2 + } + + culture_modifier = { + parameter = pragmatic_traits_county_opinion_modifiers + county_opinion_add = 10 + } + + same_opinion = 10 + opposite_opinion = -10 + + flag = can_improve_capital_decision + + culture_modifier = { + parameter = trait_county_opinion_modifiers + county_opinion_add = 5 + } + + culture_modifier = { + parameter = winter_trait_bonuses + winter_movement_speed = 0.1 + } + + culture_modifier = { + parameter = dry_trait_bonuses + drylands_min_combat_roll = 2 + desert_min_combat_roll = 2 + } + + culture_modifier = { + parameter = build_bonuses_on_religious_traits + church_holding_build_speed = -0.2 + church_holding_holding_build_speed = -0.2 + } + + ruler_designer_cost = 40 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_diligent_desc + } + desc = trait_diligent_character_desc + } + } + + ai_vengefulness = very_low_positive_ai_value + ai_rationality = low_positive_ai_value + ai_energy = very_high_positive_ai_value + ai_boldness = medium_positive_ai_value + ai_amenity_target_baseline = 0.1 + ai_amenity_spending = 0.1 + + compatibility = { + diligent = @pos_compat_medium + ambitious = @pos_compat_low + patient = @pos_compat_low + whole_of_body = @pos_compat_low + scholar = @pos_compat_low + theologian = @pos_compat_low + pensive = @pos_compat_low + architect = @pos_compat_low + administrator = @pos_compat_low + avaricious = @pos_compat_low + lazy = @neg_compat_medium + content = @neg_compat_low + } +} + +wrathful = { + category = personality + opposites = { + calm + } + diplomacy = -1 + martial = 3 + intrigue = -1 + + parochial_opinion = -10 + glory_hound_opinion = 5 + + courtly_opinion = -10 + + dread_baseline_add = 20 + + culture_modifier = { + parameter = forest_trait_bonuses + forest_max_combat_roll = 2 + taiga_max_combat_roll = 2 + } + + culture_modifier = { + parameter = jungle_trait_bonuses + jungle_max_combat_roll = 2 + } + + culture_modifier = { + parameter = mountain_trait_bonuses + mountains_max_combat_roll = 2 + desert_mountains_max_combat_roll = 2 + } + + culture_modifier = { + parameter = dry_trait_bonuses + drylands_max_combat_roll = 2 + desert_max_combat_roll = 2 + } + + ai_war_chance = 0.25 + + flag = can_duel_criminals_interaction + + ruler_designer_cost = 30 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_wrathful_desc + } + desc = trait_wrathful_character_desc + } + } + + ai_rationality = medium_negative_ai_value + ai_energy = very_low_positive_ai_value + ai_boldness = medium_positive_ai_value + ai_compassion = low_negative_ai_value + ai_vengefulness = low_positive_ai_value + + compatibility = { + wrathful = @pos_compat_low + stubborn = @pos_compat_low + honest = @pos_compat_low + vengeful = @pos_compat_low + calm = @neg_compat_medium + patient = @neg_compat_medium + forgiving = @neg_compat_low + compassionate = @neg_compat_low + eccentric = @neg_compat_low + } +} + +calm = { + category = personality + opposites = { + wrathful + } + diplomacy = 1 + intrigue = 1 + scheme_discovery_chance_mult = 0.1 + + opposite_opinion = -10 + same_opinion = 10 + + stress_loss_mult = 0.1 + dread_decay_mult = 0.5 + + culture_modifier = { + parameter = winter_trait_bonuses + winter_advantage = 3 + } + + culture_modifier = { + parameter = forest_trait_bonuses + forest_min_combat_roll = 1 + taiga_min_combat_roll = 1 + } + + culture_modifier = { + parameter = jungle_trait_bonuses + jungle_min_combat_roll = 1 + } + + culture_modifier = { + parameter = mountain_trait_bonuses + mountains_min_combat_roll = 2 + desert_mountains_min_combat_roll = 2 + } + + culture_modifier = { + parameter = dry_trait_bonuses + drylands_min_combat_roll = 2 + desert_min_combat_roll = 2 + } + + ai_war_chance = -0.25 + + ruler_designer_cost = 25 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_calm_desc + } + desc = trait_calm_character_desc + } + } + + ai_rationality = very_high_positive_ai_value + ai_energy = very_low_negative_ai_value + ai_boldness = low_negative_ai_value + ai_vengefulness = very_low_negative_ai_value + + compatibility = { + calm = @pos_compat_medium + patient = @pos_compat_medium + chaste = @pos_compat_low + temperate = @pos_compat_low + lazy = @pos_compat_low + wrathful = @neg_compat_high + impatient = @neg_compat_medium + } +} + +patient = { + category = personality + opposites = { + impatient + } + + learning = 2 + enemy_hostile_scheme_phase_duration_add = minor_scheme_phase_duration_malus_value + parochial_opinion = 10 + liege_opinion = 5 + + culture_modifier = { + parameter = winter_trait_bonuses + winter_advantage = 3 + } + + culture_modifier = { + parameter = forest_trait_bonuses + forest_min_combat_roll = 2 + taiga_min_combat_roll = 2 + } + + culture_modifier = { + parameter = jungle_trait_bonuses + jungle_min_combat_roll = 2 + } + + culture_modifier = { + parameter = hard_working_traits_more_valued + farmlands_tax_mult = 0.2 + floodplains_tax_mult = 0.2 + } + + culture_modifier = { #for FP3's "Irrigation Expert" tradition + parameter = innovative_traits_more_valued + drylands_tax_mult = 0.1 + desert_tax_mult = 0.1 + desert_mountains_tax_mult = 0.1 + } + + opposite_opinion = -15 + + ai_war_cooldown = 0.5 + + ruler_designer_cost = 30 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_patient_desc + } + desc = trait_patient_character_desc + } + } + + ai_rationality = medium_positive_ai_value + ai_energy = very_low_negative_ai_value + ai_boldness = low_negative_ai_value + ai_vengefulness = very_low_positive_ai_value + + compatibility = { + patient = @pos_compat_medium + calm = @pos_compat_medium + stubborn = @pos_compat_low + temperate = @pos_compat_low + eccentric = @pos_compat_low + impatient = @neg_compat_high + wrathful = @neg_compat_low + fickle = @neg_compat_low + } +} + +impatient = { + category = personality + opposites = { + patient + } + learning = -2 + monthly_prestige_gain_mult = 0.2 + hostile_scheme_phase_duration_add = minor_scheme_phase_duration_bonus_value + character_travel_speed_mult = 0.25 + character_travel_safety = -10 + + courtly_opinion = -10 + parochial_opinion = -10 + opinion_of_liege = -5 + opposite_opinion = -15 + + culture_modifier = { + parameter = forest_trait_bonuses + forest_max_combat_roll = 1 + taiga_max_combat_roll = 1 + } + + culture_modifier = { + parameter = jungle_trait_bonuses + jungle_max_combat_roll = 1 + } + + ai_war_cooldown = -0.5 + + flag = can_accelerate_schemes_decision + + ruler_designer_cost = 25 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_impatient_desc + } + desc = trait_impatient_character_desc + } + } + + ai_rationality = medium_negative_ai_value + ai_energy = very_low_positive_ai_value + ai_boldness = low_positive_ai_value + ai_vengefulness = very_low_negative_ai_value + ai_amenity_target_baseline = 0.15 + ai_amenity_spending = 0.1 + + compatibility = { + impatient = @pos_compat_low + wrathful = @pos_compat_low + brave = @pos_compat_low + patient = @neg_compat_medium + calm = @neg_compat_low + temperate = @neg_compat_low + eccentric = @neg_compat_high + } +} + +arrogant = { + category = personality + opposites = { + humble + } + + monthly_prestige = 1 + + owned_scheme_secrecy_add = -10 + + opinion_of_liege = -5 + opinion_of_vassal = -5 + opposite_opinion = -15 + + ruler_designer_cost = 20 + + culture_modifier = { + parameter = mountain_trait_bonuses + mountains_advantage = 2 + desert_mountains_advantage = 2 + } + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_arrogant_desc + } + desc = trait_arrogant_character_desc + } + } + + ai_honor = low_negative_ai_value + ai_greed = low_positive_ai_value + ai_rationality = low_negative_ai_value + ai_boldness = medium_positive_ai_value + ai_energy = very_low_positive_ai_value + ai_compassion = low_negative_ai_value + ai_sociability = low_positive_ai_value + ai_amenity_target_baseline = 1 + + compatibility = { + arrogant = @pos_compat_low + greedy = @pos_compat_medium + ambitious = @pos_compat_medium + beauty_good_1 = @pos_compat_low + beauty_good_2 = @pos_compat_low + beauty_good_3 = @pos_compat_low + humble = @neg_compat_medium + content = @neg_compat_medium + generous = @neg_compat_low + beauty_bad_1 = @neg_compat_low + beauty_bad_2 = @neg_compat_low + beauty_bad_3 = @neg_compat_low + } +} + +humble = { + category = personality + opposites = { + arrogant + } + + monthly_piety = 0.5 + + clergy_opinion = 10 + zealot_opinion = 10 + opinion_of_liege = 10 + opinion_of_vassal = 10 + opposite_opinion = -15 + + ruler_designer_cost = 20 + + culture_modifier = { + parameter = mountain_trait_bonuses + mountains_attrition_mult = -0.25 + desert_mountains_attrition_mult = -0.25 + } + + culture_modifier = { + parameter = dry_trait_bonuses + drylands_attrition_mult = -0.2 + desert_attrition_mult = -0.2 + } + + culture_modifier = { + parameter = build_bonuses_on_religious_traits + church_holding_build_gold_cost = -0.15 + church_holding_holding_build_gold_cost = -0.15 + } + + culture_modifier = { + parameter = introverted_trait_bonuses + same_culture_opinion = 10 + monthly_piety_gain_mult = 0.1 + } + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_humble_desc + } + desc = trait_humble_character_desc + } + } + + ai_honor = low_positive_ai_value + ai_greed = high_negative_ai_value + ai_energy = very_low_negative_ai_value + ai_compassion = low_positive_ai_value + ai_amenity_target_baseline = -0.2 + + compatibility = { + humble = @pos_compat_high + content = @pos_compat_low + generous = @pos_compat_low + compassionate = @pos_compat_low + just = @pos_compat_low + arrogant = @neg_compat_high + greedy = @neg_compat_medium + ambitious = @neg_compat_medium + } +} + +deceitful = { + category = personality + opposites = { + honest + } + diplomacy = -2 + intrigue = 4 + + culture_modifier = { + parameter = forest_trait_bonuses + forest_advantage = 2 + taiga_advantage = 2 + } + + culture_modifier = { + parameter = jungle_trait_bonuses + jungle_advantage = 2 + } + + culture_modifier = { + parameter = palace_politics_trait_bonuses + monthly_influence = 0.25 + } + + opposite_opinion = -10 + + flag = can_improve_hostile_schemes_decision + + ruler_designer_cost = 30 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_deceitful_desc + } + desc = trait_deceitful_character_desc + } + } + + ai_honor = high_negative_ai_value + ai_compassion = very_low_negative_ai_value + ai_rationality = very_low_positive_ai_value + ai_boldness = very_low_negative_ai_value + + compatibility = { + deceitful = @pos_compat_medium + charming = @pos_compat_medium + ambitious = @pos_compat_low + honest = @neg_compat_medium + just = @neg_compat_medium + trusting = @neg_compat_medium #"Why are they so gullible?!" + paranoid = @neg_compat_low #"Why are they so hard to fool?!" + compassionate = @neg_compat_low + eccentric = @neg_compat_low #"What even is this person" + } +} + +honest = { + category = personality + opposites = { + deceitful + } + diplomacy = 2 + intrigue = -4 + + courtly_opinion = 5 + opposite_opinion = -10 + same_opinion = 10 + + culture_modifier = { + parameter = dry_trait_bonuses + drylands_attrition_mult = -0.15 + desert_attrition_mult = -0.15 + } + + culture_modifier = { + parameter = trait_county_opinion_modifiers + county_opinion_add = 5 + } + + ruler_designer_cost = 20 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_honest_desc + } + desc = trait_honest_character_desc + } + } + + ai_honor = high_positive_ai_value + ai_boldness = very_low_positive_ai_value + ai_compassion = very_low_positive_ai_value + ai_sociability = low_positive_ai_value + + compatibility = { + honest = @pos_compat_high + just = @pos_compat_medium + trusting = @pos_compat_medium + compassionate = @pos_compat_low + deceitful = @neg_compat_high + charming = @neg_compat_medium + paranoid = @neg_compat_medium + } +} + +craven = { + category = personality + opposites = { + brave + } + martial = -2 + prowess = -3 + intrigue = 2 + + attraction_opinion = -10 + glory_hound_opinion = -15 + courtly_opinion = -5 + same_opinion = 20 + + owned_scheme_secrecy_add = 10 + enemy_hostile_scheme_phase_duration_add = minor_scheme_phase_duration_malus_value + character_travel_safety_mult = 0.25 + + culture_modifier = { + parameter = craven_and_content_traits_looked_down_upon + same_culture_opinion = -15 + } + + culture_modifier = { + parameter = craven_trait_costs_prestige + monthly_prestige = -0.5 + } + + ruler_designer_cost = -10 + + flag = lower_chance_of_dying_in_combat + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_craven_desc + } + desc = trait_craven_character_desc + } + } + + ai_energy = low_negative_ai_value + ai_boldness = dominant_negative_ai_value + ai_rationality = very_low_positive_ai_value + ai_sociability = low_negative_ai_value + + compatibility = { + craven = @pos_compat_low + patient = @pos_compat_low + calm = @pos_compat_low + content = @pos_compat_low + brave = @neg_compat_medium + wrathful = @neg_compat_high + sadistic = @neg_compat_high + callous = @neg_compat_medium + impatient = @neg_compat_low + ambitious = @neg_compat_low + deceitful = @neg_compat_low + } +} + +brave = { + category = personality + opposites = { + craven + } + martial = 2 + prowess = 3 + + attraction_opinion = 10 + glory_hound_opinion = 10 + opposite_opinion = -10 + same_opinion = 10 + + culture_modifier = { + parameter = trait_county_opinion_modifiers + county_opinion_add = 10 + } + + culture_modifier = { + parameter = mountain_trait_bonuses + mountains_max_combat_roll = 3 + desert_mountains_max_combat_roll = 3 + } + + culture_modifier = { + parameter = winter_trait_bonuses + winter_movement_speed = 0.1 + } + + culture_modifier = { + parameter = hill_trait_bonuses + hills_advantage = 4 + hills_attrition_mult = -0.25 + } + + ruler_designer_cost = 40 + + flag = higher_chance_of_dying_in_battle + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_brave_desc + } + desc = trait_brave_character_desc + } + } + + ai_energy = low_positive_ai_value + ai_boldness = dominant_positive_ai_value + ai_rationality = low_negative_ai_value + ai_sociability = low_positive_ai_value + ai_amenity_target_baseline = 0.1 + + compatibility = { + brave = @pos_compat_high + ambitious = @pos_compat_medium + rowdy = @pos_compat_medium + gallant = @pos_compat_low + lifestyle_blademaster = @pos_compat_low + strategist = @pos_compat_low + overseer = @pos_compat_low + gallant = @pos_compat_low + craven = @neg_compat_high + lazy = @neg_compat_medium + calm = @neg_compat_low + content = @neg_compat_low + } +} + +shy = { + category = personality + opposites = { + gregarious + } + diplomacy = -2 + learning = 1 + enemy_hostile_scheme_phase_duration_add = medium_scheme_phase_duration_malus_value + personal_scheme_phase_duration_add = medium_scheme_phase_duration_malus_value + learn_language_scheme_phase_duration_add = medium_scheme_phase_duration_bonus_value + character_travel_safety_mult = 0.25 + epidemic_resistance = 5 + + attraction_opinion = -5 + same_opinion = 10 + parochial_opinion = 10 + + flag = trait_unlocks_t4_withdraw_from_view + + culture_modifier = { + parameter = introverted_trait_bonuses + same_culture_opinion = 10 + monthly_piety_gain_mult = 0.1 + } + + culture_modifier = { + parameter = palace_politics_trait_maluses + monthly_influence = -0.25 + } + + ruler_designer_cost = -10 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_shy_desc + } + desc = trait_shy_character_desc + } + } + + ai_boldness = low_negative_ai_value + ai_zeal = very_low_negative_ai_value + ai_vengefulness = very_low_negative_ai_value + ai_sociability = dominant_negative_ai_value + ai_amenity_target_baseline = -0.1 + + compatibility = { + shy = @pos_compat_medium + content = @pos_compat_low + calm = @pos_compat_low + craven = @pos_compat_low + chaste = @pos_compat_low + celibate = @pos_compat_low + eccentric = @pos_compat_low + gregarious = @neg_compat_high + curious = @neg_compat_medium + wrathful = @neg_compat_medium + ambitious = @neg_compat_low + lustful = @neg_compat_low + } +} + +gregarious = { + category = personality + opposites = { + shy + } + diplomacy = 2 + personal_scheme_phase_duration_add = minor_scheme_phase_duration_bonus_value + + attraction_opinion = 5 + same_opinion = 10 + courtly_opinion = 5 + + monthly_influence = 0.1 + + culture_modifier = { + parameter = trait_county_opinion_modifiers + county_opinion_add = 5 + } + + culture_modifier = { + parameter = gregarious_trait_gives_bonuses + monthly_diplomacy_lifestyle_xp_gain_mult = 0.1 + } + + ruler_designer_cost = 30 + + culture_modifier = { + parameter = life_is_a_joke_trait_same_culture_opinion + same_culture_opinion = 5 + } + + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_gregarious_desc + } + desc = trait_gregarious_character_desc + } + } + + ai_boldness = low_positive_ai_value + ai_compassion = medium_positive_ai_value + ai_sociability = dominant_positive_ai_value + ai_amenity_target_baseline = 0.5 + + compatibility = { + gregarious = @pos_compat_high + curious = @pos_compat_medium + charming = @pos_compat_high + compassionate = @pos_compat_medium + honest = @pos_compat_medium + lustful = @pos_compat_medium + lifestyle_reveler = @pos_compat_medium + diplomat = @pos_compat_medium + family_first = @pos_compat_medium + august = @pos_compat_medium + gallant = @pos_compat_medium + eccentric = @pos_compat_medium + trusting = @pos_compat_low + shy = @neg_compat_medium + callous = @neg_compat_medium + sadistic = @neg_compat_medium + chaste = @neg_compat_low + celibate = @neg_compat_low + craven = @neg_compat_low + } +} + +ambitious = { + category = personality + opposites = { + content + } + + intrigue = 1 + stewardship = 1 + diplomacy = 1 + martial = 1 + learning = 1 + prowess = 1 + + culture_modifier = { + parameter = mountain_trait_bonuses + mountains_advantage = 2 + desert_mountains_advantage = 2 + } + + culture_modifier = { + parameter = dry_trait_bonuses + drylands_max_combat_roll = 3 + desert_max_combat_roll = 3 + } + + culture_modifier = { + parameter = ambitious_trait_penalty + same_culture_opinion = -15 + } + + culture_modifier = { + parameter = palace_politics_trait_bonuses + monthly_influence = 0.35 + } + + opinion_of_liege = -15 + same_opinion = -15 + glory_hound_opinion = 10 + + stress_gain_mult = 0.25 + + ai_war_cooldown = -0.25 + ai_war_chance = 1 + ai_amenity_target_baseline = 0.25 + ai_amenity_spending = 0.1 + + ruler_designer_cost = 40 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_ambitious_desc + } + desc = trait_ambitious_character_desc + } + } + + ai_honor = low_negative_ai_value + ai_greed = very_high_positive_ai_value + ai_energy = very_high_positive_ai_value + ai_boldness = high_positive_ai_value + ai_zeal = very_low_positive_ai_value + ai_sociability = low_positive_ai_value + + compatibility = { + ambitious = @pos_compat_low + diligent = @pos_compat_low + greedy = @pos_compat_low + brave = @pos_compat_low + rowdy = @pos_compat_low + content = @neg_compat_medium + lazy = @neg_compat_medium + craven = @neg_compat_medium + generous = @neg_compat_low + trusting = @neg_compat_low + } +} + +content = { + category = personality + opposites = { + ambitious + } + intrigue = -1 + learning = 2 + + opinion_of_liege = 20 + opinion_of_vassal = 10 + same_opinion = 20 + parochial_opinion = 10 + + stress_loss_mult = 0.1 + + ai_war_chance = -0.25 + + ruler_designer_cost = 20 + + culture_modifier = { + parameter = craven_and_content_traits_looked_down_upon + same_culture_opinion = -15 + } + + culture_modifier = { + parameter = hill_trait_bonuses + hills_advantage = 2 + } + + culture_modifier = { + parameter = introverted_trait_bonuses + same_culture_opinion = 10 + monthly_piety_gain_mult = 0.1 + } + + culture_modifier = { + parameter = life_is_a_joke_trait_same_culture_opinion + same_culture_opinion = 5 + } + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_content_desc + } + desc = trait_content_character_desc + } + } + + ai_honor = very_low_positive_ai_value + ai_greed = high_negative_ai_value + ai_energy = medium_negative_ai_value + ai_boldness = medium_negative_ai_value + ai_zeal = very_low_negative_ai_value + ai_vengefulness = very_low_negative_ai_value + ai_sociability = very_low_negative_ai_value + ai_amenity_spending = -0.1 + + compatibility = { + content = @pos_compat_medium + lazy = @pos_compat_low + calm = @pos_compat_low + generous = @pos_compat_low + forgiving = @pos_compat_low + ambitious = @neg_compat_medium + diligent = @neg_compat_low + greedy = @neg_compat_low + brave = @neg_compat_low + vengeful = @neg_compat_low + } +} + +arbitrary = { + category = personality + opposites = { + just + } + stewardship = -2 + learning = -1 + intrigue = 3 + + stress_gain_mult = -0.5 + dread_baseline_add = 15 + + culture_modifier = { + parameter = palace_politics_trait_bonuses + monthly_influence = 0.15 + } + + vassal_opinion = -5 + + flag = can_dismiss_hooks_interaction + flag = trait_unlocks_t2_arbitrary_arrests + + ruler_designer_cost = 30 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_arbitrary_desc + } + desc = trait_arbitrary_character_desc + } + } + + ai_honor = dominant_negative_ai_value + ai_rationality = low_negative_ai_value + ai_zeal = very_low_negative_ai_value + ai_compassion = very_low_negative_ai_value + ai_boldness = very_low_positive_ai_value + + compatibility = { + eccentric = @pos_compat_medium + arbitrary = @pos_compat_low + fickle = @pos_compat_low + just = @neg_compat_medium + zealous = @neg_compat_low + stubborn = @neg_compat_low + honest = @neg_compat_low + } +} + +just = { + category = personality + opposites = { + arbitrary + } + stewardship = 2 + learning = 1 + intrigue = -3 + + parochial_opinion = 15 + minority_opinion = 15 + opposite_opinion = -10 + same_opinion = 10 + flag = initial_legitimacy_boost + + culture_modifier = { + parameter = just_trait_gives_bonuses + monthly_prestige_gain_mult = 0.05 + diplomacy_per_prestige_level = 1 + } + + ruler_designer_cost = 40 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_just_desc + } + desc = trait_just_character_desc + } + } + + ai_honor = dominant_positive_ai_value + ai_zeal = very_low_positive_ai_value + ai_vengefulness = very_low_positive_ai_value + ai_rationality = low_positive_ai_value + ai_amenity_target_baseline = 0.05 + ai_amenity_spending = 0.05 + + compatibility = { + just = @pos_compat_high + zealous = @pos_compat_medium + honest = @pos_compat_medium + compassionate = @pos_compat_medium + gallant = @pos_compat_medium + trusting = @pos_compat_low + brave = @pos_compat_low + arbitrary = @neg_compat_high + deceitful = @neg_compat_medium + sadistic = @neg_compat_medium + callous = @neg_compat_medium + fickle = @neg_compat_low + greedy = @neg_compat_low + eccentric = @neg_compat_low + } +} + +cynical = { + category = personality + opposites = { + zealous + } + intrigue = 2 + learning = 2 + + monthly_piety_gain_mult = -0.2 + faith_conversion_piety_cost_mult = -0.2 + + opposite_opinion = -10 + same_opinion = 10 + zealot_opinion = -15 + + culture_modifier = { + parameter = build_bonuses_on_religious_traits + church_holding_build_gold_cost = 0.2 + church_holding_holding_build_gold_cost = 0.2 + } + + culture_modifier = { + parameter = life_is_a_joke_trait_same_culture_opinion + same_culture_opinion = 5 + } + + ruler_designer_cost = 30 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_cynical_desc + } + desc = trait_cynical_character_desc + } + } + + ai_rationality = medium_positive_ai_value + ai_energy = low_negative_ai_value + ai_zeal = dominant_negative_ai_value + ai_compassion = very_low_negative_ai_value + + compatibility = { + cynical = @pos_compat_high + whole_of_body = @pos_compat_medium + scholar = @pos_compat_medium + theologian = @pos_compat_medium + honest = @pos_compat_low + intellect_good_1 = @pos_compat_low + intellect_good_2 = @pos_compat_low + intellect_good_3 = @pos_compat_low + shrewd = @pos_compat_low + zealous = @neg_compat_high + intellect_bad_1 = @neg_compat_medium + intellect_bad_2 = @neg_compat_medium + intellect_bad_3 = @neg_compat_medium + trusting = @neg_compat_low + } +} + +zealous = { + category = personality + opposites = { + cynical + } + martial = 2 + + monthly_piety_gain_mult = 0.2 + faith_conversion_piety_cost_mult = 0.2 + + opposite_opinion = -10 + same_opinion_if_same_faith = 15 + opinion_of_different_faith = -35 + zealot_opinion = 15 + + culture_modifier = { + parameter = dry_trait_bonuses + drylands_advantage = 2 + desert_advantage = 2 + } + + culture_modifier = { + parameter = build_bonuses_on_religious_traits + church_holding_build_gold_cost = -0.25 + church_holding_holding_build_gold_cost = -0.25 + } + + ruler_designer_cost = 30 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_zealous_desc + } + desc = trait_zealous_character_desc + } + } + + ai_rationality = low_negative_ai_value + ai_energy = low_positive_ai_value + ai_zeal = dominant_positive_ai_value + + compatibility = { + zealous = @pos_compat_high + just = @pos_compat_medium + devoted = @pos_compat_medium + ambitious = @pos_compat_low + trusting = @pos_compat_low + whole_of_body = @pos_compat_low + scholar = @pos_compat_low + theologian = @pos_compat_low + cynical = @neg_compat_high + craven = @neg_compat_medium + content = @neg_compat_low + paranoid = @neg_compat_low + drunkard = @neg_compat_low + lifestyle_herbalist = @neg_compat_low + lifestyle_mystic = @neg_compat_low + eccentric = @neg_compat_low + } +} + +paranoid = { + category = personality + opposites = { + trusting + } + diplomacy = -1 + intrigue = 3 + + stress_gain_mult = 1 + dread_gain_mult = 0.25 + + scheme_discovery_chance_mult = 0.1 + enemy_personal_scheme_success_chance_add = -25 + + character_travel_speed = -10 + character_travel_safety = 10 + + flag = trait_unlocks_t2_countermeasures + + culture_modifier = { + parameter = forest_trait_bonuses + forest_min_combat_roll = 2 + taiga_min_combat_roll = 2 + } + + culture_modifier = { + parameter = jungle_trait_bonuses + jungle_min_combat_roll = 2 + } + + culture_modifier = { + parameter = hill_trait_bonuses + hills_min_combat_roll = 2 + } + + culture_modifier = { + parameter = palace_politics_trait_bonuses + monthly_influence = 0.15 + } + + opinion_of_vassal = -10 + + ruler_designer_cost = -10 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_paranoid_desc + } + desc = trait_paranoid_character_desc + } + } + + ai_honor = low_negative_ai_value + ai_boldness = low_negative_ai_value + ai_rationality = low_negative_ai_value + ai_vengefulness = low_positive_ai_value + ai_compassion = very_low_negative_ai_value + ai_sociability = medium_negative_ai_value + ai_amenity_target_baseline = -0.1 + + compatibility = { + paranoid = @pos_compat_low + cynical = @pos_compat_low + honest = @pos_compat_low + trusting = @neg_compat_high + forgiving = @neg_compat_medium + deceitful = @neg_compat_high + sadistic = @neg_compat_high + callous = @neg_compat_high + vengeful = @neg_compat_high + gregarious = @neg_compat_medium + lustful = @neg_compat_medium + greedy = @neg_compat_medium + ambitious = @neg_compat_medium + eccentric = @neg_compat_medium + } +} + +trusting = { + category = personality + opposites = { + paranoid + } + diplomacy = 2 + intrigue = -2 + + enemy_hostile_scheme_success_chance_add = 15 + + opinion_of_liege = 15 + opinion_of_vassal = 15 + character_travel_safety = -10 + flag = can_offer_strong_hook_to_agents + + culture_modifier = { + parameter = palace_politics_trait_maluses + monthly_influence = -0.25 + } + + ruler_designer_cost = 10 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_trusting_desc + } + desc = trait_trusting_character_desc + } + } + + ai_honor = medium_positive_ai_value + ai_rationality = low_negative_ai_value + ai_vengefulness = low_negative_ai_value + ai_compassion = low_positive_ai_value + ai_sociability = medium_positive_ai_value + + compatibility = { + trusting = @pos_compat_medium + honest = @pos_compat_medium + compassionate = @pos_compat_low + paranoid = @neg_compat_medium + deceitful = @neg_compat_medium + callous = @neg_compat_low + sadistic = @neg_compat_low + vengeful = @neg_compat_low + } +} + +compassionate = { + category = personality + opposites = { + callous + sadistic + } + diplomacy = 2 + intrigue = -2 + minority_opinion = 15 + courtly_opinion = 10 + + dread_decay_mult = 1 + dread_baseline_add = -15 + + opposite_opinion = -15 + attraction_opinion = 5 + + culture_modifier = { + parameter = trait_county_opinion_modifiers + county_opinion_add = 5 + } + + ruler_designer_cost = 10 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_compassionate_desc + } + desc = trait_compassionate_character_desc + } + } + + ai_honor = medium_positive_ai_value + ai_greed = low_negative_ai_value + ai_compassion = dominant_positive_ai_value + ai_sociability = medium_positive_ai_value + ai_amenity_target_baseline = 0.1 + ai_amenity_spending = 0.05 + + compatibility = { + compassionate = @pos_compat_high + generous = @pos_compat_high + honest = @pos_compat_medium + just = @pos_compat_medium + forgiving = @pos_compat_medium + trusting = @pos_compat_low + gregarious = @pos_compat_low + curious = @pos_compat_medium + calm = @pos_compat_low + patient = @pos_compat_low + eccentric = @pos_compat_low + callous = @neg_compat_high + sadistic = @neg_compat_high + deceitful = @neg_compat_medium + arbitrary = @neg_compat_medium + vengeful = @neg_compat_medium + greedy = @neg_compat_low + paranoid = @neg_compat_low + wrathful = @neg_compat_low + torturer = @neg_compat_low + } +} + +callous = { + category = personality + opposites = { + compassionate + sadistic + } + diplomacy = -2 + intrigue = 2 + + courtly_opinion = -10 + + tyranny_gain_mult = -0.2 + dread_gain_mult = 0.25 + dread_decay_mult = -0.25 + + culture_modifier = { + parameter = winter_trait_bonuses + winter_movement_speed = 0.1 + } + + attraction_opinion = -5 + close_relative_opinion = -5 + + ruler_designer_cost = 40 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_callous_desc + } + desc = trait_callous_character_desc + } + } + + ai_honor = medium_negative_ai_value + ai_rationality = very_low_positive_ai_value + ai_compassion = dominant_negative_ai_value + ai_sociability = very_low_negative_ai_value + + compatibility = { + callous = @pos_compat_low + arbitrary = @pos_compat_low + compassionate = @neg_compat_high + curious = @neg_compat_low + generous = @neg_compat_high + just = @neg_compat_medium + forgiving = @neg_compat_medium + trusting = @neg_compat_low + } +} + +sadistic = { + category = personality + opposites = { + compassionate + callous + } + intrigue = 2 + prowess = 4 + + dread_baseline_add = 35 + + general_opinion = -10 + + courtly_opinion = -10 + + ruler_designer_cost = 40 + + flag = can_murder_own_children + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_sadistic_desc + } + desc = trait_sadistic_character_desc + } + } + + ai_honor = very_high_negative_ai_value + ai_compassion = dominant_negative_ai_value + + compatibility = { + sadistic = @pos_compat_medium + torturer = @pos_compat_low + callous = @pos_compat_low + arbitrary = @pos_compat_low + compassionate = @neg_compat_high + generous = @neg_compat_high + just = @neg_compat_medium + forgiving = @neg_compat_medium + trusting = @neg_compat_low + curious = @neg_compat_low + } +} + +stubborn = { + category = personality + opposites = { + fickle + eccentric + } + stewardship = 3 + negate_health_penalty_add = 0.25 + + culture_modifier = { + parameter = winter_trait_bonuses + winter_movement_speed = 0.1 + } + + culture_modifier = { + parameter = mountain_trait_bonuses + mountains_min_combat_roll = 2 + desert_mountains_min_combat_roll = 2 + } + + culture_modifier = { + parameter = hill_trait_bonuses + hills_min_combat_roll = 5 + } + + liege_opinion = -5 + minority_opinion = -5 + parochial_opinion = -10 + courtly_opinion = -10 + + ruler_designer_cost = 30 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_stubborn_desc + } + desc = trait_stubborn_character_desc + } + } + + ai_honor = medium_positive_ai_value + ai_rationality = very_low_negative_ai_value + ai_vengefulness = medium_positive_ai_value + ai_amenity_target_baseline = 0.1 + ai_amenity_spending = 0.05 + + compatibility = { + patient = @pos_compat_low + forgiving = @neg_compat_low + fickle = @neg_compat_low + } +} + +fickle = { + category = personality + opposites = { + stubborn + eccentric + } + intrigue = 1 + diplomacy = 2 + stewardship = -2 + + culture_modifier = { + parameter = forest_trait_bonuses + forest_max_combat_roll = 2 + taiga_max_combat_roll = 2 + } + + culture_modifier = { + parameter = jungle_trait_bonuses + jungle_max_combat_roll = 2 + } + + culture_modifier = { + parameter = life_is_a_joke_trait_same_culture_opinion + same_culture_opinion = 5 + } + + enemy_hostile_scheme_phase_duration_add = medium_scheme_phase_duration_malus_value + + ruler_designer_cost = 25 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_fickle_desc + } + desc = trait_fickle_character_desc + } + } + + ai_honor = low_negative_ai_value + ai_rationality = low_negative_ai_value + ai_boldness = low_positive_ai_value + ai_vengefulness = low_negative_ai_value + + compatibility = { + fickle = @pos_compat_low + forgiving = @pos_compat_low + stubborn = @neg_compat_medium + } +} + +eccentric = { + category = personality + opposites = { + fickle + stubborn + } + learning = 2 + diplomacy = -2 + + stress_gain_mult = 0.5 + stress_loss_mult = 0.5 + monthly_lifestyle_xp_gain_mult = 0.2 + same_opinion = 10 + flag = trait_unlocks_t2_withdraw_from_view + + culture_modifier = { + parameter = life_is_a_joke_trait_same_culture_opinion + same_culture_opinion = 5 + } + + ruler_designer_cost = 15 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_eccentric_desc + } + desc = trait_eccentric_character_desc + } + } + + ai_rationality = dominant_negative_ai_value + ai_honor = low_negative_ai_value + ai_boldness = very_high_positive_ai_value + ai_sociability = low_negative_ai_value + + compatibility = { + patient = @pos_compat_high + arbitrary = @pos_compat_low + shy = @pos_compat_low + gregarious = @pos_compat_low + compassionate = @pos_compat_low + stubborn = @neg_compat_medium + fickle = @neg_compat_medium + zealous = @neg_compat_medium + just = @neg_compat_medium + wrathful = @neg_compat_medium + impatient = @neg_compat_medium + deceitful = @neg_compat_medium + paranoid = @neg_compat_medium + } + random_creation_weight = 0.05 +} + +vengeful = { + category = personality + opposites = { + forgiving + } + diplomacy = -2 + intrigue = 2 + prowess = 2 + dread_gain_mult = 0.15 + + culture_modifier = { + parameter = dry_trait_bonuses + drylands_advantage = 3 + desert_advantage = 3 + } + + culture_modifier = { + parameter = hill_trait_bonuses + hills_max_combat_roll = 5 + } + + culture_modifier = { + parameter = vengeful_positive_forgiving_negative + same_culture_opinion = 15 + hostile_scheme_phase_duration_add = medium_scheme_phase_duration_bonus_value + } + + ruler_designer_cost = 30 + + flag = extra_scheme_success_chance_vs_rivals + flag = can_fabricate_hooks_on_rivals + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_vengeful_desc + } + desc = trait_vengeful_character_desc + } + } + + ai_honor = very_low_negative_ai_value + ai_rationality = very_low_negative_ai_value + ai_energy = very_low_positive_ai_value + ai_vengefulness = dominant_positive_ai_value + ai_compassion = low_negative_ai_value + + compatibility = { + forgiving = @neg_compat_high + content = @neg_compat_medium + compassionate = @neg_compat_low + } +} + +forgiving = { + category = personality + opposites = { + vengeful + } + diplomacy = 2 + intrigue = -2 + learning = 1 + + prisoner_opinion = 15 + opposite_opinion = -10 + same_opinion = 10 + minority_opinion = 15 + + flag = can_abandon_hooks_interaction + + ruler_designer_cost = 25 + + culture_modifier = { + parameter = trait_county_opinion_modifiers + county_opinion_add = 5 + } + + culture_modifier = { + parameter = vengeful_positive_forgiving_negative + same_culture_opinion = -10 + } + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_forgiving_desc + } + desc = trait_forgiving_character_desc + } + } + + ai_honor = low_positive_ai_value + ai_rationality = very_low_positive_ai_value + ai_energy = very_low_negative_ai_value + ai_vengefulness = dominant_negative_ai_value + ai_compassion = medium_positive_ai_value + + compatibility = { + forgiving = @pos_compat_high + compassionate = @pos_compat_medium + honest = @pos_compat_medium + generous = @pos_compat_low + just = @pos_compat_low + trusting = @pos_compat_low + gregarious = @pos_compat_low + calm = @pos_compat_low + patient = @pos_compat_low + vengeful = @neg_compat_high + callous = @neg_compat_medium + sadistic = @neg_compat_medium + deceitful = @neg_compat_medium + arbitrary = @neg_compat_low + paranoid = @neg_compat_low + wrathful = @neg_compat_low + } +} + +############### Child Personality ############## +rowdy = { + + category = childhood + minimum_age = 3 + maximum_age = 15 + martial = 1 + intrigue = 1 + + ruler_designer_cost = 5 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_rowdy_desc + } + desc = trait_rowdy_character_desc + } + } + + ai_energy = 25 + ai_boldness = 25 + ai_rationality = -15 + ai_compassion = -15 + ai_vengefulness = 15 + ai_honor = -15 + ai_sociability = 15 + + compatibility = { + rowdy = @pos_compat_high + brave = @pos_compat_high + ambitious = @pos_compat_high + bossy = @pos_compat_low + curious = @pos_compat_low + pensive = @neg_compat_low + craven = @neg_compat_low + calm = @neg_compat_low + } +} + +charming = { + + category = childhood + minimum_age = 3 + maximum_age = 15 + intrigue = 1 + diplomacy = 1 + learn_language_scheme_phase_duration_add = medium_scheme_phase_duration_bonus_value + + ruler_designer_cost = 5 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_charming_desc + } + desc = trait_charming_character_desc + } + } + + ai_vengefulness = 15 + ai_greed = 25 + ai_honor = -15 + ai_rationality = 15 + ai_compassion = 15 + ai_sociability = 25 + ai_amenity_target_baseline = 0.1 + ai_amenity_spending = 0.05 + + compatibility = { + charming = @pos_compat_low + gregarious = @pos_compat_medium + deceitful = @pos_compat_low + ambitious = @pos_compat_low + bossy = @pos_compat_low + curious = @neg_compat_medium + honest = @neg_compat_medium + content = @neg_compat_medium + just = @neg_compat_medium + shy = @neg_compat_high + } +} + +curious = { + + category = childhood + minimum_age = 3 + maximum_age = 15 + diplomacy = 1 + learning = 1 + learn_language_scheme_phase_duration_add = major_scheme_phase_duration_bonus_value + + ruler_designer_cost = 5 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_curious_desc + } + desc = trait_curious_character_desc + } + } + + ai_compassion = 25 + ai_honor = 15 + ai_vengefulness = -15 + ai_boldness = 25 + ai_energy = 15 + ai_sociability = 15 + + compatibility = { + curious = @pos_compat_high + gregarious = @pos_compat_medium + compassionate = @pos_compat_medium + rowdy = @pos_compat_medium + charming = @pos_compat_low + shy = @neg_compat_high + callous = @neg_compat_medium + sadistic = @neg_compat_medium + deceitful = @neg_compat_low + } +} + +pensive = { + + category = childhood + minimum_age = 3 + maximum_age = 15 + learning = 1 + stewardship = 1 + learn_language_scheme_phase_duration_add = major_scheme_phase_duration_bonus_value + + ruler_designer_cost = 5 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_pensive_desc + } + desc = trait_pensive_character_desc + } + } + + ai_rationality = 25 + ai_greed = -15 + ai_energy = 15 + ai_boldness = -15 + ai_honor = 15 + ai_sociability = -25 + + compatibility = { + pensive = @pos_compat_high + whole_of_body = @pos_compat_high + scholar = @pos_compat_high + theologian = @pos_compat_high + diligent = @pos_compat_low + intellect_good_1 = @pos_compat_low + intellect_good_2 = @pos_compat_low + intellect_good_3 = @pos_compat_low + shrewd = @pos_compat_low + rowdy = @neg_compat_medium + bossy = @neg_compat_low + lazy = @neg_compat_low + } +} + +bossy = { + + category = childhood + minimum_age = 3 + maximum_age = 15 + stewardship = 1 + martial = 1 + + ruler_designer_cost = 5 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_bossy_desc + } + desc = trait_bossy_character_desc + } + } + + ai_boldness = 25 + ai_greed = 25 + ai_vengefulness = 15 + ai_honor = 15 + ai_rationality = 15 + + compatibility = { + bossy = @pos_compat_low + ambitious = @pos_compat_low + greedy = @pos_compat_low + rowdy = @pos_compat_low + content = @neg_compat_low + pensive = @neg_compat_low + } +} + +############### Stress Traits ############## + +drunkard = { # Substance Abuse (Alcohol) + category = fame + stewardship = -2 + prowess = -2 + health = -0.15 + stress_loss_mult = 0.2 + + same_opinion = 10 + character_travel_safety = -10 + + ruler_designer_cost = -10 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_drunkard_desc + } + desc = trait_drunkard_character_desc + } + } + + ai_rationality = -10 + ai_energy = -15 + + compatibility = { + temperate = @neg_compat_low + } +} + +hashishiyah = { # Substance Abuse (Hashish) + category = fame + stewardship = -2 + learning = -2 + stress_loss_mult = 0.2 + + same_opinion = 10 + + ruler_designer_cost = 5 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_hashishiyah_desc + } + desc = trait_hashishiyah_character_desc + } + } + + ai_energy = -15 + ai_vengefulness = -10 + + compatibility = { + temperate = @neg_compat_low + } +} + +rakish = { # Brothel-frequenter. + category = fame + intrigue = 1 + diplomacy = -1 + stress_loss_mult = 0.2 + + same_opinion = 5 + attraction_opinion = -5 + + ruler_designer_cost = 0 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_rakish_desc + } + desc = trait_rakish_character_desc + } + } + + ai_honor = -10 + ai_greed = 10 + ai_energy = -10 + ai_zeal = -10 + ai_sociability = low_positive_ai_value + + compatibility = { + chaste = @neg_compat_low + } +} + +reclusive = { # Hides away from relationships and responsibilities. + category = fame + diplomacy = -2 + stewardship = -1 + stress_loss_mult = 0.2 + epidemic_resistance = 10 + + ruler_designer_cost = -5 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_reclusive_desc + } + desc = trait_reclusive_character_desc + } + } + + flag = trait_unlocks_t3_withdraw_from_view + + ai_energy = -10 + ai_boldness = -10 + ai_sociability = medium_negative_ai_value + + compatibility = { + gregarious = @neg_compat_low + } +} + +irritable = { # Prone to outbursts and tantrums. + category = fame + diplomacy = -2 + martial = -1 + prowess = 2 + dread_gain_mult = 0.1 + stress_loss_mult = 0.2 + + ai_war_chance = 0.25 + ai_war_cooldown = -0.25 + + flag = can_duel_anyone_interaction + + ruler_designer_cost = 0 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_irritable_desc + } + desc = trait_irritable_character_desc + } + } + + attraction_opinion = -5 + + ai_rationality = -20 + ai_energy = 10 + ai_boldness = 10 + ai_vengefulness = 10 + ai_compassion = -10 + + compatibility = { + compassionate = @neg_compat_low + gregarious = @neg_compat_low + calm = @neg_compat_low + } +} + +flagellant = { # Habitually self-harms; whipping is the 'primary' one but cutting, burning, etc. could also be options. + category = fame + prowess = -2 + health = -0.15 + stress_loss_mult = 0.2 + + ruler_designer_cost = -10 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_flagellant_desc + } + desc = trait_flagellant_character_desc + } + } + + ai_honor = 10 + ai_zeal = 25 + ai_boldness = 5 + + compatibility = { + cynical = @neg_compat_low + } +} + +profligate = { # Subject to compulsive spending. Maybe also gambling? + category = fame + opposites = { + improvident + } + + monthly_prestige = 0.5 + monthly_income_mult = -0.10 + stress_loss_mult = 0.2 + courtly_opinion = 10 + + ruler_designer_cost = 10 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_profligate_desc + } + desc = trait_profligate_character_desc + } + } + + ai_greed = 10 + ai_compassion = -10 + ai_amenity_target_baseline = 0.15 + ai_amenity_spending = 0.2 + + compatibility = { + generous = @neg_compat_low + } +} + +improvident = { # Habitually gives money to charity. + category = fame + opposites = { + profligate + } + + monthly_income_mult = -0.15 + monthly_piety = 0.5 + diplomacy = 1 + stress_loss_mult = 0.2 + zealot_opinion = 10 + + ruler_designer_cost = -5 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_improvident_desc + } + desc = trait_improvident_character_desc + } + } + + ai_greed = -10 + ai_compassion = 10 + ai_amenity_spending = 0.15 + + compatibility = { + greedy = @neg_compat_low + } +} + +contrite = { # Compulsively reveals own/other's Secrets. If no known Secrets, may reveal 'minor secrets', e.g., things which aren't true Secrets but may harm other's Opinions of the character. + category = fame + intrigue = -2 + stress_loss_mult = 0.2 + + ruler_designer_cost = -5 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_contrite_desc + } + desc = trait_contrite_character_desc + } + } + + ai_honor = 10 + ai_zeal = 10 + ai_vengefulness = -10 + ai_compassion = 10 + + compatibility = { + gregarious = @neg_compat_low + deceitful = @neg_compat_low + } +} + +comfort_eater = { # Eats food to relieve stress. + category = fame + opposites = { + inappetetic + } + + stewardship = -1 + stress_loss_mult = 0.2 + + ruler_designer_cost = -5 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_comfort_eater_desc + } + desc = trait_comfort_eater_character_desc + } + } + + ai_greed = 5 + ai_energy = -5 + + compatibility = { + temperate = @neg_compat_low + } +} + +inappetetic = { # Avoids eating food when stressed + category = fame + opposites = { + comfort_eater + } + + diplomacy = -1 + prowess = -3 + stress_loss_mult = 0.2 + + ruler_designer_cost = -5 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_inappetetic_desc + } + desc = trait_inappetetic_character_desc + } + } + + ai_greed = -5 + ai_energy = -10 + + compatibility = { + gluttonous = @neg_compat_low + } +} + +journaller = { # Writes down thoughts to relieve stress (Healthy) + category = fame + learning = 1 + stress_loss_mult = 0.2 + + ruler_designer_cost = 15 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_journaller_desc + } + desc = trait_journaller_character_desc + } + } + + ai_rationality = 10 +} + +confider = { # Has a close friend to relieve stress (Healthy) + diplomacy = 1 + stress_loss_mult = 0.2 + + ruler_designer_cost = 15 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_confider_desc + } + desc = trait_confider_character_desc + } + } + + ai_compassion = 10 + ai_sociability = low_positive_ai_value +} + +athletic = { # Exercises to relieve stress (Healthy) + category = fame + prowess = 1 + health = 0.25 + stress_loss_mult = 0.2 + + culture_modifier = { + parameter = hard_working_traits_more_valued + farmlands_development_growth_factor = 0.2 + floodplains_development_growth_factor = 0.2 + } + + ruler_designer_cost = 40 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_athletic_desc + } + desc = trait_athletic_character_desc + } + } + + ai_energy = 25 + ai_boldness = 5 +} + +############### Health ############## +pregnant = { + category = health + prowess = -2 + + flag = no_message + + shown_in_ruler_designer = no + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_pregnant_desc + } + desc = trait_pregnant_character_desc + } + } + + ai_energy = -15 +} + +depressed_1 = { + category = health + group_equivalence = depressed + level = 1 + + diplomacy = -1 + stewardship = -1 + martial = -1 + intrigue = -1 + health = -0.5 + + fertility = -0.1 + + shown_in_ruler_designer = no + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_depressed_1_desc + } + desc = trait_depressed_1_character_desc + } + } + + ai_energy = -15 + ai_sociability = medium_negative_ai_value +} + +depressed_genetic = { + birth = 0.5 + random_creation = 0.5 + genetic = yes + category = health + group_equivalence = depressed + level = 2 + + diplomacy = -1 + stewardship = -1 + martial = -1 + intrigue = -1 + health = -0.5 + + fertility = -0.1 + + shown_in_encyclopedia = no + + ruler_designer_cost = -20 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_depressed_genetic_desc + } + desc = trait_depressed_genetic_character_desc + } + } + + ai_energy = -15 + #ai_sociability = medium_negative_ai_value +} + +lunatic_1 = { # Highly event driven, Schizophrenia + + group_equivalence = lunatic + level = 1 + + vassal_opinion = -10 + attraction_opinion = -10 + same_opinion = 10 + enemy_hostile_scheme_phase_duration_add = minor_scheme_phase_duration_malus_value + health = -0.25 + category = health + + shown_in_ruler_designer = no + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_lunatic_1_desc + } + desc = trait_lunatic_1_character_desc + } + } + + ai_honor = -10 + ai_rationality = -200 + ai_boldness = 50 +} + +lunatic_genetic = { # Highly event driven, Schizophrenia + birth = 0.5 + random_creation = 0.5 + genetic = yes + category = health + + group_equivalence = lunatic + level = 2 + health = -0.25 + + vassal_opinion = -10 + attraction_opinion = -10 + enemy_hostile_scheme_phase_duration_add = minor_scheme_phase_duration_malus_value + same_opinion = 10 + + shown_in_encyclopedia = no + + ruler_designer_cost = -15 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_lunatic_genetic_desc + } + desc = trait_lunatic_genetic_character_desc + } + } + + ai_honor = -10 + ai_rationality = -200 + ai_boldness = 50 +} + +possessed_1 = { # Highly event driven, Temporal lobe epilepsy + + group_equivalence = possessed + level = 1 + + category = health + + monthly_learning_lifestyle_xp_gain_mult = 0.1 + health = -0.5 + + attraction_opinion = -10 + same_opinion = 15 + + shown_in_ruler_designer = no + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_possessed_1_desc + } + desc = trait_possessed_1_character_desc + } + } + + ai_rationality = -30 + ai_boldness = 25 + ai_vengefulness = 25 +} + +possessed_genetic = { # Highly event driven, Temporal lobe epilepsy + birth = 0.5 + random_creation = 0.5 + genetic = yes + category = health + + group_equivalence = possessed + level = 2 + + monthly_learning_lifestyle_xp_gain_mult = 0.1 + health = -0.5 + + attraction_opinion = -10 + same_opinion = 15 + + shown_in_encyclopedia = no + + ruler_designer_cost = -20 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_possessed_genetic_desc + } + desc = trait_possessed_genetic_character_desc + } + } + + ai_rationality = -30 + ai_boldness = 25 + ai_vengefulness = 25 +} + +ill = { + opposites = { + pneumonic + } + + health = -1 + elderly_health = -1 + prowess = -4 + fertility = -0.2 + + category = health + + dread_baseline_add = -10 + dread_loss_mult = 1 + + ruler_designer_cost = 0 + + flag = illness + flag = debilitating_illness + flag = blocks_getting_non_epidemic_disease + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_ill_desc + } + desc = trait_ill_character_desc + } + } + + ai_energy = -25 +} + +pneumonic = { + opposites = { + ill + } + + diplomacy = -2 + stewardship = -2 + martial = -2 + intrigue = -2 + learning = -2 + health = -3 + elderly_health = -2 + prowess = -8 + fertility = -0.5 + + category = health + + dread_baseline_add = -10 + dread_loss_mult = 1 + + ruler_designer_cost = 0 + + flag = illness + flag = debilitating_illness + flag = blocks_getting_non_epidemic_disease + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_pneumonic_desc + } + desc = trait_pneumonic_character_desc + } + } + + ai_energy = -50 +} + +great_pox = { #Syphilis + inherit_chance = 10 + + diplomacy = -1 + stewardship = -1 + martial = -1 + intrigue = -1 + learning = -1 + health = -1 + fertility = -0.2 + + category = health + + dread_baseline_add = -20 + dread_loss_mult = 1 + + attraction_opinion = -10 + + ruler_designer_cost = -10 + + flag = illness + flag = blocks_getting_non_epidemic_disease + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_great_pox_desc + } + desc = trait_great_pox_character_desc + } + } + + ai_energy = -15 +} + +early_great_pox = { #Great pox, but looks like lover's pox + + dread_baseline_add = -5 #Mimic's Lover's Pox loss at this stage. + + attraction_opinion = -20 + category = health + + shown_in_ruler_designer = no + shown_in_encyclopedia = no + + flag = illness + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_early_great_pox_desc + } + desc = trait_early_great_pox_character_desc + } + } +} + +lovers_pox = { + inherit_chance = 10 + + dread_baseline_add = -5 + + attraction_opinion = -20 + category = health + + ruler_designer_cost = 0 + + flag = illness + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_lovers_pox_desc + } + desc = trait_lovers_pox_character_desc + } + } +} + +leper = { + health = -1.5 + prowess = -8 + fertility = -0.95 + category = health + + dread_baseline_add = -20 + dread_loss_mult = 1 + + attraction_opinion = -35 + general_opinion = -10 + + ruler_designer_cost = -30 + + flag = illness + flag = debilitating_illness + flag = blocks_getting_non_epidemic_disease + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_leper_desc + } + desc = trait_leper_character_desc + } + } + + ai_energy = -15 +} + +# 'Wounded' +wounded_1 = { + martial = -1 + intrigue = -1 + health = -1 + prowess = -2 + category = health + + dread_baseline_add = -10 + dread_loss_mult = 1 + + disables_combat_leadership = yes + + shown_in_ruler_designer = no + + flag = no_message + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_wounded_1_desc + } + desc = trait_wounded_1_character_desc + } + } + + ai_energy = -20 + + group = wounded + level = 1 +} + +# 'Severly Injured' +wounded_2 = { + martial = -2 + intrigue = -2 + health = -2 + prowess = -4 + fertility = -0.25 + category = health + + dread_baseline_add = -15 + dread_loss_mult = 1 + + attraction_opinion = -10 + + disables_combat_leadership = yes + + shown_in_ruler_designer = no + + flag = no_message + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_wounded_2_desc + } + desc = trait_wounded_2_character_desc + } + } + + ai_energy = -30 + + group = wounded + level = 2 +} + +# 'Near Death' +wounded_3 = { + martial = -4 + intrigue = -4 + health = -4 + prowess = -8 + fertility = -0.75 + category = health + + dread_baseline_add = -20 + dread_loss_mult = 1 + + attraction_opinion = -20 + + disables_combat_leadership = yes + + shown_in_ruler_designer = no + + flag = no_message + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_wounded_3_desc + } + desc = trait_wounded_3_character_desc + } + } + + ai_energy = -40 + + group = wounded + level = 3 +} + +maimed = { + + diplomacy = -2 + martial = -2 + stewardship = -2 + intrigue = -2 + learning = -2 + prowess = -4 + + culture_modifier = { + parameter = wounds_and_scars_give_bonuses + monthly_prestige_gain_mult = 0.2 + same_culture_opinion = 15 + } + + culture_modifier = { + parameter = palace_politics_trait_maluses + monthly_influence = -0.35 + } + + category = health + + dread_baseline_add = -15 + dread_loss_mult = 1 + + attraction_opinion = -10 + + same_opinion = 5 + + shown_in_ruler_designer = no + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_maimed_desc + } + desc = trait_maimed_character_desc + } + } +} + +one_eyed = { + category = health + learning = 1 + prowess = -2 + + dread_baseline_add = 10 + + attraction_opinion = -5 + + culture_modifier = { + parameter = wounds_and_scars_give_bonuses + monthly_prestige_gain_mult = 0.1 + same_culture_opinion = 5 + } + + culture_modifier = { + parameter = palace_politics_trait_maluses + monthly_influence = -0.35 + } + + ruler_designer_cost = 10 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_one_eyed_desc + } + desc = trait_one_eyed_character_desc + } + } + + ai_energy = -10 +} + +one_legged = { + category = health + learning = 1 + prowess = -4 + + dread_baseline_add = -10 + + attraction_opinion = -10 + + culture_modifier = { + parameter = wounds_and_scars_give_bonuses + monthly_prestige_gain_mult = 0.15 + same_culture_opinion = 10 + } + + culture_modifier = { + parameter = palace_politics_trait_maluses + monthly_influence = -0.35 + } + + ruler_designer_cost = -5 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_one_legged_desc + } + desc = trait_one_legged_character_desc + } + } + + ai_energy = -10 +} + +disfigured = { + category = health + diplomacy = -4 + fertility = -0.2 + + #No dread loss: you're not actually worse for wear physically or mentally. + + attraction_opinion = -20 + + culture_modifier = { + parameter = wounds_and_scars_give_bonuses + monthly_prestige_gain_mult = 0.15 + same_culture_opinion = 10 + } + + culture_modifier = { + parameter = palace_politics_trait_maluses + monthly_influence = -1 + } + + ruler_designer_cost = -10 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_disfigured_desc + } + desc = trait_disfigured_character_desc + } + } + + ai_sociability = low_negative_ai_value +} + +infirm = { + diplomacy = -3 + martial = -3 + stewardship = -3 + intrigue = -3 + learning = -3 + prowess = -6 + health = -1 + fertility = -0.3 + + dread_baseline_add = -15 + dread_loss_mult = 1 + + category = health + + disables_combat_leadership = yes + + ruler_designer_cost = -20 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_infirm_desc + } + desc = trait_infirm_character_desc + } + } + + ai_energy = -30 +} + +incapable = { + diplomacy = -6 + intrigue = -6 + stewardship = -6 + martial = -6 + learning = -6 + prowess = -12 + health = -2 + fertility = -0.3 + + dread_baseline_add = -25 + dread_loss_mult = 1 + category = health + + incapacitating = yes + + can_have_children = no + + disables_combat_leadership = yes + + shown_in_ruler_designer = no + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_incapable_desc + } + desc = trait_incapable_character_desc + } + } + + ai_energy = -100 +} + +gout_ridden = { + diplomacy = -2 + martial = -1 + prowess = -2 + health = -1 + + dread_baseline_add = -5 + category = health + attraction_opinion = -15 + + ruler_designer_cost = -5 + + flag = illness + flag = debilitating_illness + flag = blocks_getting_non_epidemic_disease + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_gout_ridden_desc + } + desc = trait_gout_ridden_character_desc + } + } + + ai_energy = -15 +} + +consumption = { # Tuberculosis + diplomacy = -2 + stewardship = -1 + intrigue = -2 + prowess = -2 + health = -2.5 + child_health = -1 + elderly_health = -2 + category = health + + dread_baseline_add = -10 + dread_loss_mult = 1 + + attraction_opinion = -10 + + ruler_designer_cost = 0 + + flag = illness + flag = debilitating_illness + flag = blocks_getting_non_epidemic_disease + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_consumption_desc + } + desc = trait_consumption_character_desc + } + } + + ai_energy = -50 +} + +cancer = { + health = -3 + elderly_health = -1 + fertility = -0.20 + category = health + + dread_baseline_add = -15 + dread_loss_mult = 1 + + ruler_designer_cost = -10 + + flag = illness + flag = debilitating_illness + flag = blocks_getting_non_epidemic_disease + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_cancer_desc + } + desc = trait_cancer_character_desc + } + } + + ai_energy = -25 +} + +typhus = { + diplomacy = -1 + stewardship = -2 + intrigue = -1 + learning = -2 + prowess = -4 + health = -4.5 + elderly_health = -1 + fertility = -0.2 + + category = health + + dread_baseline_add = -15 + dread_loss_mult = 1 + + attraction_opinion = -10 + + ruler_designer_cost = 0 + + flag = illness + flag = debilitating_illness + flag = blocks_getting_non_epidemic_disease + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_typhus_desc + } + desc = trait_typhus_character_desc + } + } + + ai_energy = -50 +} + +bubonic_plague = { + diplomacy = -2 + martial = -3 + stewardship = -2 + intrigue = -3 + learning = -2 + prowess = -10 + health = -7 + elderly_health = -2 + fertility = -0.50 + + category = health + + dread_baseline_add = -30 + dread_loss_mult = 1 + + attraction_opinion = -30 + + shown_in_ruler_designer = no + + flag = illness + flag = debilitating_illness + flag = blocks_getting_non_epidemic_disease + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_bubonic_plague_desc + } + desc = trait_bubonic_plague_character_desc + } + } + + ai_energy = -75 +} + +smallpox = { + diplomacy = -2 + stewardship = -1 + learning = -2 + prowess = -10 + health = -4.5 + elderly_health = -1.5 + fertility = -0.25 + + category = health + + dread_baseline_add = -15 + dread_loss_mult = 1 + + attraction_opinion = -10 + + ruler_designer_cost = 0 + + flag = illness + flag = debilitating_illness + flag = blocks_getting_non_epidemic_disease + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_smallpox_desc + } + desc = trait_smallpox_character_desc + } + } + + ai_energy = -75 +} + +measles = { + diplomacy = -2 + stewardship = -1 + intrigue = -1 + learning = -2 + prowess = -4 + health = -3 + child_health = -3 + + category = health + + dread_baseline_add = -5 + + attraction_opinion = -10 + + ruler_designer_cost = 0 + + flag = illness + flag = debilitating_illness + flag = blocks_getting_non_epidemic_disease + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_measles_desc + } + desc = trait_measles_character_desc + } + } + + ai_energy = -75 +} + +dysentery = { # Bloody Flux + diplomacy = -2 + martial = -1 + intrigue = -2 + prowess = -8 + health = -3.5 + elderly_health = -2 + + category = health + + dread_baseline_add = -50 + + attraction_opinion = -5 + + ruler_designer_cost = 0 + + flag = illness + flag = debilitating_illness + flag = blocks_getting_non_epidemic_disease + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_dysentery_desc + } + desc = trait_dysentery_character_desc + } + } + + ai_energy = -75 +} + +ergotism = { # Holy Fire + diplomacy = -6 + stewardship = -1 + intrigue = -2 + learning = -2 + health = -3.5 + + category = health + + dread_baseline_add = -25 + + attraction_opinion = -10 + + ruler_designer_cost = 0 + + flag = illness + flag = debilitating_illness + flag = blocks_getting_non_epidemic_disease + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_ergotism_desc + } + desc = trait_ergotism_character_desc + } + } + + ai_energy = -75 +} + +# Young children only +sickly = { + maximum_age = 6 + child_health = -2.5 + + category = health + + dread_baseline_add = -20 + dread_loss_mult = 1 + + shown_in_ruler_designer = no + + flag = illness + flag = debilitating_illness + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_sickly_desc + } + desc = trait_sickly_character_desc + } + } + + ai_energy = -30 +} + +# The character is visibly scarred from an old wound +scarred = { + name = { + first_valid = { + triggered_desc = { + trigger = { + trigger_if = { + limit = { + NOT = { exists = this } + } + } + trigger_else_if = { + limit = { has_trait = scarred } + has_trait_xp = { + trait = scarred + track = scarred + value < 50 + } + } + trigger_else = { + NOT = { has_trait = scarred } + } + } + desc = trait_scarred + } + triggered_desc = { + trigger = { + has_trait = scarred + OR = { + has_trait_xp = { + trait = scarred + track = scarred + value = 100 + } + } + } + desc = trait_scarred_3 + } + desc = trait_scarred_2 + } + } + + monthly_prestige = 0.1 + + attraction_opinion = 5 + + culture_modifier = { + parameter = wounds_and_scars_give_bonuses + monthly_prestige_gain_mult = 0.1 + same_culture_opinion = 5 + } + + category = health + + ruler_designer_cost = 10 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_scarred_desc + } + desc = trait_scarred_character_desc + } + } + + tracks = { + scarred = { + trait_second_level = { # Gnarled + monthly_prestige = 0.05 + attraction_opinion = -5 + child_opinion = -10 + health = -0.1 + } + trait_third_level = { # Marred + attraction_opinion = -20 + child_opinion = -20 + health = -0.1 + dread_gain_mult = 0.1 + } + } + } +} + +#This is the normal eunuch trait (for eunuchs castrated as teens/adults) +eunuch_1 = { + category = health + group_equivalence = eunuch + attraction_opinion = -10 + glory_hound_opinion = -10 + + flag = can_not_marry + inheritance_blocker = all + claim_inheritance_blocker = all + can_have_children = no + opposites = { + beardless_eunuch #You can't have both + } + + shown_in_ruler_designer = no + + culture_modifier = { + parameter = eunuch_trait_bonuses + + # Eunuchs were historically considered to be both innocuous as well as duplicitous. This semi-paradoxical belief made rulers favor them for various court positions, especially ones close to their family. + liege_opinion = 10 + ai_honor = -10 + + # Simultaneously, eunuchs were seen as unfit to hold leadership positions, as they are impotent. + vassal_opinion = -10 + ai_greed = -10 + + # Eunuchs in this society have various privileges (due to their assumed innocuousness) that make them better at both spying as well as administrative tasks and scholastic pursuits. + stewardship = 2 + intrigue = 2 + learning = 2 + monthly_influence_mult = 0.5 + } + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_eunuch_1_desc + } + desc = trait_eunuch_1_character_desc + } + } + + ai_energy = -15 + + level = 1 +} + +beardless_eunuch = { + category = health + group_equivalence = eunuch + attraction_opinion = -10 + glory_hound_opinion = -20 + + opposites = { + eunuch_1 #You can't have both + } + + flag = can_not_marry + inheritance_blocker = all + claim_inheritance_blocker = all + can_have_children = no + + shown_in_ruler_designer = no + + prowess = -4 + + culture_modifier = { + parameter = eunuch_trait_bonuses + + # Eunuchs were historically considered to be both innocuous as well as duplicitous. This semi-paradoxical belief made rulers favor them for various court positions, especially ones close to their family. + liege_opinion = 20 + ai_honor = -15 + + # Simultaneously, eunuchs were seen as unfit to hold leadership positions, as they are impotent. + vassal_opinion = -10 + ai_greed = -15 + + # Eunuchs in this society have various privileges (due to their assumed innocuousness) that make them better at both spying as well as administrative tasks and scholastic pursuits. + stewardship = 2 + intrigue = 2 + learning = 2 + monthly_influence_mult = 0.5 + monthly_influence = 0.1 + } + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_beardless_eunuch_desc + } + desc = trait_beardless_eunuch_character_desc + } + } + + ai_energy = -25 + ai_boldness = -10 + + level = 2 +} + +blind = { + category = health + martial = -6 + stewardship = -2 + intrigue = -2 + prowess = -10 + health = -0.25 + + dread_baseline_add = -10 + + attraction_opinion = -10 + + ruler_designer_cost = -10 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_blind_desc + } + desc = trait_blind_character_desc + } + } +} + +############### Physical ############## +# Beauty (-1) - Homely +beauty_bad_1 = { + opposites = { + beauty_good + beauty_bad_2 + beauty_bad_3 + } + + diplomacy = -1 + fertility = -0.1 + + birth = 0.5 + random_creation = 0.5 + + attraction_opinion = -10 + + group = beauty_bad + level = 1 + + genetic = yes + physical = yes + portrait_extremity_shift = 0.1 + ugliness_portrait_extremity_shift = 0.4 + + ruler_designer_cost = -10 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_beauty_bad_1_desc + } + desc = trait_beauty_bad_1_character_desc + } + } +} + +# Beauty (-2) - Ugly +beauty_bad_2 = { + opposites = { + beauty_good + beauty_bad_3 + beauty_bad_1 + } + + diplomacy = -2 + fertility = -0.2 + + birth = 0.25 + random_creation = 0.25 + + attraction_opinion = -20 + + group = beauty_bad + level = 2 + + genetic = yes + physical = yes + portrait_extremity_shift = 0.18 + ugliness_portrait_extremity_shift = 0.6 + + ruler_designer_cost = -20 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_beauty_bad_2_desc + } + desc = trait_beauty_bad_2_character_desc + } + } +} + +# Beauty (-3) - Hideous +beauty_bad_3 = { + opposites = { + beauty_good + beauty_bad_2 + beauty_bad_1 + } + + birth = 0.15 + random_creation = 0.15 + + diplomacy = -3 + fertility = -0.3 + + attraction_opinion = -30 + + group = beauty_bad + level = 3 + + genetic = yes + physical = yes + portrait_extremity_shift = 0.27 + ugliness_portrait_extremity_shift = 0.8 + + ruler_designer_cost = -30 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_beauty_bad_3_desc + } + desc = trait_beauty_bad_3_character_desc + } + } +} + +# Beauty (+1) - Comely +beauty_good_1 = { + opposites = { + beauty_bad + beauty_good_2 + beauty_good_3 + } + + diplomacy = 1 + fertility = 0.1 + + birth = 0.5 + random_creation = 0.5 + + attraction_opinion = 10 + + group = beauty_good + level = 1 + + genetic = yes + physical = yes + good = yes + + genetic_constraint_all = beauty_1 + genetic_constraint_men = male_beauty_1 + genetic_constraint_women = female_beauty_1 + + ruler_designer_cost = 40 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_beauty_good_1_desc + } + desc = trait_beauty_good_1_character_desc + } + } +} + +# Beauty (+2) - Pretty (f) / Handsome (m) +beauty_good_2 = { + opposites = { + beauty_bad + beauty_good_1 + beauty_good_3 + } + + diplomacy = 2 + fertility = 0.2 + + birth = 0.25 + random_creation = 0.25 + + attraction_opinion = 20 + + # pretty if female + # handsome if male + + group = beauty_good + level = 2 + + ruler_designer_cost = 80 + + name = { + first_valid = { + triggered_desc = { + trigger = { NOT = { exists = this } } + desc = trait_beauty_good_male_2 + } + triggered_desc = { + trigger = { is_female = yes } + desc = trait_beauty_good_female_2 + } + desc = trait_beauty_good_male_2 + } + } + + desc = { + first_valid = { + triggered_desc = { + trigger = { NOT = { exists = this } } + desc = trait_beauty_good_2_desc + } + desc = trait_beauty_good_2_character_desc + } + } + + genetic = yes + physical = yes + good = yes + + genetic_constraint_all = beauty_2 + genetic_constraint_men = male_beauty_2 + genetic_constraint_women = female_beauty_2 +} + +# Beauty (+3) - Beautiful +beauty_good_3 = { + opposites = { + beauty_bad + beauty_good_2 + beauty_good_1 + } + + birth = 0.15 + random_creation = 0.15 + + diplomacy = 3 + fertility = 0.3 + + attraction_opinion = 30 + + group = beauty_good + level = 3 + + genetic = yes + physical = yes + good = yes + + genetic_constraint_all = beauty_3 + genetic_constraint_men = male_beauty_3 + genetic_constraint_women = female_beauty_3 + + ruler_designer_cost = 120 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_beauty_good_3_desc + } + desc = trait_beauty_good_3_character_desc + } + } +} + +# Intellect (-1) - Slow +intellect_bad_1 = { + opposites = { + shrewd + intellect_good + intellect_bad_2 #To prevent multiple tiers of the same congenital trait + intellect_bad_3 + } + + diplomacy = -2 + martial = -2 + stewardship = -2 + intrigue = -2 + learning = -2 + + monthly_lifestyle_xp_gain_mult = -0.1 + + birth = 0.5 + random_creation = 0.5 + + group = intellect_bad + level = 1 + + ai_rationality = high_negative_ai_value + + genetic = yes + physical = yes + + ruler_designer_cost = -15 + + compatibility = { + intellect_bad_1 = @pos_compat_medium + intellect_bad_2 = @pos_compat_medium + intellect_bad_3 = @pos_compat_medium + dull = @pos_compat_medium + intellect_good_1 = @neg_compat_medium + intellect_good_2 = @neg_compat_medium + intellect_good_3 = @neg_compat_medium + shrewd = @neg_compat_medium + } + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_intellect_bad_1_desc + } + desc = trait_intellect_bad_1_character_desc + } + } +} + +# Intellect (-2) - Stupid +intellect_bad_2 = { + opposites = { + shrewd + intellect_good + intellect_bad_3 #To prevent multiple tiers of the same congenital trait + intellect_bad_1 + } + + diplomacy = -4 + martial = -4 + stewardship = -4 + intrigue = -4 + learning = -4 + + monthly_lifestyle_xp_gain_mult = -0.2 + + birth = 0.25 + random_creation = 0.25 + + group = intellect_bad + level = 2 + + ai_rationality = very_high_negative_ai_value + + genetic = yes + physical = yes + + ruler_designer_cost = -30 + + compatibility = { + intellect_bad_1 = @pos_compat_medium + intellect_bad_2 = @pos_compat_medium + intellect_bad_3 = @pos_compat_medium + dull = @pos_compat_medium + intellect_good_1 = @neg_compat_medium + intellect_good_2 = @neg_compat_medium + intellect_good_3 = @neg_compat_medium + shrewd = @neg_compat_medium + } + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_intellect_bad_2_desc + } + desc = trait_intellect_bad_2_character_desc + } + } +} +# Intellect (-3) - Imbecile +intellect_bad_3 = { + opposites = { + shrewd + intellect_good + intellect_bad_2 #To prevent multiple tiers of the same congenital trait + intellect_bad_1 + } + + birth = 0.05 + random_creation = 0.05 + + diplomacy = -8 + martial = -8 + stewardship = -8 + intrigue = -8 + learning = -8 + + monthly_lifestyle_xp_gain_mult = -0.3 + + group = intellect_bad + level = 3 + + ai_rationality = dominant_negative_ai_value + + genetic = yes + physical = yes + + ruler_designer_cost = -45 + + compatibility = { + intellect_bad_1 = @pos_compat_medium + intellect_bad_2 = @pos_compat_medium + intellect_bad_3 = @pos_compat_medium + dull = @pos_compat_medium + intellect_good_1 = @neg_compat_medium + intellect_good_2 = @neg_compat_medium + intellect_good_3 = @neg_compat_medium + shrewd = @neg_compat_medium + } + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_intellect_bad_3_desc + } + desc = trait_intellect_bad_3_character_desc + } + } +} + +# Intellect (+1) - Quick +intellect_good_1 = { + opposites = { + dull + intellect_bad + intellect_good_2 #To prevent multiple tiers of the same congenital trait + intellect_good_3 + } + + diplomacy = 1 + martial = 1 + stewardship = 1 + intrigue = 1 + learning = 1 + + monthly_lifestyle_xp_gain_mult = 0.1 + + birth = 0.5 + random_creation = 0.5 + + group = intellect_good + level = 1 + + ai_rationality = high_positive_ai_value + + genetic = yes + good = yes + physical = yes + + ruler_designer_cost = 80 + + compatibility = { + intellect_good_1 = @pos_compat_medium + intellect_good_2 = @pos_compat_medium + intellect_good_3 = @pos_compat_medium + shrewd = @pos_compat_medium + intellect_bad_1 = @neg_compat_medium + intellect_bad_2 = @neg_compat_medium + intellect_bad_3 = @neg_compat_medium + dull = @neg_compat_medium + } + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_intellect_good_1_desc + } + desc = trait_intellect_good_1_character_desc + } + } +} + +# Intellect (+2) - Intelligent +intellect_good_2 = { + opposites = { + dull + intellect_bad + intellect_good_3 #To prevent multiple tiers of the same congenital trait + intellect_good_1 + } + + diplomacy = 3 + martial = 3 + stewardship = 3 + intrigue = 3 + learning = 3 + + monthly_lifestyle_xp_gain_mult = 0.2 + + birth = 0.25 + random_creation = 0.25 + + group = intellect_good + level = 2 + + ai_rationality = very_high_positive_ai_value + + genetic = yes + good = yes + physical = yes + + ruler_designer_cost = 160 + + compatibility = { + intellect_good_1 = @pos_compat_medium + intellect_good_2 = @pos_compat_medium + intellect_good_3 = @pos_compat_medium + shrewd = @pos_compat_medium + intellect_bad_1 = @neg_compat_medium + intellect_bad_2 = @neg_compat_medium + intellect_bad_3 = @neg_compat_medium + dull = @neg_compat_medium + } + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_intellect_good_2_desc + } + desc = trait_intellect_good_2_character_desc + } + } +} + +# Intellect (+3) - Genius +intellect_good_3 = { + opposites = { + dull + intellect_bad + intellect_good_2 #To prevent multiple tiers of the same congenital trait + intellect_good_1 + } + + birth = 0.05 + random_creation = 0.05 + + diplomacy = 5 + martial = 5 + stewardship = 5 + intrigue = 5 + learning = 5 + + monthly_lifestyle_xp_gain_mult = 0.3 + + group = intellect_good + level = 3 + + ai_rationality = dominant_positive_ai_value + + genetic = yes + good = yes + physical = yes + + ruler_designer_cost = 240 + + compatibility = { + intellect_good_1 = @pos_compat_medium + intellect_good_2 = @pos_compat_medium + intellect_good_3 = @pos_compat_medium + shrewd = @pos_compat_medium + intellect_bad_1 = @neg_compat_medium + intellect_bad_2 = @neg_compat_medium + intellect_bad_3 = @neg_compat_medium + dull = @neg_compat_medium + } + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_intellect_good_3_desc + } + desc = trait_intellect_good_3_character_desc + } + } +} + +# Physique (-1) - Delicate +physique_bad_1 = { + opposites = { + strong + physique_good + physique_bad_2 + physique_bad_3 + } + + prowess = -2 + health = -0.25 + + birth = 0.5 + random_creation = 0.5 + + group = physique_bad + level = 1 + + ruler_designer_cost = -15 + + culture_modifier = { + parameter = weak_traits_looked_down_upon + same_culture_opinion = -10 + } + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_physique_bad_1_desc + } + desc = trait_physique_bad_1_character_desc + } + } + + ai_energy = -10 + + genetic = yes + physical = yes +} + +# Physique (-2) - Frail +physique_bad_2 = { + opposites = { + strong + physique_good + physique_bad_3 + physique_bad_1 + } + + prowess = -4 + health = -0.5 + + birth = 0.25 + random_creation = 0.25 + + attraction_opinion = -5 + + group = physique_bad + level = 2 + + culture_modifier = { + parameter = weak_traits_looked_down_upon + same_culture_opinion = -15 + } + + ruler_designer_cost = -30 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_physique_bad_2_desc + } + desc = trait_physique_bad_2_character_desc + } + } + + ai_energy = -20 + + genetic = yes + physical = yes +} + +# Physique (-3) - Feeble +physique_bad_3 = { + opposites = { + strong + physique_good + physique_bad_2 + physique_bad_1 + } + + birth = 0.15 + random_creation = 0.15 + + prowess = -6 + health = -1 + + attraction_opinion = -10 + + culture_modifier = { + parameter = weak_traits_looked_down_upon + same_culture_opinion = -20 + } + + group = physique_bad + level = 3 + + ruler_designer_cost = -45 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_physique_bad_3_desc + } + desc = trait_physique_bad_3_character_desc + } + } + + ai_energy = -30 + + genetic = yes + physical = yes +} + +# Physique (+1) - Hale +physique_good_1 = { + opposites = { + weak + spindly + physique_bad + physique_good_2 + physique_good_3 + } + + prowess = 2 + health = 0.25 + + birth = 0.5 + random_creation = 0.5 + + attraction_opinion = 5 + + culture_modifier = { + parameter = strong_traits_more_valued + monthly_prestige = 0.25 + } + + group = physique_good + level = 1 + + ruler_designer_cost = 60 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_physique_good_1_desc + } + desc = trait_physique_good_1_character_desc + } + } + + ai_energy = 10 + + genetic = yes + physical = yes + good = yes +} + +# Physique (+2) - Robust +physique_good_2 = { + opposites = { + weak + spindly + physique_bad + physique_good_1 + physique_good_3 + } + + physical = yes + + prowess = 4 + health = 0.5 + + birth = 0.25 + random_creation = 0.25 + + attraction_opinion = 10 + + culture_modifier = { + parameter = strong_traits_more_valued + monthly_prestige = 0.5 + } + + group = physique_good + level = 2 + + ruler_designer_cost = 120 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_physique_good_2_desc + } + desc = trait_physique_good_2_character_desc + } + } + + ai_energy = 20 + + genetic = yes + good = yes +} + +# Physique (+3) - Amazonian (f) / Herculean (m) +physique_good_3 = { + opposites = { + weak + spindly + physique_bad + physique_good_1 + physique_good_2 + } + + birth = 0.15 + random_creation = 0.15 + + prowess = 8 + health = 1 + + attraction_opinion = 15 + + culture_modifier = { + parameter = strong_traits_more_valued + monthly_prestige = 1 + } + + # amazonian if female + # herculean if male + + ruler_designer_cost = 180 + + name = { + first_valid = { + triggered_desc = { + trigger = { NOT = { exists = this } } + desc = trait_physique_good_male_3 + } + triggered_desc = { + trigger = { is_female = yes } + desc = trait_physique_good_female_3 + } + desc = trait_physique_good_male_3 + } + } + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_physique_good_3_desc + } + desc = trait_physique_good_3_character_desc + } + } + + group = physique_good + level = 3 + + ai_energy = 20 + + genetic = yes + physical = yes + good = yes +} + +################# PHYSICAL (GOOD) ################ +pure_blooded = { + physical = yes + fertility = 0.1 + health = 0.25 + inbreeding_chance = -0.5 + + inherit_chance = 15 + both_parent_has_trait_inherit_chance = 75 + good = yes + + ruler_designer_cost = 50 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_pure_blooded_desc + } + desc = trait_pure_blooded_character_desc + } + } +} + +fecund = { + opposites = { + infertile + } + + fertility = 0.5 + life_expectancy = 5 + years_of_fertility = 5 + + #inherit_chance = 15 + physical = yes + genetic = yes + good = yes + + ruler_designer_cost = 50 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_fecund_desc + } + desc = trait_fecund_character_desc + } + } +} + +strong = { + opposites = { + weak + physique_bad + } + prowess = 4 + health = 0.5 + physical = yes + + culture_modifier = { + parameter = strong_traits_more_valued + monthly_prestige = 1 + } + + ruler_designer_cost = 50 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_strong_desc + } + desc = trait_strong_character_desc + } + } + + ai_energy = 20 +} + +shrewd = { + opposites = { + intellect_bad + dull + } + diplomacy = 2 + martial = 2 + stewardship = 2 + intrigue = 2 + learning = 2 + + physical = yes + + ruler_designer_cost = 50 + + culture_modifier = { + parameter = pragmatic_traits_county_opinion_modifiers + county_opinion_add = 10 + } + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_shrewd_desc + } + desc = trait_shrewd_character_desc + } + } + + ai_rationality = high_positive_ai_value + + compatibility = { + intellect_good_1 = @pos_compat_medium + intellect_good_2 = @pos_compat_medium + intellect_good_3 = @pos_compat_medium + shrewd = @pos_compat_medium + intellect_bad_1 = @neg_compat_medium + intellect_bad_2 = @neg_compat_medium + intellect_bad_3 = @neg_compat_medium + dull = @neg_compat_medium + } +} + +################# PHYSICAL (BAD) ################ +clubfooted = { + prowess = -2 + + #inherit_chance = 15 + genetic = yes + enables_inbred = yes + birth = 0.5 + random_creation = 0.5 + + attraction_opinion = -10 + same_opinion = 10 + physical = yes + + ruler_designer_cost = 0 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_clubfooted_desc + } + desc = trait_clubfooted_character_desc + } + } +} + +hunchbacked = { + prowess = -2 + + #inherit_chance = 15 + genetic = yes + physical = yes + enables_inbred = yes + birth = 0.5 + random_creation = 0.5 + + attraction_opinion = -30 + same_opinion = 10 + vassal_opinion = -10 + + ruler_designer_cost = -10 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_hunchbacked_desc + } + desc = trait_hunchbacked_character_desc + } + } +} + +lisping = { + diplomacy = -2 + + #inherit_chance = 15 + genetic = yes + physical = yes + + birth = 0.5 + random_creation = 0.5 + + same_opinion = 10 + + ruler_designer_cost = -5 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_lisping_desc + } + desc = trait_lisping_character_desc + } + } + + ai_sociability = low_negative_ai_value +} + +stuttering = { + diplomacy = -2 + + #inherit_chance = 15 + genetic = yes + physical = yes + + birth = 0.5 + random_creation = 0.5 + + same_opinion = 10 + + ruler_designer_cost = -5 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_stuttering_desc + } + desc = trait_stuttering_character_desc + } + } + + ai_sociability = low_negative_ai_value +} + +dwarf = { + prowess = -4 + opposites = { + giant + } + + #inherit_chance = 25 + #both_parent_has_trait_inherit_chance = 100 + genetic = yes + physical = yes + + enables_inbred = yes + birth = 0.5 + random_creation = 0.5 + + attraction_opinion = -20 + same_opinion = 20 + + ruler_designer_cost = 0 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_dwarf_desc + } + desc = trait_dwarf_character_desc + } + } +} + +giant = { + opposites = { + dwarf + } + + prowess = 6 + health = -0.25 + + #inherit_chance = 25 + #both_parent_has_trait_inherit_chance = 50 + genetic = yes + physical = yes + + enables_inbred = yes + birth = 0.5 + random_creation = 0.5 + + attraction_opinion = -5 + tribal_government_opinion = 10 + glory_hound_opinion = 10 + same_opinion = 20 + + culture_modifier = { + parameter = strong_traits_more_valued + monthly_prestige = 0.5 + } + + ruler_designer_cost = 20 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_giant_desc + } + desc = trait_giant_character_desc + } + } +} + +inbred = { + physical = yes + diplomacy = -5 + martial = -5 + stewardship = -5 + intrigue = -5 + learning = -5 + prowess = -2 + fertility = -0.5 + health = -1.5 + + inherit_chance = 15 + + attraction_opinion = -30 + vassal_opinion = -10 + + ruler_designer_cost = -30 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_inbred_desc + } + desc = trait_inbred_character_desc + } + } + + flag = initial_legitimacy_nerf + + ai_rationality = -50 + ai_energy = -75 +} + +weak = { + opposites = { + strong + physique_good + } + prowess = -2 + health = -0.5 + + physical = yes + + attraction_opinion = -10 + vassal_opinion = -10 + + culture_modifier = { + parameter = weak_traits_looked_down_upon + same_culture_opinion = -15 + } + + ruler_designer_cost = -10 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_weak_desc + } + desc = trait_weak_character_desc + } + } + + ai_energy = -20 +} + +dull = { + opposites = { + intellect_good + shrewd + } + diplomacy = -2 + martial = -2 + stewardship = -2 + intrigue = -2 + learning = -2 + + physical = yes + + ruler_designer_cost = -20 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_dull_desc + } + desc = trait_dull_character_desc + } + } + + ai_rationality = high_negative_ai_value + + compatibility = { + intellect_bad_1 = @pos_compat_medium + intellect_bad_2 = @pos_compat_medium + intellect_bad_3 = @pos_compat_medium + dull = @pos_compat_medium + intellect_good_1 = @neg_compat_medium + intellect_good_2 = @neg_compat_medium + intellect_good_3 = @neg_compat_medium + shrewd = @neg_compat_medium + } +} + +# Non-genetic impotency +impotent = { + + fertility = -0.5 + ai_energy = -10 + physical = yes + + shown_in_ruler_designer = no + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_impotent_desc + } + desc = trait_impotent_character_desc + } + } +} + +spindly = { #Marfan's Syndrome + opposites = { + physique_good + } + prowess = -1 + health = -0.25 + + #inherit_chance = 100 # dominant + genetic = yes + physical = yes + enables_inbred = yes + + birth = 0.5 + random_creation = 0.5 + + attraction_opinion = -10 + + culture_modifier = { + parameter = weak_traits_looked_down_upon + same_culture_opinion = -15 + } + + ruler_designer_cost = -10 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_spindly_desc + } + desc = trait_spindly_character_desc + } + } + + ai_energy = -20 +} + +scaly = { + fertility = -0.2 + + #inherit_chance = 100 # dominant + genetic = yes + physical = yes + enables_inbred = yes + + birth = 0.5 + random_creation = 0.5 + + attraction_opinion = -30 + vassal_opinion = -10 + same_opinion = 10 + + dread_baseline_add = 10 + + ruler_designer_cost = 0 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_scaly_desc + } + desc = trait_scaly_character_desc + } + } +} + +albino = { + + #inherit_chance = 100 # recessive + genetic = yes + physical = yes + + birth = 0.5 + random_creation = 0.5 + + general_opinion = -10 + same_opinion = 10 + + dread_baseline_add = 15 + + ruler_designer_cost = 0 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_albino_desc + } + desc = trait_albino_character_desc + } + } +} + +wheezing = { #asthma + physical = yes + health = -0.15 + + #inherit_chance = 100 # recessive + genetic = yes + enables_inbred = yes + birth = 0.5 + random_creation = 0.5 + + vassal_opinion = -10 + + ruler_designer_cost = -10 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_wheezing_desc + } + desc = trait_wheezing_character_desc + } + } + + ai_energy = -15 +} + +bleeder = { #Haemophilia + physical = yes + health = -1.5 + + #inherit_chance = 50 # 100 for male, 50 for female, recessive + genetic = yes + enables_inbred = yes + birth = 0.5 + random_creation = 0.5 + + vassal_opinion = -10 + + ruler_designer_cost = -20 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_bleeder_desc + } + desc = trait_bleeder_character_desc + } + } + + ai_energy = -15 +} + +# Barren (f) / Sterile (m) +infertile = { + physical = yes + fertility = -0.5 + opposites = { + fecund + } + + ruler_designer_cost = 0 + + name = { + first_valid = { + triggered_desc = { + trigger = { NOT = { exists = this } } + desc = trait_infertile_male + } + triggered_desc = { + trigger = { is_female = yes } + desc = trait_infertile_female + } + desc = trait_infertile_male + } + } + + desc = { + first_valid = { + triggered_desc = { + trigger = { NOT = { exists = this } } + desc = trait_infertile_desc + } + triggered_desc = { + trigger = { is_female = yes } + desc = trait_infertile_female_desc + } + desc = trait_infertile_male_desc + } + } + + #inherit_chance = 50 + genetic = yes + enables_inbred = yes + birth = 0.5 + random_creation = 0.5 +} + +############# RELIGION ############ +celibate = { + category = fame + opposites = { + seducer + } + can_have_children = no + monthly_piety = 1 + + clergy_opinion = 10 + opposite_opinion = -10 + + shown_in_ruler_designer = no + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_celibate_desc + } + desc = trait_celibate_character_desc + } + } + + ai_zeal = 30 + ai_sociability = medium_negative_ai_value + + compatibility = { + chaste = @pos_compat_low + celibate = @pos_compat_low + temperate = @pos_compat_low + calm = @pos_compat_low + lustful = @neg_compat_low + deviant = @neg_compat_low + lovers_pox = @neg_compat_low + early_great_pox = @neg_compat_low + great_pox = @neg_compat_low + seducer = @neg_compat_low + } +} + +pilgrim = { + category = fame + + character_travel_speed = 5 + character_travel_safety = 5 + + culture_modifier = { + parameter = prowess_from_religious_traits + prowess = 2 + } + + faith_modifier = { + parameter = basic_pilgrimage_rewards + monthly_piety_gain_mult = 0.05 + zealot_opinion = 5 + } + + faith_modifier = { + parameter = mandatory_pilgrimage + monthly_piety_gain_mult = 0.35 #offset the -0.25 and add 0.1 + same_faith_opinion = 5 + zealot_opinion = 5 + clergy_opinion = 5 + } + + track = { + 50 = { + culture_modifier = { + parameter = prowess_from_religious_traits + prowess = 3 + } + + faith_modifier = { + parameter = basic_pilgrimage_rewards + monthly_piety_gain_mult = 0.1 + zealot_opinion = 10 + learning = 1 + } + + faith_modifier = { + parameter = mandatory_pilgrimage + monthly_piety_gain_mult = 0.4 #offset the -0.25 and add 0.15 + zealot_opinion = 20 + clergy_opinion = 10 + } + + ai_zeal = 10 + } + 100 = { + culture_modifier = { + parameter = prowess_from_religious_traits + prowess = 3 + } + + faith_modifier = { + parameter = basic_pilgrimage_rewards + monthly_piety_gain_mult = 0.1 + zealot_opinion = 20 + different_culture_opinion = 5 + learning = 2 + } + + faith_modifier = { + parameter = mandatory_pilgrimage + monthly_piety_gain_mult = 0.4 #offset the -0.25 and add 0.15 + zealot_opinion = 40 + clergy_opinion = 10 + } + + ai_zeal = 15 + } + } + + ruler_designer_cost = 30 + + # Loc + name = { + first_valid = { + #Prolific Pilgrim + triggered_desc = { + trigger = { + exists = this + has_trait_xp = { + trait = pilgrim + value >= 100 + } + } + desc = trait_pilgrim_3 + } + #Experienced Pilgrim + triggered_desc = { + trigger = { + exists = this + has_trait_xp = { + trait = pilgrim + value >= 50 + } + } + desc = trait_pilgrim_2 + } + #Pilgrim + desc = trait_pilgrim + } + } + + # Loc + desc = { + first_valid = { + #The trait can never go higher than the first level if it's not assigned to a character + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_pilgrim_desc + } + triggered_desc = { + trigger = { + has_trait_xp = { + trait = pilgrim + value >= 100 + } + } + desc = trait_pilgrim_3_character_desc + } + triggered_desc = { + trigger = { + has_trait_xp = { + trait = pilgrim + value >= 50 + } + } + desc = trait_pilgrim_2_character_desc + } + desc = trait_pilgrim_character_desc + } + } + + ai_zeal = 5 +} + +hajjaj = { + category = fame + + culture_modifier = { + parameter = prowess_from_religious_traits + prowess = 2 + } + + islam_religion_opinion = 5 + character_travel_speed = 5 + character_travel_safety = 5 + + faith_modifier = { + parameter = mandatory_hajj + monthly_piety_gain_mult = 0.35 #offset the -0.25 and add 0.1 + same_faith_opinion = 5 #offset the -5 + zealot_opinion = 10 + } + + ruler_designer_cost = 30 + + name = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_hajji + } + triggered_desc = { + trigger = { + is_male = yes + } + desc = trait_hajji + } + triggered_desc = { + trigger = { + is_female = yes + } + desc = trait_hajjah + } + } + } + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_hajjaj_neutral_desc + } + desc = trait_hajjaj_desc + } + } + + ai_zeal = 10 +} + +excommunicated = { + category = fame + monthly_piety_gain_mult = -0.5 + zealot_opinion = -50 + + shown_in_ruler_designer = no + + triggered_opinion = { + parameter = excommunication_active + opinion_modifier = tenet_excommunicated_crime + same_faith = yes + } + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_excommunicated_desc + } + desc = trait_excommunicated_character_desc + } + } +} + +# Monk for christian male, Nun for christian female. Devoted for others. +devoted = { + category = fame + monthly_piety = 0.3 + + same_faith_opinion = 5 + + culture_modifier = { + parameter = prowess_from_religious_traits + prowess = 3 + } + + culture_modifier = { + parameter = devoted_trait_bonuses + learning = 3 + } + + flag = can_not_marry + inheritance_blocker = all + + shown_in_ruler_designer = no + + ai_sociability = very_low_negative_ai_value + + name = { + first_valid = { + triggered_desc = { + trigger = { NOT = { exists = this } } + desc = trait_devoted_male + } + triggered_desc = { + trigger = { + is_adult = no + } + desc = trait_devoted_child + } + triggered_desc = { + trigger = { + exists = faith.religion + faith.religion = faith:theravada.religion + is_female = no + } + desc = trait_devoted_buddhism_male + } + triggered_desc = { + trigger = { + exists = faith.religion + faith.religion = faith:theravada.religion + is_female = yes + } + desc = trait_devoted_buddhism_female + } + triggered_desc = { + trigger = { + exists = faith.religion + faith.religion = faith:vaishnavism.religion + is_female = no + } + desc = trait_devoted_hinduism_male + } + triggered_desc = { + trigger = { + exists = faith.religion + faith.religion = faith:vaishnavism.religion + is_female = yes + } + desc = trait_devoted_hinduism_female + } + triggered_desc = { + trigger = { + exists = faith.religion + faith.religion = faith:digambara.religion + is_female = no + } + desc = trait_devoted_jainism_male + } + triggered_desc = { + trigger = { + exists = faith.religion + faith.religion = faith:digambara.religion + is_female = yes + } + desc = trait_devoted_jainism_female + } + triggered_desc = { + trigger = { is_female = yes } + desc = trait_devoted_female + } + desc = trait_devoted_male + } + } + + desc = { + first_valid = { + triggered_desc = { + trigger = { NOT = { exists = this } } + desc = trait_devoted_desc + } + triggered_desc = { + trigger = { is_adult = no } + desc = trait_devoted_child_desc + } + desc = trait_devoted_character_desc + } + } +} + +# Muslim version of the Blood of the Prophet-trait. Muslim agnatically descended from Muhammed. Female version is localized 'Sayyida' +sayyid = { + category = fame + + islam_religion_opinion = 5 + flag = initial_legitimacy_boost + + ruler_designer_cost = 25 + + name = { + first_valid = { + triggered_desc = { + trigger = { NOT = { exists = this } } + desc = trait_sayyid + } + triggered_desc = { + trigger = { is_female = yes } + desc = trait_sayyida + } + desc = trait_sayyid + } + } + + desc = { + first_valid = { + triggered_desc = { + trigger = { NOT = { exists = this } } + desc = trait_sayyid_desc + } + desc = trait_sayyid_character_desc + } + } + + inherit_chance = 100 + parent_inheritance_sex = male + inherit_from_real_father = no +} + +# Zoroastrian version of the Savior-trait. +saoshyant = { + category = fame + opposites = { + saoshyant_descendant + } + diplomacy = 1 + learning = 2 + prowess = 2 + + zoroastrianism_religion_opinion = 10 + + shown_in_ruler_designer = no + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_saoshyant_desc + } + desc = trait_saoshyant_character_desc + } + } + + ai_zeal = 100 +} + +# Zoroastrian version of the Divine Blood-trait. +saoshyant_descendant = { + category = fame + opposites = { + saoshyant + } + learning = 1 + + zoroastrianism_religion_opinion = 5 + + shown_in_ruler_designer = no + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_saoshyant_descendant_desc + } + desc = trait_saoshyant_descendant_character_desc + } + } +} + +# Generic version of Saoshyant, Mahdi, Messiah, etc. +savior = { + category = fame + opposites = { + divine_blood + } + + same_faith_opinion = 10 + + shown_in_ruler_designer = no + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_savior_desc + } + desc = trait_savior_character_desc + } + } + + ai_zeal = 100 +} + +# Generic version of Descendant of Saoshyant, Mahdi, Messiah, etc. This is automatically granted to all members of a dynasty with "Divine Blood". +divine_blood = { + category = fame + opposites = { + savior + } + + same_faith_opinion = 5 + + shown_in_ruler_designer = no + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_divine_blood_desc + } + desc = trait_divine_blood_character_desc + } + } +} + +# Generic version of Sayyid. Dynasties can now be marked with "Prophetic Blood", which will automatically grant this trait to all members. +blood_of_prophet = { + category = fame + same_faith_opinion = 5 + + shown_in_ruler_designer = no + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_blood_of_prophet_desc + } + desc = trait_blood_of_prophet_character_desc + } + } + + # Sayyid has different effects +} + +# Generic version of Crusader and Mujahid +faith_warrior = { + category = fame + martial = 2 + prowess = 3 + + culture_modifier = { + parameter = faith_warrior_traits_more_valued + monthly_prestige = 1 + } + + clergy_opinion = 15 + same_faith_opinion = 5 + + ruler_designer_cost = 50 + + icon = { + first_valid = { + triggered_desc = { + trigger = { NOT = { exists = this } } + desc = faith_warrior.dds + } + triggered_desc = { + trigger = { faith = { religion_tag = christianity_religion } } + desc = crusader.dds + } + triggered_desc = { + trigger = { faith = { religion_tag = islam_religion } } + desc = mujahid.dds + } + desc = faith_warrior.dds + } + } + + name = { + first_valid = { + triggered_desc = { + trigger = { NOT = { exists = this } } + desc = trait_faith_warrior + } + triggered_desc = { + trigger = { faith = { religion_tag = christianity_religion } } + desc = trait_crusader + } + triggered_desc = { + trigger = { faith = { religion_tag = islam_religion } } + desc = trait_mujahid + } + triggered_desc = { + trigger = { faith = { religion_tag = bon_religion } } + desc = trait_crusader_bon + } + triggered_desc = { + trigger = { faith = { religion_tag = buddhism_religion } } + desc = trait_crusader_buddhism + } + triggered_desc = { + trigger = { faith = { religion_tag = dualism_religion } } + desc = trait_crusader_dualism + } + triggered_desc = { + trigger = { faith = { religion_tag = germanic_religion } } + desc = trait_crusader_germanic + } + triggered_desc = { + trigger = { faith = { religion_tag = hellenism_religion } } + desc = trait_crusader_hellenism + } + triggered_desc = { + trigger = { faith = { religion_tag = hinduism_religion } } + desc = trait_crusader_hinduism + } + triggered_desc = { + trigger = { faith = { religion_tag = jainism_religion } } + desc = trait_crusader_jainism + } + triggered_desc = { + trigger = { faith = { religion_tag = judaism_religion } } + desc = trait_crusader_judaism + } + triggered_desc = { + trigger = { faith = { religion_tag = magyar_religion } } + desc = trait_crusader_magyar + } + triggered_desc = { + trigger = { faith = { religion_tag = baltic_religion } } + desc = trait_crusader_baltic + } + triggered_desc = { + trigger = { faith = { religion_tag = slavic_religion } } + desc = trait_crusader_slavic + } + triggered_desc = { + trigger = { faith = { religion_tag = finno_ugric_religion } } + desc = trait_crusader_finno_ugric + } + triggered_desc = { + trigger = { faith = { religion_tag = siberian_religion } } + desc = trait_crusader_siberian + } + triggered_desc = { + trigger = { faith = { religion_tag = tengrism_religion } } + desc = trait_crusader_tengrism + } + triggered_desc = { + trigger = { faith = { religion_tag = west_african_religion } } + desc = trait_crusader_west_african + } + triggered_desc = { + trigger = { faith = { religion_tag = west_african_bori_religion } } + desc = trait_crusader_west_african_bori + } + triggered_desc = { + trigger = { faith = { religion_tag = west_african_roog_religion } } + desc = trait_crusader_west_african_roog + } + triggered_desc = { + trigger = { faith = { religion_tag = zoroastrianism_religion } } + desc = trait_crusader_zoroastrianism + } + triggered_desc = { + trigger = { faith = { religion_tag = zunism_religion } } + desc = trait_crusader_zunism + } + + desc = trait_faith_warrior + } + } + + desc = { + first_valid = { + triggered_desc = { + trigger = { NOT = { exists = this } } + desc = trait_faith_warrior_desc + } + triggered_desc = { + trigger = { faith = { religion_tag = islam_religion } } + desc = trait_mujahid_character_desc + } + triggered_desc = { + trigger = { faith = { religion_tag = christianity_religion } } + desc = trait_crusader_character_desc + } + desc = trait_faith_warrior_character_desc + } + } + + ai_zeal = 10 +} + +saint = { + category = fame + monthly_piety = 2 + legitimacy_gain_mult = 0.25 + + shown_in_ruler_designer = no + + name = { + first_valid = { + triggered_desc = { + trigger = { NOT = { exists = this } } + desc = trait_venerated_ancestor + } + triggered_desc = { + trigger = { faith = { religion_tag = christianity_religion } } + desc = trait_saint + } + desc = trait_venerated_ancestor + } + } + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_saint_desc + } + desc = trait_saint_character_desc + } + } + + ai_zeal = 50 +} + +historical_character = { + category = fame + diplomacy = 2 + learning = 2 + enemy_hostile_scheme_success_chance_growth_add = -1 + health = 0.25 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + exists = this + has_variable = karunakara + } + desc = historical_character.karunakara + } + + triggered_desc = { + trigger = { + exists = this + has_variable = sekkilhar + } + desc = historical_character.sekkilhar + } + + triggered_desc = { + trigger = { + exists = this + has_variable = omar_khayyam + } + desc = historical_character.omar_khayyam + } + + triggered_desc = { + trigger = { + exists = this + has_variable = bhaskaracharya + } + desc = historical_character.bhaskaracharya + } + + triggered_desc = { + trigger = { + exists = this + has_variable = joseph_rabban + } + desc = historical_character.joseph_rabban + } + + triggered_desc = { + trigger = { + exists = this + has_variable = atisha + } + desc = historical_character.atisha + } + + triggered_desc = { + trigger = { + exists = this + has_variable = hemachandra + } + desc = historical_character.hemachandra + } + + triggered_desc = { + trigger = { + exists = this + has_variable = kshemendra + } + desc = historical_character.kshemendra + } + + triggered_desc = { + trigger = { + exists = this + has_variable = akka_mahadevi + } + desc = historical_character.akka_mahadevi + } + + triggered_desc = { + trigger = { + exists = this + has_variable = namdev + } + desc = historical_character.namdev + } + + triggered_desc = { + trigger = { + exists = this + has_variable = madhvacharya + } + desc = historical_character.madhvacharya + } + + triggered_desc = { + trigger = { + exists = this + has_variable = vidyapati + } + desc = historical_character.vidyapati + } + + + triggered_desc = { + trigger = { + exists = this + has_variable = abhinavagupta + } + desc = historical_character.abhinavagupta + } + + triggered_desc = { + trigger = { + exists = this + has_variable = basava + } + desc = historical_character.basava + } + + triggered_desc = { + trigger = { + exists = this + has_variable = hildegard + } + desc = historical_character.hildegard + } + + triggered_desc = { + trigger = { + exists = this + has_variable = thomas_aquinas + } + desc = historical_character.thomas_aquinas + } + + triggered_desc = { + trigger = { + exists = this + has_variable = dante_alighieri + } + desc = historical_character.dante_alighieri + } + + triggered_desc = { + trigger = { + exists = this + has_variable = thomas_becket + } + desc = historical_character.thomas_becket + } + + triggered_desc = { + trigger = { + exists = this + has_variable = maimonides + } + desc = historical_character.maimonides + } + + triggered_desc = { + trigger = { + exists = this + has_variable = chretien_de_troyes + } + desc = historical_character.chretien_de_troyes + } + + triggered_desc = { + trigger = { + exists = this + has_variable = egil_skallagrimrsson + } + desc = historical_character.egil_skallagrimrsson + } + + triggered_desc = { + trigger = { + exists = this + has_variable = gunnlaug_ormstunga + } + desc = historical_character.gunnlaug_ormstunga + } + + triggered_desc = { + trigger = { + exists = this + has_variable = torbjorg_the_seeress + } + desc = historical_character.torbjorg_the_seeress + } + + triggered_desc = { + trigger = { + exists = this + has_variable = erik_rode + } + desc = historical_character.erik_rode + } + + triggered_desc = { + trigger = { + exists = this + has_variable = alhazen + } + desc = historical_character.alhazen + } + + triggered_desc = { + trigger = { + exists = this + has_variable = ibn_battuta + } + desc = historical_character.ibn_battuta + } + + triggered_desc = { + trigger = { + exists = this + has_variable = william_of_ockham + } + desc = historical_character.william_of_ockham + } + + triggered_desc = { + trigger = { + exists = this + has_variable = geoffrey_chaucer + } + desc = historical_character.geoffrey_chaucer + } + + triggered_desc = { + trigger = { + exists = this + has_variable = aaron_of_lincoln + } + desc = historical_character.aaron_of_lincoln + } + + triggered_desc = { + trigger = { + exists = this + has_variable = john_wycliffe + } + desc = historical_character.john_wycliffe + } + + triggered_desc = { + trigger = { + exists = this + has_variable = roger_bacon + } + desc = historical_character.roger_bacon + } + + triggered_desc = { + trigger = { + exists = this + has_variable = heloise_dargenteuil + } + desc = historical_character.heloise_dargenteuil + } + + triggered_desc = { + trigger = { + exists = this + has_variable = peter_abelard + } + desc = historical_character.peter_abelard + } + + triggered_desc = { + trigger = { + exists = this + has_variable = petrarch + } + desc = historical_character.petrarch + } + + triggered_desc = { + trigger = { + exists = this + has_variable = christine_pizan + } + desc = historical_character.christine_pizan + } + + triggered_desc = { + trigger = { + exists = this + has_variable = giotto_di_bondone + } + desc = historical_character.giotto_di_bondone + } + + triggered_desc = { + trigger = { + exists = this + has_variable = fibonacci + } + desc = historical_character.fibonacci + } + + triggered_desc = { + trigger = { + exists = this + has_variable = giovanni_boccaccio + } + desc = historical_character.giovanni_boccaccio + } + + triggered_desc = { + trigger = { + exists = this + has_variable = snorri_sturluson + } + desc = historical_character.snorri_sturluson + } + + triggered_desc = { + trigger = { + exists = this + has_variable = hrotsvitha + } + desc = historical_character.hrotsvitha + } + + triggered_desc = { + trigger = { + exists = this + has_variable = ramanuja + } + desc = historical_character.ramanuja + } + + triggered_desc = { + trigger = { + exists = this + has_variable = arnaldus_de_villa_nova + } + desc = historical_character.arnaldus_de_villa_nova + } + + triggered_desc = { + trigger = { + exists = this + has_variable = ibn_khaldun + } + desc = historical_character.ibn_khaldun + } + + triggered_desc = { + trigger = { + exists = this + has_variable = rumi + } + desc = historical_character.rumi + } + + triggered_desc = { + trigger = { + exists = this + has_variable = avicenna + } + desc = historical_character.avicenna + } + + triggered_desc = { + trigger = { + exists = this + has_variable = averroes + } + desc = historical_character.averroes + } + + triggered_desc = { + trigger = { + exists = this + has_variable = al_biruni + } + desc = historical_character.al_biruni + } + + triggered_desc = { + trigger = { + exists = this + has_variable = rashi + } + desc = historical_character.rashi + } + + triggered_desc = { + trigger = { + exists = this + has_variable = yehuda_halevi + } + desc = historical_character.yehuda_halevi + } + + triggered_desc = { + trigger = { + exists = this + has_variable = shaprut + } + desc = historical_character.shaprut + } + + triggered_desc = { + trigger = { + exists = this + has_variable = gersonides + } + desc = historical_character.gersonides + } + + triggered_desc = { + trigger = { + exists = this + has_variable = ezra + } + desc = historical_character.ezra + } + + triggered_desc = { + trigger = { + exists = this + has_variable = gabriol + } + desc = historical_character.gabriol + } + + triggered_desc = { + trigger = { + exists = this + has_variable = nachmanides + } + desc = historical_character.nachmanides + } + + triggered_desc = { + trigger = { + exists = this + has_variable = crescas + } + desc = historical_character.crescas + } + + triggered_desc = { + trigger = { + exists = this + has_variable = saadia + } + desc = historical_character.saadia + } + + triggered_desc = { + trigger = { + exists = this + has_variable = awkal + } + desc = historical_character.awkal + } + + triggered_desc = { + trigger = { + exists = this + has_variable = benjamin_of_tudela + } + desc = historical_character.benjamin_of_tudela + } + + triggered_desc = { + trigger = { + exists = this + has_variable = marco_polo + } + desc = historical_character.marco_polo + } + + triggered_desc = { + trigger = { + exists = this + has_variable = bridget_of_sweden + } + desc = historical_character.bridget_of_sweden + } + + triggered_desc = { + trigger = { + exists = this + has_variable = meister_eckhart + } + desc = historical_character.meister_eckhart + } + + triggered_desc = { + trigger = { + exists = this + has_variable = jangar + } + desc = historical_character.jangar + } + + triggered_desc = { + trigger = { + exists = this + has_variable = zawisza + } + desc = historical_character.zawisza + } + + triggered_desc = { + trigger = { + exists = this + has_variable = theophanes_the_greek + } + desc = historical_character.theophanes_the_greek + } + + triggered_desc = { + trigger = { + exists = this + has_variable = nicetas_choniates + } + desc = historical_character.nicetas_choniates + } + + triggered_desc = { + trigger = { + exists = this + has_variable = michael_psellos + } + desc = historical_character.michael_psellos + } + + triggered_desc = { + trigger = { + exists = this + has_variable = john_tzetzes + } + desc = historical_character.john_tzetzes + } + + triggered_desc = { + trigger = { + exists = this + has_variable = theophylact_of_ohrid + } + desc = historical_character.theophylact_of_ohrid + } + + triggered_desc = { + trigger = { + exists = this + has_variable = eustathius_of_thessalonica + } + desc = historical_character.eustathius_of_thessalonica + } + + triggered_desc = { + trigger = { + exists = this + has_variable = nicephorus_blemmydes + } + desc = historical_character.nicephorus_blemmydes + } + + triggered_desc = { + trigger = { + exists = this + has_variable = georgius_pachymeres + } + desc = historical_character.georgius_pachymeres + } + + triggered_desc = { + trigger = { + exists = this + has_variable = manuel_moschopoulos + } + desc = historical_character.manuel_moschopoulos + } + + triggered_desc = { + trigger = { + exists = this + has_variable = theodore_metochites + } + desc = historical_character.theodore_metochites + } + + triggered_desc = { + trigger = { + exists = this + has_variable = michael_choniates + } + desc = historical_character.michael_choniates + } + + triggered_desc = { + trigger = { + exists = this + has_variable = joseph_tarchaneiotes + } + desc = historical_character.joseph_tarchaneiotes + } + + triggered_desc = { + trigger = { + exists = this + has_variable = gemistus_pletho + } + desc = historical_character.gemistus_pletho + } + + triggered_desc = { + trigger = { + exists = this + has_variable = arethas_of_caesarea + } + desc = historical_character.arethas_of_caesarea + } + + triggered_desc = { + trigger = { + exists = this + has_variable = basil_lekapenos + } + desc = historical_character.basil_lekapenos + } + + triggered_desc = { + trigger = { + exists = this + has_variable = john_the_orphanotrophos + } + desc = historical_character.john_the_orphanotrophos + } + + triggered_desc = { + trigger = { + exists = this + has_variable = samonas + } + desc = historical_character.samonas + } + + triggered_desc = { + trigger = { + exists = this + has_variable = peter_the_eunuch + } + desc = historical_character.peter_the_eunuch + } + + triggered_desc = { + trigger = { + exists = this + has_variable = constantine_the_paphlagonian + } + desc = historical_character.constantine_the_paphlagonian + } + + triggered_desc = { + trigger = { + exists = this + has_variable = peter_the_stratopedarches + } + desc = historical_character.peter_the_stratopedarches + } + + triggered_desc = { + trigger = { + exists = this + has_variable = basilios_bessarion + } + desc = historical_character.basilios_bessarion + } + + triggered_desc = { + trigger = { + exists = this + has_variable = demetrios_kydones + } + desc = historical_character.demetrios_kydones + } + + triggered_desc = { + trigger = { + exists = this + has_variable = manuel_holobolos + } + desc = historical_character.manuel_holobolos + } + + triggered_desc = { + trigger = { + exists = this + has_variable = john_axuch + } + desc = historical_character.john_axuch + } + + triggered_desc = { + trigger = { + exists = this + has_variable = mkhitar_gosh + } + desc = historical_character.mkhitar_gosh + } + + triggered_desc = { + trigger = { + exists = this + has_variable = shota_rustaveli + } + desc = historical_character.shota_rustaveli + } + + triggered_desc = { + trigger = { + exists = this + has_variable = grigor_tatevatsi + } + desc = historical_character.grigor_tatevatsi + } + + triggered_desc = { + trigger = { + exists = this + has_variable = sargis_pitsak + } + desc = historical_character.sargis_pitsak + } + + triggered_desc = { + trigger = { + exists = this + has_variable = medici + } + desc = historical_character.medici + } + + triggered_desc = { + trigger = { + exists = this + has_variable = borgia + } + desc = historical_character.borgia + } + + triggered_desc = { + trigger = { + exists = this + has_variable = william_wallace + } + desc = historical_character.william_wallace + } + + triggered_desc = { + trigger = { + exists = this + has_variable = la_hire + } + desc = historical_character.la_hire + } + + triggered_desc = { + trigger = { + exists = this + has_variable = bar_sauma + } + desc = historical_character.bar_sauma + } + + triggered_desc = { + trigger = { + exists = this + has_variable = hodja + } + desc = historical_character.hodja + } + + triggered_desc = { + trigger = { + exists = this + has_variable = widukind_of_corvey + } + desc = historical_character.widukind_of_corvey + } + + triggered_desc = { + trigger = { + exists = this + has_variable = roger_de_flor + } + desc = historical_character.roger_de_flor + } + + triggered_desc = { + trigger = { + exists = this + has_variable = regino_of_prum + } + desc = historical_character.regino_of_prum + } + + triggered_desc = { + trigger = { + exists = this + has_variable = geoffrey_of_monmouth + } + desc = historical_character.geoffrey_of_monmouth + } + + triggered_desc = { + trigger = { + exists = this + has_variable = raiktor + } + desc = historical_character.raiktor + } + desc = generic_importance + } + } + + shown_in_ruler_designer = no +} + +legend = { + category = fame + monthly_prestige = 2 + legitimacy_gain_mult = 0.25 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_legend_desc + } + desc = trait_legend_character_desc + } + } + + shown_in_ruler_designer = no + + ai_zeal = 50 +} + +order_member = { + category = fame + flag = can_not_marry + inheritance_blocker = all + + martial = 1 + prowess = 4 + + culture_modifier = { + parameter = faith_warrior_traits_more_valued + monthly_prestige = 1 + } + + same_opinion_if_same_faith = 15 + + shown_in_ruler_designer = no + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_order_member_desc + } + desc = trait_order_member_character_desc + } + } + + ai_zeal = 10 + ai_honor = 5 + ai_greed = -10 +} + +########### FAME ########## +berserker = { + + category = fame + diplomacy = -2 + martial = 2 + prowess = 5 + dread_baseline_add = 15 + + same_opinion = 10 + + ruler_designer_cost = 40 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_berserker_desc + } + desc = trait_berserker_character_desc + } + } + + ai_rationality = medium_negative_ai_value + ai_energy = 20 + ai_boldness = medium_positive_ai_value +} + +shieldmaiden = { + + category = fame + martial = 3 + prowess = 3 + + same_opinion = 10 + + ruler_designer_cost = 40 + + name = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_shieldmaiden_female + } + triggered_desc = { + trigger = { is_male = yes } + desc = trait_shieldmaiden_male + } + desc = trait_shieldmaiden_female + } + } + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_shieldmaiden_desc + } + triggered_desc = { + trigger = { is_male = yes } + desc = trait_shieldmaiden_male_character_desc + } + desc = trait_shieldmaiden_female_character_desc + } + } + + ai_boldness = high_positive_ai_value + ai_energy = high_positive_ai_value +} + +varangian = { + category = fame + diplomacy = 1 + martial = 2 + prowess = 2 + + same_opinion = 10 + + ruler_designer_cost = 40 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_varangian_desc + } + desc = trait_varangian_character_desc + } + } + + ai_energy = 10 + ai_boldness = 10 +} + +poet = { + category = fame + diplomacy_per_prestige_level = 1 + stress_loss_mult = 0.1 + + culture_modifier = { + parameter = poet_trait_gives_bonuses + monthly_prestige_gain_mult = 0.05 + owned_personal_scheme_success_chance_add = 10 + } + + culture_modifier = { + parameter = poet_trait_romance_bonuses + attraction_opinion = 15 + courting_scheme_phase_duration_add = minor_scheme_phase_duration_bonus_value + } + + ruler_designer_cost = 40 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_poet_desc + } + desc = trait_poet_character_desc + } + } + + ai_boldness = low_positive_ai_value + ai_sociability = low_positive_ai_value +} + +bastard = { + opposites = { + legitimized_bastard + child_of_concubine + wild_oat + disputed_heritage + } + diplomacy = -1 + + same_opinion = 5 + + dynasty_opinion = -15 + + legitimacy_gain_mult = -0.1 + + inheritance_blocker = all + claim_inheritance_blocker = all + + category = fame + bastard = illegitimate + + ruler_designer_cost = 0 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_bastard_desc + } + desc = trait_bastard_character_desc + } + } + + ai_honor = -10 + ai_energy = 15 +} + +legitimized_bastard = { + opposites = { + bastard + child_of_concubine + wild_oat + disputed_heritage + } + diplomacy = -1 + legitimacy_gain_mult = -0.05 + bastard = legitimate + + dynasty_opinion = -10 + category = fame + + ruler_designer_cost = 0 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_legitimized_bastard_desc + } + desc = trait_legitimized_bastard_character_desc + } + } + + ai_honor = -5 + ai_energy = 15 +} + +disputed_heritage = { + category = fame + opposites = { + bastard + wild_oat + legitimized_bastard + } + + diplomacy = -1 + legitimacy_loss_mult = 0.1 + + dynasty_house_opinion = -10 + + shown_in_ruler_designer = no + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_disputed_heritage_desc + } + desc = trait_disputed_heritage_character_desc + } + } + + ai_energy = 10 +} + +# Separate male and female versions of this traits due to different desc +child_of_concubine_female = { + category = fame + group = child_of_concubine + level = 1 + opposites = { + bastard + legitimized_bastard + wild_oat + } + diplomacy = -1 + + shown_in_ruler_designer = no + + name = trait_child_of_concubine + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_child_of_concubine_desc + } + desc = trait_child_of_concubine_character_desc + } + } + icon = child_of_concubine.dds + + ai_energy = 15 +} + +child_of_concubine_male = { + category = fame + group = child_of_concubine + level = 2 + opposites = { + bastard + legitimized_bastard + wild_oat + } + diplomacy = -1 + + shown_in_ruler_designer = no + + name = trait_child_of_concubine + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_child_of_male_concubine_desc + } + desc = trait_child_of_male_concubine_character_desc + } + } + icon = child_of_concubine.dds + + ai_energy = 15 +} + +#Children born out of wedlock in religions without bastardy +wild_oat = { + category = fame + opposites = { + bastard + legitimized_bastard + child_of_concubine + } + + diplomacy = -1 + + ruler_designer_cost = 0 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_wild_oat_desc + } + desc = trait_wild_oat_character_desc + } + } +} + +bastard_founder = { + + opposites = { + bastard + legitimized_bastard + child_of_concubine + wild_oat + } + + inheritance_blocker = all + claim_inheritance_blocker = all + category = fame + diplomacy = -1 + + shown_in_ruler_designer = no + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_bastard_founder_desc + } + desc = trait_bastard_founder_character_desc + } + } + + ai_energy = 15 +} + +twin = { + category = fame + twin_opinion = 15 + + shown_in_ruler_designer = no + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_twin_desc + } + desc = trait_twin_character_desc + } + } +} + +kinslayer_1 = { + + dynasty_opinion = -5 + category = fame + group = kinslayer + level = 1 + + shown_in_ruler_designer = no + + # Criminal for dynasty + triggered_opinion = { + parameter = kinslaying_close_kin_crime + opinion_modifier = kinslayer_crime_dynasty + same_dynasty = yes + } + + # Opinion hit for everyone + triggered_opinion = { + parameter = kinslaying_close_kin_crime + opinion_modifier = kinslayer_intolerant + } + triggered_opinion = { + parameter = kinslaying_extended_family_crime + opinion_modifier = kinslayer_intolerant + } + triggered_opinion = { + parameter = kinslaying_any_dynasty_member_crime + opinion_modifier = kinslayer_intolerant + } + triggered_opinion = { + parameter = kinslaying_shunned + opinion_modifier = kinslayer_intolerant + } + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_kinslayer_1_desc + } + desc = trait_kinslayer_1_character_desc + } + } +} +kinslayer_2 = { + + dynasty_opinion = -5 + close_relative_opinion = -5 + category = fame + group = kinslayer + level = 2 + + shown_in_ruler_designer = no + + # Criminal for extended family + triggered_opinion = { + parameter = kinslaying_close_kin_crime + opinion_modifier = kinslayer_crime_dynasty + same_dynasty = yes + } + triggered_opinion = { + parameter = kinslaying_extended_family_crime + opinion_modifier = kinslayer_crime_dynasty + same_dynasty = yes + } + + # Opinion hit for everyone + triggered_opinion = { + parameter = kinslaying_close_kin_crime + opinion_modifier = kinslayer_intolerant + } + triggered_opinion = { + parameter = kinslaying_extended_family_crime + opinion_modifier = kinslayer_intolerant + } + triggered_opinion = { + parameter = kinslaying_any_dynasty_member_crime + opinion_modifier = kinslayer_intolerant + } + triggered_opinion = { + parameter = kinslaying_shunned + opinion_modifier = kinslayer_intolerant + } + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_kinslayer_2_desc + } + desc = trait_kinslayer_2_character_desc + } + } +} +kinslayer_3 = { + + dynasty_opinion = -5 + close_relative_opinion = -10 + category = fame + group = kinslayer + level = 3 + + shown_in_ruler_designer = no + + # Criminal for close family + triggered_opinion = { + parameter = kinslaying_close_kin_crime + opinion_modifier = kinslayer_crime_dynasty + same_dynasty = yes + } + # Criminal for extended family + triggered_opinion = { + parameter = kinslaying_extended_family_crime + opinion_modifier = kinslayer_crime_dynasty + same_dynasty = yes + } + # Criminal for dynasty + triggered_opinion = { + parameter = kinslaying_any_dynasty_member_crime + opinion_modifier = kinslayer_crime_dynasty + same_dynasty = yes + } + + # Opinion hit for everyone + triggered_opinion = { + parameter = kinslaying_close_kin_crime + opinion_modifier = kinslayer_intolerant + } + triggered_opinion = { + parameter = kinslaying_extended_family_crime + opinion_modifier = kinslayer_intolerant + } + triggered_opinion = { + parameter = kinslaying_any_dynasty_member_crime + opinion_modifier = kinslayer_intolerant + } + triggered_opinion = { + parameter = kinslaying_shunned + opinion_modifier = kinslayer_intolerant + } + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_kinslayer_3_desc + } + desc = trait_kinslayer_3_character_desc + } + } +} + +deviant = { + category = fame + stress_loss_mult = 0.25 + same_opinion = 35 + + ruler_designer_cost = -5 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_deviant_desc + } + desc = trait_deviant_character_desc + } + } + + ai_zeal = -25 + + triggered_opinion = { + parameter = deviancy_illegal + opinion_modifier = deviant_crime + ignore_opinion_value_if_same_trait = yes + } + triggered_opinion = { + parameter = deviancy_shunned + opinion_modifier = deviant_intolerant + ignore_opinion_value_if_same_trait = yes + } + + compatibility = { + deviant = @pos_compat_high + lustful = @pos_compat_medium + chaste = @neg_compat_medium + celibate = @neg_compat_medium + } +} + +cannibal = { + category = fame + prowess = 2 + + same_opinion = 35 + + stress_loss_mult = 0.15 + + dread_baseline_add = 20 + + ruler_designer_cost = 40 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_cannibal_desc + } + desc = trait_cannibal_character_desc + } + } + + ai_rationality = -20 + ai_honor = -10 + ai_compassion = -10 + + triggered_opinion = { + parameter = cannibalism_legal + opinion_modifier = cannibal_crime + check_missing = yes + ignore_opinion_value_if_same_trait = yes + } +} + +sodomite = { + category = fame + + same_opinion = 10 + + shown_in_ruler_designer = no + + triggered_opinion = { + parameter = homosexuality_illegal + opinion_modifier = sodomite_crime + ignore_opinion_value_if_same_trait = yes + } + triggered_opinion = { + parameter = homosexuality_shunned + opinion_modifier = sodomite_intolerant + ignore_opinion_value_if_same_trait = yes + } + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_sodomite_desc + } + desc = trait_sodomite_character_desc + } + } +} + +incestuous = { + category = fame + + same_opinion = 20 + + ruler_designer_cost = 0 + + triggered_opinion = { + parameter = allows_unrestricted_marriage + opinion_modifier = incest_intolerant + check_missing = yes + ignore_opinion_value_if_same_trait = yes + } + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_incestuous_desc + } + desc = trait_incestuous_character_desc + } + } +} + +adulterer = { + + same_opinion = 10 + category = fame + + ruler_designer_cost = -5 + + culture_modifier = { + parameter = adulterer_fornicator_penalties + same_culture_opinion = -15 + } + + triggered_opinion = { + parameter = adultery_male_crime + male_only = yes + opinion_modifier = adulterer_crime + ignore_opinion_value_if_same_trait = yes + } + triggered_opinion = { + parameter = adultery_male_shunned + male_only = yes + opinion_modifier = adulterer_intolerant + ignore_opinion_value_if_same_trait = yes + } + triggered_opinion = { + parameter = adultery_female_crime + female_only = yes + opinion_modifier = adulterer_crime + ignore_opinion_value_if_same_trait = yes + } + triggered_opinion = { + parameter = adultery_female_shunned + female_only = yes + opinion_modifier = adulterer_intolerant + ignore_opinion_value_if_same_trait = yes + } + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_adulterer_desc + } + desc = trait_adulterer_character_desc + } + } +} + +fornicator = { + category = fame + + same_opinion = 10 + + ruler_designer_cost = -5 + + culture_modifier = { + parameter = adulterer_fornicator_penalties + same_culture_opinion = -10 + } + + triggered_opinion = { + parameter = adultery_male_crime + male_only = yes + opinion_modifier = fornicator_crime + ignore_opinion_value_if_same_trait = yes + } + triggered_opinion = { + parameter = adultery_male_shunned + male_only = yes + opinion_modifier = fornicator_intolerant + ignore_opinion_value_if_same_trait = yes + } + triggered_opinion = { + parameter = adultery_female_crime + female_only = yes + opinion_modifier = fornicator_crime + ignore_opinion_value_if_same_trait = yes + } + triggered_opinion = { + parameter = adultery_female_shunned + female_only = yes + opinion_modifier = fornicator_intolerant + ignore_opinion_value_if_same_trait = yes + } + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_fornicator_desc + } + desc = trait_fornicator_character_desc + } + } +} + +murderer = { + + general_opinion = -15 + category = fame + + ruler_designer_cost = -10 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_murderer_desc + } + desc = trait_murderer_character_desc + } + } +} + +born_in_the_purple = { + monthly_prestige = 0.1 + short_reign_duration_mult = -0.25 + monthly_influence = 0.75 + + category = fame + culture_succession_prio = children_can_be_born_in_the_purple + flag = initial_legitimacy_boost + + ruler_designer_cost = 40 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_born_in_the_purple_desc + } + desc = trait_born_in_the_purple_character_desc + } + } +} + +augustus = { + + vassal_opinion = 10 + category = fame + monthly_prestige = 0.5 + monthly_influence = 1.5 + + shown_in_ruler_designer = no + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_augustus_desc + } + desc = trait_augustus_character_desc + } + } +} + +viking = { + category = fame + + martial = 2 + prowess = 3 + monthly_prestige = 0.3 + + same_opinion = 5 + + ruler_designer_cost = 25 + + name = { + first_valid = { + triggered_desc = { + trigger = { + exists = this + culture = { has_innovation = innovation_longboats } + } + desc = trait_viking_has_longships + } + desc = trait_viking_fallback + } + } + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_viking_desc + } + desc = trait_viking_character_desc + } + } + + ai_energy = 10 + ai_boldness = 10 +} + +# Character is seen as a reincarnation of another character. +reincarnation = { + category = fame + + same_faith_opinion = 5 + monthly_piety = 1 + + shown_in_ruler_designer = no + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_reincarnation_desc + } + desc = trait_reincarnation_desc_ancestor + } + } +} + +adventurer = { + category = fame + + opposites = { + adventurer_follower + } + + general_opinion = -10 + martial_per_prestige_level = 1 + prowess_per_prestige_level = 1 + men_at_arms_maintenance = -0.5 + ignore_negative_culture_opinion = yes + ignore_negative_opinion_of_culture = yes + + same_opinion = 20 + opposite_opinion = 20 + + ai_war_chance = 1 + + ruler_designer_cost = 50 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_adventurer_desc + } + desc = trait_adventurer_character_desc + } + } + + ai_energy = low_positive_ai_value + ai_boldness = low_positive_ai_value + ai_honor = low_negative_ai_value +} + +# Just here so you can see who _used_ to be one of your followers. +adventurer_follower = { + category = fame + + opposites = { + adventurer + } + + diplomacy = 1 + same_opinion = 20 + opposite_opinion = 20 + + ruler_designer_cost = 10 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_adventurer_follower_desc + } + triggered_desc = { + trigger = { has_variable = former_camp_leader } + desc = trait_adventurer_follower_remembers_leader_desc + } + desc = trait_adventurer_follower_character_desc + } + } + + ai_energy = low_positive_ai_value + ai_boldness = low_positive_ai_value + ai_honor = low_negative_ai_value +} + +heresiarch = { + category = fame + martial = 2 + learning = 2 + prowess = 2 + + same_faith_opinion = 10 + + monthly_influence = 0.75 + + advantage_against_coreligionists = 5 + + ai_war_chance = 1 + + ruler_designer_cost = 50 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_heresiarch_desc + } + desc = trait_heresiarch_character_desc + } + } + + ai_zeal = 20 +} + +peasant_leader = { + category = fame + + same_opinion = 25 + general_opinion = -10 + county_opinion_add = 10 + army_maintenance_mult = -0.5 + levy_siege = 0.05 + + ruler_designer_cost = 100 + + culture_modifier = { + parameter = grants_to_lowborns_bonuses + domain_limit = -3 + development_growth_factor = 0.2 + } + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_peasant_leader_desc + } + desc = trait_peasant_leader_character_desc + } + } +} + +populist_leader = { + category = fame + icon = "populist_leader.dds" + + county_opinion_add = 15 + courtly_opinion = -30 + parochial_same_faith_opinion = 10 + parochial_same_culture_opinion = 10 + army_maintenance_mult = -0.5 + + ruler_designer_cost = 150 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_populist_leader_desc + } + desc = trait_populist_leader_character_desc + } + } +} + +witch = { + category = fame + + diplomacy = -1 + intrigue = 1 + learning = 1 + + same_opinion = 20 + + ruler_designer_cost = 10 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_witch_desc + } + desc = trait_witch_character_desc + } + } + + ai_compassion = very_low_negative_ai_value + ai_boldness = very_low_positive_ai_value + ai_rationality = very_low_positive_ai_value + + triggered_opinion = { + parameter = witchcraft_illegal + opinion_modifier = witchcraft_crime + ignore_opinion_value_if_same_trait = yes + } + triggered_opinion = { + parameter = witchcraft_shunned + opinion_modifier = witchcraft_intolerant + ignore_opinion_value_if_same_trait = yes + } +} + +disinherited = { + category = fame + + inheritance_blocker = dynasty + + dynasty_opinion = -5 + + shown_in_ruler_designer = no + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_disinherited_desc + } + desc = trait_disinherited_character_desc + } + } +} + +denounced = { + category = fame + + diplomacy = -1 + monthly_prestige = -1 + + shown_in_ruler_designer = no + + triggered_opinion = { + opinion_modifier = denounced_trait_crime + same_faith = yes + same_dynasty = yes + } + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_denounced_desc + } + desc = trait_denounced_character_desc + } + } +} + +decadent = { + category = fame + opposites = { + extolled + } + + dynasty_house_opinion = -15 + same_opinion = 25 + monthly_piety = -1 + stress_gain_mult = 0.25 + owned_hostile_scheme_success_chance_add = 10 + owned_scheme_secrecy_add = 10 + + shown_in_ruler_designer = no + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_decadent_desc + } + desc = trait_decadent_character_desc + } + } +} + +extolled = { + category = fame + opposites = { + decadent + } + + dynasty_house_opinion = 15 + monthly_piety = 1 + enemy_hostile_scheme_success_chance_add = 25 + + shown_in_ruler_designer = no + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_extolled_desc + } + desc = trait_extolled_character_desc + } + } +} + +gallivanter = { + category = fame + # It's deliberate that this doesn't conflict with disinherit: you can turn it off at any point, which you can't with disinherit, so they're allowed to overlap even if they're redundant when both applied. + + inheritance_blocker = all + claim_inheritance_blocker = all + + stress_gain_mult = -0.1 + stress_loss_mult = 0.1 + + courtly_opinion = -30 + parochial_opinion = -20 + dynasty_opinion = -10 + + flag = cannot_inherit_titles + + shown_in_ruler_designer = no + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_gallivanter_desc + } + desc = trait_gallivanter_character_desc + } + } +} + +loyal = { + category = fame + opposites = { + disloyal + } + ruler_designer_cost = 100 + + + liege_opinion = 15 + diplomacy = 1 + intrigue = -1 + + flag = join_factions_less + + same_opinion = 10 + opposite_opinion = -10 + + culture_modifier = { + parameter = loyal_trait_more_valued + same_culture_opinion = 5 + monthly_prestige = 0.1 + } + + culture_modifier = { + parameter = palace_politics_trait_bonuses + monthly_influence = 0.1 + } + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_loyal_desc + } + desc = trait_loyal_character_desc + } + } + + compatibility = { + + } +} + +disloyal = { + category = fame + opposites = { + loyal + } + ruler_designer_cost = -20 + + diplomacy = -1 + intrigue = 1 + liege_opinion = -15 + + flag = join_factions_more + + ai_honor = -20 + + same_opinion = 10 + opposite_opinion = -10 + + culture_modifier = { + parameter = disloyal_trait_less_spurned + same_culture_opinion = 5 + } + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_disloyal_desc + } + desc = trait_disloyal_character_desc + } + } + + compatibility = { + + } +} + +# A note on usage: gallowsbait is for criminals who fall outside of the ruling class or their associates. +## A courtier murders someone? Not gallowsbait. +## A baron murders someone? Not gallowsbait. +## A pool character mugs someone? That's gallowsbait. +## An adventurer steals the silverware at dinner? That's gallowsbait. +### It's for the low class, the under-class, and the outsider, *not* for anyone without a duchy to their name. +gallowsbait = { + category = fame + + ai_honor = -20 + ai_energy = 20 + legitimacy_gain_mult = -0.25 + legitimacy_loss_mult = 0.25 + + same_opinion = 50 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_gallowsbait_desc + } + desc = trait_gallowsbait_character_desc + } + } + + tracks = { + # Brigandry, highway robbery, etc. + bandit = { + 20 = { + barons_and_minor_landholders_opinion = -5 + general_opinion = -2 + courtier_and_guest_opinion = 2 + martial = 1 + } + 40 = { + barons_and_minor_landholders_opinion = -5 + general_opinion = -2 + courtier_and_guest_opinion = 2 + } + 60 = { + barons_and_minor_landholders_opinion = -5 + general_opinion = -2 + courtier_and_guest_opinion = 2 + martial = 1 + } + 80 = { + barons_and_minor_landholders_opinion = -5 + general_opinion = -5 + courtier_and_guest_opinion = 5 + monthly_prestige_gain_per_dread_add = 0.01 + } + 100 = { + barons_and_minor_landholders_opinion = -10 + general_opinion = -10 + courtier_and_guest_opinion = 10 + monthly_prestige_gain_per_dread_add = 0.01 + } + } + # Con artistry, huckstering, etc. + trickster = { + 20 = { + courtly_opinion = -5 + general_opinion = -2 + courtier_and_guest_opinion = 2 + diplomacy = 1 + } + 40 = { + courtly_opinion = -5 + general_opinion = -2 + courtier_and_guest_opinion = 2 + } + 60 = { + courtly_opinion = -5 + general_opinion = -2 + courtier_and_guest_opinion = 2 + diplomacy = 1 + } + 80 = { + courtly_opinion = -5 + general_opinion = -5 + courtier_and_guest_opinion = 5 + } + 100 = { + courtly_opinion = -10 + general_opinion = -10 + courtier_and_guest_opinion = 10 + diplomacy_per_prestige_level = 1 + } + } + # Petty theft, heists, etc. + thief = { + 20 = { + parochial_opinion = -5 + general_opinion = -2 + courtier_and_guest_opinion = 2 + intrigue = 1 + } + 40 = { + parochial_opinion = -5 + general_opinion = -2 + courtier_and_guest_opinion = 2 + } + 60 = { + parochial_opinion = -5 + general_opinion = -2 + courtier_and_guest_opinion = 2 + intrigue = 1 + owned_scheme_secrecy_add = 5 + } + 80 = { + parochial_opinion = -5 + general_opinion = -5 + courtier_and_guest_opinion = 5 + owned_scheme_secrecy_add = 5 + } + 100 = { + parochial_opinion = -10 + general_opinion = -10 + courtier_and_guest_opinion = 10 + owned_scheme_secrecy_add = 10 + } + } + # Rustling, horse theft, straight-up poaching, etc. + poacher = { + 20 = { + glory_hound_opinion = -5 + general_opinion = -2 + courtier_and_guest_opinion = 2 + stewardship = 1 + provisions_gain_mult = 0.05 + } + 40 = { + glory_hound_opinion = -5 + general_opinion = -2 + courtier_and_guest_opinion = 2 + provisions_gain_mult = 0.05 + } + 60 = { + glory_hound_opinion = -5 + general_opinion = -2 + courtier_and_guest_opinion = 2 + stewardship = 1 + provisions_gain_mult = 0.05 + } + 80 = { + glory_hound_opinion = -5 + general_opinion = -5 + courtier_and_guest_opinion = 5 + } + 100 = { + glory_hound_opinion = -10 + general_opinion = -10 + courtier_and_guest_opinion = 10 + } + } + # Kidnapping, murder, etc. + marauder = { + 20 = { + general_opinion = -4 + courtier_and_guest_opinion = 4 + prowess = 1 + } + 40 = { + general_opinion = -4 + courtier_and_guest_opinion = 4 + } + 60 = { + general_opinion = -4 + courtier_and_guest_opinion = 4 + prowess = 1 + } + 80 = { + general_opinion = -10 + courtier_and_guest_opinion = 10 + } + 100 = { + general_opinion = -20 + courtier_and_guest_opinion = 20 + max_murder_schemes_add = 1 + } + } + } +} + +############### COMBAT ############## +logistician = { + + category = commander + + supply_duration = 1 + character_travel_safety = 10 + + culture_modifier = { + parameter = winter_trait_bonuses + winter_movement_speed = 0.25 + } + + culture_modifier = { + parameter = forest_trait_bonuses + forest_attrition_mult = -0.25 + taiga_attrition_mult = -0.25 + } + + culture_modifier = { + parameter = jungle_trait_bonuses + jungle_attrition_mult = -0.25 + } + + culture_modifier = { + parameter = mountain_trait_bonuses + mountains_attrition_mult= -0.35 + desert_mountains_attrition_mult = -0.35 + } + + culture_modifier = { + parameter = dry_trait_bonuses + drylands_attrition_mult = -0.25 + desert_attrition_mult = -0.25 + } + + ruler_designer_cost = 25 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_logistician_desc + } + desc = trait_logistician_character_desc + } + } +} + +military_engineer = { + + category = commander + + siege_phase_time = -0.3 + + ruler_designer_cost = 25 + + culture_modifier = { + parameter = mountain_trait_bonuses + mountains_attrition_mult= -0.25 + desert_mountains_attrition_mult = -0.25 + } + + culture_modifier = { + parameter = hill_trait_bonuses + hills_attrition_mult = -0.25 + } + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_military_engineer_desc + } + desc = trait_military_engineer_character_desc + } + } +} + +aggressive_attacker = { + + category = commander + + #attacker_advantage = 10 + enemy_hard_casualty_modifier = 0.25 + + culture_modifier = { + parameter = winter_trait_bonuses + winter_advantage = 2 + } + + culture_modifier = { + parameter = forest_trait_bonuses + forest_max_combat_roll = 2 + taiga_max_combat_roll = 2 + } + + culture_modifier = { + parameter = jungle_trait_bonuses + jungle_max_combat_roll = 2 + } + + culture_modifier = { + parameter = dry_trait_bonuses + drylands_max_combat_roll = 2 + desert_max_combat_roll = 2 + } + + culture_modifier = { + parameter = hill_trait_bonuses + hills_max_combat_roll = 2 + } + + ruler_designer_cost = 25 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_aggressive_attacker_desc + } + desc = trait_aggressive_attacker_character_desc + } + } +} + +unyielding_defender = { + + category = commander + + #defender_advantage = 10 + hard_casualty_modifier = -0.25 + + culture_modifier = { + parameter = winter_trait_bonuses + winter_advantage = 2 + } + + culture_modifier = { + parameter = forest_trait_bonuses + forest_min_combat_roll = 2 + taiga_min_combat_roll = 2 + } + + culture_modifier = { + parameter = jungle_trait_bonuses + jungle_min_combat_roll = 2 + } + + culture_modifier = { + parameter = mountain_trait_bonuses + mountains_advantage = 2 + desert_mountains_advantage = 2 + } + + culture_modifier = { + parameter = dry_trait_bonuses + drylands_min_combat_roll = 2 + desert_min_combat_roll = 2 + } + + culture_modifier = { + parameter = hill_trait_bonuses + hills_min_combat_roll = 2 + } + + ruler_designer_cost = 25 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_unyielding_defender_desc + } + desc = trait_unyielding_defender_character_desc + } + } +} + +forder = { + + category = commander + + no_water_crossing_penalty = yes + + character_travel_speed = 15 + + ruler_designer_cost = 25 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_forder_desc + } + desc = trait_forder_character_desc + } + } +} + +flexible_leader = { + + category = commander + + enemy_terrain_advantage = -0.5 + + culture_modifier = { + parameter = mountain_trait_bonuses + mountains_min_combat_roll = 2 + desert_mountains_min_combat_roll = 2 + } + + culture_modifier = { + parameter = hill_trait_bonuses + hills_max_combat_roll = 2 + } + + ruler_designer_cost = 25 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_flexible_leader_desc + } + desc = trait_flexible_leader_character_desc + } + } +} + +desert_warrior = { + + category = commander + + drylands_advantage = 5 + desert_advantage = 5 + desert_mountains_advantage = 5 + oasis_advantage = 5 + + desert_cancel_negative_supply = yes + #desert_mountains_cancel_negative_supply = yes + #oasis_cancel_negative_supply = yes + + #desert_attrition_mult = -0.5 + #desert_mountains_attrition_mult = -0.5 + #oasis_attrition_mult = -0.5 + + #desert_min_combat_roll = 1 + #desert_max_combat_roll = 5 + + culture_modifier = { + parameter = desert_warrior_trait_is_better + camel_cavalry_damage_mult = 0.2 + camel_cavalry_screen_mult = 0.1 + } + + ruler_designer_cost = 25 + + trait_exclusive_if_realm_contains = { + drylands + desert + desert_mountains + oasis + } + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_desert_warrior_desc + } + desc = trait_desert_warrior_character_desc + } + } +} + +jungle_stalker = { + + category = commander + + jungle_advantage = 6 + jungle_cancel_negative_supply = yes + jungle_attrition_mult = -0.5 + + culture_modifier = { + parameter = jungle_trait_bonuses + jungle_min_combat_roll = 2 + } + + ruler_designer_cost = 25 + + trait_exclusive_if_realm_contains = { + jungle + } + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_jungle_stalker_desc + } + desc = trait_jungle_stalker_character_desc + } + } +} + +reaver = { + + category = commander + + raid_speed = 1.0 + hostile_county_attrition = -0.75 + + culture_modifier = { + parameter = winter_trait_bonuses + winter_advantage = 5 + } + + culture_modifier = { + parameter = dry_trait_bonuses + drylands_max_combat_roll = 2 + desert_max_combat_roll = 2 + } + + ruler_designer_cost = 25 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_reaver_desc + } + desc = trait_reaver_character_desc + } + } +} + +reckless = { + + category = commander + + opposites = { + cautious_leader + } + + min_combat_roll = -4 + max_combat_roll = 6 + + culture_modifier = { + parameter = forest_trait_bonuses + forest_max_combat_roll = 3 + taiga_max_combat_roll = 3 + } + + culture_modifier = { + parameter = jungle_trait_bonuses + jungle_max_combat_roll = 3 + } + + culture_modifier = { + parameter = dry_trait_bonuses + drylands_max_combat_roll = 2 + desert_max_combat_roll = 2 + } + + ruler_designer_cost = 25 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_reckless_desc + } + desc = trait_reckless_character_desc + } + } +} + +holy_warrior = { + + category = commander + + tolerance_advantage_mod = 10 + + ruler_designer_cost = 25 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_holy_warrior_desc + } + desc = trait_holy_warrior_character_desc + } + } +} + +open_terrain_expert = { + + category = commander + + farmlands_advantage = 4 + plains_advantage = 4 + steppe_advantage = 4 + + culture_modifier = { + parameter = winter_trait_bonuses + winter_movement_speed = 0.2 + } + + culture_modifier = { + parameter = dry_trait_bonuses + drylands_advantage = 2 + desert_advantage = 2 + } + + ruler_designer_cost = 25 + + trait_exclusive_if_realm_contains = { + farmlands + plains + steppe + } + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_open_terrain_expert_desc + } + desc = trait_open_terrain_expert_character_desc + } + } +} + +rough_terrain_expert = { + + category = commander + + hills_advantage = 4 + mountains_advantage = 4 + wetlands_advantage = 4 + + culture_modifier = { + parameter = winter_trait_bonuses + winter_advantage = 4 + } + + culture_modifier = { + parameter = forest_trait_bonuses + forest_advantage = 2 + taiga_advantage = 2 + } + + culture_modifier = { + parameter = jungle_trait_bonuses + jungle_advantage = 2 + } + + culture_modifier = { + parameter = mountain_trait_bonuses + mountains_max_combat_roll = 2 + desert_mountains_max_combat_roll = 2 + desert_mountains_advantage = 4 + } + + culture_modifier = { + parameter = hill_trait_bonuses + hills_min_combat_roll = 2 + } + + ruler_designer_cost = 25 + + trait_exclusive_if_realm_contains = { + hills + mountains + wetlands + } + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_rough_terrain_expert_desc + } + desc = trait_rough_terrain_expert_character_desc + } + } +} + +forest_fighter = { + + category = commander + + forest_advantage = 5 + taiga_advantage = 5 + + ruler_designer_cost = 25 + + trait_exclusive_if_realm_contains = { + forest + taiga + } + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_forest_fighter_desc + } + desc = trait_forest_fighter_character_desc + } + } +} + +cautious_leader = { + + category = commander + + opposites = { + reckless + } + + min_combat_roll = 4 + max_combat_roll = -2 + + culture_modifier = { + parameter = forest_trait_bonuses + forest_min_combat_roll = 2 + taiga_min_combat_roll = 2 + } + + culture_modifier = { + parameter = jungle_trait_bonuses + jungle_min_combat_roll = 2 + } + + ruler_designer_cost = 25 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_cautious_leader_desc + } + desc = trait_cautious_leader_character_desc + } + } +} + +organizer = { + + category = commander + + movement_speed = 0.25 + retreat_losses = -0.2 + + culture_modifier = { + parameter = winter_trait_bonuses + winter_movement_speed = 0.1 + } + + culture_modifier = { + parameter = mountain_trait_bonuses + mountains_attrition_mult = -0.15 + desert_mountains_attrition_mult = -0.15 + } + + culture_modifier = { + parameter = dry_trait_bonuses + drylands_advantage = 2 + desert_advantage = 2 + } + + ruler_designer_cost = 25 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_organizer_desc + } + desc = trait_organizer_character_desc + } + } +} + +winter_soldier = { + + category = winter_commander + + winter_movement_speed = 0.25 + + ruler_designer_cost = 25 + + winter_advantage = 6 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_winter_soldier_desc + } + desc = trait_winter_soldier_character_desc + } + } +} + +#Based on cultural Traditions + +crusader_king = { + category = fame + + martial = 3 + prowess = 2 + + same_opinion_if_same_faith = 10 + same_faith_opinion = 15 + ignore_negative_culture_opinion = yes + monthly_county_control_growth_add = 0.5 + + tolerance_advantage_mod = 5 + hard_casualty_modifier = -0.15 + retreat_losses = -0.2 + + county_opinion_add = 35 + + ruler_designer_cost = 120 + + desc = { + first_valid = { + triggered_desc = { + trigger = { NOT = { exists = this } } + desc = trait_crusader_king_fallback_desc + } + triggered_desc = { + trigger = { is_female = yes } + desc = trait_crusader_king_female_desc + } + desc = trait_crusader_king_male_desc + } + } + + name = { + first_valid = { + triggered_desc = { + trigger = { NOT = { exists = this } } + desc = trait_crusader_king_fallback_dead + } + triggered_desc = { + trigger = { + faith = { religion_tag = christianity_religion } + is_female = yes + } + desc = trait_crusader_king_female + } + triggered_desc = { + trigger = { faith = { religion_tag = christianity_religion } } + desc = trait_crusader_king + } + triggered_desc = { + trigger = { faith = { religion_tag = islam_religion } } + desc = trait_crusader_king_islam + } + triggered_desc = { + trigger = { + faith = { religion_tag = bon_religion } + is_female = yes + } + desc = trait_crusader_king_bon_female + } + triggered_desc = { + trigger = { faith = { religion_tag = bon_religion } } + desc = trait_crusader_king_bon_male + } + triggered_desc = { + trigger = { faith = { religion_tag = buddhism_religion } } + desc = trait_crusader_king_buddhism + } + triggered_desc = { + trigger = { faith = { religion_tag = dualism_religion } } + desc = trait_crusader_king_dualism + } + triggered_desc = { + trigger = { faith = { religion_tag = germanic_religion } } + desc = trait_crusader_king_germanic + } + triggered_desc = { + trigger = { + faith = { religion_tag = hellenism_religion } + is_female = yes + } + desc = trait_crusader_king_hellenism_female + } + triggered_desc = { + trigger = { faith = { religion_tag = hellenism_religion } } + desc = trait_crusader_king_hellenism_male + } + triggered_desc = { + trigger = { faith = { religion_tag = hinduism_religion } } + desc = trait_crusader_king_hinduism + } + triggered_desc = { + trigger = { faith = { religion_tag = jainism_religion } } + desc = trait_crusader_king_jainism + } + triggered_desc = { + trigger = { faith = { religion_tag = judaism_religion } } + desc = trait_crusader_king_judaism + } + triggered_desc = { + trigger = { faith = { religion_tag = magyar_religion } } + desc = trait_crusader_king_magyar + } + triggered_desc = { + trigger = { faith = { religion_tag = baltic_religion } } + desc = trait_crusader_king_baltic + } + triggered_desc = { + trigger = { faith = { religion_tag = slavic_religion } } + desc = trait_crusader_king_slavic + } + triggered_desc = { + trigger = { + faith = { religion_tag = finno_ugric_religion } + is_female = yes + } + desc = trait_crusader_king_finno_ugric_female + } + triggered_desc = { + trigger = { faith = { religion_tag = finno_ugric_religion } } + desc = trait_crusader_king_finno_ugric_male + } + triggered_desc = { + trigger = { faith = { religion_tag = siberian_religion } } + desc = trait_crusader_king_siberian + } + triggered_desc = { + trigger = { + faith = { religion_tag = tengrism_religion } + is_female = yes + } + desc = trait_crusader_king_tengrism_female + } + triggered_desc = { + trigger = { faith = { religion_tag = tengrism_religion } } + desc = trait_crusader_king_tengrism_male + } + triggered_desc = { + trigger = { faith = { religion_tag = west_african_religion } } + desc = trait_crusader_king_west_african + } + triggered_desc = { + trigger = { faith = { religion_tag = west_african_bori_religion } } + desc = trait_crusader_king_west_african_bori + } + triggered_desc = { + trigger = { faith = { religion_tag = west_african_roog_religion } } + desc = trait_crusader_king_west_african_roog + } + triggered_desc = { + trigger = { faith = { religion_tag = zoroastrianism_religion } } + desc = trait_crusader_king_zoroastrianism + } + triggered_desc = { + trigger = { + faith = { religion_tag = zunism_religion } + is_female = yes + } + desc = trait_crusader_king_zunism_female + } + triggered_desc = { + trigger = { faith = { religion_tag = zunism_religion } } + desc = trait_crusader_king_zunism_male + } + + triggered_desc = { + trigger = { is_female = yes } + desc = trait_crusader_king_fallback_female + } + desc = trait_crusader_king_fallback_male + } + } + + ai_zeal = 25 +} + +chakravarti = { + category = fame + + diplomacy = 2 + learning = 2 + martial = 1 + + jainism_religion_opinion = 20 + hinduism_religion_opinion = 20 + buddhism_religion_opinion = 20 + + shown_in_ruler_designer = no + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_chakravarti_desc + } + desc = trait_chakravarti_character_desc + } + } + + ai_honor = 40 + ai_zeal = 50 + ai_energy = 20 + ai_boldness = 20 +} + +greatest_of_khans = { + category = fame + + diplomacy = 2 + martial = 2 + stewardship = 1 + prowess = 2 + + same_culture_opinion = 25 + dread_baseline_add = 50 + dread_decay_mult = -0.5 + enemy_hostile_scheme_phase_duration_add = monumental_scheme_phase_duration_malus_value + enemy_hostile_scheme_success_chance_add = -100 + vassal_limit = 75 + minority_opinion = 40 + army_maintenance_mult = -0.5 + archer_cavalry_siege_value_add = 0.5 + light_cavalry_siege_value_add = 0.5 + monthly_legitimacy_add = 10 + + archer_cavalry_toughness_mult = 1 + light_cavalry_toughness_mult = 1 + heavy_cavalry_toughness_mult = 1 + + archer_cavalry_damage_mult = 1 + light_cavalry_damage_mult = 1 + heavy_cavalry_damage_mult = 1 + + shown_in_ruler_designer = no + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_greatest_of_khans_desc + } + desc = trait_greatest_of_khans_character_desc + } + } + + ai_honor = 20 + ai_energy = 40 + ai_boldness = 20 +} + +conqueror = { + category = fame + flag = conqueror_bonuses_modifier + + ai_war_chance = -100 + ai_war_cooldown = -100 + ai_amenity_spending = -0.25 + ai_amenity_target_baseline = -0.4 + title_creation_cost_mult = -0.75 + monthly_legitimacy_add = 5 + men_at_arms_maintenance = -0.75 + monthly_income = 5 + enemy_hostile_scheme_phase_duration_add = 25 + enemy_hostile_scheme_success_chance_max_add = -40 + enemy_hostile_scheme_success_chance_growth_add = -3 + + shown_in_ruler_designer = no + + #ai_greed = 1000 + #ai_boldness = 1000 + #ai_honor = -1000 +} + +paragon = { + category = fame + + zealot_opinion = 20 + + shown_in_ruler_designer = no + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_paragon_desc + } + desc = trait_paragon_character_desc + } + } + + ai_zeal = 20 +} + +consecrated_blood = { + category = fame + + zealot_opinion = 10 + + shown_in_ruler_designer = no + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_consecrated_blood_desc + } + desc = trait_consecrated_blood_character_desc + } + } + + ai_zeal = 10 +} + +education_martial_prowess_1 = { + #category = education + minimum_age = 16 + prowess = 1 + + culture_modifier = { + parameter = prowess_traits_more_valued + same_culture_opinion = 1 + monthly_prestige = 0.1 + } + + group = education_martial_prowess + level = 1 + + shown_in_ruler_designer = no + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_education_martial_prowess_1_desc + } + desc = trait_education_martial_prowess_1_character_desc + } + } +} + +education_martial_prowess_2 = { + #category = education + minimum_age = 16 + prowess = 2 + + culture_modifier = { + parameter = prowess_traits_more_valued + same_culture_opinion = 2 + monthly_prestige = 0.2 + } + + group = education_martial_prowess + level = 2 + + shown_in_ruler_designer = no + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_education_martial_prowess_2_desc + } + desc = trait_education_martial_prowess_2_character_desc + } + } +} + +education_martial_prowess_3 = { + #category = education + minimum_age = 16 + prowess = 3 + + culture_modifier = { + parameter = prowess_traits_more_valued + same_culture_opinion = 3 + monthly_prestige = 0.3 + } + + group = education_martial_prowess + level = 3 + + shown_in_ruler_designer = no + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_education_martial_prowess_3_desc + } + desc = trait_education_martial_prowess_3_character_desc + } + } +} + +education_martial_prowess_4 = { + #category = education + minimum_age = 16 + prowess = 4 + + culture_modifier = { + parameter = prowess_traits_more_valued + same_culture_opinion = 4 + monthly_prestige = 0.4 + } + + group = education_martial_prowess + level = 4 + + shown_in_ruler_designer = no + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_education_martial_prowess_4_desc + } + desc = trait_education_martial_prowess_4_character_desc + } + } +} + + +############### COURT TYPES ############## + +diplomatic_court_1 = { + diplomacy = 1 + + category = court_type + group = diplomatic_court + level = 1 + + shown_in_ruler_designer = no + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_diplomatic_court_1_desc + } + desc = trait_diplomatic_court_1_character_desc + } + } + + compatibility = { + diplomatic_court_2 = @pos_compat_medium + intrigue_court_1 = @neg_compat_low + intrigue_court_2 = @neg_compat_low + } +} + +diplomatic_court_2 = { + diplomacy = 2 + monthly_prestige = 0.3 + monthly_diplomacy_lifestyle_xp_gain_mult = 0.15 + + category = court_type + group = diplomatic_court + level = 2 + + shown_in_ruler_designer = no + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_diplomatic_court_2_desc + } + desc = trait_diplomatic_court_2_character_desc + } + } + + compatibility = { + diplomatic_court_1 = @pos_compat_medium + intrigue_court_1 = @neg_compat_low + intrigue_court_2 = @neg_compat_low + } +} + +warlike_court_1 = { + martial = 1 + prowess = 1 + + category = court_type + group = warlike_court + level = 1 + + shown_in_ruler_designer = no + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_warlike_court_1_desc + } + desc = trait_warlike_court_1_character_desc + } + } + + compatibility = { + warlike_court_2 = @pos_compat_medium + scholarly_court_1 = @neg_compat_low + scholarly_court_2 = @neg_compat_low + } +} + +warlike_court_2 = { + martial = 2 + monthly_martial_lifestyle_xp_gain_mult = 0.15 + prowess = 2 + men_at_arms_maintenance = -0.05 + + category = court_type + group = warlike_court + level = 2 + + shown_in_ruler_designer = no + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_warlike_court_2_desc + } + desc = trait_warlike_court_2_character_desc + } + } + + compatibility = { + warlike_court_1 = @pos_compat_medium + scholarly_court_1 = @neg_compat_low + scholarly_court_2 = @neg_compat_low + } +} + +administrative_court_1 = { + stewardship = 1 + + category = court_type + group = administrative_court + level = 1 + + shown_in_ruler_designer = no + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_administrative_court_1_desc + } + desc = trait_administrative_court_1_character_desc + } + } + + compatibility = { + administrative_court_2 = @pos_compat_medium + } +} + +administrative_court_2 = { + stewardship = 2 + monthly_stewardship_lifestyle_xp_gain_mult = 0.15 + monthly_county_control_growth_add = 0.2 + + category = court_type + group = administrative_court + level = 2 + + shown_in_ruler_designer = no + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_administrative_court_2_desc + } + desc = trait_administrative_court_2_character_desc + } + } + + compatibility = { + administrative_court_1 = @pos_compat_medium + } +} + +intrigue_court_1 = { + intrigue = 1 + + category = court_type + group = intrigue_court + level = 1 + + shown_in_ruler_designer = no + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_intrigue_court_1_desc + } + desc = trait_intrigue_court_1_character_desc + } + } + + compatibility = { + intrigue_court_2 = @pos_compat_medium + diplomatic_court_1 = @neg_compat_low + diplomatic_court_2 = @neg_compat_low + } +} + +intrigue_court_2 = { + intrigue = 2 + enemy_hostile_scheme_success_chance_add = -10 + monthly_intrigue_lifestyle_xp_gain_mult = 0.15 + dread_baseline_add = 10 + + category = court_type + group = intrigue_court + level = 2 + + shown_in_ruler_designer = no + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_intrigue_court_2_desc + } + desc = trait_intrigue_court_2_character_desc + } + } + + compatibility = { + intrigue_court_1 = @pos_compat_medium + diplomatic_court_1 = @neg_compat_low + diplomatic_court_2 = @neg_compat_low + } +} + +scholarly_court_1 = { + learning = 1 + + category = court_type + group = scholarly_court + level = 1 + + shown_in_ruler_designer = no + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_scholarly_court_1_desc + } + desc = trait_scholarly_court_1_character_desc + } + } + + compatibility = { + scholarly_court_2 = @pos_compat_medium + warlike_court_1 = @neg_compat_low + warlike_court_2 = @neg_compat_low + } +} + +scholarly_court_2 = { + learning = 2 + development_growth_factor = 0.20 + monthly_learning_lifestyle_xp_gain_mult = 0.15 + + category = court_type + group = scholarly_court + level = 2 + + shown_in_ruler_designer = no + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_scholarly_court_2_desc + } + desc = trait_scholarly_court_2_character_desc + } + } + + compatibility = { + scholarly_court_1 = @pos_compat_medium + warlike_court_1 = @neg_compat_low + warlike_court_2 = @neg_compat_low + } +} + +# URBANISM DYNASTY PERK SPECIALS +education_republican_knowledge_1 = { + minimum_age = 16 + learning = 1 + stewardship = 1 + #category = education + + shown_in_ruler_designer = no + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_education_republican_knowledge_1_desc + } + desc = trait_education_republican_knowledge_1_character_desc + } + } + + group = education_republican_knowledge + level = 1 +} + +education_republican_knowledge_2 = { + minimum_age = 16 + learning = 2 + stewardship = 2 + #category = education + + shown_in_ruler_designer = no + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_education_republican_knowledge_2_desc + } + desc = trait_education_republican_knowledge_2_character_desc + } + } + + group = education_republican_knowledge + level = 2 +} + +education_republican_knowledge_3 = { + minimum_age = 16 + learning = 3 + stewardship = 3 + #category = education + + shown_in_ruler_designer = no + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_education_republican_knowledge_3_desc + } + desc = trait_education_republican_knowledge_3_character_desc + } + } + + group = education_republican_knowledge + level = 3 +} + +education_republican_knowledge_4 = { + minimum_age = 16 + learning = 4 + stewardship = 4 + #category = education + + shown_in_ruler_designer = no + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_education_republican_knowledge_4_desc + } + desc = trait_education_republican_knowledge_4_character_desc + } + } + + group = education_republican_knowledge + level = 4 +} + + +############### EP2 TRAITS ############## + +tourney_participant = { + + same_opinion = 10 + + ruler_designer_cost = 5 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_tourney_participant_desc + } + desc = trait_tourney_participant_character_desc + } + } + + icon = { + first_valid = { + triggered_desc = { # If no character exists + trigger = { NOT = { exists = this } } + desc = tournament.dds + } + triggered_desc = { + trigger = { + AND = { + has_trait_xp = { + trait = tourney_participant + track = foot + value >= 30 + } + has_trait_xp = { + trait = tourney_participant + track = bow + value >= 30 + } + has_trait_xp = { + trait = tourney_participant + track = horse + value >= 30 + } + has_trait_xp = { + trait = tourney_participant + track = wit + value >= 30 + } + } + } + desc = tournament_foot_archery_horse_mind.dds + } + triggered_desc = { + trigger = { + AND = { + has_trait_xp = { + trait = tourney_participant + track = foot + value >= 30 + } + has_trait_xp = { + trait = tourney_participant + track = bow + value >= 30 + } + has_trait_xp = { + trait = tourney_participant + track = horse + value >= 30 + } + } + } + desc = tournament_foot_archery_horse.dds + } + triggered_desc = { + trigger = { + AND = { + has_trait_xp = { + trait = tourney_participant + track = foot + value >= 30 + } + has_trait_xp = { + trait = tourney_participant + track = bow + value >= 30 + } + has_trait_xp = { + trait = tourney_participant + track = wit + value >= 30 + } + } + } + desc = tournament_foot_archery_mind.dds + } + triggered_desc = { + trigger = { + AND = { + has_trait_xp = { + trait = tourney_participant + track = foot + value >= 30 + } + has_trait_xp = { + trait = tourney_participant + track = horse + value >= 30 + } + has_trait_xp = { + trait = tourney_participant + track = wit + value >= 30 + } + } + } + desc = tournament_foot_horse_mind.dds + } + triggered_desc = { + trigger = { + AND = { + has_trait_xp = { + trait = tourney_participant + track = horse + value >= 30 + } + has_trait_xp = { + trait = tourney_participant + track = bow + value >= 30 + } + has_trait_xp = { + trait = tourney_participant + track = wit + value >= 30 + } + } + } + desc = tournament_horse_mind_archery.dds + } + triggered_desc = { + trigger = { + AND = { + has_trait_xp = { + trait = tourney_participant + track = foot + value >= 30 + } + has_trait_xp = { + trait = tourney_participant + track = bow + value >= 30 + } + } + } + desc = tournament_foot_archery.dds + } + triggered_desc = { + trigger = { + AND = { + has_trait_xp = { + trait = tourney_participant + track = foot + value >= 30 + } + has_trait_xp = { + trait = tourney_participant + track = horse + value >= 30 + } + } + } + desc = tournament_foot_horse.dds + } + triggered_desc = { + trigger = { + AND = { + has_trait_xp = { + trait = tourney_participant + track = foot + value >= 20 + } + has_trait_xp = { + trait = tourney_participant + track = wit + value >= 30 + } + } + } + desc = tournament_foot_mind.dds + } + triggered_desc = { + trigger = { + AND = { + has_trait_xp = { + trait = tourney_participant + track = bow + value >= 30 + } + has_trait_xp = { + trait = tourney_participant + track = horse + value >= 30 + } + } + } + desc = tournament_archery_horse.dds + } + triggered_desc = { + trigger = { + AND = { + has_trait_xp = { + trait = tourney_participant + track = bow + value >= 30 + } + has_trait_xp = { + trait = tourney_participant + track = wit + value >= 30 + } + } + } + desc = tournament_archery_mind.dds + } + triggered_desc = { + trigger = { + AND = { + has_trait_xp = { + trait = tourney_participant + track = horse + value >= 30 + } + has_trait_xp = { + trait = tourney_participant + track = wit + value >= 30 + } + } + } + desc = tournament_horse_mind.dds + } + triggered_desc = { + trigger = { + has_trait_xp = { + trait = tourney_participant + track = foot + value >= 30 + } + } + desc = tournament_foot.dds + } + triggered_desc = { + trigger = { + has_trait_xp = { + trait = tourney_participant + track = bow + value >= 30 + } + } + desc = tournament_archery.dds + } + triggered_desc = { + trigger = { + has_trait_xp = { + trait = tourney_participant + track = horse + value >= 30 + } + } + desc = tournament_horse.dds + } + triggered_desc = { + trigger = { + has_trait_xp = { + trait = tourney_participant + track = wit + value >= 30 + } + } + desc = tournament_mind.dds + } + desc = tournament.dds + } + } + + tracks = { + foot = { + 30 = { + prowess_no_portrait = 1 + } + + 65 = { + prowess_no_portrait = 1 + martial = 1 + } + + 100 = { + prowess_per_stress_level = 4 + men_at_arms_limit = 2 + knight_limit = 2 + } + } + bow = { + 30 = { + health = 0.05 + } + + 65 = { + health = 0.10 + vassal_levy_contribution_add = 0.15 + } + + 100 = { + health = 0.25 + army_maintenance_mult = -0.25 + } + } + horse = { + 30 = { + monthly_prestige_gain_mult = 0.05 + } + + 65 = { + monthly_prestige_gain_mult = 0.1 + glory_hound_opinion = 20 + } + + 100 = { + monthly_dynasty_prestige_mult = 0.05 + prowess_per_prestige_level = 1 + } + } + wit = { + 30 = { + diplomacy = 1 + } + + 65 = { + diplomacy = 1 + monthly_lifestyle_xp_gain_mult = 0.05 + zealot_opinion = 10 + } + + 100 = { + diplomacy = 1 + movement_speed = 0.2 + monthly_lifestyle_xp_gain_mult = 0.10 + } + } + } + + compatibility = { + brave = @pos_compat_low + craven = @neg_compat_low + } +} + +lifestyle_traveler = { + icon = "traveler.dds" + + monthly_wanderer_lifestyle_xp_gain_mult = 0.1 + same_opinion = 5 + diplomacy = 1 + + ruler_designer_cost = 20 + + name = { + first_valid = { + triggered_desc = { + trigger = { + trigger_if = { + limit = { + NOT = { exists = this } + } + } + trigger_else_if = { + limit = { has_trait = lifestyle_traveler } + has_trait_xp = { + trait = lifestyle_traveler + track = travel + value < 50 + } + has_trait_xp = { + trait = lifestyle_traveler + track = danger + value < 50 + } + } + trigger_else = { + NOT = { has_trait = lifestyle_traveler } + } + } + desc = trait_traveler_1 + } + triggered_desc = { + trigger = { + has_trait = lifestyle_traveler + OR = { + has_trait_xp = { + trait = lifestyle_traveler + track = travel + value = 100 + } + has_trait_xp = { + trait = lifestyle_traveler + track = danger + value = 100 + } + } + } + desc = trait_traveler_3 + } + desc = trait_traveler_2 + } + } + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_traveler_1_desc + } + triggered_desc = { + trigger = { + trigger_if = { + limit = { has_trait = lifestyle_traveler } + has_trait_xp = { + trait = lifestyle_traveler + track = travel + value < 50 + } + has_trait_xp = { + trait = lifestyle_traveler + track = danger + value < 50 + } + } + } + desc = trait_traveler_1_character_desc + } + triggered_desc = { + trigger = { + has_trait = lifestyle_traveler + OR = { + has_trait_xp = { + trait = lifestyle_traveler + track = travel + value = 100 + } + has_trait_xp = { + trait = lifestyle_traveler + track = danger + value = 100 + } + } + } + desc = trait_traveler_3_character_desc + } + desc = trait_traveler_2_character_desc + } + } + + tracks = { + travel = { + trait_second_level = { + character_travel_speed_mult = 0.05 + learning = 1 + diplomacy = 1 + health = 0.05 + monthly_wanderer_lifestyle_xp_gain_mult = 0.2 + } + trait_third_level = { + character_travel_speed_mult = 0.1 + learning = 1 + diplomacy = 1 + health = 0.05 + monthly_wanderer_lifestyle_xp_gain_mult = 0.2 + } + } + danger = { + trait_second_level = { + character_travel_safety_mult = 0.05 + prowess = 1 + stewardship = 1 + travel_companion_opinion = 5 + } + trait_third_level = { + character_travel_safety_mult = 0.1 + prowess = 1 + stewardship = 1 + travel_companion_opinion = 5 + } + } + } +} + +############### FP3 TRAITS ############## + +fp3_struggle_detractor = { + icon = "fp3_struggle_detractor.dds" + opposites = { + fp3_struggle_supporter + } + + shown_in_ruler_designer = no + + same_opinion = 10 + opposite_opinion = -30 + + ai_war_cooldown = -0.5 + ai_war_chance = 5 + + flag = can_foment_revolt_interaction + flag = can_request_incursion_interaction + flag = can_change_to_iranian_faith_decision + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_fp3_struggle_detractor_desc + } + triggered_desc = { + trigger = { faith.religious_head_title ?= title:d_sunni } + desc = trait_fp3_struggle_detractor_character_desc + } + desc = trait_fp3_struggle_detractor_non_orthodox_sunni_character_desc + } + } +} + +fp3_struggle_supporter = { + icon = "fp3_struggle_supporter.dds" + opposites = { + fp3_struggle_detractor + } + + shown_in_ruler_designer = no + + flag = can_use_install_loyalist_cb + + same_opinion = 10 + opposite_opinion = -30 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_fp3_struggle_supporter_desc + } + triggered_desc = { + trigger = { has_title = title:d_sunni } + desc = trait_fp3_struggle_supporter_character_is_caliph_desc + } + desc = trait_fp3_struggle_supporter_character_desc + } + } +} + +############### EP3 TRAITS ############## + +# TRAITS TO TRACK HIPPODROME FACTION MEMBERS +charioteer_blue = { + category = lifestyle + icon = "charioteer_blue.dds" + opposites = { + charioteer_green + charioteer_white + charioteer_red + } + + shown_in_ruler_designer = no + opposite_opinion = -10 + + # AI Values + ai_energy = 10 + + name = trait_charioteer_blue + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_charioteer_blue_desc + } + triggered_desc = { + trigger = { + trigger_if = { + limit = { has_trait = charioteer_blue } + has_trait_xp = { + trait = charioteer_blue + value < 40 + } + } + } + desc = trait_charioteer_blue_1_character_desc + } + triggered_desc = { + trigger = { + has_trait_xp = { + trait = charioteer_blue + value >= 90 + } + } + desc = trait_charioteer_blue_3_character_desc + } + desc = trait_charioteer_blue_2_character_desc + } + } + + track = { + 50 = { + character_travel_speed_mult = 0.05 + prowess = 1 + health = 0.05 + } + 100 = { + character_travel_speed_mult = 0.1 + prowess = 1 + health = 0.05 + } + } +} + +charioteer_green = { + category = lifestyle + icon = "charioteer_green.dds" + opposites = { + charioteer_blue + charioteer_white + charioteer_red + } + + shown_in_ruler_designer = no + opposite_opinion = -10 + + # AI Values + ai_energy = 10 + + name = trait_charioteer_green + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_charioteer_green_desc + } + triggered_desc = { + trigger = { + trigger_if = { + limit = { has_trait = charioteer_green } + has_trait_xp = { + trait = charioteer_green + value < 40 + } + } + } + desc = trait_charioteer_green_1_character_desc + } + triggered_desc = { + trigger = { + has_trait_xp = { + trait = charioteer_green + value >= 90 + } + } + desc = trait_charioteer_green_3_character_desc + } + desc = trait_charioteer_green_2_character_desc + } + } + + track = { + 50 = { + character_travel_speed_mult = 0.05 + prowess = 1 + health = 0.05 + } + 100 = { + character_travel_speed_mult = 0.1 + prowess = 1 + health = 0.05 + } + } +} + +charioteer_white = { + category = lifestyle + icon = "charioteer_white.dds" + opposites = { + charioteer_blue + charioteer_green + charioteer_red + } + + shown_in_ruler_designer = no + opposite_opinion = -10 + + # AI Values + ai_energy = 10 + + name = trait_charioteer_white + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_charioteer_white_desc + } + triggered_desc = { + trigger = { + trigger_if = { + limit = { has_trait = charioteer_white } + has_trait_xp = { + trait = charioteer_white + value < 40 + } + } + } + desc = trait_charioteer_white_1_character_desc + } + triggered_desc = { + trigger = { + has_trait_xp = { + trait = charioteer_white + value >= 90 + } + } + desc = trait_charioteer_white_3_character_desc + } + desc = trait_charioteer_white_2_character_desc + } + } + + track = { + 50 = { + character_travel_speed_mult = 0.05 + prowess = 1 + health = 0.05 + } + 100 = { + character_travel_speed_mult = 0.1 + prowess = 1 + health = 0.05 + } + } +} + +charioteer_red = { + category = lifestyle + icon = "charioteer_red.dds" + opposites = { + charioteer_blue + charioteer_white + charioteer_green + } + + shown_in_ruler_designer = no + opposite_opinion = -10 + + # AI Values + ai_energy = 10 + + name = trait_charioteer_red + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_charioteer_red_desc + } + triggered_desc = { + trigger = { + trigger_if = { + limit = { has_trait = charioteer_red } + has_trait_xp = { + trait = charioteer_red + value < 40 + } + } + } + desc = trait_charioteer_red_1_character_desc + } + triggered_desc = { + trigger = { + has_trait_xp = { + trait = charioteer_red + value >= 90 + } + } + desc = trait_charioteer_red_3_character_desc + } + desc = trait_charioteer_red_2_character_desc + } + } + + track = { + 50 = { + character_travel_speed_mult = 0.05 + prowess = 1 + health = 0.05 + } + 100 = { + character_travel_speed_mult = 0.1 + prowess = 1 + health = 0.05 + } + } +} + +# GOVERNOR TRAIT +governor = { + category = fame + icon = governor.dds + + # Modifiers + track = { + 25 = { + monthly_influence = 1 + stewardship = 1 + } + 50 = { + monthly_influence = 1 + diplomacy = 1 + } + 75 = { + monthly_influence = 1 + martial = 1 + intrigue = 1 + } + 100 = { + monthly_influence = 2 + diplomacy = 1 + martial = 1 + stewardship = 1 + intrigue = 1 + } + } + + #monthly_track_xp_degradation = { change = 0.4 } + + ruler_designer_cost = 40 + + # AI Values + ai_rationality = 10 + + # Loc + name = { + first_valid = { + #Strategos - Byz flavor + triggered_desc = { + trigger = { + exists = this + top_liege ?= { culture = { has_cultural_pillar = heritage_byzantine } } + is_male = yes + } + desc = duke_administrative_male_byzantine_group + } + triggered_desc = { + trigger = { + exists = this + top_liege ?= { culture = { has_cultural_pillar = heritage_byzantine } } + is_female = yes + } + desc = duke_administrative_female_byzantine_group + } + #Governor - Default + triggered_desc = { + trigger = { + exists = this + is_female = yes + } + desc = duke_administrative_female + } + desc = duke_administrative_male + } + } + + desc = { + first_valid = { + #The trait can never go higher than the first level if it's not assigned to a character + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_governor_desc + } + triggered_desc = { + trigger = { + has_trait_xp = { + trait = governor + value >= 75 + } + } + desc = trait_governor_3_character_desc + } + triggered_desc = { + trigger = { + has_trait_xp = { + trait = governor + value >= 25 + } + } + desc = trait_governor_2_character_desc + } + desc = trait_governor_1_character_desc + } + } +} + +#FRANKOKRATIA TRAIT +despoiler_of_byzantium = { + category = fame + shown_in_ruler_designer = no + + martial = 1 + prowess = 2 + + dread_baseline_add = 10 + siege_phase_time = -0.25 + men_at_arms_maintenance_per_dread_mult = -0.0025 + knight_effectiveness_per_dread = 0.002 + greek_opinion = -50 + county_opinion_add = -10 + clergy_opinion = -15 + + culture_modifier = { + parameter = faith_warrior_traits_more_valued + monthly_prestige = 1 + } + + icon = despoiler_of_byzantium.dds + + name = trait_despoiler_of_byzantium + + desc = trait_despoiler_of_byzantium_desc + + ai_compassion = -10 + ai_greed = 10 + ai_honor = -10 +} + +#EL CID TRAIT +campeador = { + category = fame + shown_in_ruler_designer = no + + martial = 2 + prowess = 4 + + monthly_prestige = 0.2 + + culture_modifier = { + parameter = prowess_traits_more_valued + same_culture_opinion = 4 + monthly_prestige = 0.2 + } + + icon = campeador.dds + + name = trait_campeador + + desc = trait_campeador_desc + + ai_honor = 20 +} + +# Wallada's unique trait: Violet Poet +violet_poet = { + category = fame + icon = violet_poet.dds + shown_in_ruler_designer = no + + attraction_opinion = 10 + seduce_scheme_phase_duration_add = minor_scheme_phase_duration_bonus_value + + culture_modifier = { + parameter = poet_trait_gives_bonuses + monthly_prestige_gain_mult = 0.05 + owned_personal_scheme_success_chance_add = 10 + } + + culture_modifier = { + parameter = poet_trait_romance_bonuses + attraction_opinion = 15 + courting_scheme_phase_duration_add = minor_scheme_phase_duration_bonus_value + } + + track = { + 33 = { #Celebrated + attraction_opinion = 10 + diplomacy_per_prestige_level = 1 + seduce_scheme_phase_duration_add = minor_scheme_phase_duration_bonus_value + courting_scheme_phase_duration_add = minor_scheme_phase_duration_bonus_value + } + 66 = { #Distinguished + attraction_opinion = 10 + intrigue_per_prestige_level = 1 + seduce_scheme_phase_duration_add = minor_scheme_phase_duration_bonus_value + courting_scheme_phase_duration_add = minor_scheme_phase_duration_bonus_value + } + 100 = { #Laureate + attraction_opinion = 20 + learning_per_prestige_level = 1 + seduce_scheme_phase_duration_add = minor_scheme_phase_duration_bonus_value + courting_scheme_phase_duration_add = minor_scheme_phase_duration_bonus_value + } + } + + # AI Values + ai_energy = 10 + ai_sociability = 10 + + # Loc + name = trait_violet_poet + desc = trait_violet_poet_desc +} + +# The Knight of the Swan +knight_errant = { + category = fame + icon = { + first_valid = { + triggered_desc = { # If no character exists + trigger = { + NOT = { exists = this } + } + desc = knight_of_the_swan.dds + } + triggered_desc = { + trigger = { + location = { + geographical_region = world_europe + } + } + desc = knight_of_the_swan.dds + } + triggered_desc = { + trigger = { + location = { + OR = { + geographical_region = world_india + geographical_region = world_burma + geographical_region = ghw_region_caucasus + } + } + } + desc = knight_of_the_tiger.dds + } + triggered_desc = { + trigger = { + location = { + geographical_region = world_africa + } + } + desc = knight_of_the_lion.dds + } + desc = knight_of_the_swan.dds + } + } + shown_in_ruler_designer = yes + + ruler_designer_cost = 75 + + knight_limit = 2 + knight_effectiveness_per_prowess = 0.01 + glory_hound_opinion = 15 + + culture_modifier = { + parameter = knight_errant_trait_bonuses + monthly_prestige_gain_mult = 0.02 + } + + track = { + 50 = { # Defender + prowess_per_prestige_level = 1 + knight_limit = 1 + men_at_arms_limit = 1 + culture_modifier = { + parameter = knight_errant_trait_bonuses + tourney_participant_xp_gain_mult = 0.15 + } + } + 100 = { # Rightdoer + prowess_per_prestige_level = 2 + knight_limit = 2 + men_at_arms_limit = 2 + culture_modifier = { + parameter = knight_errant_trait_bonuses + tourney_participant_xp_gain_mult = 0.25 + } + } + } + + # AI Values + ai_energy = 10 + ai_sociability = 10 + + # Loc + name = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_knight_errant + } + desc = trait_knight_errant_character + } + } + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_knight_errant_desc + } + desc = trait_knight_errant_character_desc + } + } +} + +the_wake = { + category = lifestyle + icon = "the_wake.dds" + + shown_in_ruler_designer = no + + opinion_of_different_culture = -10 + wetlands_travel_danger = -100 + character_travel_speed = 15 + + # AI Values + ai_vengefulness = 100 + + name = { + first_valid = { + triggered_desc = { + trigger = { + exists = this + has_trait_xp = { + trait = the_wake + value = 100 + } + } + desc = the_wake_5 + } + triggered_desc = { + trigger = { + exists = this + has_trait_xp = { + trait = the_wake + value >= 75 + } + } + desc = the_wake_4 + } + triggered_desc = { + trigger = { + exists = this + has_trait_xp = { + trait = the_wake + value >= 50 + } + } + desc = the_wake_3 + } + triggered_desc = { + trigger = { + exists = this + has_trait_xp = { + trait = the_wake + value >= 25 + } + } + desc = the_wake_2 + } + desc = the_wake_1 + } + } + + desc = { + first_valid = { + triggered_desc = { + trigger = { + exists = this + has_trait_xp = { + trait = the_wake + value = 100 + } + } + desc = the_wake_5_desc + } + triggered_desc = { + trigger = { + exists = this + has_trait_xp = { + trait = the_wake + value >= 75 + } + } + desc = the_wake_4_desc + } + triggered_desc = { + trigger = { + exists = this + has_trait_xp = { + trait = the_wake + value >= 50 + } + } + desc = the_wake_3_desc + } + triggered_desc = { + trigger = { + exists = this + has_trait_xp = { + trait = the_wake + value >= 25 + } + } + desc = the_wake_2_desc + } + desc = the_wake_1_desc + } + } + + track = { + 25 = { + martial = 1 + wetlands_attrition_mult = -0.1 + wetlands_advantage = 2 + wetlands_supply_limit_mult = 0.1 + norman_opinion = -5 + } + 50 = { + martial = 1 + wetlands_attrition_mult = -0.2 + wetlands_advantage = 3 + wetlands_supply_limit_mult = 0.2 + norman_opinion = -5 + } + 75 = { + martial = 1 + prowess = 1 + wetlands_attrition_mult = -0.2 + wetlands_advantage = 1 + max_combat_roll = 2 + wetlands_supply_limit_mult = 0.2 + norman_opinion = -10 + dread_baseline_add = 5 + } + 100 = { + martial = 2 + prowess = 2 + wetlands_supply_limit_mult = 0.1 + norman_opinion = -15 + uncontrolled_province_advantage = 5 + raid_speed = 0.5 + dread_baseline_add = 15 + } + } +} + +immortal = { + icon = "immortal.dds" + # This is definitely a very clever allusion to the 10k immortals and not just landing arbitrarily on a certain number of zeros. + ruler_designer_cost = 10000 + + opposites = { incapable } + + desc = { + first_valid = { + triggered_desc = { + trigger = { + NOT = { exists = this } + } + desc = trait_immortal_desc + } + desc = trait_immortal_character_desc + } + } + + immortal = yes + # Dummy flags — just here for loc really. + flag = is_immortal + flag = immortal_visuals + flag = immortal_fertility + flag = immortal_incapability + long_reign_bonus_mult = -1000 + no_prowess_loss_from_age = yes +} + +lifestyle_wayfarer = { + category = lifestyle + + diplomacy = 2 + prowess_per_prestige_level = 1 + stress_loss_per_prestige_level = 0.05 + + ruler_designer_cost = 50 +} + +lifestyle_voyager = { + category = lifestyle + + stewardship = 2 + character_travel_speed = 10 + monthly_prestige = 0.25 + diplomatic_range_mult = 0.15 + + ruler_designer_cost = 50 +} + +lifestyle_surveyor = { + category = lifestyle + + stewardship = 2 + development_growth_factor = 0.1 + long_reign_bonus_mult = 0.25 + character_travel_safety = 10 + + ruler_designer_cost = 50 + + desc = { + first_valid = { + triggered_desc = { + trigger = { + exists = this + is_landless_adventurer = yes + } + desc = trait_lifestyle_surveyor_adventurer_desc + } + desc = trait_lifestyle_surveyor_desc + } + } +} + diff --git a/common/traits/_traits.info b/common/traits/_traits.info new file mode 100644 index 00000000..72495018 --- /dev/null +++ b/common/traits/_traits.info @@ -0,0 +1,257 @@ + +== Loc/icon == +By default, the name key is trait_, and the desc key is trait__desc. +The default icon path is gfx/interface/icons/traits/.dds. + +These can be overridden with dynamic descriptions. +E.G., +name = some_loc_key +Or +name = { + first_valid = { ... } +} + +The parameters are: +name +desc +icon + +The root scope is the character. +Note that in some cases there may be no root, so make sure your first check is a fallback for "NOT = { exists = this }" if you add dynamic names, descs, or icons. + +An example: + icon = { + first_valid = { + triggered_desc = { + trigger = { NOT = { exists = this } } + desc = "gfx/interface/icons/traits/diligent.dds" + } + + triggered_desc = { + trigger = { gold > 1000 } + desc = "gfx/interface/icons/traits/diligent.dds" + } + + desc = "gfx/interface/icons/traits/deceitful.dds" + } + } + +=== Trait Properties === + +category = X # What unique category this trait is in, categories have gameplay implications as well as sorting +Valid categories: + - personality: The core personality of a character, character's auto generate with some + - education: A character's education, they can only have one at a time and are auto generated with + - childhood: The core personality of a child, it will grow into an adult personality trait, auto generated on children + - commander: A combat trait for how a character fights, auto added to characters if required + - winter_commander: A commander trait but will only be added for character's in an area with winter + - lifestyle: A lifestyle progress trait + - court_type: A trait from a court type + - fame: A fame (or infamy) trait + - health: A trait representing a health condition + +### Trait validation + +valid_sex = all/male/female # Defaults to all, trait can only be had by characters of this sex + +minimum_age = int # Min age required to have this trait +maximum_age = int # Max age allowed to have this trait + +potential = { # Triggers that must be met for this trait to be givento a character. This is not checked during runtime. + +} + +### Special flags + +inheritance_blocker = none/dynasty/all # Does this trait block inheritance, defaults to none, dynasty only blocks inheritance within the same dynasty +claim_inheritance_blocker = none/dynasty/all # Does this trait block claim inheritance, defaults to none, dynasty only blocks claim inheritance within the same dynasty + +add_commander_trait = yes/no # This trait should make auto-generated characters add commander traits + +incapacitating = yes/no # This character is unable to rule directly and requires a regent + +physical = yes/no # A physical aspect of the character's body + +disables_combat_leadership = yes/no # This character is blocked from being a commander + +can_have_children = yes/no # Can this character have any children at all, defaults to yes + +genetic = yes/no # A genetic trait, mutually exclusive with having a manual inheritance chance. + # The inheritance will follow the following rules: + # The trait can be inactive. Children can inherit the trait from both active and inactive parent traits. + # An active trait is inherited with 100% chance, an inactive trait with a 50% chance. If the trait is successfully inherited from both parents, it becomes active. + # If it's inherited only from one parent, it's inactive. + +good = yes/no # This trait is a "good" to have genetic trait + +inherit_from_real_father = yes/no # This trait should be inherited from the character's real father. Only impacts if the trait is genetic or has a manual inheritance chance. Defaults to yes. + +inherit_from_real_mother = yes/no # This trait should be inherited from the character's real mother. Only impacts if the trait is genetic or has a manual inheritance chance. Defaults to yes. + +enables_inbred = yes/no # This trait enables the children of the character to be considered for the inbred trait + # It only enables the inbred chance if there are common ancestors of the parents, so there is no risk of 'inbred' if the parents are not related. + # If inbred is not enabled by parents' traits, but there are common ancestors, there's a chance (same as for inbred trait when it's enabled) the child will get a random trait with enables_inbred = yes. + +shown_in_encyclopedia = yes/no # This trait should be shown in the encyclopedia. Defaults to yes. + +shown_in_ruler_designer = yes/no # This trait should be shown in the ruler designer. Defaults to yes. + +immortal = yes/no # Will stop visual aging, and make the character immune to natural death. Can still be killed by script. Fertility will match visual age. You can use set_immortal_age to change the visual age + +bastard = none/illegitimate/legitimate # This character is a bastard of said type + +### Commander terrain +trait_exclusive_if_realm_contains = {} # A list of terrain types that are taken into consideration when commander traits are randomly assigned to commanders. These traits are only assigned/considered if the commander's culture contains a province that has one of the terrain types specified in the list + +### Trait generation +birth = X # 0-1 What % of characters out of 100 are born with this trait if not inherited +random_creation = X # 0-1 - % chance of character to get this trait on creation. Only applicable to inheritable or genetic traits. Evaluate all traits independently for + # for chance to appear. If more than one such trait procs, select single resulting trait uniformily. + # As opposed to actually being born; this is for things like generated characters, script characters, etc. +random_creation_weight = X # Positive value. Defaults to 1. If negative will be set to 0. Value 0 means no weight and will never be picked randomly. + # Unlike % chance out of 100, randomizing by weight sums up all available weights and then picks a random among them, meaning it is fully dependent + # on the value difference between the weights. If all traits have the same weight it means they all have the same chance of being picked. + # Provide lower number for more rare or higher for more common (in comparison to the other weights within the same category). This is used + # when selecting traits for generated characters of the categories: personality, education and childhood. Is ignored for genetic and inheritable traits + +inherit_chance = 50 # 0-100 what % of characters out of 100 inherit this trait, can not be set if a genetic trait +both_parent_has_trait_inherit_chance = 25 # 0-100 what % of characters out of 100 inherit this trait, can not be set if a genetic trait + +parent_inheritance_sex = male/female/all # Specifies whether the trait can be inherited from male/female/all parents (all by default) +child_inheritance_sex = male/female/all # Specifies whether the trait can be inherited by male/female/all children (all by default) + +### Portrait impacts +genetic_constraint_all = beauty # This genetic constraint will be applied when gaining the trait +genetic_constraint_men = beauty # This genetic constraint will be applied when gaining the trait for men +genetic_constraint_women = beauty # This genetic constraint will be applied when gaining the trait for women + +portrait_extremity_shift = 0.25 # When gaining this trait, every single morph gene will be shifted by this percentage towards 0 or 1; whichever it is closest to. E.G., 0.4 will shift 25% towards 0, resulting in 0.3 + +ugliness_portrait_extremity_shift = 0.75 # When gaining this trait, every single morph gene associated with the character's most extreme single trait (as defined in common/genes) shifted by this percentage towards 0 or 1; whichever it is closest to. E.G., 0.4 will shift 25% towards 0, resulting in 0.3. "Most extreme" is decided simply by taking the feature whose genes have the highest average deviation from 50% strength + +### Special opinion impacts + +same_opinion = 10 # Opinion impact if two characters share the trait + +same_opinion_if_same_faith = 10 # Opinion impact if two characters share the trait and are of the same faith + +opposite_opinion = 10 # Opinion impact if two characters have opposite traits + +# Applied if the associated conditions are fulfilled +triggered_opinion = { + opinion_modifier = opinion_modifier_key # What opinion modifier to apply if the conditions are fulfilled + # Everything below is optional + parameter = doctrine_parameter_key # What boolean doctrine parameter to check for + check_missing = yes # Check that the parameter is *not* set (or set to false), rather than set to true + + same_faith = yes # Only apply to characters of the same faith + same_dynasty = yes # Only apply to characters of the same dynasty + ignore_opinion_value_if_same_trait = yes # If both characters have this trait, ignore the opinion effect. Punishment reasons still apply + male_only = yes # Only applied if the trait holder is male + female_only = yes # Only applied if the trait holder is female. Mutually exclusive with male_only +} + +### Trait relations + +# This is not a Opinion modifier, but can be used by 'compatibility_modifier' and 'trait_compatibility' trigger. Compatibility is checked for the Trait holder vs the listed Traits (of another character.) +compatibility = { + gluttonous = 20 + drunkard = @pos_compat_low +} + +# What traits this trait is the opposite of +opposites = { + +} + +### Groups + +level = integer # What level in the group this trait is + +group = name # What trait group this trait is in, grouping is used for both inheritance and equivalence + +group_equivelence = name # What trait group this trait is in, its grouping is only used for equivalence + +group_inheritance = name # What trait group this trait is in, its grouping is only used for inheritance + +### Misc properties + +ruler_designer_cost = int # Cost to take in ruler designer, defaults to zero + +flag = # Flag this trait is marked with, can add multiple, localized as TRAIT_FLAG_DESC_name + +# If the culture of the person passing on their titles has this flag, then children with this trait are considered to be oldest (or youngest, in ultimogeniture) +# Does not affect gender preference and the like at all, just the age-based ordering of children +culture_succession_prio = children_can_be_born_in_the_purple + +### Level tracks + +Traits can be marked as levelling and gain different bonuses based on how much XP a character has within that track. A trait can have one or multiple tracks, each will store XP per character so you can have one trait levelling multiple things. Each track must have a unique name within this trait. + +Each track can contain entries with a required XP score from 0-100 inclusive and then any modifiers. Modifiers will be read according to the modifier section below. XP thresholds must be in ascending order. + +tracks = { + = { + 20 = { + + } + 50 = { + + } + 90 = { + + } + } + + = { + 30 = { + + } + 55 = { + + } + } +} + +If only one track is needed then a short hand is provided which creates one track named after the trait itself. + +track = { + 20 = { + + } + 40 = { + + } +} + +Trait tracks should be localized with trait_track_ and trait_track__desc. + +They can be used with the add_trait_xp effect and has_trait_xp trigger. + +Track XP can degrade over time in a trait by doing monthly_track_xp_degradation = { min = 20 change = 5 } which will degrade it by 5 every month but never below 20. + +### Modifiers + +# Modifier that will be applied for characters with a culture with the specified parameter +culture_modifier = { + parameter = can_blind_prisoners + diplomacy = 5 +} + +# Modifier that will be applied for characters if their faith has some doctrine with the specified parameter +faith_modifier = { + parameter = great_holy_wars_active + stewardship = 1 +} + +Any other unknown property is read in as a modifier applied to anyone who holds the trait + +### Lookup conversion + +# trait_conversion.lookup contains a mapping between an old trait name key to its new trait name key +# This lets you remove a trait and have it map to some other new valid trait +# Use this to help with converting save game versions such as with the pre 1.9 tiered lifestlye traits to the new level track trait + +# old_trait_indexes.lookup contains the ordered list of named traits to match up with the pre 1.4 manual indexes traits had to assign. +# Nulls fill the gaps between the valid entries. +# Make sure to adjust this for your mods traits when relasing for 1.4 if you want your saves from 1.3 to be compatible. If you did not edit the traits or are going to break compatibility then leave it as is.