From 133da7b43adaebcaa434732342db038e67b0c3d4 Mon Sep 17 00:00:00 2001 From: Fishedotjpg Date: Thu, 19 Feb 2026 21:30:46 +0000 Subject: [PATCH] Create 07_ep3_values.txt --- common/script_values/07_ep3_values.txt | 6703 ++++++++++++++++++++++++ 1 file changed, 6703 insertions(+) create mode 100644 common/script_values/07_ep3_values.txt diff --git a/common/script_values/07_ep3_values.txt b/common/script_values/07_ep3_values.txt new file mode 100644 index 00000000..3e113426 --- /dev/null +++ b/common/script_values/07_ep3_values.txt @@ -0,0 +1,6703 @@ +# INFLUENCE + +#Note! These are base values, use loss/gain below +miniscule_influence_value = 10 +minor_influence_value = 30 +medium_influence_value = 60 +major_influence_value = 100 +massive_influence_value = 150 +monumental_influence_value = 250 + + +miniscule_influence_loss = { + value = 0 + subtract = miniscule_influence_value +} +minor_influence_loss = { + value = 0 + subtract = minor_influence_value +} +medium_influence_loss = { + value = 0 + subtract = medium_influence_value +} +major_influence_loss = { + value = 0 + subtract = major_influence_value +} +massive_influence_loss = { + value = 0 + subtract = massive_influence_value +} +monumental_influence_loss = { + value = 0 + subtract = monumental_influence_value +} + +miniscule_influence_gain = miniscule_influence_value +minor_influence_gain = minor_influence_value +medium_influence_gain = medium_influence_value +major_influence_gain = major_influence_value +massive_influence_gain = massive_influence_value +monumental_influence_gain = monumental_influence_value + +#Influence Levels +low_negative_influence_level = -1 +low_influence_level = 1 +medium_influence_level = 2 +high_influence_level = 3 +very_high_influence_level = 4 +max_influence_level = 5 + +max_dynasty_influence_level = 10 +high_dynasty_influence_level = 7 +medium_dynasty_influence_level = 4 +low_dynasty_influence_level = 2 +min_dynasty_influence_level = 0 + + +influence_modifier_scaling_value = { + value = influence_level + min = 1 + desc = MODIFIER_DEFINITION_MAIN_DESC_INFLUENCE_LEVEL +} + +### Estate building cost values +# Base costs +estate_external_building_normal_base_cost_value = { + if = { + limit = { + government_has_flag = government_is_celestial + } + value = 50 + } + else = { + value = 100 + } +} +estate_external_building_high_base_cost_value = { + if = { + limit = { + government_has_flag = government_is_celestial + } + value = 75 + } + else = { + value = 150 + } +} +estate_internal_building_normal_base_cost_value = { + if = { + limit = { + government_has_flag = government_is_celestial + } + value = 25 + } + else = { + value = 50 + } +} +estate_internal_building_high_base_cost_value = { + if = { + limit = { + government_has_flag = government_is_celestial + } + value = 40 + } + else = { + value = 75 + } +} + +# External building costs - normal +estate_external_building_normal_cost_tier_1_value = { + value = estate_external_building_normal_base_cost_value + multiply = estate_location_cost_modifier_value +} +estate_external_building_normal_cost_tier_2_value = { + value = { + value = estate_external_building_normal_base_cost_value + multiply = 2 + } + multiply = estate_location_cost_modifier_value +} +estate_external_building_normal_cost_tier_3_value = { + value = { + value = estate_external_building_normal_base_cost_value + multiply = 3 + } + multiply = estate_location_cost_modifier_value +} +estate_external_building_normal_cost_tier_4_value = { + value = { + value = estate_external_building_normal_base_cost_value + multiply = 4 + } + multiply = estate_location_cost_modifier_value +} +estate_external_building_normal_cost_tier_5_value = { + value = { + value = estate_external_building_normal_base_cost_value + multiply = 5 + } + multiply = estate_location_cost_modifier_value +} +estate_external_building_normal_cost_tier_6_value = { + value = { + value = estate_external_building_normal_base_cost_value + multiply = 6 + } + multiply = estate_location_cost_modifier_value +} + +# External building costs - high +estate_external_building_high_cost_tier_1_value = { + value = estate_external_building_high_base_cost_value + multiply = estate_location_cost_modifier_value +} +estate_external_building_high_cost_tier_2_value = { + value = { + value = estate_external_building_high_base_cost_value + multiply = 2 + } + multiply = estate_location_cost_modifier_value +} +estate_external_building_high_cost_tier_3_value = { + value = { + value = estate_external_building_high_base_cost_value + multiply = 3 + } + multiply = estate_location_cost_modifier_value +} +estate_external_building_high_cost_tier_4_value = { + value = { + value = estate_external_building_high_base_cost_value + multiply = 4 + } + multiply = estate_location_cost_modifier_value +} +estate_external_building_high_cost_tier_5_value = { + value = { + value = estate_external_building_high_base_cost_value + multiply = 5 + } + multiply = estate_location_cost_modifier_value +} +estate_external_building_high_cost_tier_6_value = { + value = { + value = estate_external_building_high_base_cost_value + multiply = 6 + } + multiply = estate_location_cost_modifier_value +} + +# Internal building costs - normal +estate_internal_building_normal_cost_tier_1_value = { + value = estate_internal_building_normal_base_cost_value + multiply = estate_location_cost_modifier_value +} +estate_internal_building_normal_cost_tier_2_value = { + value = { + value = estate_internal_building_normal_base_cost_value + multiply = 2 + } + multiply = estate_location_cost_modifier_value +} +estate_internal_building_normal_cost_tier_3_value = { + value = { + value = estate_internal_building_normal_base_cost_value + multiply = 3 + } + multiply = estate_location_cost_modifier_value +} +estate_internal_building_normal_cost_tier_4_value = { + value = { + value = estate_internal_building_normal_base_cost_value + multiply = 4 + } + multiply = estate_location_cost_modifier_value +} +estate_internal_building_normal_cost_tier_5_value = { + value = { + value = estate_internal_building_normal_base_cost_value + multiply = 5 + } + multiply = estate_location_cost_modifier_value +} +estate_internal_building_normal_cost_tier_6_value = { + value = { + value = estate_internal_building_normal_base_cost_value + multiply = 6 + } + multiply = estate_location_cost_modifier_value +} + +# Internal building costs - high +estate_internal_building_high_cost_tier_1_value = { + value = estate_internal_building_high_base_cost_value + multiply = estate_location_cost_modifier_value +} +estate_internal_building_high_cost_tier_2_value = { + value = { + value = estate_internal_building_high_base_cost_value + multiply = 2 + } + multiply = estate_location_cost_modifier_value +} +estate_internal_building_high_cost_tier_3_value = { + value = { + value = estate_internal_building_high_base_cost_value + multiply = 3 + } + multiply = estate_location_cost_modifier_value +} +estate_internal_building_high_cost_tier_4_value = { + value = { + value = estate_internal_building_high_base_cost_value + multiply = 4 + } + multiply = estate_location_cost_modifier_value +} +estate_internal_building_high_cost_tier_5_value = { + value = { + value = estate_internal_building_high_base_cost_value + multiply = 5 + } + multiply = estate_location_cost_modifier_value +} +estate_internal_building_high_cost_tier_6_value = { + value = { + value = estate_internal_building_high_base_cost_value + multiply = 6 + } + multiply = estate_location_cost_modifier_value +} + +# Estate location modifier value +estate_location_cost_modifier_value = { + value = 1 + + if = { # Everything is a bit more expensive in the capital + limit = { + domicile.domicile_location = top_liege.capital_province + } + add = 0.2 + } + else_if = { # Everything is a bit cheaper in themes along the borders + limit = { + any_top_realm_border_county = { + duchy = root.domicile.domicile_location.county.duchy + } + } + add = -0.2 + } +} + +### Estate building AI values +estate_building_ai_modifier_value = { + if = { + limit = { # Some characters should want to build in their estate before they construct buildings in holdings + scope:owner = { + OR = { + has_trait = arbitrary + has_trait = gluttonous + has_trait = greedy + } + } + } + add = 10 + } + if = { # Character's loyal to the realm should very slightly favor constructing buildings in holdings first + limit = { + scope:owner = { + has_trait = loyal + OR = { + has_trait = diligent + has_trait = just + } + } + } + add = -1 # This will generally (though not guaranteed) make the AI build estate buildings one tier later than normal + } +} +# + +granary_modifier_scaling_value = { + value = 1 + if = { + limit = { + exists = root + } + domicile ?= { + if = { + limit = { + has_domicile_building_or_higher = grain_field_01 + } + if = { + limit = { has_domicile_building = grain_field_06 } + add = 6 + } + else_if = { + limit = { has_domicile_building = grain_field_05 } + add = 5 + } + else_if = { + limit = { has_domicile_building = grain_field_04 } + add = 4 + } + else_if = { + limit = { has_domicile_building = grain_field_03 } + add = 3 + } + else_if = { + limit = { has_domicile_building = grain_field_02 } + add = 2 + } + else = { + add = 1 + } + } + if = { + limit = { + has_domicile_building_or_higher = east_asian_estate_rice_field_01 + } + if = { + limit = { has_domicile_building = east_asian_estate_rice_field_06 } + add = 6 + } + else_if = { + limit = { has_domicile_building = east_asian_estate_rice_field_05 } + add = 5 + } + else_if = { + limit = { has_domicile_building = east_asian_estate_rice_field_04 } + add = 4 + } + else_if = { + limit = { has_domicile_building = east_asian_estate_rice_field_03 } + add = 3 + } + else_if = { + limit = { has_domicile_building = east_asian_estate_rice_field_02 } + add = 2 + } + else = { + add = 1 + } + } + if = { + limit = { + domicile_location = { + this = root.top_liege.capital_province + } + } + add = 2 + } + if = { + limit = { + domicile_location = { + OR = { + terrain = farmlands + terrain = floodplains + terrain = terraced_hills + } + } + } + add = 5 + } + if = { + limit = { + domicile_location.county = { + county_control < 100 + } + } + add = { + value = 100 + subtract = domicile.domicile_location.county.county_control + multiply = 0.1 + round = yes + min = 1 + } + } + if = { + limit = { + domicile_location.county = { + development_level >= estate_granary_development_bonus_2_value + } + } + multiply = 3 + } + else_if = { + limit = { + domicile_location.county = { + development_level >= estate_granary_development_bonus_1_value + } + } + multiply = 2 + } + if = { + limit = { + domicile_location = { + any_province_epidemic = { } + } + } + multiply = 2 + } + } + } + desc = MODIFIER_DEFINITION_ESTATE_SCALING_DESC +} +estate_granary_development_bonus_1_value = 30 +estate_granary_development_bonus_2_value = 60 + +estate_construction_influence_gain_value = { + value = 20 + + # Bonus from governing with Civilian Administration + if = { + limit = { vassal_contract_has_flag = admin_influence_construction_bonus } + add = 20 + } + + # Increase from Estate Building + if = { + limit = { + domicile ?= { has_domicile_parameter = estate_increase_influence_on_building_construction_5 } + } + multiply = { + value = 1 + add = estate_construction_influence_bonus_5_value + } + } + else_if = { + limit = { + domicile ?= { has_domicile_parameter = estate_increase_influence_on_building_construction_4 } + } + multiply = { + value = 1 + add = estate_construction_influence_bonus_4_value + } + } + else_if = { + limit = { + domicile ?= { has_domicile_parameter = estate_increase_influence_on_building_construction_3 } + } + multiply = { + value = 1 + add = estate_construction_influence_bonus_3_value + } + } + else_if = { + limit = { + domicile ?= { has_domicile_parameter = estate_increase_influence_on_building_construction_2 } + } + multiply = { + value = 1 + add = estate_construction_influence_bonus_2_value + } + } + else_if = { + limit = { + domicile ?= { has_domicile_parameter = estate_increase_influence_on_building_construction_1 } + } + multiply = { + value = 1 + add = estate_construction_influence_bonus_1_value + } + } +} +estate_construction_influence_bonus_1_value = 0.2 +estate_construction_influence_bonus_2_value = 0.4 +estate_construction_influence_bonus_3_value = 0.6 +estate_construction_influence_bonus_4_value = 0.8 +estate_construction_influence_bonus_5_value = 1 + +influence_inherit_large_bonus_value = 0.3 +influence_inherit_medium_bonus_value = 0.2 +influence_inherit_small_bonus_value = 0.1 + +appointment_score_script_value = { + value = "appointment_candidate_score(root.primary_title)" + min = 1 + desc = APPOINTMENT_SCORE_SCRIPT_VALUE_DESC +} + +# The cost for taking command of other theme troops - ROOT is the title the requested troops belong to +admin_title_troop_command_cost_value = { + save_temporary_scope_as = recipient_title + + # Base cost - Set in 00_defines.txt + value = { + value = define:NAdministrative|BASE_REASSIGN_COST + format = "BASE_VALUE_FORMAT" + desc = "BASE_VALUE" + } + + if = { # Increase cost based on the total number of regiments - The first three regiments are not accounted for, we consider them a part of the base cost + limit = { + scope:recipient_title = { + OR = { + any_owned_title_maa_regiment = { + count > 3 + } + any_owned_title_maa_regiment = { + maa_size > 3 + } + AND = { + any_owned_title_maa_regiment = { + count > 2 + } + any_owned_title_maa_regiment = { + maa_size > 1 + } + } + AND = { + any_owned_title_maa_regiment = { + count > 1 + } + any_owned_title_maa_regiment = { + maa_size > 2 + } + } + } + } + } + add = { + value = define:NAdministrative|BASE_REASSIGN_COST + multiply = { + value = { + scope:recipient_title = { + every_title_maa_regiment = { + add = maa_size + } + } + subtract = 3 + divide = 20 + } + } + desc = ADMIN_TITLE_TROOP_COST_ARMY_SIZE_DESC + } + } + + # You are fighting a defensive war + if = { + limit = { + scope:actor = { + any_character_war = { + is_war_leader = scope:actor + is_defender = scope:actor + } + } + } + subtract = { + value = define:NAdministrative|BASE_REASSIGN_COST + multiply = 0.25 + desc = ADMIN_TITLE_TROOP_COST_DEFENDER_DESC + } + } + # You are fighting an offensive war, and the troop owner is far away + else_if = { + limit = { + scope:recipient_title.holder = { top_liege != this } + scope:actor = { + any_war_enemy = { + realm_to_title_distance_squared = { + target = scope:recipient_title + value > 100000 + } + } + } + } + add = { + value = define:NAdministrative|BASE_REASSIGN_COST + multiply = 0.25 + desc = ADMIN_TITLE_TROOP_COST_ATTACKER_DESC + } + } + + # The Troop owner is inside the war goal + if = { + limit = { + holder = { + target_is_liege_or_above = scope:actor + OR = { + any_held_title = { is_contested = yes } + any_vassal = { + any_held_title = { is_contested = yes } + } + } + } + } + subtract = { + value = define:NAdministrative|BASE_REASSIGN_COST + multiply = 0.25 + desc = ADMIN_TITLE_TROOP_COST_OWNER_IN_WAR_GOAL_DESC + } + } + + # If you are independent - The cost is reduced with your laws + # Imperial Bureaucracy for admin, and Army Command Structure for celestial + if = { # Admin + limit = { + scope:actor = { + top_liege = this + realm_law_use_imperial_bureaucracy = yes + } + } + if = { + limit = { + scope:actor = { + has_realm_law_flag = admin_title_troop_cost_reduction_high + } + } + subtract = { + value = define:NAdministrative|BASE_REASSIGN_COST + multiply = admin_law_cost_reduction_high_value + desc = ADMIN_TITLE_TROOP_COST_LAW_2_DESC + } + } + else_if = { + limit = { + scope:actor = { + has_realm_law_flag = admin_title_troop_cost_reduction + } + } + subtract = { + value = define:NAdministrative|BASE_REASSIGN_COST + multiply = admin_law_cost_reduction_value + desc = ADMIN_TITLE_TROOP_COST_LAW_1_DESC + } + } + } + else_if = { # Celestial + limit = { + scope:actor = { + top_liege = this + realm_law_use_celestial_bureaucracy = yes + } + } + if = { + limit = { + scope:actor = { + has_realm_law_flag = admin_title_troop_cost_reduction_very_high + } + } + subtract = { + value = define:NAdministrative|BASE_REASSIGN_COST + multiply = admin_law_cost_reduction_very_high_value + desc = ADMIN_TITLE_TROOP_COST_LAW_3_CELESTIAL_DESC + } + } + else_if = { + limit = { + scope:actor = { + has_realm_law_flag = admin_title_troop_cost_reduction_high + } + } + subtract = { + value = define:NAdministrative|BASE_REASSIGN_COST + multiply = admin_law_cost_reduction_high_value + desc = ADMIN_TITLE_TROOP_COST_LAW_2_CELESTIAL_DESC + } + } + else_if = { + limit = { + scope:actor = { + has_realm_law_flag = admin_title_troop_cost_reduction + } + } + subtract = { + value = define:NAdministrative|BASE_REASSIGN_COST + multiply = admin_law_cost_reduction_value + desc = ADMIN_TITLE_TROOP_COST_LAW_1_CELESTIAL_DESC + } + } + } + + # In Meritocratic governments, we prefer to not let the AI borrow from players, since they can be + # called in via 'request_military_aid_interaction' / 'send_military_aid_interaction' + if = { + limit = { + scope:actor = { + government_has_flag = government_has_merit + is_ai = yes + } + scope:recipient_title = { + holder = { + is_ai = no + } + } + } + multiply = 100000 + } +} +admin_law_cost_reduction_value = 0.25 +admin_law_cost_reduction_high_value = 0.5 +admin_law_cost_reduction_very_high_value = 0.75 + +admin_troops_reclaim_cost_cooldown_value = 5 + +# Some control values that we reference in loc. +diarch_more_efficient_administrative_emperor_promotion_candidate_massive_value = 1.5 +diarch_more_efficient_administrative_emperor_promotion_candidate_major_value = 1 +diarch_more_efficient_administrative_emperor_promotion_candidate_medium_value = 0.75 +diarch_more_efficient_administrative_emperor_promotion_candidate_mild_value = 0.5 + +# For use when promoting a candidate via interaction. +appointment_score_interaction_multiplier_modifiers_value = { + value = 1 + # Co-emperors are more efficient to promote. + if = { + limit = { + exists = scope:target + exists = scope:secondary_recipient + appointment_interactions_recipient_is_suitable_co_emperor_trigger = yes + } + if = { + limit = { + scope:actor.top_liege = { has_diarchy_active_parameter = diarch_more_efficient_administrative_emperor_promotion_candidate_massive } + } + add = diarch_more_efficient_administrative_emperor_promotion_candidate_massive_value + } + else_if = { + limit = { + scope:actor.top_liege = { has_diarchy_active_parameter = diarch_more_efficient_administrative_emperor_promotion_candidate_major } + } + add = diarch_more_efficient_administrative_emperor_promotion_candidate_major_value + } + else_if = { + limit = { + scope:actor.top_liege = { has_diarchy_active_parameter = diarch_more_efficient_administrative_emperor_promotion_candidate_medium } + } + add = diarch_more_efficient_administrative_emperor_promotion_candidate_medium_value + } + else_if = { + limit = { + scope:actor.top_liege = { has_diarchy_active_parameter = diarch_more_efficient_administrative_emperor_promotion_candidate_mild } + } + add = diarch_more_efficient_administrative_emperor_promotion_candidate_mild_value + } + } +} + +# Eparch values +eparch_aptitude_modifier_scaling_value = { + value = 1 + if = { + limit = { exists = root } + add = root.aptitude:eparch_court_position + } + desc = MODIFIER_DEFINITION_MAIN_DESC_EPARCH_APTITUDE +} +university_cost_reduction_value = 0.25 +eparch_scheme_secrecy_bonus_value = { + if = { + limit = { + scope:owner ?= { has_court_position = eparch_court_position } + scope:target = { + domicile ?= { domicile_location = owner.top_liege.capital_province } + } + } + add = { + value = 15 + desc = eparch_scheme_bonus_desc + } + } +} + +# State Faith +ep3_state_faith_conversion_mult_value = 2 + +# Hold Triumph Decision +ep3_triumph_gold_cost = { + value = 100 + if = { + limit = { + NOT = { government_allows = administrative } + } + add = 100 + if = { + limit = { + NOT = { + has_variable = ep3_valid_triumph_victory + } + } + add = 200 + } + } +} + +ep3_triumph_influence_cost = { + value = 0 + if = { + limit = { + government_allows = administrative + } + add = 50 + if = { + limit = { + NOT = { + has_variable = ep3_valid_triumph_victory + } + } + add = 200 + } + } +} + +# Laamp + +ep3_laamp_chance_score_value = { + value = 0 + add = { value = sum_of_all_skills_and_prowess_value divide = 4 } + add = { value = piety_level multiply = 2 } # Devotion + add = { value = prestige_level multiply = 2 } # Fame + # Age + if = { + limit = { age < 25 } + add = 3 + } + # Personality + if = { + limit = { has_trait = ambitious } + add = 3 + } + if = { + limit = { has_trait = brave } + add = 3 + } + if = { + limit = { has_trait = arrogant } + add = 3 + } + if = { + limit = { has_trait = stubborn } + add = 3 + } + # Genetics + if = { + limit = { has_trait = beauty_good } + add = 3 + } + if = { + limit = { has_trait = intellect_good } + add = 3 + } + if = { + limit = { has_trait = physique_good } + add = 3 + } + # Fame/Lifestyle/Commander + every_character_trait = { + limit = { + OR = { + has_trait_category = fame + has_trait_category = lifestyle + has_trait_category = commander + } + } + add = 3 + } + # Education + if = { + limit = { has_trait = education_martial } + add = 5 + } + if = { + limit = { has_trait = education_martial_prowess } + add = 5 + } + # Bastardry + if = { + limit = { has_trait = bastard } + add = 5 + } + if = { + limit = { has_trait = legitimized_bastard } + add = 3 + } + if = { + limit = { has_trait = wild_oat } + add = 3 + } + if = { + limit = { has_trait = child_of_concubine } + add = 3 + } + # Cosmetics + if = { + limit = { has_trait = scarred } + add = 3 + } + if = { + limit = { has_trait = one_eyed } + add = 3 + } + if = { + limit = { has_trait = disfigured } + add = 3 + } + # Culture/Faith + if = { + limit = { + faith = { has_doctrine_parameter = unlock_voluntary_laampdom_faith } + } + add = 5 + } + if = { + limit = { + culture = { has_cultural_parameter = unlock_voluntary_laampdom } + } + add = 5 + } + if = { + limit = { + has_trait = nomadic_philosophy + } + add = 5 + } + if = { + limit = { + culture = { has_cultural_parameter = much_more_likely_to_be_laamps } + } + add = 50 + } + if = { + limit = { + culture = { has_cultural_parameter = more_likely_to_be_laamps } + } + add = 25 + } + # Too much to lose + every_heir_title = { + add = { + value = 0 + subtract = tier + } + } + every_held_title = { + add = { + value = tier + multiply = -2 + } + } + # Stop streaks + every_held_title = { + limit = { + previous_holder ?= { + is_alive = yes + government_has_flag = government_is_landless_adventurer + } + } + add = -75 + } + # Encourage potential legitimists and such to go wandering. + if = { + limit = { realm_size <= 0 } + every_claim = { + limit = { tier >= tier_kingdom } + add = 30 + } + } +} + +request_laamp_invasion_sponsorship_gold_cost = { + value = 300 + if = { + limit = { scope:recipient.highest_held_title_tier >= tier_empire } + add = 200 + } +} + +## Referenced in code +ep3_hire_laamp_mercs_cost_value = { + value = scope:recipient.current_military_strength + divide = 10 + min = scope:actor.minor_gold_value + multiply = { + value = { + scope:actor = { + every_character_war = { + limit = { + is_war_leader = scope:actor + } + add = 1 + } + } + min = 1 + } + } + if = { + limit = { + scope:recipient.domicile = { has_domicile_parameter = camp_improved_mercenary_contract_rewards } + } + multiply = camp_improved_mercenary_contract_rewards_value + } + if = { + limit = { + scope:recipient = { has_perk = hard_rule_perk } + } + multiply = adventurer_hard_rule_contract_rewards_value + } +} + +ep3_hire_laamp_mercs_payment_value = { + value = scope:war_contribution_value + divide = 10 + min = scope:employer.medium_gold_value + if = { + limit = { + scope:laamp_temp.domicile ?= { has_domicile_parameter = camp_improved_mercenary_contract_rewards } + } + multiply = camp_improved_mercenary_contract_rewards_value + } + if = { + limit = { + exists = scope:war_valuable_prisoners + } + add = { + value = scope:war_valuable_prisoners + multiply = 20 + } + } + if = { + limit = { + scope:laamp_temp ?= { has_perk = hard_rule_perk } + } + multiply = adventurer_hard_rule_contract_rewards_value + } + max = { + value = scope:employer.yearly_character_income + if = { + limit = { + scope:employer.gold > 0 + } + add = scope:employer.gold + } + } +} + +ep3_laamp_flavour_ewan_4041_regiment_damage_wildfires_min = 20 +ep3_laamp_flavour_ewan_4041_regiment_damage_wildfires_max = 50 + +ep3_laamp_flavour_ewan_4041_regiment_damage_avalanches_min = 30 +ep3_laamp_flavour_ewan_4041_regiment_damage_avalanches_max = 60 + +ep3_laamp_flavour_ewan_4041_regiment_damage_flash_floods_min = 20 +ep3_laamp_flavour_ewan_4041_regiment_damage_flash_floods_max = 40 + +ep3_laamp_flavour_ewan_4041_regiment_damage_frozen_water_min = 15 +ep3_laamp_flavour_ewan_4041_regiment_damage_frozen_water_max = 30 + +ep3_laamp_flavour_ewan_4041_regiment_damage_earthquake_min = 50 +ep3_laamp_flavour_ewan_4041_regiment_damage_earthquake_max = 80 + +chariot_race_entrance_fee = { + value = 50 +} + +chariot_race_base_cost_value = { + value = 200 +} + +chariot_ordering_value = { + value = 0 + add = aptitude:charioteer_court_position + round = yes +} + +charioteer_chance_to_win = { + value = 1 + add = prowess + add = aptitude:charioteer_court_position + round = yes +} + +charioteer_chance_to_place = { + value = 1 + add = prowess + add = aptitude:charioteer_court_position + round = yes +} + +charioteer_chance_to_show = { + value = 1 + add = prowess + add = aptitude:charioteer_court_position + round = yes +} + +charioteer_victory_score_value = { + value = 0 + if = { + limit = { is_alive = yes} + if = { + limit = { has_variable = chariot_race_victory_score } + add = var:chariot_race_victory_score + } + } +} + +charioteer_passive_phase_gui_sort_value = { + value = 1 + if = { + limit = { is_alive = yes } + add = this.aptitude:charioteer_court_position + } +} + +charioteer_placement_middle = { + value = 0 + add = { + value = involved_activity.var:num_charioteers + divide = 2 + } +} + +following_charioteer_index = { + value = var:current_place_in_race + add = 1 + max = 12 +} + +ahead_charioteer_index = { + value = var:current_place_in_race + subtract = 1 + min = 1 +} + +2_ahead_charioteer_index = { + value = var:current_place_in_race + subtract = 2 + min = 1 +} + +bookkeeper_small_commission_value = { + value = 0.2 + if = { + limit = { + scope:host.court_position:bookmaker_court_position ?= { + has_character_flag = bookmaker_cooking_the_books + } + } + multiply = 3 + } +} + +bookkeeper_medium_commission_value = { + value = 0.3 + if = { + limit = { + scope:host.court_position:bookmaker_court_position ?= { + has_character_flag = bookmaker_cooking_the_books + } + } + multiply = 3 + } +} + +bookkeeper_large_commission_value = { + value = 0.4 + if = { + limit = { + scope:host.court_position:bookmaker_court_position ?= { + has_character_flag = bookmaker_cooking_the_books + } + } + multiply = 3 + } +} + +# Distance value used instead of diplo range for LAAMP interactions range +ep3_laamp_interaction_max_range = 450000 #from Byzantion to west and east edges of ERE in 1066 + +purchase_land_county_cost_value = 400 +purchase_land_duchy_cost_value = 1000 + +ep3_laamp_invasion_levies_size_value = { + value = 0 + add = scope:supporter.max_military_strength + divide = 10 + max = { + # Standard base max. + value = varangian_adventurers_standard_levy_cap_value + } +} + +ep3_laamp_invasion_ai_targeting_value = { + value = 100 + scope:attacker = { + # Weight up claims. + if = { + limit = { + scope:attacker = { + any_claim = { + OR = { + holder = scope:defender + holder.top_liege = scope:defender + } + } + } + } + add = 100 + } + # Weight up those who are already overwhelmed. + if = { + limit = { + scope:defender = { gold < 0 } + } + add = 100 + } + # Weight up those who are already overwhelmed. + if = { + limit = { + scope:defender = { is_at_war = yes } + } + add = 100 + } + # Weight up independent dukes. + if = { + limit = { + scope:defender = { highest_held_title_tier = tier_duchy } + } + add = 100 + } + # Weight up independent kings. + if = { + limit = { + scope:defender = { highest_held_title_tier = tier_kingdom } + } + add = 50 + } + # Weight up for coastal counties. + every_in_list = { + list = target_titles + limit = { + tier = tier_county + is_coastal_county = yes + } + add = 50 + } + # Weight down independent religious heads. + if = { + limit = { scope:defender = scope:defender.faith.religious_head } + add = -1000 + } + # Weight down independent counts. + if = { + limit = { + scope:defender = { highest_held_title_tier = tier_county } + } + add = -200 + } + # Weight down small players. + if = { + limit = { + scope:defender = { + is_ai = no + realm_size <= minor_realm_size + } + } + add = -1000 + } + } +} + +ep3_laamp_invasion_cb_cost = { + add = { + if = { + limit = { + any_in_list = { + list = target_titles + tier >= tier_empire + } + } + add = 10000 + } + else_if = { + limit = { + any_in_list = { + list = target_titles + tier >= tier_kingdom + } + } + add = 5000 + } + else_if = { + limit = { + any_in_list = { + list = target_titles + tier >= tier_duchy + } + } + add = 2000 + } + else = { add = 500 } + desc = "CB_BASE_COST" + } + + # Reduce the cost to make this more feasible for the AI. + scope:attacker = { + if = { + limit = { is_ai = yes } + multiply = 0.1 + } + } + + #Halve cost if Lust for Land modifier + if = { + limit = { + scope:attacker = { + has_character_modifier = ep3_lust_for_land_modifier + } + } + divide = { + value = 2 + desc = "lust_for_land_modifier_tt" + } + } +} + +ep3_laamp_invasion_base_piety_cost = { + add = common_cb_impious_piety_cost + if = { + limit = { + scope:defender.faith = scope:attacker.faith + } + add = { + value = major_piety_value + desc = CB_SAME_FAITH_COST + } + } +} + +# Governor efficiency used in code +# root - charater that is evaluated for the governorship +# End result should be a multiplier, but we add larger values to present it better in the breakdown. E.g. we add 10, but divide it with 100 to make it 0.1. +governor_efficiency = { + value = { + # Everyone will calculate their Efficiency according to the following: + # Skills + add = { + add = { + desc = diplomacy_concept + add = { + value = diplomacy + multiply = 1.7 + } + round = yes + } + add = { + desc = martial_concept + add = { + value = martial + multiply = 1.7 + } + round = yes + } + add = { + desc = stewardship_concept + add = { + value = stewardship + multiply = 1.7 + } + round = yes + } + add = { + desc = intrigue_concept + add = { + value = intrigue + multiply = 1.7 + } + round = yes + } + add = { + desc = learning_concept + add = { + value = learning + multiply = 1.7 + } + round = yes + } + divide = 100 + } + if = { + limit = { + realm_size >= 65 + realm_size < 75 + } + add = { + add = { + value = -5 + desc = game_concept_realm_size + } + divide = 100 + } + } + else_if = { + limit = { + realm_size >= 75 + realm_size < 85 + } + add = { + add = { + value = -10 + desc = game_concept_realm_size + } + divide = 100 + } + } + else_if = { + limit = { + realm_size >= 85 + realm_size < 95 + } + add = { + add = { + value = -15 + desc = game_concept_realm_size + } + divide = 100 + } + } + else_if = { + limit = { + realm_size >= 95 + realm_size < 105 + } + add = { + add = { + value = -20 + desc = game_concept_realm_size + } + divide = 100 + } + } + else_if = { + limit = { + realm_size >= 105 + realm_size < 115 + } + add = { + add = { + value = -25 + desc = game_concept_realm_size + } + divide = 100 + } + } + else_if = { + limit = { + realm_size >= 115 + realm_size < 125 + } + add = { + add = { + value = -30 + desc = game_concept_realm_size + } + divide = 100 + } + } + else_if = { + limit = { + realm_size >= 125 + realm_size < 135 + } + add = { + add = { + value = -35 + desc = game_concept_realm_size + } + divide = 100 + } + } + else_if = { + limit = { + realm_size >= 135 + realm_size < 145 + } + add = { + add = { + value = -40 + desc = game_concept_realm_size + } + divide = 100 + } + } + else_if = { + limit = { + realm_size >= 145 + realm_size < 155 + } + add = { + add = { + value = -45 + desc = game_concept_realm_size + } + divide = 100 + } + } + else_if = { + limit = { + realm_size >= 155 + realm_size < 165 + } + add = { + add = { + value = -50 + desc = game_concept_realm_size + } + divide = 100 + } + } + else_if = { + limit = { + realm_size >= 175 + realm_size < 185 + } + add = { + add = { + value = -55 + desc = game_concept_realm_size + } + divide = 100 + } + } + else_if = { + limit = { + realm_size >= 185 + realm_size < 195 + } + add = { + add = { + value = -60 + desc = game_concept_realm_size + } + divide = 100 + } + } + else_if = { + limit = { + realm_size >= 195 + realm_size < 205 + } + add = { + add = { + value = -65 + desc = game_concept_realm_size + } + divide = 100 + } + } + else_if = { + limit = { + realm_size >= 205 + realm_size < 215 + } + add = { + add = { + value = -70 + desc = game_concept_realm_size + } + divide = 100 + } + } + else_if = { + limit = { + realm_size >= 215 + realm_size < 225 + } + add = { + add = { + value = -75 + desc = game_concept_realm_size + } + divide = 100 + } + } + else_if = { + limit = { + realm_size >= 225 + realm_size < 235 + } + add = { + add = { + value = -80 + desc = game_concept_realm_size + } + divide = 100 + } + } + else_if = { + limit = { + realm_size >= 235 + realm_size < 245 + } + add = { + add = { + value = -85 + desc = game_concept_realm_size + } + divide = 100 + } + } + else_if = { + limit = { + realm_size >= 245 + realm_size < 255 + } + add = { + add = { + value = -90 + desc = game_concept_realm_size + } + divide = 100 + } + } + else_if = { + limit = { + realm_size >= 255 + realm_size < 265 + } + add = { + add = { + value = -95 + desc = game_concept_realm_size + } + divide = 100 + } + } + else_if = { + limit = { + realm_size >= 265 + realm_size < 275 + } + add = { + add = { + value = -100 + desc = game_concept_realm_size + } + divide = 100 + } + } + else_if = { + limit = { + realm_size >= 275 + realm_size < 285 + } + add = { + add = { + value = -105 + desc = game_concept_realm_size + } + divide = 100 + } + } + else_if = { + limit = { + realm_size >= 285 + realm_size < 295 + } + add = { + add = { + value = -110 + desc = game_concept_realm_size + } + divide = 100 + } + } + else_if = { + limit = { + realm_size >= 300 + } + add = { + add = { + value = -115 + desc = game_concept_realm_size + } + divide = 100 + } + } + else = { + } + # Rank 4 or 5 education trait + if = { + limit = { + has_trait_with_flag = level_5_education + } + add = { + add = { + value = 4 + desc = has_rank_5_education_desc + } + divide = 100 + } + } + else_if = { + limit = { + has_trait_with_flag = level_4_education + } + add = { + add = { + value = 2 + desc = has_rank_4_education_desc + } + divide = 100 + } + } + + # Governor trait + if = { # You only get a small bonus since the trait also provides skills that will increase Efficiency further + limit = { + has_trait = governor + has_trait_xp = { + trait = governor + value >= 25 + } + } + add = { + add = { + value = 0 + if = { + limit = { + has_trait_xp = { + trait = governor + value >= 100 + } + } + add = 12 + } + else_if = { + limit = { + has_trait_xp = { + trait = governor + value >= 75 + } + } + add = 9 + } + else_if = { + limit = { + has_trait_xp = { + trait = governor + value >= 50 + } + } + add = 6 + } + else_if = { + limit = { + has_trait_xp = { + trait = governor + value >= 25 + } + } + add = 3 + } + desc = governor_trait_short_desc + } + divide = 100 + } + } + + # Estate + if = { + limit = { domicile ?= { has_domicile_parameter = estate_governor_efficiency_bonus } } + add = { + add = { + value = estate_governor_efficiency_bonus_value + multiply = 100 + desc = "[estate_buildings|E]" + } + divide = 100 + } + } + else_if = { + limit = { + house ?= { + house_head ?= { + domicile ?= { has_domicile_parameter = estate_governor_efficiency_bonus_for_house_members } + } + } + } + add = { + add = { + value = estate_governor_efficiency_house_bonus_value + multiply = 100 + desc = "[domicile_buildings|E]" + } + divide = 100 + } + } + + # Aspirations + if = { + limit = { # Service + house ?= { has_house_power_parameter = service_house_governor_efficiency_bonus } + } + add = { + add = { + value = service_house_governor_efficiency_bonus_value + multiply = 100 + desc = service_house_power + } + divide = 100 + } + } + if = { + limit = { # Governance + house ?= { has_house_power_parameter = governance_improved_governor_efficiency_bonus } + } + add = { + add = { + value = governance_improved_governor_efficiency_bonus_value + multiply = 100 + desc = celestial_governor_name_desc + } + divide = 100 + } + } + + # Bonuses from active Governorship Obligation/Administration + if = { + limit = { vassal_contract_has_flag = admin_martial_obligation_bonus } + add = { + add = { + value = martial + multiply = efficiency_skill_increase_value + desc = admin_martial_obligation_bonus_desc + } + divide = 100 + } + } + if = { + limit = { vassal_contract_has_flag = admin_stewardship_obligation_bonus } + add = { + add = { + value = stewardship + multiply = efficiency_skill_increase_value + desc = admin_stewardship_obligation_bonus_desc + } + divide = 100 + } + } + if = { + limit = { vassal_contract_has_flag = admin_prowess_obligation_bonus } + add = { + add = { + value = prowess + multiply = efficiency_skill_increase_value + desc = admin_prowess_obligation_bonus_desc + } + divide = 100 + } + } + if = { + limit = { vassal_contract_has_flag = admin_prestige_obligation_bonus } + add = { + add = { + value = prestige_level + multiply = efficiency_currency_level_increase_value + desc = admin_prestige_obligation_bonus_desc + } + divide = 100 + } + } + if = { + limit = { vassal_contract_has_flag = admin_tradeport_obligation_bonus } + add = { + add = { + every_sub_realm_barony = { + limit = { + title_province = { has_building_or_higher = common_tradeport_01 } + } + add = efficiency_building_increase_value + } + desc = admin_tradeport_obligation_bonus_desc + } + divide = 100 + } + } + # Celestial Obligation/Administration (we split these out to have separate loc) + if = { + limit = { vassal_contract_has_flag = celestial_province_protectorate } + add = { + add = { + value = martial + multiply = efficiency_skill_increase_value + desc = celestial_province_protectorate_name_desc + } + divide = 100 + } + } + if = { + limit = { vassal_contract_has_flag = celestial_province_metropolitan } + add = { + add = { + value = diplomacy + multiply = efficiency_skill_increase_value + desc = celestial_province_metropolitan_name_desc + } + divide = 100 + } + } + + # Dynasty Legacy Perk + if = { + limit = { + dynasty ?= { ep3_administrative_legacy_track_perks >= 1 } + } + add = { + add = { + value = 5 + desc = "[GetDynastyPerk('ep3_administrative_legacy_1').GetName]" + } + divide = 100 + } + } + + if = { + limit = { + dynasty ?= { has_dynasty_perk = tgp_chinese_legacy_3 } + } + add = { + add = { + value = 5 + desc = "[GetDynastyPerk('tgp_chinese_legacy_3').GetName]" + } + divide = 100 + } + } + + # Lifestyle Perks + # Positions of Power Stewardship Perk + if = { + limit = { has_perk = positions_of_power_perk } + add = { + add = { + value = 5 + desc = "[GetPerk('positions_of_power_perk').GetName(GetPlayer)]" + } + divide = 100 + } + } + # Strict Organization Martial Perk + if = { + limit = { has_perk = strict_organization_perk } + add = { + add = { + value = 5 + desc = "[GetPerk('strict_organization_perk').GetName(GetPlayer)]" + } + divide = 100 + } + } + + # Eparch court position + if = { + limit = { + employs_court_position = eparch_court_position + } + add = { + add = { + value = 1 + court_position:eparch_court_position ?= { + add = aptitude:eparch_court_position + } + multiply = 2 + desc = eparch_increase_efficiency_desc + } + divide = 100 + } + } + else_if = { + limit = { + top_liege ?= { + employs_court_position = eparch_court_position + } + NOT = { has_court_position = eparch_court_position } + domicile ?= { + domicile_location = { + this = county.holder.top_liege.capital_province + } + } + } + add = { + add = { + value = 1 + top_liege ?= { + court_position:eparch_court_position ?= { + add = aptitude:eparch_court_position + } + } + desc = eparch_increase_efficiency_vassal_desc + } + divide = 100 + } + } + if = { + limit = { + employs_court_position = grand_mentor_court_position + } + add = { + add = { + value = 1 + court_position:grand_mentor_court_position ?= { + add = aptitude:grand_mentor_court_position + } + multiply = 2 + desc = grand_mentor_powerfuL_family_score_desc + } + divide = 100 + } + } + if = { + limit = { + employs_court_position = grand_guardian_court_position + } + add = { + add = { + value = 1 + court_position:grand_guardian_court_position ?= { + add = aptitude:grand_guardian_court_position + } + multiply = 2 + desc = grand_guardian_powerfuL_family_score_desc + } + divide = 100 + } + } + if = { + limit = { + employs_court_position = grand_preceptor_court_position + } + add = { + add = { + value = 1 + court_position:grand_preceptor_court_position ?= { + add = aptitude:grand_preceptor_court_position + } + multiply = 2 + desc = grand_preceptor_powerfuL_family_score_desc + } + divide = 100 + } + } + + # Events + add = { + add = { + desc = gov_efficiency_events_desc + if = { #ep3_emperor_yearly.2150 + limit = { has_character_flag = ep3_2150_found_truth } + add = 10 + } + if = { #ep3_governor_yearly.3070 + limit = { + has_character_modifier = contented_governing_countrymen_modifier + exists = capital_county + culture = capital_county.culture + } + add = 10 + } + if = { #ep3_emperor_yearly.2160 + limit = { has_character_flag = ep3_2160_success } + add = 5 + } + if = { #ep3_emperor_yearly.2160 + limit = { has_character_flag = ep3_2160_failure } + add = -5 + } + if = { #ep3_governor_yearly.3100 + limit = { has_character_modifier = ep3_ignoring_realm_decline_modifier } + add = -5 + } + if = { #ep3_governor_yearly.3080 + limit = { has_character_flag = ep3_governor_ignored_isolation } + add = -5 + } + if = { #ep3_governor_yearly.3080 + limit = { has_character_modifier = ep3_anxious_for_new_assignment_modifier } + add = -5 + } + if = { #ep3_emperor_yearly.2170 + limit = { has_character_flag = ep3_2170_success } + add = 5 + } + if = { + limit = { has_character_modifier = restored_greek_theme_modifier } + add = 10 + } + if = { #ep3_emperor_yearly.2190 + limit = { has_character_flag = ep3_2190_honest } + add = 10 + } + if = { #ep3_emperor_yearly.2200 + limit = { has_character_flag = ep3_embezzling_governor } + add = -5 + } + if = { + limit = { has_character_modifier = ep3_bolstered_governor_treasury_modifier } + add = 5 + } + if = { + limit = { has_character_modifier = ep3_governor_yearly_8050_imperial_recruiter_modifier } + add = 5 + } + if = { + limit = { has_character_flag = ep3_8060_efficiency_drop } + add = -5 + } + if = { + limit = { has_character_modifier = ep3_governor_yearly_8050_imperial_resources_modifier } + add = -5 + } + if = { + limit = { has_character_modifier = ep3_governor_yearly_8120_relief_rejected_modifier } + add = -5 + } + if = { + limit = { has_character_modifier = ep3_governor_yearly_8130_raised_taxes_modifier } + add = -5 + } + if = { + limit = { has_character_modifier = ep3_governor_yearly_8130_raised_almonage_modifier } + add = 5 + } + if = { + limit = { has_character_modifier = noble_administrators_modifier } + add = 5 + } + if = { + limit = { has_character_flag = ep3_governor_yearly_3050_neglect_duties } + add = -5 + } + if = { + limit = { has_character_flag = ep3_governor_yearly_3002_landlord_fight } + add = -5 + } + if = { + limit = { has_character_flag = ep3_governor_yearly_3002_landlord_wins } + add = -10 + } + if = { + limit = { has_character_flag = ep3_governor_yearly_3002_landlord_dominates } + add = -15 + } + if = { + limit = { has_character_modifier = ep3_governor_yearly_8040_domicile_development_modifier } + add = -10 + } + } + divide = 100 + } + + # Interactions + add = { + add = { + desc = gov_efficiency_interactions_desc + if = { + limit = { has_character_modifier = ep3_boost_efficiency_modifier } + add = { + value = { + value = efficiency_interaction_change_value + if = { + limit = { exists = var:ep3_governor_efficiency_stack } + multiply = var:ep3_governor_efficiency_stack + } + } + } + } + if = { + limit = { has_character_modifier = ep3_damage_efficiency_modifier } + add = { + value = { + value = efficiency_interaction_change_value + multiply = -1 # Negativise + if = { + limit = { exists = var:ep3_governor_efficiency_stack } + multiply = var:ep3_governor_efficiency_stack + } + } + } + } + } + divide = 100 + } + + # Schemes + add = { + add = { + desc = "[GetModifier('scheme_slandered_modifier').GetNameWithTooltip]" + if = { + limit = { has_character_modifier = scheme_slandered_modifier } + add = efficiency_slandered_value + } + } + divide = 100 + } + + # Eunuch + if = { + limit = { + exists = liege + liege.culture ?= { + OR = { + has_cultural_parameter = eunuch_trait_bonuses + has_cultural_parameter = court_machinations_eunuch_trait_bonuses + } + } + has_trait = eunuch_1 + } + add = { + add = { + value = 10 + desc = court_position_eunuch_trait + } + divide = 100 + } + } + else_if = { + limit = { + exists = liege + liege.culture ?= { + OR = { + has_cultural_parameter = eunuch_trait_bonuses + has_cultural_parameter = court_machinations_eunuch_trait_bonuses + } + } + has_trait = beardless_eunuch + } + add = { + add = { + value = 10 + desc = court_position_beardless_eunuch_trait + } + divide = 100 + } + } + + # Non-de jure governors get a penalty + if = { + limit = { + top_liege ?= { save_temporary_scope_as = top_liege_temp } + is_governor = yes + any_sub_realm_county = { + NOT = { + trigger_if = { + limit = { scope:top_liege_temp.highest_held_title_tier > tier_empire } + target_is_de_jure_liege_or_above = scope:top_liege_temp.primary_title + } + trigger_else_if = { + limit = { scope:top_liege_temp.highest_held_title_tier = tier_empire } + empire ?= scope:top_liege_temp.primary_title + } + trigger_else = { kingdom ?= scope:top_liege_temp.primary_title } + } + } + } + add = { + add = { + value = de_jure_governor_bonus + desc = de_jure_governor_desc + } + divide = 100 + } + } + + # TGP DYNASTIC CYCLE + if = { + limit = { + top_liege ?= { + has_title = title:h_china + top_participant_group:dynastic_cycle ?= { + has_participant_group_parameter = dynastic_cycle_governor_efficiency_penalty + } + } + } + add = { + add = { + value = { + add = corruption_phase_governor_efficiency_penalty_value + multiply = { + value = top_liege.legitimacy_level + subtract = 5 + } + } + desc = corruption_phase_governor_efficiency_penalty_desc + } + divide = 100 + } + } + if = { # The Forbidden City special building bonus + limit = { + top_liege ?= { + capital_province = { + has_building_or_higher = forbidden_city_01 + } + } + } + add = { + add = { + value = forbidden_city_bonus_value + desc = "[GetBuilding('forbidden_city_01').GetName]" + } + divide = 100 + } + } + if = { # The Great Barracks duchy building bonus (great project) + limit = { + OR = { + vassal_contract_has_flag = celestial_military_appointment # Only for celestial military governors + government_has_flag = government_is_administrative # All regular admin types are eligible + is_independent_ruler = yes # The top liege can always use it + } + any_directly_owned_province ?= { + has_building_or_higher = celestial_great_barracks_01 + } + } + add = { + add = { + value = great_barracks_bonus_value + desc = "[GetBuilding('celestial_great_barracks_01').GetName]" + } + divide = 100 + } + } + + # TGP TREASURY BUDGET + if = { + limit = { + top_liege ?= { + OR = { + has_realm_law = budget_allocation_salary_0 + has_realm_law = budget_allocation_salary_5 + AND = { + has_realm_law = budget_allocation_salary_10 + situation:dynastic_cycle ?= { situation_current_phase = situation_dynastic_cycle_phase_stability_advancement } + } + AND = { + has_realm_law = budget_allocation_salary_15 + situation:dynastic_cycle ?= { situation_current_phase = situation_dynastic_cycle_phase_stability_advancement } + } + } + } + } + add = { + add = { + value = -5 + if = { + limit = { + OR = { + has_realm_law = budget_allocation_salary_0 + has_realm_law = budget_allocation_salary_5 + } + situation:dynastic_cycle ?= { situation_current_phase = situation_dynastic_cycle_phase_stability_advancement } + } + add = -5 + } + desc = low_salary_desc + } + divide = 100 + } + } + + # TGP JAPAN DOMICILE + if = { + limit = { + domicile ?= { has_domicile_parameter = japanese_archives_governor_efficiency_boost } + } + add = { + value = 2.5 + domicile ?= { + if = { + limit = { has_domicile_building_or_higher = japanese_archive_02 } + add = 2.5 + } + if = { + limit = { has_domicile_building_or_higher = japanese_archive_03 } + add = 2.5 + } + if = { + limit = { has_domicile_building_or_higher = japanese_archive_04 } + add = 2.5 + } + if = { + limit = { has_domicile_building_or_higher = japanese_archive_05 } + add = 2.5 + } + } + desc = japanese_archives_governor_efficiency_boost_desc + } + } + #HOUSE BLOC + if = { + limit = { + confederation ?= { has_cohesion_level_parameter = any_member_house_governor_efficiency_boost } + } + multiply = { + value = 1.1 + desc = SERVICE_BLOC_COHESION_DESC + } + } + + min = 0.5 # Can't go lower than -50% + max = 1.5 # Can't go higher than +50% + } +} + +# Governor efficiency as presented in the interface. +governor_efficiency_presented = { + value = { + add = governor_efficiency + multiply = 100 # Make percentile + subtract = 100 # Shift calculation to be between -50% and 50% + } +} + +efficiency_skill_increase_value = 0.5 +efficiency_currency_level_increase_value = 4 +efficiency_building_increase_value = 2 +efficiency_slandered_value = -5 +admin_contract_cooldown_value = 5 + +governance_task_contract_tier_value = { + value = 1 + + if = { + limit = { + scope:task_contract.task_contract_tier >= define:NTaskContract|MEDIUM_TASK_CONTRACT_TIER + scope:task_contract.task_contract_tier < define:NTaskContract|HIGH_TASK_CONTRACT_TIER + } + add = 0.5 + } + else_if = { + limit = { + scope:task_contract.task_contract_tier >= define:NTaskContract|HIGH_TASK_CONTRACT_TIER + } + add = 1 + } +} + +governance_modifier_scaling_tier_value = { + value = 1 + if = { + limit = { + scope:task_contract.task_contract_tier >= define:NTaskContract|MEDIUM_TASK_CONTRACT_TIER + scope:task_contract.task_contract_tier < define:NTaskContract|HIGH_TASK_CONTRACT_TIER + } + add = 1 + } + else_if = { + limit = { + scope:task_contract.task_contract_tier >= define:NTaskContract|HIGH_TASK_CONTRACT_TIER + } + add = 2 + } + desc = MODIFIER_DEFINITION_MAIN_DESC_GOVERNANCE_TIER +} + +estate_governance_contract_bonus_value = 0.5 + +appointment_cost_multiplier_value = { + value = 1 + if = { + limit = { + top_liege = { has_realm_law = male_preference_law } + is_female = yes + } + add = 1 + } + else_if = { + limit = { + top_liege = { has_realm_law = male_only_law } + is_female = yes + } + multiply = 3 + } + else_if = { + limit = { + top_liege = { has_realm_law = female_preference_law } + is_female = no + } + multiply = 1 + } + else_if = { + limit = { + top_liege = { has_realm_law = female_only_law } + is_female = no + } + multiply = 3 + } +} + +appointment_minor_influence_cost = { + value = 50 +} + +appointment_medium_influence_cost = { + value = 100 +} + +appointment_major_influence_cost = { + value = 250 +} + +appointment_score_minor_value = { + value = appointment_minor_influence_cost + multiply = 0.2 +} + +appointment_score_medium_value = { + value = appointment_medium_influence_cost + multiply = 0.2 +} + +appointment_score_major_value = { + value = appointment_major_influence_cost + multiply = 0.2 +} + +appointment_score_minor_loss_value = { + value = appointment_score_minor_value + multiply = -1 +} + +appointment_score_medium_loss_value = { + value = appointment_score_medium_value + multiply = -1 +} + +appointment_score_major_loss_value = { + value = appointment_score_major_value + multiply = -1 +} + +appointment_score_max_tt_value = { + value = 0 + if = { + limit = { + exists = scope:target + exists = scope:secondary_recipient + NOT = { scope:secondary_recipient = scope:target.current_heir } + } + add = { + value = "scope:target.current_heir.appointment_candidate_score(scope:target)" + multiply = 1.1 + } + subtract = "scope:secondary_recipient.appointment_candidate_score(scope:target)" + min = 4 # We do this to prevent cases when the default score of the candidate is already much higher than that the heir + } + multiply = scope:actor.appointment_score_interaction_multiplier_modifiers_value +} + +appointment_score_medium_tt_value = { + value = appointment_score_medium_value + multiply = scope:actor.appointment_score_interaction_multiplier_modifiers_value +} + +appointment_score_major_tt_value = { + value = appointment_score_major_value + multiply = scope:actor.appointment_score_interaction_multiplier_modifiers_value +} + +appointment_score_medium_loss_tt_value = { + value = appointment_score_medium_loss_value + multiply = scope:actor.appointment_score_interaction_multiplier_modifiers_value +} + +appointment_score_major_loss_tt_value = { + value = appointment_score_major_loss_value + multiply = scope:actor.appointment_score_interaction_multiplier_modifiers_value +} + +appointment_non_preferred_gender_penalty_value = 0.8 +appointment_opposite_gender_penalty_value = 1 + +admin_council_cost_value = { + add = { + add = { + value = monumental_influence_value + multiply = 2 + } + desc = BASE + } + + # Cost reduction from Estates + if = { + limit = { + scope:actor ?= { + domicile ?= { has_domicile_parameter = estate_reduce_council_position_cost } + } + } + multiply = { + value = { + value = 1 + subtract = estate_reduce_council_position_cost_value + } + desc = market_02_domicile_building + } + } + + # Cost reduction from lifestyles + if = { + limit = { + scope:actor ?= { + has_perk = positions_of_power_perk + } + } + multiply = { + value = { + value = 1 + subtract = admin_council_cost_perk_value + } + desc = "[GetPerk('honored_to_serve_perk').GetName(GetPlayer)]" + } + } + + # Being a Powerful or Dominant Family reduces the cost significantly + if = { + limit = { + scope:actor.house = { is_dominant_family = yes } + } + multiply = { + value = 0.25 + desc = is_dominant_family_desc + } + } + else_if = { + limit = { + scope:actor.house = { is_powerful_family = yes } + } + multiply = { + value = 0.5 + desc = is_powerful_family_desc + } + } +} +admin_council_loss_value = { + value = admin_council_cost_value + multiply = -1 +} +admin_council_cost_perk_value = 0.3 + +admin_state_faith_cost_perk_value = 0.2 + +estate_move_cooldown_value = 180 +estate_governor_efficiency_bonus_value = 0.1 +estate_governor_efficiency_house_bonus_value = 0.05 +estate_increased_governance_scheme_success_value = 10 +estate_local_theme_cost_reduction_value = -0.25 +estate_court_tutor_cost_reduction_low_value = 0.25 +estate_court_tutor_cost_reduction_value = 0.5 +estate_court_tutor_cost_reduction_high_value = 0.75 +estate_increased_tutor_aptitude_value = 20 +estate_increase_charioteer_aptitude_value = 20 +estate_improved_wine_cellar_1_value = 0.1 +estate_improved_wine_cellar_2_value = 0.25 +estate_improved_wine_cellar_3_value = 0.5 +estate_increase_bodyguard_aptitude_1_value = 5 +estate_increase_bodyguard_aptitude_2_value = 15 +estate_cheaper_feast_cost_value = 0.2 +estate_reduce_council_position_cost_value = 0.2 +estate_reduce_commission_artifact_cost_value = 0.5 +estate_increase_antiquarian_aptitude_value = 20 +estate_increase_physician_aptitude_value = 10 +estate_increase_physician_aptitude_2_value = 15 +estate_increase_physician_aptitude_3_value = 20 +estate_increase_master_of_hunt_aptitude_value = 20 +estate_increase_master_of_horse_aptitude_value = 20 +estate_cheaper_hunt_cost_value = 0.2 +estate_granary_gold_bonus_value = 0.5 +estate_increase_powerful_famil_rating_per_dynasty_level_value = 3 +estate_cheaper_funeral_cost_value = 0.2 +estate_cheaper_pilgrimage_cost_value = 0.2 +estate_powerful_family_rating_1_value = 10 +estate_powerful_family_rating_2_value = 20 +estate_powerful_family_rating_3_value = 30 +estate_powerful_family_rating_4_value = 40 +estate_powerful_family_rating_5_value = 50 +estate_powerful_family_rating_6_value = 60 + +chariot_kathisma_access_difficulty_value = { + value = medium_skill_rating + if = { + limit = { + OR = { + is_powerful_vassal = yes + any_held_title = { is_noble_family_title = yes } + } + } + divide = 2 + } +} + +marshal_court_jester_contribution_value = { + add = diplomacy + divide = 60 +} + +camp_improved_court_physician_aptitude_value = 10 + +ep3_iconoclast_vassal_count = { + value = 0 + every_vassal_or_below = { + limit = { faith = faith:iconoclast } + add = 1 + } +} + +# DYNASTY LEGACY PERKS + + +#CONTRACTS +task_contract_tier_value = { + value = highest_held_title_tier +} + +task_contract_escort_gold_value = { + value = minor_gold_max_value + if = { + limit = { + highest_held_title_tier > 1 + } + multiply = highest_held_title_tier + } +} +#ratio between attacker's military strength and defender's strength +task_contract_join_war_attacker_strength_ratio_value = { + value = scope:attacker.current_military_strength + divide = scope:defender.current_military_strength +} + +task_contract_war_duration_value = { + value = root.war_days +} +task_contract_attacker_war_score_value = { + value = root.attacker_war_score +} +task_contract_defender_war_score_value = { + value = root.defender_war_score +} +task_contract_t1_value = { value = define:NTaskContract|LOW_TASK_CONTRACT_TIER } +task_contract_t2_value = { value = define:NTaskContract|MEDIUM_TASK_CONTRACT_TIER } +task_contract_t3_value = { value = define:NTaskContract|HIGH_TASK_CONTRACT_TIER } + +council_task_contracts_limit_value = { + value = 1 +} + +################################################## +# Contract Reward Values + +# Gold values for laamps. +## Basic gold values are based on domain/income size. This isn't useful for us, so we balance on a separate scale. +## Bear in mind that these are heavily scaled by _tier_ later on. +miniscule_gold_laamps_value = { + value = 5 + if = { + limit = { + culture = { has_cultural_era_or_later = culture_era_late_medieval } + } + multiply = 1.75 + } + else_if = { + limit = { + culture = { has_cultural_era_or_later = culture_era_high_medieval } + } + multiply = 1.25 + } + else_if = { + limit = { + culture = { has_cultural_era_or_later = culture_era_early_medieval } + } + multiply = 1 + } + else = { multiply = 0.75 } +} +tiny_gold_laamps_value = { + value = 10 + if = { + limit = { + culture = { has_cultural_era_or_later = culture_era_late_medieval } + } + multiply = 1.75 + } + else_if = { + limit = { + culture = { has_cultural_era_or_later = culture_era_high_medieval } + } + multiply = 1.25 + } + else_if = { + limit = { + culture = { has_cultural_era_or_later = culture_era_early_medieval } + } + multiply = 1 + } + else = { multiply = 0.75 } +} +minor_gold_laamps_value = { + value = 25 + if = { + limit = { + culture = { has_cultural_era_or_later = culture_era_late_medieval } + } + multiply = 1.75 + } + else_if = { + limit = { + culture = { has_cultural_era_or_later = culture_era_high_medieval } + } + multiply = 1.25 + } + else_if = { + limit = { + culture = { has_cultural_era_or_later = culture_era_early_medieval } + } + multiply = 1 + } + else = { multiply = 0.75 } +} +medium_gold_laamps_value = { + value = 50 + if = { + limit = { + culture = { has_cultural_era_or_later = culture_era_late_medieval } + } + multiply = 1.75 + } + else_if = { + limit = { + culture = { has_cultural_era_or_later = culture_era_high_medieval } + } + multiply = 1.25 + } + else_if = { + limit = { + culture = { has_cultural_era_or_later = culture_era_early_medieval } + } + multiply = 1 + } + else = { multiply = 0.75 } +} +major_gold_laamps_value = { + value = 80 + if = { + limit = { + culture = { has_cultural_era_or_later = culture_era_late_medieval } + } + multiply = 1.75 + } + else_if = { + limit = { + culture = { has_cultural_era_or_later = culture_era_high_medieval } + } + multiply = 1.25 + } + else_if = { + limit = { + culture = { has_cultural_era_or_later = culture_era_early_medieval } + } + multiply = 1 + } + else = { multiply = 0.75 } +} +massive_gold_laamps_value = { + value = 120 + if = { + limit = { + culture = { has_cultural_era_or_later = culture_era_late_medieval } + } + multiply = 1.75 + } + else_if = { + limit = { + culture = { has_cultural_era_or_later = culture_era_high_medieval } + } + multiply = 1.25 + } + else_if = { + limit = { + culture = { has_cultural_era_or_later = culture_era_early_medieval } + } + multiply = 1 + } + else = { multiply = 0.75 } +} +monumental_gold_laamps_value = { + value = 180 + if = { + limit = { + culture = { has_cultural_era_or_later = culture_era_late_medieval } + } + multiply = 1.75 + } + else_if = { + limit = { + culture = { has_cultural_era_or_later = culture_era_high_medieval } + } + multiply = 1.25 + } + else_if = { + limit = { + culture = { has_cultural_era_or_later = culture_era_early_medieval } + } + multiply = 1 + } + else = { multiply = 0.75 } +} + +# Opinion. +## Default opinion reward for excelling when completing a contract. +task_contract_opinion_excelled_reward_value = 60 +## Default opinion reward for successfully completing a contract. +task_contract_opinion_standard_reward_value = 30 +## Default opinion reward for kinda completing a contract. +task_contract_opinion_reduced_reward_value = 20 +## Default opinion penalty for goofing a contract. +task_contract_opinion_standard_failure_value = -30 +## Default opinion penalty for _massively_ goofing a contract. +task_contract_opinion_critical_failure_value = -50 +## Opinion penalty for successfully prosecuting a criminal contract against someone. +task_contract_opinion_crime_success_value = -60 +## Opinion penalty for successfully prosecuting a criminal contract against someone. +task_contract_opinion_crime_failure_value = -30 +## Opinion penalty for successfully prosecuting a criminal contract against someone. +task_contract_opinion_crime_backed_down_value = -10 + +# Extra rewards. +task_contract_extra_reward_multiplier_value = 1.5 # Update all relevant parameter tootlips if this is changed! e.g. improved_learning_contract_rewards + +# How do we multiply the cash rewards in a task contract depending on the employer's tier? +task_contract_tier_gold_multiplier_value = { + value = 1 # Barons and counts are neutral, so no multiplier needed here. + if = { + limit = { exists = scope:task_contract.task_contract_employer } + # Kings'n'emperors. + if = { + limit = { scope:task_contract.task_contract_employer.highest_held_title_tier >= define:NTaskContract|HIGH_TASK_CONTRACT_TIER } + add = 3 + } + # Dukes. + else_if = { + limit = { scope:task_contract.task_contract_employer.highest_held_title_tier >= define:NTaskContract|MEDIUM_TASK_CONTRACT_TIER } + add = 2 + } + # Courtiers first, as we give them a bit less. + else_if = { + limit = { scope:task_contract.task_contract_employer.highest_held_title_tier <= 0 } + add = 0.5 + ceiling = yes + } + } +} +# How do we multiply the non-cash rewards in a task contract depending on the employer's tier? +task_contract_tier_other_reward_multiplier_value = { + value = 1 # Barons and counts are neutral, so no multiplier needed here. + if = { + limit = { exists = scope:task_contract.task_contract_employer } + # Kings'n'emperors. + if = { + limit = { scope:task_contract.task_contract_employer.highest_held_title_tier >= define:NTaskContract|HIGH_TASK_CONTRACT_TIER } + add = 2.5 + } + # Dukes. + else_if = { + limit = { scope:task_contract.task_contract_employer.highest_held_title_tier >= define:NTaskContract|MEDIUM_TASK_CONTRACT_TIER } + add = 1.5 + } + } +} + +# PRESTIGE — NORMAL CONTRACTS +## Default scaling reward. +task_contract_success_prestige_gain_full_value = { + value = 150 + multiply = task_contract_tier_other_reward_multiplier_value + if = { + limit = { + scope:taker ?= { + has_perk = firm_hand_perk + } + } + multiply = 1.2 + } + if = { + limit = { + scope:taker ?= { + house = { + has_house_modifier = legacy_adventurer_house_modifier + } + } + } + multiply = 1.15 + } +} +## Boosted scaling reward. +task_contract_success_prestige_gain_critical_value = { + value = task_contract_success_prestige_gain_full_value + multiply = 1.5 +} +## Half default scaling reward. +task_contract_success_prestige_gain_half_value = { + value = task_contract_success_prestige_gain_full_value + multiply = 0.5 + min = 25 +} +## Default scaling loss on failure. +task_contract_failure_prestige_loss_full_value = { + value = -25 + multiply = task_contract_tier_other_reward_multiplier_value +} +## Doubled prestige loss +task_contract_failure_prestige_loss_double_value = { + value = task_contract_failure_prestige_loss_full_value + multiply = 2 +} + +# PRESTIGE — CRIMINAL CONTRACTS +## Criminal scaling loss on failure. +### A little higher, for obvious reasons. +task_contract_failure_prestige_loss_crime_value = { + value = task_contract_failure_prestige_loss_full_value + multiply = task_contract_tier_other_reward_multiplier_value +} +task_contract_failure_prestige_loss_crime_half_value = { + value = task_contract_failure_prestige_loss_crime_value + multiply = 0.5 +} +## Default award on invalidation. +task_contract_invalidated_prestige_gain_value = { + value = task_contract_success_prestige_gain_full_value + multiply = 0.5 +} + +# PIETY +## Default scaling reward. +task_contract_success_piety_gain_full_value = { + value = 100 + multiply = task_contract_tier_other_reward_multiplier_value +} +##Critical scaling reward +task_contract_success_piety_gain_critical_value = { + value = task_contract_success_piety_gain_full_value + multiply = 2 +} +## Half default scaling reward. +task_contract_success_piety_gain_half_value = { + value = task_contract_success_piety_gain_full_value + multiply = 0.5 + min = 25 +} +## Default scaling loss on failure. +task_contract_failure_piety_loss_full_value = { + value = -50 + multiply = task_contract_tier_other_reward_multiplier_value +} + +# GOLD — NORMAL CONTRACTS +## Default scaling reward. +task_contract_success_gold_gain_full_value = { + # Base value + multiplier. + value = 50 + multiply = task_contract_tier_gold_multiplier_value + # Lifestyle perks. + if = { + limit = { + exists = scope:task_contract.task_contract_taker + scope:task_contract.task_contract_taker = { has_perk = at_any_cost_perk } + } + multiply = 1.25 + } + # Stuff that NEEDS to stay at the bottom. + ## Vary our final tally up a bit. + if = { + limit = { + exists = scope:task_contract.task_contract_taker + scope:task_contract.task_contract_employer.ai_greed != 0 + } + add = { + value = scope:task_contract.task_contract_employer.ai_greed + multiply = -0.2 + } + } + ## Plus change the last digit around slightly so the values look a little less robotic. + if = { + limit = { exists = scope:gold_fuzz } + add = scope:gold_fuzz + } + ## And boost a bit further for exceptional rewards, so that they're never beneath the common rewards. + if = { + limit = { + exists = scope:gold_safety_margin + scope:gold_safety_margin = flag:yes + } + add = 10 + } + ## Shouldn't happen but just in case someone is really, really, _really_ stingy: never pay less than at least a truly pathetic amount. + min = 25 +} +## Critical scaling reward. +task_contract_success_gold_gain_critical_value = { + value = task_contract_success_gold_gain_full_value + if = { + limit = { exists = scope:task_contract_tier } + if = { + limit = { scope:task_contract_tier >= 3 } + multiply = 1.25 + } + else_if = { + limit = { scope:task_contract_tier >= 2 } + multiply = 1.5 + } + else = { multiply = 1.75 } + } + else = { + if = { + limit = { scope:task_contract.task_contract_tier >= 3 } + multiply = 1.25 + } + else_if = { + limit = { scope:task_contract.task_contract_tier >= 2 } + multiply = 1.5 + } + else = { multiply = 1.75 } + } +} +## Half default scaling reward. +task_contract_success_gold_gain_half_value = { + value = task_contract_success_gold_gain_full_value + multiply = 0.5 +} +## One third default scaling reward. +task_contract_success_gold_gain_third_value = { + value = task_contract_success_gold_gain_full_value + multiply = 0.33 +} +## Default award on invalidation. +task_contract_invalidated_gold_gain_value = { + value = task_contract_success_gold_gain_full_value + multiply = 0.1 +} + +# GOLD — TRAVEL CONTRACTS +## Travel scaling reward. +task_contract_success_gold_gain_travel_value = { + # Base value + multiplier. + value = 75 + multiply = task_contract_tier_gold_multiplier_value + # Lifestyle perks. + if = { + limit = { exists = scope:task_contract.task_contract_taker } + if = { + limit = { + scope:task_contract.task_contract_taker = { has_perk = at_any_cost_perk } + } + multiply = 1.25 + } + if = { + limit = { + scope:task_contract.task_contract_taker = { has_perk = malice_implicit_perk } + } + multiply = 2 + } + } + # Stuff that NEEDS to stay at the bottom. + ## Vary our final tally up a bit. + if = { + limit = { + exists = scope:task_contract.task_contract_employer + scope:task_contract.task_contract_employer.ai_greed != 0 + } + add = { + value = scope:task_contract.task_contract_employer.ai_greed + multiply = -0.2 + } + } + ## Plus change the last digit around slightly so the values look a little less robotic. + if = { + limit = { exists = scope:gold_fuzz } + add = scope:gold_fuzz + } + ## And boost a bit further for exceptional rewards, so that they're never beneath the common rewards. + if = { + limit = { + exists = scope:gold_safety_margin + scope:gold_safety_margin ?= flag:yes + } + add = 10 + } + ## Shouldn't happen but just in case someone is really, really, _really_ stingy: never pay less than at least a truly pathetic amount. + min = 25 +} +## Travel critical scaling reward. +task_contract_success_gold_gain_critical_travel_value = { + value = task_contract_success_gold_gain_travel_value + if = { + limit = { exists = scope:task_contract_tier } + if = { + limit = { scope:task_contract_tier >= 3 } + multiply = 1.25 + } + else_if = { + limit = { scope:task_contract_tier >= 2 } + multiply = 1.5 + } + else = { multiply = 1.75 } + } + else = { + if = { + limit = { scope:task_contract.task_contract_tier >= 3 } + multiply = 1.25 + } + else_if = { + limit = { scope:task_contract.task_contract_tier >= 2 } + multiply = 1.5 + } + else = { multiply = 1.75 } + } +} +## Half travel scaling reward. +task_contract_success_gold_gain_half_travel_value = { + value = task_contract_success_gold_gain_travel_value + multiply = 0.5 +} + +# GOLD — CRIMINAL CONTRACTS +## Criminal scaling reward. +task_contract_success_gold_gain_crime_value = { + # Base value + multiplier. + value = 100 + multiply = task_contract_tier_gold_multiplier_value + # Lifestyle perks. + if = { + limit = { exists = scope:task_contract.task_contract_taker } + if = { + limit = { + scope:task_contract.task_contract_taker = { has_perk = at_any_cost_perk } + } + multiply = 1.25 + } + if = { + limit = { + scope:task_contract.task_contract_taker = { has_perk = malice_implicit_perk } + } + multiply = 2 + } + } + # Stuff that NEEDS to stay at the bottom. + ## Vary our final tally up a bit. + ### This time, we add _more_ gold the greedier the employer is — it's a criminal reward, so the greedier they are, the more gold they have available (albeit not to the same degree as the inverse in normal contracts). + if = { + limit = { exists = scope:task_contract.task_contract_employer } + if = { + limit = { scope:task_contract.task_contract_employer.ai_greed > 1 } + add = { + value = scope:task_contract.task_contract_employer.ai_greed + multiply = 0.1 + } + } + ### Take it down only a marginal amount for generous chars, as we still want criminal contracts to almost always pay more. + else_if = { + limit = { scope:task_contract.task_contract_employer.ai_greed < -1 } + add = { + value = scope:task_contract.task_contract_employer.ai_greed + multiply = -0.05 + } + } + } + ## Plus change the last digit around slightly so the values look a little less robotic. + if = { + limit = { exists = scope:gold_fuzz } + add = scope:gold_fuzz + } + ## And boost a bit further for exceptional rewards, so that they're never beneath the common rewards. + if = { + limit = { + exists = scope:gold_safety_margin + scope:gold_safety_margin = flag:yes + } + add = 10 + } + ## Shouldn't happen but just in case someone is really, really, _really_ stingy: never pay less than at least a truly pathetic amount. + min = 60 +} +## Criminal critical scaling reward. +task_contract_success_gold_gain_critical_crime_value = { + value = task_contract_success_gold_gain_crime_value + if = { + limit = { exists = scope:task_contract_tier } + if = { + limit = { scope:task_contract_tier >= 3 } + multiply = 1.25 + } + else_if = { + limit = { scope:task_contract_tier >= 2 } + multiply = 1.5 + } + else = { multiply = 1.75 } + } + else = { + if = { + limit = { scope:task_contract.task_contract_tier >= 3 } + multiply = 1.25 + } + else_if = { + limit = { scope:task_contract.task_contract_tier >= 2 } + multiply = 1.5 + } + else = { multiply = 1.75 } + } +} +## Half criminal scaling reward. +task_contract_success_gold_gain_half_crime_value = { + value = task_contract_success_gold_gain_crime_value + multiply = 0.5 +} + +# Provisions. +## We don't scale these by tier. +task_contract_success_provisions_gain_minor_value = 250 +task_contract_success_provisions_gain_medium_value = 500 +task_contract_success_provisions_gain_major_value = 1000 +task_contract_success_provisions_gain_massive_value = 1500 +task_contract_failure_provisions_gain_minor_value = 0 + +adventurer_siege_replenish_amount = { + value = 0 + add = scope:barony.title_province.available_loot + multiply = { + value = 2 + if = { + limit = { + root = { has_perk = a_mans_home_perk } + } + add = 2 + } + } +} + +adventurer_siege_provisions_amount = { + value = 0 + add = scope:barony.title_province.available_loot + multiply = 20 +} + +human_provision_value = { + value = 100 + add = scope:recipient.current_weight + multiply = 3 +} + +# Gallowsbait XP +reduced_criminal_contract_xp_gain_value = 0.75 +reduced_criminal_contract_xp_gain_loc_value = { + value = 1 + subtract = reduced_criminal_contract_xp_gain_value +} +gallowsbait_xp_minor_gain = small_lifestyle_random_xp_low +gallowsbait_xp_medium_gain = { + value = gallowsbait_xp_minor_gain + multiply = 2 # Between low and mid +} +gallowsbait_xp_major_gain = small_lifestyle_random_xp_mid +gallowsbait_xp_massive_gain = small_lifestyle_random_xp_high + +# Knight Errant XP +knight_errant_xp_minor_gain = small_lifestyle_random_xp_low +knight_errant_xp_medium_gain = { + value = knight_errant_xp_minor_gain + multiply = 2 # Between low and mid +} +knight_errant_xp_major_gain = small_lifestyle_random_xp_mid +knight_errant_xp_massive_gain = small_lifestyle_random_xp_high + +laamp_base_0011_num_removable_potential_rivals_value = { + every_relation = { + type = potential_rival + limit = { laamp_base_0011_valid_potential_rival_trigger = yes } + add = 1 + } +} + +laamp_base_2041_num_counties_to_rob_sans_capital_value = { + value = laamp_base_2041_num_counties_to_rob_value + add = -1 +} + +laamp_base_2041_num_counties_to_rob_value = { + add = highest_held_title_tier + add = 2 +} + +laamp_base_2011_desired_surveyable_holdings_per_tier_value = { + value = highest_held_title_tier + add = -1 + multiply = 3 +} +laamp_base_2011_actual_surveyable_holdings_per_tier_value = { + value = sub_realm_size + every_sub_realm_barony = { + limit = { + holder.highest_held_title_tier = tier_barony + title_province != root.domicile.domicile_location + } + add = 1 + } +} + +laamp_base_contract_schemes_1301_min_troops_value = 750 +laamp_base_contract_schemes_2661_other_skill_threshold_value = very_high_skill_rating +laamp_base_contract_schemes_2661_sacrifice_loan_length_min_value = 4 +laamp_base_contract_schemes_2661_sacrifice_loan_length_max_value = 8 + +################################################## +# Camp Values + +adventurer_hard_rule_contract_rewards_value = 1.25 + +# How much bonus gold do we get from warfare contracts for having the lockwagon upgrade? +## Applied within a script value, not as an extra modifier. +camp_improved_mercenary_contract_rewards_value = 1.5 +## Shift the value around a bit for loc. +camp_improved_mercenary_contract_rewards_loc_value = { + value = camp_improved_mercenary_contract_rewards_value + add = -1 +} + +# How much a proportion of a camp building's cost do we get back on demolishing it? +camp_refund_mult_value = 0.5 + +# Camp additional buildings standard costs. +camp_building_upgrade_cost_t1_value = 60 +camp_building_upgrade_cost_t2_value = 120 +camp_building_upgrade_cost_t3_value = 180 +camp_building_upgrade_cost_t4_value = 240 +camp_building_upgrade_cost_t5_value = 300 +camp_building_upgrade_cost_t6_value = 360 + +# Assorted gold costs for camp buildings. +camp_main_02_domicile_building_gold_cost_value = 200 +camp_main_03_domicile_building_gold_cost_value = 350 +camp_main_04_domicile_building_gold_cost_value = 500 +supply_tent_01_domicile_building_gold_cost_value = camp_building_upgrade_cost_t1_value +supply_tent_02_domicile_building_gold_cost_value = camp_building_upgrade_cost_t2_value +supply_tent_03_domicile_building_gold_cost_value = camp_building_upgrade_cost_t3_value +supply_tent_04_domicile_building_gold_cost_value = camp_building_upgrade_cost_t4_value +supply_tent_05_domicile_building_gold_cost_value = camp_building_upgrade_cost_t5_value +supply_tent_06_domicile_building_gold_cost_value = camp_building_upgrade_cost_t6_value +supply_tent_sutler_domicile_building_gold_cost_value = camp_building_upgrade_cost_t1_value +supply_tent_mender_domicile_building_gold_cost_value = camp_building_upgrade_cost_t2_value +supply_tent_smithy_domicile_building_gold_cost_value = camp_building_upgrade_cost_t3_value +supply_tent_arsenal_domicile_building_gold_cost_value = camp_building_upgrade_cost_t4_value +supply_tent_reserve_provisions_domicile_building_gold_cost_value = camp_building_upgrade_cost_t1_value +supply_tent_reserve_water_domicile_building_gold_cost_value = camp_building_upgrade_cost_t1_value +supply_tent_climbing_gear_domicile_building_gold_cost_value = camp_building_upgrade_cost_t2_value +supply_tent_subdued_gear_domicile_building_gold_cost_value = camp_building_upgrade_cost_t2_value +barber_tent_01_domicile_building_gold_cost_value = camp_building_upgrade_cost_t1_value +barber_tent_02_domicile_building_gold_cost_value = camp_building_upgrade_cost_t2_value +barber_tent_03_domicile_building_gold_cost_value = camp_building_upgrade_cost_t3_value +barber_tent_04_domicile_building_gold_cost_value = camp_building_upgrade_cost_t4_value +barber_tent_05_domicile_building_gold_cost_value = camp_building_upgrade_cost_t5_value +barber_tent_06_domicile_building_gold_cost_value = camp_building_upgrade_cost_t6_value +barber_tent_surgeons_tools_domicile_building_gold_cost_value = camp_building_upgrade_cost_t4_value +barber_tent_dentists_tools_domicile_building_gold_cost_value = camp_building_upgrade_cost_t1_value +barber_tent_torturers_tools_domicile_building_gold_cost_value = camp_building_upgrade_cost_t2_value +barber_tent_reference_corpus_domicile_building_gold_cost_value = camp_building_upgrade_cost_t3_value +barber_tent_morticians_tools_domicile_building_gold_cost_value = camp_building_upgrade_cost_t1_value +baggage_train_01_domicile_building_gold_cost_value = camp_building_upgrade_cost_t1_value +baggage_train_02_domicile_building_gold_cost_value = camp_building_upgrade_cost_t2_value +baggage_train_03_domicile_building_gold_cost_value = camp_building_upgrade_cost_t3_value +baggage_train_04_domicile_building_gold_cost_value = camp_building_upgrade_cost_t4_value +baggage_train_05_domicile_building_gold_cost_value = camp_building_upgrade_cost_t5_value +baggage_train_06_domicile_building_gold_cost_value = camp_building_upgrade_cost_t6_value +baggage_train_ample_steeds_domicile_building_gold_cost_value = camp_building_upgrade_cost_t2_value +baggage_train_porters_domicile_building_gold_cost_value = camp_building_upgrade_cost_t3_value +baggage_train_trackers_domicile_building_gold_cost_value = camp_building_upgrade_cost_t2_value +baggage_train_kennel_domicile_building_gold_cost_value = camp_building_upgrade_cost_t2_value +baggage_train_siege_engineers_domicile_building_gold_cost_value = camp_building_upgrade_cost_t4_value +baggage_train_shrine_domicile_building_gold_cost_value = camp_building_upgrade_cost_t1_value +baggage_train_scribes_domicile_building_gold_cost_value = camp_building_upgrade_cost_t4_value +baggage_train_bartering_grounds_domicile_building_gold_cost_value = camp_building_upgrade_cost_t4_value +baggage_train_proof_of_claims_domicile_building_gold_cost_value = camp_building_upgrade_cost_t2_value +baggage_train_ransom_cages_domicile_building_gold_cost_value = camp_building_upgrade_cost_t4_value +baggage_train_negotiators_domicile_building_gold_cost_value = camp_building_upgrade_cost_t1_value +baggage_train_ascetics_domicile_building_gold_cost_value = camp_building_upgrade_cost_t2_value +baggage_train_pleasure_tents_domicile_building_gold_cost_value = camp_building_upgrade_cost_t3_value +mess_tent_01_domicile_building_gold_cost_value = camp_building_upgrade_cost_t1_value +mess_tent_02_domicile_building_gold_cost_value = camp_building_upgrade_cost_t2_value +mess_tent_03_domicile_building_gold_cost_value = camp_building_upgrade_cost_t3_value +mess_tent_04_domicile_building_gold_cost_value = camp_building_upgrade_cost_t4_value +mess_tent_05_domicile_building_gold_cost_value = camp_building_upgrade_cost_t5_value +mess_tent_06_domicile_building_gold_cost_value = camp_building_upgrade_cost_t6_value +mess_tent_herbalists_domicile_building_gold_cost_value = camp_building_upgrade_cost_t4_value +mess_tent_brewers_domicile_building_gold_cost_value = camp_building_upgrade_cost_t2_value +mess_tent_curers_domicile_building_gold_cost_value = camp_building_upgrade_cost_t2_value +mess_tent_bakers_domicile_building_gold_cost_value = camp_building_upgrade_cost_t2_value +mess_tent_cooks_domicile_building_gold_cost_value = camp_building_upgrade_cost_t2_value +camp_fire_01_domicile_building_gold_cost_value = camp_building_upgrade_cost_t1_value +camp_fire_02_domicile_building_gold_cost_value = camp_building_upgrade_cost_t2_value +camp_fire_03_domicile_building_gold_cost_value = camp_building_upgrade_cost_t3_value +camp_fire_04_domicile_building_gold_cost_value = camp_building_upgrade_cost_t4_value +camp_fire_05_domicile_building_gold_cost_value = camp_building_upgrade_cost_t5_value +camp_fire_06_domicile_building_gold_cost_value = camp_building_upgrade_cost_t6_value +camp_fire_trailing_musicians_domicile_building_gold_cost_value = camp_building_upgrade_cost_t2_value +camp_fire_wandering_poets_domicile_building_gold_cost_value = camp_building_upgrade_cost_t2_value +camp_fire_capering_fools_domicile_building_gold_cost_value = camp_building_upgrade_cost_t1_value +camp_fire_libations_for_the_lost_domicile_building_gold_cost_value = camp_building_upgrade_cost_t1_value +camp_fire_local_hangers_on_domicile_building_gold_cost_value = camp_building_upgrade_cost_t1_value +camp_fire_future_dreams_domicile_building_gold_cost_value = camp_building_upgrade_cost_t3_value +camp_fire_nightly_debates_domicile_building_gold_cost_value = camp_building_upgrade_cost_t2_value +camp_fire_juicy_rumors_domicile_building_gold_cost_value = camp_building_upgrade_cost_t4_value +proving_grounds_01_domicile_building_gold_cost_value = camp_building_upgrade_cost_t1_value +proving_grounds_02_domicile_building_gold_cost_value = camp_building_upgrade_cost_t2_value +proving_grounds_03_domicile_building_gold_cost_value = camp_building_upgrade_cost_t3_value +proving_grounds_04_domicile_building_gold_cost_value = camp_building_upgrade_cost_t4_value +proving_grounds_05_domicile_building_gold_cost_value = camp_building_upgrade_cost_t5_value +proving_grounds_06_domicile_building_gold_cost_value = camp_building_upgrade_cost_t6_value +proving_grounds_horse_run_domicile_building_gold_cost_value = camp_building_upgrade_cost_t3_value +proving_grounds_camel_run_domicile_building_gold_cost_value = camp_building_upgrade_cost_t3_value +proving_grounds_elephantry_reserve_domicile_building_gold_cost_value = camp_building_upgrade_cost_t4_value +proving_grounds_nightly_barding_drills_domicile_building_gold_cost_value = camp_building_upgrade_cost_t4_value +proving_grounds_life_in_the_saddle_domicile_building_gold_cost_value = camp_building_upgrade_cost_t4_value +proving_grounds_the_stump_domicile_building_gold_cost_value = camp_building_upgrade_cost_t2_value +proving_grounds_personal_bouts_domicile_building_gold_cost_value = camp_building_upgrade_cost_t3_value +proving_grounds_training_circle_domicile_building_gold_cost_value = camp_building_upgrade_cost_t2_value +proving_grounds_mock_battle_drills_domicile_building_gold_cost_value = camp_building_upgrade_cost_t3_value +proving_grounds_lockwagon_domicile_building_gold_cost_value = camp_building_upgrade_cost_t4_value +proving_grounds_martial_study_domicile_building_gold_cost_value = camp_building_upgrade_cost_t4_value +proving_grounds_the_stick_game_domicile_building_gold_cost_value = camp_building_upgrade_cost_t2_value +proving_grounds_bodyguard_drills_domicile_building_gold_cost_value = camp_building_upgrade_cost_t3_value +camp_perimeter_01_domicile_building_gold_cost_value = camp_building_upgrade_cost_t1_value +camp_perimeter_02_domicile_building_gold_cost_value = camp_building_upgrade_cost_t2_value +camp_perimeter_03_domicile_building_gold_cost_value = camp_building_upgrade_cost_t3_value +camp_perimeter_04_domicile_building_gold_cost_value = camp_building_upgrade_cost_t4_value +camp_perimeter_05_domicile_building_gold_cost_value = camp_building_upgrade_cost_t5_value +camp_perimeter_06_domicile_building_gold_cost_value = camp_building_upgrade_cost_t6_value +camp_perimeter_good_siting_domicile_building_gold_cost_value = camp_building_upgrade_cost_t1_value +camp_perimeter_fixed_layout_domicile_building_gold_cost_value = camp_building_upgrade_cost_t1_value +camp_perimeter_extra_watch_domicile_building_gold_cost_value = camp_building_upgrade_cost_t1_value +camp_perimeter_palisade_domicile_building_gold_cost_value = camp_building_upgrade_cost_t1_value +camp_perimeter_ditch_domicile_building_gold_cost_value = camp_building_upgrade_cost_t3_value +camp_perimeter_camp_hygiene_domicile_building_gold_cost_value = camp_building_upgrade_cost_t1_value + +# Control weights for camp ai_will_do buildings. +## Base value. +camp_building_ai_base_t1 = 70 +camp_building_ai_base_t2 = 80 +camp_building_ai_base_t3 = 90 +camp_building_ai_base_t4 = 100 +### We use this for both highly useful buildings & for unique unlocks, so that camps prioritise stuff specific to their purpose. +camp_building_ai_base_t5 = 100 +## Flavour bonuses. +camp_building_ai_bonus_t1 = 10 +camp_building_ai_bonus_t2 = 20 +camp_building_ai_bonus_t3 = 30 +## Flavour penalties. +camp_building_ai_malus_t1 = -20 +camp_building_ai_malus_t2 = -40 +camp_building_ai_malus_t3 = -60 +## Camp Purpose-specific bonuses. +camp_building_ai_camp_purpose_t1 = 20 +camp_building_ai_camp_purpose_t2 = 40 +camp_building_ai_camp_purpose_t3 = 60 +## Try to pick matching upgrades depending on our lifestyle. +camp_building_ai_lifestyle_bias_value = 75 + +# Various camp ai_will_do building values. +camp_main_main_path_value = { + value = camp_building_ai_base_t3 + # Traits. + ## ++ Arrogant. + if = { + limit = { + owner = { has_trait = arrogant } + } + add = camp_building_ai_bonus_t2 + } + ## ++ Ambitious. + if = { + limit = { + owner = { has_trait = ambitious } + } + add = camp_building_ai_bonus_t2 + } + ## - Content. + if = { + limit = { + owner = { has_trait = content } + } + add = camp_building_ai_malus_t1 + } + ## -- Humble. + if = { + limit = { + owner = { has_trait = humble } + } + add = camp_building_ai_malus_t2 + } +} +supply_tent_main_path_value = { + value = camp_building_ai_base_t4 + # Traits. + ## +++ Logistician. + if = { + limit = { + owner = { has_trait = logistician } + } + add = camp_building_ai_bonus_t3 + } + ## +++ Organiser. + if = { + limit = { + owner = { has_trait = organizer } + } + add = camp_building_ai_bonus_t3 + } + ## + Patient + if = { + limit = { + owner = { has_trait = patient } + } + add = camp_building_ai_bonus_t1 + } + ## + Diligent. + if = { + limit = { + owner = { has_trait = diligent } + } + add = camp_building_ai_bonus_t1 + } + ## - Lazy. + if = { + limit = { + owner = { has_trait = lazy } + } + add = camp_building_ai_malus_t1 + } + # Camp Purpose. + if = { + limit = { + owner = { + OR = { + has_realm_law_flag = unlocks_supply_tent_reserve_provisions + has_realm_law_flag = unlocks_supply_tent_reserve_water + has_realm_law_flag = unlocks_supply_tent_climbing_gear + has_realm_law_flag = unlocks_supply_tent_subdued_gear + } + } + } + add = camp_building_ai_camp_purpose_t2 + } +} +barber_tent_main_path_value = { + value = camp_building_ai_base_t2 + # Traits. + ## +++ Lifestyle Physician. + if = { + limit = { + owner = { has_trait = lifestyle_physician } + } + add = camp_building_ai_bonus_t3 + } + ## ++ Whole of Body. + if = { + limit = { + owner = { has_trait = whole_of_body } + } + add = camp_building_ai_bonus_t2 + } + ## + Gregarious. + if = { + limit = { + owner = { has_trait = gregarious } + } + add = camp_building_ai_bonus_t1 + } + ## + Eccentric. + if = { + limit = { + owner = { has_trait = eccentric } + } + add = camp_building_ai_bonus_t1 + } + # Camp Purpose. + if = { + limit = { + owner = { + OR = { + has_realm_law_flag = unlocks_barber_tent_reference_corpus + has_realm_law_flag = unlocks_barber_tent_morticians_tools + } + } + } + add = camp_building_ai_camp_purpose_t1 + } +} +baggage_train_main_path_value = { + value = camp_building_ai_base_t4 + # Traits. + ## +++ Logistician. + if = { + limit = { + owner = { has_trait = logistician } + } + add = camp_building_ai_bonus_t3 + } + ## +++ Organiser. + if = { + limit = { + owner = { has_trait = organizer } + } + add = camp_building_ai_bonus_t3 + } + ## ++ Gregarious. + if = { + limit = { + owner = { has_trait = gregarious } + } + add = camp_building_ai_bonus_t2 + } + ## ++ Diligent. + if = { + limit = { + owner = { has_trait = diligent } + } + add = camp_building_ai_bonus_t2 + } + ## - Lazy. + if = { + limit = { + owner = { has_trait = lazy } + } + add = camp_building_ai_malus_t1 + } + ## -- Shy. + if = { + limit = { + owner = { has_trait = shy } + } + add = camp_building_ai_malus_t2 + } + # Camp Purpose. + if = { + limit = { + owner = { + OR = { + has_realm_law_flag = unlocks_baggage_train_siege_engineers + has_realm_law_flag = unlocks_baggage_train_scribes + has_realm_law_flag = unlocks_baggage_train_proof_of_claims + has_realm_law_flag = unlocks_baggage_train_ransom_cages + has_realm_law_flag = unlocks_baggage_train_negotiators + has_realm_law_flag = unlocks_baggage_train_ascetics + } + } + } + add = camp_building_ai_camp_purpose_t3 + } +} +mess_tent_main_path_value = { + value = camp_building_ai_base_t2 + # Traits. + ## +++ Gluttonous. + if = { + limit = { + owner = { has_trait = gluttonous } + } + add = camp_building_ai_bonus_t3 + } + ## + Greedy. + if = { + limit = { + owner = { has_trait = greedy } + } + add = camp_building_ai_bonus_t1 + } + ## --- Temperate. + if = { + limit = { + owner = { has_trait = temperate } + } + add = camp_building_ai_malus_t3 + } +} +camp_fire_main_path_value = { + value = camp_building_ai_base_t3 + # Traits. + ## +++ Gregarious. + if = { + limit = { + owner = { has_trait = gregarious } + } + add = camp_building_ai_bonus_t3 + } + ## ++ Humble. + if = { + limit = { + owner = { has_trait = humble } + } + add = camp_building_ai_bonus_t2 + } + ## --- Arrogant. + if = { + limit = { + owner = { has_trait = arrogant } + } + add = camp_building_ai_malus_t3 + } + ## --- Shy. + if = { + limit = { + owner = { has_trait = shy } + } + add = camp_building_ai_malus_t3 + } + # Camp Purpose. + if = { + limit = { + owner = { + OR = { + has_realm_law_flag = unlocks_camp_fire_local_hangers_on + has_realm_law_flag = unlocks_camp_fire_future_dreams + has_realm_law_flag = unlocks_camp_fire_nightly_debates + has_realm_law_flag = unlocks_camp_fire_juicy_rumors + } + } + } + add = camp_building_ai_camp_purpose_t3 + } +} +proving_grounds_main_path_value = { + value = camp_building_ai_base_t3 + # Traits. + ## +++ Wrathful. + if = { + limit = { + owner = { has_trait = wrathful } + } + add = camp_building_ai_bonus_t3 + } + ## +++ Athletic. + if = { + limit = { + owner = { has_trait = athletic } + } + add = camp_building_ai_bonus_t3 + } + ## - Calm. + if = { + limit = { + owner = { has_trait = calm } + } + add = camp_building_ai_malus_t1 + } + # Camp Purpose. + if = { + limit = { + owner = { + OR = { + has_realm_law_flag = unlocks_proving_grounds_lockwagon + has_realm_law_flag = unlocks_proving_grounds_martial_study + has_realm_law_flag = unlocks_proving_grounds_the_stick_game + has_realm_law_flag = unlocks_proving_grounds_bodyguard_drills + } + } + } + add = camp_building_ai_camp_purpose_t3 + } +} +camp_perimeter_main_path_value = { + value = camp_building_ai_base_t1 + # Traits. + ## +++ Paranoid. + if = { + limit = { + owner = { has_trait = paranoid } + } + add = camp_building_ai_bonus_t3 + } + ## ++ Deceitful. + if = { + limit = { + owner = { has_trait = deceitful } + } + add = camp_building_ai_bonus_t2 + } + ## - Honest. + if = { + limit = { + owner = { has_trait = honest } + } + add = camp_building_ai_malus_t1 + } + ## --- Trusting. + if = { + limit = { + owner = { has_trait = trusting } + } + add = camp_building_ai_malus_t3 + } + # Camp Purpose. + if = { + limit = { + owner = { + OR = { + has_realm_law_flag = unlocks_camp_perimeter_extra_watch + has_realm_law_flag = unlocks_camp_perimeter_palisade + has_realm_law_flag = unlocks_camp_perimeter_ditch + } + } + } + add = camp_building_ai_camp_purpose_t1 + } +} + +################################################## +# Misc Values + +prison_break_value = { + value = 1 + if = { + limit = { + is_primary_heir_of = prev + } + add = 10 + } + if = { + limit = { + this = prev.primary_spouse + } + add = 10 + } +} + +# Powerful Family Rating +# House power score is used in code to enable bonuses from powerful houses +# root - house under evaluation +house_power_score = { + value = { + value = 0 + + save_temporary_scope_as = target_house + # Add a small amount of score for each house member within the realm (less for Japan) + if = { + limit = { + exists = house_head + } + if = { + limit = { + house_head = { government_is_japanese_trigger = yes } + } + add = { + every_house_member = { + limit = { top_liege = scope:target_house.house_head.top_liege } + add = 1.5 + } + desc = members_in_realm_desc + } + } + else = { + add = { + every_house_member = { + limit = { top_liege = scope:target_house.house_head.top_liege } + add = 3 + } + desc = members_in_realm_desc + } + } + + # Add scoring based on the House Head's Level of Influence + if = { + limit = { + house_head = { + NOT = { government_has_flag = government_has_merit } + influence_level >= 1 + } + } + add = { + value = house_head.influence_level + multiply = 5 + desc = house_head_influence_level_desc + } + } + + # Add scoring based on the House head's Merit Rank + if = { + limit = { + house_head = { + government_has_flag = government_has_merit + merit_level >= 1 + } + } + add = { + value = house_head.merit_level + multiply = 5 + desc = house_head_merit_level_desc + } + } + + # House head is a movement leader + if = { + limit = { + house_head = { + any_character_situation = { situation_type = dynastic_cycle } + is_any_movement_leader = yes + } + } + add = { + value = 10 + desc = house_head_is_movement_leader_desc + } + } + + # Add scoring for every house member on top liege's council - Higher for ministers + if = { + limit = { + exists = house_head.top_liege + house_head.top_liege = { + any_councillor = { + exists = house + scope:target_house ?= house + } + } + } + add = { + house_head.top_liege = { + every_councillor = { + limit = { + exists = house + scope:target_house ?= house + } + add = 15 + } + if = { + limit = { + tgp_has_access_to_ministry_trigger = yes + } + multiply = 2 + } + } + desc = house_members_on_council_desc + } + } + + # A house member is the favored ministers + if = { + limit = { + house_head.top_liege ?= { + employs_court_position = favored_minister_court_position + court_position:favored_minister_court_position = { + house ?= scope:target_house + } + } + } + add = { + value = 10 + desc = house_member_is_favored_minister_desc + } + } + + # Malus for not practicing the state faith + if = { + limit = { + house_head.top_liege ?= { government_allows = state_faith } + NOT = { house_head.top_liege.primary_title.state_faith ?= scope:target_house.house_head.faith } + } + add = { + value = -25 + desc = house_head_different_faith_powerful_family_rating + } + } + + # Estate building bonuses + if = { # Market + limit = { + house_head.domicile ?= { has_domicile_parameter = estate_increase_powerful_family_rating_6 } + } + add = { + value = estate_powerful_family_rating_6_value + desc = estate_buildings_desc + } + } + else_if = { + limit = { + house_head.domicile ?= { has_domicile_parameter = estate_increase_powerful_family_rating_5 } + } + add = { + value = estate_powerful_family_rating_5_value + desc = estate_buildings_desc + } + } + else_if = { + limit = { + house_head.domicile ?= { has_domicile_parameter = estate_increase_powerful_family_rating_4 } + } + add = { + value = estate_powerful_family_rating_4_value + desc = estate_buildings_desc + } + } + else_if = { + limit = { + house_head.domicile ?= { has_domicile_parameter = estate_increase_powerful_family_rating_3 } + } + add = { + value = estate_powerful_family_rating_3_value + desc = estate_buildings_desc + } + } + else_if = { + limit = { + house_head.domicile ?= { has_domicile_parameter = estate_increase_powerful_family_rating_2 } + } + add = { + value = estate_powerful_family_rating_2_value + desc = estate_buildings_desc + } + } + else_if = { + limit = { + house_head.domicile ?= { has_domicile_parameter = estate_increase_powerful_family_rating } + } + add = { + value = estate_powerful_family_rating_1_value + desc = estate_buildings_desc + } + } + if = { # Catacombs + limit = { + exists = house_head.dynasty + house_head.domicile ?= { has_domicile_parameter = estate_powerful_family_rating_per_dynasty_level } + } + add = { + value = estate_increase_powerful_famil_rating_per_dynasty_level_value + multiply = house_head.dynasty.dynasty_prestige_level + desc = estate_buildings_desc + } + } + + # When your estate is located in the realm's capital + if = { + limit = { + house_head = { + exists = top_liege.capital_province + domicile ?= { + is_domicile_type = estate + domicile_location = prev.top_liege.capital_province + } + } + } + add = { + value = 10 + desc = estate_in_capital_desc + } + } + + # Obligation/Theme Administration bonus + if = { + limit = { + house_head = { vassal_contract_has_flag = admin_prestige_obligation_bonus } + } + add = { + value = 10 + desc = imperial_theme_type_desc + } + } + + # Heart of the Family Diplomacy Lifestyle Perk + if = { + limit = { house_head = { has_perk = familial_familiar_perk } } + add = { + value = 10 + desc = familial_familiar_perk_name + } + } + + # Base score increase from Power is a Ladder dynasty legacy perk + if = { + limit = { + house_head.dynasty ?= { ep3_administrative_legacy_track_perks >= 3 } + } + add = { + value = 15 + desc = house_power_ep3_administrative_legacy_3 + } + } + + # Merit Dynasty Legacy Perk + if = { + limit = { + house_head.dynasty ?= { has_dynasty_perk = tgp_chinese_legacy_4 } + } + add = { + value = 15 + desc = movement_power_chinese_legacy_4 + } + } + + # From Mass Arrests Decision + if = { + limit = { house_head = { has_character_flag = mass_arrests_house_power_malus } } + add = { + value = -15 + desc = ep3_mass_arrests_house_power_malus + } + } + + if = { + limit = { house_head.confederation ?= { leading_house ?= scope:target_house } } + add = { + value = 0 + house_head.confederation = { + every_confederation_member_house = { add = 10 } + } + desc = led_bloc_size_desc + } + } + + # The number of governorships the house holds + multiply = { + value = 1 + every_house_member = { + limit = { + # Using the triggers of is_governor directly to save performance + is_landed = yes + government_allows = administrative + top_liege != this + highest_held_title_tier >= main_administrative_tier + house.house_head.top_liege ?= top_liege + } + add = 0.4 # Let's add a multiplier to the overall score for each governorship + } + desc = held_governoships_desc + } + + # Bonus for being the Ceremonial house + if = { + limit = { house_head = { tgp_is_in_ceremonial_house_trigger = yes } } + add = { + value = 100 + desc = tgp_ceremonial_house_desc + } + } + + # Bonus for being the imperial house (we deliberately but this at the end, behind the governorship multiplier, as an added bonus on top of everything else) + if = { + limit = { + any_house_member = { + top_liege = this + #primary_title.tier >= tier_empire (this is commented out because the house in power should always get this big boost) + house.house_head.top_liege ?= top_liege + } + } + add = { + value = 100 + if = { + limit = { + any_house_member = { + top_liege = this + primary_title.tier < tier_empire + house.house_head.top_liege ?= top_liege + } + } + subtract = 50 #For Kings and below the bonus is not quite as high - they are not a far ahead of everyone else as an emperor + } + desc = imperial_house_desc + } + } + + # Status Challenged + if = { + limit = { has_variable_list = status_challenged_by } + save_temporary_value_as = temp_total + subtract = { + value = scope:temp_total + multiply = { + value = 0.05 + multiply = { + value = 0 + every_in_list = { + variable = status_challenged_by + add = 1 + } + } + } + desc = challenge_status_powerful_family_rating_modifier + } + } + } + else = { + add = { + value = -100 + desc = house_is_lowborn_desc + } + } + } + + round = yes +} + +# Maximum investment a character can make to support a candidate for a title appointment +# root - investor +appointment_investment_cap = { + value = { + add = { + value = 50 # Base + desc = BASE_VALUE + } + ##### FAMILY RATING + if = { + limit = { house.house_head ?= this } + add = { + value = house.house_power_score + desc = appointment_investment_cap_family_rating + } + } + ##### AGE + if = { # ADULT - scaling bonus + limit = { is_adult = yes } + add = { + value = { + add = age + subtract = 16 + divide = 2 + ceiling = yes + } + desc = appointment_investment_cap_age + } + } + else = { # CHILD - scaling malus + add = { + value = { + add = age + subtract = 16 + divide = 2 + floor = yes + } + desc = appointment_investment_cap_age + } + } + ##### INFLUENCE LEVEL + if = { # NEGATIVE + limit = { influence_level < 1 } + add = { + value = -20 + desc = appointment_investment_cap_influence_level + } + } + else_if = { # POSITIVE + limit = { influence_level > 1 } + add = { + value = { + add = influence_level + multiply = 10 + } + desc = appointment_investment_cap_influence_level + } + } + ##### ESTATE BUILDINGS + if = { + limit = { exists = house.house_head.domicile } + house.house_head.domicile = { + add = { + value = 0 + if = { + limit = { has_domicile_building = estate_main_02 } + add = 10 + } + else_if = { + limit = { has_domicile_building = estate_main_03 } + add = 20 + } + else_if = { + limit = { has_domicile_building = estate_main_04 } + add = 30 + } + else_if = { + limit = { has_domicile_building = estate_main_05 } + add = 40 + } + if = { + limit = { has_domicile_building = reception_hall_02 } + add = 10 + } + else_if = { + limit = { has_domicile_building = reception_hall_03 } + add = 20 + } + else_if = { + limit = { has_domicile_building = reception_hall_04 } + add = 30 + } + else_if = { + limit = { has_domicile_building = reception_hall_05 } + add = 40 + } + if = { + limit = { has_domicile_building = japanese_manor_office_01 } + add = 5 + } + else_if = { + limit = { has_domicile_building = japanese_manor_office_02 } + add = 10 + } + else_if = { + limit = { has_domicile_building = japanese_manor_office_03 } + add = 15 + } + else_if = { + limit = { has_domicile_building = japanese_manor_office_04 } + add = 20 + } + else_if = { + limit = { has_domicile_building = japanese_manor_office_05 } + add = 25 + } + else_if = { + limit = { has_domicile_building = japanese_manor_office_06 } + add = 30 + } + desc = appointment_investment_cap_estate_buildings + } + } + } + ##### FAMILY ATTRIBUTES + house ?= { + add = { + value = 0 + if = { + limit = { has_house_power_parameter = increased_investment_cap_bonus_3 } + add = increased_investment_cap_bonus_3_value + } + else_if = { + limit = { has_house_power_parameter = increased_investment_cap_bonus_2 } + add = increased_investment_cap_bonus_2_value + } + else_if = { + limit = { has_house_power_parameter = increased_investment_cap_bonus_1 } + add = increased_investment_cap_bonus_1_value + } + desc = political_meddlers_attribute_name_desc + } + } + ##### EXPANDED POWER BASE + save_temporary_value_as = temp_total + if = { + limit = { has_character_modifier = ep3_expanded_power_base_minor_modifier } + add = { + value = scope:temp_total + multiply = 0.10 + round = yes + min = 25 + desc = ep3_expanded_power_base_minor_modifier + } + } + if = { + limit = { has_character_modifier = ep3_expanded_power_base_medium_modifier } + add = { + value = scope:temp_total + multiply = 0.20 + round = yes + min = 50 + desc = ep3_expanded_power_base_medium_modifier + } + } + if = { + limit = { has_character_modifier = ep3_expanded_power_base_major_modifier } + add = { + value = scope:temp_total + multiply = 0.30 + round = yes + min = 75 + desc = ep3_expanded_power_base_major_modifier + } + } + ##### MERIT + if = { + limit = { merit_level >= 1 } + add = { + value = { + add = merit_level + multiply = 5 + } + desc = "[merit_level|E]" + } + } + ##### CELESTIAL MINISTER + if = { + limit = { + is_councillor = yes + liege ?= { + tgp_has_access_to_ministry_trigger = yes + } + } + add = { + value = 10 + desc = is_a_minister_desc + } + } + min = 0 + } +} + +dominant_family_threshold_value = 0.25 + +ep3_governor_yearly_8150_total_count_value = { + value = 0 + every_in_list = { + list = rebel_counties + add = 1 + } + every_in_list = { + list = potential_rebel_counties + add = 1 + } +} + +#special bonus to traveling friends from a court event +court_position_aptitude_traveling_friends_value = { + if = { + limit = { + has_character_flag = travelling_friend + liege ?= { + any_court_position_holder = { + OR = { + has_relation_best_friend = root + has_relation_friend = root + } + has_character_flag = travelling_friend + } + } + } + add = { + value = 20 + desc = court_position_traveling_friend + } + } +} + +ep3_foreign_ruler_interest_in_coup_value = { + value = 0 + every_claim = { + limit = { + any_de_jure_top_liege = { + this = scope:target_char + } + } + add = 1 + } + if = { + limit = { has_relation_nemesis = scope:target_char } + add = 2 + } + else_if = { + limit = { has_relation_rival = scope:target_char } + add = 1 + } +} + +ep3_distance_to_comparator_claim = { + value = 0 + add = "title_capital_county.squared_distance(scope:comparator.capital_county)" + abs = yes + multiply = -1 +} + +ep3_distance_to_comparator_capital_county = { + value = 0 + add = "squared_distance(scope:comparator.capital_county)" + abs = yes + multiply = -1 +} + +number_of_granaries_in_egypt_value = { + value = 0 + every_county_in_region = { + region = custom_roman_aegyptus + limit = { + any_county_province = { + has_building_or_higher = cereal_fields_05 + } + } + add = 1 + max = 10 + } + min = 1 + desc = MODIFIER_DEFINITION_MAIN_DESC_PER_EGYPT_GRANARY +} + +grain_dole_cost = { + value = 1500 +} + +pay_off_crusaders_value = { + value = 0 + every_in_list = { + list = paying_off_crusaders + add = 1 + } + multiply = 150 +} + +ep3_byz_regiments_gained_value = { + value = 1 + if = { + limit = { + exists = scope:regiment_1 + highest_held_title_tier >= tier_kingdom + } + add = 1 + } + if = { + limit = { + exists = scope:regiment_2 + OR = { + highest_held_title_tier >= tier_duchy + this = scope:attacker + } + } + add = 1 + } +} + +ep3_byz_regiments_ck_value = { + value = 0 + if = { + limit = { + exists = scope:regiment_1 + } + add = 2 + } + if = { + limit = { + exists = scope:regiment_2 + } + add = 3 + } +} + +ep3_byz_reward_levy_size_value = { + value = 100 + if = { + limit = { + title:e_byzantium.holder.capital_county = { + development_level >= 5 + } + } + add = 100 + } + if = { + limit = { + title:e_byzantium.holder.capital_county = { + development_level >= 10 + } + } + add = 100 + } + if = { + limit = { + title:e_byzantium.holder.capital_county = { + development_level >= 15 + } + } + add = 100 + } + if = { + limit = { + title:e_byzantium.holder.capital_county = { + development_level >= 20 + } + } + add = 100 + } + if = { + limit = { + title:e_byzantium.holder.capital_county = { + development_level >= 25 + } + } + add = 100 + } + if = { + limit = { + title:e_byzantium.holder.capital_county = { + development_level >= 30 + } + } + add = 100 + } + if = { + limit = { + title:e_byzantium.holder.capital_county = { + development_level >= 35 + } + } + add = 100 + } + if = { + limit = { + title:e_byzantium.holder.capital_county = { + development_level >= 40 + } + } + add = 100 + } + if = { + limit = { + title:e_byzantium.holder.capital_county = { + development_level >= 50 + } + } + add = 150 + } + if = { + limit = { + title:e_byzantium.holder.capital_county = { + development_level >= 65 + } + } + add = 200 + } + if = { + limit = { + title:e_byzantium.holder.capital_county = { + development_level >= 80 + } + } + add = 250 + } + if = { + limit = { + highest_held_title_tier = tier_duchy + } + multiply = 1.33 + } + if = { + limit = { + highest_held_title_tier >= tier_kingdom + } + multiply = 1.66 + } +} + +ep3_sacking_byz_capital_payoff_value = { + value = 220 + + if = { + limit = { + title:e_byzantium.holder.capital_county = { + development_level >= 5 + } + } + add = 100 + } + if = { + limit = { + title:e_byzantium.holder.capital_county = { + development_level >= 10 + } + } + add = 100 + } + if = { + limit = { + title:e_byzantium.holder.capital_county = { + development_level >= 15 + } + } + add = 100 + } + if = { + limit = { + title:e_byzantium.holder.capital_county = { + development_level >= 20 + } + } + add = 100 + } + if = { + limit = { + title:e_byzantium.holder.capital_county = { + development_level >= 25 + } + } + add = 100 + } + if = { + limit = { + title:e_byzantium.holder.capital_county = { + development_level >= 30 + } + } + add = 100 + } + if = { + limit = { + title:e_byzantium.holder.capital_county = { + development_level >= 35 + } + } + add = 100 + } + if = { + limit = { + title:e_byzantium.holder.capital_county = { + development_level >= 40 + } + } + add = 100 + } + if = { + limit = { + title:e_byzantium.holder.capital_county = { + development_level >= 50 + } + } + add = 150 + } + if = { + limit = { + title:e_byzantium.holder.capital_county = { + development_level >= 65 + } + } + add = 200 + } + if = { + limit = { + title:e_byzantium.holder.capital_county = { + development_level >= 80 + } + } + add = 250 + } +} + +number_vassals_converting_to_new_state_faith = { + value = 0 + every_vassal = { + limit = { + opinion = { + target = root + value >= 30 + } + faith != root.faith + NOT = { has_vassal_stance = zealot } + is_ai = yes + } + add = 1 + } +} + +# Hasan Sabbah event troops + +hasan_sabbah_max_levies_value = 20000 + +hasan_sabbah_event_troops_value = { + value = 0 + + # Add troops for each appropriate county. + root.location.county.holder.top_liege = { + every_sub_realm_county = { + limit = { + faith = root.faith + } + add = 500 + } + } + + max = { + # Standard base max. + value = hasan_sabbah_max_levies_value + } + divide = 5 +} + +maa_regiments_cost_more_to_reinforce_per_soldier_trigger_mult = 4 + +provision_refill_value = { + value = 0.125 + if = { + limit = { + trigger_if = { + limit = { exists = scope:laamp_temp } + scope:laamp_temp = { has_perk = prepared_conscription_perk } + } + trigger_else = { always = no } + } + multiply = 1.25 + } + if = { + limit = { + scope:laamp_temp ?= { + has_perk = personal_touch_perk + landless_inspector_king_of_the_wilds = yes + } + } + multiply = 1.25 + } + if = { + limit = { + scope:laamp_temp ?= { + is_ai = no + has_game_rule = hard_difficulty + } + } + multiply = 0.5 + } + else_if = { + limit = { + scope:laamp_temp ?= { + is_ai = no + has_game_rule = very_hard_difficulty + } + } + multiply = 0.2 + } +} + +provision_refill_value_tt = { + value = 0.125 + if = { + limit = { has_perk = prepared_conscription_perk } + multiply = 1.25 + } + if = { + limit = { + has_perk = personal_touch_perk + landless_inspector_king_of_the_wilds = yes + } + multiply = 1.25 + } + if = { + limit = { + is_ai = no + has_game_rule = hard_difficulty + } + multiply = 0.5 + } + else_if = { + limit = { + is_ai = no + has_game_rule = very_hard_difficulty + } + multiply = 0.2 + } +} + +gold_refill_value = { + value = 3 + if = { + limit = { + scope:laamp_temp = { has_perk = cutting_corners_perk } + } + multiply = 1.25 + } + if = { + limit = { + scope:laamp_temp ?= { + has_perk = personal_touch_perk + landless_inspector_king_of_the_wilds = yes + } + } + multiply = 1.25 + } + if = { + limit = { + scope:laamp_temp ?= { + government_has_flag = government_is_nomadic + } + } + multiply = 1.5 + } + if = { + limit = { + scope:laamp_temp ?= { + is_ai = no + has_game_rule = hard_difficulty + } + } + multiply = 0.5 + } + else_if = { + limit = { + scope:laamp_temp ?= { + is_ai = no + has_game_rule = very_hard_difficulty + } + } + multiply = 0.2 + } + if = { + limit = { + trigger_if = { + limit = { exists = scope:laamp_temp } + scope:laamp_temp = { government_has_flag = government_is_nomadic } + } + trigger_else = { always = no } + } + multiply = { + add = scope:laamp_temp.martial + subtract = 8 + divide = 100 + add = 1 + } + } +} + +gold_refill_value_tt = { + value = 2 + if = { + limit = { + has_perk = cutting_corners_perk + } + multiply = 1.25 + } + if = { + limit = { + has_perk = personal_touch_perk + landless_inspector_king_of_the_wilds = yes + } + multiply = 1.25 + } + if = { + limit = { + government_has_flag = government_is_nomadic + } + multiply = 1.5 + } + if = { + limit = { + is_ai = no + has_game_rule = hard_difficulty + } + multiply = 0.5 + } + else_if = { + limit = { + is_ai = no + has_game_rule = very_hard_difficulty + } + multiply = 0.2 + } + if = { + limit = { + government_has_flag = government_is_nomadic + } + multiply = { + add = martial + subtract = 8 + divide = 100 + add = 1 + } + } +} + +replenishable_troops_value = { + value = maa_max_troops_count + subtract = maa_current_troops_count + if = { + limit = { maa_regiments_cost_more_to_reinforce_per_soldier_trigger = yes } + multiply = maa_regiments_cost_more_to_reinforce_per_soldier_trigger_mult + } +} + +replenishable_troops_with_provisions_value = { + value = replenishable_troops_value + max = { + add = scope:current_provisions_max_value_scope + multiply = provision_refill_value + } +} + +replenishable_troops_with_gold_value = { + value = replenishable_troops_value + max = { + add = scope:current_gold_max_value_scope + multiply = gold_refill_value + } +} + +replenishable_troops_max_provisions_value = { + value = 0 + scope:actor = { + every_maa_regiment = { + add = { + add = maa_max_troops_count + subtract = maa_current_troops_count + if = { + limit = { maa_regiments_cost_more_to_reinforce_per_soldier_trigger = yes } + multiply = maa_regiments_cost_more_to_reinforce_per_soldier_trigger_mult + } + } + } + } + max = scope:actor.domicile.provisions + divide = provision_refill_value + multiply = -1 +} + +replenishable_troops_payed_provisions_tt_value = { + value = 0 + every_maa_regiment = { + add = { + add = maa_max_troops_count + subtract = maa_current_troops_count + if = { + limit = { maa_regiments_cost_more_to_reinforce_per_soldier_trigger = yes } + multiply = maa_regiments_cost_more_to_reinforce_per_soldier_trigger_mult + } + } + } + divide = provision_refill_value_tt + max = domicile.provisions +} + +replenishable_troops_max_provisions_tt_value = { + value = 0 + every_maa_regiment = { + add = { + add = maa_max_troops_count + subtract = maa_current_troops_count + } + } + max = { + value = domicile.provisions + multiply = provision_refill_value_tt + } +} + +replenishable_troops_payed_gold_tt_value = { + value = 0 + every_maa_regiment = { + add = { + add = maa_max_troops_count + subtract = maa_current_troops_count + if = { + limit = { maa_regiments_cost_more_to_reinforce_per_soldier_trigger = yes } + multiply = maa_regiments_cost_more_to_reinforce_per_soldier_trigger_mult + } + } + } + divide = gold_refill_value_tt + max = gold +} + +replenishable_troops_max_gold_tt_value = { + value = 0 + every_maa_regiment = { + add = { + add = maa_max_troops_count + subtract = maa_current_troops_count + if = { + limit = { maa_regiments_cost_more_to_reinforce_per_soldier_trigger = yes } + multiply = maa_regiments_cost_more_to_reinforce_per_soldier_trigger_mult + } + } + } + max = { + value = gold + multiply = gold_refill_value_tt + } +} + +replenishable_troops_provision_cost_value = { + value = scope:actor.replenishable_troops_value + max = scope:actor.domicile.max_provisions + multiply = -1 +} + +reinforce_soldiers_regiment_soldiers_value = { + value = reinforce_soldiers_regiment_max_value + min = 1 + max = reinforce_soldiers_max_value +} + +reinforce_soldiers_regiment_max_value = { + value = 25 + if = { + limit = { + scope:actor = { has_perk = soldiers_of_lesser_fortune_perk } + } + multiply = 4 + } +} + +reinforce_soldiers_regiment_max_value_tooltip = { + value = 25 + if = { + limit = { + has_perk = soldiers_of_lesser_fortune_perk + } + multiply = 4 + } +} + +reinforce_soldiers_max_value = { + value = maa_max_troops_count + subtract = maa_current_troops_count +} + +reinforce_soldiers_reinforcable_regiments_value = { + value = 0 + every_maa_regiment = { + limit = { maa_current_troops_count < maa_max_troops_count } + # Cheaper cavalry + if = { + limit = { + OR = { + is_unit_type = light_cavalry + is_unit_type = heavy_cavalry + } + regiment_owner.domicile ?= { has_domicile_parameter = camp_cheaper_cavalry_reinforcement } + } + add = 0.5 + } + else = { add = 1 } + } + min = 0.5 +} + +reinforce_soldiers_reinforcable_regiments_undiscounted_value = { + value = 0 + every_maa_regiment = { + limit = { maa_current_troops_count < maa_max_troops_count } + add = 1 + } + min = 1 +} + +reinforce_soldiers_gold_value = { + value = minor_gold_value + if = { + limit = { + domicile ?= { has_domicile_parameter = camp_improved_reinforcement_from_gold } + } + multiply = 0.5 + } + multiply = reinforce_soldiers_reinforcable_regiments_value +} + +reinforce_soldiers_dread_cost_value = { + value = 5 + if = { + limit = { + scope:actor.domicile = { has_domicile_parameter = camp_improved_entice_local_mercenaries } + } + add = -2.5 + } + multiply = reinforce_soldiers_reinforcable_regiments_value +} + +small_empire_size_value = 75 +large_empire_size_value = 125 + +current_size_empire_value = { add = root.realm_size } + +laamp_improved_learning_contract_success_value = 20 # Update parameter tooltip if this is changed! + +laamp_improved_tracker_contract_success_value = 20 # Update parameter tooltip if this is changed! + +# Currently this define is set to 100, so adjust with that in mind. +provisions_privation_threshold_start = { value = define:NCharacter|PROVISIONS_LOW_WARNING } +provisions_privation_threshold_low = 66 +provisions_privation_threshold_very_low = 33 +provisions_privation_threshold_empty = 0 + +gather_provisions_forage_base_value = { + # TERRAIN + if = { + limit = { + OR = { + terrain = desert + terrain = desert_mountains + terrain = taiga + } + } + add = 100 + } + else_if = { + limit = { + NOT = { + root = { has_perk = golden_aplomb_perk } + } + OR = { + terrain = drylands + terrain = jungle + terrain = mountains + terrain = wetlands + terrain = steppe + } + } + add = 250 + } + else = { add = 500 } + # BUILDINGS + if = { + limit = { has_building_or_higher = pastures_01 } + add = 25 + } + if = { + limit = { has_building_or_higher = orchards_01 } + add = 25 + } + if = { + limit = { has_building_or_higher = farm_estates_01 } + add = 25 + } + if = { + limit = { has_building_or_higher = cereal_fields_01 } + add = 25 + } + if = { + limit = { has_building_or_higher = plantations_01 } + add = 25 + } + if = { + limit = { has_building_or_higher = hill_farms_01 } + add = 25 + } + # WINTER + if = { + limit = { has_province_modifier = winter_mild_modifier } + add = -50 + } + else_if = { + limit = { has_province_modifier = winter_normal_modifier } + add = -100 + } + else_if = { + limit = { has_province_modifier = winter_harsh_modifier } + add = -150 + } + min = 50 + # We deliberately apply this after the min, since it's a global boost. + if = { + limit = { + root.domicile = { has_domicile_parameter = camp_improves_gather_provisions_hunting } + } + multiply = camp_improves_gather_provisions_hunting_value + } + if = { + limit = { + root = { has_perk = it_is_my_domain_perk } + } + multiply = 1.25 + } + if = { # Inspector Lifestyle Perk + limit = { + landless_inspector_terrain_knowing_the_land_trigger = yes + root = { has_perk = know_your_land_know_your_people_perk } + } + multiply = 1.5 + } +} +# Parameter improvements from camp buildings. +camp_improves_gather_provisions_hunting_value = 1.5 +camp_improves_gather_provisions_hunting_loc_value = { + value = camp_improves_gather_provisions_hunting_value + add = -1 +} + +gather_provisions_hunt_base_value = { + value = 50 + # TERRAIN + if = { + limit = { + OR = { + terrain = farmlands + terrain = floodplains + terrain = wetlands + } + } + add = 100 + } + else_if = { + limit = { + NOT = { + root = { has_perk = golden_aplomb_perk } + } + OR = { + terrain = desert + terrain = desert_mountains + terrain = mountains + terrain = taiga + terrain = steppe + } + } + add = 250 + } + else = { add = 500 } + # HOLDING + if = { + limit = { has_holding = no } + add = 50 + } + # BUILDINGS + if = { + limit = { has_building_or_higher = hunting_grounds_01 } + add = 50 + } + if = { + limit = { has_building_or_higher = royal_forest_01 } + add = 100 + } + min = 5 + # We deliberately apply this after the min, since it's a global boost. + if = { + limit = { + root.domicile = { has_domicile_parameter = camp_improves_gather_provisions_foraging } + } + multiply = camp_improves_gather_provisions_foraging_value + } + if = { + limit = { + root = { has_perk = it_is_my_domain_perk } + } + multiply = 1.25 + } +} +# Parameter improvements from camp buildings. +camp_improves_gather_provisions_foraging_value = 1.5 +camp_improves_gather_provisions_foraging_loc_value = { + value = camp_improves_gather_provisions_foraging_value + add = -1 +} + +provisions_low_value = 10 + +adventurers_make_local_deals_option_value = { + value = 0 + if = { + limit = { root.current_travel_plan.current_location.available_loot > 0 } + add = root.current_travel_plan.current_location.available_loot + divide = 4 + } +} + +strong_governor_military_value = { + value = 0 + add = scope:emperor.max_military_strength + multiply = 0.2 +} + +ep3_emperors_war_strength_value = { + value = 0 + if = { + limit = { + scope:emperor = { + is_defender_in_war = scope:war + } + } + scope:war = { + every_war_defender = { + add = current_military_strength + } + } + } + else = { + scope:war = { + every_war_attacker = { + add = current_military_strength + } + } + } +} + +ep3_emperors_war_strength_double_value = { + value = 0 + if = { + limit = { + scope:emperor = { + is_defender_in_war = scope:war + } + } + scope:war = { + every_war_defender = { + add = current_military_strength + } + } + } + else = { + scope:war = { + every_war_attacker = { + add = current_military_strength + } + } + } + multiply = 2 +} + +ep3_emperors_foe_war_strength_value = { + value = 0 + if = { + limit = { + scope:emperor = { + is_defender_in_war = scope:war + } + } + scope:war = { + every_war_attacker = { + add = current_military_strength + } + } + } + else = { + scope:war = { + every_war_defender = { + add = current_military_strength + } + } + } +} + +ep3_emperors_foe_war_strength_double_value = { + value = 0 + if = { + limit = { + scope:emperor = { + is_defender_in_war = scope:war + } + } + scope:war = { + every_war_attacker = { + add = current_military_strength + } + } + } + else = { + scope:war = { + every_war_defender = { + add = current_military_strength + } + } + } + multiply = 2 +} + +ep3_governor_yearly_3050_regiment_size_value = { + value = 0 + scope:regiment = { + add = maa_size + } +} + +provisions_threshold_critical_low_value = { value = define:NCharacter|PROVISIONS_LOW_WARNING } #Will literally throw a warning in the UI if provisions go beneath this + +provisions_threshold_low_value = { + value = max_provisions + multiply = 0.2 +} +provisions_threshold_mid_value = { + value = max_provisions + multiply = 0.5 +} +provisions_threshold_good_value = { + value = max_provisions + multiply = 0.8 +} + +ep3_legacy_domicile_artifact_counter_illustrious_score = { + value = var:ep3_legacy_domicile_artifact_counter_illustrious + multiply = 4 +} +ep3_legacy_domicile_artifact_counter_famed_score = { + value = var:ep3_legacy_domicile_artifact_counter_famed + multiply = 3 +} +ep3_legacy_domicile_artifact_counter_masterwork_score = { + value = var:ep3_legacy_domicile_artifact_counter_masterwork + multiply = 2 +} +ep3_legacy_domicile_artifact_counter_common_score = { + value = var:ep3_legacy_domicile_artifact_counter_common + multiply = 1 +} +cabinet_of_curiosities_artifact_score = { + value = 0 + if = { + limit = { has_variable = ep3_legacy_domicile_artifact_counter_illustrious } + add = ep3_legacy_domicile_artifact_counter_illustrious_score + } + if = { + limit = { has_variable = ep3_legacy_domicile_artifact_counter_famed } + add = ep3_legacy_domicile_artifact_counter_famed_score + } + if = { + limit = { has_variable = ep3_legacy_domicile_artifact_counter_masterwork } + add = ep3_legacy_domicile_artifact_counter_masterwork_score + } + if = { + limit = { has_variable = ep3_legacy_domicile_artifact_counter_common } + add = ep3_legacy_domicile_artifact_counter_common_score + } +} + +latin_emp_army_levies_value = { + value = 100 + if = { + limit = { + culture = { + has_cultural_era_or_later = culture_era_early_medieval + } + } + add = 100 + } + if = { + limit = { + culture = { + has_cultural_era_or_later = culture_era_high_medieval + } + } + add = 200 + } + if = { + limit = { + culture = { + has_cultural_era_or_later = culture_era_late_medieval + } + } + add = 200 + } +} + +latin_emp_army_maa_value = { + value = 1 + if = { + limit = { + culture = { + has_cultural_era_or_later = culture_era_early_medieval + } + } + add = 1 + } + if = { + limit = { + culture = { + has_cultural_era_or_later = culture_era_high_medieval + } + } + add = 1 + } + if = { + limit = { + culture = { + has_cultural_era_or_later = culture_era_late_medieval + } + } + add = 1 + } +} + +boost_efficiency_maximum_value = 40 +damage_efficiency_minimum_value = -40 +efficiency_interaction_cooldown_years_value = 5 +efficiency_interaction_change_value = 4 + +ep3_governor_yearly_3070_governorship_value = { + value = 0 + every_sub_realm_county = { + add = 1 + } +} + +ep3_found_despotate_control_total_value = { + value = 0 + primary_title.kingdom = { + every_de_jure_county = { add = 1 } + } +} + +ep3_found_despotate_control_held_value = { + value = 0 + save_temporary_scope_as = holder_temp + primary_title.kingdom = { + every_de_jure_county = { + limit = { + county_held_or_vassal_to_target_trigger = { TARGET = scope:holder_temp } + } + add = 1 + } + } +} + +ep3_found_despotate_control_percent_value = { + value = ep3_found_despotate_control_held_value + divide = ep3_found_despotate_control_total_value + multiply = 100 +} + +military_strength_25_percent_value = { + value = current_military_strength + multiply = 0.25 +} + +military_strength_75_percent_value = { + value = current_military_strength + multiply = 0.75 +} + +number_of_counties_with_heresy_1 = { + value = 0 + top_liege = { + every_realm_county = { + limit = { + faith = scope:heresy_1 + } + add = 1 + } + } +} + +number_of_counties_with_heresy_2 = { + value = 0 + top_liege = { + every_realm_county = { + limit = { + faith = scope:heresy_2 + } + add = 1 + } + } +} + +number_of_counties_with_heresy_3 = { + value = 0 + top_liege = { + every_realm_county = { + limit = { + faith = scope:heresy_3 + } + add = 1 + } + } +} + +number_of_counties_with_heresy_acceptance = { + value = 0 + every_realm_county = { + limit = { + faith = scope:heresy + } + add = 10 + } +} + +number_of_vassals_with_heresy_acceptance = { + value = 0 + every_vassal = { + limit = { + faith = scope:heresy + } + add = 5 + } +} + +influence_difference_value = { + value = scope:heretic.influence + subtract = root.influence + multiply = 0.1 +} + +architect_aptitude_scale_value = { + value = 1 + multiply = root.court_position:royal_architect_court_position.aptitude:royal_architect_court_position +} + +ep3_actor_governor_trait_level_value = { + value = -1 + scope:actor ?= { + if = { + limit = { has_trait = governor } + add = 1 + } + if = { + limit = { has_trait_xp = { trait = governor value >= 25 } } + add = 1 + } + if = { + limit = { has_trait_xp = { trait = governor value >= 50 } } + add = 1 + } + if = { + limit = { has_trait_xp = { trait = governor value >= 75 } } + add = 1 + } + if = { + limit = { has_trait_xp = { trait = governor value >= 100 } } + add = 1 + } + } +} + +ep3_recipient_governor_trait_level_value = { + value = -1 + scope:recipient ?= { + if = { + limit = { has_trait = governor } + add = 1 + } + if = { + limit = { has_trait_xp = { trait = governor value >= 25 } } + add = 1 + } + if = { + limit = { has_trait_xp = { trait = governor value >= 50 } } + add = 1 + } + if = { + limit = { has_trait_xp = { trait = governor value >= 75 } } + add = 1 + } + if = { + limit = { has_trait_xp = { trait = governor value >= 100 } } + add = 1 + } + } +} + +ep3_actor_recipient_governor_trait_level_diff_value = { + value = ep3_actor_governor_trait_level_value + subtract = ep3_recipient_governor_trait_level_value +} + +event_troops_ep3_separatist_scale_value = { + value = 100 + multiply = { + value = root.location.duchy.holder.primary_title.tier + } +} + +hostile_scheme_variable_list_value = { + value = 0 + scope:owner = { + every_in_list = { + variable = supporting_hostile_schemes + add = 5 + } + } +} + + + +personal_scheme_variable_list_value = { + value = 0 + scope:owner = { + every_in_list = { + variable = supporting_personal_schemes + add = 5 + } + } +} + +political_scheme_variable_list_value = { + value = 0 + scope:owner = { + every_in_list = { + variable = supporting_political_schemes + add = 5 + } + } +} + +hostile_scheme_base_bonus_per_character = 5 +personal_scheme_base_bonus_per_character = 5 +political_scheme_base_bonus_per_character = 5 + +# Laamps above this count must be exceptional characters or of interest to the player. +## This is because there are various things they do that are _fairly_ unperformant, so it's important that we put a good soft-cap on their numbers to stop them growing out of control and tanking performance. +### Code decisions were made assuming that there would be _maybe_ 200 on the map in the late game, give or take ~50. +#### More than that will work mechanically but prepare for substantial frame rate drops. +max_desired_laamps_value = { + value = 200 + switch = { + trigger = has_game_rule + ai_laamp_numbers_25 = { value = 25 } + ai_laamp_numbers_50 = { value = 50 } + ai_laamp_numbers_100 = { value = 100 } + ai_laamp_numbers_150 = { value = 150 } + ai_laamp_numbers_200 = { value = 200 } + } +} + +seventyfive_percent_of_max_desired_laamps_value = { + value = max_desired_laamps_value + multiply = 0.75 +} + +too_many_laamps_value = { + value = max_desired_laamps_value + switch = { + trigger = has_game_rule + ai_laamp_numbers_25 = { add = 2 } + ai_laamp_numbers_50 = { add = 5 } + ai_laamp_numbers_100 = { add = 10 } + ai_laamp_numbers_150 = { add = 15 } + ai_laamp_numbers_200 = { add = 20 } + } +} + +wipe_slate_min_xp_to_remove_trait_value = 5 +crusader_absolution_min_xp_to_remove_trait_value = 25 +crusader_absolution_xp_removed_per_track_value = { + value = 100 + subtract = crusader_absolution_min_xp_to_remove_trait_value + multiply = -1 +} + +camp_party_province_reference_value = { + value = 15 +} + +amount_of_followers_value = { + value = 0 + every_courtier = { + add = 1 + } +} + +current_camp_temperament_average_value = { + value = 0 + every_courtier = { + add = "opinion(root)" + } + divide = amount_of_followers_value +} + +low_camp_temperament_value = define:NDomicile|TEMPERAMENT_THRESHOLD_LOW +high_camp_temperament_value = define:NDomicile|TEMPERAMENT_THRESHOLD_HIGH + +default_temperament_high_value_scale = { + value = prestige_level + if = { + limit = { + has_perk = absolute_control_perk + } + add = { + value = dread + divide = 20 + } + } + if = { + limit = { + has_perk = honored_to_serve_perk + } + add = { + every_courtier = { + add = 1 + } + divide = 5 + min = 0 + } + } + if = { + limit = { + has_perk = scientific_perk + } + add = { + every_courtier = { + limit = { + learning >= 15 + } + add = 1 + } + min = 0 + } + } + if = { + limit = { + has_perk = gracious_host_impeccable_guest_perk + } + add = num_of_known_languages + } +} + +default_temperament_low_value_scale = { + value = prestige_level +} + +estate_increase_gardener_aptitude_value_1 = 5 +estate_increase_gardener_aptitude_value_2 = 10 +estate_increase_gardener_aptitude_value_3 = 15 +estate_increase_gardener_aptitude_value_4 = 20 +estate_increase_gardener_aptitude_value_5 = 25 +estate_increase_gardener_aptitude_value_6 = 30 + +estate_increased_personal_scheme_success_1_value = 5 +estate_increased_personal_scheme_success_2_value = 15 +estate_increased_personal_scheme_success_3_value = 25 + +kennels_more_successful_hunts_1_value = 10 +kennels_more_successful_hunts_2_value = 15 + +cultivated_sophistication_development_gain = minor_development_progress_gain + +slander_appointment_score_value = -25 +slander_acclamation_score_value = -50 + +promote_appointment_score_value = 30 +promote_acclamation_score_value = 50 + +ep3_requested_faith_support_0_value = { + value = major_influence_gain +} +ep3_requested_faith_support_1_value = { + value = ep3_requested_faith_support_0_value + multiply = 1.5 +} +ep3_requested_faith_support_2_value = { + value = ep3_requested_faith_support_0_value + multiply = 2 +} +ep3_requested_faith_support_3_value = { + value = ep3_requested_faith_support_0_value + multiply = 2.5 +} +ep3_requested_faith_support_4_value = { + value = ep3_requested_faith_support_0_value + multiply = 3 +} +ep3_requested_faith_support_5_value = { + value = ep3_requested_faith_support_0_value + multiply = 3.5 +} +ep3_requested_faith_support_6_value = { + value = ep3_requested_faith_support_0_value + multiply = 4 +} + +chancellor_integrate_title_admin_top_liege_bonus = 1 +chancellor_integrate_title_admin_target_bonus = 0.5 + +de_jure_governor_bonus = -20 + +greek_anarchy_army_levy_value = { + value = 50 + if = { + limit = { + culture = { + has_cultural_era_or_later = culture_era_high_medieval + } + } + add = 100 + } + if = { + limit = { + culture = { + has_cultural_era_or_later = culture_era_late_medieval + } + } + add = 100 + } + if = { + limit = { + scope:defender = { + highest_held_title_tier >= tier_duchy + } + } + add = 150 + } + if = { + limit = { + scope:defender = { + highest_held_title_tier >= tier_kingdom + } + } + add = 200 + } + if = { + limit = { + scope:defender = { + highest_held_title_tier >= tier_empire + } + } + add = 200 + } +} + +greek_anarchy_army_weak_maa_value = { + value = 1 + if = { + limit = { + culture = { + has_cultural_era_or_later = culture_era_high_medieval + } + } + add = 1 + } + if = { + limit = { + culture = { + has_cultural_era_or_later = culture_era_late_medieval + } + } + add = 2 + } + if = { + limit = { + scope:defender = { + highest_held_title_tier >= tier_duchy + } + } + add = 1 + } + if = { + limit = { + scope:defender = { + highest_held_title_tier >= tier_kingdom + } + } + add = 2 + } + if = { + limit = { + scope:defender = { + highest_held_title_tier >= tier_empire + } + } + add = 1 + } +} + +greek_anarchy_army_maa_value = { + value = 1 + if = { + limit = { + culture = { + has_cultural_era_or_later = culture_era_late_medieval + } + } + add = 2 + } + if = { + limit = { + scope:defender = { + highest_held_title_tier >= tier_duchy + } + } + add = 1 + } + if = { + limit = { + scope:defender = { + highest_held_title_tier >= tier_kingdom + } + } + add = 1 + } +} + +greek_anarchy_army_heavy_cav_value = { + value = 0 + if = { + limit = { + culture = { + has_cultural_era_or_later = culture_era_late_medieval + } + } + add = 1 + } + if = { + limit = { + scope:defender = { + highest_held_title_tier >= tier_duchy + } + } + add = 1 + } + if = { + limit = { + scope:defender = { + highest_held_title_tier >= tier_empire + } + } + add = 1 + } +} + +greek_anarchy_development_value = -50 + +faction_power_existing_threshold_value = { + value = faction_power + multiply = 2 +} + +ep3_invite_to_faction_war_strength_compare_defender_value = { + value = 0 + every_war_defender = { add = current_military_strength } +} + +ep3_invite_to_faction_war_strength_compare_attacker_value = { + value = 0 + every_war_attacker = { add = current_military_strength } +} + +admin_convert_influence_value = { + value = 0 + if = { + limit = { + has_character_flag = latin_emp_force_admin_flag + } + add = major_influence_gain + } + else = { + add = monumental_influence_gain + } +} + +admin_convert_legitimacy_value = { + value = 0 + if = { + limit = { + has_character_flag = latin_emp_force_admin_flag + } + add = minor_legitimacy_gain + } + else = { + add = medium_legitimacy_gain + } +} + +chance_to_be_educated_while_educating_value = { + value = 2.5 + if = { + limit = { has_perk = learn_on_the_job_perk } + multiply = 2 + } +} + +learning_task_contract_qualified_score_value = 1 +learning_task_contract_medium_score_value = 2 +learning_task_contract_major_score_value = 3 + +laamp_base_contract_schemes_2661_modifier_duration_value = { + value = 5 + if = { + limit = { + root = { is_ai = no } + } + add = 20 + } +} + +rebuke_roman_revanchism_sicily_requirements_no_ere_county_value = 10 +rebuke_roman_revanchism_sicily_requirements_some_ere_county_value = 13 +rebuke_roman_revanchism_sicily_requirements_no_ere_in_italy_county_value = 5 +rebuke_roman_revanchism_sicily_fame_reward_value = 1000 + +# How many provisions do we give out per modifier removed? +butcher_animals_decision_cat_provision_value = 50 +butcher_animals_decision_dog_provision_value = 75 +butcher_animals_decision_dog_building_provision_value = 750 +butcher_animals_decision_horse_provision_value = 150 +butcher_animals_decision_horse_building_provision_value = 1250 +butcher_animals_decision_elephant_building_provision = 2500 + +# How long before you can rebuild buildings/sacrifice the animals again? +butcher_animals_decision_regular_cooldown_value = 25 +butcher_animals_decision_elephant_cooldown_value = 50 + +add_camp_officer_aptitude_value = { + if = { + limit = { has_court_position = second_camp_officer } + add = "aptitude(second_camp_officer)" + } + else_if = { + limit = { has_court_position = quartermaster_camp_officer } + add = "aptitude(quartermaster_camp_officer)" + } + else_if = { + limit = { has_court_position = armorer_camp_officer } + add = "aptitude(armorer_camp_officer)" + } + else_if = { + limit = { has_court_position = chief_forager_camp_officer } + add = "aptitude(chief_forager_camp_officer)" + } + else_if = { + limit = { has_court_position = master_thief_camp_officer } + add = "aptitude(master_thief_camp_officer)" + } + else_if = { + limit = { has_court_position = head_porter_camp_officer } + add = "aptitude(head_porter_camp_officer)" + } + else_if = { + limit = { has_court_position = head_groom_camp_officer } + add = "aptitude(head_groom_camp_officer)" + } + else_if = { + limit = { has_court_position = huntperson_camp_officer } + add = "aptitude(huntperson_camp_officer)" + } + else_if = { + limit = { has_court_position = kennelperson_camp_officer } + add = "aptitude(kennelperson_camp_officer)" + } + else_if = { + limit = { has_court_position = chief_engineer_camp_officer } + add = "aptitude(chief_engineer_camp_officer)" + } + else_if = { + limit = { has_court_position = witness_camp_officer } + add = "aptitude(witness_camp_officer)" + } + else_if = { + limit = { has_court_position = person_haggler_camp_officer } + add = "aptitude(person_haggler_camp_officer)" + } + else_if = { + limit = { has_court_position = camp_cook_camp_officer } + add = "aptitude(camp_cook_camp_officer)" + } + else_if = { + limit = { has_court_position = master_bard_camp_officer } + add = "aptitude(master_bard_camp_officer)" + } + else_if = { + limit = { has_court_position = stooge_camp_officer } + add = "aptitude(stooge_camp_officer)" + } + else_if = { + limit = { has_court_position = master_of_arms_camp_officer } + add = "aptitude(master_of_arms_camp_officer)" + } + else_if = { + limit = { has_court_position = light_cavalry_captain_camp_officer } + add = "aptitude(light_cavalry_captain_camp_officer)" + } + else_if = { + limit = { has_court_position = camelry_captain_camp_officer } + add = "aptitude(camelry_captain_camp_officer)" + } + else_if = { + limit = { has_court_position = elephantry_captain_camp_officer } + add = "aptitude(elephantry_captain_camp_officer)" + } + else_if = { + limit = { has_court_position = heavy_cavalry_captain_camp_officer } + add = "aptitude(heavy_cavalry_captain_camp_officer)" + } + else_if = { + limit = { has_court_position = horse_archer_captain_camp_officer } + add = "aptitude(horse_archer_captain_camp_officer)" + } + else_if = { + limit = { has_court_position = archer_captain_camp_officer } + add = "aptitude(archer_captain_camp_officer)" + } + else_if = { + limit = { has_court_position = heavy_infantry_captain_camp_officer } + add = "aptitude(heavy_infantry_captain_camp_officer)" + } + else_if = { + limit = { has_court_position = light_infantry_captain_camp_officer } + add = "aptitude(light_infantry_captain_camp_officer)" + } + else_if = { + limit = { has_court_position = pike_captain_camp_officer } + add = "aptitude(pike_captain_camp_officer)" + } + else_if = { + limit = { has_court_position = master_of_spoils_camp_officer } + add = "aptitude(master_of_spoils_camp_officer)" + } + else_if = { + limit = { has_court_position = laureate_camp_officer } + add = "aptitude(laureate_camp_officer)" + } + else_if = { + limit = { has_court_position = camp_priest_camp_officer } + add = "aptitude(camp_priest_camp_officer)" + } +} + +laamp_base_contract_schemes_1301_maa_damage_catastrophic_value = -0.6 +laamp_base_contract_schemes_1301_maa_damage_heavy_value = -0.45 +laamp_base_contract_schemes_1301_maa_damage_moderate_value = -0.3 +laamp_base_contract_schemes_1301_maa_damage_light_value = -0.2 + +# Thomas Aquinas was born in 1225, more or less +ep3_thomas_aquinas_age_value = { + value = current_year + add = -1225 +} + +ep3_interactions_events_0500_troops_count_value = 100 + +ep3_adventurer_ai_contracts_per_employer_max_value = 3 +ep3_adventurer_ai_contracts_per_employer_min_value = 1 +ep3_adventurer_ai_employers_per_kingdom_max_value = 8 +ep3_adventurer_ai_employers_per_kingdom_min_value = 4 + +procure_estate_interaction_cost_base_gold = 1000 +procure_estate_interaction_cost_base_prestige = 2000 +procure_estate_interaction_cost_base_piety = 1000 + +request_co_emperor_interaction_gold_cost_value = { value = monumental_gold_value } +request_co_emperor_interaction_influence_cost_value = { + value = monumental_influence_value + multiply = 2 +} + +see_how_its_done_gold_reward_value = { + value = 20 + multiply = been_there_done_that_check_multiplier_value +} + +visit_settlement_paid_training_value = { + value = 0 + if = { + limit = { prowess < low_skill_rating } + value = tiny_gold_laamps_value + } + else_if = { + limit = { prowess < mediocre_skill_rating } + value = minor_gold_laamps_value + } + else_if = { + limit = { prowess < decent_skill_rating } + value = medium_gold_laamps_value + } + else_if = { + limit = { prowess < high_skill_rating } + value = major_gold_laamps_value + } + else_if = { + limit = { prowess < extremely_high_skill_rating } + value = massive_gold_laamps_value + divide = 2 + } + else = { + value = massive_gold_laamps_value + } +} + +harrying_miniscule_increase_value = 0.3 +harrying_minor_increase_value = 0.5 +harrying_medium_increase_value = 1 + +laamp_marriable_women_value = { + if = { + limit = { laamp_request_likely_marriable_woman_trigger = yes } + add = 1 + } + every_courtier = { + limit = { laamp_request_likely_marriable_woman_trigger = yes } + add = 1 + } +} + +laamp_marriable_women_realistic_value = { + every_courtier = { + limit = { + laamp_request_likely_marriable_woman_trigger = yes + NOR = { + is_close_family_of = root + has_any_moderate_good_relationship_with_character_trigger = { CHARACTER = root } + is_councillor_of = root + is_concubine_of = root + } + } + add = 1 + } +} + +laamp_marriable_men_value = { + if = { + limit = { laamp_request_likely_marriable_man_trigger = yes } + add = 1 + } + every_courtier = { + limit = { laamp_request_likely_marriable_man_trigger = yes } + add = 1 + } +} + +laamp_marriable_men_realistic_value = { + every_courtier = { + limit = { + laamp_request_likely_marriable_man_trigger = yes + NOR = { + is_close_family_of = root + has_any_moderate_good_relationship_with_character_trigger = { CHARACTER = root } + is_councillor_of = root + is_concubine_of = root + } + } + add = 1 + } +} + +laamp_city_construction_year_value = { + value = scope:year_of_construction + add = 100 +} + +estate_increase_tutor_aptitude_value_1 = 5 +estate_increase_tutor_aptitude_value_2 = 10 +estate_increase_tutor_aptitude_value_3 = 15 +estate_increase_tutor_aptitude_value_4 = 20 +estate_increase_tutor_aptitude_value_5 = 25 +estate_increase_tutor_aptitude_value_6 = 30 + +force_step_down_interaction_gold_cost_value = { + value = 0 + scope:recipient = { + if = { + limit = { highest_held_title_tier = tier_empire } + add = scope:actor.monumental_gold_value + multiply = 3 + } + else_if = { + limit = { highest_held_title_tier = tier_kingdom } + add = scope:actor.monumental_gold_value + } + else_if = { + limit = { highest_held_title_tier = tier_duchy } + add = scope:actor.massive_gold_value + } + else_if = { + limit = { highest_held_title_tier = tier_county } + add = scope:actor.major_gold_value + } + } + multiply = scope:recipient.number_of_held_governorships +} + +force_step_down_interaction_influence_cost_value = { + value = 0 + scope:recipient = { + if = { + limit = { highest_held_title_tier = tier_empire } + add = scope:actor.monumental_influence_value + multiply = 3 + } + else_if = { + limit = { highest_held_title_tier = tier_kingdom } + add = scope:actor.monumental_influence_value + } + else_if = { + limit = { highest_held_title_tier = tier_duchy } + add = scope:actor.massive_influence_value + } + else_if = { + limit = { highest_held_title_tier = tier_county } + add = scope:actor.major_influence_value + } + } + multiply = 2 + multiply = scope:recipient.number_of_held_governorships + multiply = -1 +} + +number_of_held_governorships = { + value = 0 + save_temporary_scope_as = governor_temp + every_held_title = { + limit = { + tier = scope:governor_temp.highest_held_title_tier + is_landless_type_title = no + is_noble_family_title = no + } + add = 1 + } +} + +# Family attribute values +increased_investment_cap_bonus_1_value = 10 +increased_investment_cap_bonus_2_value = 20 +increased_investment_cap_bonus_3_value = 40 + +improved_siphon_treasury_scheme_1_value = 4 +improved_siphon_treasury_scheme_2_value = 8 +improved_siphon_treasury_scheme_3_value = 12 + +gain_dynasty_prestige_on_building_construction_1_value = 10 +gain_dynasty_prestige_on_building_construction_2_value = 20 +gain_dynasty_prestige_on_building_construction_3_value = 30 + +building_construction_dynasty_prestige_gain_value = { + value = 0 + scope:character.house ?= { + if = { + limit = { has_house_power_parameter = gain_dynasty_prestige_on_building_construction_3 } + add = gain_dynasty_prestige_on_building_construction_3_value + } + else_if = { + limit = { has_house_power_parameter = gain_dynasty_prestige_on_building_construction_2 } + add = gain_dynasty_prestige_on_building_construction_2_value + } + else_if = { + limit = { has_house_power_parameter = gain_dynasty_prestige_on_building_construction_1 } + add = gain_dynasty_prestige_on_building_construction_1_value + } + } +} + +increased_request_troops_acceptance_1_value = 10 +increased_request_troops_acceptance_2_value = 20 +increased_request_troops_acceptance_3_value = 30 + +swing_scales_cost_reduction_1_value = -0.1 +swing_scales_cost_reduction_2_value = -0.15 +swing_scales_cost_reduction_3_value = -0.2 + +swing_scales_cost_multipler_value = { + value = 1 + house ?= { + if = { + limit = { has_house_power_parameter = respected_despots } + if = { + limit = { has_house_power_parameter = swing_scales_cost_reduction_3 } + add = swing_scales_cost_reduction_3_value + } + else_if = { + limit = { has_house_power_parameter = swing_scales_cost_reduction_2 } + add = swing_scales_cost_reduction_2_value + } + else_if = { + limit = { has_house_power_parameter = swing_scales_cost_reduction_1 } + add = swing_scales_cost_reduction_1_value + } + } + } +} + +improved_raid_estate_scheme_1_value = 5 +improved_raid_estate_scheme_2_value = 10 +improved_raid_estate_scheme_3_value = 15 + +increased_request_appointment_acceptance_1_value = 10 +increased_request_appointment_acceptance_2_value = 25 +increased_request_appointment_acceptance_3_value = 50 + +occupations_give_bonuses_1_value = 20 +occupations_give_bonuses_2_value = 40 +occupations_give_bonuses_3_value = 60 + +increased_marriage_acceptance_1_value = 10 +increased_marriage_acceptance_2_value = 20 +increased_marriage_acceptance_3_value = 40 + +increased_clerical_influence_acceptance_1_value = 10 +increased_clerical_influence_acceptance_2_value = 25 +increased_clerical_influence_acceptance_3_value = 40 + +candidate_score_per_piety_level_1_value = 4 +candidate_score_per_piety_level_2_value = 8 +candidate_score_per_piety_level_3_value = 12 + +liquidate_camp_main_value_1 = 25 +liquidate_camp_main_value_2 = 50 +liquidate_camp_main_value_3 = 75 +liquidate_camp_main_value_4 = 100 +liquidate_camp_external_value_1 = 10 +liquidate_camp_external_value_2 = 20 +liquidate_camp_external_value_3 = 30 +liquidate_camp_external_value_4 = 40 +liquidate_camp_external_value_5 = 50 +liquidate_camp_external_value_6 = 60 +liquidate_camp_internal_value = 10