This commit is contained in:
Heidesommer 2026-05-29 07:08:29 -04:00
parent 2e180fb2f5
commit ad48f8dc48
18 changed files with 12709 additions and 285 deletions

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -945,12 +945,12 @@ tradition_female_only_inheritance = {
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
}
}
# any_parent_culture_or_above = {
# OR = {
# this = culture:nubian
# this = culture:daju
# }
# }
scope:character.faith = {
has_doctrine_parameter = female_dominated_law
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,602 @@
###########################
# 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 = {
has_coastal_province = 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 } }
}
custom_tooltip = {
text = cultrad_not_nomadic_government_type
scope:character = {
NOT = {
government_has_flag = government_is_nomadic
}
}
}
custom_tooltip = {
text = cannot_have_tradition_maritime_way_of_life
NOT = { culture_tradition:tradition_maritime_way_of_life = { 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
has_coastal_province = yes
}
}
}
add = {
value = tradition_unfulfilled_criteria_penalty
desc = coastal_percentage_desc
}
}
if = {
limit = {
culture_tradition_reduction_trigger = { TRADITION = tradition_fp1_coastal_warriors }
}
multiply = {
value = 0.5
desc = inspired_by_culture_desc
}
}
multiply = tradition_replacement_cost_if_relevant
}
}
ai_will_do = {
value = 100
if = {
limit = {
NOT = {
scope:character = {
any_sub_realm_county = {
percent >= 0.3
has_coastal_province = 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
}
}
if = {
limit = {
culture_tradition_reduction_trigger = { TRADITION = tradition_fp1_performative_honour }
}
multiply = {
value = 0.5
desc = inspired_by_culture_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
better_court_poets = 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 = lifestyle_poet
}
}
}
trigger_else = {
always = no
}
}
add = {
value = tradition_unfulfilled_criteria_penalty
desc = rulers_with_poet_desc
}
}
if = {
limit = {
culture_tradition_reduction_trigger = { TRADITION = tradition_fp1_northern_stories }
}
multiply = {
value = 0.5
desc = inspired_by_culture_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
}
}
if = {
limit = {
culture_tradition_reduction_trigger = { TRADITION = tradition_fp1_trials_by_combat }
}
multiply = {
value = 0.5
desc = inspired_by_culture_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
}
}
if = {
limit = {
culture_tradition_reduction_trigger = { TRADITION = tradition_fp1_the_right_to_prove }
}
multiply = {
value = 0.5
desc = inspired_by_culture_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
}
}
}

View file

@ -0,0 +1,433 @@
###########################
# 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
culture_head ?= { knows_language = language_iberian }
}
}
add = {
value = tradition_unfulfilled_criteria_penalty
desc = lack_iberian_heritage_or_language_penalty_desc
}
}
if = {
limit = {
culture_tradition_reduction_trigger = { TRADITION = tradition_fp2_state_ransoming }
}
multiply = {
value = 0.5
desc = inspired_by_culture_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
withering_mind_less_likely = 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
}
}
}
if = {
limit = {
culture_tradition_reduction_trigger = { TRADITION = tradition_fp2_strategy_gamers }
}
multiply = {
value = 0.5
desc = inspired_by_culture_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
}
}
if = {
limit = {
culture_tradition_reduction_trigger = { TRADITION = tradition_fp2_malleable_subjects }
}
multiply = {
value = 0.5
desc = inspired_by_culture_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 }
}
}
}
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
}
}
}
if = {
limit = {
culture_tradition_reduction_trigger = { TRADITION = tradition_fp2_ritualised_friendship }
}
multiply = {
value = 0.5
desc = inspired_by_culture_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 }
}
add = 25
}
# And certain lifestyles also make you want to focus on this.
if = {
limit = { has_focus = martial_chivalry_focus }
add = 10
}
}
}
}
}

View file

@ -0,0 +1,106 @@
###########################
# 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
}
}
if = {
limit = {
culture_tradition_reduction_trigger = { TRADITION = tradition_ep2_avid_falconers }
}
multiply = {
value = 0.5
desc = inspired_by_culture_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
}
}
}
}
}

View file

@ -0,0 +1,122 @@
###########################
# 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
}
}
if = {
limit = {
culture_tradition_reduction_trigger = { TRADITION = tradition_ce1_ritual_washing }
}
multiply = {
value = 0.5
desc = inspired_by_culture_desc
}
}
multiply = tradition_replacement_cost_if_relevant
}
}
ai_will_do = {
value = 100
if = {
limit = {
scope:character = {
has_perk = wash_your_hands_perk
}
}
add = 100
}
}
}

View file

@ -16,12 +16,13 @@ tradition_ep3_indomitable_azatani = {
}
is_shown = {
OR = {
this = culture:armenian
any_parent_culture_or_above = {
this = culture:armenian
}
}
always = no
# OR = {
# this = culture:armenian
# any_parent_culture_or_above = {
# this = culture:armenian
# }
# }
# DLC check.
has_ep3_dlc_trigger = yes
NOT = {
@ -145,12 +146,13 @@ tradition_ep3_audacious_cadets = {
}
is_shown = {
OR = {
this = culture:norman
any_parent_culture_or_above = {
this = culture:norman
}
}
always = no
# OR = {
# this = culture:norman
# any_parent_culture_or_above = {
# this = culture:norman
# }
# }
# DLC check.
has_ep3_dlc_trigger = yes
NOT = {

View file

@ -0,0 +1,33 @@
#######################
# CULTURAL TRADITIONS #
#######################
######################
# ACH Traditions #
######################
oath_mend_the_fracture_tradition = {
category = regional
is_shown = { #only added from decision
always = no
}
parameters = {
synergy_cultures_counties_development = yes
synergy_cultures_maa_spawn = yes
synergy_cultures_opinion_gain = yes
synergy_cultures_positive_chance_desc = yes
}
character_modifier = {
development_growth_factor = 0.2
diplomacy = 1
}
layers = {
0 = steward
1 = mediterranean
4 = hostages.dds
}
}

View file

@ -0,0 +1,393 @@
#######################
# CULTURAL TRADITIONS #
#######################
######################
# MPO Traditions #
######################
tradition_mpo_iron_cavalry = {
category = regional
layers = {
0 = martial
1 = steppe
4 = iron_cavalry.dds
}
is_shown = {
has_mpo_dlc_trigger = yes
OR = {
has_cultural_pillar = heritage_mongolic
has_cultural_pillar = heritage_turkic
has_cultural_pillar = heritage_magyar
scope:character = {
mpo_can_recruit_nomad_maa_trigger = yes
}
}
}
can_pick = {
culture_not_pacifistic_trigger = yes
custom_tooltip = {
text = culture_head_archer_cavalry_desc
scope:character = {
max_number_maa_soldiers_of_base_type = {
type = archer_cavalry
value >= 600
}
}
}
trigger_if = {
limit = {
scope:character = { government_has_flag = government_is_nomadic }
}
scope:character.domicile ?= {
has_domicile_building_or_higher = paiza_metal_trade_yurt_01
}
}
trigger_else = {
scope:character = {
has_trait = nomadic_philosophy
}
}
}
parameters = {
unlock_maa_cataphract_archers = yes
martial_traits_give_out_hcav_bonus = yes
metalworkers_internal_yurt_unlock = yes
}
character_modifier = {
heavy_cavalry_toughness_mult = 0.2
archer_cavalry_toughness_mult = 0.2
light_cavalry_toughness_mult = 0.1
herd_conversion = -0.01
}
cost = {
prestige = {
add = {
value = tradition_base_cost
multiply = 4
desc = BASE
format = "BASE_VALUE_FORMAT"
}
if = {
limit = {
culture_tradition_reduction_trigger = { TRADITION = tradition_mpo_iron_cavalry }
}
multiply = {
value = 0.5
desc = inspired_by_culture_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_mpo_wolves_of_the_deep_steppe = {
category = regional
layers = {
0 = martial
1 = steppe
4 = wolves_of_the_deep_steppe.dds
}
is_shown = {
has_mpo_dlc_trigger = yes
OR = {
has_cultural_pillar = heritage_mongolic
has_cultural_pillar = heritage_turkic
has_cultural_pillar = heritage_magyar
scope:character = {
mpo_can_recruit_nomad_maa_trigger = yes
}
}
}
can_pick = {
culture_not_pacifistic_trigger = yes
scope:character = {
government_has_flag = government_is_nomadic
}
}
parameters = {
unlock_maa_mangudai = yes
}
character_modifier = {
prowess = 4
herd_capacity_mult = 0.2
herd_conversion = 0.01
nomadic_horde_damage_mult = 0.1
nomadic_horde_pursuit_mult = 0.1
archer_cavalry_damage_mult = 0.15
archer_cavalry_pursuit_mult = 0.2
mountains_fertility_growth_mult = medium_culture_county_fertility_value_mult
mountains_travel_danger = mountains_medium_danger_reduction
hills_travel_danger = hills_medium_danger_reduction
}
cost = {
prestige = {
add = {
value = tradition_base_cost
multiply = 4
desc = BASE
format = "BASE_VALUE_FORMAT"
}
if = {
limit = {
has_cultural_pillar = heritage_mongolic
}
multiply = {
value = 0.5
desc = heritage_mongolic_name
}
}
if = {
limit = {
culture_tradition_reduction_trigger = { TRADITION = tradition_mpo_wolves_of_the_deep_steppe }
}
multiply = {
value = 0.5
desc = inspired_by_culture_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_devoted_horsemanship = {
category = regional
layers = {
0 = martial
1 = steppe
4 = horses.dds
}
is_shown = {
OR = {
has_cultural_pillar = heritage_mongolic
has_cultural_pillar = heritage_turkic
has_cultural_pillar = heritage_magyar
scope:character = {
mpo_can_recruit_nomad_maa_trigger = yes
}
}
}
can_pick = {
OR = {
has_cultural_pillar = heritage_mongolic
has_cultural_pillar = heritage_turkic
has_cultural_pillar = heritage_magyar
scope:character = {
mpo_can_recruit_nomad_maa_trigger = yes
}
scope:character = {
has_trait = nomadic_philosophy
}
}
}
parameters = {
unlock_maa_horse_archers = yes
can_recruit_open_specialist = yes
unlock_horse_pastures_building = yes
unlock_voluntary_laampdom = yes
stewardship_traits_give_out_cav_bonus = yes
unlock_maa_tarkhan = yes
}
character_modifier = {
movement_speed = 0.1
character_travel_speed_mult = 0.2
movement_speed_land_raiding = 0.2
}
cost = {
prestige = {
add = {
value = tradition_base_cost
multiply = 2
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
}
}
if = {
limit = {
culture_tradition_reduction_trigger = { TRADITION = tradition_devoted_horsemanship }
}
multiply = {
value = 0.5
desc = inspired_by_culture_desc
}
}
multiply = tradition_replacement_cost_if_relevant
}
}
ai_will_do = {
value = 400
}
}
tradition_mpo_northern_tribes = {
category = regional
layers = {
0 = steward
1 = steppe
4 = northern_tribes.dds
}
can_pick_for_hybridization = {
custom_tooltip = {
text = cannot_hybridize_northern_tribes
always = no
}
}
is_shown = {
has_mpo_dlc_trigger = yes
any_culture_county = {
OR = {
has_county_modifier = mpo_siberian_permafrost_modifier
has_county_modifier = mpo_siberian_permafrost_modifier_bad
}
}
}
can_pick = {
any_culture_county = {
percent >= 0.2
has_county_modifier = mpo_siberian_permafrost_modifier_bad
}
}
parameters = {
unlock_maa_maturkan_warriors = yes
permafrost_modifier_mechanic = yes
permafrost_modifier_removal_condition = yes
permafrost_unlock_tribal_building = yes
permafrost_cannot_become_feudal = yes
}
character_modifier = {
taiga_advantage = 4
winter_advantage = 4
taiga_travel_danger = taiga_medium_danger_reduction
hills_travel_danger = hills_medium_danger_reduction
taiga_construction_gold_cost = -0.2
forest_construction_gold_cost = -0.2
}
cost = {
prestige = {
add = {
value = tradition_base_cost
multiply = 2
desc = BASE
format = "BASE_VALUE_FORMAT"
}
if = {
limit = {
culture_tradition_reduction_trigger = { TRADITION = tradition_mpo_northern_tribes }
}
multiply = {
value = 0.5
desc = inspired_by_culture_desc
}
}
if = {
limit = {
NOT = {
any_culture_county = {
percent >= 0.5
OR = {
has_county_modifier = mpo_siberian_permafrost_modifier
has_county_modifier = mpo_siberian_permafrost_modifier_bad
}
}
}
}
add = {
value = tradition_unfulfilled_criteria_penalty
desc = mpo_northern_tribes_percentage_desc
}
}
multiply = tradition_replacement_cost_if_relevant
}
}
ai_will_do = {
value = 0 #ai either has it on game start or should not pursue it
}
}

File diff suppressed because it is too large Load diff