From fde59745b8dc683dc42026d0988c40368e54f847 Mon Sep 17 00:00:00 2001 From: Thakia Date: Fri, 9 Oct 2026 20:41:46 -0300 Subject: [PATCH] more file updating --- common/decisions/00_artifact_decisions.txt | 123 ++- common/decisions/00_diarchy_decisions.txt | 8 +- common/decisions/00_dynasty_decisions.txt | 156 ++-- common/decisions/00_guest_decisions.txt | 8 +- common/decisions/00_trait_decisions.txt | 12 +- common/decisions/00_unity_decisions.txt | 57 +- common/decisions/06_ce1_decisions.txt | 43 +- common/decisions/30_activity_decisions.txt | 19 +- common/decisions/30_court_decisions.txt | 12 +- .../30_mongol_invasion_decisions.txt | 17 +- common/decisions/40_japan_decisions.txt | 36 +- common/decisions/90_minor_decisions.txt | 154 +++- .../bp_2/00_bp2_other_decisions.txt | 65 +- ...1_court_grandeur_and_amenity_decisions.txt | 46 +- .../ep_1/00_ep1_other_decisions.txt | 44 +- .../ep_2/00_ep2_other_decisions.txt | 16 +- .../06_ep3_separatist_uprising_decision.txt | 13 +- .../fp_1/00_fp1_other_decisions.txt | 6 +- .../fp_3/fp3_dynasty_decisions.txt | 8 +- .../fp_3/fp3_scholarship_decisions.txt | 6 +- .../fp_3/fp3_zoroastrian_decisions.txt | 86 +- .../dlc_decisions/mpo/09_mpo_decisions_2.txt | 14 +- .../mpo/mpo_court_astrologer_decision.txt | 2 +- .../dlc_decisions/mpo/mpo_flavor_decision.txt | 81 +- .../mpo/mpo_pax_mongolica_decision.txt | 2 +- .../tgp/tgp_culture_decisions.txt | 6 +- .../tgp/tgp_dynastic_cycle_decisions.txt | 86 +- .../tgp/tgp_east_asia_decisions.txt | 125 +-- .../tgp/tgp_silk_road_decisions.txt | 9 +- .../tgp/tgp_steppe_decisions.txt | 24 +- .../dlc_decisions/tgp/tgp_tenet_decisions.txt | 6 +- .../tgp/tgp_tribute_mission_decisions.txt | 4 +- common/defines/00_defines.txt | 119 ++- .../buildings/00_chinese_estate_buildings.txt | 105 +-- .../buildings/10_japanese_manor_buildings.txt | 156 ++-- common/domiciles/types/00_domicile_types.txt | 838 ++++++++++++++++- .../00_inserts.txt | 2 +- common/factions/00_nomadic_faction.txt | 1 + common/factions/00_peasant_faction_new.txt | 13 +- common/factions/00_populist_faction.txt | 180 ++-- common/game_concepts/00_game_concepts.txt | 111 ++- common/genes/01_genes_morph.txt | 3 + common/genes/02_genes_accessories_misc.txt | 109 +-- ...3_genes_special_accessories_hairstyles.txt | 80 +- .../04_genes_special_accessories_beards.txt | 48 + .../05_genes_special_accessories_clothes.txt | 524 +++++++++-- .../genes/08_genes_special_visual_traits.txt | 13 + common/governments/_governments.info | 81 +- common/important_actions/tgp_actions.txt | 41 +- .../men_at_arms_types/_men_at_arms_types.info | 10 +- .../00_definitions.txt | 139 ++- .../scheme_types/learn_language_scheme.txt | 10 + .../00_court_character_templates.txt | 7 +- .../00_hold_court_character_templates.txt | 12 +- .../00_holy_order_character_templates.txt | 203 ++++- .../00_knight_templates.txt | 3 + .../00_scholar_template.txt | 8 +- .../01_bp1_character_templates.txt | 2 + .../01_bp1_filippa_character_templates.txt | 8 +- .../01_bp2_character_templates.txt | 1 + .../01_tgp_japan_character_templates.txt | 8 +- .../03_fp2_character_templates.txt | 97 +- .../05_bp2_character_templates.txt | 17 +- .../05_ce1_character_templates.txt | 1 + .../06_ce1_character_templates.txt | 1 + .../07_ep3_character_templates.txt | 33 +- .../09_mpo_character_templates.txt | 18 +- .../10_ach_character_templates.txt | 4 + .../tgp_character_templates.txt | 76 +- .../00_scheme_scripted_effects.txt | 716 ++++++++++++--- ...01_ep1_court_artifact_creation_effects.txt | 550 ++++++----- .../09_dlc_mpo_scripted_effects.txt | 374 ++++---- .../tgp_debate_scripted_effects.txt | 10 +- ..._imperial_examination_scripted_effects.txt | 74 +- .../tgp_mandala_scripted_effects.txt | 73 +- .../tgp_tribute_mission_scripted_effects.txt | 22 +- .../10_tgp_dynastic_cycle_catalysts.txt | 2 +- common/situation/situations/_situations.info | 20 +- .../ce1_story_cycle_black_death.txt | 18 +- .../story_cycles/ep3_story_cycle_el_cid.txt | 2 +- .../ep3_story_cycle_hasan_sabbah.txt | 33 +- .../ep3_story_cycle_violet_poet.txt | 2 +- .../story_cycle_take_mandate_of_heaven.txt | 2 + .../tgp_story_cycle_tai_migrations.txt | 2 +- common/struggle/struggles/_struggles.info | 4 +- .../contracts/administrative.txt | 8 +- common/subject_contracts/contracts/clan.txt | 40 +- .../contracts/japan_administrative.txt | 3 + .../contracts/meritocratic.txt | 37 +- .../contracts/special_contracts.txt | 60 +- .../groups/subject_contract_groups.txt | 6 +- common/task_contracts/admin_contracts.txt | 7 +- .../task_contracts/laamp_base_contracts.txt | 85 +- .../task_contracts/laamp_extra_contracts.txt | 271 +++--- common/task_contracts/laamp_nm_contracts.txt | 35 +- .../laamp_transport_contracts.txt | 105 ++- common/task_contracts/tgp_admin_contracts.txt | 16 +- .../_travel_point_of_interest_types.info | 8 + .../travel_point_of_interest_types.txt | 860 +++++++++++++++--- 99 files changed, 5706 insertions(+), 2115 deletions(-) diff --git a/common/decisions/00_artifact_decisions.txt b/common/decisions/00_artifact_decisions.txt index 922e9e2dd..b951c97aa 100644 --- a/common/decisions/00_artifact_decisions.txt +++ b/common/decisions/00_artifact_decisions.txt @@ -15,8 +15,8 @@ commission_artifact_decision = { sort_order = 100 is_shown = { - is_landed_or_landless_administrative = yes highest_held_title_tier >= tier_county + is_landed_or_landless_administrative_or_theocratic = yes exists = capital_province } @@ -29,7 +29,7 @@ commission_artifact_decision = { } custom_tooltip = { text = commission_artifact_decision.nomad_requirements - NOR = { + OR = { has_character_modifier = mpo_artifact_material_modifier culture ?= { has_cultural_parameter = nomadic_metal_artifact_unlock @@ -42,6 +42,7 @@ commission_artifact_decision = { minimum_cost = { # Matches the cost defined in 00_inspirations.txt gold = { + root = { save_temporary_scope_as = inspiration_sponsor } value = basic_fund_inspiration_cost if = { limit = { # Estate discount bonus @@ -92,6 +93,7 @@ commission_artifact_decision = { gui = "decision_view_widget_commission_artifact" controller = decision_option_list_controller decision_to_second_step_button = "COMMISSION_ARTIFACT_DECISION_NEXT_STEP_BUTTON" + show_from_start = yes # Commission a Kris item = { @@ -222,9 +224,7 @@ commission_artifact_decision = { } custom_tooltip = { text = commission_artifact_decision.nomad_requirements - NOT = { - has_character_modifier = mpo_artifact_material_modifier - } + has_character_modifier = mpo_artifact_material_modifier } } } @@ -245,6 +245,69 @@ commission_artifact_decision = { } } + # Mundane devotional items (crosses, croziers, etc.), not relics + item = { + value = commission_religious + is_shown = { + has_pam_dlc_trigger = yes + religion = religion:christianity_religion + } + is_valid = { + custom_tooltip = { + text = commission_artifact_decision.religious_requirements + OR = { + piety_level >= 3 + any_court_position_holder = { + type = antiquarian_court_position + is_clergy = yes + } + } + } + custom_tooltip = { + text = commission_artifact_decision.religious_court_requirements + OR = { + has_royal_court = yes + any_sub_realm_barony = { + is_holy_site_of = root.faith + } + } + } + trigger_if = { + limit = { + government_has_flag = government_is_nomadic + } + custom_tooltip = { + text = commission_artifact_decision.nomad_requirements + has_character_modifier = mpo_artifact_material_modifier + } + } + } + current_description = { + desc = commission_artifact_decision_option_religious_desc + } + localization = { + desc = commission_artifact_decision_option_religious + } + icon = "gfx/interface/icons/artifact/pam_artifact_crucifix.dds" + + ai_chance = { + value = 0 + if = { + limit = { + has_royal_court = yes + has_dlc_feature = court_artifacts + # Only make this choice if we don't already have an artifact of this type. + NOT = { + any_character_artifact = { + artifact_slot_type = pedestal + } + } + } + add = 100 + } + } + } + # Court Artifacts only appear if you have the Royal Court DLC, and are only valid if you have an active Royal Court item = { @@ -258,9 +321,7 @@ commission_artifact_decision = { } custom_tooltip = { text = commission_artifact_decision.nomad_requirements - NOT = { - has_character_modifier = mpo_artifact_material_modifier - } + has_character_modifier = mpo_artifact_material_modifier } } } @@ -305,9 +366,7 @@ commission_artifact_decision = { } custom_tooltip = { text = commission_artifact_decision.nomad_requirements - NOT = { - has_character_modifier = mpo_artifact_material_modifier - } + has_character_modifier = mpo_artifact_material_modifier } } } @@ -349,9 +408,7 @@ commission_artifact_decision = { } custom_tooltip = { text = commission_artifact_decision.nomad_requirements - NOT = { - has_character_modifier = mpo_artifact_material_modifier - } + has_character_modifier = mpo_artifact_material_modifier } } } @@ -381,6 +438,36 @@ commission_artifact_decision = { } } + # A carnal devotional item, for those who exalt the flesh + item = { + value = commission_phallus + is_shown = { + has_personal_tenet_flag = tenet_carnal_exaltation_commission_artifacts_debauched + } + current_description = { + desc = commission_artifact_decision_option_phallus_desc + } + localization = { + desc = commission_artifact_decision_option_phallus + } + icon = "gfx/interface/icons/artifact/artifact_small_box.dds" + + ai_chance = { + value = 0 + if = { + limit = { + # Only make this choice if we don't already have an artifact of this type. + NOT = { + any_character_artifact = { + has_variable = commissioned_wooden_phallus + } + } + } + add = 100 + } + } + } + #Alchemy isn't included here since that inspiration is much more tied to the pursuit of knowledge initiated by the inspired person } @@ -489,11 +576,19 @@ commission_artifact_decision = { } create_inspiration = smith_inspiration } + scope:commission_religious = { create_inspiration = religious_artifact_inspiration } scope:commission_tapestry = { root = { trigger_event = fund_inspiration.0044 } } scope:commission_furniture = { create_inspiration = artisan_inspiration } scope:commission_book = { create_inspiration = book_inspiration } + scope:commission_phallus = { + set_variable = { + name = artifact_artisan_type + value = flag:artisan_type_phallus + } + create_inspiration = artisan_inspiration + } } if = { limit = { exists = inspiration } diff --git a/common/decisions/00_diarchy_decisions.txt b/common/decisions/00_diarchy_decisions.txt index e64e37a1c..3f6008070 100644 --- a/common/decisions/00_diarchy_decisions.txt +++ b/common/decisions/00_diarchy_decisions.txt @@ -49,11 +49,11 @@ diarch_attempt_to_overthrow_liege = { is_shown = { # If you're not in a diarchy, we don't care. OR = { - AND = { - exists = liege - is_diarch_of_target = liege - } is_designated_diarch = yes + AND = { + is_diarch_of_target = liege + exists = liege + } } } diff --git a/common/decisions/00_dynasty_decisions.txt b/common/decisions/00_dynasty_decisions.txt index e4914b2ec..39039dc6f 100644 --- a/common/decisions/00_dynasty_decisions.txt +++ b/common/decisions/00_dynasty_decisions.txt @@ -13,30 +13,29 @@ create_cadet_branch_decision = { decision_group_type = major ai_check_interval_by_tier = { barony = 0 - county = 6 + county = 12 duchy = 6 - kingdom = 6 - empire = 6 - hegemony = 6 + kingdom = 1 + empire = 1 + hegemony = 1 } is_shown = { - is_playable_character = yes - exists = house.house_head - is_house_head = no highest_held_title_tier > tier_barony + government_allows = rulers_should_have_dynasty + is_house_head = no NOR = { - government_has_flag = government_is_holy_order - government_has_flag = government_is_theocracy AND = { - faith = { has_doctrine = doctrine_theocracy_temporal } has_council_position = councillor_court_chaplain + rite ?= { rite_has_doctrine = doctrine_theocracy_temporal } } AND = { - has_tgp_dlc_trigger = yes tgp_is_in_ceremonial_house_trigger = yes + has_tgp_dlc_trigger = yes } } + exists = house.house_head + is_playable_character = yes } is_valid = { @@ -65,7 +64,7 @@ create_cadet_branch_decision = { } # If you are Administrative, we let the player create a new House much easier, as to have easy access to their own Family Title and Estate. trigger_else_if = { - limit = { government_allows = administrative } + limit = { government_allows = noble_families } trigger_if = { limit = { is_ai = yes # We don't want the AI to create cadet branches willy nilly, so they have additional restrictions. @@ -79,12 +78,13 @@ create_cadet_branch_decision = { any_held_title = { place_in_line_of_succession = { target = root - value <=3 + value <= 3 } } } } } + highest_held_title_tier >= main_administrative_tier } # No triggers for players. } @@ -104,6 +104,14 @@ create_cadet_branch_decision = { } } } + # only feudal or japanese ruler create branch when liege is househead. + trigger_if = { + limit = { + government_is_japanese_trigger = no + NOT = { government_has_flag = government_is_feudal } + } + NOT = { target_is_liege_or_above = house.house_head } + } # Marriage restrictions trigger_if = { limit = { is_male = yes } @@ -111,7 +119,7 @@ create_cadet_branch_decision = { limit = { OR = { is_married = yes - faith = { has_doctrine = doctrine_gender_female_dominated } + rite = { rite_has_doctrine = doctrine_gender_female_dominated } } } patrilinear_marriage = yes @@ -122,7 +130,7 @@ create_cadet_branch_decision = { limit = { OR = { is_married = yes - faith = { has_doctrine = doctrine_gender_male_dominated } + rite = { rite_has_doctrine = doctrine_gender_male_dominated } } } matrilinear_marriage = yes @@ -173,53 +181,29 @@ create_cadet_branch_decision = { } } } - + ai_potential = { - exists = house.house_head - is_adult = yes - highest_held_title_tier > tier_barony - any_child = { is_alive = yes } - } - - ai_will_do = { - base = 30 - - modifier = { # Dukes and above are more keen - add = 70 - exists = primary_title - primary_title.tier > tier_county - } - - modifier = { # Prefer to stay in liege's dynasty - add = -50 - government_is_japanese_trigger = no - top_liege != this - any_liege_or_above = { - dynasty = root.dynasty + any_child = { is_alive = yes } # move it beforehand for performance reason + trigger_if = { + limit = { + # always allow branch if in different realm, they need the estate. + NAND = { + government_allows = noble_families + trigger_if = { + limit = { exists = house.house_head.liege } + house.house_head.liege != root + } + } } - } - - modifier = { # Childless rulers should not found houses - factor = 0 + # Childless rulers should not found houses any_child = { is_alive = yes - count < 3 + count >= 3 } - } - - modifier = { # Stop stealing player's house members - factor = 0 - any_player = { - OR = { - any_child = { - OR = { - is_child_of = root - is_grandchild_of = root - is_great_grandchild_of = root - } - } - any_child = { - even_if_dead = yes + NOR = { + # Stop stealing player's house members + any_player = { + OR = { any_child = { OR = { is_child_of = root @@ -227,9 +211,6 @@ create_cadet_branch_decision = { is_great_grandchild_of = root } } - } - any_child = { - even_if_dead = yes any_child = { even_if_dead = yes any_child = { @@ -240,32 +221,54 @@ create_cadet_branch_decision = { } } } + any_child = { + even_if_dead = yes + any_child = { + even_if_dead = yes + any_child = { + OR = { + is_child_of = root + is_grandchild_of = root + is_great_grandchild_of = root + } + } + } + } } } } + years_from_game_start >= 5 + } + } + + ai_will_do = { + base = 30 + + modifier = { # Dukes and above are more keen + add = { + value = primary_title.tier + subtract = tier_county + multiply = 20 + } } # we don't want AI to split from their House unless they dislike their house head modifier = { - factor = 0 - government_has_flag = government_is_clan - opinion = { - target = house.house_head - value >= -50 + add = { + value = 0 + subtract = "opinion(house.house_head)" } } - + # If an admin top liege ever ends up having their house head in a different realm, they should create a cadet branch ASAP modifier = { add = 1000 - government_allows = administrative - top_liege = this - this != house.house_head.top_liege - } - - modifier = { - add = -250 - years_from_game_start < 5 + government_allows = noble_families + liege = this + trigger_if = { + limit = { exists = house.house_head.liege } + house.house_head.liege != root + } } ### TGP @@ -275,7 +278,7 @@ create_cadet_branch_decision = { top_liege.primary_title = { any_past_holder = { is_close_family_of = root } } - add = -25 + add = -20 } modifier = { # Prefer to branch away from leading house if distant to split up blocs @@ -295,12 +298,13 @@ create_cadet_branch_decision = { modifier = { # Ruler should not break family apart government_is_japanese_trigger = yes is_independent_ruler = yes + house.house_head ?= { is_vassal_or_below_of = root } add = -1000 } modifier = { # Close and extended family prefer to stay with Ritsuryo house heads government_is_japanese_trigger = yes - government_allows = administrative + government_allows = noble_families OR = { is_close_or_extended_family_of = house.house_head AND = { diff --git a/common/decisions/00_guest_decisions.txt b/common/decisions/00_guest_decisions.txt index 2f44feb9b..85f732274 100644 --- a/common/decisions/00_guest_decisions.txt +++ b/common/decisions/00_guest_decisions.txt @@ -31,8 +31,8 @@ invite_knights_decision = { cooldown = { years = invite_knights_decision_cooldown_value } is_shown = { - is_landless_adventurer = no max_number_of_knights > 0 + is_landless_adventurer = no } is_valid = { @@ -139,8 +139,8 @@ invite_claimants_decision = { cooldown = { days = 3650 } is_shown = { - is_landed_or_landless_administrative = yes primary_title.tier > tier_county + is_landed_or_landless_administrative = yes NOT = { government_has_flag = government_is_nomadic } } @@ -210,10 +210,10 @@ scrape_the_barrel_decision = { cooldown = { years = 2 } is_shown = { - is_landed_or_landless_administrative = yes has_royal_court = yes - has_dlc_feature = royal_court court_grandeur_current_level <= 4 + has_dlc_feature = royal_court + is_landed_or_landless_administrative_or_theocratic = yes } effect = { diff --git a/common/decisions/00_trait_decisions.txt b/common/decisions/00_trait_decisions.txt index dfd2e249f..4f5fda9bd 100644 --- a/common/decisions/00_trait_decisions.txt +++ b/common/decisions/00_trait_decisions.txt @@ -147,13 +147,14 @@ diligent_development_focus_decision = { cooldown = { days = @diligent_development_focus_cooldown_time } is_shown = { + is_landed = yes OR = { has_trait = diligent + has_personal_tenet_flag = tenet_ora_et_labora_diligent_work_decision top_participant_group:dynastic_cycle ?= { participant_group_type = advancement_movement } } - is_landed = yes NOT = { government_has_flag = government_is_nomadic } # They use develop_fertility_decision } @@ -186,19 +187,22 @@ diligent_development_focus_decision = { limit = { has_trait = diligent } - stress_impact = { + stress_and_fulfillment_impact = { diligent = medium_stress_impact_gain } } else = { - stress_impact = { + stress_and_fulfillment_impact = { base = medium_stress_impact_gain } } } ai_potential = { - has_trait = diligent + OR = { + has_trait = diligent + has_personal_tenet_flag = tenet_ora_et_labora_diligent_work_decision + } NOT = { has_trait = temperate } diff --git a/common/decisions/00_unity_decisions.txt b/common/decisions/00_unity_decisions.txt index 11703db30..87d6ad935 100644 --- a/common/decisions/00_unity_decisions.txt +++ b/common/decisions/00_unity_decisions.txt @@ -26,8 +26,8 @@ unity_reinforce_army_decision = { is_shown = { government_has_flag = government_is_clan - is_landed = yes exists = house + is_landed = yes } is_valid = { @@ -107,8 +107,8 @@ unity_establish_network_decision = { is_shown = { government_has_flag = government_is_clan - is_landed = yes exists = house + is_landed = yes } is_valid = { @@ -188,8 +188,8 @@ unity_improve_taxation_decision = { is_shown = { government_has_flag = government_is_clan - is_landed = yes exists = house + is_landed = yes } is_valid = { @@ -266,8 +266,8 @@ unity_send_bailiffs_decision = { is_shown = { government_has_flag = government_is_clan - is_landed = yes exists = house + is_landed = yes } is_valid = { @@ -350,8 +350,8 @@ unity_placate_vassals_decision = { is_shown = { government_has_flag = government_is_clan - is_landed = yes exists = house + is_landed = yes } is_valid = { @@ -431,8 +431,8 @@ unity_organize_house_for_war_decision = { is_shown = { government_has_flag = government_is_clan - is_landed = yes exists = house + is_landed = yes } is_valid_showing_failures_only = { @@ -504,8 +504,8 @@ unity_encourage_house_economy_decision = { is_shown = { government_has_flag = government_is_clan - is_landed = yes exists = house + is_landed = yes } is_valid_showing_failures_only = { @@ -575,8 +575,8 @@ unity_steer_house_direction_decision = { is_shown = { government_has_flag = government_is_clan - is_landed = yes exists = house + is_landed = yes } is_valid_showing_failures_only = { @@ -840,8 +840,8 @@ unity_search_for_administrators_decision = { is_shown = { government_has_flag = government_is_clan - is_landed = yes exists = house + is_landed = yes } is_valid = { @@ -876,14 +876,15 @@ unity_search_for_administrators_decision = { template = administrator_character employer = root faith = root.faith + rite = root.rite culture = root.culture gender_female_chance = { if = { - limit = { root.faith = { has_doctrine = doctrine_gender_male_dominated } } + limit = { root.rite = { rite_has_doctrine = doctrine_gender_male_dominated } } add = 0 } else_if = { - limit = { root.faith = { has_doctrine = doctrine_gender_female_dominated } } + limit = { root.rite = { rite_has_doctrine = doctrine_gender_female_dominated } } add = 100 } else = { @@ -970,11 +971,11 @@ unity_improve_logistics_decision = { cooldown = { years = 20 } is_shown = { - has_fp3_dlc_trigger = yes - culture = { has_cultural_pillar = heritage_iranian } government_has_flag = government_is_clan - is_landed = yes + culture ?= { has_cultural_pillar = heritage_iranian } + has_fp3_dlc_trigger = yes exists = house + is_landed = yes } is_valid = { @@ -1061,11 +1062,11 @@ unity_promote_development_decision = { cooldown = { years = 20 } is_shown = { - has_fp3_dlc_trigger = yes - culture = { has_cultural_pillar = heritage_iranian } government_has_flag = government_is_clan - is_landed = yes + culture ?= { has_cultural_pillar = heritage_iranian } + has_fp3_dlc_trigger = yes exists = house + is_landed = yes } is_valid = { @@ -1151,8 +1152,8 @@ unity_consult_house_decision = { is_shown = { government_has_flag = government_is_clan - is_landed = yes exists = house + is_landed = yes } is_valid = { @@ -1240,7 +1241,7 @@ unity_establish_futuwaa_lodges_decision = { has_dlc_feature = diverge_culture culture = { has_cultural_parameter = martial_custom_equal_combatant } } - faith = { has_doctrine_parameter = combatant_can_be_either_gender_if_no_roco } + rite = { rite_has_parameter = combatant_can_be_either_gender_if_no_roco } has_character_modifier = ignores_gender_army_rules culture = { OR = { @@ -1260,7 +1261,7 @@ unity_establish_futuwaa_lodges_decision = { has_dlc_feature = diverge_culture culture = { has_cultural_parameter = martial_custom_female_only_combatant } } - faith = { has_doctrine_parameter = combatant_must_be_female_if_no_roco } + rite = { rite_has_parameter = combatant_must_be_female_if_no_roco } } } desc = women @@ -1273,7 +1274,7 @@ unity_establish_futuwaa_lodges_decision = { has_dlc_feature = diverge_culture culture = { has_cultural_parameter = martial_custom_male_only_combatant } } - faith = { has_doctrine_parameter = combatant_must_be_male_if_no_roco } + rite = { rite_has_parameter = combatant_must_be_male_if_no_roco } } } desc = loc_men @@ -1286,10 +1287,10 @@ unity_establish_futuwaa_lodges_decision = { is_shown = { government_has_flag = government_is_clan - is_landed = yes + culture ?= { has_cultural_tradition = tradition_futuwaa } exists = house exists = capital_province - culture = { has_cultural_tradition = tradition_futuwaa } + is_landed = yes } is_valid = { @@ -1312,7 +1313,7 @@ unity_establish_futuwaa_lodges_decision = { has_dlc_feature = diverge_culture culture = { has_cultural_parameter = martial_custom_equal_combatant } } - faith = { has_doctrine_parameter = combatant_can_be_either_gender_if_no_roco } + rite = { rite_has_parameter = combatant_can_be_either_gender_if_no_roco } has_character_modifier = ignores_gender_army_rules culture = { OR = { @@ -1332,7 +1333,7 @@ unity_establish_futuwaa_lodges_decision = { has_dlc_feature = diverge_culture culture = { has_cultural_parameter = martial_custom_female_only_combatant } } - faith = { has_doctrine_parameter = combatant_must_be_female_if_no_roco } + rite = { rite_has_parameter = combatant_must_be_female_if_no_roco } } } save_scope_as = female_combatants @@ -1345,7 +1346,7 @@ unity_establish_futuwaa_lodges_decision = { has_dlc_feature = diverge_culture culture = { has_cultural_parameter = martial_custom_male_only_combatant } } - faith = { has_doctrine_parameter = combatant_must_be_male_if_no_roco } + rite = { rite_has_parameter = combatant_must_be_male_if_no_roco } } } save_scope_as = male_combatants @@ -1464,10 +1465,10 @@ unity_educate_youth_in_madrasas_decision = { is_shown = { government_has_flag = government_is_clan - is_landed = yes + culture ?= { has_cultural_tradition = tradition_fp3_beacon_of_learning } exists = house exists = capital_province # Sanity check - culture = { has_cultural_tradition = tradition_fp3_beacon_of_learning } + is_landed = yes } is_valid = { diff --git a/common/decisions/06_ce1_decisions.txt b/common/decisions/06_ce1_decisions.txt index fff63c518..acbcef58b 100644 --- a/common/decisions/06_ce1_decisions.txt +++ b/common/decisions/06_ce1_decisions.txt @@ -13,14 +13,14 @@ commission_legend_artifact_decision = { decision_group_type = major is_shown = { - is_landed = yes highest_held_title_tier >= tier_county - exists = capital_province - has_dlc_feature = legends + is_landed = yes custom_tooltip = { text = commission_legend_artifact_decision_var_tt has_variable = finished_legend_var } + exists = capital_province + has_dlc_feature = legends } is_valid_showing_failures_only = { @@ -128,9 +128,9 @@ clear_ground_for_legendary_building = { sort_order = 100 is_shown = { - exists = var:legendary_reward_location - has_dlc_feature = legends is_landed = yes + has_dlc_feature = legends + exists = var:legendary_reward_location } is_valid_showing_failures_only = { @@ -294,7 +294,7 @@ pick_legendary_barony_decision = { is_invisible = yes widget = { controller = create_holy_order - barony_valid = { + title_valid = { trigger_if = { limit = { exists = this } title_province = { has_special_building_slot = no } @@ -445,7 +445,6 @@ isolate_capital_decision = { is_shown = { is_landed = yes - exists = capital_county highest_held_title_tier >= tier_county trigger_if = { limit = { @@ -453,17 +452,17 @@ isolate_capital_decision = { } OR = { any_held_title = { - title_tier = county has_province_with_epidemic = { intensity = any } + title_tier = county } - capital_county = { + capital_county ?= { any_neighboring_county = { any_county_province_epidemic = { count >= 1 } } } - capital_county = { has_county_modifier = isolate_capital_decision_modifier } + capital_county ?= { has_county_modifier = isolate_capital_decision_modifier } } } trigger_else = { @@ -472,16 +471,17 @@ isolate_capital_decision = { SIZE = 1 INTENSITY = minor } - capital_county = { + capital_county ?= { any_neighboring_county = { any_county_province_epidemic = { count >= 1 } } } - capital_county = { has_county_modifier = isolate_capital_decision_modifier } + capital_county ?= { has_county_modifier = isolate_capital_decision_modifier } } } + exists = capital_county } widget = { @@ -721,10 +721,7 @@ isolate_family_decision = { } is_shown = { - OR = { - is_landed = yes - any_held_title = { is_noble_family_title = yes } # Still exclude adventurers - } + NOT = { has_government = landless_adventurer_government } OR = { has_character_modifier = isolating_modifier OR = { @@ -782,10 +779,7 @@ isolate_family_decision = { } is_valid = { NOT = { has_character_modifier = isolating_modifier } - OR = { - is_landed = yes - any_held_title = { is_noble_family_title = yes } # Still exclude adventurers - } + NOT = { has_government = landless_adventurer_government } trigger_if = { limit = { exists = current_travel_plan } is_available_travelling_adult = yes @@ -840,10 +834,7 @@ isolate_family_decision = { } is_valid = { NOT = { has_character_modifier = isolating_modifier } - OR = { - is_landed = yes - any_held_title = { is_noble_family_title = yes } # Still exclude adventurers - } + NOT = { has_government = landless_adventurer_government } custom_tooltip = { text = you_are_at_your_capital_tt exists = root.capital_province @@ -881,7 +872,7 @@ isolate_family_decision = { limit = { scope:isolate_family_disaster_decision = yes } - show_as_tooltip = { + show_as_tooltip = { isolate_family_decision_effect = yes if = { limit = { capital_province ?= location } @@ -898,7 +889,7 @@ isolate_family_decision = { limit = { scope:isolate_family_decision = yes } - show_as_tooltip = { + show_as_tooltip = { isolate_family_decision_effect = yes add_legitimacy_effect = { LEGITIMACY = minor_legitimacy_loss } add_prestige = major_prestige_loss diff --git a/common/decisions/30_activity_decisions.txt b/common/decisions/30_activity_decisions.txt index 39e82d00a..6c6c1c5d6 100644 --- a/common/decisions/30_activity_decisions.txt +++ b/common/decisions/30_activity_decisions.txt @@ -47,8 +47,8 @@ hold_court_decision = { } is_shown = { - is_landed = yes has_royal_court = yes + is_landed = yes has_dlc_feature = royal_court } @@ -188,11 +188,11 @@ petition_liege_decision = { } is_shown = { + liege ?= { has_royal_court = yes } is_playable_character = yes top_liege != this - liege ?= { has_royal_court = yes } - has_dlc_feature = royal_court tgp_is_ceremonial_liege_trigger = no + has_dlc_feature = royal_court } is_valid = { @@ -636,10 +636,6 @@ petition_liege_decision = { text = petition_liege_faction_war_tt any_targeting_faction = { target_of_powerful_faction_trigger = yes } } - NAND = { - government_has_flag = government_is_administrative - liege = { government_has_flag = government_is_administrative } - } } current_description = petition_liege_faction_war_desc localization = petition_liege_decision_option_faction_war @@ -656,10 +652,6 @@ petition_liege_decision = { text = petition_liege_vassal_war_tt petition_liege_vassal_war_trigger = yes } - NAND = { - government_has_flag = government_is_administrative - liege = { government_has_flag = government_is_administrative } - } } current_description = petition_liege_vassal_war_desc localization = petition_liege_decision_option_vassal_war @@ -688,10 +680,6 @@ petition_liege_decision = { text = petition_liege_external_war_aid_tt petition_liege_war_liege_involvement_trigger = yes } - NAND = { - government_has_flag = government_is_administrative - liege = { government_has_flag = government_is_administrative } - } } current_description = petition_liege_war_aid_desc localization = petition_liege_decision_option_war_aid @@ -830,6 +818,7 @@ petition_liege_decision = { exists = liege liege.capital_province.county.development_level >= petitioner_development_difference_decision_value } + is_landed = yes } current_description = petition_liege_development_desc localization = petition_liege_decision_option_development diff --git a/common/decisions/30_court_decisions.txt b/common/decisions/30_court_decisions.txt index 87e9e7c8f..380c8b2a5 100644 --- a/common/decisions/30_court_decisions.txt +++ b/common/decisions/30_court_decisions.txt @@ -62,20 +62,20 @@ pay_homage_decision = { is_shown = { is_landed = yes - primary_title.tier >= tier_county - top_liege != this - liege ?= { has_royal_court = yes } - has_dlc_feature = royal_court OR = { government_has_flag = government_is_feudal government_has_flag = government_is_clan } + liege ?= { has_royal_court = yes } + top_liege != this + primary_title.tier >= tier_county NOT = { - culture = { has_cultural_parameter = must_pledge_loyalty_to_liege } - liege = { + culture ?= { has_cultural_parameter = must_pledge_loyalty_to_liege } + liege ?= { culture = { has_cultural_parameter = must_pledge_loyalty_to_liege } } } + has_dlc_feature = royal_court } is_valid = { diff --git a/common/decisions/30_mongol_invasion_decisions.txt b/common/decisions/30_mongol_invasion_decisions.txt index fea72ee55..54520a0a8 100644 --- a/common/decisions/30_mongol_invasion_decisions.txt +++ b/common/decisions/30_mongol_invasion_decisions.txt @@ -18,7 +18,6 @@ submit_to_the_great_khan_decision = { decision_group_type = major is_shown = { - is_landless_adventurer = no is_independent_ruler = yes OR = { exists = global_var:mongol_empire_has_spawned @@ -27,9 +26,6 @@ submit_to_the_great_khan_decision = { exists = global_var:greatest_of_khans_title.holder } } - NOT = { - mpo_has_gok_mongol_empire_trigger = yes - } OR = { any_neighboring_top_liege_realm_owner = { mpo_has_gok_mongol_empire_trigger = yes @@ -43,10 +39,12 @@ submit_to_the_great_khan_decision = { } } } + mpo_has_gok_mongol_empire_trigger = no + is_landless_adventurer = no } is_valid_showing_failures_only = { - NOT = { highest_held_title_tier = tier_empire } + highest_held_title_tier < tier_empire } effect = { @@ -159,8 +157,8 @@ submit_to_the_great_khan_decision = { limit = { #khan is still nomadic or pluralist and thus doesn't care about religion scope:mongol_emperor = { - faith = { - has_doctrine = doctrine_pluralism_pluralistic + rite = { + rite_has_doctrine = doctrine_pluralism_pluralistic } } OR = { @@ -201,9 +199,8 @@ submit_to_the_great_khan_decision = { } trigger_if = { limit = { - NOR = { - government_has_flag = government_is_herder - government_has_flag = government_is_nomadic + NOT = { + government_has_flag = government_is_in_steppe } } gold >= medium_gold_value diff --git a/common/decisions/40_japan_decisions.txt b/common/decisions/40_japan_decisions.txt index 492845456..98a1a7d87 100644 --- a/common/decisions/40_japan_decisions.txt +++ b/common/decisions/40_japan_decisions.txt @@ -36,16 +36,16 @@ pledge_loyalty_to_liege_decision = { } is_shown = { - is_landed = yes - primary_title.tier >= tier_county is_independent_ruler = no liege ?= { has_royal_court = yes } - culture = { has_cultural_parameter = must_pledge_loyalty_to_liege } + is_landed = yes OR = { government_has_flag = government_is_feudal government_has_flag = government_is_clan government_has_flag = government_is_japan_feudal } + culture ?= { has_cultural_parameter = must_pledge_loyalty_to_liege } + primary_title.tier >= tier_county } is_valid = { @@ -72,7 +72,7 @@ pledge_loyalty_to_liege_decision = { has_spawned_court_events = no # should only be used for human players } trigger_if = { # Has not Pledged Loyalty to this Liege before - limit = { + limit = { has_variable = pledge_loyalty_to_liege_grace } custom_tooltip = { @@ -111,7 +111,7 @@ pledge_loyalty_to_liege_decision = { custom_tooltip = { # Liege does not already have a hook text = pledge_loyalty_to_liege_hook_tt NOT = { - liege ?= { has_hook = prev } + liege ?= { has_hook = prev } } } } @@ -178,7 +178,7 @@ pledge_loyalty_to_liege_decision = { } add = 90 } - + if = { # Certain AI's really do not want increased obligations limit = { OR = { @@ -209,7 +209,7 @@ pledge_loyalty_to_liege_decision = { limit = { gold > major_gold_value } add = 50 } - + if = { # Certain AI's really do not want to part with gold limit = { ai_greed >= 50 @@ -235,7 +235,7 @@ pledge_loyalty_to_liege_decision = { } # used for refunding if travel is canceled mid-way set_variable = { - name = pledge_loyalty_to_liege_gold_value + name = pledge_loyalty_to_liege_gold_value value = medium_gold_value } custom_tooltip = pledge_loyalty_to_liege_decision_effects_gold @@ -303,7 +303,7 @@ pledge_loyalty_to_liege_decision = { on_arrival_destinations = all_but_last } } - + ai_potential = { is_at_war = no } @@ -362,7 +362,7 @@ petition_ceremonial_liege_decision = { desc = petition_liege_decision_tooltip } } - + title = { first_valid = { triggered_desc = { @@ -428,9 +428,9 @@ petition_ceremonial_liege_decision = { } is_shown = { - is_playable_character = yes - has_dlc_feature = royal_court tgp_is_ceremonial_petition_shown_trigger = yes + has_dlc_feature = royal_court + is_playable_character = yes } is_valid_showing_failures_only = { @@ -443,11 +443,11 @@ petition_ceremonial_liege_decision = { gui = "decision_view_widget_petition_liege" controller = decision_option_list_controller decision_to_second_step_button = "CHOOSE_PETITION_DECISION_NEXT_STEP_BUTTON" - + item = { # Regent endorsement value = petition_ceremonial_liege_regent - is_valid = { - government_allows = administrative + is_valid = { + government_has_mechanic = administrative is_independent_ruler = no trigger_if = { limit = { exists = top_liege.primary_title.var:administrative_ui_special_title.holder } @@ -465,7 +465,7 @@ petition_ceremonial_liege_decision = { } item = { # Appointment support value = petition_ceremonial_liege_appointment - is_valid = { government_allows = administrative } + is_valid = { government_has_mechanic = administrative } current_description = petition_ceremonial_liege_appointment_desc localization = petition_ceremonial_liege_decision_option_appointment icon = "gfx/interface/icons/message_feed/icon_scheme_promote.dds" @@ -504,7 +504,7 @@ petition_ceremonial_liege_decision = { } show_as_tooltip = { switch = { - trigger = has_trait + trigger = has_trait shy = { add_stress = medium_stress_impact_gain } arrogant = { add_stress = medium_stress_impact_gain } } @@ -543,6 +543,6 @@ petition_ceremonial_liege_decision = { weeks = 2 } } - + ai_potential = { always = no } # Only players can do this. AI vassals go through the normal court events/hold court activity. } diff --git a/common/decisions/90_minor_decisions.txt b/common/decisions/90_minor_decisions.txt index 2eb41e69e..28cb7b703 100644 --- a/common/decisions/90_minor_decisions.txt +++ b/common/decisions/90_minor_decisions.txt @@ -30,7 +30,7 @@ recruit_court_position_decision = { decision_group_type = courtier is_shown = { - is_landed_or_landless_administrative = yes + is_landed_or_landless_administrative_or_theocratic = yes } is_valid_showing_failures_only = { @@ -50,6 +50,7 @@ recruit_court_position_decision = { is_landless_adventurer = no } is_valid = { + can_employ_court_position_type = court_physician_court_position NOR = { employs_court_position = court_physician_court_position custom_tooltip = { @@ -71,6 +72,7 @@ recruit_court_position_decision = { is_landless_adventurer = no } is_valid = { + can_employ_court_position_type = travel_leader_court_position NOR = { employs_court_position = travel_leader_court_position custom_tooltip = { @@ -88,7 +90,7 @@ recruit_court_position_decision = { limit = { NOR = { highest_held_title_tier > tier_barony - is_landed_or_landless_administrative = yes + is_landed_or_landless_administrative_or_theocratic = yes gold > low_skill_court_physician_cost is_at_war = no } @@ -100,10 +102,11 @@ recruit_court_position_decision = { item = { # Wet Nurse value = find_wet_nurse_decision is_shown = { - is_landed_or_landless_administrative = yes - has_bp2_dlc_trigger = yes + is_landed_or_landless_administrative_or_theocratic = yes + wet_nurse_court_position_unlocked_trigger = yes } is_valid = { + can_employ_court_position_type = wet_nurse_court_position NOR = { employs_court_position = wet_nurse_court_position custom_tooltip = { @@ -111,6 +114,17 @@ recruit_court_position_decision = { has_character_flag = recruit_wet_nurse_cooldown } } + trigger_if = { + limit = { + government_has_flag = government_is_nomadic + } + custom_tooltip = { + text = has_wet_nurse_domicile_building + domicile ?= { + has_domicile_parameter = nomad_unlock_wet_nurse + } + } + } } current_description = find_wet_nurse_decision_desc localization = find_wet_nurse_decision @@ -157,6 +171,7 @@ recruit_court_position_decision = { } } is_valid = { + can_employ_court_position_type = charioteer_court_position NOR = { employs_court_position = charioteer_court_position custom_tooltip = { @@ -180,6 +195,7 @@ recruit_court_position_decision = { } } is_valid = { + can_employ_court_position_type = bookmaker_court_position NOR = { employs_court_position = bookmaker_court_position custom_tooltip = { @@ -203,6 +219,7 @@ recruit_court_position_decision = { } } is_valid = { + can_employ_court_position_type = chief_eunuch_court_position NOR = { employs_court_position = chief_eunuch_court_position custom_tooltip = { @@ -225,6 +242,7 @@ recruit_court_position_decision = { is_landless_adventurer = no } is_valid = { + can_employ_court_position_type = court_gardener_court_position NOR = { employs_court_position = court_gardener_court_position custom_tooltip = { @@ -255,7 +273,7 @@ recruit_court_position_decision = { is_valid = { age >= 6 is_alive = yes - NOT = { exists = involved_activity } + is_in_activity = no is_imprisoned = no NOT = { knows_court_language_of = root } custom_tooltip = { @@ -289,7 +307,7 @@ recruit_court_position_decision = { value = invite_a_linguist_liege is_shown = { # Standard filter checks. - is_landed_or_landless_administrative = yes + is_landed_or_landless_administrative_or_theocratic = yes # Liege checks. top_liege != this liege = { has_royal_court = yes has_dlc_feature = royal_court } @@ -321,7 +339,7 @@ recruit_court_position_decision = { is_valid = { age >= 6 is_alive = yes - NOT = { exists = involved_activity } + is_in_activity = no is_imprisoned = no custom_tooltip = { text = scheming_already @@ -359,6 +377,7 @@ recruit_court_position_decision = { is_landless_adventurer = no } is_valid = { + can_employ_court_position_type = court_astrologer_court_position NOR = { employs_court_position = court_astrologer_court_position custom_tooltip = { @@ -394,6 +413,7 @@ recruit_court_position_decision = { is_landless_adventurer = no } is_valid = { + can_employ_court_position_type = siege_engineer_court_position NOR = { employs_court_position = siege_engineer_court_position custom_tooltip = { @@ -429,6 +449,7 @@ recruit_court_position_decision = { is_landless_adventurer = no } is_valid = { + can_employ_court_position_type = foreign_emissary_court_position NOR = { employs_court_position = foreign_emissary_court_position custom_tooltip = { @@ -642,6 +663,7 @@ recruit_court_position_decision = { employer = root template = pool_repopulate_stewardship faith = root.faith + rite = root.rite culture = root.culture save_scope_as = new_commander } @@ -802,15 +824,15 @@ gain_weight_decision = { #by Linnéa Thimrén is_shown = { OR = { - has_character_modifier = malnourished_modifier current_weight < -50 + has_character_modifier = malnourished_modifier } NOT = { has_character_modifier = gaining_weight_modifier } } is_valid_showing_failures_only = { is_imprisoned = no - NOT = { has_trait = incapable } + is_incapable = no } effect = { @@ -872,19 +894,19 @@ lose_weight_decision = { #by Linnéa Thimrén is_shown = { OR = { - has_character_modifier = obese_modifier current_weight > 50 + has_character_modifier = obese_modifier } NOT = { has_character_modifier = losing_weight_modifier } } is_valid_showing_failures_only = { is_imprisoned = no - NOT = { has_trait = incapable } + is_incapable = no } effect = { - stress_impact = { + stress_and_fulfillment_impact = { gluttonous = medium_stress_impact_gain } add_character_modifier = { @@ -940,6 +962,10 @@ commit_suicide_decision = { #by Linnéa Thimrén } desc = { first_valid = { + triggered_desc = { + trigger = { has_fulfillment_parameter = sp_suicide_available } + desc = commit_suicide_decision_desc_doomed + } triggered_desc = { trigger = { has_variable = mourning_parent } desc = commit_suicide_decision_desc_parent @@ -991,7 +1017,7 @@ commit_suicide_decision = { #by Linnéa Thimrén triggered_desc = { trigger = { has_trait = witch - faith = { has_doctrine_parameter = witchcraft_illegal } + rite = { rite_has_parameter = witchcraft_illegal } } desc = commit_suicide_decision_desc_witch } @@ -999,7 +1025,7 @@ commit_suicide_decision = { #by Linnéa Thimrén trigger = { has_trait = cannibal NOT = { - faith = { has_doctrine_parameter = cannibalism_legal } + rite = { rite_has_parameter = cannibalism_legal } } } desc = commit_suicide_decision_desc_cannibal @@ -1007,14 +1033,14 @@ commit_suicide_decision = { #by Linnéa Thimrén triggered_desc = { trigger = { has_trait = sodomite - faith = { has_doctrine_parameter = homosexuality_illegal } + rite = { rite_has_parameter = homosexuality_illegal } } desc = commit_suicide_decision_desc_sodomite } triggered_desc = { trigger = { has_trait = deviant - faith = { has_doctrine_parameter = deviancy_illegal } + rite = { rite_has_parameter = deviancy_illegal } } desc = commit_suicide_decision_desc_deviant } @@ -1024,8 +1050,8 @@ commit_suicide_decision = { #by Linnéa Thimrén has_trait = adulterer has_trait = fornicator } - trait_is_criminal_in_faith_trigger = { - FAITH = faith + trait_is_criminal_in_rite_trigger = { + RITE = rite TRAIT = trait:adulterer GENDER_CHARACTER = this } @@ -1049,57 +1075,62 @@ commit_suicide_decision = { #by Linnéa Thimrén is_shown = { is_adult = yes - NOT = { can_execute_decision = initiate_consolamentum_decision } OR = { + has_fulfillment_parameter = sp_suicide_available has_trait = depressed - has_trait = incapable - has_trait = cancer - has_trait = leper - has_trait = great_pox has_trait = lunatic has_character_flag = make_suicide_available - stress >= extremely_high_stress + has_trait = incapable AND = { #You have a criminal trait and you are stressed stress >= very_high_stress OR = { AND = { has_trait = witch - faith = { has_doctrine_parameter = witchcraft_illegal } + rite ?= { rite_has_parameter = witchcraft_illegal } } AND = { has_trait = cannibal NOT = { - faith = { has_doctrine_parameter = cannibalism_legal } + rite = { rite_has_parameter = cannibalism_legal } } } AND = { has_trait = sodomite - faith = { has_doctrine_parameter = homosexuality_illegal } + rite ?= { rite_has_parameter = homosexuality_illegal } } AND = { has_trait = deviant - faith = { has_doctrine_parameter = deviancy_illegal } + rite ?= { rite_has_parameter = deviancy_illegal } } AND = { OR = { - has_trait = adulterer has_trait = fornicator + has_trait = adulterer } - trait_is_criminal_in_faith_trigger = { - FAITH = faith + trait_is_criminal_in_rite_trigger = { + RITE = rite TRAIT = trait:adulterer GENDER_CHARACTER = this } } } } + stress >= extremely_high_stress + has_trait = great_pox + has_trait = leper + has_trait = cancer } + NOT = { can_execute_decision = initiate_consolamentum_decision } } is_valid_showing_failures_only = { not = { exists = involved_activity } is_imprisoned = no is_commanding_army = no + custom_tooltip = { + text = sp_suicide_blocked_tt + NOT = { has_fulfillment_parameter = sp_suicide_blocked } + } } effect = { @@ -1147,6 +1178,14 @@ commit_suicide_decision = { #by Linnéa Thimrén add = 20 has_character_flag = make_suicide_available } + modifier = { + add = 20 + has_fulfillment_parameter = sp_suicide_available + } + modifier = { + factor = 0 + has_fulfillment_parameter = sp_suicide_blocked + } } } @@ -1169,6 +1208,7 @@ secede_from_empire_decision = { #by Sean Hughes } is_shown = { + is_landed = yes liege ?= { highest_held_title_tier >= tier_empire this != root @@ -1182,12 +1222,11 @@ secede_from_empire_decision = { #by Sean Hughes } liege ?= { any_character_war = { - primary_attacker = prev + primary_attacker ?= prev war_days >= 9125 # Offensive war lasting over 25 years. } } } - is_landed = yes } is_valid = { @@ -1852,25 +1891,34 @@ stress_loss_irritable_decision = { #by Linnéa Thimrén } } -### Indulge in Flagellation ### +### Mortify Flesh ### stress_loss_flagellant_decision = { #by Linnéa Thimrén picture = { reference = "gfx/interface/illustrations/decisions/decision_personal_religious.dds" } desc = { first_valid = { + triggered_desc = { + trigger = { + OR = { + has_personal_tenet_flag = tenet_mortification_mortify_flesh + rite = { rite_has_parameter = tenet_mortification_mortify_flesh } + } + } + desc = stress_loss_mortification_decision_desc + } #Both triggered_desc = { trigger = { has_trait = flagellant - faith = { has_doctrine_parameter = self_mutilation_active } + has_personal_tenet_flag = self_mutilation_active } desc = stress_loss_flagellant_exaltation_decision_desc } #Exaltation of Pain triggered_desc = { trigger = { - faith = { has_doctrine_parameter = self_mutilation_active } + has_personal_tenet_flag = self_mutilation_active } desc = stress_loss_exaltation_decision_desc } @@ -1895,7 +1943,10 @@ stress_loss_flagellant_decision = { #by Linnéa Thimrén is_shown = { OR = { has_trait = flagellant - faith = { has_doctrine_parameter = self_mutilation_active } + has_personal_tenet_flag = self_mutilation_active + has_personal_tenet_flag = tenet_mortification_mortify_flesh + rite = { rite_has_parameter = tenet_mortification_mortify_flesh } + has_fulfillment_parameter = sp_flagellant_decision } } @@ -1905,19 +1956,38 @@ stress_loss_flagellant_decision = { #by Linnéa Thimrén } effect = { - show_as_tooltip = { #The effect is actually applied in the event itself - flagellation_decision_effect = yes + add_character_flag = { + flag = recent_flagellant + days = 60 } - trigger_event = { - on_action = stress_loss_flagellant + if = { + limit = { + OR = { + has_personal_tenet_flag = tenet_mortification_mortify_flesh + rite = { rite_has_parameter = tenet_mortification_mortify_flesh } + } + } + custom_tooltip = stress_loss_mortification_decision_effect_tt + trigger_event = pam_tenet_events.0010 + } + else = { + show_as_tooltip = { #The effect is actually applied in the event itself + flagellation_decision_effect = yes + } + trigger_event = { + on_action = stress_loss_flagellant + } } } ai_potential = { OR = { has_trait = flagellant - faith = { has_doctrine_parameter = self_mutilation_active } + has_personal_tenet_flag = self_mutilation_active + has_personal_tenet_flag = tenet_mortification_mortify_flesh + rite = { rite_has_parameter = tenet_mortification_mortify_flesh } + has_fulfillment_parameter = sp_flagellant_decision } is_adult = yes } diff --git a/common/decisions/dlc_decisions/bp_2/00_bp2_other_decisions.txt b/common/decisions/dlc_decisions/bp_2/00_bp2_other_decisions.txt index 87a0d7ff4..c6e3c49bd 100644 --- a/common/decisions/dlc_decisions/bp_2/00_bp2_other_decisions.txt +++ b/common/decisions/dlc_decisions/bp_2/00_bp2_other_decisions.txt @@ -32,21 +32,12 @@ rites_of_passage_decision = { } is_shown = { - has_bp2_dlc_trigger = yes is_landed = yes - government_has_flag = government_is_tribal OR = { - OR = { - AND = { - is_adult = no - NOT = { - any_memory = { - memory_type = completed_rites_of_passage - } - } - } - has_character_flag = unproven_adult_flag - } + government_has_flag = government_is_tribal + government_has_flag = government_is_nomadic + } + OR = { any_child = { count >= 1 OR = { @@ -61,11 +52,23 @@ rites_of_passage_decision = { has_character_flag = unproven_adult_flag } } + OR = { + AND = { + is_adult = no + NOT = { + any_memory = { + memory_type = completed_rites_of_passage + } + } + } + has_character_flag = unproven_adult_flag + } any_courtier = { is_hostage_of = root character_can_rites_of_passage_trigger = yes } } + has_bp2_dlc_trigger = yes } cooldown = { days = 365 } @@ -73,31 +76,41 @@ rites_of_passage_decision = { is_valid = { OR = { any_child = { + is_available = yes + character_can_rites_of_passage_trigger = yes + } + AND = { + is_available = yes character_can_rites_of_passage_trigger = yes } - character_can_rites_of_passage_trigger = yes any_courtier = { is_hostage_of = root + is_available = yes character_can_rites_of_passage_trigger = yes } } - custom_description = { - text = rites_of_passage_trigger_chaplain - cp:councillor_court_chaplain ?= { - is_available_ai_adult = yes - } - } } is_valid_showing_failures_only = { - OR = { - is_available = yes - any_child = { - is_available = yes + trigger_if = { + limit = { + government_has_flag = government_is_nomadic + } + employs_court_position = court_astrologer_court_position + custom_tooltip = { + text = rites_of_passage_trigger_astrologer + court_position:court_astrologer_court_position ?= { + is_available_ai_adult = yes + } } } - cp:councillor_court_chaplain ?= { - is_available_ai_adult = yes + trigger_else = { + custom_tooltip = { + text = rites_of_passage_trigger_chaplain + cp:councillor_court_chaplain ?= { + is_available_ai_adult = yes + } + } } } diff --git a/common/decisions/dlc_decisions/ep_1/00_ep1_court_grandeur_and_amenity_decisions.txt b/common/decisions/dlc_decisions/ep_1/00_ep1_court_grandeur_and_amenity_decisions.txt index e16f8e47c..f92eb8f8d 100644 --- a/common/decisions/dlc_decisions/ep_1/00_ep1_court_grandeur_and_amenity_decisions.txt +++ b/common/decisions/dlc_decisions/ep_1/00_ep1_court_grandeur_and_amenity_decisions.txt @@ -31,15 +31,15 @@ order_mass_eviction_decision = { selection_tooltip = order_mass_eviction_decision_tooltip is_shown = { - # Standard filter checks. - is_playable_character = yes has_royal_court = yes - has_dlc_feature = royal_court # Has a suitable lack of rooms. amenity_level = { target = court_lodging_standards value <= medium_amenity_level } + has_dlc_feature = royal_court + # Standard filter checks. + is_playable_character = yes } is_valid = { @@ -175,32 +175,28 @@ exoticise_a_grand_hall_decision = { selection_tooltip = exoticise_a_grand_hall_decision_tooltip is_shown = { - # Standard filter checks. - is_playable_character = yes has_royal_court = yes - has_dlc_feature = royal_court + # Grandeur requirements. + trigger_if = { + limit = { is_ai = yes } + # AI need to border a player or an empire. + OR = { + any_neighboring_and_across_water_top_liege_realm_owner = { this.primary_title.tier >= tier_empire } + any_player = { + any_neighboring_and_across_water_top_liege_realm_owner = { this = root } + any_neighboring_and_across_water_realm_same_rank_owner = { this = root } + has_royal_court = yes + } + } + } # Has suitably amazing rooms. amenity_level = { target = court_lodging_standards value >= very_high_amenity_level } - # Grandeur requirements. - OR = { - # AI need to border a player or an empire. - AND = { - is_ai = yes - OR = { - any_player = { - has_royal_court = yes - any_neighboring_and_across_water_realm_same_rank_owner = { this = root } - any_neighboring_and_across_water_top_liege_realm_owner = { this = root } - } - any_neighboring_and_across_water_top_liege_realm_owner = { this.primary_title.tier = tier_empire } - } - } - # Players handle this in the is_valid block. - is_ai = no - } + has_dlc_feature = royal_court + # Standard filter checks. + is_playable_character = yes } is_valid = { @@ -208,6 +204,10 @@ exoticise_a_grand_hall_decision = { trigger_if = { limit = { is_ai = no } OR = { + custom_description = { + text = exoticise_a_grand_hall_decision.tt.any_valid_hegemony + any_hegemony = { exoticise_a_grand_hall_decision_list_builder_guts_trigger = yes } + } custom_description = { text = exoticise_a_grand_hall_decision.tt.any_valid_empire any_empire = { exoticise_a_grand_hall_decision_list_builder_guts_trigger = yes } diff --git a/common/decisions/dlc_decisions/ep_1/00_ep1_other_decisions.txt b/common/decisions/dlc_decisions/ep_1/00_ep1_other_decisions.txt index f485328b5..f0b8b61ba 100644 --- a/common/decisions/dlc_decisions/ep_1/00_ep1_other_decisions.txt +++ b/common/decisions/dlc_decisions/ep_1/00_ep1_other_decisions.txt @@ -34,9 +34,9 @@ jester_entertainment_decision = { } is_shown = { - highest_held_title_tier >= tier_duchy - is_landed_or_landless_administrative = yes employs_court_position = court_jester_court_position + is_landed_or_landless_administrative_or_theocratic = yes + highest_held_title_tier >= tier_duchy } is_valid_showing_failures_only = { @@ -83,7 +83,6 @@ adopt_puppy_decision = { sort_order = 89 is_shown = { - is_landed_or_landless_administrative = yes is_lowborn = no OR = { any_owned_story = { type = debug_test_story } @@ -92,6 +91,7 @@ adopt_puppy_decision = { # Or the character has the Kennel upgrade in their Estate domicile ?= { has_domicile_parameter = estate_unlock_adopt_puppy_decision } } + is_landed_or_landless_administrative_or_theocratic = yes } is_valid_showing_failures_only = { @@ -195,29 +195,14 @@ introduce_a_new_fashion_at_court_decision = { sort_order = 80 is_shown = { - NOT = { has_title = title:k_fashion } # Kingdom of Fashion is very much the end-game of this interaction - NOT = { faith = { has_doctrine_parameter = naked_adherents_active } } # Must wear clothes - NOT = { culture = { has_cultural_parameter = naked_culture_active } } # Must wear clothes - is_available_at_peace_adult = yes is_landed = yes # Either has a royal court with high fashion or is part of a royal court with high fashion OR = { AND = { - has_royal_court = yes - has_dlc_feature = royal_court - OR = { - amenity_level = { - target = court_fashion - value >= 4 - } - has_nickname = nick_prince_of_fashion - } - } - AND = { - liege = { has_royal_court = yes } + liege ?= { has_royal_court = yes } has_royal_court = no # Narrative flow of the event is a bit weird if it's unclear which royal court it's taking place in OR = { - liege = { + liege ?= { amenity_level = { target = court_fashion value >= 4 @@ -226,6 +211,17 @@ introduce_a_new_fashion_at_court_decision = { has_nickname = nick_prince_of_fashion } } + AND = { + has_royal_court = yes + OR = { + amenity_level = { + target = court_fashion + value >= 4 + } + has_nickname = nick_prince_of_fashion + } + has_dlc_feature = royal_court + } } trigger_if = { limit = { @@ -236,6 +232,10 @@ introduce_a_new_fashion_at_court_decision = { } this = top_liege } + is_available_at_peace_adult = yes + NOT = { culture = { has_cultural_parameter = naked_culture_active } } # Must wear clothes + NOT = { rite = { rite_has_parameter = naked_adherents_active } } # Must wear clothes + NOT = { has_title = title:k_fashion } # Kingdom of Fashion is very much the end-game of this interaction } is_valid_showing_failures_only = { @@ -264,7 +264,7 @@ introduce_a_new_fashion_at_court_decision = { } } any_courtier_or_guest = { - NOT = { faith = { has_doctrine_parameter = naked_adherents_active } } + NOT = { rite = { rite_has_parameter = naked_adherents_active } } is_available_at_peace_adult = yes } } @@ -310,7 +310,7 @@ introduce_a_new_fashion_at_court_decision = { # Get someone to potentially oppose the fashion choice random_courtier_or_guest = { limit = { - NOT = { faith = { has_doctrine_parameter = naked_adherents_active } } + NOT = { rite = { rite_has_parameter = naked_adherents_active } } is_available_at_peace_adult = yes } weight = { diff --git a/common/decisions/dlc_decisions/ep_2/00_ep2_other_decisions.txt b/common/decisions/dlc_decisions/ep_2/00_ep2_other_decisions.txt index 9d8b30241..58212bf28 100644 --- a/common/decisions/dlc_decisions/ep_2/00_ep2_other_decisions.txt +++ b/common/decisions/dlc_decisions/ep_2/00_ep2_other_decisions.txt @@ -31,20 +31,20 @@ train_for_tournament_decision = { sort_order = 80 is_shown = { - has_dlc_feature = tours_and_tournaments - activity_is_valid_tournament_contestant_training_decision = yes OR = { exists = cp:councillor_marshal - AND = { - government_has_flag = government_is_landless_adventurer - employs_court_position = master_of_arms_camp_officer - } any_councillor = { + martial > high_skill_rating is_kurultai_trigger = yes is_available_ai = yes - martial > high_skill_rating + } + AND = { + employs_court_position = master_of_arms_camp_officer + government_has_flag = government_is_landless_adventurer } } + activity_is_valid_tournament_contestant_training_decision = yes + has_dlc_feature = tours_and_tournaments } @@ -88,7 +88,7 @@ train_for_tournament_decision = { } } trigger_event = ep2_decision_events.0001 - stress_impact = { + stress_and_fulfillment_impact = { craven = major_stress_impact_gain } } diff --git a/common/decisions/dlc_decisions/ep_3/06_ep3_separatist_uprising_decision.txt b/common/decisions/dlc_decisions/ep_3/06_ep3_separatist_uprising_decision.txt index fa17c3654..f2c6ee5e6 100644 --- a/common/decisions/dlc_decisions/ep_3/06_ep3_separatist_uprising_decision.txt +++ b/common/decisions/dlc_decisions/ep_3/06_ep3_separatist_uprising_decision.txt @@ -22,17 +22,16 @@ separatist_uprising_decision = { sort_order = 350 is_shown = { - has_ep3_dlc_trigger = yes has_government = landless_adventurer_government - NOT = { has_trait = populist_leader } NOT = { has_variable = separatist_uprising_decision_var } + NOT = { has_trait = populist_leader } + has_ep3_dlc_trigger = yes } is_valid = { custom_tooltip = { text = separatist_uprising_culture_duchy_check_tt exists = location.county - exists = location.duchy exists = location.duchy.holder.liege } custom_tooltip = { @@ -43,8 +42,12 @@ separatist_uprising_decision = { text = separatist_uprising_capital_county_tt location.county != location.duchy.holder.top_liege.capital_county } - NOT = { - location.duchy.holder.culture = root.culture + trigger_if = { + limit = { exists = location.duchy.holder } + location.duchy.holder.culture != root.culture + } + trigger_else = { + location.duchy.title_capital_county.holder.culture != root.culture } prestige_level >= 3 } diff --git a/common/decisions/dlc_decisions/fp_1/00_fp1_other_decisions.txt b/common/decisions/dlc_decisions/fp_1/00_fp1_other_decisions.txt index 62c8d4a1a..abdcec744 100644 --- a/common/decisions/dlc_decisions/fp_1/00_fp1_other_decisions.txt +++ b/common/decisions/dlc_decisions/fp_1/00_fp1_other_decisions.txt @@ -27,13 +27,13 @@ raise_stele_decision = { sort_order = 80 is_shown = { - # DLC check. - has_fp1_dlc_trigger = yes # Landed characters only: nobody likes a mercenary. is_landed = yes - primary_title.tier > tier_barony # Holds a suitable culture at a suitable period. fp1_can_raise_stele_trigger = yes + primary_title.tier > tier_barony + # DLC check. + has_fp1_dlc_trigger = yes } is_valid = { diff --git a/common/decisions/dlc_decisions/fp_3/fp3_dynasty_decisions.txt b/common/decisions/dlc_decisions/fp_3/fp3_dynasty_decisions.txt index 489e5fda2..2b8c2bc92 100644 --- a/common/decisions/dlc_decisions/fp_3/fp3_dynasty_decisions.txt +++ b/common/decisions/dlc_decisions/fp_3/fp3_dynasty_decisions.txt @@ -291,7 +291,7 @@ fp3_embellish_capital_decision = { OR = { has_trait = administrator has_trait = architect - has_trait = scholar + has_trait = erudite has_trait = lifestyle_gardener has_trait = overseer } @@ -335,7 +335,7 @@ fp3_embellish_capital_decision = { OR = { has_trait = administrator has_trait = architect - has_trait = scholar + has_trait = erudite has_trait = lifestyle_gardener has_trait = overseer } @@ -435,7 +435,7 @@ fp3_embellish_capital_decision = { OR = { has_trait = administrator has_trait = architect - has_trait = scholar + has_trait = erudite has_trait = lifestyle_gardener has_trait = overseer } @@ -479,7 +479,7 @@ fp3_embellish_capital_decision = { OR = { has_trait = administrator has_trait = architect - has_trait = scholar + has_trait = erudite has_trait = lifestyle_gardener has_trait = overseer } diff --git a/common/decisions/dlc_decisions/fp_3/fp3_scholarship_decisions.txt b/common/decisions/dlc_decisions/fp_3/fp3_scholarship_decisions.txt index 19a6c2caf..fd7b95d78 100644 --- a/common/decisions/dlc_decisions/fp_3/fp3_scholarship_decisions.txt +++ b/common/decisions/dlc_decisions/fp_3/fp3_scholarship_decisions.txt @@ -17,9 +17,9 @@ fp3_sponsor_persian_scholars_decision = { } is_shown = { - culture = { has_cultural_pillar = heritage_iranian } - has_fp3_dlc_trigger = yes + culture ?= { has_cultural_pillar = heritage_iranian } can_employ_court_position_type = court_scholar_court_position + has_fp3_dlc_trigger = yes } is_valid_showing_failures_only = { @@ -295,7 +295,7 @@ fp3_sponsor_research_project_decision = { modifier = { factor = 10 OR = { - has_trait = scholar + has_trait = erudite has_trait = lifestyle_physician has_trait = lifestyle_mystic } diff --git a/common/decisions/dlc_decisions/fp_3/fp3_zoroastrian_decisions.txt b/common/decisions/dlc_decisions/fp_3/fp3_zoroastrian_decisions.txt index e75576484..e2e33167d 100644 --- a/common/decisions/dlc_decisions/fp_3/fp3_zoroastrian_decisions.txt +++ b/common/decisions/dlc_decisions/fp_3/fp3_zoroastrian_decisions.txt @@ -19,32 +19,28 @@ restore_badd_fortress_decision = { #This allows a ruler with a Zandik or Chthoni } is_shown = { - faith = { #this is a decision for religious underdogs, needing a mountain home - OR = { - has_doctrine = doctrine_heretic_branch_zandik - has_doctrine = tenet_cthonic_redoubts + #Must be in the region + any_held_title = { + title_tier = county + title_province ?= { + OR = { + geographical_region = world_middle_east_persia + geographical_region = world_middle_east_arabia + geographical_region = world_asia_minor + geographical_region = world_middle_east_jerusalem + } } } NOT = { exists = root.faith.religious_head } - is_playable_character = yes - exists = dynasty #just for sanity - - #Must be in the region - any_held_title = { - title_tier = county - title_province = { - OR = { - geographical_region = world_asia_minor - geographical_region = world_middle_east_jerusalem - geographical_region = world_middle_east_arabia - geographical_region = world_middle_east_persia - } - } + #this is a decision for religious underdogs, needing a mountain home + OR = { + rite ?= { rite_has_tenet = tenet_cthonic_redoubts } + rite ?= { rite_has_doctrine = doctrine_heretic_branch_zandik } } - #Can't already be an empire, that'd ruin the underdog theme - highest_held_title_tier <= tier_kingdom + is_playable_character = yes + #Not repeatable. NOT = { is_target_in_global_variable_list = { @@ -52,6 +48,9 @@ restore_badd_fortress_decision = { #This allows a ruler with a Zandik or Chthoni target = flag:restored_badd_fortress #so it can't happen twice } } + #Can't already be an empire, that'd ruin the underdog theme + highest_held_title_tier <= tier_kingdom + exists = dynasty #just for sanity } is_valid = { @@ -60,11 +59,10 @@ restore_badd_fortress_decision = { #This allows a ruler with a Zandik or Chthoni #Completely controls Badd has_title = title:c_tabriz has_title = title:b_ahar - faith = { #again, a decision for religious underdogs, needing a mountain home - OR = { - has_doctrine = doctrine_heretic_branch_zandik - has_doctrine = tenet_cthonic_redoubts - } + #again, a decision for religious underdogs, needing a mountain home + OR = { + rite = { rite_has_doctrine = doctrine_heretic_branch_zandik } + rite = { rite_has_tenet = tenet_cthonic_redoubts } } custom_tooltip = { @@ -173,20 +171,7 @@ destroy_the_magi_decision = { #This allows a ruler with sufficient piety and con ai_check_interval = 0 is_shown = { #this is a decision for religious underdogs that have risen to prominence - faith = { - AND = { - has_doctrine = doctrine_heretic_branch_zandik - has_doctrine = doctrine_theocracy_temporal #you need to still have this doctrine for it to work - has_doctrine = doctrine_spiritual_head #you need to still have this doctrine for it to work - } - } - - NOT = { exists = root.faith.religious_head } #if you have restored the Zoroastrian priesthood, you wouldn't wanna destroy it - is_ai = no #we don't want the AI to complicate things here - is_playable_character = yes - exists = dynasty #just for sanity - #Not repeatable. NOT = { is_target_in_global_variable_list = { @@ -194,18 +179,29 @@ destroy_the_magi_decision = { #This allows a ruler with sufficient piety and con target = flag:destroyed_the_magi #so it can't happen twice } } + + exists = dynasty #just for sanity + + is_playable_character = yes + NOT = { exists = root.faith.religious_head } #if you have restored the Zoroastrian priesthood, you wouldn't wanna destroy it + rite ?= { + rite_has_doctrine = doctrine_heretic_branch_zandik + rite_has_doctrine = doctrine_theocracy_temporal + } + + faith ?= { has_doctrine = doctrine_spiritual_head } } is_valid = { piety_level >= high_piety_level - faith = { has_doctrine = doctrine_heretic_branch_zandik } + rite = { rite_has_doctrine = doctrine_heretic_branch_zandik } custom_description = { text = "restore_high_priesthood_holy_sites" faith = { - any_holy_site = { + any_holy_site_barony = { OR = { county.holder = root county.holder.top_liege = { this = root } @@ -252,14 +248,15 @@ kindle_royal_fire_decision = { picture = { reference = "gfx/interface/illustrations/decisions/fp3/fp3_decision_foundation.dds" } + decision_group_type = religious desc = kindle_royal_fire_decision_desc selection_tooltip = kindle_royal_fire_decision_tooltip sort_order = 90 is_shown = { - is_playable_character = yes - religion = religion:zoroastrianism_religion + religion ?= religion:zoroastrianism_religion NOT = { has_character_modifier = fp3_royal_fire_modifier } + is_playable_character = yes } is_valid = { @@ -325,16 +322,17 @@ fp3_embrace_zoroastrianism_decision = { picture = { reference = "gfx/interface/illustrations/event_scenes/fp3_temple.dds" } + decision_group_type = religious desc = fp3_embrace_zoroastrianism_decision_desc selection_tooltip = fp3_embrace_zoroastrianism_decision_tooltip sort_order = 120 is_shown = { - culture = { has_cultural_pillar = heritage_iranian } + current_date <= 960.1.1 # Narratively, this decision is about embracing the faith of your ancestors over newer "modern" faiths # Therefore, this decision should not be available to Zoroastrians looking to change their sect NOT = { has_religion = religion:zoroastrianism_religion } - current_date <= 960.1.1 + culture ?= { has_cultural_pillar = heritage_iranian } } is_valid = { diff --git a/common/decisions/dlc_decisions/mpo/09_mpo_decisions_2.txt b/common/decisions/dlc_decisions/mpo/09_mpo_decisions_2.txt index a75ada210..add46ca53 100644 --- a/common/decisions/dlc_decisions/mpo/09_mpo_decisions_2.txt +++ b/common/decisions/dlc_decisions/mpo/09_mpo_decisions_2.txt @@ -8,15 +8,15 @@ pray_to_protective_amulet_decision = { sort_order = 100 is_shown = { - has_mpo_dlc_trigger = yes any_character_artifact = { has_variable = magic_amulet_var } OR = { - religion = religion:tengrism_religion - culture = { has_cultural_pillar = heritage_mongolic } + culture ?= { has_cultural_pillar = heritage_mongolic } + religion ?= religion:tengrism_religion has_trait = nomadic_philosophy } + has_mpo_dlc_trigger = yes } is_valid = { @@ -82,14 +82,14 @@ mpo_desperate_stance_decision = { sort_order = 100 is_shown = { - has_mpo_dlc_trigger = yes government_has_flag = government_is_nomadic - exists = situation:the_great_steppe any_character_situation = { any_participant_group = { participant_group_type = nomad_rulers_capital } } + exists = situation:the_great_steppe + has_mpo_dlc_trigger = yes } is_valid = { @@ -150,9 +150,9 @@ adopt_nomadic_ways_decision = { sort_order = 100 is_shown = { - has_mpo_dlc_trigger = yes - has_ep3_dlc_trigger = yes is_landless_adventurer = yes + has_ep3_dlc_trigger = yes + has_mpo_dlc_trigger = yes } is_valid = { diff --git a/common/decisions/dlc_decisions/mpo/mpo_court_astrologer_decision.txt b/common/decisions/dlc_decisions/mpo/mpo_court_astrologer_decision.txt index 8bef6e944..6aa5d3b4a 100644 --- a/common/decisions/dlc_decisions/mpo/mpo_court_astrologer_decision.txt +++ b/common/decisions/dlc_decisions/mpo/mpo_court_astrologer_decision.txt @@ -14,9 +14,9 @@ mpo_divination_decision = { } is_shown = { - has_mpo_dlc_trigger = yes government_has_flag = government_is_nomadic has_religion = religion:tengrism_religion + has_mpo_dlc_trigger = yes } is_valid_showing_failures_only = { diff --git a/common/decisions/dlc_decisions/mpo/mpo_flavor_decision.txt b/common/decisions/dlc_decisions/mpo/mpo_flavor_decision.txt index 48ba312a9..d814cb9b6 100644 --- a/common/decisions/dlc_decisions/mpo/mpo_flavor_decision.txt +++ b/common/decisions/dlc_decisions/mpo/mpo_flavor_decision.txt @@ -9,27 +9,54 @@ mpo_pleasure_dome_decision = { sort_order = 80 is_shown = { - has_mpo_dlc_trigger = yes OR = { government_has_flag = government_is_nomadic has_trait = nomadic_philosophy } - NOT = { has_global_variable = devised_pleasure_dome } - culture = { + culture ?= { OR = { - has_cultural_pillar = heritage_mongolic has_cultural_pillar = heritage_turkic + has_cultural_pillar = heritage_mongolic } } + NOT = { has_global_variable = devised_pleasure_dome } + has_mpo_dlc_trigger = yes } + widget = { + controller = create_holy_order + title_valid = { + trigger_if = { + limit = { exists = this } + title_province = { + trigger_if = { + limit = { scope:ruler = { is_ai = yes } } + has_special_building_slot = no + } + trigger_else = { + has_special_building = no + } + } + is_capital_barony = yes + holder = scope:ruler + is_leased_out = no + } + } + } + is_valid_showing_failures_only = { custom_tooltip = { text = mpo_pleasure_dome_no_barony_tt any_held_title = { tier = tier_barony title_province = { - has_special_building_slot = no + trigger_if = { + limit = { root = { is_ai = yes } } + has_special_building_slot = no + } + trigger_else = { + has_special_building = no + } } is_capital_barony = yes holder = root @@ -41,7 +68,7 @@ mpo_pleasure_dome_decision = { is_valid = { prestige_level >= very_high_prestige_level - highest_held_title_tier = tier_empire + highest_held_title_tier >= tier_empire trigger_if = { limit = { government_has_flag = government_is_nomadic @@ -93,20 +120,6 @@ mpo_pleasure_dome_decision = { } } - widget = { - controller = create_holy_order - barony_valid = { - trigger_if = { - limit = { exists = this } - title_province = { - has_special_building_slot = no - } - is_capital_barony = yes - holder = scope:ruler - is_leased_out = no - } - } - } effect = { send_interface_toast = { type = event_toast_effect_good @@ -157,19 +170,19 @@ mpo_establish_paiza_system_decision = { sort_order = 80 is_shown = { - has_mpo_dlc_trigger = yes - government_has_flag = government_is_nomadic - NOT = { has_character_flag = established_paiza_system } - exists = situation:the_great_steppe any_character_situation = { this = situation:the_great_steppe } + government_has_flag = government_is_nomadic OR = { has_realm_law = nomadic_authority_2 has_realm_law = nomadic_authority_3 has_realm_law = nomadic_authority_4 has_realm_law = nomadic_authority_5 } + has_mpo_dlc_trigger = yes + NOT = { has_character_flag = established_paiza_system } + exists = situation:the_great_steppe } is_valid = { @@ -283,9 +296,9 @@ mpo_call_for_merchants_decision = { sort_order = 80 is_shown = { - has_mpo_dlc_trigger = yes - government_has_flag = government_is_nomadic has_character_flag = established_paiza_system + government_has_flag = government_is_nomadic + has_mpo_dlc_trigger = yes } is_valid = { @@ -392,11 +405,11 @@ mpo_call_for_merchants_small_decision = { sort_order = 80 is_shown = { - has_mpo_dlc_trigger = yes government_has_flag = government_is_nomadic NOT = { has_character_flag = established_paiza_system } + has_mpo_dlc_trigger = yes } is_valid = { @@ -488,14 +501,14 @@ mpo_abuse_authority_paiza_decision = { sort_order = 80 is_shown = { - has_mpo_dlc_trigger = yes is_imprisoned = no + has_mpo_dlc_trigger = yes any_character_artifact = { root = { can_benefit_from_artifact = prev } exists = var:paiza_patron NOT = { root = var:paiza_patron - var:paiza_patron = { + var:paiza_patron ?= { is_at_war_with = root } } @@ -596,10 +609,12 @@ mpo_abuse_authority_paiza_decision = { } modifier = { add = { - value = max_herd - subtract = herd - divide = max_herd - multiply = 20 + domicile ?= { + value = max_herd + subtract = herd + divide = max_herd + multiply = 20 + } } domicile ?= { herd <= max_herd diff --git a/common/decisions/dlc_decisions/mpo/mpo_pax_mongolica_decision.txt b/common/decisions/dlc_decisions/mpo/mpo_pax_mongolica_decision.txt index 49a902e1b..ab266ee2a 100644 --- a/common/decisions/dlc_decisions/mpo/mpo_pax_mongolica_decision.txt +++ b/common/decisions/dlc_decisions/mpo/mpo_pax_mongolica_decision.txt @@ -9,11 +9,11 @@ mpo_pax_mongolica_decision = { is_shown = { government_has_flag = government_is_nomadic - exists = situation:the_great_steppe any_character_situation = { this = situation:the_great_steppe } NOT = { has_variable = pax_mongolica_var } + exists = situation:the_great_steppe } is_valid = { diff --git a/common/decisions/dlc_decisions/tgp/tgp_culture_decisions.txt b/common/decisions/dlc_decisions/tgp/tgp_culture_decisions.txt index 223110d2b..6b95dc4a1 100644 --- a/common/decisions/dlc_decisions/tgp/tgp_culture_decisions.txt +++ b/common/decisions/dlc_decisions/tgp/tgp_culture_decisions.txt @@ -91,7 +91,7 @@ author_book_decision = { custom_tooltip = quickest_book_tt trigger_event = author_book.0001 show_as_tooltip = { - stress_impact = { + stress_and_fulfillment_impact = { base = minor_stress_impact_gain lazy = minor_stress_impact_gain lifestyle_poet = minor_stress_impact_loss #offsets penalty a bit @@ -109,7 +109,7 @@ author_book_decision = { } trigger_event = author_book.0004 show_as_tooltip = { - stress_impact = { + stress_and_fulfillment_impact = { base = medium_stress_impact_gain lazy = minor_stress_impact_gain journaller = minor_stress_impact_loss #offsets penalty a bit @@ -123,7 +123,7 @@ author_book_decision = { custom_tooltip = most_time_consuming_book_tt trigger_event = author_book.0005 show_as_tooltip = { - stress_impact = { + stress_and_fulfillment_impact = { base = major_stress_impact_gain lazy = minor_stress_impact_gain journaller = minor_stress_impact_loss #offsets penalty a bit diff --git a/common/decisions/dlc_decisions/tgp/tgp_dynastic_cycle_decisions.txt b/common/decisions/dlc_decisions/tgp/tgp_dynastic_cycle_decisions.txt index 2f7073d8e..616d61006 100644 --- a/common/decisions/dlc_decisions/tgp/tgp_dynastic_cycle_decisions.txt +++ b/common/decisions/dlc_decisions/tgp/tgp_dynastic_cycle_decisions.txt @@ -13,9 +13,9 @@ situation_dynastic_cycle_claim_mandate_decision = { cooldown = { years = 5 } is_shown = { - has_tgp_dlc_trigger = yes exists = top_participant_group:dynastic_cycle #I am part of the dynastic cycle situation:dynastic_cycle = { situation_current_phase = situation_dynastic_cycle_phase_chaos } #The era is division + has_tgp_dlc_trigger = yes } is_valid = { @@ -51,7 +51,7 @@ situation_dynastic_cycle_claim_mandate_decision = { situation:dynastic_cycle = { save_scope_as = situation } tgp_claim_mandate_of_heaven_effect = yes } - + ai_check_interval_by_tier = { barony = 0 county = 0 @@ -60,7 +60,7 @@ situation_dynastic_cycle_claim_mandate_decision = { empire = 3 hegemony = 12 } - ai_potential = { + ai_potential = { situation:dynastic_cycle ?= { situation_current_phase = situation_dynastic_cycle_phase_chaos } NOT = { any_owned_story = { @@ -94,10 +94,10 @@ situation_dynastic_cycle_favor_own_culture_for_appointments = { decision_group_type = dynastic_cycle is_shown = { - has_title = title:h_china top_participant_group:dynastic_cycle ?= { has_participant_group_parameter = dynastic_cycle_hegemon_may_favour_own_culture_for_appointments } + has_title = title:h_china } is_valid = { @@ -111,11 +111,11 @@ situation_dynastic_cycle_favor_own_culture_for_appointments = { is_valid_showing_failures_only = { is_available_adult = yes } - + cost = { prestige = 250 } - + widget = { gui = "decision_view_widget_generic_multichoice_with_effects" controller = decision_option_list_controller @@ -181,11 +181,11 @@ situation_dynastic_cycle_favor_own_culture_for_appointments = { value = scope:hegemon_favored_culture } } - + # Notify any vassal players every_player = { limit = { target_is_liege_or_above = root } - + } } } @@ -196,16 +196,16 @@ situation_dynastic_cycle_favor_own_culture_for_appointments = { situation:dynastic_cycle ?= { remove_variable = dynastic_cycle_favored_culture } - + # Notify any vassal players every_player = { limit = { target_is_liege_or_above = root } - + } } } } - + ai_check_interval_by_tier = { barony = 0 county = 0 @@ -214,12 +214,12 @@ situation_dynastic_cycle_favor_own_culture_for_appointments = { empire = 0 hegemony = 36 } - + ai_potential = { always = yes } - + ai_will_do = { base = 30 - + modifier = { ai_boldness >= high_positive_ai_value add = 45 @@ -245,18 +245,18 @@ situation_dynastic_cycle_choose_movement_decision = { sort_order = 80 is_shown = { - has_tgp_dlc_trigger = yes is_ai = no - any_character_situation = { - situation_type = dynastic_cycle - NOT = { situation_current_phase = situation_dynastic_cycle_phase_chaos } - } top_participant_group:dynastic_cycle ?= { NOR = { participant_group_type = other_rulers participant_group_type = hegemon_ruler } } + any_character_situation = { + situation_type = dynastic_cycle + NOT = { situation_current_phase = situation_dynastic_cycle_phase_chaos } + } + has_tgp_dlc_trigger = yes } is_valid_showing_failures_only = { @@ -360,7 +360,7 @@ situation_dynastic_cycle_choose_movement_decision = { value = 0 if = { limit = { - government_allows = administrative + government_has_flag = government_has_influence } # Base cost value = monumental_influence_value @@ -425,7 +425,7 @@ situation_dynastic_cycle_choose_movement_decision = { value = 0 if = { limit = { - NOT = { government_allows = administrative } + NOT = { government_has_flag = government_has_influence } } # Base cost value = { @@ -590,13 +590,13 @@ movement_petition_decision = { sort_order = 80 is_shown = { - has_tgp_dlc_trigger = yes top_participant_group:dynastic_cycle ?= { NOR = { participant_group_type = other_rulers participant_group_type = hegemon_ruler } } + has_tgp_dlc_trigger = yes } is_valid_showing_failures_only = { @@ -900,7 +900,7 @@ movement_petition_decision = { } } - ai_potential = { + ai_potential = { always = no } ai_check_interval = 0 @@ -916,7 +916,7 @@ movement_petition_change_laws_decision = { reference = "gfx/interface/illustrations/event_story/tgp_dynastic_cycle_stability.dds" } is_invisible = yes - + is_valid_showing_failures_only = { is_available_adult = yes is_any_movement_leader = yes @@ -1445,7 +1445,7 @@ ai_movement_petition_change_laws_decision = { } is_invisible = yes cooldown = { years = 10 } - + is_valid = { is_available_ai_adult = yes is_any_movement_leader = yes @@ -1540,7 +1540,7 @@ ai_movement_petition_change_laws_decision = { top_participant_group:dynastic_cycle ?= { participant_group_type = expansion_movement } - add = 50 + add = 50 } modifier = { situation:dynastic_cycle ?= { @@ -2047,7 +2047,7 @@ ai_movement_petition_change_laws_decision = { set_variable = { name = movement_petition value = flag:error - } + } } if = { limit = { @@ -2120,12 +2120,12 @@ renounce_noble_family_title_decision = { decision_group_type = admin is_shown = { - NOT = { top_liege = root } #This is not a general abdication decision - has_tgp_dlc_trigger = yes - is_playable_character = yes - is_house_head = yes any_held_title = { is_noble_family_title = yes } NOT = { religion = religion:buddhism_religion } # Uses tgp_japan_become_a_monk_decision + NOT = { top_liege = root } #This is not a general abdication decision + is_house_head = yes + is_playable_character = yes + has_tgp_dlc_trigger = yes } is_valid = { @@ -2177,7 +2177,7 @@ renounce_noble_family_title_decision = { player = root } } - + cost = { influence = { value = 0 @@ -2277,26 +2277,26 @@ favor_dynastic_cycle_era_decision = { sort_order = 80 is_shown = { - has_tgp_dlc_trigger = yes is_ai = no OR = { AND = { - situation:dynastic_cycle ?= { - NOT = { situation_current_phase = situation_dynastic_cycle_phase_chaos } - } top_participant_group:dynastic_cycle ?= { participant_group_type = hegemon_ruler } + situation:dynastic_cycle ?= { + NOT = { situation_current_phase = situation_dynastic_cycle_phase_chaos } + } } AND = { - situation:dynastic_cycle ?= { - situation_current_phase = situation_dynastic_cycle_phase_chaos - } top_participant_group:dynastic_cycle ?= { participant_group_type = other_rulers } + situation:dynastic_cycle ?= { + situation_current_phase = situation_dynastic_cycle_phase_chaos + } } } + has_tgp_dlc_trigger = yes } is_valid_showing_failures_only = { @@ -2393,13 +2393,13 @@ favor_movement_decision = { sort_order = 80 is_shown = { - has_tgp_dlc_trigger = yes is_ai = no + has_title = title:h_china any_character_situation = { situation_type = dynastic_cycle NOT = { situation_current_phase = situation_dynastic_cycle_phase_chaos } } - has_title = title:h_china + has_tgp_dlc_trigger = yes } is_valid_showing_failures_only = { @@ -2579,11 +2579,11 @@ favored_movement_consults_heaven_decision = { sort_order = 80 is_shown = { - has_tgp_dlc_trigger = yes any_character_situation = { situation_type = dynastic_cycle NOT = { situation_current_phase = situation_dynastic_cycle_phase_chaos } } + has_tgp_dlc_trigger = yes top_participant_group:dynastic_cycle ?= { NOT = { participant_group_type = other_rulers } } @@ -3176,11 +3176,11 @@ house_head_consults_heaven_decision = { sort_order = 80 is_shown = { - has_tgp_dlc_trigger = yes any_character_situation = { situation_type = dynastic_cycle NOT = { situation_current_phase = situation_dynastic_cycle_phase_chaos } } + has_tgp_dlc_trigger = yes top_participant_group:dynastic_cycle ?= { NOT = { participant_group_type = other_rulers } } diff --git a/common/decisions/dlc_decisions/tgp/tgp_east_asia_decisions.txt b/common/decisions/dlc_decisions/tgp/tgp_east_asia_decisions.txt index 6b34b11f7..cb7070c32 100644 --- a/common/decisions/dlc_decisions/tgp/tgp_east_asia_decisions.txt +++ b/common/decisions/dlc_decisions/tgp/tgp_east_asia_decisions.txt @@ -18,18 +18,18 @@ restore_mandala_capital_decision = { is_shown = { government_has_flag = government_is_mandala - capital_province.county = { has_county_modifier = mandala_capital_sacked_modifier } + capital_province.county ?= { has_county_modifier = mandala_capital_sacked_modifier } } is_valid_showing_failures_only = { is_at_war = no is_imprisoned = no - NOT = { has_trait = incapable } + is_incapable = no } effect = { remove_short_term_gold = major_gold_value - capital_province.county = { + capital_province.county = { remove_county_modifier = mandala_capital_sacked_modifier add_county_modifier = { modifier = mandala_capital_restored_modifier @@ -71,18 +71,22 @@ convert_to_mandala_government_decision = { } is_shown = { - has_tgp_dlc_trigger = yes is_landed = yes + highest_held_title_tier > tier_barony has_mandala_culture_trigger = yes NOT = { government_has_flag = government_is_mandala } #We have a special decision for Mandala subjects... trigger_if = { limit = { is_tributary = yes } - NOT = { + NOT = { overlord = { government_has_flag = government_is_mandala } } } - highest_held_title_tier > tier_barony + trigger_if = { + limit = { government_has_flag = government_is_celestial } + NOT = { has_title = title:h_china } + } + has_tgp_dlc_trigger = yes } is_valid = { @@ -90,7 +94,7 @@ convert_to_mandala_government_decision = { limit = { has_legitimacy = yes dynasty ?= { - NOT = { has_dynasty_perk = tgp_sea_legacy_3 } #Bypasses Tribal Authority Requirement + NOT = { has_dynasty_perk = tgp_sea_legacy_3 } #Bypasses the Legitimacy requirement } } legitimacy_level >= 4 @@ -170,7 +174,7 @@ convert_to_mandala_government_decision = { if = { limit = { culture = { - has_cultural_parameter = mandala_tributaries + has_cultural_parameter = mandala_tributaries } exists = confederation } @@ -189,16 +193,24 @@ convert_to_mandala_government_decision = { ai_potential = { has_mandala_culture_trigger = yes + trigger_if = { + limit = { + has_legitimacy = yes + dynasty ?= { + NOT = { has_dynasty_perk = tgp_sea_legacy_3 } + } + } + legitimacy_level >= 4 + } trigger_if = { limit = { government_has_flag = government_is_tribal } - has_realm_law = tribal_authority_3 prestige >= convert_to_mandala_government_tribal_value } trigger_else = { prestige >= convert_to_mandala_government_nontribal_value } trigger_if = { - limit = { + limit = { OR = { government_has_flag = government_is_feudal government_has_flag = government_is_clan @@ -207,17 +219,10 @@ convert_to_mandala_government_decision = { primary_title.tier <= tier_duchy } primary_title.tier > tier_barony - NOR = { - government_has_flag = government_is_republic - government_has_flag = government_is_theocracy - government_has_flag = government_is_mercenary - government_has_flag = government_is_holy_order - government_has_flag = government_is_administrative - government_has_flag = government_is_nomadic - government_has_flag = government_is_herder - government_has_flag = government_is_celestial - government_has_flag = government_is_steppe_admin - government_has_flag = government_is_meritocratic + OR = { + government_has_flag = government_is_feudal + government_has_flag = government_is_clan + government_has_flag = government_is_tribal } NOT = { any_owned_story = { @@ -264,17 +269,22 @@ assimilate_to_mandala_decision = { duchy = 36 kingdom = 36 empire = 36 - hegemony = 36 + hegemony = 0 } is_shown = { - has_tgp_dlc_trigger = yes + highest_held_title_tier > tier_barony overlord ?= { government_has_flag = government_is_mandala } - NAND = { + NAND = { government_has_flag = government_is_mandala faith = overlord.faith } - highest_held_title_tier > tier_barony + rite = { rite_has_doctrine = doctrine_polytheist } + NAND = { + has_title = title:h_china + government_has_mechanic = administrative + } + has_tgp_dlc_trigger = yes } is_valid_showing_failures_only = { @@ -352,8 +362,8 @@ assimilate_to_mandala_decision = { mandala_assimilation_effect = yes if = { limit = { - NOR = { - faith = overlord.faith + NOR = { + faith = overlord.faith faith.religious_head ?= root } } @@ -361,9 +371,9 @@ assimilate_to_mandala_decision = { } #You got in early? Good for you! if = { - limit = { - overlord = { - OR = { + limit = { + overlord = { + OR = { middling_devaraja_quality_trigger = yes poor_devaraja_quality_trigger = yes terrible_devaraja_quality_trigger = yes @@ -371,21 +381,21 @@ assimilate_to_mandala_decision = { } } if = { - limit = { + limit = { overlord = { middling_devaraja_quality_trigger = yes } } add_character_flag = assimilation_payout_t1 custom_tooltip = { text = assimilation_payout_t1_tt } } else_if = { - limit = { + limit = { overlord = { poor_devaraja_quality_trigger = yes } } add_character_flag = assimilation_payout_t2 custom_tooltip = { text = assimilation_payout_t2_tt } } else_if = { - limit = { + limit = { overlord = { terrible_devaraja_quality_trigger = yes } } add_character_flag = assimilation_payout_t3 @@ -428,7 +438,7 @@ assimilate_to_mandala_decision = { primary_title.tier > tier_barony #Keep the tributaries Wanua trigger_if = { - limit = { + limit = { government_has_flag = government_is_wanua is_independent_ruler = yes } @@ -436,7 +446,7 @@ assimilate_to_mandala_decision = { } #... but be more lenient on the Vassals trigger_if = { - limit = { + limit = { government_has_flag = government_is_wanua is_independent_ruler = no } @@ -487,12 +497,21 @@ assimilate_to_mandala_decision = { opinion_target = overlord multiplier = 1 } + modifier = { + add = { + value = highest_held_title_tier + multiply = -10 + } + } + modifier = { + government_has_mechanic = administrative + factor = 0 + } modifier = { capital_county.title_province = { - NOR = { - has_holding_type = temple_citadel_holding - has_holding_type = church_holding - has_holding_type = castle_holding + OR = { + has_holding_type = nomad_holding + has_holding_type = herder_holding } } factor = 0 @@ -518,11 +537,11 @@ mandala_adopt_clan_government_decision = { } is_shown = { - has_tgp_dlc_trigger = yes government_has_flag = government_is_mandala - is_landed = yes - faith.religion = religion:islam_religion + faith.religion ?= religion:islam_religion + has_tgp_dlc_trigger = yes highest_held_title_tier > tier_barony + is_landed = yes } is_valid_showing_failures_only = { @@ -593,17 +612,17 @@ visit_local_shrine_decision = { } is_shown = { - exists = capital_province - has_tgp_dlc_trigger = yes highest_held_title_tier >= tier_county - faith = { has_doctrine = doctrine_pilgrimage_local_rites } + rite ?= { rite_has_doctrine = doctrine_pilgrimage_local_rites } trigger_if = { # Allow a Capital exam to be hosted first. limit = { - is_ai = yes highest_held_title_tier = tier_hegemony + is_ai = yes } years_from_game_start >= 10 } + has_tgp_dlc_trigger = yes + exists = capital_province } is_valid_showing_failures_only = { @@ -644,22 +663,22 @@ seize_mandala_capital_decision = { is_shown = { government_has_flag = government_is_mandala - has_mandala_capital_trigger = no any_subject = { is_ai = yes any_sub_realm_barony = { - kingdom = root.capital_county.kingdom - title_province = { + title_province ?= { has_building_with_flag = mandala_capital_building has_ruined_great_building = no } + kingdom ?= root.capital_county.kingdom } } + has_mandala_capital_trigger = no } is_valid_showing_failures_only = { is_imprisoned = no - NOT = { has_trait = incapable } + is_incapable = no } effect = { @@ -727,6 +746,7 @@ create_bunga_mas_decision = { ai_check_interval = 0 #Not for AI is_shown = { + highest_held_title_tier >= tier_county #Tease Mandala rulers trigger_if = { limit = { is_tributary = no } @@ -735,9 +755,8 @@ create_bunga_mas_decision = { #... unless you're actually the tributary of a Mandala trigger_else = { is_tributary = yes - suzerain = { government_has_flag = government_is_mandala } + suzerain ?= { government_has_flag = government_is_mandala } } - highest_held_title_tier >= tier_county exists = capital_province } @@ -827,7 +846,7 @@ create_bunga_mas_decision = { #Mandala Creation Aspect if = { - limit = { + limit = { government_has_flag = government_is_mandala house = { has_house_aspiration_parameter = aspect_of_creation } is_house_head = yes diff --git a/common/decisions/dlc_decisions/tgp/tgp_silk_road_decisions.txt b/common/decisions/dlc_decisions/tgp/tgp_silk_road_decisions.txt index cdd7770b8..b55d0cf59 100644 --- a/common/decisions/dlc_decisions/tgp/tgp_silk_road_decisions.txt +++ b/common/decisions/dlc_decisions/tgp/tgp_silk_road_decisions.txt @@ -19,13 +19,11 @@ visit_silk_road_market_decision = { } is_shown = { + exists = situation:silk_road_situation OR = { - is_ai = no any_character_situation = { situation_type = silk_road_situation } + is_ai = no } - has_tgp_dlc_trigger = yes - is_playable_character = yes - #There is no point in showing this decision if you cannot benefit from going at all: OR = { silk_road_valid_market_to_visit_trigger = { SUB_REGION = china } @@ -35,6 +33,9 @@ visit_silk_road_market_decision = { silk_road_valid_market_to_visit_trigger = { SUB_REGION = transcaspia } silk_road_valid_market_to_visit_trigger = { SUB_REGION = occident } } + is_playable_character = yes + + has_tgp_dlc_trigger = yes } is_valid = { diff --git a/common/decisions/dlc_decisions/tgp/tgp_steppe_decisions.txt b/common/decisions/dlc_decisions/tgp/tgp_steppe_decisions.txt index 9f5b98d0e..2db8cd9e8 100644 --- a/common/decisions/dlc_decisions/tgp/tgp_steppe_decisions.txt +++ b/common/decisions/dlc_decisions/tgp/tgp_steppe_decisions.txt @@ -17,14 +17,11 @@ selection_tooltip = adopt_steppe_administration_tooltip is_shown = { - has_mpo_dlc_trigger = yes - has_tgp_dlc_trigger = yes + highest_held_title_tier >= tier_kingdom government_has_flag = government_is_nomadic - OR = { - highest_held_title_tier = tier_kingdom - highest_held_title_tier = tier_empire - } is_playable_character = yes + has_tgp_dlc_trigger = yes + has_mpo_dlc_trigger = yes } is_valid = { @@ -263,10 +260,10 @@ return_to_the_steppe_decision = { } is_shown = { - has_mpo_dlc_trigger = yes - has_tgp_dlc_trigger = yes government_has_flag = government_is_steppe_admin is_independent_ruler = yes + has_mpo_dlc_trigger = yes + has_tgp_dlc_trigger = yes is_playable_character = yes NOT = { any_vassal_or_below = { @@ -400,24 +397,21 @@ convert_to_meritocratic_decision = { selection_tooltip = convert_to_meritocratic_tooltip is_shown = { - has_tgp_dlc_trigger = yes + highest_held_title_tier >= tier_kingdom # this isn't standard, but will cover some edge cases for orphaned steppe admin kingdoms government_has_flag = government_is_steppe_admin - OR = { - highest_held_title_tier = tier_kingdom # this isn't standard, but will cover some edge cases for orphaned steppe admin kingdoms - highest_held_title_tier = tier_empire - } + is_playable_character = yes any_sub_realm_county = { count > 0 title_province = { OR = { has_holding_type = castle_holding + has_holding_type = temple_citadel_holding has_holding_type = church_holding has_holding_type = city_holding - has_holding_type = temple_citadel_holding } } } - is_playable_character = yes + has_tgp_dlc_trigger = yes } is_valid = { diff --git a/common/decisions/dlc_decisions/tgp/tgp_tenet_decisions.txt b/common/decisions/dlc_decisions/tgp/tgp_tenet_decisions.txt index bc568f3b3..1c53dc222 100644 --- a/common/decisions/dlc_decisions/tgp/tgp_tenet_decisions.txt +++ b/common/decisions/dlc_decisions/tgp/tgp_tenet_decisions.txt @@ -8,11 +8,15 @@ tgp_divine_reincarnation_decision = { picture = { reference = "gfx/interface/illustrations/decisions/hindu_religious.dds" } + decision_group_type = religious sort_order = 120 is_shown = { is_ai = no - faith = { has_doctrine = tenet_reincarnation } + OR = { + rite ?= { rite_has_tenet = tenet_reincarnation } + has_personal_tenet_flag = tenet_reincarnation_trigger_decision + } } is_valid_showing_failures_only = { diff --git a/common/decisions/dlc_decisions/tgp/tgp_tribute_mission_decisions.txt b/common/decisions/dlc_decisions/tgp/tgp_tribute_mission_decisions.txt index e992f89c5..87ef67bf6 100644 --- a/common/decisions/dlc_decisions/tgp/tgp_tribute_mission_decisions.txt +++ b/common/decisions/dlc_decisions/tgp/tgp_tribute_mission_decisions.txt @@ -14,7 +14,7 @@ tribute_mission_decision_mandala = { is_shown = { is_tributary = yes - suzerain = { government_has_flag = government_is_mandala } + suzerain ?= { government_has_flag = government_is_mandala } } is_valid_showing_failures_only = { @@ -148,8 +148,8 @@ tribute_mission_decision_china = { cooldown = { years = 5 } is_shown = { - title:h_china ?= { is_title_created = yes } is_tributary_or_independent_neighbor_of_hegemon_trigger = { HEGEMON = h_china } + title:h_china ?= { is_title_created = yes } } is_valid_showing_failures_only = { diff --git a/common/defines/00_defines.txt b/common/defines/00_defines.txt index c987b4148..6c7812d57 100644 --- a/common/defines/00_defines.txt +++ b/common/defines/00_defines.txt @@ -36,7 +36,7 @@ 1850 3700 2 4 1650 3200 2 1 } - MERIT_GUI_UPDATE_INTERVAL = 60 # How often the Merit Pool GUI is updated in frames + MERIT_GUI_UPDATE_INTERVAL = 60 # How often the Merit Pool GUI is updated in frames } NSetup = { @@ -155,7 +155,7 @@ NCharacter = { LEVELS_PRESTIGE = { 1000 2000 5000 10000 25000 } LEVELS_INFLUENCE = { 1000 4000 8000 12000 20000 } LEVELS_MERIT = { 100 1000 2000 3500 5500 8500 12000 17000 23000 } - + # default max level index (0-based) for governments. Can be overridden with field currency_levels_cap in the government type DEFAULT_PIETY_LEVEL_CAP = 5 DEFAULT_PRESTIGE_LEVEL_CAP = 5 @@ -318,6 +318,8 @@ NCharacter = { MONTHLY_INFLUENCE_GAIN_ALLIED_TO_TOP_LIEGE = 1.5 # Monthly influence gained for admin rulers in admin realm if you are allied to your top liege MONTHLY_INFLUENCE_GAIN_ALLIED_TO_HOUSE_HEAD = 1 # Monthly influence gained for admin rulers when are allied to admin ruler house head MONTHLY_INFLUENCE_GAIN_BEING_GOVERNOR = 1 # Monthly influence gained in admin realm from being a governor + + INTENDED_MAX_PERSONALITY_TRAITS = 6 # Giving more personality traits than this to a character will cause the game to log an error. } NOldAge = { @@ -446,8 +448,6 @@ NMarriage = { } NCharacterOpinion = { - CONVERGENCE_DELAY = 31 # opinion modifiers will start to decay/grow after this many days - MAX_OPINION = 100 MIN_OPINION = -100 @@ -472,6 +472,8 @@ NCharacterOpinion = { PIOUS = { -10 0 5 10 20 30 40 55 75 } PRESTIGIOUS = { -10 0 5 10 20 30 } PIOUS_MAGNIFICENCE = { -5 0 3 5 10 15 20 25 35 } + # TODO_PAM_DESIGN TIT-76476 Balance these numbers - These are opinion bonus on secular rulers towards theocratic clergy based on clergy piety level + PIOUS_CLERGY = { -5 0 3 5 10 15 20 25 35 } # secular opinion bonus towards clergy in theocratic clergy faiths SKILL_DIPLOMACY_MULT = 1 # opinion = round( ( - SKILL_MODIFIER_OFFSET ) * SKILL_DIPLOMACY_MULT ) @@ -554,6 +556,7 @@ NGovernment = { "tribal_government" "mercenary_government" "holy_order_government" + "monastic_holy_order_government" "administrative_government" "landless_adventurer_government" "landless_minority_government" @@ -568,6 +571,7 @@ NGovernment = { "wanua_government" "meritocratic_government" "steppe_admin_government" + "ecclesiastical_government" } } @@ -791,13 +795,54 @@ NPowerfulVassal = { } NFaith = { + MAX_VIRTUES_SINS = 7 # Virtues and sins are taken from core and approved tenets. only keep this number, giving priority to higher weights + BASE_FERVOR = 50.0 # Default fervor MAX_FERVOR = 100.0 # Max amount of fervor - YEARLY_FERVOR_GROWTH = 3.5 # Fervor yearly change, can be negative - MINIMUM_FAITH_SIZE_FERVOR_MODIFIER = 10 # Adjusts the size modifier for monthly fervor gain for a faith according to the following formula: 1/squareroot(max(define_value, faith_size)/define_value) where define value is the value of MINIMUM_FAITH_SIZE_FERVOR_MODIFIER and faith_size is the current amount of provinces that follows the faith. - FERVOR_CHANGELOG_DURATION = 10 # After how many years do fervor changelog entries get deleted? - FAITH_CREATION_FERVOR_DISCOUNT_PER_MISSING_FERVOR = 1 # How much cheaper does creating a faith get per fervor below 100%? 1 means 1% per point - FAITH_CREATION_FERVOR_DISCOUNT_MAX = 50 # What percentage does the discount cap out at? With these numbers, 0-50 fervor means a 50% discount. Above 50 means between 0% and 50% discount + YEARLY_FERVOR_GROWTH = 0.5 # Fervor yearly change, can be negative + FERVOR_CHANGELOG_DURATION = 1 # After how many years do fervor changelog entries get deleted? + + # Counties per rite before a new rite is likely to spawn + MAX_FAITH_SIZE_PER_RITE = 100 + + # when fervor is below this value, rites will start becoming more divergent and potentially split off to new faiths + LOW_FERVOR_THREASHOLD = 40 + + # Yearly fervor loss grows faster with each extra heresy, and zero here turns depletion off + HERESY_FERVOR_DEPLETION_MULTIPLIER = 1 + + # a faith will be allowed to have this many heresies before the squared heresy depletion will start kicking in + FREE_HERETICAL_RITES_BEFORE_DEPLETION = 0 + + # if the faith has more rites than it needs (see MAX_FAITH_SIZE_PER_RITE), the number of heresies that counts towards the yearly depletion is reduced + # by the excess rites multiplied by this number. + # e.g. a faith that has 3 heresies would normally lose 9 fervor per year. + # but if it has 5 branched rites and 250 counties (2 rites over the 3 needed to cover <=300 counties), the loss protection is 1 = (2 * 0.5) + # then the heresies that count are 2 instead of 3, and the fervor loss is 4 instead of 9 + OVER_NEEDED_RITES_FERVOR_LOSS_PROTECTION_MULT = 0.5 + + # every non-heretical divergent rite will provide at most this fervor loss + MAX_FERVOR_LOSS_PER_DIVERGENT_RITE = 0.9 + + # how many relics can be extracted from a saint? must be positive + MAX_RELICS_FROM_SAINT = 4 +} + +NRite = { + RITE_CREATION_FERVOR_DISCOUNT_PER_MISSING_FERVOR = 1 # How much cheaper does creating a faith get per fervor below 100%? 1 means 1% per point + RITE_CREATION_FERVOR_DISCOUNT_MAX = 50 # What percentage does the discount cap out at? With these numbers, 0-50 fervor means a 50% discount. Above 50 means between 0% and 50% discount + RITE_CREATION_DIVERGENCE_FAITH_THRESHOLD = 100 # when creating a Rite, divergence values at or over this threshold will result in a Faith being created instead of a Rite + RITE_CREATION_PIETY_COST = 1.0 # Fixed cost how much piety it costs to branch off a Faith with new Rite + RITE_DIVERGENCE_HERETICAL_THRESHOLD = 65 # Divergence above which a Rite is considered heretical + RITE_DIVERGENCE_HOSTILITY_THRESHOLD = 1 # Divergence below that will lower faith hostility by 1 level + RITE_DIVERGENCE_GRACE_THRESHOLD = 0 # rites below this divergence will not add to the yearly fervor decrease + + # Values are Unknown, Known, Prohibited, Permitted, Core + # Core tenets are checked both ways + TENET_STATUS_DIVERGENCE = { 15 15 30 5 -5 } + + # Dynamic rite color interval vs the faith, two values 0-1, second larger + RITE_COLOR_DEVIATION = { 0.1 0.6 } } NReligion = { @@ -825,7 +870,7 @@ NReligion = { 1 } - HOSTILITY_LEVEL_NAMES = { # Localization for each hostility level. See _doctrines.info for more info + HOSTILITY_LEVEL_NAMES = { # Localization for each hostility level. See _doctrine_types.info for more info "FAITH_HOSTILITY_RIGHTEOUS" "FAITH_HOSTILITY_ASTRAY" "FAITH_HOSTILITY_HOSTILE" @@ -842,6 +887,52 @@ NReligion = { HEAD_OF_FAITH_PIETY_GAIN = 1.0 # Monthly piety gain for heads of faith FAITH_COLOR_DEVIATION = { 0.25 0.35 } # How much should generated colors differ from the faith they're based on? Distance within the HSV colorspace + + # Spiritual fulfillment + MIN_SPIRITUAL_FULFILLMENT = -100 + MAX_SPIRITUAL_FULFILLMENT = 100 + + # Resting fulfillment from traits affected by personal tenets is multiplied by this + SPIRITUAL_FULFILLMENT_MULT_PERSONAL_TENET = 2 + # same for tenets set as Core by Rites + SPIRITUAL_FULFILLMENT_MULT_CORE_TENET = 2 + # Permitted Tenets also contribute to virtues, but the weight of their trait is multiplied by this + SPIRITUAL_FULFILLMENT_MULT_PERMITTED_TENET = 0.5 + # Religion-type traits are overwritten unless synergistic with a tenet/doctrine + # Synergy adds religion weight multiplied by this, instead of keeping only the highest + SPIRITUAL_FULFILLMENT_MULT_RELIGION_TRAIT = 1 + + # base amount of personal tenets a playable character can subscribe to. Cannot be less than 1. Can be increased with piety levels + BASE_PERSONAL_TENETS_CAP = 1 + # how many days player must wait before removing or swapping a personal tenet again after doing so. Adopting a tenet into a free slot does not start this cooldown. Set to 0 to disable. + PERSONAL_TENET_CHANGE_COOLDOWN_DAYS = 1095 + # max amount of core tenets a faith can have + FAITH_CORE_TENETS_CAP = 3 + # stress gain due to traits is going to be multiplied by tenet weight and divided by this number to yield the Spiritual Fulfillment change. + SPIRITUAL_FULFILLMENT_FOR_STRESS_DIVIDE_FACTOR = 100 + # Threshold is on the final fulfillment change from negative stress, not the raw stress impact + MIN_FULFILLMENT_CHANGE_FOR_EFFECT = 5 + + # Monthly percent progress for same-faith rite spread in a clerical region, per neighbor + MONTHLY_RITE_CONVERSION_PROCESS_PER_NEIGHBORING_COUNTY = 2 + + # if set to yes, clerical region will not convert counties held by a ruler with a chaplain of a different rite than the region holder. + REQUIRE_SAME_CHAPLAIN_RITE_FOR_REGION_CONVERSION = no + + # How many eminent holy sites can a Faith have? (unless overridden by Religion) + FAITH_EMINENT_HOLY_SITES_MAX_DEFAULT = 3 + # How many holy sites in total, eminent ones included, can a Faith have? (unless overridden by Religion) + FAITH_HOLY_SITES_MAX_DEFAULT = 9 + # Minimum number of eminent holy sites a Faith must retain (unless overridden by Religion) + FAITH_EMINENT_HOLY_SITES_MIN_DEFAULT = 1 + # Minimum number of holy sites in total a Faith must retain (unless overridden by Religion) + FAITH_HOLY_SITES_MIN_DEFAULT = 1 + + # How many rarity levels are required for a Ruler to create a holy site + CREATE_HOLY_SITE_RARITY_REQUIRED = 3 + + # How many rarity levels can be used to scale holy site effects (should match with holy site slots) + MAX_HOLY_SITE_RARITY_TOTAL = 12 } NTitle = { @@ -1221,7 +1312,7 @@ NHolyOrder = { # Otherwise it will use a random type with the holy_order_fallback = yes flag. RELIGION_MAA_RATIO = 0.7 - PATRON_MIN_TIER = 4 # minimum tier for a ruler to be a patron of a holy order + PATRON_MIN_TIER = 3 # minimum tier for a ruler to be a patron of a holy order LEVY_COST_PER_100_SOLDIERS = 5.0 # The piety cost of the levy regiment part of holy orders, per 100 soldiers for better precision MAA_COST_RATIO = 0.2 # The piety cost of the MAA regiments of holy orders as a fraction of what those regiments cost when buying them @@ -1355,6 +1446,8 @@ NPortrait = { GRACEFUL_AGING_START = 25 # After this age, added life expectancy will make a character look younger than they are; the effect grows the further past this point one goes GRACEFUL_AGING_END = 70 # This is the apparent age at which life expectancy stops slowing down visual aging (each year onwards ages you visually 1 year) MAX_AGE = 100.0 # At this age portraits will use the special age gene at full strength + DEAD_PORTRAIT_AGE_THRESHOLD = 30 # A dead character who died older than this is rendered at DEAD_PORTRAIT_APPARENT_AGE instead of their age at death (their displayed age at death is unaffected) + DEAD_PORTRAIT_APPARENT_AGE = 27 # The apparent age used for the portraits of dead characters who died older than DEAD_PORTRAIT_AGE_THRESHOLD PORTRAIT_MALE_ADULT_AGE = 18 # The boy -> male portrait change happens at this age PORTRAIT_FEMALE_ADULT_AGE = 18 # The girl -> female portrait change happens at this age CUSTOM_HAIR_COLORS_RGB = { # Hair colors available for use in the barber shop @@ -1486,6 +1579,7 @@ NInventory = { ARTIFACT_DURABILITY_DECAY_STORAGE = 1.0 # yearly decay, unequipped ARTIFACT_DURABILITY_DECAY_EQUIPPED = 1.0 # yearly decay, equipped to person ARTIFACT_DURABILITY_DECAY_DISPLAY = 0.0 # yearly decay, on display in court + ARTIFACT_DURABILITY_DECAY_ENSHRINED = 0.0 # yearly decay, enshrined in a holy site (disabled in code too) ARTIFACT_HOUSE_CLAIM_YEARS = 50 # Number of years a house member must hold an artifact before a house artifact claim is generated ARTIFACT_COLOR_COMMON = { 0.745 0.458 0.192 0.8 } ARTIFACT_COLOR_MASTERWORK = { 0.184 0.615 0.027 0.8 } @@ -1759,6 +1853,9 @@ NAdministrative = { AI_MAX_AGE_FOR_APPOINTMENT = 50 # AI won't support candidates above this age for new appointments AI_MAX_TITLES_FOR_APPOINTMENT = 10 # This many titles are considered for new appointment support per attempt. Randomized each time AI_MAX_NEW_HOUSE_MEMBERS_FOR_APPOINTMENT = 30 # This many new house mmebers are considered for new appointment support per attempt. Randomized each time + AI_APPOINTMENT_REALM_SIZE_SCALEDOWN_START = 150 # Above this top-liege realm_size, AI appointment/candidacy processing is increasingly skipped per attempt (CPU scaledown for huge realms) + AI_APPOINTMENT_REALM_SIZE_SCALEDOWN_FULL = 600 # At/above this top-liege realm_size, AI appointment/candidacy processing is skipped at the maximum rate + AI_APPOINTMENT_MAX_SKIP_PERMILLE = 900 # Maximum chance (per 1000) to skip an AI appointment/candidacy attempt in the largest realms BASE_REASSIGN_COST = 150 # Base value used in the scripted cost for reassigning title troops DISCOUNTED_THRESHOLD_FACTOR = 0.9 # If the final reassign cost <= BASE_REASSIGN_COST * DISCOUNTED_THRESHOLD_FACTOR, we consider the title "discounted" diff --git a/common/domiciles/buildings/00_chinese_estate_buildings.txt b/common/domiciles/buildings/00_chinese_estate_buildings.txt index bfb9226da..ec70a579e 100644 --- a/common/domiciles/buildings/00_chinese_estate_buildings.txt +++ b/common/domiciles/buildings/00_chinese_estate_buildings.txt @@ -130,7 +130,7 @@ @east_asian_manor_domicile_build_gold_cost = -0.05 @east_asian_manor_holding_build_gold_cost_minor = -0.03 @east_asian_manor_holding_build_gold_cost = -0.05 -@east_asian_manor_faith_creation_piety_cost_mult = -0.05 +@east_asian_manor_rite_creation_piety_cost_mult = -0.05 @east_asian_manor_character_travel_safety = 2 ### NOTE: If updating, adding, or changing buildings, ensure the following effects are updated too: @@ -2343,7 +2343,7 @@ east_asian_estate_living_quarters_01 = { if = { limit = { has_character_modifier = raid_insight_living_quarters } multiply = 0.75 - desc = raid_insight_quarters + desc = raid_insight_living_quarters } } } @@ -2380,7 +2380,7 @@ east_asian_estate_living_quarters_02 = { if = { limit = { has_character_modifier = raid_insight_living_quarters } multiply = 0.75 - desc = raid_insight_quarters + desc = raid_insight_living_quarters } } } @@ -2423,7 +2423,7 @@ east_asian_estate_living_quarters_03 = { if = { limit = { has_character_modifier = raid_insight_living_quarters } multiply = 0.75 - desc = raid_insight_quarters + desc = raid_insight_living_quarters } } } @@ -2465,7 +2465,7 @@ east_asian_estate_living_quarters_04 = { if = { limit = { has_character_modifier = raid_insight_living_quarters } multiply = 0.75 - desc = raid_insight_quarters + desc = raid_insight_living_quarters } } } @@ -4045,6 +4045,7 @@ east_asian_estate_reception_hall_01 = { parameters = { legitimacy_counter = yes reception_hall_legitimacy_loss_01 = yes + estate_increase_house_member_investment_cap_1 = yes } ai_value = { @@ -4085,7 +4086,7 @@ east_asian_estate_reception_hall_02 = { parameters = { legitimacy_counter = yes reception_hall_legitimacy_loss_02 = yes - estate_increase_house_member_investment_cap_1 = yes + estate_increase_house_member_investment_cap_2 = yes } ai_value = { @@ -4127,7 +4128,7 @@ east_asian_estate_reception_hall_03 = { parameters = { legitimacy_counter = yes reception_hall_legitimacy_loss_03 = yes - estate_increase_house_member_investment_cap_2 = yes + estate_increase_house_member_investment_cap_3 = yes } ai_value = { @@ -4166,7 +4167,7 @@ east_asian_estate_reception_hall_04 = { parameters = { legitimacy_counter = yes reception_hall_legitimacy_loss_04 = yes - estate_increase_house_member_investment_cap_3 = yes + estate_increase_house_member_investment_cap_4 = yes } ai_value = { @@ -4208,7 +4209,7 @@ east_asian_estate_reception_hall_05 = { parameters = { legitimacy_counter = yes reception_hall_legitimacy_loss_05 = yes - estate_increase_house_member_investment_cap_4 = yes + estate_increase_house_member_investment_cap_5 = yes } ai_value = { @@ -5347,7 +5348,7 @@ east_asian_estate_silk_01 = { can_construct = { custom_tooltip = { OR = { - house = { has_house_modifier = ep3_unlocked_silk } + house ?= { has_house_modifier = ep3_unlocked_silk } culture = { has_cultural_parameter = unlocks_silk_buildings_parameter } } text = has_unlocked_estate_silk @@ -5374,7 +5375,7 @@ east_asian_estate_silk_01 = { on_complete = { if = { limit = { - scope:owner = { + scope:owner ?= { is_alive = yes } years_from_game_start >= 1 @@ -5445,7 +5446,7 @@ east_asian_estate_silk_02 = { on_complete = { if = { limit = { - scope:owner = { + scope:owner ?= { is_alive = yes } years_from_game_start >= 1 @@ -5517,7 +5518,7 @@ east_asian_estate_silk_03 = { on_complete = { if = { limit = { - scope:owner = { + scope:owner ?= { is_alive = yes } years_from_game_start >= 1 @@ -5589,7 +5590,7 @@ east_asian_estate_silk_04 = { on_complete = { if = { limit = { - scope:owner = { + scope:owner ?= { is_alive = yes } years_from_game_start >= 1 @@ -5661,7 +5662,7 @@ east_asian_estate_silk_05 = { on_complete = { if = { limit = { - scope:owner = { + scope:owner ?= { is_alive = yes } years_from_game_start >= 1 @@ -5733,7 +5734,7 @@ east_asian_estate_silk_06 = { on_complete = { if = { limit = { - scope:owner = { + scope:owner ?= { is_alive = yes } years_from_game_start >= 1 @@ -6873,7 +6874,7 @@ east_asian_estate_garden_01 = { on_complete = { if = { limit = { - scope:owner = { + scope:owner ?= { is_alive = yes } years_from_game_start >= 1 @@ -6907,7 +6908,7 @@ east_asian_estate_garden_01 = { has_cultural_tradition = tradition_sacred_groves } } - faith ?= { has_doctrine = tenet_sanctity_of_nature } + rite ?= { rite_has_tenet = tenet_sanctity_of_nature } } } } @@ -6954,7 +6955,7 @@ east_asian_estate_garden_02 = { on_complete = { if = { limit = { - scope:owner = { + scope:owner ?= { is_alive = yes } years_from_game_start >= 1 @@ -6988,7 +6989,7 @@ east_asian_estate_garden_02 = { has_cultural_tradition = tradition_sacred_groves } } - faith ?= { has_doctrine = tenet_sanctity_of_nature } + rite ?= { rite_has_tenet = tenet_sanctity_of_nature } } } } @@ -7039,7 +7040,7 @@ east_asian_estate_garden_03 = { on_complete = { if = { limit = { - scope:owner = { + scope:owner ?= { is_alive = yes } years_from_game_start >= 1 @@ -7073,7 +7074,7 @@ east_asian_estate_garden_03 = { has_cultural_tradition = tradition_sacred_groves } } - faith ?= { has_doctrine = tenet_sanctity_of_nature } + rite ?= { rite_has_tenet = tenet_sanctity_of_nature } } } } @@ -7128,7 +7129,7 @@ east_asian_estate_garden_leisure_04 = { on_complete = { if = { limit = { - scope:owner = { + scope:owner ?= { is_alive = yes } years_from_game_start >= 1 @@ -7162,7 +7163,7 @@ east_asian_estate_garden_leisure_04 = { has_cultural_tradition = tradition_sacred_groves } } - faith ?= { has_doctrine = tenet_sanctity_of_nature } + rite ?= { rite_has_tenet = tenet_sanctity_of_nature } } } } @@ -7215,7 +7216,7 @@ east_asian_estate_garden_leisure_05 = { on_complete = { if = { limit = { - scope:owner = { + scope:owner ?= { is_alive = yes } years_from_game_start >= 1 @@ -7249,7 +7250,7 @@ east_asian_estate_garden_leisure_05 = { has_cultural_tradition = tradition_sacred_groves } } - faith ?= { has_doctrine = tenet_sanctity_of_nature } + rite ?= { rite_has_tenet = tenet_sanctity_of_nature } } } } @@ -7302,7 +7303,7 @@ east_asian_estate_garden_leisure_06 = { on_complete = { if = { limit = { - scope:owner = { + scope:owner ?= { is_alive = yes } years_from_game_start >= 1 @@ -7336,7 +7337,7 @@ east_asian_estate_garden_leisure_06 = { has_cultural_tradition = tradition_sacred_groves } } - faith ?= { has_doctrine = tenet_sanctity_of_nature } + rite ?= { rite_has_tenet = tenet_sanctity_of_nature } } } } @@ -7392,7 +7393,7 @@ east_asian_estate_garden_fruit_04 = { on_complete = { if = { limit = { - scope:owner = { + scope:owner ?= { is_alive = yes } years_from_game_start >= 1 @@ -7426,7 +7427,7 @@ east_asian_estate_garden_fruit_04 = { has_cultural_tradition = tradition_sacred_groves } } - faith ?= { has_doctrine = tenet_sanctity_of_nature } + rite ?= { rite_has_tenet = tenet_sanctity_of_nature } } } } @@ -7480,7 +7481,7 @@ east_asian_estate_garden_fruit_05 = { on_complete = { if = { limit = { - scope:owner = { + scope:owner ?= { is_alive = yes } years_from_game_start >= 1 @@ -7514,7 +7515,7 @@ east_asian_estate_garden_fruit_05 = { has_cultural_tradition = tradition_sacred_groves } } - faith ?= { has_doctrine = tenet_sanctity_of_nature } + rite ?= { rite_has_tenet = tenet_sanctity_of_nature } } } } @@ -7568,7 +7569,7 @@ east_asian_estate_garden_fruit_06 = { on_complete = { if = { limit = { - scope:owner = { + scope:owner ?= { is_alive = yes } years_from_game_start >= 1 @@ -7602,7 +7603,7 @@ east_asian_estate_garden_fruit_06 = { has_cultural_tradition = tradition_sacred_groves } } - faith ?= { has_doctrine = tenet_sanctity_of_nature } + rite ?= { rite_has_tenet = tenet_sanctity_of_nature } } } } @@ -8666,7 +8667,7 @@ east_asian_estate_storage_01 = { } parameters = { - house_head_can_ask_building_support = yes + house_head_can_ask_for_building_support = yes } ai_value = { @@ -8709,7 +8710,7 @@ east_asian_estate_storage_02 = { } parameters = { - house_head_can_ask_building_support = yes + house_head_can_ask_for_building_support = yes } ai_value = { @@ -8753,7 +8754,7 @@ east_asian_estate_storage_warehouse_03 = { } parameters = { - house_head_can_ask_building_support = yes + house_head_can_ask_for_building_support = yes } ai_value = { @@ -8795,7 +8796,7 @@ east_asian_estate_storage_warehouse_04 = { } parameters = { - house_head_can_ask_building_support = yes + house_head_can_ask_for_building_support = yes } ai_value = { @@ -8837,7 +8838,7 @@ east_asian_estate_storage_warehouse_05 = { } parameters = { - house_head_can_ask_building_support = yes + house_head_can_ask_for_building_support = yes } ai_value = { @@ -8879,7 +8880,7 @@ east_asian_estate_storage_warehouse_06 = { } parameters = { - house_head_can_ask_building_support = yes + house_head_can_ask_for_building_support = yes } ai_value = { @@ -9123,7 +9124,7 @@ east_asian_estate_grazing_land_01 = { on_complete = { if = { limit = { - scope:owner = { + scope:owner ?= { is_alive = yes } years_from_game_start >= 1 @@ -9206,7 +9207,7 @@ east_asian_estate_grazing_land_02 = { on_complete = { if = { limit = { - scope:owner = { + scope:owner ?= { is_alive = yes } years_from_game_start >= 1 @@ -9293,7 +9294,7 @@ east_asian_estate_grazing_land_03 = { on_complete = { if = { limit = { - scope:owner = { + scope:owner ?= { is_alive = yes } years_from_game_start >= 1 @@ -9379,7 +9380,7 @@ east_asian_estate_grazing_land_04 = { on_complete = { if = { limit = { - scope:owner = { + scope:owner ?= { is_alive = yes } years_from_game_start >= 1 @@ -9449,7 +9450,7 @@ east_asian_estate_grazing_land_05 = { on_complete = { if = { limit = { - scope:owner = { + scope:owner ?= { is_alive = yes } years_from_game_start >= 1 @@ -9519,7 +9520,7 @@ east_asian_estate_grazing_land_06 = { on_complete = { if = { limit = { - scope:owner = { + scope:owner ?= { is_alive = yes } years_from_game_start >= 1 @@ -9586,7 +9587,7 @@ east_asian_estate_horse_pasture_04 = { on_complete = { if = { limit = { - scope:owner = { + scope:owner ?= { is_alive = yes } years_from_game_start >= 1 @@ -9651,7 +9652,7 @@ east_asian_estate_horse_pasture_05 = { on_complete = { if = { limit = { - scope:owner = { + scope:owner ?= { is_alive = yes } years_from_game_start >= 1 @@ -9716,7 +9717,7 @@ east_asian_estate_horse_pasture_06 = { on_complete = { if = { limit = { - scope:owner = { + scope:owner ?= { is_alive = yes } years_from_game_start >= 1 @@ -9783,7 +9784,7 @@ east_asian_estate_camel_pasture_04 = { on_complete = { if = { limit = { - scope:owner = { + scope:owner ?= { is_alive = yes } years_from_game_start >= 1 @@ -9848,7 +9849,7 @@ east_asian_estate_camel_pasture_05 = { on_complete = { if = { limit = { - scope:owner = { + scope:owner ?= { is_alive = yes } years_from_game_start >= 1 @@ -9913,7 +9914,7 @@ east_asian_estate_camel_pasture_06 = { on_complete = { if = { limit = { - scope:owner = { + scope:owner ?= { is_alive = yes } years_from_game_start >= 1 diff --git a/common/domiciles/buildings/10_japanese_manor_buildings.txt b/common/domiciles/buildings/10_japanese_manor_buildings.txt index edcb9fb79..a0e8f20cd 100644 --- a/common/domiciles/buildings/10_japanese_manor_buildings.txt +++ b/common/domiciles/buildings/10_japanese_manor_buildings.txt @@ -83,7 +83,7 @@ @japanese_manor_domicile_build_gold_cost = -0.05 @japanese_manor_holding_build_gold_cost_minor = -0.03 @japanese_manor_holding_build_gold_cost = -0.05 -@japanese_manor_faith_creation_piety_cost_mult = -0.05 +@japanese_manor_rite_creation_piety_cost_mult = -0.02 @japanese_manor_character_travel_safety = 2 ### NOTE: If updating, adding, or changing buildings, ensure the following effects are updated too: @@ -751,7 +751,7 @@ japanese_manor_poetry_library_01 = { asset = { icon = "gfx/interface/icons/domicile_building/domicile_building_library.dds" texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" - intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.png" } } japanese_manor_poetry_library_02 = { @@ -793,7 +793,7 @@ japanese_manor_poetry_library_02 = { asset = { icon = "gfx/interface/icons/domicile_building/domicile_building_library.dds" texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" - intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.png" } } japanese_manor_poetry_library_03 = { @@ -835,7 +835,7 @@ japanese_manor_poetry_library_03 = { asset = { icon = "gfx/interface/icons/domicile_building/domicile_building_library.dds" texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" - intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.png" } } japanese_manor_poetry_library_04 = { @@ -878,7 +878,7 @@ japanese_manor_poetry_library_04 = { asset = { icon = "gfx/interface/icons/domicile_building/domicile_building_library.dds" texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" - intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.png" } } japanese_manor_poetry_library_05 = { @@ -920,7 +920,7 @@ japanese_manor_poetry_library_05 = { asset = { icon = "gfx/interface/icons/domicile_building/domicile_building_library.dds" texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" - intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.png" } } japanese_manor_poetry_library_06 = { @@ -961,7 +961,7 @@ japanese_manor_poetry_library_06 = { asset = { icon = "gfx/interface/icons/domicile_building/domicile_building_library.dds" texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" - intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.png" } } @@ -992,7 +992,7 @@ sarugaku_stage_01 = { asset = { icon = "gfx/interface/icons/domicile_building/domicile_performance.dds" - texture = "gfx/interface/window_domiciles/estate_building_villa_japanese_mask.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_japanese_mask.png" intersectionmask_texture = "gfx/interface/window_domiciles/tgp_ui_domicile_building_japanese_main_building.dds" } } @@ -1026,7 +1026,7 @@ sarugaku_stage_02 = { asset = { icon = "gfx/interface/icons/domicile_building/domicile_performance.dds" - texture = "gfx/interface/window_domiciles/estate_building_villa_japanese_mask.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_japanese_mask.png" intersectionmask_texture = "gfx/interface/window_domiciles/tgp_ui_domicile_building_japanese_main_building.dds" } } @@ -1060,7 +1060,7 @@ sarugaku_stage_03 = { asset = { icon = "gfx/interface/icons/domicile_building/domicile_performance.dds" - texture = "gfx/interface/window_domiciles/estate_building_villa_japanese_mask.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_japanese_mask.png" intersectionmask_texture = "gfx/interface/window_domiciles/tgp_ui_domicile_building_japanese_main_building.dds" } } @@ -1094,7 +1094,7 @@ sarugaku_stage_04 = { asset = { icon = "gfx/interface/icons/domicile_building/domicile_performance.dds" - texture = "gfx/interface/window_domiciles/estate_building_villa_japanese_mask.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_japanese_mask.png" intersectionmask_texture = "gfx/interface/window_domiciles/tgp_ui_domicile_building_japanese_main_building.dds" } } @@ -1128,7 +1128,7 @@ sarugaku_stage_05 = { asset = { icon = "gfx/interface/icons/domicile_building/domicile_performance.dds" - texture = "gfx/interface/window_domiciles/estate_building_villa_japanese_mask.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_japanese_mask.png" intersectionmask_texture = "gfx/interface/window_domiciles/tgp_ui_domicile_building_japanese_main_building.dds" } } @@ -1162,7 +1162,7 @@ sarugaku_stage_06 = { asset = { icon = "gfx/interface/icons/domicile_building/domicile_performance.dds" - texture = "gfx/interface/window_domiciles/estate_building_villa_japanese_mask.dds" + texture = "gfx/interface/window_domiciles/estate_building_villa_japanese_mask.png" intersectionmask_texture = "gfx/interface/window_domiciles/tgp_ui_domicile_building_japanese_main_building.dds" } } @@ -1175,7 +1175,7 @@ japanese_manor_trophy_room_01 = { previous_building = japanese_manor_main_01 can_construct = { - NOT = { government_has_flag = government_is_administrative } + NOT = { government_has_mechanic = administrative } } cost = { @@ -1205,7 +1205,7 @@ japanese_manor_trophy_room_01 = { asset = { icon = "gfx/interface/icons/domicile_building/domicile_building_trophy.dds" texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" - intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.png" } } japanese_manor_trophy_room_02 = { @@ -1215,7 +1215,7 @@ japanese_manor_trophy_room_02 = { previous_building = japanese_manor_trophy_room_01 can_construct = { - NOT = { government_has_flag = government_is_administrative } + NOT = { government_has_mechanic = administrative } domicile ?= { has_domicile_building_or_higher = japanese_manor_main_02 } } @@ -1244,7 +1244,7 @@ japanese_manor_trophy_room_02 = { asset = { icon = "gfx/interface/icons/domicile_building/domicile_building_trophy.dds" texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" - intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.png" } } japanese_manor_trophy_room_03 = { @@ -1254,7 +1254,7 @@ japanese_manor_trophy_room_03 = { previous_building = japanese_manor_trophy_room_02 can_construct = { - NOT = { government_has_flag = government_is_administrative } + NOT = { government_has_mechanic = administrative } domicile ?= { has_domicile_building_or_higher = japanese_manor_main_03 } } @@ -1288,7 +1288,7 @@ japanese_manor_trophy_room_03 = { asset = { icon = "gfx/interface/icons/domicile_building/domicile_building_trophy.dds" texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" - intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.png" } } japanese_manor_trophy_room_04 = { @@ -1298,7 +1298,7 @@ japanese_manor_trophy_room_04 = { previous_building = japanese_manor_trophy_room_03 can_construct = { - NOT = { government_has_flag = government_is_administrative } + NOT = { government_has_mechanic = administrative } domicile ?= { has_domicile_building_or_higher = japanese_manor_main_04 } } @@ -1332,7 +1332,7 @@ japanese_manor_trophy_room_04 = { asset = { icon = "gfx/interface/icons/domicile_building/domicile_building_trophy.dds" texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" - intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.png" } } japanese_manor_trophy_room_05 = { @@ -1342,7 +1342,7 @@ japanese_manor_trophy_room_05 = { previous_building = japanese_manor_trophy_room_04 can_construct = { - NOT = { government_has_flag = government_is_administrative } + NOT = { government_has_mechanic = administrative } domicile ?= { has_domicile_building_or_higher = japanese_manor_main_05 } } @@ -1376,7 +1376,7 @@ japanese_manor_trophy_room_05 = { asset = { icon = "gfx/interface/icons/domicile_building/domicile_building_trophy.dds" texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" - intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.png" } } japanese_manor_trophy_room_06 = { @@ -1386,7 +1386,7 @@ japanese_manor_trophy_room_06 = { previous_building = japanese_manor_trophy_room_05 can_construct = { - NOT = { government_has_flag = government_is_administrative } + NOT = { government_has_mechanic = administrative } domicile ?= { has_domicile_building_or_higher = japanese_manor_main_06 } } @@ -1419,7 +1419,7 @@ japanese_manor_trophy_room_06 = { asset = { icon = "gfx/interface/icons/domicile_building/domicile_building_trophy.dds" texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" - intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.png" } } @@ -1458,7 +1458,7 @@ japanese_manor_office_01 = { asset = { icon = "gfx/interface/icons/domicile_building/domicile_building_office.dds" texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" - intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.png" } } japanese_manor_office_02 = { @@ -1495,7 +1495,7 @@ japanese_manor_office_02 = { asset = { icon = "gfx/interface/icons/domicile_building/domicile_building_office.dds" texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" - intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.png" } } japanese_manor_office_03 = { @@ -1537,7 +1537,7 @@ japanese_manor_office_03 = { asset = { icon = "gfx/interface/icons/domicile_building/domicile_building_office.dds" texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" - intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.png" } } japanese_manor_office_04 = { @@ -1578,7 +1578,7 @@ japanese_manor_office_04 = { asset = { icon = "gfx/interface/icons/domicile_building/domicile_building_office.dds" texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" - intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.png" } } japanese_manor_office_05 = { @@ -1619,7 +1619,7 @@ japanese_manor_office_05 = { asset = { icon = "gfx/interface/icons/domicile_building/domicile_building_office.dds" texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" - intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.png" } } japanese_manor_office_06 = { @@ -1661,7 +1661,7 @@ japanese_manor_office_06 = { asset = { icon = "gfx/interface/icons/domicile_building/domicile_building_office.dds" texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" - intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.png" } } @@ -1697,7 +1697,7 @@ japanese_manor_servants_quarters_01 = { asset = { icon = "gfx/interface/icons/domicile_building/domicile_building_servant.dds" texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" - intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.png" } } japanese_manor_servants_quarters_02 = { @@ -1730,7 +1730,7 @@ japanese_manor_servants_quarters_02 = { asset = { icon = "gfx/interface/icons/domicile_building/domicile_building_servant.dds" texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" - intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.png" } } japanese_manor_servants_quarters_03 = { @@ -1768,7 +1768,7 @@ japanese_manor_servants_quarters_03 = { asset = { icon = "gfx/interface/icons/domicile_building/domicile_building_servant.dds" texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" - intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.png" } } japanese_manor_servants_quarters_04 = { @@ -1806,7 +1806,7 @@ japanese_manor_servants_quarters_04 = { asset = { icon = "gfx/interface/icons/domicile_building/domicile_building_servant.dds" texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" - intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.png" } } japanese_manor_servants_quarters_05 = { @@ -1843,7 +1843,7 @@ japanese_manor_servants_quarters_05 = { asset = { icon = "gfx/interface/icons/domicile_building/domicile_building_servant.dds" texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" - intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.png" } } japanese_manor_servants_quarters_06 = { @@ -1880,7 +1880,7 @@ japanese_manor_servants_quarters_06 = { asset = { icon = "gfx/interface/icons/domicile_building/domicile_building_servant.dds" texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" - intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.png" } } @@ -1915,7 +1915,7 @@ japanese_manor_library_confucian_01 = { asset = { icon = "gfx/interface/icons/domicile_building/domicile_building_tutor.dds" texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" - intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.png" } } japanese_manor_library_confucian_02 = { @@ -1952,7 +1952,7 @@ japanese_manor_library_confucian_02 = { asset = { icon = "gfx/interface/icons/domicile_building/domicile_building_tutor.dds" texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" - intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.png" } } japanese_manor_library_confucian_03 = { @@ -1990,7 +1990,7 @@ japanese_manor_library_confucian_03 = { asset = { icon = "gfx/interface/icons/domicile_building/domicile_building_tutor.dds" texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" - intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.png" } } japanese_manor_library_confucian_04 = { @@ -2031,7 +2031,7 @@ japanese_manor_library_confucian_04 = { asset = { icon = "gfx/interface/icons/domicile_building/domicile_building_tutor.dds" texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" - intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.png" } } japanese_manor_library_confucian_05 = { @@ -2072,7 +2072,7 @@ japanese_manor_library_confucian_05 = { asset = { icon = "gfx/interface/icons/domicile_building/domicile_building_tutor.dds" texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" - intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.png" } } japanese_manor_library_confucian_06 = { @@ -2113,7 +2113,7 @@ japanese_manor_library_confucian_06 = { asset = { icon = "gfx/interface/icons/domicile_building/domicile_building_tutor.dds" texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" - intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.png" soundeffect = "event:/DLC/EP4/SFX/UI/domicile_buildings/tgp_ui_domicile_building_japanese_main_building" } } @@ -2158,7 +2158,7 @@ japanese_manor_retainer_accomodations_01 = { asset = { icon = "gfx/interface/icons/domicile_building/domicile_building_barracks.dds" texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" - intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.png" } } japanese_manor_retainer_accomodations_02 = { @@ -2199,7 +2199,7 @@ japanese_manor_retainer_accomodations_02 = { asset = { icon = "gfx/interface/icons/domicile_building/domicile_building_barracks.dds" texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" - intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.png" } } japanese_manor_retainer_accomodations_03 = { @@ -2242,7 +2242,7 @@ japanese_manor_retainer_accomodations_03 = { asset = { icon = "gfx/interface/icons/domicile_building/domicile_building_barracks.dds" texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" - intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.png" } } japanese_manor_retainer_accomodations_04 = { @@ -2283,7 +2283,7 @@ japanese_manor_retainer_accomodations_04 = { asset = { icon = "gfx/interface/icons/domicile_building/domicile_building_barracks.dds" texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" - intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.png" } } japanese_manor_retainer_accomodations_05 = { @@ -2326,7 +2326,7 @@ japanese_manor_retainer_accomodations_05 = { asset = { icon = "gfx/interface/icons/domicile_building/domicile_building_barracks.dds" texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" - intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.png" } } @@ -4360,7 +4360,7 @@ japanese_monastery_01 = { zealot_opinion = @japanese_manor_opinion_add_1 realm_priest_opinion = @japanese_manor_opinion_add_1 church_holding_build_gold_cost = @japanese_manor_holding_build_gold_cost - faith_creation_piety_cost_mult = @japanese_manor_faith_creation_piety_cost_mult + rite_creation_piety_cost_mult = @japanese_manor_rite_creation_piety_cost_mult } parameters = { @@ -4397,7 +4397,7 @@ japanese_monastery_02 = { zealot_opinion = @japanese_manor_opinion_add_1 realm_priest_opinion = @japanese_manor_opinion_add_1 church_holding_build_gold_cost = @japanese_manor_holding_build_gold_cost - faith_creation_piety_cost_mult = @japanese_manor_faith_creation_piety_cost_mult + rite_creation_piety_cost_mult = @japanese_manor_rite_creation_piety_cost_mult } parameters = { @@ -4434,7 +4434,7 @@ japanese_monastery_03 = { zealot_opinion = @japanese_manor_opinion_add_1 realm_priest_opinion = @japanese_manor_opinion_add_1 church_holding_build_gold_cost = @japanese_manor_holding_build_gold_cost - faith_creation_piety_cost_mult = @japanese_manor_faith_creation_piety_cost_mult + rite_creation_piety_cost_mult = @japanese_manor_rite_creation_piety_cost_mult } parameters = { @@ -4472,7 +4472,7 @@ japanese_monastery_04 = { zealot_opinion = @japanese_manor_opinion_add_1 realm_priest_opinion = @japanese_manor_opinion_add_1 church_holding_build_gold_cost = @japanese_manor_holding_build_gold_cost - faith_creation_piety_cost_mult = @japanese_manor_faith_creation_piety_cost_mult + rite_creation_piety_cost_mult = @japanese_manor_rite_creation_piety_cost_mult } parameters = { @@ -4509,7 +4509,7 @@ japanese_monastery_05 = { zealot_opinion = @japanese_manor_opinion_add_1 realm_priest_opinion = @japanese_manor_opinion_add_1 church_holding_build_gold_cost = @japanese_manor_holding_build_gold_cost - faith_creation_piety_cost_mult = @japanese_manor_faith_creation_piety_cost_mult + rite_creation_piety_cost_mult = @japanese_manor_rite_creation_piety_cost_mult } parameters = { @@ -4546,7 +4546,7 @@ japanese_monastery_06 = { zealot_opinion = @japanese_manor_opinion_add_1 realm_priest_opinion = @japanese_manor_opinion_add_1 church_holding_build_gold_cost = @japanese_manor_holding_build_gold_cost - faith_creation_piety_cost_mult = @japanese_manor_faith_creation_piety_cost_mult + rite_creation_piety_cost_mult = @japanese_manor_rite_creation_piety_cost_mult } parameters = { @@ -5347,7 +5347,7 @@ japanese_archive_01 = { can_construct = { trigger_if = { limit = { is_ai = yes } - government_has_flag = government_is_administrative + government_has_mechanic = administrative } custom_tooltip = { text = service_house_power_tt @@ -5392,7 +5392,7 @@ japanese_archive_02 = { can_construct = { trigger_if = { limit = { is_ai = yes } - government_has_flag = government_is_administrative + government_has_mechanic = administrative } domicile ?= { has_domicile_building_or_higher = japanese_manor_main_02 } custom_tooltip = { @@ -5437,7 +5437,7 @@ japanese_archive_03 = { can_construct = { trigger_if = { limit = { is_ai = yes } - government_has_flag = government_is_administrative + government_has_mechanic = administrative } domicile ?= { has_domicile_building_or_higher = japanese_manor_main_03 } custom_tooltip = { @@ -5482,7 +5482,7 @@ japanese_archive_04 = { can_construct = { trigger_if = { limit = { is_ai = yes } - government_has_flag = government_is_administrative + government_has_mechanic = administrative } domicile ?= { has_domicile_building_or_higher = japanese_manor_main_04 } custom_tooltip = { @@ -5528,7 +5528,7 @@ japanese_archive_05 = { can_construct = { trigger_if = { limit = { is_ai = yes } - government_has_flag = government_is_administrative + government_has_mechanic = administrative } domicile ?= { has_domicile_building_or_higher = japanese_manor_main_05 } custom_tooltip = { @@ -5573,7 +5573,7 @@ japanese_archive_06 = { can_construct = { trigger_if = { limit = { is_ai = yes } - government_has_flag = government_is_administrative + government_has_mechanic = administrative } domicile ?= { has_domicile_building_or_higher = japanese_manor_main_06 } custom_tooltip = { @@ -11971,7 +11971,7 @@ japanese_guest_house_01 = { if = { limit = { has_character_modifier = raid_insight_living_quarters } multiply = 0.75 - desc = raid_insight_quarters + desc = raid_insight_living_quarters } } } @@ -11992,7 +11992,7 @@ japanese_guest_house_01 = { asset = { icon = "gfx/interface/icons/domicile_building/domicile_building_guest.dds" texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" - intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.png" } } japanese_guest_house_02 = { @@ -12011,7 +12011,7 @@ japanese_guest_house_02 = { if = { limit = { has_character_modifier = raid_insight_living_quarters } multiply = 0.75 - desc = raid_insight_quarters + desc = raid_insight_living_quarters } } } @@ -12032,7 +12032,7 @@ japanese_guest_house_02 = { asset = { icon = "gfx/interface/icons/domicile_building/domicile_building_guest.dds" texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" - intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.png" } } japanese_guest_house_03 = { @@ -12051,7 +12051,7 @@ japanese_guest_house_03 = { if = { limit = { has_character_modifier = raid_insight_living_quarters } multiply = 0.75 - desc = raid_insight_quarters + desc = raid_insight_living_quarters } } } @@ -12073,7 +12073,7 @@ japanese_guest_house_03 = { asset = { icon = "gfx/interface/icons/domicile_building/domicile_building_guest.dds" texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" - intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.png" } } japanese_guest_house_04 = { @@ -12092,7 +12092,7 @@ japanese_guest_house_04 = { if = { limit = { has_character_modifier = raid_insight_living_quarters } multiply = 0.75 - desc = raid_insight_quarters + desc = raid_insight_living_quarters } } } @@ -12115,7 +12115,7 @@ japanese_guest_house_04 = { asset = { icon = "gfx/interface/icons/domicile_building/domicile_building_guest.dds" texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" - intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.png" } } japanese_guest_house_05 = { @@ -12134,7 +12134,7 @@ japanese_guest_house_05 = { if = { limit = { has_character_modifier = raid_insight_living_quarters } multiply = 0.75 - desc = raid_insight_quarters + desc = raid_insight_living_quarters } } } @@ -12157,7 +12157,7 @@ japanese_guest_house_05 = { asset = { icon = "gfx/interface/icons/domicile_building/domicile_building_guest.dds" texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" - intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.png" } } japanese_guest_house_06 = { @@ -12176,7 +12176,7 @@ japanese_guest_house_06 = { if = { limit = { has_character_modifier = raid_insight_living_quarters } multiply = 0.75 - desc = raid_insight_quarters + desc = raid_insight_living_quarters } } } @@ -12199,7 +12199,7 @@ japanese_guest_house_06 = { asset = { icon = "gfx/interface/icons/domicile_building/domicile_building_guest.dds" texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine.dds" - intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_villa_byzantine_mask.png" } } japanese_performance_stage_01 = { @@ -12869,7 +12869,7 @@ japanese_rock_garden_01 = { if = { limit = { has_character_modifier = raid_insight_living_quarters } multiply = 0.75 - desc = raid_insight_quarters + desc = raid_insight_living_quarters } } } @@ -12906,7 +12906,7 @@ japanese_rock_garden_02 = { if = { limit = { has_character_modifier = raid_insight_living_quarters } multiply = 0.75 - desc = raid_insight_quarters + desc = raid_insight_living_quarters } } } @@ -12943,7 +12943,7 @@ japanese_rock_garden_03 = { if = { limit = { has_character_modifier = raid_insight_living_quarters } multiply = 0.75 - desc = raid_insight_quarters + desc = raid_insight_living_quarters } } } @@ -12980,7 +12980,7 @@ japanese_rock_garden_04 = { if = { limit = { has_character_modifier = raid_insight_living_quarters } multiply = 0.75 - desc = raid_insight_quarters + desc = raid_insight_living_quarters } } } @@ -13017,7 +13017,7 @@ japanese_rock_garden_05 = { if = { limit = { has_character_modifier = raid_insight_living_quarters } multiply = 0.75 - desc = raid_insight_quarters + desc = raid_insight_living_quarters } } } @@ -13054,7 +13054,7 @@ japanese_rock_garden_06 = { if = { limit = { has_character_modifier = raid_insight_living_quarters } multiply = 0.75 - desc = raid_insight_quarters + desc = raid_insight_living_quarters } } } diff --git a/common/domiciles/types/00_domicile_types.txt b/common/domiciles/types/00_domicile_types.txt index 74bb3f6ab..e68cc60aa 100644 --- a/common/domiciles/types/00_domicile_types.txt +++ b/common/domiciles/types/00_domicile_types.txt @@ -233,8 +233,8 @@ } } icon = "gfx/interface/icons/flat_icons/plus.dds" - texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_wetlands.dds" - intersectionmask_texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_wetlands_mask.png" + texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_jungle_01.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_jungle_01_mask.png" } ### EMPTY SLOT SNOW TERRAIN @@ -249,7 +249,7 @@ } icon = "gfx/interface/icons/flat_icons/plus.dds" texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_wetlands.dds" - intersectionmask_texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_wetlands_mask.png" + intersectionmask_texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_wetlands_01_mask.png" } ### EMPTY SLOT DESERT TERRAIN @@ -265,7 +265,7 @@ } icon = "gfx/interface/icons/flat_icons/plus.dds" texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_drylands.dds" - intersectionmask_texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_drylands_mask.png" + intersectionmask_texture = "gfx/interface/window_domiciles/laamp_building_empty_slot_drylands_01_mask.png" } construction_slot_asset = { @@ -2426,3 +2426,833 @@ east_asian_estate = { ambience = "event:/DLC/CE2/Ambience/2D/Domicile/ce2_amb_2d_domicile_yurt" } } + +ecclesiastical_domicile = { + allowed_for_character = { + has_government = ecclesiastical_government + } + rename_window = primary_title + illustration = "gfx/interface/illustrations/event_scenes/pam_romanesque_church_exterior.dds" + icon = "gfx/interface/icons/flat_icons/domicile_church.dds" + map_pin_texture = "gfx/interface/icons/map_icons/map_icon_estate_church.dds" + map_pin_anchor = up + map_pin_lobby = yes + can_move_manually = no + + base_external_slots = 6 + + domicile_building_slots = { + external_slot_1 = { + position = { 17% 10% } + size = { 15% 30% } + + empty_slot_asset = { + trigger = { + owner.culture = { + OR = { + has_graphical_chinese_culture_group_trigger = yes + has_graphical_japanese_culture_group_trigger = yes + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/yurt_empty_slot_01.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/yurt_empty_slot_01_mask.png" + } + + empty_slot_asset = { + trigger = { + domicile_location = { + OR = { + terrain = jungle + terrain = wetlands + terrain = floodplains + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_jungle_empty_02.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_jungle_empty_02_mask.png" + } + + empty_slot_asset = { + trigger = { + domicile_location = { + OR = { + terrain = drylands + terrain = desert + terrain = desert_mountains + terrain = oasis + terrain = steppe + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_drylands_empty.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_drylands_empty_mask.png" + } + + empty_slot_asset = { + trigger = { + domicile_location = { + OR = { + terrain = mountains + terrain = hills + terrain = terraced_hills + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_rough_empty.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_rough_empty_mask.png" + } + + empty_slot_asset = { + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_grassland_empty.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_grassland_empty_mask.png" + } + + + # Under Construction + construction_slot_asset = { + trigger = { + owner.culture = { + OR = { + has_graphical_chinese_culture_group_trigger = yes + has_graphical_japanese_culture_group_trigger = yes + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_building_construction_chinese.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_chinese_mask.png" + } + construction_slot_asset = { + trigger = { + domicile_location.culture = { + has_graphical_mena_culture_group_trigger = yes + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_building_construction_mena.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_mena_mask.png" + } + construction_slot_asset = { + trigger = { + domicile_location.culture = { + has_graphical_western_culture_group_trigger = yes + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_building_construction_western.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_western_mask.png" + } + construction_slot_asset = { + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_building_construction_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_byzantine_mask.png" + } + } + + external_slot_4 = { + position = { 53% 8% } + size = { 15% 30% } + + empty_slot_asset = { + trigger = { + owner.culture = { + OR = { + has_graphical_chinese_culture_group_trigger = yes + has_graphical_japanese_culture_group_trigger = yes + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/yurt_empty_slot_04.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/yurt_empty_slot_04_mask.png" + } + + empty_slot_asset = { + trigger = { + domicile_location = { + OR = { + terrain = jungle + terrain = wetlands + terrain = floodplains + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_jungle_empty_05.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_jungle_empty_05_mask.png" + } + + empty_slot_asset = { + trigger = { + domicile_location = { + OR = { + terrain = drylands + terrain = desert + terrain = desert_mountains + terrain = oasis + terrain = steppe + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_drylands_empty_03.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_drylands_empty_03_mask.png" + } + + empty_slot_asset = { + trigger = { + domicile_location = { + OR = { + terrain = mountains + terrain = hills + terrain = terraced_hills + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_rough_empty_03.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_rough_empty_03_mask.png" + } + + empty_slot_asset = { + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_grassland_empty_04.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_grassland_empty_04_mask.png" + } + + + # Under Construction + construction_slot_asset = { + trigger = { + owner.culture = { + OR = { + has_graphical_chinese_culture_group_trigger = yes + has_graphical_japanese_culture_group_trigger = yes + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_building_construction_chinese.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_chinese_mask.png" + } + construction_slot_asset = { + trigger = { + domicile_location.culture = { + has_graphical_mena_culture_group_trigger = yes + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_building_construction_mena.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_mena_mask.png" + } + construction_slot_asset = { + trigger = { + domicile_location.culture = { + has_graphical_western_culture_group_trigger = yes + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_building_construction_western.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_western_mask.png" + } + construction_slot_asset = { + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_building_construction_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_byzantine_mask.png" + } + } + + main_slot = { + slot_type = main + position = { 28.2% 16% } + size = { 28% 34.5% } + + empty_slot_asset = { + trigger = { + owner.culture = { + OR = { + has_graphical_chinese_culture_group_trigger = yes + has_graphical_japanese_culture_group_trigger = yes + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/yurt_empty_slot_01.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/yurt_empty_slot_01_mask.png" + } + + empty_slot_asset = { + trigger = { + domicile_location = { + OR = { + terrain = jungle + terrain = wetlands + terrain = floodplains + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_grassland_empty.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_grain_fields_byzantine_mask.png" + } + + empty_slot_asset = { + trigger = { + domicile_location = { + OR = { + terrain = drylands + terrain = desert + terrain = desert_mountains + terrain = oasis + terrain = steppe + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_grassland_empty.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_grain_fields_byzantine_mask.png" + } + + empty_slot_asset = { + trigger = { + domicile_location = { + OR = { + terrain = hills + terrain = mountains + terrain = terraced_hills + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_grassland_empty.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_grain_fields_byzantine_mask.png" + } + + empty_slot_asset = { + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_grassland_empty.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_grain_fields_byzantine_mask.png" + } + + # Under Construction + construction_slot_asset = { + trigger = { + owner.culture = { + OR = { + has_graphical_chinese_culture_group_trigger = yes + has_graphical_japanese_culture_group_trigger = yes + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_building_construction_chinese.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_chinese_mask.png" + } + construction_slot_asset = { + trigger = { + domicile_location.culture = { + has_graphical_mena_culture_group_trigger = yes + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_building_manor_construction_mena.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_manor_construction_mena_mask.png" + } + construction_slot_asset = { + trigger = { + domicile_location.culture = { + has_graphical_western_culture_group_trigger = yes + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_building_manor_construction_western.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_manor_construction_western_mask.png" + } + construction_slot_asset = { + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_building_manor_construction_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_manor_construction_byzantine_mask.png" + } + } + + external_slot_2 = { + position = { 6% 29% } + size = { 15% 30% } + + empty_slot_asset = { + trigger = { + owner.culture = { + OR = { + has_graphical_chinese_culture_group_trigger = yes + has_graphical_japanese_culture_group_trigger = yes + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/yurt_empty_slot_02.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/yurt_empty_slot_02_mask.png" + } + + empty_slot_asset = { + trigger = { + domicile_location = { + OR = { + terrain = jungle + terrain = wetlands + terrain = floodplains + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_jungle_empty_06.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_jungle_empty_06_mask.png" + } + + empty_slot_asset = { + trigger = { + domicile_location = { + OR = { + terrain = drylands + terrain = desert + terrain = desert_mountains + terrain = oasis + terrain = steppe + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_drylands_empty_06.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_drylands_empty_06_mask.png" + } + + empty_slot_asset = { + trigger = { + domicile_location = { + OR = { + terrain = mountains + terrain = hills + terrain = terraced_hills + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_rough_empty_06.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_rough_empty_06_mask.png" + } + + empty_slot_asset = { + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_grassland_empty_02.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_grassland_empty_02_mask.png" + } + + # Under Construction + construction_slot_asset = { + trigger = { + owner.culture = { + OR = { + has_graphical_chinese_culture_group_trigger = yes + has_graphical_japanese_culture_group_trigger = yes + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_building_construction_chinese.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_chinese_mask.png" + } + construction_slot_asset = { + trigger = { + domicile_location.culture = { + has_graphical_mena_culture_group_trigger = yes + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_building_construction_mena.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_mena_mask.png" + } + construction_slot_asset = { + trigger = { + domicile_location.culture = { + has_graphical_western_culture_group_trigger = yes + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_building_construction_western.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_western_mask.png" + } + construction_slot_asset = { + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_building_construction_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_byzantine_mask.png" + } + } + + external_slot_3 = { + position = { 22% 46% } + size = { 15% 30% } + + empty_slot_asset = { + trigger = { + owner.culture = { + OR = { + has_graphical_chinese_culture_group_trigger = yes + has_graphical_japanese_culture_group_trigger = yes + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/yurt_empty_slot_03.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/yurt_empty_slot_03_mask.png" + } + + empty_slot_asset = { + trigger = { + domicile_location = { + OR = { + terrain = jungle + terrain = wetlands + terrain = floodplains + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_jungle_empty_04.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_jungle_empty_04_mask.png" + } + + empty_slot_asset = { + trigger = { + domicile_location = { + OR = { + terrain = drylands + terrain = desert + terrain = desert_mountains + terrain = oasis + terrain = steppe + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_drylands_empty_04.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_drylands_empty_04_mask.png" + } + + empty_slot_asset = { + trigger = { + domicile_location = { + OR = { + terrain = mountains + terrain = hills + terrain = terraced_hills + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_rough_empty_04.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_rough_empty_04_mask.png" + } + + empty_slot_asset = { + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_grassland_empty_03.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_grassland_empty_03_mask.png" + } + + + # Under Construction + construction_slot_asset = { + trigger = { + owner.culture = { + OR = { + has_graphical_chinese_culture_group_trigger = yes + has_graphical_japanese_culture_group_trigger = yes + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_building_construction_chinese.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_chinese_mask.png" + } + construction_slot_asset = { + trigger = { + domicile_location.culture = { + has_graphical_mena_culture_group_trigger = yes + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_building_construction_mena.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_mena_mask.png" + } + construction_slot_asset = { + trigger = { + domicile_location.culture = { + has_graphical_western_culture_group_trigger = yes + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_building_construction_western.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_western_mask.png" + } + construction_slot_asset = { + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_building_construction_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_byzantine_mask.png" + } + } + + external_slot_5 = { + position = { 67% 20.5% } + size = { 15% 30% } + + empty_slot_asset = { + trigger = { + owner.culture = { + OR = { + has_graphical_chinese_culture_group_trigger = yes + has_graphical_japanese_culture_group_trigger = yes + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/yurt_empty_slot_05.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/yurt_empty_slot_05_mask.png" + } + + empty_slot_asset = { + trigger = { + domicile_location = { + OR = { + terrain = jungle + terrain = wetlands + terrain = floodplains + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_jungle_empty_03.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_jungle_empty_03_mask.png" + } + + empty_slot_asset = { + trigger = { + domicile_location = { + OR = { + terrain = drylands + terrain = desert + terrain = desert_mountains + terrain = oasis + terrain = steppe + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_drylands_empty_05.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_drylands_empty_05_mask.png" + } + + empty_slot_asset = { + trigger = { + domicile_location = { + OR = { + terrain = mountains + terrain = hills + terrain = terraced_hills + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_rough_empty_02.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_rough_empty_02_mask.png" + } + + empty_slot_asset = { + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_grassland_empty_05.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_grassland_empty_05_mask.png" + } + + + # Under Construction + construction_slot_asset = { + trigger = { + owner.culture = { + OR = { + has_graphical_chinese_culture_group_trigger = yes + has_graphical_japanese_culture_group_trigger = yes + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_building_construction_chinese.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_chinese_mask.png" + } + construction_slot_asset = { + trigger = { + domicile_location.culture = { + has_graphical_mena_culture_group_trigger = yes + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_building_construction_mena.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_mena_mask.png" + } + construction_slot_asset = { + trigger = { + domicile_location.culture = { + has_graphical_western_culture_group_trigger = yes + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_building_construction_western.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_western_mask.png" + } + construction_slot_asset = { + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_building_construction_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_byzantine_mask.png" + } + } + + external_slot_6 = { + position = { 51% 42% } + size = { 15% 30% } + + empty_slot_asset = { + trigger = { + owner.culture = { + OR = { + has_graphical_chinese_culture_group_trigger = yes + has_graphical_japanese_culture_group_trigger = yes + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/yurt_empty_slot_06.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/yurt_empty_slot_06_mask.png" + } + + empty_slot_asset = { + trigger = { + domicile_location = { + OR = { + terrain = jungle + terrain = wetlands + terrain = floodplains + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_jungle_empty.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_jungle_empty_mask.png" + } + + empty_slot_asset = { + trigger = { + domicile_location = { + OR = { + terrain = drylands + terrain = desert + terrain = desert_mountains + terrain = oasis + terrain = steppe + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_drylands_empty_02.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_drylands_empty_02_mask.png" + } + + empty_slot_asset = { + trigger = { + domicile_location = { + OR = { + terrain = mountains + terrain = hills + terrain = terraced_hills + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_rough_empty_05.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_rough_empty_05_mask.png" + } + + empty_slot_asset = { + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_grassland_empty_06.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_grassland_empty_06_mask.png" + } + + + # Under Construction + construction_slot_asset = { + trigger = { + owner.culture = { + OR = { + has_graphical_chinese_culture_group_trigger = yes + has_graphical_japanese_culture_group_trigger = yes + } + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_building_construction_chinese.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_chinese_mask.png" + } + construction_slot_asset = { + trigger = { + domicile_location.culture = { + has_graphical_mena_culture_group_trigger = yes + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_building_construction_mena.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_mena_mask.png" + } + construction_slot_asset = { + trigger = { + domicile_location.culture = { + has_graphical_western_culture_group_trigger = yes + } + } + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_building_construction_western.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_western_mask.png" + } + construction_slot_asset = { + icon = "gfx/interface/icons/flat_icons/plus.dds" + texture = "gfx/interface/window_domiciles/estate_building_construction_byzantine.dds" + intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_byzantine_mask.png" + } + } + } + + # Backgrounds + domicile_asset = { + trigger = { + domicile_location = { + OR = { + this = root.owner.top_liege.capital_province + county = duchy.title_capital_county + } + } + } + background = "gfx/interface/window_domiciles/church_terrain_urban_bg.dds" + foreground = "gfx/interface/window_domiciles/church_terrain_fg.dds" + #TODO_PAM_will we get audio? + ambience = "event:/DLC/EP3/SFX/Ambience/2D/Domicile/ep3_amb_2d_domicile_byzantine_urban" + } + + domicile_asset = { + background = "gfx/interface/window_domiciles/church_terrain_green_bg.dds" + foreground = "gfx/interface/window_domiciles/church_terrain_fg.dds" + #TODO_PAM_will we get audio? + ambience = "event:/DLC/EP3/SFX/Ambience/2D/Domicile/ep3_amb_2d_domicile_green_lands" + } +} \ No newline at end of file diff --git a/common/dynasty_house_motto_inserts/00_inserts.txt b/common/dynasty_house_motto_inserts/00_inserts.txt index 850995b50..de71ae3f9 100644 --- a/common/dynasty_house_motto_inserts/00_inserts.txt +++ b/common/dynasty_house_motto_inserts/00_inserts.txt @@ -2881,7 +2881,7 @@ the_weapon = { trigger = { OR = { learning = 8 - has_trait = scholar + has_trait = erudite } } weight = { diff --git a/common/factions/00_nomadic_faction.txt b/common/factions/00_nomadic_faction.txt index edd6f56c5..d8472f231 100644 --- a/common/factions/00_nomadic_faction.txt +++ b/common/factions/00_nomadic_faction.txt @@ -513,6 +513,7 @@ template = new_commander_character location = scope:local_center_of_rebellion faith = root.faction_leader.faith + rite = root.faction_leader.rite culture = root.faction_leader.culture save_scope_as = new_populist_commander gender_female_chance = { diff --git a/common/factions/00_peasant_faction_new.txt b/common/factions/00_peasant_faction_new.txt index 0a0c0b02a..db62eaf35 100644 --- a/common/factions/00_peasant_faction_new.txt +++ b/common/factions/00_peasant_faction_new.txt @@ -323,8 +323,7 @@ peasant_faction = { modifier = { desc = "FACTION_REASON_AT_WAR_WITH_TARGET" add = 1000 - exists = joined_faction - joined_faction = { + scope:faction = { faction_is_at_war = yes } } @@ -345,8 +344,8 @@ peasant_faction = { add = 25 county_opinion < 0 faith != scope:faction.faction_target.faith - faith = { - has_doctrine_parameter = peasant_and_populist_factions_more_common + rite = { + rite_has_parameter = peasant_and_populist_factions_more_common } } } @@ -523,8 +522,8 @@ peasant_faction = { add = 25 county_opinion < 0 faith != scope:target.faith - faith = { - has_doctrine_parameter = peasant_and_populist_factions_more_common + rite = { + rite_has_parameter = peasant_and_populist_factions_more_common } } } @@ -724,7 +723,7 @@ peasant_faction = { # } if = { limit = { - faith = { has_doctrine_parameter = peasant_and_populist_factions_more_common } + rite = { rite_has_parameter = peasant_and_populist_factions_more_common } } multiply = 1.5 } diff --git a/common/factions/00_populist_faction.txt b/common/factions/00_populist_faction.txt index 6f3acdb34..00a17a8f3 100644 --- a/common/factions/00_populist_faction.txt +++ b/common/factions/00_populist_faction.txt @@ -12,7 +12,7 @@ first_valid = { triggered_desc = { trigger = { - faction_target = { government_has_flag = government_is_administrative } + faction_target = { government_allows = state_faith } } desc = populist_faction_short_effect_desc_admin } @@ -96,22 +96,19 @@ highest_held_title_tier >= tier_county } - # Must not be the same culture & faith as the faction target. + # A rite other than the Admin State Rite is a grievance even within the same faith custom_tooltip = { text = populist_faction_same_culture_faith_as_liege OR = { faith != scope:faction.faction_target.faith culture != scope:faction.faction_target.culture + AND = { + exists = scope:faction.faction_target.primary_title.state_rite + rite != scope:faction.faction_target.primary_title.state_rite + } } } - trigger_if = { # Must have a different faith than state faith in Admin - limit = { - exists = scope:faction.faction_target.primary_title.state_faith - } - faith != scope:faction.faction_target.primary_title.state_faith - } - # Not forbidden from being in factions. NOT = { has_character_flag = joining_faction_block @@ -123,17 +120,15 @@ # Counties can only be in a faction against the top liege in their realm (who is inherently independent). scope:faction.faction_target = holder.top_liege - # Counties must have a different faith or culture than the faction target. + # Counties must have a different faith or culture than the faction target; + # in Admin, a rite other than the State Rite also qualifies. OR = { faith != scope:faction.faction_target.faith culture != scope:faction.faction_target.culture - } - - trigger_if = { # Must have a different faith than state faith in Admin - limit = { - exists = scope:faction.faction_target.primary_title.state_faith + AND = { + exists = scope:faction.faction_target.primary_title.state_rite + rite != scope:faction.faction_target.primary_title.state_rite } - faith != scope:faction.faction_target.primary_title.state_faith } # Counties must have the same faith as the faction @@ -179,22 +174,17 @@ } can_county_join = { - # Must share this faction's faith. + # In Admin, the faith-driven faction also needs a State Rite grievance scope:faction = { - OR = { - NOT = { - has_variable = faction_faith + trigger_if = { + limit = { has_variable = faction_faith } + root.faith = var:faction_faith + trigger_if = { + limit = { + exists = scope:faction.faction_target.primary_title.state_rite + } + root.rite != scope:faction.faction_target.primary_title.state_rite } - AND = { - has_variable = faction_faith - root.faith = var:faction_faith - } - } - trigger_if = { # Must have a different faith than state faith in Admin - limit = { - exists = scope:faction.faction_target.primary_title.state_faith - } - root.faith != scope:faction.faction_target.primary_title.state_faith } } @@ -212,7 +202,8 @@ # Can only join factions against our top liege (not direct liege) scope:target = holder.top_liege - # Must have a culture or faith different from the target's. + # Must have a culture or faith different from the target's; + # in Admin, a rite other than the State Rite also qualifies. OR = { #make sure you do not accept their faith faith ?= { @@ -222,13 +213,10 @@ } } culture != scope:target.culture - } - - trigger_if = { # Must have a different faith than state faith in Admin - limit = { - exists = scope:faction.faction_target.primary_title.state_faith + AND = { + exists = scope:target.primary_title.state_rite + rite != scope:target.primary_title.state_rite } - faith != scope:faction.faction_target.primary_title.state_faith } #### @@ -734,6 +722,10 @@ SCORE_PER_DEBT_LEVEL = 10 } + tenet_divine_marriage_incestuous_liege_faction_modifier = { + TARGET = scope:faction.faction_target + } + # The AI is almost always unwilling to join a faction against their friends and lovers. modifier = { desc = "FACTION_REASON_TARGET_FRIEND_LOVER" @@ -818,24 +810,26 @@ desc = "FACTION_REASON_NEIGHBORS" factor = { value = 1 - every_faction_member = { - if = { - limit = { - any_neighboring_realm_same_rank_owner = { - this = root - } + scope:faction = { + every_faction_member = { + if = { + limit = { + any_neighboring_realm_same_rank_owner = { + this = root + } + } + add = 0.25 } - add = 0.25 - } - } - } - } + } + } + } + } - modifier = { + modifier = { desc = "FACTION_REASON_POWERFUL_VASSAL" - factor = 2 + factor = 2 is_powerful_vassal_of = scope:faction.faction_target - } + } #EP3 admin legitimacy event modifier = { desc = "FACTION_REASON_LOW_LEGITIMACY_CHALLENGER" @@ -883,9 +877,9 @@ special_character = { if = { limit = { - OR = { - has_character_flag = peasant_faction_claimant_without_title - has_character_flag = peasant_faction_random_peasant + has_variable = { + name = peasant_faction_claimant_without_title + name = peasant_faction_random_peasant } has_variable = peasant_title } @@ -897,6 +891,7 @@ } if = { limit = { # To make sure we aren't in debt + is_alive = yes gold > 0 } remove_long_term_gold = gold # Zero out our wallet since the revolt is over and we're going back to being unlanded. @@ -932,11 +927,14 @@ demand = { setup_populist_leader_effect = yes # Faction leader is unhappy if they reach the point of needing to issue an ultimatim. - faction_leader = { - add_opinion = { - modifier = angry_opinion - target = root.faction_target - opinion = -20 + if = { + limit = { exists = faction_leader } + faction_leader = { + add_opinion = { + modifier = angry_opinion + target = root.faction_target + opinion = -20 + } } } @@ -947,6 +945,7 @@ save_scope_as = faction special_character = { save_scope_as = peasant_leader + save_scope_as = faction_leader } special_title = { save_scope_as = target_title @@ -1072,6 +1071,7 @@ template = new_commander_character location = scope:local_center_of_rebellion faith = root.faction_leader.faith + rite = root.faction_leader.rite culture = root.faction_leader.culture save_scope_as = new_populist_commander gender_female_chance = { @@ -1089,6 +1089,7 @@ } } scope:new_populist_commander = { + set_character_rite = root.faction_leader.rite set_employer = root.faction_leader } } @@ -1109,12 +1110,15 @@ is_alive = no } } - faction_war = { - end_war = defender + if = { + limit = { exists = faction_war } + faction_war = { + end_war = defender + } } destroy_faction = yes } - if = { + else_if = { # Not an if: the branch above destroys the faction, leaving this scope invalid limit = { NOT = { has_variable = peasant_destroying } exists = faction_war @@ -1424,8 +1428,7 @@ escalated_peasant_faction = { modifier = { desc = "FACTION_REASON_AT_WAR_WITH_TARGET" add = 1000 - exists = joined_faction - joined_faction = { + scope:faction = { faction_is_at_war = yes } } @@ -1446,8 +1449,8 @@ escalated_peasant_faction = { add = 25 county_opinion < 0 faith != scope:faction.faction_target.faith - faith = { - has_doctrine_parameter = peasant_and_populist_factions_more_common + rite = { + rite_has_parameter = peasant_and_populist_factions_more_common } } modifier = { @@ -1515,9 +1518,9 @@ escalated_peasant_faction = { special_character = { if = { limit = { - OR = { - has_character_flag = peasant_faction_claimant_without_title - has_character_flag = peasant_faction_random_peasant + has_variable = { + name = peasant_faction_claimant_without_title + name = peasant_faction_random_peasant } has_variable = peasant_title } @@ -1529,6 +1532,7 @@ escalated_peasant_faction = { } if = { limit = { # To make sure we aren't in debt + is_alive = yes gold > 0 } remove_long_term_gold = gold # Zero out our wallet since the revolt is over and we're going back to being unlanded. @@ -1564,11 +1568,14 @@ escalated_peasant_faction = { demand = { setup_populist_leader_effect = yes # Faction leader is unhappy if they reach the point of needing to issue an ultimatim. - faction_leader = { - add_opinion = { - modifier = angry_opinion - target = root.faction_target - opinion = -20 + if = { + limit = { exists = faction_leader } + faction_leader = { + add_opinion = { + modifier = angry_opinion + target = root.faction_target + opinion = -20 + } } } @@ -1714,6 +1721,7 @@ escalated_peasant_faction = { template = new_commander_character location = scope:local_center_of_rebellion faith = root.faction_leader.faith + rite = root.faction_leader.rite culture = root.faction_leader.culture save_scope_as = new_populist_commander gender_female_chance = { @@ -1731,6 +1739,7 @@ escalated_peasant_faction = { } } scope:new_populist_commander = { + set_character_rite = root.faction_leader.rite set_employer = root.faction_leader } } @@ -1747,14 +1756,14 @@ escalated_peasant_faction = { men_at_arms = { type = pikemen_militia stacks = { - value = root.faction_leader.location.county.county_levies_to_raise - divide = 100 - multiply = { - value = "root.faction_leader.has_trait_xp(peasant_leader)" - multiply = 0.05 - } + value = root.faction_leader.location.county.county_levies_to_raise + divide = 100 + multiply = { + value = "root.faction_leader.has_trait_xp(peasant_leader)" + multiply = 0.05 + } round = yes - min = 1 + min = 1 } } men_at_arms = { @@ -1797,12 +1806,15 @@ escalated_peasant_faction = { is_alive = no } } - faction_war = { - end_war = defender + if = { + limit = { exists = faction_war } + faction_war = { + end_war = defender + } } destroy_faction = yes } - if = { + else_if = { # Not an if: the branch above destroys the faction, leaving this scope invalid limit = { NOT = { has_variable = peasant_destroying } exists = faction_war diff --git a/common/game_concepts/00_game_concepts.txt b/common/game_concepts/00_game_concepts.txt index 4041201d1..71f03cdc0 100644 --- a/common/game_concepts/00_game_concepts.txt +++ b/common/game_concepts/00_game_concepts.txt @@ -88,11 +88,16 @@ opinion = { clergy_opinion = { texture = "gfx/interface/icons/icon_opinion.dds" parent = opinion + alias = { clerical } } secular_opinion = { texture = "gfx/interface/icons/icon_opinion.dds" parent = opinion } +secular_ruler = { + parent = ruler + alias = { secular_rulers secular } +} faction = { texture = "gfx/interface/skinned/hud_maintab/maintab_factions.dds" framesize = { 132 108 } @@ -380,7 +385,7 @@ religious_family = { } head_of_faith = { parent = faith - alias = {heads_of_faith} + alias = {heads_of_faith head_of_faith_possessive} } spiritual_head_of_faith = { alias = {head_of_faith_spiritual} @@ -957,11 +962,12 @@ army = { holy_order = { texture = "gfx/interface/icons/government_types/holy_order_government.dds" - alias = { holy_orders holy_order_i } + alias = { holy_orders holy_order_i holy_order_possessive holy_orders_possessive } } holy_order_patron = { texture = "gfx/interface/icons/message_feed/holy_order.dds" + alias = { holy_order_patronize holy_order_patronage } } mercenary_company = { @@ -1131,6 +1137,11 @@ intent = { parent = activity } +feast = { + texture = "gfx/interface/icons/activities/activity_feast.dds" + parent = activity +} + hunt_success_chance = { alias = { hunt_success_chance_no_prefix } texture = "gfx/interface/icons/activities/activity_hunt.dds" @@ -1144,7 +1155,7 @@ hunt_danger = { } holder = { - alias = { holders holder_possessive holders_possessive hold } + alias = { holders holder_possessive holders_possessive hold held } } building = { @@ -1311,7 +1322,7 @@ education_trait = { personality_trait = { texture = "gfx/interface/icons/traits/trusting.dds" parent = trait - alias = {personality_traits } + alias = { personality_traits } } lifestyle_trait = { @@ -1581,11 +1592,13 @@ dread = { fervor = { parent = faith texture = "gfx/interface/icons/icon_fervor.dds" + alias = { fervor_i } } doctrines = { parent = faith + texture = "gfx/interface/icons/icon_doctrine.dds" alias = { doctrine } } @@ -1657,7 +1670,7 @@ marshal = { court_chaplain = { texture = "gfx/interface/icons/message_feed/religious_councillor_job.dds" parent = councillor - alias = { court_chaplains } + alias = { court_chaplains court_chaplain_possessive court_chaplains_possessive } } realm_priest = { @@ -2022,6 +2035,11 @@ republic = { alias = { republics republican republic_government republic_i } } +church_authority = { + texture = "gfx/interface/icons/message_feed/law.dds" + parent = law +} + theocratic_vassal = { parent = theocracy alias = { theocratic_vassals } @@ -2033,10 +2051,15 @@ clergy = { parent = faith } +government_authority = { + texture = "gfx/interface/icons/message_feed/law.dds" + parent = law +} + crown_authority = { texture = "gfx/interface/icons/message_feed/law.dds" #texture = "gfx/interface/icons/laws/crown_authority_0.dds" - parent = law + parent = government_authority } autonomous_vassals_crown_authority = { @@ -2044,34 +2067,30 @@ autonomous_vassals_crown_authority = { alias = { autonomous_vassals } texture = "gfx/interface/icons/message_feed/law.dds" #texture = "gfx/interface/icons/laws/crown_authority_0.dds" - parent = law } limited_crown_authority = { parent = crown_authority alias = { limited } texture = "gfx/interface/icons/message_feed/law.dds" #texture = "gfx/interface/icons/laws/crown_authority_1.dds" - parent = law } high_crown_authority = { parent = crown_authority alias = { high } texture = "gfx/interface/icons/message_feed/law.dds" #texture = "gfx/interface/icons/laws/crown_authority_2.dds" - parent = law } absolute_crown_authority = { parent = crown_authority alias = { absolute } texture = "gfx/interface/icons/message_feed/law.dds" #texture = "gfx/interface/icons/laws/crown_authority_3.dds" - parent = law } tribal_authority = { texture = "gfx/interface/icons/message_feed/law.dds" #texture = "gfx/interface/icons/laws/tribal_authority_0.dds" - parent = law + parent = government_authority } disparate_tribes_tribal_authority = { @@ -2079,7 +2098,6 @@ disparate_tribes_tribal_authority = { alias = { disparate_tribes } texture = "gfx/interface/icons/message_feed/law.dds" #texture = "gfx/interface/icons/laws/tribal_authority_0.dds" - parent = law } limited_tribal_authority = { @@ -2087,7 +2105,6 @@ limited_tribal_authority = { alias = { limited_tribal } texture = "gfx/interface/icons/message_feed/law.dds" #texture = "gfx/interface/icons/laws/tribal_authority_1.dds" - parent = law } high_tribal_authority = { @@ -2095,7 +2112,6 @@ high_tribal_authority = { alias = { high_tribal } texture = "gfx/interface/icons/message_feed/law.dds" #texture = "gfx/interface/icons/laws/tribal_authority_2.dds" - parent = law } absolute_tribal_authority = { @@ -2103,7 +2119,6 @@ absolute_tribal_authority = { alias = { absolute_tribal } texture = "gfx/interface/icons/message_feed/law.dds" #texture = "gfx/interface/icons/laws/tribal_authority_3.dds" - parent = law } crime = { @@ -2185,19 +2200,35 @@ depose = { } virtue = { - #texture = "gfx/interface/icons/traits/virtue_big.dds" + texture = "gfx/interface/icons/traits/virtue.dds" alias = { virtues virtuous } } sin = { - #texture = "gfx/interface/icons/traits/sin_big.dds" + texture = "gfx/interface/icons/traits/sin.dds" alias = { sins sinful } } +virtue_weight = { + texture = "gfx/interface/icons/traits/virtue.dds" + parent = virtue +} + +sin_weight = { + texture = "gfx/interface/icons/traits/sin.dds" + parent = sin +} + excommunication = { texture = "gfx/interface/icons/traits/excommunicated.dds" alias = { excommunicate excommunicated } } +# Player-facing concept linked from the Excommunicated trait tooltip. +excommunicated_recovery = { + texture = "gfx/interface/icons/traits/excommunicated.dds" + parent = excommunication +} + excommunicated_ruler = { texture = "gfx/interface/icons/traits/excommunicated.dds" alias = { excommunication_war } @@ -2205,6 +2236,7 @@ excommunicated_ruler = { holy_site = { alias = { holy_sites } + texture = "gfx/interface/icons/event_types/type_faith.dds" } legalism = { @@ -2266,8 +2298,8 @@ dynasty_prestige_level_10 = { shown_in_encyclopedia = no } -core_tenet = { - alias = {core_tenets} +tenet = { + alias = { tenets core_tenet core_tenets core } } holy_war = { @@ -2470,13 +2502,20 @@ title_allegiance = { elector = { - alias = { electors } + alias = { electors elector_i election elections } + texture = "gfx/interface/icons/succession_result_type/election.dds" } title_succession = { alias = { title_specific_succession } } +elective_succession = { +} + +advanced_succession = { +} + sexuality = { } @@ -2626,7 +2665,7 @@ blood_brother = { framesize = { 40 40 } frame = 2 - alias = { blood_brothers blood_brother_possessive blood_brothers_possessive } + alias = { blood_brothers blood_brotherhood blood_brother_possessive blood_brothers_possessive } parent = relation } @@ -2792,6 +2831,7 @@ tutorial_education_trait = { #only used in tutorial! } organized = { + texture = "gfx/interface/icons/icon_organized_faith.dds" } flowery_war = { @@ -2830,7 +2870,7 @@ extramarital_sex = { heresy = { texture = "gfx/interface/icons/message_feed/heresy.dds" parent = faith - alias = { heresies } + alias = { heresies heretical } } titular_title = { @@ -2895,7 +2935,7 @@ unreformed_pagan_combat_bonus = {} personality = { texture = "gfx/interface/icons/message_feed/trait.dds" - alias = { character_personality personalities personality_i } + alias = { behave character_personality personalities personality_i } } economical_archetype = { @@ -3005,7 +3045,11 @@ force_duel_anyone_interaction = { } artifact_rarity = { - alias = { rarity } + alias = { rarity common masterwork famed illustrious } + parent = artifact + texture = "gfx/interface/icons/roco_tabs/roco_artifact.dds" + framesize = { 140 140 } + frame = 2 } promote_other_culture_development_decision = { @@ -3236,9 +3280,10 @@ scheme_breach = { parent = scheme } -state_faith = { +state_rite = { + alias = { state_faith } texture = "gfx/interface/skinned/hud_maintab/maintab_administrative.dds" - parent = faith + parent = rite } story_cycle = { @@ -3303,3 +3348,17 @@ imperial_policy_faction = { alias = { faction_imperial_policy imperial_policy_factions } parent = faction } + +fallback_heir = { + texture = "gfx/interface/icons/message_feed/heir.dds" +} + +fallback_heir_title = { + texture = "gfx/interface/icons/message_feed/heir.dds" +} + +prince_elector = { # Kurfürst, special HRE concept + alias = { prince_electors } + parent = elector + texture = "gfx/interface/icons/succession_result_type/election.dds" +} diff --git a/common/genes/01_genes_morph.txt b/common/genes/01_genes_morph.txt index f3669702d..5fc981454 100644 --- a/common/genes/01_genes_morph.txt +++ b/common/genes/01_genes_morph.txt @@ -7728,6 +7728,9 @@ morph_genes = { setting = { attribute = "bs_no_portrait" value = { min = 1.0 max = 1.0 } } setting = { attribute = "bs_body_no_portrait" value = { min = 1.0 max = 1.0 } } } + female = male + boy = male + girl = male } } diff --git a/common/genes/02_genes_accessories_misc.txt b/common/genes/02_genes_accessories_misc.txt index 3e8b38ad9..1811bec47 100644 --- a/common/genes/02_genes_accessories_misc.txt +++ b/common/genes/02_genes_accessories_misc.txt @@ -7,64 +7,64 @@ accessory_genes = { ##################################### # # -# EYE ACCESSORY # +# EYE ACCESSORY # # # ##################################### - + eye_accessory = { inheritable = no - - normal_eyes = { + + no_eyes = { index = 0 + male = {} + female = {} + boy = {} + girl = {} + } + normal_eyes = { + index = 1 male = { 1 = "male_eyes_normal" } female = { 1 = "female_eyes_normal" } boy = male girl = female } - normal_eyes_no_shadow = { - index = 1 - male = { 1 = "male_eyes_normal_no_shadow" } - female = { 1 = "female_eyes_normal_no_shadow" } - boy = male - girl = female - } - normal_eyes_dark_iris = { - index = 2 - male = { 1 = "male_eyes_normal_dark_iris" } - female = { 1 = "female_eyes_normal_dark_iris" } - boy = male - girl = female - } - normal_eyes_asian = { - index = 3 - male = { 1 = "male_eyes_normal_asian" } - female = { 1 = "female_eyes_normal_asian" } - boy = male - girl = female - } - bloodshot_eyes = { + normal_eyes_no_shadow = { + index = 2 + male = { 1 = "male_eyes_normal_no_shadow" } + female = { 1 = "female_eyes_normal_no_shadow" } + boy = male + girl = female + } + normal_eyes_dark_iris = { + index = 3 + male = { 1 = "male_eyes_normal_dark_iris" } + female = { 1 = "female_eyes_normal_dark_iris" } + boy = male + girl = female + } + normal_eyes_asian = { index = 4 + male = { 1 = "male_eyes_normal_asian" } + female = { 1 = "female_eyes_normal_asian" } + boy = male + girl = female + } + bloodshot_eyes = { + index = 5 male = { 1 = "male_eyes_bloodshot" } female = { 1 = "female_eyes_bloodshot" } boy = male girl = female } blind_eyes = { - index = 5 + index = 6 male = { 1 = "male_eyes_blind" } female = { 1 = "female_eyes_blind" } boy = male girl = female } - no_eyes = { - index = 6 - male = {} - female = {} - boy = {} - girl = {} - } # red_eyes = { # index = 2 # male = { 1 = male_eyes_red } @@ -79,7 +79,7 @@ accessory_genes = { ##################################### # # -# TEETH ACCESSORY # +# TEETH ACCESSORY # # # ##################################### @@ -87,9 +87,17 @@ accessory_genes = { teeth_accessory = { inheritable = no - - normal_teeth = { + + no_teeth = { index = 0 + male = {} + female = {} + boy = {} + girl = {} + } + + normal_teeth = { + index = 1 male = { 1 = "male_teeth_normal" } @@ -103,8 +111,8 @@ accessory_genes = { 1 = "girl_teeth_normal" } } - ohaguro_teeth = { # Blackened teeth - index = 1 + ohaguro_teeth = { # Blackened teeth + index = 2 male = { 1 = "male_teeth_ohaguro" } @@ -118,34 +126,27 @@ accessory_genes = { 1 = "female_teeth_ohaguro" } } - no_teeth = { - index = 2 - male = {} - female = {} - boy = {} - girl = {} - } } ##################################### # # -# EYELASHES ACCESSORY # +# EYELASHES ACCESSORY # # # ##################################### eyelashes_accessory = { inheritable = no - + # inheritable = no no_eyelashes = { index = 0 male = { - 1 = empty + 1 = empty } female = { - 1 = empty + 1 = empty } boy = male girl = female @@ -154,10 +155,10 @@ accessory_genes = { normal_eyelashes = { index = 1 male = { - 1 = "male_eyelashes_normal" + 1 = "male_eyelashes_normal" } female = { - 1 = "female_eyelashes_normal" + 1 = "female_eyelashes_normal" } boy = male girl = female @@ -166,10 +167,10 @@ accessory_genes = { asian_eyelashes = { index = 2 male = { - 1 = "male_eyelashes_normal" + 1 = "male_eyelashes_normal" } female = { - 1 = "female_eyelashes_normal" + 1 = "female_eyelashes_normal" } boy = male girl = female diff --git a/common/genes/03_genes_special_accessories_hairstyles.txt b/common/genes/03_genes_special_accessories_hairstyles.txt index af718bc27..5279c22cf 100644 --- a/common/genes/03_genes_special_accessories_hairstyles.txt +++ b/common/genes/03_genes_special_accessories_hairstyles.txt @@ -1638,7 +1638,7 @@ special_genes = { 1 = f_hair_tgp_chinese_04 1 = f_hair_tgp_chinese_04_common 1 = f_hair_tgp_chinese_05 - 1 = f_hair_tgp_chinese_05_common + 1 = f_hair_tgp_chinese_05_common } boy = male @@ -1759,7 +1759,7 @@ special_genes = { girl = female } - #CCP7 Emishi / Ainu + #CCP7 Emishi / Ainu cp7_emishi_ainu_hairstyles_straight_wavy = { index = 80 male = { @@ -1799,12 +1799,12 @@ special_genes = { girl = female } - ### CCP9 ### + ### CCP9 ### ccp9_uighur_hairstyles = { index = 82 male = { 1 = m_hair_ccp9_uyg_nob_01 - + } female = { 1 = f_hair_tgp_chinese_01 @@ -1816,18 +1816,18 @@ special_genes = { 1 = f_hair_tgp_chinese_04 1 = f_hair_tgp_chinese_04_common 1 = f_hair_tgp_chinese_05 - 1 = f_hair_tgp_chinese_05_common + 1 = f_hair_tgp_chinese_05_common } boy = male girl = female } - ### SP5 ### + ### SP5 ### sp5_hairstyles = { index = 83 male = { 1 = m_hair_sp5_western_01 - + } female = { } @@ -1835,6 +1835,72 @@ special_genes = { boy = male girl = female } + + ### PAM ### + + pam_christian_hairstyles = { + index = 84 + male = { + 1 = m_hair_pam_christian_01 + 2 = m_hair_pam_christian_02 + 2 = m_hair_pam_christian_03 + } + female = { + } + boy = male + girl = female + } + + # Tonsures + pam_catholic_hairstyles = { + index = 85 + male = { + 1 = m_hair_pam_christian_02 + 1 = m_hair_pam_christian_03 + } + female = { + 1 = female_hair_western_03 + 1 = female_hair_western_06 + 1 = female_hair_western_09 + + } + boy = male + girl = female + } + + # Here using a mix of fitting styles from earlier releases since Orthodox clergy generally did not wear Tonsure + pam_orthodox_hairstyles = { + index = 86 + male = { + 1 = m_hair_pam_christian_01 + 1 = m_hair_pam_christian_04 + 1 = m_hair_pam_christian_05 + 1 = m_hair_ep3_byzantine_01 + 1 = m_hair_ep3_byzantine_03 + 1 = m_hair_ep3_byzantine_04 + + } + female = { + 1 = female_hair_western_03 + 1 = f_hair_ep3_byzantine_01_common + 1 = f_hair_ep3_byzantine_02_common + + } + boy = male + girl = female + } + + # Thea vanity char special + female_hair_fp1_special = { + index = 87 + male = { + } + female = { + 1 = female_hair_fp1_01_special + } + boy = male + girl = female + } } } } diff --git a/common/genes/04_genes_special_accessories_beards.txt b/common/genes/04_genes_special_accessories_beards.txt index 1601897b9..073db8a2f 100644 --- a/common/genes/04_genes_special_accessories_beards.txt +++ b/common/genes/04_genes_special_accessories_beards.txt @@ -96,6 +96,10 @@ special_genes = { 1 = m_beard_tgp_chinese_04 1 = m_beard_tgp_chinese_05 1 = m_beard_tgp_chinese_06 + + # PAM + 1 = m_beard_pam_01 + 1 = m_beard_pam_02 } female = { 1 = empty @@ -490,6 +494,7 @@ special_genes = { } } + # Index 22 must stay, because bookmark portraits and historical DNA still use this template orthodox_beards = { index = 22 male = { @@ -508,6 +513,37 @@ special_genes = { 1 = empty } } + + + orthodox_beards_straight = { + index = 46 + male = { + 20 = male_beard_western_01 # Standard full beard + 5 = male_beard_western_02 # Standard goatee + 5 = male_beard_western_03 # Short beard + 10 = male_beard_western_06 # Big bushy beard + 5 = male_beard_western_07 # Chin strap + 20 = male_beard_western_08 # Big with fancy mustache + 10 = male_beard_western_09 # Pointy beard + 10 = male_beard_mena_02 # Big with small mustache + 5 = male_beard_mena_04 # Short stylish + } + female = { + 1 = empty + } + } + + orthodox_beards_curly = { + index = 47 + male = { + 5 = male_beard_western_03 # Short beard + 10 = male_beard_mena_01 # Very curly medium length full beard + 10 = male_beard_mena_02 # Big with small mustache + } + female = { + 1 = empty + } + } scripted_character_beards_02 = { index = 23 male = { @@ -855,6 +891,18 @@ special_genes = { 1 = empty } } + + pam_western_beards = { + index = 48 + male = { + 1 = m_beard_pam_01 + 1 = m_beard_pam_02 + + } + female = { + 1 = empty + } + } } } } \ No newline at end of file diff --git a/common/genes/05_genes_special_accessories_clothes.txt b/common/genes/05_genes_special_accessories_clothes.txt index c909005c8..d6c6bcfe8 100644 --- a/common/genes/05_genes_special_accessories_clothes.txt +++ b/common/genes/05_genes_special_accessories_clothes.txt @@ -99,14 +99,14 @@ 1 = m_clothes_sec_dde_abbasid_war_nob_01_hi 1 = m_clothes_sec_dde_abbasid_war_nob_01_roy 1 = male_clothes_religious_orthodox_high_01 - 1 = male_clothes_religious_orthodox_head_01_common + 1 = male_clothes_religious_orthodox_head_01 1 = male_clothes_religious_muslim_high_01 1 = male_clothes_religious_dde_muslim_head_01_common 1 = male_clothes_religious_catholic_devoted_01_dominican 1 = male_clothes_religious_catholic_devoted_02_franciscan 1 = male_clothes_religious_catholic_devoted_02_benedictine 1 = male_clothes_religious_catholic_high_01 - 1 = male_clothes_religious_dde_catholic_high_01_common + 1 = male_clothes_religious_dde_catholic_high_01 1 = male_clothes_religious_catholic_high_01 1 = male_clothes_religious_catholic_head_01 1 = male_clothes_religious_northern_high_01 @@ -204,7 +204,7 @@ 1 = m_clothes_sec_mpo_mongol_roy_01 1 = m_clothes_sec_mpo_mongol_imp_01 1 = m_clothes_sec_mpo_mongol_war_01 - + # POl 1 = m_clothes_sec_pol_common_01 1 = m_clothes_sec_pol_common_02 @@ -234,9 +234,12 @@ # ccp9 1 = m_clothes_ccp9_dal_nob_01 - 1 = m_clothes_ccp9_lia_nob_01 - 1 = m_clothes_ccp9_min_nob_01 - 1 = m_clothes_ccp9_tan_nob_01 + 1 = m_clothes_ccp9_lia_nob_01 + 1 = m_clothes_ccp9_min_nob_01 + 1 = m_clothes_ccp9_tan_nob_01 + 1 = m_clothes_ccp9_lia_nob_01 + 1 = m_clothes_ccp9_min_nob_01 + 1 = m_clothes_ccp9_tan_nob_01 } @@ -333,6 +336,7 @@ 1 = female_clothes_religious_northern_high_01 1 = female_clothes_religious_african_high_01_common 1 = female_clothes_religious_hindu_devoted_01 + 1 = female_clothes_religious_buddhist_devoted_01 1 = female_clothes_religious_zoroastrian_high_01 1 = female_clothes_religious_steppe_high_01_common 1 = female_clothes_secular_fp1_common_01 @@ -415,7 +419,7 @@ 1 = f_clothes_sec_ep3_byzantine_era2_war_nob_01_lo 1 = f_clothes_sec_ep3_byzantine_era2_war_nob_01_hi 1 = f_clothes_sec_ep3_byzantine_era1_imp_01 - + # POL 1 = f_clothes_sec_pol_common_01 1 = f_clothes_sec_pol_common_02 @@ -455,7 +459,7 @@ # ccp9 #--------------------------------------------------------------------------------------- - 1 = f_clothes_ccp9_lia_nob_01 + 1 = f_clothes_ccp9_lia_nob_01 1 = f_clothes_ccp9_uyg_nob_01 1 = f_clothes_ccp9_uyg_roy_01 1 = f_clothes_ccp9_tan_roy_01 @@ -1391,7 +1395,7 @@ } female = { - 1 = female_clothes_religious_catholic_devoted_01_common + 1 = female_clothes_religious_orthodox_high_01 } boy = male @@ -1402,11 +1406,11 @@ index = 51 male = { - 1 = male_clothes_religious_orthodox_head_01_common + 1 = male_clothes_religious_orthodox_head_01 } female = { - 1 = female_clothes_religious_catholic_devoted_01_common + 1 = female_clothes_religious_orthodox_head_01 } boy = male @@ -1471,13 +1475,15 @@ male = { # Duplicate weights to make seed different from catholic_high headgear gene 1 = male_clothes_religious_catholic_high_01 - 2 = male_clothes_religious_dde_catholic_high_01_common + 2 = male_clothes_religious_dde_catholic_high_01 1 = male_clothes_religious_catholic_high_01 } female = { - 1 = female_clothes_religious_catholic_devoted_01_common + 1 = female_clothes_religious_catholic_high_01 + 2 = female_clothes_religious_dde_catholic_high_01 + 1 = female_clothes_religious_catholic_high_01 } boy = male @@ -1490,7 +1496,7 @@ 1 = male_clothes_religious_catholic_head_01 } female = { - 1 = female_clothes_religious_catholic_devoted_01_common + 1 = female_clothes_religious_catholic_head_01 } boy = male @@ -1506,7 +1512,7 @@ # index = 57 # # male = { - # 1 = male_clothes_religious_dde_catholic_high_01_common + # 1 = male_clothes_religious_dde_catholic_high_01 # # } # @@ -1605,7 +1611,7 @@ } female = { - 1 = female_clothes_religious_hindu_devoted_01 + 1 = female_clothes_religious_buddhist_devoted_01 } boy = male @@ -2662,7 +2668,7 @@ male = { 1 = m_clothes_sec_ep3_byzantine_era2_roy_01 } - + female = { 1 = f_clothes_sec_ep3_byzantine_era2_roy_01 } @@ -2676,7 +2682,7 @@ male = { 1 = m_clothes_sec_ep3_byzantine_era2_imp_01 } - + female = { 1 = f_clothes_sec_ep3_byzantine_era2_imp_01 } @@ -2744,7 +2750,7 @@ } female = { 1 = f_clothes_sec_ep3_byzantine_era1_war_nob_01 - + } boy = male girl = female @@ -2765,7 +2771,7 @@ boy = male girl = female } - + pol_low_nobility_clothes = { index = 132 male = { @@ -2779,7 +2785,7 @@ boy = male girl = female } - + pol_high_nobility_clothes = { index = 133 male = { @@ -2889,7 +2895,7 @@ 1 = f_clothes_sec_northern_war_nob_01_hi } boy = male - girl = female + girl = female } ### CCP4 Khanty ###------------------------------------------------------------------------------- @@ -2923,7 +2929,7 @@ boy = male girl = female } - + ccp4_khanty_high_nobility_clothes = { index = 143 male = { @@ -2938,7 +2944,7 @@ girl = female } - + ccp4_khanty_war_nobility_clothes = { index = 144 male = { @@ -2952,7 +2958,7 @@ 1 = f_clothes_sec_ccp4_khanty_war_hi_nob_01 } boy = male - girl = female + girl = female } ccp4_khanty_children_commoner_clothes = { @@ -2964,11 +2970,11 @@ 1 = f_clothes_sec_ccp4_khanty_lo_nob_01 } boy = male - girl = female + girl = female } ### MPO - Khans of the Steppe ### - + mpo_mongol_commoner_clothes = { index = 146 @@ -2980,7 +2986,7 @@ 1 = f_clothes_sec_mpo_mongol_com_01 } boy = male - girl = female + girl = female } mpo_mongol_low_nobility_clothes = { @@ -2993,7 +2999,7 @@ 1 = f_clothes_sec_mpo_mongol_nob_01_lo } boy = male - girl = female + girl = female } mpo_mongol_high_nobility_clothes = { @@ -3044,7 +3050,7 @@ } boy = male girl = female - } + } ### TGP - Asia ### @@ -3088,7 +3094,7 @@ girl = female } - tgp_chinese_high_nobility_clothes = { + tgp_chinese_high_nobility_clothes = { index = 155 male = { 1 = m_clothes_sec_tgp_chinese_nob_01 @@ -3150,7 +3156,7 @@ boy = male girl = female } - + tgp_japanese_nobility_clothes = { index = 160 male = { @@ -3264,7 +3270,7 @@ } female = { 1 = f_clothes_rel_tgp_shinto_priest - } + } boy = male girl = female } @@ -3403,27 +3409,27 @@ 1 = m_clothes_sec_tgp_chinese_nob_01_m1 1 = m_clothes_sec_tgp_chinese_roy_01_m1 1 = m_clothes_sec_tgp_chinese_nob_02_m1 - + 1 = m_clothes_sec_tgp_chinese_nob_01_m2 1 = m_clothes_sec_tgp_chinese_roy_01_m2 1 = m_clothes_sec_tgp_chinese_nob_02_m2 - + 1 = m_clothes_sec_tgp_chinese_nob_01_m3 1 = m_clothes_sec_tgp_chinese_roy_01_m3 1 = m_clothes_sec_tgp_chinese_nob_02_m3 - + 1 = m_clothes_sec_tgp_chinese_nob_01_m4 1 = m_clothes_sec_tgp_chinese_roy_01_m4 1 = m_clothes_sec_tgp_chinese_nob_02_m4 - + 1 = m_clothes_sec_tgp_chinese_nob_01_m5 1 = m_clothes_sec_tgp_chinese_roy_01_m5 1 = m_clothes_sec_tgp_chinese_nob_02_m5 - + 1 = m_clothes_sec_tgp_chinese_nob_01_m6 1 = m_clothes_sec_tgp_chinese_roy_01_m6 1 = m_clothes_sec_tgp_chinese_nob_02_m6 - + } female = { 1 = f_clothes_sec_tgp_chinese_nob_01 @@ -3484,7 +3490,7 @@ } boy = male girl = female - } + } tgp_ainu_low_nobility_clothes = { index = 182 @@ -3514,7 +3520,7 @@ } boy = male girl = female - } + } ccp5_french_era3_war_commoners_clothes = { index = 184 @@ -3668,7 +3674,7 @@ } boy = male girl = female - } + } ccp7_emishi_war_nob_clothes = { index = 193 @@ -3713,60 +3719,60 @@ ### ccp9 ### - ccp9_lia_nob_01_clothes = { + ccp9_lia_nob_01_clothes = { index = 196 male = { - 1 = m_clothes_ccp9_lia_nob_01 + 1 = m_clothes_ccp9_lia_nob_01 } female = { - 1 = f_clothes_ccp9_lia_nob_01 + 1 = f_clothes_ccp9_lia_nob_01 } - boy = male - girl = female + boy = male + girl = female } - ccp9_dal_nob_01_clothes = { + ccp9_dal_nob_01_clothes = { - index = 197 + index = 197 male = { 1 = m_clothes_ccp9_dal_nob_01 } female = { 1 = f_clothes_sec_tgp_chinese_nob_01 - 1 = f_clothes_sec_tgp_chinese_nob_02 + 1 = f_clothes_sec_tgp_chinese_nob_02 } - boy = male - girl = female + boy = male + girl = female } - ccp9_uyg_nob_01_clothes = { + ccp9_uyg_nob_01_clothes = { - index = 198 + index = 198 male = { 1 = m_clothes_sec_tgp_chinese_nob_02 } female = { 1 = f_clothes_ccp9_uyg_nob_01 } - boy = male - girl = female + boy = male + girl = female } - ccp9_uyg_roy_01_clothes = { + ccp9_uyg_roy_01_clothes = { - index = 199 + index = 199 male = { 1 = m_clothes_sec_tgp_chinese_nob_02 } female = { 1 = f_clothes_ccp9_uyg_roy_01 } - boy = male - girl = female + boy = male + girl = female } - ccp9_tan_nob_01_clothes = { + ccp9_tan_nob_01_clothes = { index = 200 male = { @@ -3775,11 +3781,11 @@ female = { 1 = f_clothes_ccp9_tan_nob_01 } - boy = male - girl = female + boy = male + girl = female } - ccp9_tan_roy_01_clothes = { + ccp9_tan_roy_01_clothes = { index = 201 male = { @@ -3788,11 +3794,11 @@ female = { 1 = f_clothes_ccp9_tan_roy_01 } - boy = male - girl = female + boy = male + girl = female } - ccp9_min_nob_01_clothes = { + ccp9_min_nob_01_clothes = { index = 202 male = { @@ -3801,8 +3807,388 @@ female = { 1 = f_clothes_ccp9_min_nob_01 } - boy = male - girl = female + boy = male + girl = female + } + + ### PAM ### + + pam_benedictine_monks_01 = { + index = 203 + male = { + 1 = m_clothes_rel_pam_benedictine_monk_01_black_a + 1 = m_clothes_rel_pam_benedictine_monk_01_black_b + 1 = m_clothes_rel_pam_benedictine_monk_01_brown_a + 1 = m_clothes_rel_pam_benedictine_monk_01_brown_b + 1 = m_clothes_rel_pam_benedictine_monk_01_gray_a + 1 = m_clothes_rel_pam_benedictine_monk_01_gray_b + 1 = m_clothes_rel_pam_benedictine_monk_01_white_a + 1 = m_clothes_rel_pam_benedictine_monk_01_white_b + } + female = { + 1 = f_clothes_rel_pam_benedictine_monk_01_black_a + 1 = f_clothes_rel_pam_benedictine_monk_01_black_b + 1 = f_clothes_rel_pam_benedictine_monk_01_brown_a + 1 = f_clothes_rel_pam_benedictine_monk_01_brown_b + 1 = f_clothes_rel_pam_benedictine_monk_01_gray_a + 1 = f_clothes_rel_pam_benedictine_monk_01_gray_b + 1 = f_clothes_rel_pam_benedictine_monk_01_white_a + 1 = f_clothes_rel_pam_benedictine_monk_01_white_b + } + boy = male + girl = female + } + + pam_benedictine_monks_02 = { + index = 204 + male = { + 1 = m_clothes_rel_pam_benedictine_monk_02_black_a + 1 = m_clothes_rel_pam_benedictine_monk_02_black_b + 1 = m_clothes_rel_pam_benedictine_monk_02_black_white_a + 1 = m_clothes_rel_pam_benedictine_monk_02_black_white_b + 1 = m_clothes_rel_pam_benedictine_monk_02_brown_a + 1 = m_clothes_rel_pam_benedictine_monk_02_brown_b + 1 = m_clothes_rel_pam_benedictine_monk_02_brown_gray_a + 1 = m_clothes_rel_pam_benedictine_monk_02_brown_gray_b + 1 = m_clothes_rel_pam_benedictine_monk_02_gray_a + 1 = m_clothes_rel_pam_benedictine_monk_02_gray_b + 1 = m_clothes_rel_pam_benedictine_monk_02_white_a + 1 = m_clothes_rel_pam_benedictine_monk_02_white_b + } + female = { + 1 = f_clothes_rel_pam_benedictine_monk_02_black_a + 1 = f_clothes_rel_pam_benedictine_monk_02_black_b + 1 = f_clothes_rel_pam_benedictine_monk_02_black_white_a + 1 = f_clothes_rel_pam_benedictine_monk_02_black_white_b + 1 = f_clothes_rel_pam_benedictine_monk_02_brown_a + 1 = f_clothes_rel_pam_benedictine_monk_02_brown_b + 1 = f_clothes_rel_pam_benedictine_monk_02_brown_gray_a + 1 = f_clothes_rel_pam_benedictine_monk_02_brown_gray_b + 1 = f_clothes_rel_pam_benedictine_monk_02_gray_a + 1 = f_clothes_rel_pam_benedictine_monk_02_gray_b + 1 = f_clothes_rel_pam_benedictine_monk_02_white_a + 1 = f_clothes_rel_pam_benedictine_monk_02_white_b + } + boy = male + girl = female + } + + pam_camaldolese_monks_01 = { + index = 205 + male = { + 1 = m_clothes_rel_pam_camaldolese_monk_01_white_a + 1 = m_clothes_rel_pam_camaldolese_monk_01_white_b + } + female = { + 1 = f_clothes_rel_pam_camaldolese_monk_01_white_a + 1 = f_clothes_rel_pam_camaldolese_monk_01_white_b + } + boy = male + girl = female + } + + religious_catholic_bishop_clothes = { + index = 206 + + male = { + 1 = male_clothes_religious_catholic_high_01 + } + + female = { + 1 = female_clothes_religious_catholic_high_01 + } + + boy = male + girl = female + } + + religious_catholic_archbishop_clothes = { + index = 207 + + male = { + 1 = male_clothes_religious_catholic_high_01 + 3 = male_clothes_religious_dde_catholic_high_01 + } + + female = { + 1 = female_clothes_religious_catholic_high_01 + 3 = female_clothes_religious_dde_catholic_high_01 + } + + boy = male + girl = female + } + + religious_catholic_prince_bishop_clothes = { + index = 208 + + male = { + 3 = male_clothes_religious_catholic_high_01 + 1 = male_clothes_religious_dde_catholic_high_01 + } + + female = { + 3 = female_clothes_religious_catholic_high_01 + 1 = female_clothes_religious_dde_catholic_high_01 + } + + boy = male + girl = female + } + + religious_catholic_cardinal_clothes = { + index = 209 + + male = { + 1 = m_clothes_rel_pam_cardinal + } + + female = { + 1 = f_clothes_rel_pam_cardinal + } + + boy = male + girl = female + } + + pam_benedictine_monks_black = { + index = 210 + male = { + 1 = m_clothes_rel_pam_benedictine_monk_01_black_a + 1 = m_clothes_rel_pam_benedictine_monk_01_black_b + 1 = m_clothes_rel_pam_benedictine_monk_02_black_a + 1 = m_clothes_rel_pam_benedictine_monk_02_black_b + 1 = m_clothes_rel_pam_benedictine_monk_02_black_white_a + 1 = m_clothes_rel_pam_benedictine_monk_02_black_white_b + } + female = { + 1 = f_clothes_rel_pam_benedictine_monk_01_black_a + 1 = f_clothes_rel_pam_benedictine_monk_01_black_b + 1 = f_clothes_rel_pam_benedictine_monk_02_black_a + 1 = f_clothes_rel_pam_benedictine_monk_02_black_b + 1 = f_clothes_rel_pam_benedictine_monk_02_black_white_a + 1 = f_clothes_rel_pam_benedictine_monk_02_black_white_b + } + boy = male + girl = female + } + + pam_benedictine_monks_white = { + index = 211 + male = { + 1 = m_clothes_rel_pam_benedictine_monk_01_white_a + 1 = m_clothes_rel_pam_benedictine_monk_01_white_b + 1 = m_clothes_rel_pam_benedictine_monk_02_white_a + 1 = m_clothes_rel_pam_benedictine_monk_02_white_b + } + female = { + 1 = f_clothes_rel_pam_benedictine_monk_01_white_a + 1 = f_clothes_rel_pam_benedictine_monk_01_white_b + 1 = f_clothes_rel_pam_benedictine_monk_02_white_a + 1 = f_clothes_rel_pam_benedictine_monk_02_white_b + } + boy = male + girl = female + } + + pam_benedictine_monks_gray = { + index = 212 + male = { + 1 = m_clothes_rel_pam_benedictine_monk_01_gray_a + 1 = m_clothes_rel_pam_benedictine_monk_01_gray_b + 1 = m_clothes_rel_pam_benedictine_monk_02_gray_a + 1 = m_clothes_rel_pam_benedictine_monk_02_gray_b + } + female = { + 1 = f_clothes_rel_pam_benedictine_monk_01_gray_a + 1 = f_clothes_rel_pam_benedictine_monk_01_gray_b + 1 = f_clothes_rel_pam_benedictine_monk_02_gray_a + 1 = f_clothes_rel_pam_benedictine_monk_02_gray_b + } + boy = male + girl = female + } + + pam_benedictine_monks_brown = { + index = 213 + male = { + 1 = m_clothes_rel_pam_benedictine_monk_01_brown_a + 1 = m_clothes_rel_pam_benedictine_monk_01_brown_b + 1 = m_clothes_rel_pam_benedictine_monk_02_brown_a + 1 = m_clothes_rel_pam_benedictine_monk_02_brown_b + 1 = m_clothes_rel_pam_benedictine_monk_02_brown_gray_a + 1 = m_clothes_rel_pam_benedictine_monk_02_brown_gray_b + } + female = { + 1 = f_clothes_rel_pam_benedictine_monk_01_brown_a + 1 = f_clothes_rel_pam_benedictine_monk_01_brown_b + 1 = f_clothes_rel_pam_benedictine_monk_02_brown_a + 1 = f_clothes_rel_pam_benedictine_monk_02_brown_b + 1 = f_clothes_rel_pam_benedictine_monk_02_brown_gray_a + 1 = f_clothes_rel_pam_benedictine_monk_02_brown_gray_b + } + boy = male + girl = female + } + + pam_devoted_mixed_clothes = { + index = 214 + male = { + 1 = m_clothes_rel_pam_benedictine_monk_01_black_a + 1 = m_clothes_rel_pam_benedictine_monk_01_black_b + 1 = m_clothes_rel_pam_benedictine_monk_01_brown_a + 1 = m_clothes_rel_pam_benedictine_monk_01_brown_b + 1 = m_clothes_rel_pam_benedictine_monk_01_gray_a + 1 = m_clothes_rel_pam_benedictine_monk_01_gray_b + 1 = m_clothes_rel_pam_benedictine_monk_01_white_a + 1 = m_clothes_rel_pam_benedictine_monk_01_white_b + 1 = m_clothes_rel_pam_benedictine_monk_02_black_a + 1 = m_clothes_rel_pam_benedictine_monk_02_black_b + 1 = m_clothes_rel_pam_benedictine_monk_02_black_white_a + 1 = m_clothes_rel_pam_benedictine_monk_02_black_white_b + 1 = m_clothes_rel_pam_benedictine_monk_02_brown_a + 1 = m_clothes_rel_pam_benedictine_monk_02_brown_b + 1 = m_clothes_rel_pam_benedictine_monk_02_brown_gray_a + 1 = m_clothes_rel_pam_benedictine_monk_02_brown_gray_b + 1 = m_clothes_rel_pam_benedictine_monk_02_gray_a + 1 = m_clothes_rel_pam_benedictine_monk_02_gray_b + 1 = m_clothes_rel_pam_benedictine_monk_02_white_a + 1 = m_clothes_rel_pam_benedictine_monk_02_white_b + 1 = m_clothes_rel_pam_camaldolese_monk_01_white_a + 1 = m_clothes_rel_pam_camaldolese_monk_01_white_b + 1 = male_clothes_religious_catholic_devoted_01_dominican + 1 = male_clothes_religious_catholic_devoted_02_franciscan + 1 = male_clothes_religious_catholic_devoted_02_benedictine + } + female = { + 1 = f_clothes_rel_pam_benedictine_monk_01_black_a + 1 = f_clothes_rel_pam_benedictine_monk_01_black_b + 1 = f_clothes_rel_pam_benedictine_monk_01_brown_a + 1 = f_clothes_rel_pam_benedictine_monk_01_brown_b + 1 = f_clothes_rel_pam_benedictine_monk_01_gray_a + 1 = f_clothes_rel_pam_benedictine_monk_01_gray_b + 1 = f_clothes_rel_pam_benedictine_monk_01_white_a + 1 = f_clothes_rel_pam_benedictine_monk_01_white_b + 1 = f_clothes_rel_pam_benedictine_monk_02_black_a + 1 = f_clothes_rel_pam_benedictine_monk_02_black_b + 1 = f_clothes_rel_pam_benedictine_monk_02_black_white_a + 1 = f_clothes_rel_pam_benedictine_monk_02_black_white_b + 1 = f_clothes_rel_pam_benedictine_monk_02_brown_a + 1 = f_clothes_rel_pam_benedictine_monk_02_brown_b + 1 = f_clothes_rel_pam_benedictine_monk_02_brown_gray_a + 1 = f_clothes_rel_pam_benedictine_monk_02_brown_gray_b + 1 = f_clothes_rel_pam_benedictine_monk_02_gray_a + 1 = f_clothes_rel_pam_benedictine_monk_02_gray_b + 1 = f_clothes_rel_pam_benedictine_monk_02_white_a + 1 = f_clothes_rel_pam_benedictine_monk_02_white_b + 1 = f_clothes_rel_pam_camaldolese_monk_01_white_a + 1 = f_clothes_rel_pam_camaldolese_monk_01_white_b + 1 = female_clothes_religious_catholic_devoted_01_dominican + 1 = female_clothes_religious_catholic_devoted_02_franciscan + 1 = female_clothes_religious_catholic_devoted_02_benedictine + } + boy = male + girl = female + } + + religious_eastern_devoted_clothes = { # No Dominican robe: its black-and-white look is distinctly Latin + index = 215 + male = { + 1 = male_clothes_religious_catholic_devoted_02_franciscan + 1 = male_clothes_religious_catholic_devoted_02_benedictine + } + female = { + 1 = female_clothes_religious_catholic_devoted_02_franciscan + 1 = female_clothes_religious_catholic_devoted_02_benedictine + } + boy = male + girl = female + } + + pam_nestorian_monks = { + index = 216 + male = { + 1 = m_clothes_rel_pam_benedictine_monk_01_gray_a + 1 = m_clothes_rel_pam_benedictine_monk_01_gray_b + 1 = m_clothes_rel_pam_benedictine_monk_01_white_a + 1 = m_clothes_rel_pam_benedictine_monk_01_white_b + 1 = m_clothes_rel_pam_benedictine_monk_02_gray_a + 1 = m_clothes_rel_pam_benedictine_monk_02_gray_b + 1 = m_clothes_rel_pam_benedictine_monk_02_white_a + 1 = m_clothes_rel_pam_benedictine_monk_02_white_b + } + female = { + 1 = f_clothes_rel_pam_benedictine_monk_01_gray_a + 1 = f_clothes_rel_pam_benedictine_monk_01_gray_b + 1 = f_clothes_rel_pam_benedictine_monk_01_white_a + 1 = f_clothes_rel_pam_benedictine_monk_01_white_b + 1 = f_clothes_rel_pam_benedictine_monk_02_gray_a + 1 = f_clothes_rel_pam_benedictine_monk_02_gray_b + 1 = f_clothes_rel_pam_benedictine_monk_02_white_a + 1 = f_clothes_rel_pam_benedictine_monk_02_white_b + } + boy = male + girl = female + } + + pam_catholic_bishop = { # Customization only; the in-game pools are the three below + index = 217 + male = { + 1 = m_clothes_rel_pam_catholic_hi_01 + } + female = { + 1 = f_clothes_rel_pam_catholic_hi_01 + } + boy = male + girl = female + } + + # Built from the same shape as religious_catholic bishop, archbishop, and prince bishop clothes + # Basegame robe is included with the PAM one because they share textures + pam_catholic_clergy_clothes = { + index = 218 + male = { + 1 = male_clothes_religious_catholic_high_01 + 1 = m_clothes_rel_pam_catholic_hi_01 + } + female = { + 1 = female_clothes_religious_catholic_high_01 + 1 = f_clothes_rel_pam_catholic_hi_01 + } + boy = male + girl = female + } + + pam_catholic_archbishop_clothes = { + index = 219 + male = { + 1 = male_clothes_religious_catholic_high_01 + 3 = male_clothes_religious_dde_catholic_high_01 + 1 = m_clothes_rel_pam_catholic_hi_01 + } + female = { + 1 = female_clothes_religious_catholic_high_01 + 3 = female_clothes_religious_dde_catholic_high_01 + 1 = f_clothes_rel_pam_catholic_hi_01 + } + boy = male + girl = female + } + + pam_catholic_prince_bishop_clothes = { + index = 220 + male = { + 3 = male_clothes_religious_catholic_high_01 + 1 = male_clothes_religious_dde_catholic_high_01 + 3 = m_clothes_rel_pam_catholic_hi_01 + } + female = { + 3 = female_clothes_religious_catholic_high_01 + 1 = female_clothes_religious_dde_catholic_high_01 + 3 = f_clothes_rel_pam_catholic_hi_01 + } + boy = male + girl = female } } } diff --git a/common/genes/08_genes_special_visual_traits.txt b/common/genes/08_genes_special_visual_traits.txt index ca8e566c1..c6e6f70df 100644 --- a/common/genes/08_genes_special_visual_traits.txt +++ b/common/genes/08_genes_special_visual_traits.txt @@ -1103,6 +1103,7 @@ special_genes = { index = 0 male = { setting = { attribute = "bs_body_no_left_leg" value = { min = 1.0 max = 1.0 } } + setting = { attribute = "body_no_left_leg" value = { min = 1.0 max = 1.0 } } } female = male boy = male @@ -1318,5 +1319,17 @@ special_genes = { girl = female } } + + character_halo = { + christianity_religion_halo = { + index = 0 + male = { + 1 = pam_christianity_religion_halo + } + female = male + boy = male + girl = female + } + } } } diff --git a/common/governments/_governments.info b/common/governments/_governments.info index e7ea3c952..fdc189dc8 100644 --- a/common/governments/_governments.info +++ b/common/governments/_governments.info @@ -17,11 +17,6 @@ # create_cadet_branches = no - ### brief: religious ( bool ) - # Should rulers be considered clergy - # - religious = no - ### brief: court_generate_spouses ( bool ) # Should new realm get suitable spouses as courtiers # @@ -53,16 +48,6 @@ # legitimacy = yes - ### brief: administrative ( bool ) - # Rule control several admin government mechanics: - # - Top liege can have landless vassal who are house heads of - # noble families. - # - Allow hiring and usage of MaA that belong to a title - # - # Requires the dlc_flag admin_gov - # - administrative = no - ### brief: admin_allows_holding_multiple_primary_tier_titles ( bool ) # Allows administrative rulers to hold multiple primary tier titles # - Only valid with admin government types ( administrative = yes ) @@ -125,10 +110,15 @@ state_faith = no ## brief: treasury ( bool ) - # Uses the Imperial Treasury resource + # Uses the Treasury resource # Default is no treasury = no + ## brief: treasury_vassal_development ( bool ) + # The government sends 'vassal development' treasury to their vassals based on their tax contribution. + # Default is no (only makes sense if used by a government using Treasury) + treasury_vassal_development = no + ## brief: merit ( bool ) # Uses the Merit resource # Default is no @@ -174,7 +164,7 @@ ### brief: inherit_from_dynastic_government ( bool ) # All governments are split in 2 groups - strong dynastic and non-dynastic ones # Rulers from different dynastic governments can freely inherit from other dynastic governments - # Rulers from non-dynastic governemnt can't inherit from a dynastic one + # Rulers from non-dynastic government can't inherit from a dynastic one # Many non-dynastic governments are unplayable, so it prevents game over # Other non-dynastic governments are considered more advanced, and this prevents inferior # dynastic governments from stealing land and non-dynastic vassals via inheritance @@ -210,7 +200,10 @@ # no_capital_movement_cooldown = no - ## TODO_TGP add description + ### brief: redirects_wars_to_overlord ( bool ) + # If yes, wars declared against a ruler with this government are redirected to + # their overlord as the main defender, as long as the overlord can intervene. + # Default is no. # redirects_wars_to_overlord = no @@ -308,11 +301,17 @@ # Will this government disable regnal numbers for titles held by people with the same name # throughout its history? Default is no. disable_regnal_numbers = no + + ### Brief: add_religious_subordinates_for_treasury (bool) + # This government will consider the religious subordinates to be in the distribution group + # for Treasury budgets. + add_religious_subordinates_for_treasury = no } ### mechanic_type ( government type ) - # Specifies to what "family" of government does this government belong. - # Not all governments must specify one. This flag is used in Code for some specific checks + # Specifies to what "family" of governments does this government belong. + # Not all governments must specify one. This flag is used in code and for some specific checks + # Use government_has_mechanic trigger to check mechanic in script # (such as creation of Nomad titles for Nomad rulers). Not set by default. # # Supported values: @@ -320,8 +319,16 @@ # * mercenary # * holy_order # * clan + # # * theocracy + # Should rulers be considered clergy + # # * administrative + # Access to admin government mechanics: + # - Top liege can have landless vassal who are house heads of noble families. + # - Allow hiring and usage of MaA that belong to a title + # Requires the dlc_flag admin_gov + # # * landless_adventurer # * herder # * nomad @@ -443,8 +450,9 @@ # none ( default ) - rulers of this government type can't have royal court, no limit on vassals # any - rulers do have royal court, no limit on vassals # top_liege - only independent rulers can have royal court. Any vassals on any government type can't have royal court + # landed - only landed rulers can have royal court, regardless of being independent or not. # - royal_court = none / any / top_liege + royal_court = none / any / top_liege / landed ### brief: blocked_subject_courts (government_type) # prevents any vassals of the listed types from having their own royal court in tandem with the restrictions from royal_court @@ -663,6 +671,35 @@ # root = the ruler ai_ruler_desired_empire_titles = -1 + ### brief: possible_grant_vassal_governments ( array of government_type keys ) + # List of government types that a ruler with this government can assign to a newly + # landed vassal when granting county-or-higher titles via the Grant Titles interaction. + # Each entry is validated by the 'is_grant_government_valid' scripted rule at selection time. + # + # Default: empty (no government picker shown) + # + possible_grant_vassal_governments = { theocracy_government } + + ### brief: grant_vassal_ai_will_do ( scripted value ) + # Weighted score the AI uses when deciding whether to grant this government type to a + # new vassal. Evaluated once per candidate government type that passes + # is_grant_government_shown; the AI performs a weighted random pick across those entries. + # The default government is not part of the pick: if any entry scores positive, the AI + # grants one of the listed government types. is_grant_government_valid is checked later, + # per candidate recipient, so scores should stay 0 whenever the grant would be invalid. + # A result of 0 (or negative) means the AI will never choose this government type. + # Default: 0 (not chosen by AI) + # + # Supported scopes: + # root: ( Character ) + # The granting ruler (actor) + # scope:title: ( LandedTitle ) + # The highest-tier title being granted + # scope:target_titles: ( list of LandedTitle ) + # All titles being granted in this offer + # + grant_vassal_ai_will_do = { value ... } + ### brief: ai_can_reassign_council_positions (trigger) # Should an AI ruler with this government be allowed to reassign council positions? Default is yes # @@ -682,7 +719,7 @@ } Allowed Modifiers -================= +################# Modifiers referenced by a government object can be only generic (hardcoded) modifiers, or modifiers generated from the following diff --git a/common/important_actions/tgp_actions.txt b/common/important_actions/tgp_actions.txt index ef1900b3e..51d00ab25 100644 --- a/common/important_actions/tgp_actions.txt +++ b/common/important_actions/tgp_actions.txt @@ -61,7 +61,7 @@ action_mandala_tributary_at_risk_of_breakaway = { is_ai = yes subject_can_break_tributary = yes cease_tribute_payments_ai_chance > 10 - NOR = { + NOR = { has_variable = tributary_has_been_reasserted_recently has_opinion_modifier = { modifier = reassertion_request_denied_opinion @@ -76,7 +76,7 @@ action_mandala_tributary_at_risk_of_breakaway = { is_ai = yes subject_can_break_tributary = yes cease_tribute_payments_ai_chance > 10 - NOR = { + NOR = { has_variable = tributary_has_been_reasserted_recently has_opinion_modifier = { modifier = reassertion_request_denied_opinion @@ -422,7 +422,7 @@ action_could_exact_tribute_from = { is_ai = yes #Ignore grace if you insist on reverence trigger_if = { - limit = { + limit = { scope:temp_root_scope = { NOT = { has_realm_law = mandala_decree_reverence } } @@ -455,7 +455,7 @@ action_could_exact_tribute_from = { } AND = { has_eunuch_tribute_trigger = yes - scope:temp_root_scope = { + scope:temp_root_scope = { culture = { has_cultural_parameter = can_appoint_chief_eunuch } } } @@ -481,7 +481,7 @@ action_could_exact_tribute_from = { is_ai = yes #Ignore grace if you insist on reverence trigger_if = { - limit = { + limit = { scope:temp_root_scope = { NOT = { has_realm_law = mandala_decree_reverence } } @@ -514,7 +514,7 @@ action_could_exact_tribute_from = { } AND = { has_eunuch_tribute_trigger = yes - scope:temp_root_scope = { + scope:temp_root_scope = { culture = { has_cultural_parameter = can_appoint_chief_eunuch } } } @@ -584,7 +584,7 @@ action_can_call_tributary = { } } } - + effect = { open_interaction_window = { interaction = call_ally_interaction @@ -653,7 +653,7 @@ action_targeted_by_grand_campaign = { actor = root great_project = scope:great_project defender = scope:defender - } + } } } } @@ -924,7 +924,7 @@ action_can_make_elder_request = { } effect = { open_interaction_window = { - interaction = celestial_request_elders_support_interaction + interaction = celestial_request_elders_support_interaction actor = scope:actor recipient = scope:recipient } @@ -1157,16 +1157,19 @@ action_start_great_project = { # Only non-important ones, Important GPs get thei } } } - + effect = { - open_view_data = decisions + open_view_data = { + view = decisions + data = flag:great_projects + } } } - + action_can_send_to_childrens_examination = { priority = 300 combine_into_one = yes - + check_create_action = { # only for close family members for now, might get too much for big families @@ -1251,7 +1254,7 @@ action_landless_admin_escape_to_realm = { check_create_action = { if = { limit = { - government_allows = administrative + government_allows = noble_families any_held_title = { count = all is_noble_family_title = yes @@ -1316,7 +1319,7 @@ action_minister_can_imprison = { effect = { open_interaction_window = { - interaction = imprison_interaction + interaction = imprison_interaction actor = scope:actor recipient = scope:recipient } @@ -1357,7 +1360,7 @@ action_minister_can_pardon = { effect = { open_interaction_window = { - interaction = pardon_interaction + interaction = pardon_interaction actor = scope:actor recipient = scope:recipient } @@ -1461,7 +1464,7 @@ action_pay_governors_treasury_debt = { effect = { open_interaction_window = { - interaction = pay_treasury_debt_interaction + interaction = pay_treasury_debt_interaction actor = scope:actor recipient = scope:recipient } @@ -1517,7 +1520,7 @@ action_minister_can_pay_treasury_debt = { effect = { open_interaction_window = { - interaction = celestial_request_treasury_interaction + interaction = celestial_request_treasury_interaction actor = scope:actor recipient = scope:recipient } @@ -1552,7 +1555,7 @@ action_can_find_secrets = { ordered_in_list = { list = characters max = 10 - order_by = tier + order_by = highest_held_title_tier if = { limit = { root = { diff --git a/common/men_at_arms_types/_men_at_arms_types.info b/common/men_at_arms_types/_men_at_arms_types.info index cad53fec6..066678bc2 100644 --- a/common/men_at_arms_types/_men_at_arms_types.info +++ b/common/men_at_arms_types/_men_at_arms_types.info @@ -52,9 +52,15 @@ ai_quality = { ... } # Script value in character scope. Used in addition to a quality calculation (based on TOUGHNESS_SCORE_MULT, etc.) to figure out what the AI should buy/disband - fallback_in_hired_troops_if_unlocked = yes # Mercs/holy orders won't have a preference towards this MaA if it is unlocked + fallback_in_hired_troops_if_unlocked = yes # Mercs/Military Orders won't have a preference towards this MaA if it is unlocked mercenary_fallback = no # Mercenary will have a lower priority to use this type - holy_order_fallback = no # Holy order will have a lower priority to use this type + + + # Military Holy Orders may use this MaA type as fallback if they cannot find more interesting MaA types to hire. + # see the section in '_holy_orders.info' for details on priority. Default is no + # + holy_order_fallback = no + allowed_in_hired_troops = yes # MaA type can be used in hired troops max_sub_regiments = -1 # If positive, only one reginemt of this type can be created, and have this maximum size. Unaffected by bonuses to MaA regiment size max_regiments = -1 # If positive, only this number of this type can be created. diff --git a/common/modifier_definition_formats/00_definitions.txt b/common/modifier_definition_formats/00_definitions.txt index 2a9649014..ec75ac7ce 100644 --- a/common/modifier_definition_formats/00_definitions.txt +++ b/common/modifier_definition_formats/00_definitions.txt @@ -401,6 +401,12 @@ treasury_military_budget_allocation = { no_difference_sign = yes } +treasury_cardinal_budget_allocation = { + decimals = 0 + percent = yes + no_difference_sign = yes +} + monthly_treasury_from_ministry_budget_base = { decimals = 0 prefix = MOD_MONTHLY_TREASURY_PREFIX @@ -437,6 +443,18 @@ monthly_treasury_from_military_budget_mult = { percent = yes } +monthly_treasury_from_cardinal_budget_base = { + decimals = 0 + prefix = MOD_MONTHLY_TREASURY_PREFIX + percent = yes +} + +monthly_treasury_from_cardinal_budget_mult = { + decimals = 0 + prefix = MOD_MONTHLY_TREASURY_PREFIX + percent = yes +} + monthly_piety = { decimals = 2 prefix = MOD_MONTHLY_PIETY_PREFIX @@ -449,6 +467,60 @@ monthly_piety_gain_mult = { percent = yes } +piety_standalone_gain_mult = { + decimals = 0 + prefix = MOD_MONTHLY_PIETY_PREFIX + percent = yes +} + +piety_standalone_loss_mult = { + decimals = 0 + prefix = MOD_MONTHLY_PIETY_PREFIX + percent = yes + color = bad +} + +prestige_standalone_gain_mult = { + decimals = 0 + prefix = MOD_MONTHLY_PRESTIGE_PREFIX + percent = yes +} + +prestige_standalone_loss_mult = { + decimals = 0 + prefix = MOD_MONTHLY_PRESTIGE_PREFIX + percent = yes + color = bad +} + +influence_standalone_gain_mult = { + decimals = 0 + prefix = MOD_MONTHLY_INFLUENCE_PREFIX + percent = yes +} + +influence_standalone_loss_mult = { + decimals = 0 + prefix = MOD_MONTHLY_INFLUENCE_PREFIX + percent = yes + color = bad +} + +merit_standalone_gain_mult = { + decimals = 0 + prefix = MOD_MONTHLY_MERIT_PREFIX + percent = yes + dlc_feature = all_under_heaven +} + +merit_standalone_loss_mult = { + decimals = 0 + prefix = MOD_MONTHLY_MERIT_PREFIX + percent = yes + color = bad + dlc_feature = all_under_heaven +} + monthly_piety_gain_per_happy_powerful_vassal_add = { decimals = 1 prefix = MOD_MONTHLY_PIETY_PREFIX @@ -1091,6 +1163,14 @@ different_faith_opinion = { decimals = 0 } +same_rite_opinion = { + decimals = 0 +} + +same_faith_different_rite_opinion = { + decimals = 0 +} + direct_vassal_opinion = { decimals = 0 } @@ -1629,6 +1709,15 @@ hostile_scheme_phase_duration_add = { decimals = 0 } +study_faith_scheme_phase_duration_add = { + prefix = MOD_SPEED_PREFIX + suffix = MOD_DAYS_PER_SCHEME_PHASE_SUFFIX_POSITIVE + negative_suffix = MOD_DAYS_PER_SCHEME_PHASE_SUFFIX_NEGATIVE + no_difference_sign = yes + color = bad + decimals = 0 +} + contract_scheme_phase_duration_add = { prefix = MOD_SPEED_PREFIX suffix = MOD_DAYS_PER_SCHEME_PHASE_SUFFIX_POSITIVE @@ -2638,6 +2727,14 @@ different_faith_county_opinion_mult_even_if_baron = { percent = yes } +same_rite_county_opinion_add = { + decimals = 0 +} + +same_faith_different_rite_county_opinion_add = { + decimals = 0 +} + mercenary_count_mult = { decimals = 0 percent = yes @@ -2678,12 +2775,12 @@ faith_conversion_piety_cost_mult = { percent = yes } -faith_creation_piety_cost_add = { +rite_creation_piety_cost_add = { color = bad prefix = MOD_PIETY_PREFIX } -faith_creation_piety_cost_mult = { +rite_creation_piety_cost_mult = { decimals = 0 color = bad prefix = MOD_PIETY_PREFIX @@ -2889,6 +2986,10 @@ confucian_education_xp_gain_mult = { decimals = 0 percent = yes } +trait_track_lifestyle_blademaster_xp_gain_mult = { + decimals = 0 + percent = yes +} trait_track_lifestyle_poet_xp_gain_mult = { decimals = 0 percent = yes @@ -2983,6 +3084,11 @@ trait_track_wit_xp_gain_mult = { decimals = 0 percent = yes } +trait_track_withering_mind_xp_gain_mult = { + decimals = 1 + percent = yes + color = bad +} hostage_prestige_mult = { decimals = 0 @@ -3092,6 +3198,11 @@ lifestyle_mystic_xp_gain_mult = { percent = yes } +lifestyle_scholar_xp_gain_mult = { + decimals = 0 + percent = yes +} + charioteer_green_xp_gain_mult = { decimals = 0 percent = yes @@ -3732,3 +3843,27 @@ terraced_hills_fertility_decline_mult = { color = bad dlc_feature = khans_of_the_steppe } + +character_starting_spiritual_fulfillment_add = { + decimals = 1 + color = good +} + +character_spiritual_fulfillment_gain_mult = { + decimals = 0 + prefix = MOD_SPIRITUAL_FULFILLMENT_PREFIX + percent = yes + color = good +} +character_spiritual_fulfillment_loss_mult = { + decimals = 0 + prefix = MOD_SPIRITUAL_FULFILLMENT_PREFIX + percent = yes + color = bad +} + +personal_tenet_slot_add = { + decimals = 0 + percent = no + color = good +} diff --git a/common/schemes/scheme_types/learn_language_scheme.txt b/common/schemes/scheme_types/learn_language_scheme.txt index 7b9315251..8c554f658 100644 --- a/common/schemes/scheme_types/learn_language_scheme.txt +++ b/common/schemes/scheme_types/learn_language_scheme.txt @@ -120,6 +120,16 @@ exists = scope:owner.cp:councillor_court_chaplain scope:owner.cp:councillor_court_chaplain.learning > 0 } + + # PAM - Communal Identity + modifier = { + add = 20 + desc = LEARN_LANGUAGE_COMMUNAL_IDENTITY_MODIFIER + scope:owner = { + has_personal_tenet_flag = tenet_communal_identity_language_devotion + rite ?= scope:target.rite + } + } modifier = { add = { diff --git a/common/scripted_character_templates/00_court_character_templates.txt b/common/scripted_character_templates/00_court_character_templates.txt index e3942ede8..46bf5eceb 100644 --- a/common/scripted_character_templates/00_court_character_templates.txt +++ b/common/scripted_character_templates/00_court_character_templates.txt @@ -59,7 +59,7 @@ bernard_of_clairvaux_character = { age = { 20 63 } dynasty = none gender = male - trait = saint + trait = herald trait = ambitious trait = chaste trait = zealous @@ -72,6 +72,7 @@ head_chasing_monk_character = { dynasty = none gender_female_chance = root_faith_clergy_gender_female_chance faith = root.faith + rite = root.rite culture = root.culture random_traits_list = { @@ -141,6 +142,7 @@ random_learned_eunuch_character = { random_traits = yes dynasty = none faith = root.faith + rite = root.rite culture = root.culture gender_female_chance = 0 trait = beardless_eunuch @@ -216,6 +218,7 @@ random_barrel_character = { # Lowborn from the local populace dynasty = none faith = root.capital_province.faith + rite = root.capital_province.rite culture = root.capital_province.culture # Some chance of non-dominant gender, but small @@ -275,6 +278,7 @@ beautiful_maiden_character = { dynasty = none culture = this.culture faith = this.faith + rite = this.rite gender_female_chance = 100 @@ -353,6 +357,7 @@ beautiful_man_character = { dynasty = none culture = this.culture faith = this.faith + rite = this.rite gender_female_chance = 0 diff --git a/common/scripted_character_templates/00_hold_court_character_templates.txt b/common/scripted_character_templates/00_hold_court_character_templates.txt index dca708a73..9fc9f728b 100644 --- a/common/scripted_character_templates/00_hold_court_character_templates.txt +++ b/common/scripted_character_templates/00_hold_court_character_templates.txt @@ -3,6 +3,7 @@ demanding_poet_character = { age = { 20 30 } dynasty = none faith = root.faith + rite = root.rite culture = root.culture trait = education_learning_2 trait = arrogant @@ -22,6 +23,7 @@ demanding_poet_lover_character = { age = { 20 30 } dynasty = none faith = root.faith + rite = root.rite culture = root.culture trait = beauty_good_2 trait = arrogant @@ -41,6 +43,7 @@ demanding_poet_diplomacy_character = { age = { 20 30 } dynasty = none faith = root.faith + rite = root.rite culture = root.culture trait = beauty_good_2 trait = arrogant @@ -73,6 +76,7 @@ demanding_poet_stewardship_character = { age = { 20 30 } dynasty = none faith = root.faith + rite = root.rite culture = root.culture trait = beauty_good_2 trait = arrogant @@ -93,6 +97,7 @@ demanding_poet_martial_character = { age = { 20 30 } dynasty = none faith = root.faith + rite = root.rite culture = root.culture trait = beauty_good_2 trait = arrogant @@ -125,6 +130,7 @@ demanding_poet_intrigue_character = { age = { 20 30 } dynasty = none faith = root.faith + rite = root.rite culture = root.culture trait = beauty_good_2 trait = arrogant @@ -144,6 +150,7 @@ demanding_poet_learning_character = { age = { 20 30 } dynasty = none faith = root.faith + rite = root.rite culture = root.culture trait = beauty_good_2 trait = arrogant @@ -164,6 +171,7 @@ suspicious_genealogist_character = { age = { 70 80 } dynasty = none faith = root.faith + rite = root.rite culture = root.culture trait = education_intrigue_2 gender_female_chance = root_soldier_female_chance @@ -185,6 +193,7 @@ alluring_suitor_character = { } random_traits = yes faith = ROOT.faith + rite = ROOT.rite culture = ROOT.culture diplomacy = { min_template_decent_skill @@ -264,6 +273,7 @@ good_merchant_template = { dynasty = none random_traits = yes faith = this.faith + rite = this.rite culture = this.culture gender_female_chance = root_faith_dominant_gender_adjusted_female_chance stewardship = { @@ -373,7 +383,7 @@ learning_court_position_holder_template = { } random_traits_list = { count = 1 - scholar = { weight = { base = 20 } } + erudite = { weight = { base = 20 } } theologian = { weight = { base = 20 } } lifestyle_mystic = { weight = { base = 20 } } lifestyle_herbalist = { weight = { base = 20 } } diff --git a/common/scripted_character_templates/00_holy_order_character_templates.txt b/common/scripted_character_templates/00_holy_order_character_templates.txt index 6e1fe8dfe..5e70b8b47 100644 --- a/common/scripted_character_templates/00_holy_order_character_templates.txt +++ b/common/scripted_character_templates/00_holy_order_character_templates.txt @@ -103,6 +103,7 @@ } } faith = root.faith + rite = root.rite culture = root.culture gender_female_chance = root_faith_clergy_gender_female_chance martial = { @@ -159,151 +160,187 @@ religious_leader_character = { count = 2 lustful = { trigger = { - root.faith = { trait_is_virtue = lustful } + root.rite = { trait_is_virtue_rite = lustful } } } chaste = { trigger = { - root.faith = { trait_is_virtue = chaste } + root.rite = { trait_is_virtue_rite = chaste } } } gluttonous = { trigger = { - root.faith = { trait_is_virtue = gluttonous } + root.rite = { trait_is_virtue_rite = gluttonous } } } temperate = { trigger = { - root.faith = { trait_is_virtue = temperate } + root.rite = { trait_is_virtue_rite = temperate } } } greedy = { trigger = { - root.faith = { trait_is_virtue = greedy } + root.rite = { trait_is_virtue_rite = greedy } } } generous = { trigger = { - root.faith = { trait_is_virtue = generous } + root.rite = { trait_is_virtue_rite = generous } } } wrathful = { trigger = { - root.faith = { trait_is_virtue = wrathful } + root.rite = { trait_is_virtue_rite = wrathful } } } calm = { trigger = { - root.faith = { trait_is_virtue = calm } + root.rite = { trait_is_virtue_rite = calm } } } patient = { trigger = { - root.faith = { trait_is_virtue = patient } + root.rite = { trait_is_virtue_rite = patient } } } impatient = { trigger = { - root.faith = { trait_is_virtue = impatient } + root.rite = { trait_is_virtue_rite = impatient } } } arrogant = { trigger = { - root.faith = { trait_is_virtue = arrogant } + root.rite = { trait_is_virtue_rite = arrogant } } } humble = { trigger = { - root.faith = { trait_is_virtue = humble } + root.rite = { trait_is_virtue_rite = humble } } } deceitful = { trigger = { - root.faith = { trait_is_virtue = deceitful } + root.rite = { trait_is_virtue_rite = deceitful } } } honest = { trigger = { - root.faith = { trait_is_virtue = honest } + root.rite = { trait_is_virtue_rite = honest } } } craven = { trigger = { - root.faith = { trait_is_virtue = craven } + root.rite = { trait_is_virtue_rite = craven } } } brave = { trigger = { - root.faith = { trait_is_virtue = brave } + root.rite = { trait_is_virtue_rite = brave } } } ambitious = { trigger = { - root.faith = { trait_is_virtue = ambitious } + root.rite = { trait_is_virtue_rite = ambitious } } } content = { trigger = { - root.faith = { trait_is_virtue = content } + root.rite = { trait_is_virtue_rite = content } } } arbitrary = { trigger = { - root.faith = { trait_is_virtue = arbitrary } + root.rite = { trait_is_virtue_rite = arbitrary } } } just = { trigger = { - root.faith = { trait_is_virtue = just } + root.rite = { trait_is_virtue_rite = just } } } paranoid = { trigger = { - root.faith = { trait_is_virtue = paranoid } + root.rite = { trait_is_virtue_rite = paranoid } } } trusting = { trigger = { - root.faith = { trait_is_virtue = trusting } + root.rite = { trait_is_virtue_rite = trusting } } } compassionate = { trigger = { - root.faith = { trait_is_virtue = compassionate } + root.rite = { trait_is_virtue_rite = compassionate } } } callous = { trigger = { - root.faith = { trait_is_virtue = callous } + root.rite = { trait_is_virtue_rite = callous } } } sadistic = { trigger = { - root.faith = { trait_is_virtue = sadistic } + root.rite = { trait_is_virtue_rite = sadistic } } } stubborn = { trigger = { - root.faith = { trait_is_virtue = stubborn } + root.rite = { trait_is_virtue_rite = stubborn } } } fickle = { trigger = { - root.faith = { trait_is_virtue = fickle } + root.rite = { trait_is_virtue_rite = fickle } } } vengeful = { trigger = { - root.faith = { trait_is_virtue = vengeful } + root.rite = { trait_is_virtue_rite = vengeful } } } forgiving = { trigger = { - root.faith = { trait_is_virtue = forgiving } + root.rite = { trait_is_virtue_rite = forgiving } + } + } + diligent = { + trigger = { + root.rite = { trait_is_virtue_rite = diligent } + } + } + lazy = { + trigger = { + root.rite = { trait_is_virtue_rite = lazy } + } + } + zealous = { + trigger = { + root.rite = { trait_is_virtue_rite = zealous } + } + } + cynical = { + trigger = { + root.rite = { trait_is_virtue_rite = cynical } + } + } + gregarious = { + trigger = { + root.rite = { trait_is_virtue_rite = gregarious } + } + } + shy = { + trigger = { + root.rite = { trait_is_virtue_rite = shy } + } + } + eccentric = { + trigger = { + root.rite = { trait_is_virtue_rite = eccentric } } } } faith = root.faith + rite = root.rite culture = root.culture gender_female_chance = root_faith_clergy_gender_female_chance martial = { @@ -315,3 +352,111 @@ religious_leader_character = { max_template_high_skill } } + +monastic_order_leader_character = { + age = { 25 55 } + trait = devoted + #Education + random_traits_list = { + count = 1 + education_learning_1 = { + weight = { base = 10 } + } + education_learning_2 = { + weight = { base = 20 } + } + education_learning_3 = { + weight = { base = 40 } + } + education_learning_4 = { + weight = { base = 20 } + } + education_learning_5 = { + weight = { base = 10 } + } + education_stewardship_1 = { + weight = { base = 5 } + } + education_stewardship_2 = { + weight = { base = 10 } + } + education_stewardship_3 = { + weight = { base = 20 } + } + education_stewardship_4 = { + weight = { base = 10 } + } + education_stewardship_5 = { + weight = { base = 5 } + } + } + #Personality + random_traits_list = { + count = 3 + ambitious = {} + arrogant = {} + just = {} + chaste = {} + temperate = {} + diligent = {} + calm = {} + patient = {} + humble = {} + content = {} + zealous = {} + trusting = {} + eccentric = {} + } + random_traits_list = { + count = { 0 2 } + shrewd = { + weight = { base = 5 } + } + lifestyle_physician = { + weight = { base = 5 } + } + pilgrim = { + weight = { base = 10 } + } + lifestyle_mystic = { + weight = { base = 10 } + } + lifestyle_gardener = { + weight = { base = 5 } + } + administrator = { + weight = { base = 10 } + } + erudite = { + weight = { base = 10 } + } + theologian = { + weight = { base = 10 } + } + lifestyle_herbalist = { + weight = { base = 5 } + } + journaller = { + weight = { base = 5 } + } + } + faith = scope:founder.faith + rite = scope:founder.rite + culture = scope:founder.culture + gender_female_chance = root_faith_clergy_gender_female_chance + stewardship = { + min_template_decent_skill + max_template_high_skill + } + learning = { + min_template_decent_skill + max_template_high_skill + } + after_creation = { + set_interesting_traits_and_modifiers_effect = yes + add_trait_xp = { + trait = devoted + value = { 0 70 } + } + } +} diff --git a/common/scripted_character_templates/00_knight_templates.txt b/common/scripted_character_templates/00_knight_templates.txt index 39d8b5080..c2843ad7e 100644 --- a/common/scripted_character_templates/00_knight_templates.txt +++ b/common/scripted_character_templates/00_knight_templates.txt @@ -4,6 +4,7 @@ random_traits = no culture = root.location.culture faith = root.location.faith + rite = root.location.rite random_traits_list = { count = 1 education_martial_2 = {} @@ -48,6 +49,7 @@ knight = { random_traits = yes culture = root.culture faith = root.faith + rite = root.rite random_traits_list = { count = 1 education_martial_2 = {} @@ -123,6 +125,7 @@ wandering_knight_character = { } random_traits = no faith = root.faith + rite = root.rite culture = root.culture martial = { min_template_low_skill diff --git a/common/scripted_character_templates/00_scholar_template.txt b/common/scripted_character_templates/00_scholar_template.txt index f690b1513..cbf25b7e3 100644 --- a/common/scripted_character_templates/00_scholar_template.txt +++ b/common/scripted_character_templates/00_scholar_template.txt @@ -20,6 +20,7 @@ scholar_character = { trait = loyal random_traits = yes faith = root.faith + rite = root.rite culture = root.culture gender_female_chance = root_faith_dominant_gender_adjusted_female_chance learning = { @@ -42,10 +43,11 @@ writer_character = { random_traits_list = { count = 1 devoted = {} - scholar = {} + erudite = {} } random_traits = yes faith = root.faith + rite = root.rite culture = root.culture gender_female_chance = root_faith_dominant_gender_adjusted_female_chance martial = { @@ -70,6 +72,7 @@ capital_scholar_character = { } random_traits = yes faith = capital_county.faith + rite = capital_county.rite culture = capital_county.culture gender_female_chance = root_faith_dominant_gender_adjusted_female_chance learning = { @@ -92,10 +95,11 @@ capital_writer_character = { random_traits_list = { count = 1 devoted = {} - scholar = {} + erudite = {} } random_traits = yes faith = capital_county.faith + rite = capital_county.rite culture = capital_county.culture gender_female_chance = root_faith_dominant_gender_adjusted_female_chance martial = { diff --git a/common/scripted_character_templates/01_bp1_character_templates.txt b/common/scripted_character_templates/01_bp1_character_templates.txt index 440bd6d94..8b251a749 100644 --- a/common/scripted_character_templates/01_bp1_character_templates.txt +++ b/common/scripted_character_templates/01_bp1_character_templates.txt @@ -6,6 +6,7 @@ bp1_doppelganger_template = { #General age = root.age faith = root.capital_province.faith + rite = root.capital_province.rite culture = root.culture # Ensure they have the same ethnicity as root dynasty = none #Misc @@ -81,6 +82,7 @@ bp1_bisexual_partner_template = { #General age = { 20 35 } faith = root.faith + rite = root.rite culture = root.culture dynasty = none #Misc diff --git a/common/scripted_character_templates/01_bp1_filippa_character_templates.txt b/common/scripted_character_templates/01_bp1_filippa_character_templates.txt index 41da60fe9..948c8978d 100644 --- a/common/scripted_character_templates/01_bp1_filippa_character_templates.txt +++ b/common/scripted_character_templates/01_bp1_filippa_character_templates.txt @@ -36,6 +36,7 @@ bp1_yearly_2021_martial_person_template = { learning = { 2 4 } martial = { 14 17 } faith = root.faith + rite = root.rite culture = root.culture gender_female_chance = root_soldier_female_chance after_creation = { @@ -93,6 +94,7 @@ bp1_yearly_2021_learning_witch_template = { learning = { 15 17 } martial = { 3 6 } faith = root.faith + rite = root.rite culture = root.culture gender_female_chance = 50 after_creation = { @@ -135,7 +137,7 @@ bp1_yearly_2021_learning_person_template = { random_traits_list = { count = 1 whole_of_body = {} - scholar = {} + erudite = {} theologian = {} } random_traits_list = { @@ -157,6 +159,7 @@ bp1_yearly_2021_learning_person_template = { learning = { 15 17 } martial = { 3 6 } faith = root.faith + rite = root.rite culture = root.culture gender_female_chance = 50 after_creation = { @@ -210,6 +213,7 @@ bp1_yearly_2021_stewardship_person_template = { learning = { 4 7 } martial = { 3 6 } faith = root.faith + rite = root.rite culture = root.culture gender_female_chance = 50 } @@ -246,6 +250,7 @@ bp1_yearly_2021_diplomacy_person_template = { learning = { 4 7 } martial = { 3 6 } faith = root.faith + rite = root.rite culture = root.culture gender_female_chance = 50 after_creation = { @@ -289,6 +294,7 @@ bp1_yearly_2021_intrigue_person_template = { learning = { 4 7 } martial = { 3 6 } faith = root.faith + rite = root.rite culture = root.culture gender_female_chance = 50 } diff --git a/common/scripted_character_templates/01_bp2_character_templates.txt b/common/scripted_character_templates/01_bp2_character_templates.txt index 885a012e5..01014fc79 100644 --- a/common/scripted_character_templates/01_bp2_character_templates.txt +++ b/common/scripted_character_templates/01_bp2_character_templates.txt @@ -6,6 +6,7 @@ bp2_imaginary_friend_template = { #General age = root.age faith = root.faith + rite = root.rite culture = root.culture # Ensure they have the same ethnicity as root dynasty = none diff --git a/common/scripted_character_templates/01_tgp_japan_character_templates.txt b/common/scripted_character_templates/01_tgp_japan_character_templates.txt index c26a87f89..7c7584bb9 100644 --- a/common/scripted_character_templates/01_tgp_japan_character_templates.txt +++ b/common/scripted_character_templates/01_tgp_japan_character_templates.txt @@ -29,19 +29,20 @@ tgp_japan_yearly_events_pearl_diver_template = { intrigue = { 2 5 } learning = { 8 12 } faith = root.location.faith + rite = root.location.rite culture = root.location.culture #Majority of the divers were female gender_female_chance = { if = { limit = { - root.location.faith = { has_doctrine = doctrine_gender_male_dominated } + root.location.rite = { rite_has_doctrine = doctrine_gender_male_dominated } } add = 90 } else_if = { limit = { - root.location.faith = { has_doctrine = doctrine_gender_female_dominated } + root.location.rite = { rite_has_doctrine = doctrine_gender_female_dominated } } add = 10 } @@ -64,7 +65,7 @@ tgp_japan_yearly_events_tengu_warrior_template = { random_traits_list = { count = 2 brave = {} - calm {} + calm = {} content = {} diligent = {} just = {} @@ -144,5 +145,6 @@ tgp_japan_yearly_events_tengu_warrior_template = { max_template_high_skill } faith = root.location.faith + rite = root.location.rite culture = root.location.culture } diff --git a/common/scripted_character_templates/03_fp2_character_templates.txt b/common/scripted_character_templates/03_fp2_character_templates.txt index 6bb0fefe1..ae0f7f669 100644 --- a/common/scripted_character_templates/03_fp2_character_templates.txt +++ b/common/scripted_character_templates/03_fp2_character_templates.txt @@ -25,7 +25,7 @@ celebration_scholar_character = { random_traits_list = { count = { 0 1 } theologian = {} - scholar = {} + erudite = {} } random_traits_list = { @@ -270,152 +270,188 @@ celebration_priest_character = { count = 3 lustful = { trigger = { - root.faith = { trait_is_virtue = lustful } + root.rite = { trait_is_virtue_rite = lustful } } } chaste = { trigger = { - root.faith = { trait_is_virtue = chaste } + root.rite = { trait_is_virtue_rite = chaste } } } gluttonous = { trigger = { - root.faith = { trait_is_virtue = gluttonous } + root.rite = { trait_is_virtue_rite = gluttonous } } } temperate = { trigger = { - root.faith = { trait_is_virtue = temperate } + root.rite = { trait_is_virtue_rite = temperate } } } greedy = { trigger = { - root.faith = { trait_is_virtue = greedy } + root.rite = { trait_is_virtue_rite = greedy } } } generous = { trigger = { - root.faith = { trait_is_virtue = generous } + root.rite = { trait_is_virtue_rite = generous } } } wrathful = { trigger = { - root.faith = { trait_is_virtue = wrathful } + root.rite = { trait_is_virtue_rite = wrathful } } } calm = { trigger = { - root.faith = { trait_is_virtue = calm } + root.rite = { trait_is_virtue_rite = calm } } } patient = { trigger = { - root.faith = { trait_is_virtue = patient } + root.rite = { trait_is_virtue_rite = patient } } } impatient = { trigger = { - root.faith = { trait_is_virtue = impatient } + root.rite = { trait_is_virtue_rite = impatient } } } arrogant = { trigger = { - root.faith = { trait_is_virtue = arrogant } + root.rite = { trait_is_virtue_rite = arrogant } } } humble = { trigger = { - root.faith = { trait_is_virtue = humble } + root.rite = { trait_is_virtue_rite = humble } } } deceitful = { trigger = { - root.faith = { trait_is_virtue = deceitful } + root.rite = { trait_is_virtue_rite = deceitful } } } honest = { trigger = { - root.faith = { trait_is_virtue = honest } + root.rite = { trait_is_virtue_rite = honest } } } craven = { trigger = { - root.faith = { trait_is_virtue = craven } + root.rite = { trait_is_virtue_rite = craven } } } brave = { trigger = { - root.faith = { trait_is_virtue = brave } + root.rite = { trait_is_virtue_rite = brave } } } ambitious = { trigger = { - root.faith = { trait_is_virtue = ambitious } + root.rite = { trait_is_virtue_rite = ambitious } } } content = { trigger = { - root.faith = { trait_is_virtue = content } + root.rite = { trait_is_virtue_rite = content } } } arbitrary = { trigger = { - root.faith = { trait_is_virtue = arbitrary } + root.rite = { trait_is_virtue_rite = arbitrary } } } just = { trigger = { - root.faith = { trait_is_virtue = just } + root.rite = { trait_is_virtue_rite = just } } } paranoid = { trigger = { - root.faith = { trait_is_virtue = paranoid } + root.rite = { trait_is_virtue_rite = paranoid } } } trusting = { trigger = { - root.faith = { trait_is_virtue = trusting } + root.rite = { trait_is_virtue_rite = trusting } } } compassionate = { trigger = { - root.faith = { trait_is_virtue = compassionate } + root.rite = { trait_is_virtue_rite = compassionate } } } callous = { trigger = { - root.faith = { trait_is_virtue = callous } + root.rite = { trait_is_virtue_rite = callous } } } sadistic = { trigger = { - root.faith = { trait_is_virtue = sadistic } + root.rite = { trait_is_virtue_rite = sadistic } } } stubborn = { trigger = { - root.faith = { trait_is_virtue = stubborn } + root.rite = { trait_is_virtue_rite = stubborn } } } fickle = { trigger = { - root.faith = { trait_is_virtue = fickle } + root.rite = { trait_is_virtue_rite = fickle } } } vengeful = { trigger = { - root.faith = { trait_is_virtue = vengeful } + root.rite = { trait_is_virtue_rite = vengeful } } } forgiving = { trigger = { - root.faith = { trait_is_virtue = forgiving } + root.rite = { trait_is_virtue_rite = forgiving } + } + } + diligent = { + trigger = { + root.rite = { trait_is_virtue_rite = diligent } + } + } + lazy = { + trigger = { + root.rite = { trait_is_virtue_rite = lazy } + } + } + zealous = { + trigger = { + root.rite = { trait_is_virtue_rite = zealous } + } + } + cynical = { + trigger = { + root.rite = { trait_is_virtue_rite = cynical } + } + } + gregarious = { + trigger = { + root.rite = { trait_is_virtue_rite = gregarious } + } + } + shy = { + trigger = { + root.rite = { trait_is_virtue_rite = shy } + } + } + eccentric = { + trigger = { + root.rite = { trait_is_virtue_rite = eccentric } } } } faith = root.faith # use the root faith in this case as it's a Priest + rite = root.rite culture = scope:guest_culture gender_female_chance = root_faith_clergy_gender_female_chance learning = { @@ -600,6 +636,7 @@ toledan_night_character = { } faith = root.faith + rite = root.rite culture = root.culture gender_female_chance = root_faith_dominant_gender_adjusted_female_chance diff --git a/common/scripted_character_templates/05_bp2_character_templates.txt b/common/scripted_character_templates/05_bp2_character_templates.txt index 5ea2343c5..71de57ef6 100644 --- a/common/scripted_character_templates/05_bp2_character_templates.txt +++ b/common/scripted_character_templates/05_bp2_character_templates.txt @@ -5,6 +5,7 @@ bp2_wet_nurse_template = { culture = root.culture faith = root.faith + rite = root.rite gender = female age = { 25 35 } dynasty = none @@ -57,14 +58,15 @@ adult_education_teacher = { } random_traits = yes faith = scope:activity.activity_location.faith + rite = scope:activity.activity_location.rite culture = scope:activity.activity_location.culture gender_female_chance = { if = { - limit = { scope:host.faith = { has_doctrine = doctrine_gender_male_dominated } } + limit = { scope:host.rite = { rite_has_doctrine = doctrine_gender_male_dominated } } add = 0 } else_if = { - limit = { scope:host.faith = { has_doctrine = doctrine_gender_female_dominated } } + limit = { scope:host.rite = { rite_has_doctrine = doctrine_gender_female_dominated } } add = 100 } else = { @@ -125,14 +127,15 @@ adult_education_student = { dynasty = none random_traits = yes faith = scope:activity.activity_location.faith + rite = scope:activity.activity_location.rite culture = scope:activity.activity_location.culture gender_female_chance = { if = { - limit = { scope:host.faith = { has_doctrine = doctrine_gender_male_dominated } } + limit = { scope:host.rite = { rite_has_doctrine = doctrine_gender_male_dominated } } add = 0 } else_if = { - limit = { scope:host.faith = { has_doctrine = doctrine_gender_female_dominated } } + limit = { scope:host.rite = { rite_has_doctrine = doctrine_gender_female_dominated } } add = 100 } else = { @@ -153,6 +156,7 @@ foreign_architect_template = { random_traits = yes dynasty = none faith = root.faith + rite = root.rite culture = root.culture gender_female_chance = root_faith_dominant_gender_female_chance learning = { @@ -307,6 +311,7 @@ foreign_cleric_template = { random_traits = yes dynasty = none faith = root.faith + rite = root.rite culture = root.culture learning = { min_template_decent_skill @@ -342,6 +347,7 @@ foreign_scholar_template = { random_traits = yes dynasty = none faith = root.faith + rite = root.rite culture = root.culture learning = { min_template_decent_skill @@ -349,7 +355,7 @@ foreign_scholar_template = { } after_creation = { - add_trait = scholar + add_trait = erudite set_interesting_traits_and_modifiers_effect = yes set_nickname_effect = { NICKNAME = nick_the_scholar } } @@ -405,6 +411,7 @@ foreign_official_template = { } faith = root.faith + rite = root.rite culture = root.culture diplomacy = { min_template_average_skill diff --git a/common/scripted_character_templates/05_ce1_character_templates.txt b/common/scripted_character_templates/05_ce1_character_templates.txt index fa99de32c..1e324976b 100644 --- a/common/scripted_character_templates/05_ce1_character_templates.txt +++ b/common/scripted_character_templates/05_ce1_character_templates.txt @@ -7,6 +7,7 @@ ce1_hooded_figure_template = { age = { 18 50 } culture = root.location.culture faith = root.location.faith + rite = root.location.rite dynasty = none #Education random_traits_list = { diff --git a/common/scripted_character_templates/06_ce1_character_templates.txt b/common/scripted_character_templates/06_ce1_character_templates.txt index 29ffd194e..b1e2fb166 100644 --- a/common/scripted_character_templates/06_ce1_character_templates.txt +++ b/common/scripted_character_templates/06_ce1_character_templates.txt @@ -29,6 +29,7 @@ dynasty = none faith = root.faith + rite = root.rite culture = root.culture diplomacy = { min_template_decent_skill diff --git a/common/scripted_character_templates/07_ep3_character_templates.txt b/common/scripted_character_templates/07_ep3_character_templates.txt index f3d10e469..7f09e673c 100644 --- a/common/scripted_character_templates/07_ep3_character_templates.txt +++ b/common/scripted_character_templates/07_ep3_character_templates.txt @@ -3,6 +3,7 @@ charioteer_template = { age = { 16 30 } culture = root.location.culture faith = root.location.faith + rite = root.location.rite dynasty = none #Education @@ -239,6 +240,7 @@ ep3_prostitute_character = { random_traits = yes culture = root.culture faith = root.faith + rite = root.rite intrigue = { min_template_decent_skill max_template_decent_skill @@ -261,6 +263,7 @@ ep3_common_fan_character = { } culture = root.culture faith = root.faith + rite = root.rite dynasty = none martial = { min_template_low_skill @@ -329,6 +332,7 @@ ep3_magistrate_character = { gender_female_chance = root_soldier_female_chance culture = root.culture faith = root.faith + rite = root.rite dynasty = none martial = { min_template_low_skill @@ -365,16 +369,17 @@ ep3_frankokratia_crusader_template = { random_traits = yes culture = scope:frankokratia_crusader.culture faith = scope:frankokratia_crusader.faith + rite = scope:frankokratia_crusader.rite gender_female_chance = { if = { limit = { - scope:frankokratia_crusader.faith = { has_doctrine = doctrine_gender_male_dominated } + scope:frankokratia_crusader.rite = { rite_has_doctrine = doctrine_gender_male_dominated } } add = 0 } else_if = { limit = { - scope:frankokratia_crusader.faith = { has_doctrine = doctrine_gender_female_dominated } + scope:frankokratia_crusader.rite = { rite_has_doctrine = doctrine_gender_female_dominated } } add = 100 } @@ -498,6 +503,7 @@ traveler_character = { dynasty = none random_traits = yes faith = this.faith + rite = this.rite gender_female_chance = 50 diplomacy = { min_template_low_skill @@ -522,16 +528,16 @@ traveler_character = { } 20 = { trigger = { - this.faith = { - NOT = { has_doctrine_parameter = forbidden_from_pilgrimage } + this.rite = { + NOT = { rite_has_parameter = forbidden_from_pilgrimage } } } add_trait = pilgrim } 10 = { trigger = { - this.faith = { - NOT = { has_doctrine_parameter = forbidden_from_pilgrimage } + this.rite = { + NOT = { rite_has_parameter = forbidden_from_pilgrimage } } } add_trait = pilgrim @@ -587,6 +593,7 @@ ep3_evangelizer_template = { random_traits = yes culture = root.culture faith = root.faith + rite = root.rite trait = devoted random_traits_list = { count = 1 @@ -606,6 +613,7 @@ ep3_poet_template = { random_traits = yes culture = root.culture faith = root.faith + rite = root.rite diplomacy = { min_template_medium_skill max_template_high_skill } @@ -634,7 +642,7 @@ ep3_poet_template = { lifestyle_poet = {} tourney_participant = {} lifestyle_traveler = {} - scholar = {} + erudite = {} } random_traits_list = { count = { 0 1 } @@ -704,6 +712,7 @@ ep3_wallada_heir_template = { random_traits = yes culture = root.culture faith = root.faith + rite = root.rite diplomacy = { min_template_medium_skill max_template_high_skill } @@ -732,7 +741,7 @@ ep3_wallada_heir_template = { lifestyle_poet = {} tourney_participant = {} lifestyle_traveler = {} - scholar = {} + erudite = {} } random_traits_list = { count = 1 @@ -772,6 +781,7 @@ ep3_poet_toned_down_template = { gender_female_chance = 50 random_traits = yes faith = root.faith + rite = root.rite diplomacy = { min_template_medium_skill max_template_high_skill } @@ -791,7 +801,7 @@ ep3_poet_toned_down_template = { fickle = {} forgiving = {} lifestyle_traveler = {} - scholar = {} + erudite = {} intellect_good_1 = {} intellect_good_2 = {} intellect_good_3 = {} @@ -848,6 +858,7 @@ ep3_murderer_template = { random_traits = yes culture = root.culture faith = root.faith + rite = root.rite trait = gallowsbait gender_female_chance = root_soldier_female_chance random_traits_list = { @@ -921,13 +932,13 @@ ep3_sea_raider_template = { gender_female_chance = { if = { limit = { - scope:raider_faith = { has_doctrine = doctrine_gender_male_dominated } + scope:raider_faith = { main_rite = { rite_has_doctrine = doctrine_gender_male_dominated } } } add = 0 } else_if = { limit = { - scope:raider_faith = { has_doctrine = doctrine_gender_female_dominated } + scope:raider_faith = { main_rite = { rite_has_doctrine = doctrine_gender_female_dominated } } } add = 100 } diff --git a/common/scripted_character_templates/09_mpo_character_templates.txt b/common/scripted_character_templates/09_mpo_character_templates.txt index 4de3fd3ae..adf95fc86 100644 --- a/common/scripted_character_templates/09_mpo_character_templates.txt +++ b/common/scripted_character_templates/09_mpo_character_templates.txt @@ -3,6 +3,7 @@ herder_character = { age = { 18 50 } culture = this.culture faith = this.faith + rite = this.rite gender_female_chance = 50 dynasty = none random_traits = no @@ -108,6 +109,7 @@ astrologer_character_template = { random_traits = no culture = this.culture faith = this.faith + rite = this.rite gender_female_chance = 50 dynasty = none random_traits_list = { @@ -208,13 +210,14 @@ seasoned_pastor_character = { random_traits = no culture = this.culture faith = this.faith + rite = this.rite gender_female_chance = { if = { - limit = { faith = { has_doctrine = doctrine_gender_male_dominated } } + limit = { rite = { rite_has_doctrine = doctrine_gender_male_dominated } } add = 0 } else_if = { - limit = { faith = { has_doctrine = doctrine_gender_female_dominated } } + limit = { rite = { rite_has_doctrine = doctrine_gender_female_dominated } } add = 100 } else = { @@ -324,6 +327,7 @@ nomadic_chieftain_character = { random_traits = no culture = this.culture faith = this.faith + rite = this.rite gender_female_chance = 50 dynasty = none random_traits_list = { @@ -436,6 +440,7 @@ nomadic_martial_character = { random_traits = no culture = this.culture faith = this.faith + rite = this.rite gender_female_chance = 50 dynasty = none random_traits_list = { @@ -548,6 +553,7 @@ nomadic_commander_template = { random_traits = no culture = this.culture faith = this.faith + rite = this.rite gender_female_chance = { if = { limit = { culture = { has_cultural_parameter = martial_custom_male_only_combatant } } @@ -654,6 +660,7 @@ nomadic_hunter_template = { random_traits = no culture = this.culture faith = this.faith + rite = this.rite gender_female_chance = { if = { limit = { culture = { has_cultural_parameter = martial_custom_male_only_combatant } } @@ -802,6 +809,7 @@ nomadic_knight_template = { random_traits = no culture = this.culture faith = this.faith + rite = this.rite gender_female_chance = { if = { limit = { culture = { has_cultural_parameter = martial_custom_male_only_combatant } } @@ -912,6 +920,7 @@ nomadic_bride_template = { random_traits = no culture = this.culture faith = this.faith + rite = this.rite gender_female_chance = 100 dynasty = none random_traits_list = { @@ -1000,6 +1009,7 @@ nomadic_husband_template = { random_traits = no culture = this.culture faith = this.faith + rite = this.rite gender_female_chance = 0 dynasty = none random_traits_list = { @@ -1096,7 +1106,7 @@ wounded_messenger_character_template = { # Personality traits brave = {} calm = {} - diligent {} + diligent = {} just = {} patient = {} impatient = {} @@ -1147,7 +1157,7 @@ throat_singer_character_template = { lustful = {} content = {} ambitious = {} - diligent {} + diligent = {} forgiving = {} vengeful = {} generous = {} diff --git a/common/scripted_character_templates/10_ach_character_templates.txt b/common/scripted_character_templates/10_ach_character_templates.txt index 420ab3a76..42a448405 100644 --- a/common/scripted_character_templates/10_ach_character_templates.txt +++ b/common/scripted_character_templates/10_ach_character_templates.txt @@ -31,6 +31,7 @@ random_traits = no culture = root.culture faith = root.faith + rite = root.rite diplomacy = { min_template_decent_skill max_template_decent_skill @@ -97,6 +98,7 @@ cunning_courtesan_character = { random_traits = yes culture = root.culture faith = root.faith + rite = root.rite intrigue = { min_template_decent_skill max_template_decent_skill @@ -165,6 +167,7 @@ fearsome_courtesan_character = { random_traits = yes culture = root.culture faith = root.faith + rite = root.rite martial = { min_template_average_skill max_template_average_skill @@ -231,6 +234,7 @@ experienced_courtesan_character = { random_traits = yes culture = root.culture faith = root.faith + rite = root.rite stewardship = { min_template_decent_skill max_template_decent_skill diff --git a/common/scripted_character_templates/tgp_character_templates.txt b/common/scripted_character_templates/tgp_character_templates.txt index f83f755ec..598512bf6 100644 --- a/common/scripted_character_templates/tgp_character_templates.txt +++ b/common/scripted_character_templates/tgp_character_templates.txt @@ -3,16 +3,16 @@ gender_female_chance = { if = { limit = { - root.faith = { - has_doctrine = doctrine_gender_male_dominated + root.rite = { + rite_has_doctrine = doctrine_gender_male_dominated } } add = 0 } else_if = { limit = { - root.faith = { - has_doctrine = doctrine_gender_female_dominated + root.rite = { + rite_has_doctrine = doctrine_gender_female_dominated } } add = 100 @@ -23,6 +23,7 @@ } dynasty = none faith = root.faith + rite = root.rite culture = root.culture random_traits = yes @@ -58,14 +59,15 @@ tgp_examiner_learning_template = { } random_traits = yes faith = scope:host.top_liege.faith + rite = scope:host.top_liege.rite culture = scope:host.top_liege.culture gender_female_chance = { if = { - limit = { scope:host.top_liege.faith = { has_doctrine = doctrine_gender_male_dominated } } + limit = { scope:host.top_liege.rite = { rite_has_doctrine = doctrine_gender_male_dominated } } add = 0 } else_if = { - limit = { scope:host.top_liege.faith = { has_doctrine = doctrine_gender_female_dominated } } + limit = { scope:host.top_liege.rite = { rite_has_doctrine = doctrine_gender_female_dominated } } add = 100 } else = { @@ -107,14 +109,15 @@ tgp_examiner_martial_template = { } random_traits = yes faith = scope:host.top_liege.faith + rite = scope:host.top_liege.rite culture = scope:host.top_liege.culture gender_female_chance = { if = { - limit = { scope:host.top_liege.faith = { has_doctrine = doctrine_gender_male_dominated } } + limit = { scope:host.top_liege.rite = { rite_has_doctrine = doctrine_gender_male_dominated } } add = 0 } else_if = { - limit = { scope:host.top_liege.faith = { has_doctrine = doctrine_gender_female_dominated } } + limit = { scope:host.top_liege.rite = { rite_has_doctrine = doctrine_gender_female_dominated } } add = 100 } else = { @@ -156,14 +159,15 @@ tgp_examiner_stewardship_template = { } random_traits = yes faith = scope:host.top_liege.faith + rite = scope:host.top_liege.rite culture = scope:host.top_liege.culture gender_female_chance = { if = { - limit = { scope:host.top_liege.faith = { has_doctrine = doctrine_gender_male_dominated } } + limit = { scope:host.top_liege.rite = { rite_has_doctrine = doctrine_gender_male_dominated } } add = 0 } else_if = { - limit = { scope:host.top_liege.faith = { has_doctrine = doctrine_gender_female_dominated } } + limit = { scope:host.top_liege.rite = { rite_has_doctrine = doctrine_gender_female_dominated } } add = 100 } else = { @@ -205,14 +209,15 @@ tgp_learning_exam_entrant_template = { } random_traits = yes faith = scope:host.top_liege.faith + rite = scope:host.top_liege.rite culture = scope:host.top_liege.culture gender_female_chance = { if = { - limit = { scope:host.top_liege.faith = { has_doctrine = doctrine_gender_male_dominated } } + limit = { scope:host.top_liege.rite = { rite_has_doctrine = doctrine_gender_male_dominated } } add = 0 } else_if = { - limit = { scope:host.top_liege.faith = { has_doctrine = doctrine_gender_female_dominated } } + limit = { scope:host.top_liege.rite = { rite_has_doctrine = doctrine_gender_female_dominated } } add = 100 } else = { @@ -235,14 +240,15 @@ tgp_stewardship_exam_entrant_template = { } random_traits = yes faith = scope:host.top_liege.faith + rite = scope:host.top_liege.rite culture = scope:host.top_liege.culture gender_female_chance = { if = { - limit = { scope:host.top_liege.faith = { has_doctrine = doctrine_gender_male_dominated } } + limit = { scope:host.top_liege.rite = { rite_has_doctrine = doctrine_gender_male_dominated } } add = 0 } else_if = { - limit = { scope:host.top_liege.faith = { has_doctrine = doctrine_gender_female_dominated } } + limit = { scope:host.top_liege.rite = { rite_has_doctrine = doctrine_gender_female_dominated } } add = 100 } else = { @@ -265,14 +271,15 @@ tgp_martial_exam_entrant_template = { } random_traits = yes faith = scope:host.top_liege.faith + rite = scope:host.top_liege.rite culture = scope:host.top_liege.culture gender_female_chance = { if = { - limit = { scope:host.top_liege.faith = { has_doctrine = doctrine_gender_male_dominated } } + limit = { scope:host.top_liege.rite = { rite_has_doctrine = doctrine_gender_male_dominated } } add = 0 } else_if = { - limit = { scope:host.top_liege.faith = { has_doctrine = doctrine_gender_female_dominated } } + limit = { scope:host.top_liege.rite = { rite_has_doctrine = doctrine_gender_female_dominated } } add = 100 } else = { @@ -288,6 +295,7 @@ tgp_concubine_template = { random_traits = no faith = root.faith + rite = root.rite culture = root.culture random_traits_list = { count = 1 @@ -360,14 +368,15 @@ tgp_concubine_template = { tgp_japan_imperial_scion_template = { culture = scope:kampaku.culture faith = scope:kampaku.faith + rite = scope:kampaku.rite dynasty_house = scope:house_yamato gender_female_chance = { if = { - limit = { scope:kampaku.faith = { has_doctrine = doctrine_gender_male_dominated } } + limit = { scope:kampaku.rite = { rite_has_doctrine = doctrine_gender_male_dominated } } add = 0 } else_if = { - limit = { scope:kampaku.faith = { has_doctrine = doctrine_gender_female_dominated } } + limit = { scope:kampaku.rite = { rite_has_doctrine = doctrine_gender_female_dominated } } add = 100 } else = { @@ -381,6 +390,7 @@ tgp_decent_heir_template = { random_traits = yes culture = root.culture faith = root.faith + rite = root.rite gender_female_chance = 25 dynasty = none random_traits_list = { @@ -433,11 +443,11 @@ tgp_minister_administrator_template = { random_traits = yes gender_female_chance = { if = { - limit = { top_liege.faith = { has_doctrine = doctrine_gender_male_dominated } } + limit = { top_liege.rite = { rite_has_doctrine = doctrine_gender_male_dominated } } add = 0 } else_if = { - limit = { top_liege.faith = { has_doctrine = doctrine_gender_female_dominated } } + limit = { top_liege.rite = { rite_has_doctrine = doctrine_gender_female_dominated } } add = 100 } else = { @@ -504,11 +514,11 @@ tgp_minister_diplomat_template = { random_traits = yes gender_female_chance = { if = { - limit = { top_liege.faith = { has_doctrine = doctrine_gender_male_dominated } } + limit = { top_liege.rite = { rite_has_doctrine = doctrine_gender_male_dominated } } add = 0 } else_if = { - limit = { top_liege.faith = { has_doctrine = doctrine_gender_female_dominated } } + limit = { top_liege.rite = { rite_has_doctrine = doctrine_gender_female_dominated } } add = 100 } else = { @@ -693,11 +703,11 @@ tgp_minister_scholar_template = { random_traits = yes gender_female_chance = { if = { - limit = { top_liege.faith = { has_doctrine = doctrine_gender_male_dominated } } + limit = { top_liege.rite = { rite_has_doctrine = doctrine_gender_male_dominated } } add = 0 } else_if = { - limit = { top_liege.faith = { has_doctrine = doctrine_gender_female_dominated } } + limit = { top_liege.rite = { rite_has_doctrine = doctrine_gender_female_dominated } } add = 100 } else = { @@ -707,11 +717,11 @@ tgp_minister_scholar_template = { after_creation = { if = { limit = { - NOT = { has_trait = scholar } + NOT = { has_trait = erudite } } random = { chance = 30 - add_trait = scholar + add_trait = erudite } } if = { @@ -743,11 +753,11 @@ tgp_minister_confucian_scholar_template = { random_traits = yes gender_female_chance = { if = { - limit = { top_liege.faith = { has_doctrine = doctrine_gender_male_dominated } } + limit = { top_liege.rite = { rite_has_doctrine = doctrine_gender_male_dominated } } add = 0 } else_if = { - limit = { top_liege.faith = { has_doctrine = doctrine_gender_female_dominated } } + limit = { top_liege.rite = { rite_has_doctrine = doctrine_gender_female_dominated } } add = 100 } else = { @@ -827,6 +837,7 @@ very_good_eunuch_character = { random_traits = yes dynasty = none faith = root.faith + rite = root.rite culture = root.culture gender_female_chance = 0 trait = beardless_eunuch @@ -886,6 +897,7 @@ tgp_warrior_monk_template = { trait = devoted dynasty = none faith = root.faith + rite = root.rite culture = root.culture gender_female_chance = root_faith_clergy_gender_female_chance random_traits_list = { @@ -933,6 +945,7 @@ tgp_court_brahmin_template = { age = { 30 60 } dynasty = none faith = root.faith + rite = root.rite culture = root.culture gender_female_chance = root_faith_clergy_gender_female_chance random_traits_list = { @@ -971,6 +984,7 @@ tgp_khlon_glan_template = { age = { 30 60 } dynasty = none faith = root.faith + rite = root.rite culture = root.culture gender_female_chance = root_soldier_female_chance random_traits = yes @@ -1018,11 +1032,11 @@ tgp_steppe_admin_family_head_template = { random_traits = yes gender_female_chance = { if = { - limit = { top_liege.faith = { has_doctrine = doctrine_gender_male_dominated } } + limit = { top_liege.rite = { rite_has_doctrine = doctrine_gender_male_dominated } } add = 0 } else_if = { - limit = { top_liege.faith = { has_doctrine = doctrine_gender_female_dominated } } + limit = { top_liege.rite = { rite_has_doctrine = doctrine_gender_female_dominated } } add = 100 } else = { @@ -1063,6 +1077,7 @@ tgp_poet_lover_template = { } culture = root.location.culture faith = root.location.faith + rite = root.location.rite intrigue = { min_template_decent_skill max_template_decent_skill @@ -1140,6 +1155,7 @@ tgp_aspect_acolyte_template = { } culture = root.culture faith = root.faith + rite = root.rite after_creation = { set_sexuality = heterosexual } diff --git a/common/scripted_effects/00_scheme_scripted_effects.txt b/common/scripted_effects/00_scheme_scripted_effects.txt index 968488953..36c67e033 100644 --- a/common/scripted_effects/00_scheme_scripted_effects.txt +++ b/common/scripted_effects/00_scheme_scripted_effects.txt @@ -238,16 +238,54 @@ hostile_scheme_monthly_discovery_chance_effect = { } } +notify_puppeteer_of_scheme_outcome_effect = { + if = { + limit = { + exists = scope:scheme + scope:scheme = { exists = var:commanding_puppeteer } + scope:scheme.var:commanding_puppeteer = { is_alive = yes } + } + $OWNER$ ?= { save_scope_as = scheme_outcome_puppet } + $TARGET$ ?= { save_scope_as = scheme_outcome_target } + scope:scheme.var:commanding_puppeteer = { + send_interface_toast = { + type = $TYPE$ + title = $TITLE$ + left_icon = scope:scheme_outcome_puppet + right_icon = scope:scheme_outcome_target + } + } + } +} + # Sort the ending for a scheme. generic_scheme_process_ending_effect = { # Grab our scopes. save_scope_as = scheme scheme_owner = { save_scope_as = owner } ## Targets. - scheme_target_character ?= { save_scope_as = target } - scheme_target_culture ?= { save_scope_as = target } - scheme_target_faith ?= { save_scope_as = target } - scheme_target_title ?= { save_scope_as = target } + scheme_target_character ?= { + save_scope_as = target + save_scope_as = target_character + } + scheme_target_culture ?= { + save_scope_as = target + culture_head ?= { save_scope_as = target_character } + } + scheme_target_faith ?= { + save_scope_as = target + main_rite.head_of_rite ?= { save_scope_as = target_character } + } + scheme_target_title ?= { + save_scope_as = target + if = { + limit = { exists = holder } + holder = { save_scope_as = target_character } + } + else = { + title_capital_county.holder = { save_scope_as = target_character } + } + } # Success roll. random = { chance = scheme_success_chance @@ -314,7 +352,7 @@ generic_scheme_process_ending_effect = { scope:target.host = { save_scope_as = murder_exposer } } else = { - scope:target = { save_scope_as = murder_exposer } + scope:target_character = { save_scope_as = murder_exposer } } # Set up assorted cosmetics for murders. scope:owner = { @@ -324,7 +362,7 @@ generic_scheme_process_ending_effect = { random_memory = { limit = { has_memory_category = negative - has_memory_participant = scope:target + has_memory_participant = scope:target_character NOR = { # These read poorly has_memory_type = became_rivals has_memory_type = became_nemesis @@ -369,6 +407,19 @@ generic_scheme_process_ending_effect = { play_sound_effect = "event:/DLC/EP3/SFX/Stingers/Scheme_Rework/ep3_mx_sting_schemerework_positive" mandala_trickster_increment_successful_schemes_effect = yes } + + # Keep the commanding puppeteer informed of the outcome of the scheme they ordered. + if = { + limit = { scheme_type = murder } + notify_puppeteer_of_scheme_outcome_effect = { OWNER = scope:owner TARGET = scope:target TYPE = event_toast_effect_good TITLE = scheme_outcome_murder_success_puppeteer } + } + else_if = { + limit = { scheme_type = abduct } + notify_puppeteer_of_scheme_outcome_effect = { OWNER = scope:owner TARGET = scope:target TYPE = event_toast_effect_good TITLE = scheme_outcome_abduct_success_puppeteer } + } + else = { + notify_puppeteer_of_scheme_outcome_effect = { OWNER = scope:owner TARGET = scope:target TYPE = event_toast_effect_good TITLE = scheme_outcome_generic_success_puppeteer } + } } ## Scheme failed. else = { @@ -385,6 +436,19 @@ generic_scheme_process_ending_effect = { task_contract ?= { complete_task_contract = failure_standard } trigger_event = { $FAILURE_EVENT_TYPE$ = $FAILURE_EVENT_ID$ } scope:owner = { play_sound_effect = "event:/DLC/EP3/SFX/Stingers/Scheme_Rework/ep3_mx_sting_schemerework_negative" } + + # Keep the commanding puppeteer informed of the outcome of the scheme they ordered. + if = { + limit = { scheme_type = murder } + notify_puppeteer_of_scheme_outcome_effect = { OWNER = scope:owner TARGET = scope:target TYPE = event_toast_effect_bad TITLE = scheme_outcome_murder_failure_puppeteer } + } + else_if = { + limit = { scheme_type = abduct } + notify_puppeteer_of_scheme_outcome_effect = { OWNER = scope:owner TARGET = scope:target TYPE = event_toast_effect_bad TITLE = scheme_outcome_abduct_failure_puppeteer } + } + else = { + notify_puppeteer_of_scheme_outcome_effect = { OWNER = scope:owner TARGET = scope:target TYPE = event_toast_effect_bad TITLE = scheme_outcome_generic_failure_puppeteer } + } } } @@ -553,7 +617,7 @@ scheme_unique_interception_roll_effect = { has_variable = mind_broken_victim var:mind_broken_victim = { is_alive = yes - NOT = { has_trait = incapable } + is_incapable = no } } random = { @@ -564,14 +628,14 @@ scheme_unique_interception_roll_effect = { } } } - ## 00.5% — Saved by having an artefact. + ## 00.5% — Saved by having an artifact. ### Special ridiculously low chance because otherwise this event, which has fun loc, will give _every_ character in the title a 1% chance to nullify any scheme against them. else_if = { limit = { is_available_healthy_adult = yes # Gotta be on land. exists = location.barony - # And have a suitable artefact. + # And have a suitable artifact. ## Which they probably will. ### Statistically almost always, in fact. has_any_artifact = yes @@ -588,7 +652,7 @@ scheme_unique_interception_roll_effect = { chance = 50 save_scope_value_as = { name = interception_unique - value = flag:sacrifice_artefact + value = flag:sacrifice_artifact } } } @@ -636,9 +700,9 @@ roll_critical_moment_options_02_agent_types_effect = { limit = { any_scheme_agent_slot = { count <= character_max_scheme_agents_value } scope:scheme = { - NOR = { - has_variable = choice_a - has_variable = choice_b + has_none_of_variables = { + name = choice_a + name = choice_b } } } @@ -761,9 +825,9 @@ roll_critical_moment_options_03_agent_types_effect = { limit = { any_scheme_agent_slot = { count < character_max_scheme_agents_value } scope:scheme = { - NOR = { - has_variable = choice_a - has_variable = choice_b + has_none_of_variables = { + name = choice_a + name = choice_b } } } @@ -932,9 +996,9 @@ roll_critical_moment_options_04_agent_types_effect = { limit = { any_scheme_agent_slot = { count < character_max_scheme_agents_value } scope:scheme = { - NOR = { - has_variable = choice_a - has_variable = choice_b + has_none_of_variables = { + name = choice_a + name = choice_b } } } @@ -1149,9 +1213,9 @@ roll_critical_moment_options_05_agent_types_effect = { limit = { any_scheme_agent_slot = { count < character_max_scheme_agents_value } scope:scheme = { - NOR = { - has_variable = choice_a - has_variable = choice_b + has_none_of_variables = { + name = choice_a + name = choice_b } } } @@ -1412,9 +1476,9 @@ roll_critical_moment_options_06_agent_types_effect = { limit = { any_scheme_agent_slot = { count < character_max_scheme_agents_value } scope:scheme = { - NOR = { - has_variable = choice_a - has_variable = choice_b + has_none_of_variables = { + name = choice_a + name = choice_b } } } @@ -1721,9 +1785,9 @@ roll_critical_moment_options_07_agent_types_effect = { limit = { any_scheme_agent_slot = { count < character_max_scheme_agents_value } scope:scheme = { - NOR = { - has_variable = choice_a - has_variable = choice_b + has_none_of_variables = { + name = choice_a + name = choice_b } } } @@ -2076,9 +2140,9 @@ roll_critical_moment_options_08_agent_types_effect = { limit = { any_scheme_agent_slot = { count < character_max_scheme_agents_value } scope:scheme = { - NOR = { - has_variable = choice_a - has_variable = choice_b + has_none_of_variables = { + name = choice_a + name = choice_b } } } @@ -2477,9 +2541,9 @@ roll_critical_moment_options_09_agent_types_effect = { limit = { any_scheme_agent_slot = { count < character_max_scheme_agents_value } scope:scheme = { - NOR = { - has_variable = choice_a - has_variable = choice_b + has_none_of_variables = { + name = choice_a + name = choice_b } } } @@ -2924,9 +2988,9 @@ roll_critical_moment_options_10_agent_types_effect = { limit = { any_scheme_agent_slot = { count < character_max_scheme_agents_value } scope:scheme = { - NOR = { - has_variable = choice_a - has_variable = choice_b + has_none_of_variables = { + name = choice_a + name = choice_b } } } @@ -3417,9 +3481,9 @@ roll_critical_moment_options_11_agent_types_effect = { limit = { any_scheme_agent_slot = { count < character_max_scheme_agents_value } scope:scheme = { - NOR = { - has_variable = choice_a - has_variable = choice_b + has_none_of_variables = { + name = choice_a + name = choice_b } } } @@ -3956,9 +4020,9 @@ roll_critical_moment_options_12_agent_types_effect = { limit = { any_scheme_agent_slot = { count < character_max_scheme_agents_value } scope:scheme = { - NOR = { - has_variable = choice_a - has_variable = choice_b + has_none_of_variables = { + name = choice_a + name = choice_b } } } @@ -4541,9 +4605,9 @@ roll_critical_moment_options_13_agent_types_effect = { limit = { any_scheme_agent_slot = { count < character_max_scheme_agents_value } scope:scheme = { - NOR = { - has_variable = choice_a - has_variable = choice_b + has_none_of_variables = { + name = choice_a + name = choice_b } } } @@ -5172,9 +5236,9 @@ roll_critical_moment_options_14_agent_types_effect = { limit = { any_scheme_agent_slot = { count < character_max_scheme_agents_value } scope:scheme = { - NOR = { - has_variable = choice_a - has_variable = choice_b + has_none_of_variables = { + name = choice_a + name = choice_b } } } @@ -5849,9 +5913,9 @@ roll_critical_moment_options_15_agent_types_effect = { limit = { any_scheme_agent_slot = { count < character_max_scheme_agents_value } scope:scheme = { - NOR = { - has_variable = choice_a - has_variable = choice_b + has_none_of_variables = { + name = choice_a + name = choice_b } } } @@ -6572,9 +6636,9 @@ roll_critical_moment_options_16_agent_types_effect = { limit = { any_scheme_agent_slot = { count < character_max_scheme_agents_value } scope:scheme = { - NOR = { - has_variable = choice_a - has_variable = choice_b + has_none_of_variables = { + name = choice_a + name = choice_b } } } @@ -7341,9 +7405,9 @@ roll_critical_moment_options_17_agent_types_effect = { limit = { any_scheme_agent_slot = { count < character_max_scheme_agents_value } scope:scheme = { - NOR = { - has_variable = choice_a - has_variable = choice_b + has_none_of_variables = { + name = choice_a + name = choice_b } } } @@ -8156,9 +8220,9 @@ roll_critical_moment_options_18_agent_types_effect = { limit = { any_scheme_agent_slot = { count < character_max_scheme_agents_value } scope:scheme = { - NOR = { - has_variable = choice_a - has_variable = choice_b + has_none_of_variables = { + name = choice_a + name = choice_b } } } @@ -9017,9 +9081,9 @@ roll_critical_moment_options_19_agent_types_effect = { limit = { any_scheme_agent_slot = { count < character_max_scheme_agents_value } scope:scheme = { - NOR = { - has_variable = choice_a - has_variable = choice_b + has_none_of_variables = { + name = choice_a + name = choice_b } } } @@ -9924,9 +9988,9 @@ roll_critical_moment_options_20_agent_types_effect = { limit = { any_scheme_agent_slot = { count < character_max_scheme_agents_value } scope:scheme = { - NOR = { - has_variable = choice_a - has_variable = choice_b + has_none_of_variables = { + name = choice_a + name = choice_b } } } @@ -12734,17 +12798,30 @@ scheme_owner_pov_murder_success_effect = { # Piety, if appropriate. if = { limit = { - faith = { has_doctrine_parameter = piety_gain_from_successful_intrigue_schemes } + rite = { rite_has_parameter = piety_gain_from_successful_intrigue_schemes } } add_piety = minor_piety_gain } + if = { + limit = { + has_personal_tenet_flag = tenet_sacred_shadows_intrigue_scheme_fulfillment + } + change_spiritual_fulfillment = miniscule_spiritual_fulfillment_value + } + if = { + limit = { + has_personal_tenet_flag = tenet_fp3_fedayeen_other_faith_kill_fulfillment + NOT = { faith = scope:target.faith } + } + change_spiritual_fulfillment = minor_spiritual_fulfillment_value + } # Stress. ## Murdered a rival. if = { limit = { scope:owner = { has_relation_rival = scope:target } } - stress_impact = { + stress_and_fulfillment_impact = { base = murder_base_stress_value vengeful = massive_stress_impact_loss sadistic = minor_stress_impact_loss @@ -12763,7 +12840,7 @@ scheme_owner_pov_murder_success_effect = { } } } - stress_impact = { + stress_and_fulfillment_impact = { base = murder_base_stress_value sadistic = major_stress_impact_loss callous = minor_stress_impact_loss @@ -12772,7 +12849,7 @@ scheme_owner_pov_murder_success_effect = { } ## Murdered anyone else. else = { - stress_impact = { + stress_and_fulfillment_impact = { base = murder_base_stress_value sadistic = minor_stress_impact_loss callous = miniscule_stress_impact_loss @@ -13223,6 +13300,35 @@ owner_seduce_outcome_success_send_discovery_event_effect = { } } +sacred_shadows_personal_tenet_scheme_reward_effect = { + if = { + limit = { + has_personal_tenet_flag = tenet_sacred_shadows_intrigue_scheme_fulfillment + } + change_spiritual_fulfillment = miniscule_spiritual_fulfillment_value + } +} + +polyamory_personal_tenet_scheme_reward_effect = { + if = { + limit = { + has_personal_tenet_flag = tenet_polyamory_romance_seduction_fulfillment + } + add_stress = minor_stress_loss + change_spiritual_fulfillment = miniscule_spiritual_fulfillment_value + } +} + +carnal_exaltation_personal_tenet_scheme_reward_effect = { + if = { + limit = { + has_personal_tenet_flag = tenet_carnal_exaltation_seduction_fulfillment + } + add_stress = minor_stress_loss + change_spiritual_fulfillment = miniscule_spiritual_fulfillment_value + } +} + owner_seduce_outcome_become_lovers_option_effects = { show_as_tooltip = { set_relation_lover = scope:target } add_character_flag = { #to assure that this is when the relationship is set @@ -13238,12 +13344,16 @@ owner_seduce_outcome_become_lovers_option_effects = { if = { limit = { - faith = { - has_doctrine_parameter = piety_gain_from_successful_intrigue_schemes + rite = { + rite_has_parameter = piety_gain_from_successful_intrigue_schemes } } add_piety = minor_piety_gain } + sacred_shadows_personal_tenet_scheme_reward_effect = yes + polyamory_personal_tenet_scheme_reward_effect = yes + carnal_exaltation_personal_tenet_scheme_reward_effect = yes + pam_seduction_piety_reward_effect = yes if = { limit = { @@ -13292,12 +13402,16 @@ owner_seduce_outcome_just_sex_effects = { if = { limit = { - faith = { - has_doctrine_parameter = piety_gain_from_successful_intrigue_schemes + rite = { + rite_has_parameter = piety_gain_from_successful_intrigue_schemes } } add_piety = minor_piety_gain } + sacred_shadows_personal_tenet_scheme_reward_effect = yes + polyamory_personal_tenet_scheme_reward_effect = yes + carnal_exaltation_personal_tenet_scheme_reward_effect = yes + pam_seduction_piety_reward_effect = yes if = { limit = { @@ -13365,14 +13479,14 @@ owner_seduce_outcome_sex_effect = { seduce_outcome_discovered_expose_secrets_and_adultery_effect = { extramarital_sex_attempt_exposure_consequences_with_target_effect = { TARGET = $CHARACTER$ SPOUSE_EVENT = yes } #Adds trait if = { - limit = { relation_with_character_is_incestuous_in_my_or_lieges_faith_trigger = { CHARACTER = $CHARACTER$ } } + limit = { relation_with_character_is_incestuous_in_my_or_lieges_rite_trigger = { CHARACTER = $CHARACTER$ } } random_secret = { type = secret_incest expose_secret = $EXPOSER$ } } if = { - limit = { relation_with_character_is_sodomy_in_my_or_lieges_faith_trigger = { CHARACTER = $CHARACTER$ } } + limit = { relation_with_character_is_sodomy_in_my_or_lieges_rite_trigger = { CHARACTER = $CHARACTER$ } } random_secret = { type = secret_homosexual expose_secret = $EXPOSER$ @@ -13472,9 +13586,9 @@ seduce_outcome_publicised_attempted_crimes_or_nothing_effect = { if = { limit = { $OWNER$ = { is_married = yes } - trait_is_shunned_or_criminal_in_faith_trigger = { + trait_is_shunned_or_criminal_in_rite_trigger = { TRAIT = trait:adulterer - FAITH = this.faith + RITE = this.rite GENDER_CHARACTER = $OWNER$ } } @@ -13493,9 +13607,9 @@ seduce_outcome_publicised_attempted_crimes_or_nothing_effect = { this = $OWNER$ } #And who count the action as adulterous. - trait_is_shunned_or_criminal_in_faith_trigger = { + trait_is_shunned_or_criminal_in_rite_trigger = { TRAIT = trait:adulterer - FAITH = faith + RITE = rite GENDER_CHARACTER = $OWNER$ } } @@ -13512,9 +13626,9 @@ seduce_outcome_publicised_attempted_crimes_or_nothing_effect = { if = { limit = { $OWNER$ = { is_married = no } - trait_is_shunned_or_criminal_in_faith_trigger = { + trait_is_shunned_or_criminal_in_rite_trigger = { TRAIT = trait:fornicator - FAITH = faith + RITE = rite GENDER_CHARACTER = $OWNER$ } } @@ -13533,9 +13647,9 @@ seduce_outcome_publicised_attempted_crimes_or_nothing_effect = { this = $OWNER$ } #And who count the action to be fornication. - trait_is_shunned_or_criminal_in_faith_trigger = { + trait_is_shunned_or_criminal_in_rite_trigger = { TRAIT = trait:fornicator - FAITH = this.faith + RITE = this.rite GENDER_CHARACTER = $OWNER$ } } @@ -13551,7 +13665,7 @@ seduce_outcome_publicised_attempted_crimes_or_nothing_effect = { #Incestuous if = { limit = { - relation_with_character_is_incestuous_in_my_faith_trigger = { CHARACTER = $OWNER$ } + relation_with_character_is_incestuous_in_my_rite_trigger = { CHARACTER = $OWNER$ } } every_in_list = { list = relevant_parties @@ -13565,8 +13679,8 @@ seduce_outcome_publicised_attempted_crimes_or_nothing_effect = { #People who are incestuous. has_trait = incestuous #Or who don't count the action as incestuous. - faith = { - faith_allows_marriage_consanguinity_trigger = { + rite = { + rite_allows_marriage_consanguinity_trigger = { CHARACTER_1 = $OWNER$ CHARACTER_2 = $TARGET$ } @@ -13587,7 +13701,7 @@ seduce_outcome_publicised_attempted_crimes_or_nothing_effect = { #Sodomite if = { limit = { - relation_with_character_is_sodomy_trigger = { CHARACTER = $OWNER$ } + relation_with_character_is_sodomy_by_my_rite_trigger = { CHARACTER = $OWNER$ } } every_in_list = { list = relevant_parties @@ -13609,8 +13723,8 @@ seduce_outcome_publicised_attempted_crimes_or_nothing_effect = { } } #Or who don't count the action as incestuous. - faith = { - faith_allows_marriage_consanguinity_trigger = { + rite = { + rite_allows_marriage_consanguinity_trigger = { CHARACTER_1 = $OWNER$ CHARACTER_2 = $TARGET$ } @@ -13619,7 +13733,7 @@ seduce_outcome_publicised_attempted_crimes_or_nothing_effect = { this = $OWNER$ } #And, finally, must actually be fussed about sodomy to begin with. - relation_between_characters_is_sodomy_in_my_faith_trigger = { + relation_between_characters_is_sodomy_in_my_rite_trigger = { CHARACTER_1 = $OWNER$ CHARACTER_2 = $TARGET$ } @@ -14377,6 +14491,9 @@ abduct_outcome_roll_effect = { random = { chance = scope:scheme.scheme_success_chance custom_tooltip = abduct_successful_roll_tt + show_as_tooltip = { + abduction_rivalry_progress_effect = yes + } scope:owner = { mandala_trickster_increment_successful_schemes_effect = yes } save_scope_value_as = { name = scheme_successful @@ -14424,6 +14541,20 @@ abduct_success_effect = { } trigger_event = abduct_outcome.5001 } + + if = { + limit = { + scope:target = { + is_ai = no + } + } + show_as_tooltip = { + abduction_rivalry_progress_effect = yes + } + } + else = { + abduction_rivalry_progress_effect = yes + } hard_imprison_character_effect = { TARGET = scope:target @@ -14467,12 +14598,13 @@ abduct_failure_effect = { successful_abduct_outcome_event_option_effect = { if = { limit = { - faith = { - has_doctrine_parameter = piety_gain_from_successful_intrigue_schemes + rite = { + rite_has_parameter = piety_gain_from_successful_intrigue_schemes } } add_piety = minor_piety_gain } + sacred_shadows_personal_tenet_scheme_reward_effect = yes scope:scheme ?= { end_scheme = yes @@ -15285,13 +15417,13 @@ elope_success_personal_consequences_effect = { #Divorce consequences if = { - limit = { faith = { NOT = { has_doctrine = doctrine_divorce_allowed } } } + limit = { rite = { NOT = { rite_has_doctrine = doctrine_divorce_allowed } } } add_prestige_level = -1 add_piety_level = -1 if = { limit = { - faith = { has_doctrine = tenet_communion } + faith = { faith_has_sacraments_trigger = yes } NOT = { has_trait = excommunicated } } add_trait = excommunicated @@ -15505,11 +15637,17 @@ fabricate_hook_block_scheme_owner_from_further_schemes_effect = { modifier = fabricated_hook_against_court_opinion years = 5 } + scope:target.court_owner ?= { + save_scope_as = court_owner + } custom_tooltip = fabricate_hook_i_may_not_fabricate_again } fabricate_hook_discovery_effect = { show_as_tooltip = { # Target dislikes you + scope:target.court_owner ?= { + save_scope_as = court_owner + } custom_tooltip = fabricate_hook_i_may_not_fabricate_again scope:target = { add_opinion = { @@ -15575,18 +15713,19 @@ fabricate_hook_discovery_effect = { #Used in event options fabricate_hook_success_effect = { fabricate_hook_assign_appropriate_type_effect = { - TYPE = $TYPE$ # Sets the correct hook type to give - } - if = { - limit = { exists = scope:scheme_discovered } - fabricate_hook_discovery_effect = yes - } - if = { - limit = { exists = scope:scheme } - scope:scheme = { - end_scheme = yes - } - } + TYPE = $TYPE$ # Sets the correct hook type to give + } + sacred_shadows_personal_tenet_scheme_reward_effect = yes + if = { + limit = { exists = scope:scheme_discovered } + fabricate_hook_discovery_effect = yes + } + if = { + limit = { exists = scope:scheme } + scope:scheme = { + end_scheme = yes + } + } } fabricate_hook_decline_execution_effect = { @@ -15855,7 +15994,7 @@ court_success_prestige_effect = { target = scope:prestige_comparison value <= -2 } - scope:prestige_comparison.highest_held_title_tier = tier_empire + scope:prestige_comparison.highest_held_title_tier >= tier_empire } } add_prestige = massive_prestige_gain @@ -16143,6 +16282,7 @@ end_court_scheme_effect = { limit = { has_trait = lustful is_ai = yes + accepts_adultery_without_penalty_trigger = no any_relation = { type = lover this != scope:owner @@ -16167,9 +16307,10 @@ end_court_scheme_effect = { } } } + save_temporary_scope_as = lover lover_breakup_effect = { BREAKER = scope:target - LOVER = this + LOVER = scope:lover } } } @@ -16198,6 +16339,44 @@ end_court_scheme_effect = { #Shared effect with Seduce because failure in one scheme should block the other scope:target = { seduction_block_character_effect = { CHARACTER = scope:owner } } } + + if = { + limit = { + OR = { + scope:court_outcome = flag:success_soulmate + scope:court_outcome = flag:success_kiss + } + } + polyamory_personal_tenet_scheme_reward_effect = yes + } + + if = { + limit = { + OR = { + scope:court_outcome = flag:success_soulmate + scope:court_outcome = flag:success_kiss + } + is_spouse_of = scope:target + rite = { rite_has_parameter = tenet_be_fruitful_and_multiply_easy_spouse_romance } + } + add_character_modifier = { + modifier = tenet_be_fruitful_and_multiply_spouse_romance_fertility + years = 5 + } + scope:target = { + add_character_modifier = { + modifier = tenet_be_fruitful_and_multiply_spouse_romance_fertility + years = 5 + } + } + if = { + limit = { can_set_relation_friend_trigger = { CHARACTER = scope:target } } + set_relation_friend = { + target = scope:target + reason = friend_rekindled_spouse_romance + } + } + } # Tradition bonuses if = { @@ -16233,7 +16412,7 @@ end_court_scheme_effect = { } ################################################## -# Steal Back Artefact Scheme Effects +# Steal Back Artifact Scheme Effects #Used in the immediate of the Scheme Owner's success event steal_back_artifact_success_effect = { @@ -16245,7 +16424,7 @@ steal_back_artifact_success_effect = { # Feud score scope:owner.house = { change_house_relation_feud_score_effect = { - TARGET = scope:owner.house + TARGET = scope:target.house REASON = stole_artifact VALUE = house_feud_medium_counter_value } @@ -16346,11 +16525,36 @@ begin_scheme_with_agents_effect = { name = secrecy_grace_period value = secrecy_grace_character_total_starting_value } + + # puppet schemes are always exposed to their puppeteer + if = { + limit = { + exists = scope:scheme_launcher.puppeteer + } + expose_scheme_to = scope:scheme_launcher.puppeteer + } + + # We tag commanding_puppeteer only on puppeteer-ordered schemes + if = { + limit = { + exists = scope:actor + exists = scope:puppet_or_actor + scope:is_puppet_action ?= yes + scheme_owner = scope:puppet_or_actor + } + set_variable = { + name = commanding_puppeteer + value = scope:actor + } + } } - open_view = { - view = intrigue_window - player = scope:new_scheme.scheme_owner + if = { # start_scheme can fail, leaving no scheme to open the view on + limit = { exists = scope:new_scheme } + open_view = { + view = intrigue_window + player = scope:new_scheme.scheme_owner + } } } @@ -16404,15 +16608,18 @@ begin_contract_scheme_with_agents_effect = { value = $TASK_CONTRACT$ } } - $TASK_CONTRACT$ = { - set_variable = { - name = attached_scheme - value = scope:new_scheme + if = { # start_scheme can fail, leaving no scheme to attach the contract to + limit = { exists = scope:new_scheme } + $TASK_CONTRACT$ = { + set_variable = { + name = attached_scheme + value = scope:new_scheme + } + } + open_view = { + view = intrigue_window + player = scope:new_scheme.scheme_owner } - } - open_view = { - view = intrigue_window - player = scope:new_scheme.scheme_owner } } @@ -16435,6 +16642,18 @@ begin_scheme_basic_effect = { save_scope_as = new_scheme } scope:new_scheme ?= { + if = { + limit = { + exists = scope:actor + exists = scope:puppet_or_actor + scope:is_puppet_action ?= yes + scheme_owner = scope:puppet_or_actor + } + set_variable = { + name = commanding_puppeteer + value = scope:actor + } + } # If we have a custom charge threshold to complete, set that here. ## Sway. if = { @@ -16628,6 +16847,7 @@ steal_herd_success_effect = { exists = domicile domicile.herd > 0 } + scope:owner = { exists = domicile } } scope:target = { if = { @@ -16654,7 +16874,7 @@ steal_herd_success_effect = { limit = { is_independent_ruler = no liege = { - NOT = { is_liege_or_above_of = scope:owner } + NOT = { target_is_same_character_or_above = scope:owner } } } liege = { @@ -16848,3 +17068,251 @@ coup_ceremonial_liege_scheme_prep_effect = { scheme_owner = { trigger_event = scheme_critical_moments.0002 } } } + +abduction_rivalry_progress_effect = { + scope:target = { + #Target is a ruler + if = { + limit = { + abduct_ruler_rivalling_trigger = yes + } + if = { + limit = { + is_close_family_of = scope:owner + } + set_relation_rival = { + target = scope:owner + reason = rival_abducted_family + } + } + else = { + progress_towards_rival_effect = { + CHARACTER = scope:owner + REASON = rival_abducted_ruler + OPINION = 0 + } + } + } + #Target is close family + if = { + limit = { + abduct_family_rivalling_trigger = yes + } + progress_towards_rival_effect = { + CHARACTER = scope:owner + REASON = rival_abducted_family + OPINION = 0 + } + } + #Target has parents that are rulers of superior power + if = { + limit = { + any_parent = { + abduct_rivalling_relative_trigger = yes + } + } + every_parent = { + limit = { + abduct_rivalling_relative_trigger = yes + } + progress_towards_rival_effect = { + CHARACTER = scope:owner + REASON = rival_abducted_child + OPINION = 0 + } + } + } + #Target has children that are rulers of superior power + if = { + limit = { + any_child = { + abduct_rivalling_relative_trigger = yes + } + } + every_child = { + limit = { + abduct_rivalling_relative_trigger = yes + } + progress_towards_rival_effect = { + CHARACTER = scope:owner + REASON = rival_abducted_parent + OPINION = 0 + } + } + } + #Target has siblings that are rulers of comparable power + if = { + limit = { + any_sibling = { + scope:target = { + is_courtier_of = prev + } + #stupid incest making things complicated + NOR = { + is_parent_of = scope:target + is_child_of = scope:target + } + abduct_rivalling_relative_trigger = yes + } + } + liege = { + progress_towards_rival_effect = { + CHARACTER = scope:owner + REASON = rival_abducted_sibling + OPINION = 0 + } + } + } + #Target has spouse that is of superior power + if = { + limit = { + any_spouse = { + abduct_rivalling_relative_trigger = yes + #Prevent incest duplicating this effect + NOR = { + is_parent_of = scope:target + is_child_of = scope:target + is_sibling_of = scope:target + } + } + } + every_spouse = { + limit = { + abduct_rivalling_relative_trigger = yes + #Prevent incest duplicating this effect + NOR = { + is_parent_of = scope:target + is_child_of = scope:target + is_sibling_of = scope:target + } + } + progress_towards_rival_effect = { + CHARACTER = scope:owner + REASON = rival_abducted_spouse + OPINION = 0 + } + } + } + } +} + +abduction_rivalry_progress_tooltip_forecast_effect = { + scope:target = { + #Target is a ruler + if = { + limit = { + abduct_ruler_rivalling_trigger = yes + } + if = { + limit = { + is_close_family_of = scope:owner + } + custom_tooltip = abduct_rivalry_tt + } + else = { + custom_tooltip = abduct_relationship_progress_tt + } + } + #Target is close family + if = { + limit = { + abduct_family_rivalling_trigger = yes + } + custom_tooltip = abduct_relationship_progress_tt + } + #Target has parents that are rulers of comparable power + if = { + limit = { + any_parent = { + abduct_rivalling_relative_trigger = yes + } + } + every_parent = { + limit = { + abduct_rivalling_relative_trigger = yes + } + custom_tooltip = abduct_relationship_progress_parent_tt + } + } + #Target has children that are rulers of comparable power + if = { + limit = { + any_child = { + abduct_rivalling_relative_trigger = yes + } + } + every_child = { + limit = { + abduct_rivalling_relative_trigger = yes + } + custom_tooltip = abduct_relationship_progress_child_tt + } + } + #Target has siblings that are rulers of comparable power + if = { + limit = { + any_sibling = { + scope:target = { + is_courtier_of = prev + } + #stupid incest making things complicated + NOR = { + is_parent_of = scope:target + is_child_of = scope:target + } + abduct_rivalling_relative_trigger = yes + } + } + liege = { + custom_tooltip = abduct_relationship_progress_sibling_tt + } + } + #Target has spouse that is of comparable power + if = { + limit = { + any_spouse = { + abduct_rivalling_relative_trigger = yes + #Prevent incest duplicating this effect + NOR = { + is_parent_of = scope:target + is_child_of = scope:target + is_sibling_of = scope:target + } + } + } + every_spouse = { + limit = { + abduct_rivalling_relative_trigger = yes + #Prevent incest duplicating this effect + NOR = { + is_parent_of = scope:target + is_child_of = scope:target + } + } + custom_tooltip = abduct_relationship_progress_spouse_tt + } + } + } +} + +debug_test_scheme_event_effect = { + random_scheme = { + save_scope_as = scheme + root = { + save_scope_as = owner + } + scheme_target_character ?= { + save_scope_as = target + } + scheme_target_title ?= { + save_scope_as = target + } + scheme_target_culture ?= { + save_scope_as = target + } + scheme_target_faith ?= { + save_scope_as = target + } + } + trigger_event = $EVENT$ +} diff --git a/common/scripted_effects/01_ep1_court_artifact_creation_effects.txt b/common/scripted_effects/01_ep1_court_artifact_creation_effects.txt index 81ba086fc..ebe2b5ba6 100644 --- a/common/scripted_effects/01_ep1_court_artifact_creation_effects.txt +++ b/common/scripted_effects/01_ep1_court_artifact_creation_effects.txt @@ -225,6 +225,7 @@ create_artifact_tapestry_effect = { # Get the character the artifact is being made for. $OWNER$ = { save_scope_as = owner } $WEAVER$ = { save_scope_as = weaver } + save_adventurer_location_effect = yes hidden_effect_new_object = { # Get artifact quality, wealth, and materials @@ -369,6 +370,27 @@ get_animal_hunt_location_effect = { NOT = { exists = scope:location } } if = { + limit = { + scope:owner = { + has_variable = animal_type + OR = { + var:animal_type = flag:cat + var:animal_type = flag:dog + } + } + } + scope:owner = { + if = { + limit = { exists = capital_province } + capital_province = { save_scope_as = location } + } + else_if = { + limit = { exists = location } + location = { save_scope_as = location } + } + } + } + else_if = { limit = { exists = scope:owner.involved_activity scope:owner.involved_activity = { has_activity_type = activity_hunt } @@ -746,6 +768,7 @@ create_artifact_wall_skull_effect = { create_artifact_wall_narwhal_horn_effect = { $OWNER$ = { save_scope_as = owner } $HUNTER$ = { save_scope_as = hunter } + save_adventurer_location_effect = yes hidden_effect_new_object = { # Get artifact quality and wealth @@ -1261,6 +1284,67 @@ create_artifact_box_medium_effect = { } } +# Wooden phallus - commissioned by characters with Carnal Exaltation as a personal tenet +create_artifact_phallus_effect = { + # Get the character the artifact is being made for. + $OWNER$ = { save_scope_as = owner } + $CARPENTER$ = { save_scope_as = carpenter } + hidden_effect_new_object = { + # Get artifact quality and wealth + get_artifact_quality_effect = yes + get_artifact_wealth_effect = yes + + # Create the artifact + scope:owner = { + create_artifact = { + name = artifact_wooden_phallus_name + creator = scope:carpenter + description = placeholder + visuals = small_box + type = miscellaneous + modifier = artifact_placeholder_modifier + save_scope_as = newly_created_artifact + wealth = scope:wealth + quality = scope:quality + } + } + scope:newly_created_artifact = { + set_artifact_description = artifact_wooden_phallus_description + + # Add artifact modifiers + if = { + limit = { rarity = common } + add_artifact_modifier = artifact_fertility_gain_1_modifier + add_artifact_modifier = artifact_spouse_opinion_add_1_modifier + } + else_if = { + limit = { rarity = masterwork } + add_artifact_modifier = artifact_fertility_gain_2_modifier + add_artifact_modifier = artifact_spouse_opinion_add_2_modifier + } + else_if = { + limit = { rarity = famed } + add_artifact_modifier = artifact_fertility_gain_3_modifier + add_artifact_modifier = artifact_spouse_opinion_add_3_modifier + add_artifact_modifier = artifact_seduce_scheme_phase_duration_add_1_modifier + } + else_if = { + limit = { rarity = illustrious } + add_artifact_modifier = artifact_fertility_gain_4_modifier + add_artifact_modifier = artifact_spouse_opinion_add_4_modifier + add_artifact_modifier = artifact_seduce_scheme_phase_duration_add_2_modifier + } + remove_artifact_modifier = artifact_placeholder_modifier + + set_variable = commissioned_wooden_phallus + set_variable = { + name = quality + value = scope:quality + } + } + } +} + ############### @@ -1270,6 +1354,7 @@ create_artifact_goblet_effect = { # Get the character the artifact is being made for. $OWNER$ = { save_scope_as = owner } $SMITH$ = { save_scope_as = goldsmith } + save_adventurer_location_effect = yes hidden_effect_new_object = { # Get artifact quality, wealth, and materials @@ -1478,7 +1563,6 @@ create_artifact_wall_banner_effect = { grant_banner_house_claim_effect = yes set_artifact_description = artifact_wall_banner_dynasty_description # For commissioner flavor } - remove_variable = banner_from_dynasty } else_if = { #House Banner limit = { has_variable = banner_from_house } @@ -1501,7 +1585,6 @@ create_artifact_wall_banner_effect = { location = scope:owner.capital_province } } - remove_variable = startup_banner } else = { #Created Banner create_artifact = { @@ -1571,6 +1654,19 @@ create_artifact_wall_banner_effect = { scope:newly_created_artifact = { add_scaled_artifact_modifier_grandeur_small_effect = yes if = { + limit = { + scope:owner = { + has_variable = { + name = banner_from_dynasty #Dynasty Banner + name = banner_from_house #House Banner + } + } + } + add_scaled_artifact_modifier_dynasty_prestige_effect = yes + add_scaled_artifact_modifier_prestige_effect = yes + add_scaled_artifact_modifier_rulership_effect = yes + } + else_if = { limit = { exists = scope:epic_loser } @@ -2063,6 +2159,16 @@ create_artifact_wall_banner_effect = { } remove_artifact_modifier = artifact_placeholder_modifier } + scope:owner = { + if = { + limit = { has_variable = banner_from_dynasty } + remove_variable = banner_from_dynasty + } + else_if = { + limit = { has_variable = banner_from_house } + remove_variable = banner_from_house + } + } } } @@ -2163,11 +2269,9 @@ create_artifact_sculpture_effect = { } } scope:owner = { - faith = { - OR = { - has_doctrine = tenet_aniconism - religion = religion:islam_religion - } + OR = { + rite = { rite_has_tenet = tenet_aniconism } + faith.religion = religion:islam_religion } } } @@ -2221,12 +2325,10 @@ create_artifact_sculpture_effect = { artifact_use_steppe_building_visuals_trigger = yes } } - scope:owner = { #An owner who follows an aniconic faith will never want a statue that portrays a human - faith = { - OR = { - has_doctrine = tenet_aniconism - religion = religion:islam_religion - } + scope:owner = { #An owner who follows an aniconic rite will never want a statue that portrays a human + OR = { + rite = { rite_has_tenet = tenet_aniconism } + faith.religion = religion:islam_religion } } } @@ -2349,6 +2451,7 @@ create_artifact_pedestal_religious_head_letter_effect = { #The crucifix should be preferred by non-aniconic Christian faiths create_artifact_pedestal_crucifix_effect = { $OWNER$ = { save_scope_as = owner } + $CREATOR$ = { save_scope_as = creator } get_artifact_quality_effect = yes get_artifact_wealth_effect = yes @@ -2356,10 +2459,10 @@ create_artifact_pedestal_crucifix_effect = { scope:owner = { create_artifact = { name = artifact_pedestal_crucifix_name - creator = scope:owner + creator = scope:creator description = artifact_pedestal_crucifix_description - visuals = cross - type = pedestal + visuals = crucifix + type = wall_big template = cross_template modifier = artifact_placeholder_modifier save_scope_as = newly_created_artifact @@ -2388,6 +2491,7 @@ create_artifact_pedestal_crucifix_effect = { #The cross is for aniconic Christian faiths create_artifact_pedestal_cross_effect = { $OWNER$ = { save_scope_as = owner } + $CREATOR$ = { save_scope_as = creator } get_artifact_quality_effect = yes get_artifact_wealth_effect = yes @@ -2396,6 +2500,7 @@ create_artifact_pedestal_cross_effect = { create_artifact = { name = artifact_pedestal_cross_name description = artifact_pedestal_cross_description + creator = scope:creator visuals = cross type = pedestal template = cross_template @@ -3697,6 +3802,67 @@ get_book_content_quality_effect = { #} # This will give you a book with no known author about intrigue with a random topic. +# Base effect handles selecting visuals depending on if there is a defined author, and whether they or the owner makes indian books or not +create_artifact_book_base_effect = { + if = { + limit = { exists = scope:author } + if = { + limit = { scope:author = { artifacts_use_indian_books_trigger = yes } } + create_artifact = { + name = placeholder # Will be regenerated in the post-creation effects + creator = scope:author + description = placeholder # Will be regenerated in the post-creation effects + visuals = indian_book + type = $TYPE$ + modifier = artifact_placeholder_modifier + save_scope_as = newly_created_artifact + wealth = scope:wealth + quality = scope:quality + } + } + else = { + create_artifact = { + name = placeholder # Will be regenerated in the post-creation effects + creator = scope:author + description = placeholder # Will be regenerated in the post-creation effects + visuals = book + type = $TYPE$ + modifier = artifact_placeholder_modifier + save_scope_as = newly_created_artifact + wealth = scope:wealth + quality = scope:quality + } + } + } + else = { + if = { + limit = { artifacts_use_indian_books_trigger = yes } + create_artifact = { + name = placeholder # Will be regenerated in the post-creation effects + description = placeholder # Will be regenerated in the post-creation effects + visuals = indian_book + type = $TYPE$ + modifier = artifact_placeholder_modifier + save_scope_as = newly_created_artifact + wealth = scope:wealth + quality = scope:quality + } + } + else = { + create_artifact = { + name = placeholder # Will be regenerated in the post-creation effects + description = placeholder # Will be regenerated in the post-creation effects + visuals = book + type = $TYPE$ + modifier = artifact_placeholder_modifier + save_scope_as = newly_created_artifact + wealth = scope:wealth + quality = scope:quality + } + } + } +} + create_artifact_book_effect = { $OWNER$ = { save_scope_as = owner } #Will always exist! $CREATOR$ = { #Doesn't always exist @@ -3731,186 +3897,24 @@ create_artifact_book_effect = { # Get artifact quality and wealth get_artifact_quality_effect = yes get_artifact_wealth_effect = yes - # To save the subject, topic, and other variables we'll need if it has been set in events or in the effect get_book_variables_effect = yes - if = { #Should this be a court artifact? - limit = { - has_royal_court = yes - has_dlc_feature = court_artifacts - NOT = { exists = scope:should_be_trinket } - } - if = { #Do we have an author? + scope:owner = { + if = { #Should this be a court artifact? limit = { - exists = scope:author - } - if = { #Is this author using Palm Leaf (indian) books? - limit = { - scope:author = { artifacts_use_indian_books_trigger = yes } - } - scope:owner = { - create_artifact = { - name = placeholder # Will be regenerated in the post-creation effects - creator = scope:author - description = placeholder # Will be regenerated in the post-creation effects - visuals = indian_book - type = book - modifier = artifact_placeholder_modifier - save_scope_as = newly_created_artifact - wealth = scope:wealth - quality = scope:quality - #decaying = no - } - } - } - else = { #Codices/Non-Indian books - scope:owner = { - create_artifact = { - name = placeholder # Will be regenerated in the post-creation effects - creator = scope:author - description = placeholder # Will be regenerated in the post-creation effects - visuals = book - type = book - modifier = artifact_placeholder_modifier - save_scope_as = newly_created_artifact - wealth = scope:wealth - quality = scope:quality - #decaying = no - } - } + has_royal_court = yes + has_dlc_feature = court_artifacts + NOT = { exists = scope:should_be_trinket } } + create_artifact_book_base_effect = { TYPE = book } } - else = { #We don't have an author - if = { - limit = { #Is this a palm leaf/indian book? - scope:owner = { artifacts_use_indian_books_trigger = yes } - } - scope:owner = { - create_artifact = { - name = placeholder # Will be regenerated in the post-creation effects - description = placeholder # Will be regenerated in the post-creation effects - visuals = indian_book - type = book - modifier = artifact_placeholder_modifier - save_scope_as = newly_created_artifact - wealth = scope:wealth - quality = scope:quality - #decaying = no - } - } - } - else = { #This is a codex/non-indian book: - scope:owner = { - create_artifact = { - name = placeholder # Will be regenerated in the post-creation effects - description = placeholder # Will be regenerated in the post-creation effects - visuals = book - type = book - history = { type = created_before_history } # We don't know who wrote it - modifier = artifact_placeholder_modifier - save_scope_as = newly_created_artifact - wealth = scope:wealth - quality = scope:quality - #decaying = no - } - } - } - } - } - else = { #This is a court artifact - if = { - limit = { - exists = scope:author #We have an author - } - if = { - limit = { - scope:author = { artifacts_use_indian_books_trigger = yes } - } - scope:owner = { - create_artifact = { - name = placeholder # Will be regenerated in the post-creation effects - creator = scope:author - description = placeholder # Will be regenerated in the post-creation effects - visuals = indian_book - type = journal - modifier = artifact_placeholder_modifier - save_scope_as = newly_created_artifact - wealth = scope:wealth - quality = scope:quality - } - } - # Subject and cover material is set as a required feature for a book-type artifact, but for a miscellaneous-type it's an optional feature, so we need to set it here - scope:newly_created_artifact = { - set_artifact_feature_group = book_subject - set_artifact_feature_group = book_cover_material - } - } - else = { #This is a codex/non-indian book - scope:owner = { - create_artifact = { - name = placeholder # Will be regenerated in the post-creation effects - creator = scope:author - description = placeholder # Will be regenerated in the post-creation effects - visuals = book - type = journal - modifier = artifact_placeholder_modifier - save_scope_as = newly_created_artifact - wealth = scope:wealth - quality = scope:quality - - } - } - # Subject and cover material is set as a required feature for a book-type artifact, but for a miscellaneous-type it's an optional feature, so we need to set it here - scope:newly_created_artifact = { - set_artifact_feature_group = book_subject - set_artifact_feature_group = book_cover_material - } - } - } - else = { #We don't have an author - if = { - limit = { #Is this a palm-leaf/indian book? - scope:owner = { artifacts_use_indian_books_trigger = yes } - } - scope:owner = { - create_artifact = { - name = placeholder # Will be regenerated in the post-creation effects - description = placeholder # Will be regenerated in the post-creation effects - visuals = indian_book - type = journal - modifier = artifact_placeholder_modifier - save_scope_as = newly_created_artifact - wealth = scope:wealth - quality = scope:quality - } - } - # Subject and cover material is set as a required feature for a book-type artifact, but for a miscellaneous-type it's an optional feature, so we need to set it here - scope:newly_created_artifact = { - set_artifact_feature_group = book_subject - set_artifact_feature_group = book_cover_material - } - } - else = { #This isn't a palm leaf/indian book - scope:owner = { - create_artifact = { - name = placeholder # Will be regenerated in the post-creation effects - description = placeholder # Will be regenerated in the post-creation effects - visuals = book - type = journal - history = { type = created_before_history } # We don't know who wrote it - modifier = artifact_placeholder_modifier - save_scope_as = newly_created_artifact - wealth = scope:wealth - quality = scope:quality - } - } - # Subject and cover material is set as a required feature for a book-type artifact, but for a miscellaneous-type it's an optional feature, so we need to set it here - scope:newly_created_artifact = { - set_artifact_feature_group = book_subject - set_artifact_feature_group = book_cover_material - } + else = { #This is a personal artifact + create_artifact_book_base_effect = { TYPE = journal } + scope:newly_created_artifact = { + set_artifact_feature_group = book_subject + set_artifact_feature_group = book_cover_material } } } @@ -4301,7 +4305,7 @@ create_artifact_book_effect = { } if = { limit = { - NOT = { scope:owner.faith = { has_doctrine_parameter = witchcraft_accepted } } + NOT = { scope:owner.rite = { rite_has_parameter = witchcraft_accepted } } } add_artifact_modifier = artifact_clergy_opinion_penalty_2_modifier } @@ -4366,19 +4370,19 @@ create_artifact_book_effect = { AND = { has_artifact_feature = book_subject_cannibal NOT = { - trait_is_criminal_in_faith_trigger = { TRAIT = trait:cannibal FAITH = scope:owner.faith GENDER_CHARACTER = scope:owner } + trait_is_criminal_in_rite_trigger = { TRAIT = trait:cannibal RITE = scope:owner.rite GENDER_CHARACTER = scope:owner } } } AND = { has_artifact_feature = book_subject_witch NOT = { - trait_is_criminal_in_faith_trigger = { TRAIT = trait:witch FAITH = scope:owner.faith GENDER_CHARACTER = scope:owner } + trait_is_criminal_in_rite_trigger = { TRAIT = trait:witch RITE = scope:owner.rite GENDER_CHARACTER = scope:owner } } } AND = { has_artifact_feature = book_subject_deviant NOT = { - trait_is_criminal_in_faith_trigger = { TRAIT = trait:deviant FAITH = scope:owner.faith GENDER_CHARACTER = scope:owner } + trait_is_criminal_in_rite_trigger = { TRAIT = trait:deviant RITE = scope:owner.rite GENDER_CHARACTER = scope:owner } } } @@ -4406,7 +4410,7 @@ create_artifact_book_effect = { } if = { # Vassal Opinion limit = { - scope:story = { has_variable = opinion_artifact } + scope:story ?= { has_variable = opinion_artifact } } if = { limit = { rarity = illustrious } @@ -4434,7 +4438,7 @@ create_artifact_book_effect = { } if = { # Scheme Resistance limit = { - scope:story = { has_variable = scheme_artifact } + scope:story ?= { has_variable = scheme_artifact } } if = { # 8 limit = { rarity = illustrious } @@ -4461,7 +4465,7 @@ create_artifact_book_effect = { } if = { # Controlled Province Advantage limit = { - scope:story = { has_variable = advantage_artifact } + scope:story ?= { has_variable = advantage_artifact } } if = { # 10 limit = { rarity = illustrious } @@ -4483,7 +4487,7 @@ create_artifact_book_effect = { } if = { # Personal Scheme Success Chance limit = { - scope:story = { has_variable = sway_artifact } + scope:story ?= { has_variable = sway_artifact } } if = { # 10 limit = { rarity = illustrious } @@ -4506,7 +4510,7 @@ create_artifact_book_effect = { } if = { # Monthly Piety + Same Faith Domain Tax limit = { - scope:story = { has_variable = piety_artifact } + scope:story ?= { has_variable = piety_artifact } } if = { # 0.4 + 1 limit = { rarity = illustrious } @@ -5880,6 +5884,15 @@ create_artifact_book_effect = { add_artifact_modifier = artifact_learn_language_scheme_phase_duration_add_1_modifier remove_artifact_modifier = artifact_placeholder_modifier } + else_if = { + limit = { + has_artifact_feature = book_subject_religious_text + } + add_artifact_modifier = artifact_study_faith_scheme_phase_duration_add_1_modifier + add_scaled_artifact_modifier_piety_effect = yes + add_artifact_modifier = artifact_monthly_learning_lifestyle_xp_1_modifier + remove_artifact_modifier = artifact_placeholder_modifier + } else_if = { limit = { trigger_if = { @@ -6276,7 +6289,7 @@ create_artifact_book_effect = { } if = { #We give a bigger boost here if it's illegal since they get nothing else limit = { - trait_is_criminal_in_faith_trigger = { TRAIT = trait:cannibal FAITH = root.faith GENDER_CHARACTER = root } + trait_is_criminal_in_rite_trigger = { TRAIT = trait:cannibal RITE = root.rite GENDER_CHARACTER = root } } add_artifact_modifier = artifact_dread_baseline_add_2_modifier add_artifact_modifier = artifact_vassal_opinion_penalty_1_modifier @@ -6308,7 +6321,7 @@ create_artifact_book_effect = { } if = { #We give a bigger boost here if it's illegal since they get nothing else limit = { - trait_is_criminal_in_faith_trigger = { TRAIT = trait:witch FAITH = root.faith GENDER_CHARACTER = root } + trait_is_criminal_in_rite_trigger = { TRAIT = trait:witch RITE = root.rite GENDER_CHARACTER = root } } add_artifact_modifier = artifact_dread_gain_mult_2_modifier add_artifact_modifier = artifact_monthly_learning_lifestyle_xp_2_modifier @@ -6324,7 +6337,7 @@ create_artifact_book_effect = { } if = { #We give a bigger boost here if it's illegal since they get nothing else limit = { - trait_is_criminal_in_faith_trigger = { TRAIT = trait:deviant FAITH = root.faith GENDER_CHARACTER = root } + trait_is_criminal_in_rite_trigger = { TRAIT = trait:deviant RITE = root.rite GENDER_CHARACTER = root } } add_artifact_modifier = artifact_vassal_opinion_penalty_1_modifier add_artifact_modifier = artifact_stress_gain_2_modifier @@ -6507,8 +6520,8 @@ create_artifact_pedestal_reliquary_christian_effect = { add_scaled_artifact_modifier_devotion_effect = yes add_scaled_artifact_modifier_grandeur_small_effect = yes set_variable = { - name = relic - value = flag:christian + name = relic_religion + value = religion:christianity_religion } } } @@ -6585,8 +6598,8 @@ create_artifact_pedestal_reliquary_islam_effect = { add_scaled_artifact_modifier_devotion_effect = yes add_scaled_artifact_modifier_grandeur_small_effect = yes set_variable = { - name = relic - value = flag:islamic + name = relic_religion + value = religion:islam_religion } } } @@ -6669,8 +6682,8 @@ create_artifact_pedestal_reliquary_buddhism_effect = { add_scaled_artifact_modifier_devotion_effect = yes add_scaled_artifact_modifier_grandeur_small_effect = yes set_variable = { - name = relic - value = flag:buddhism + name = relic_religion + value = religion:buddhism_religion } } } @@ -6712,8 +6725,8 @@ create_artifact_pedestal_reliquary_judaism_effect = { add_scaled_artifact_modifier_grandeur_small_effect = yes save_scope_as = epic set_variable = { - name = relic - value = flag:judaism + name = relic_religion + value = religion:judaism_religion } } } @@ -6763,22 +6776,119 @@ create_artifact_pedestal_reliquary_fracture_effect = { create_artifact_sculpture_religious_effect = { $OWNER$ = { save_scope_as = owner } + $CREATOR$ = { save_scope_as = creator } get_artifact_quality_effect = yes get_artifact_wealth_effect = yes scope:owner = { - create_artifact = { - name = artifact_sculpture_religious_name - description = artifact_sculpture_religious_description - creator = scope:owner - visuals = statue - type = sculpture - template = religious_statue_template - modifier = artifact_monthly_piety_3_modifier - save_scope_as = newly_created_artifact - wealth = scope:wealth - quality = scope:quality + random_list = { # To have different statue names + 1 = { + trigger = { religion != religion:christianity_religion } + create_artifact = { + name = artifact_sculpture_religious_highgod_name + description = artifact_sculpture_religious_highgod_description + creator = scope:creator + visuals = statue + type = sculpture + template = religious_statue_template + modifier = artifact_monthly_piety_3_modifier + save_scope_as = newly_created_artifact + wealth = scope:wealth + quality = scope:quality + } + } + 1 = { + trigger = { religion = religion:christianity_religion } + create_artifact = { + name = artifact_sculpture_religious_mary_name + description = artifact_sculpture_religious_mary_description + creator = scope:creator + visuals = statue + type = sculpture + template = religious_statue_template + modifier = artifact_monthly_piety_3_modifier + save_scope_as = newly_created_artifact + wealth = scope:wealth + quality = scope:quality + } + scope:newly_created_artifact = { + set_variable = statue_artifact_female_gender + } + } + 1 = { + create_artifact = { + name = artifact_sculpture_religious_health_name + description = artifact_sculpture_religious_health_description + creator = scope:creator + visuals = statue + type = sculpture + template = religious_statue_template + modifier = artifact_monthly_piety_3_modifier + save_scope_as = newly_created_artifact + wealth = scope:wealth + quality = scope:quality + } + } + 1 = { + create_artifact = { + name = artifact_sculpture_religious_fertility_name + description = artifact_sculpture_religious_fertility_description + creator = scope:creator + visuals = statue + type = sculpture + template = religious_statue_template + modifier = artifact_monthly_piety_3_modifier + save_scope_as = newly_created_artifact + wealth = scope:wealth + quality = scope:quality + } + scope:newly_created_artifact = { + set_variable = religious_fertility_statue + } + } + 1 = { + create_artifact = { + name = artifact_sculpture_religious_wealth_name + description = artifact_sculpture_religious_wealth_description + creator = scope:creator + visuals = statue + type = sculpture + template = religious_statue_template + modifier = artifact_monthly_piety_3_modifier + save_scope_as = newly_created_artifact + wealth = scope:wealth + quality = scope:quality + } + } + 1 = { + create_artifact = { + name = artifact_sculpture_religious_war_name + description = artifact_sculpture_religious_war_description + creator = scope:creator + visuals = statue + type = sculpture + template = religious_statue_template + modifier = artifact_monthly_piety_3_modifier + save_scope_as = newly_created_artifact + wealth = scope:wealth + quality = scope:quality + } + } + 1 = { + create_artifact = { + name = artifact_sculpture_religious_knowledge_name + description = artifact_sculpture_religious_knowledge_description + creator = scope:creator + visuals = statue + type = sculpture + template = religious_statue_template + modifier = artifact_monthly_piety_3_modifier + save_scope_as = newly_created_artifact + wealth = scope:wealth + quality = scope:quality + } + } } } diff --git a/common/scripted_effects/09_dlc_mpo_scripted_effects.txt b/common/scripted_effects/09_dlc_mpo_scripted_effects.txt index 7c80b5768..613335918 100644 --- a/common/scripted_effects/09_dlc_mpo_scripted_effects.txt +++ b/common/scripted_effects/09_dlc_mpo_scripted_effects.txt @@ -29,7 +29,7 @@ creating_kingdom_empire_title_effect = { save_scope_as = change add_claim_on_loss = no } - + scope:new_title = { add_to_list = creating_new_titles } @@ -41,7 +41,7 @@ creating_kingdom_empire_title_effect = { change = scope:change } } - + resolve_title_and_vassal_change = scope:change scope:new_title = { @@ -227,8 +227,8 @@ migration_settle_down_obedient_vassal_effect = { scope:actor = { ordered_in_list = { variable = obedient_vassals - order_by = { - value = 1 + order_by = { + value = 1 domicile ?= { add = herd } @@ -408,8 +408,8 @@ migration_message_effect = { limit = { is_vassal_of = scope:old_holder } send_interface_message = { type = msg_migration_into_realm - title = msg_migration_into_realm_tributary_title - desc = msg_migration_into_realm_tributary_desc + title = msg_migration_into_liege_title + desc = msg_migration_into_liege_desc left_icon = scope:actor right_icon = scope:old_holder } @@ -530,19 +530,24 @@ migration_title_and_vassal_change_effect = { scope:target_title.tier >= tier_kingdom } scope:target_title ?= { - every_de_jure_county_holder = { + every_in_de_jure_hierarchy = { + continue = { + tier >= tier_duchy + } limit = { - OR = { - any_in_list = { - list = old_holder - this = prev - } - this = scope:recipient - AND = { - scope:recipient = this.liege - any_held_county = { - exists = duchy - NOT = { target_is_de_jure_liege_or_above = scope:target_title } + holder ?= { + OR = { + any_in_list = { + list = old_holder + this = prev + } + this = scope:recipient + AND = { + scope:recipient = this.liege + any_held_county = { + is_landless_type_title = no + NOT = { target_is_de_jure_liege_or_above = scope:target_title } + } } } } @@ -559,15 +564,15 @@ migration_title_and_vassal_change_effect = { OR = { any_in_list = { list = old_holder - NOT = { this = prev } + this != prev this = prev.liege } AND = { - NOT = { this = scope:recipient } + this != scope:recipient scope:recipient = this.liege } } - NOT = { this = scope:actor } + this != scope:actor } add_to_list = new_vassals } @@ -675,7 +680,7 @@ migration_title_and_vassal_change_effect = { save_scope_as = change4 } ordered_held_county = { - limit = { + limit = { exists = duchy NOT = { this = scope:actor.capital_province.county } } @@ -755,7 +760,7 @@ migration_title_and_vassal_change_effect = { # Change 8: If for some reason you have any vassals who are still your subjects, but don't hold land, they will become independent scope:actor = { every_vassal = { - limit = { + limit = { NOT = { any_held_county = { exists = duchy @@ -793,6 +798,44 @@ migration_title_and_vassal_change_effect = { debug_log = "Migration completed" debug_log_scopes = yes } + + # Safeguard: Make sure everyone follow you instead of staying at the previous location + hidden_effect = { + scope:actor = { + update_domicile_and_courtier_location_effect = yes + } + scope:recipient ?= { + update_domicile_and_courtier_location_effect = yes + } + every_in_list = { + list = settled_vassal + update_domicile_and_courtier_location_effect = yes + } + } +} + +update_domicile_and_courtier_location_effect = { + if = { + limit = { + exists = capital_province + is_ruler = yes + } + every_courtier_or_guest = { + limit = { + location != prev.capital_province + should_in_default_location_trigger = yes + } + debug_log = "Courtier not updated in migration" + debug_log_scopes = no + set_location_to_default = yes + } + every_prisoner = { + limit = { location != prev.capital_province } + debug_log = "Prisoner not updated in migration" + debug_log_scopes = no + set_location_to_default = yes + } + } } migration_set_obedient_vassal_effect = { @@ -896,7 +939,7 @@ confederation_realm_transfer_effect = { } } resolve_title_and_vassal_change = scope:change_3 - + every_in_list = { custom = custom.every_non_de_jure_vassal list = vassals_to_transfer @@ -1344,7 +1387,7 @@ mpo_execution_head_artifact_creation_effect = { set_owner = root } } - + random_list = { 4 = { trigger = { @@ -1473,7 +1516,7 @@ ai_paiza_giveaway_effect = { limit = { NOT = { any_character_artifact = { - scope:artifact.var:paiza_patron ?= root + var:paiza_patron ?= root } } } @@ -1486,7 +1529,7 @@ ai_paiza_giveaway_effect = { limit = { NOT = { any_character_artifact = { - scope:artifact.var:paiza_patron ?= root + var:paiza_patron ?= root } } } @@ -1502,7 +1545,7 @@ mpo_find_suitable_merchant_effect = { 1 = { #Merv trigger = { title:c_bukhara = { - development_level >= 30 + development_level >= 10 NOT = { holder.top_liege = { government_has_flag = government_is_nomadic @@ -1520,7 +1563,7 @@ mpo_find_suitable_merchant_effect = { 1 = { #Nishapur trigger = { title:c_nishapur = { - development_level >= 30 + development_level >= 10 NOT = { holder.top_liege = { government_has_flag = government_is_nomadic @@ -1538,7 +1581,7 @@ mpo_find_suitable_merchant_effect = { 1 = { #Khotan trigger = { title:c_khotan = { - development_level >= 30 + development_level >= 10 NOT = { holder.top_liege = { government_has_flag = government_is_nomadic @@ -1556,7 +1599,7 @@ mpo_find_suitable_merchant_effect = { 1 = { #Wroclaw trigger = { title:c_breslau = { - development_level >= 30 + development_level >= 10 NOT = { holder.top_liege = { government_has_flag = government_is_nomadic @@ -1574,7 +1617,7 @@ mpo_find_suitable_merchant_effect = { 1 = { #Krakow trigger = { title:c_krakowska = { - development_level >= 30 + development_level >= 10 NOT = { holder.top_liege = { government_has_flag = government_is_nomadic @@ -1592,7 +1635,7 @@ mpo_find_suitable_merchant_effect = { 1 = { #Novgorod trigger = { title:c_novgorod = { - development_level >= 30 + development_level >= 10 NOT = { holder.top_liege = { government_has_flag = government_is_nomadic @@ -1610,7 +1653,7 @@ mpo_find_suitable_merchant_effect = { 1 = { #Kyiv trigger = { title:c_kiev = { - development_level >= 30 + development_level >= 10 NOT = { holder.top_liege = { government_has_flag = government_is_nomadic @@ -1628,7 +1671,7 @@ mpo_find_suitable_merchant_effect = { 1 = { #Baghdad trigger = { title:c_baghdad = { - development_level >= 30 + development_level >= 10 NOT = { holder.top_liege = { government_has_flag = government_is_nomadic @@ -1646,7 +1689,7 @@ mpo_find_suitable_merchant_effect = { 1 = { #Pisa trigger = { title:c_pisa = { - development_level >= 30 + development_level >= 10 NOT = { holder.top_liege = { government_has_flag = government_is_nomadic @@ -1663,8 +1706,8 @@ mpo_find_suitable_merchant_effect = { } 1 = { #Venice trigger = { - title:c_baghdad = { - development_level >= 30 + title:c_venezia = { + development_level >= 10 NOT = { holder.top_liege = { government_has_flag = government_is_nomadic @@ -1673,16 +1716,16 @@ mpo_find_suitable_merchant_effect = { } } modifier = { - add = title:c_baghdad.development_level + add = title:c_venezia.development_level } - title:b_baghdad = { + title:c_venezia = { save_scope_as = merchant_origin } } 1 = { #Cairo trigger = { title:c_cairo = { - development_level >= 30 + development_level >= 10 NOT = { holder.top_liege = { government_has_flag = government_is_nomadic @@ -1700,7 +1743,7 @@ mpo_find_suitable_merchant_effect = { 1 = { #Genua trigger = { title:c_genoa = { - development_level >= 30 + development_level >= 10 NOT = { holder.top_liege = { government_has_flag = government_is_nomadic @@ -1740,7 +1783,7 @@ mpo_find_suitable_merchant_effect = { multiply = 21.37 } } - } + } } #scope:patron is the creator @@ -1757,7 +1800,7 @@ mpo_create_paiza_artifact_effect = { value = { value = 20 multiply = { - value = scope:patron.primary_title.tier + value = scope:patron.primary_title.tier add = scope:patron.dominance_value } } @@ -1767,7 +1810,7 @@ mpo_create_paiza_artifact_effect = { value = { value = 20 multiply = { - value = scope:patron.primary_title.tier + value = scope:patron.primary_title.tier add = scope:patron.dominance_value } } @@ -1778,7 +1821,7 @@ mpo_create_paiza_artifact_effect = { type = miscellaneous template = paiza_artifact_template creator = scope:patron - description = paiza_artifact_desc + description = paiza_artifact_desc visuals = paiza wealth = scope:wealth quality = scope:quality @@ -1805,7 +1848,7 @@ mpo_paiza_innovation_reward_effect = { modifier = mpo_fascination_leap_modifier years = 4 } - } + } } nomad_yurt_increased_innovation_paiza_lvl_2 = { root = { @@ -1868,7 +1911,7 @@ mpo_paiza_innovation_reward_effect = { } } } - + } @@ -1894,10 +1937,10 @@ mpo_paiza_deal_grade_effect = { } } } - + set_variable = { name = trade_gold_percent - value = 1 + value = 1 } change_variable = { name = trade_gold_percent @@ -1929,7 +1972,7 @@ mpo_paiza_deal_grade_effect = { add = 0.1 } } - } + } nomad_yurt_paiza_more_gold_lvl_3 = { custom_tooltip = paiza_yurt_gold_percent_3 root = { @@ -1963,7 +2006,7 @@ mpo_yurts_paiza_bonuses_tooltip_effect = { } custom_tooltip = yurt_paiza_bonuses_generic } - + domicile ?= { if = { limit = { @@ -2048,7 +2091,7 @@ mpo_paiza_improve_maa_smol_effect = { add_domicile_building = paiza_metal_trade_yurt_01 } } - remove_character_flag = paiza_metal_trade_yurt_flag + remove_character_flag = paiza_metal_trade_yurt_flag } mpo_paiza_improve_maa_effect = { @@ -2092,7 +2135,7 @@ mpo_paiza_abuse_counter_effect = { limit = { scope:paiza_patron = { is_ai = no - } + } } custom_tooltip = mpo_paiza_abuse_counter_effect.random scope:paiza_patron = { @@ -2140,7 +2183,7 @@ mpo_paiza_abuse_counter_effect = { } } flag:annoyed = { - custom_tooltip = mpo_paiza_abuse_counter_effect.annoyed + custom_tooltip = mpo_paiza_abuse_counter_effect.annoyed random_list = { 40 = { modifier = { @@ -2363,7 +2406,7 @@ mpo_decisions_events_friend_fail_effect = { } scope:friendship_target = { short_term_gold >= minor_gold_value - + } } scope:friendship_target = { @@ -3057,7 +3100,7 @@ nomad_domicile_refund_effect = { nomad_convert_people_to_tribe_effect = { change_government = tribal_government - + #Winning a cool war to get this government should mean high authority if = { limit = { @@ -3367,7 +3410,7 @@ mpo_overrunning_vassal_title_distribution_effect = { mpo_overrunning_willing_vassal_trigger = yes } save_scope_as = undervassal - + #Give up nomadic titles if = { limit = { @@ -3420,25 +3463,11 @@ mpo_overrunning_vassal_title_distribution_effect = { scope:undervassal = { OR = { #Personal reasons to go clan - faith.religion = religion:islam_religion - culture ?= { - OR = { - has_cultural_pillar = heritage_arabic - has_cultural_pillar = heritage_iranian - } - } + ep3_is_clan_inclined_trigger = yes #county and liege are clan AND = { scope:title_to_grant = { - OR = { - faith.religion = religion:islam_religion - culture = { - OR = { - has_cultural_pillar = heritage_arabic - has_cultural_pillar = heritage_iranian - } - } - } + ep3_is_clan_inclined_trigger = yes } scope:attacker = { government_has_flag = government_is_clan @@ -3512,25 +3541,11 @@ mpo_overrunning_vassal_title_distribution_effect = { scope:title_gainer = { OR = { #Personal reasons to go clan - faith.religion = religion:islam_religion - culture = { - OR = { - has_cultural_pillar = heritage_arabic - has_cultural_pillar = heritage_iranian - } - } + ep3_is_clan_inclined_trigger = yes #county and liege are clan AND = { scope:title_to_grant = { - OR = { - faith.religion = religion:islam_religion - culture = { - OR = { - has_cultural_pillar = heritage_arabic - has_cultural_pillar = heritage_iranian - } - } - } + ep3_is_clan_inclined_trigger = yes } scope:attacker = { government_has_flag = government_is_clan @@ -3549,7 +3564,7 @@ mpo_overrunning_vassal_title_distribution_effect = { } } } - + #Have to re-add them as a vassal probably scope:title_gainer = { if = { @@ -3570,7 +3585,7 @@ mpo_overrunning_vassal_title_distribution_effect = { resolve_title_and_vassal_change = scope:change } } - + #Remove chosen titles from list scope:duchy_to_grant ?= { remove_from_list = overrun_duchies @@ -3616,7 +3631,7 @@ mpo_overrunning_vassal_title_distribution_effect = { } resolve_title_and_vassal_change = scope:change } - + #GIVE DUKES THE REST OF THEIR COUNTIES FROM ATTACKER every_held_title = { limit = { @@ -3792,25 +3807,11 @@ mpo_duchy_overrunning_vassal_title_distribution_effect = { scope:title_gainer = { OR = { #Personal reasons to go clan - faith.religion = religion:islam_religion - culture = { - OR = { - has_cultural_pillar = heritage_arabic - has_cultural_pillar = heritage_iranian - } - } + ep3_is_clan_inclined_trigger = yes #county and liege are clan AND = { scope:title_to_grant = { - OR = { - faith.religion = religion:islam_religion - culture = { - OR = { - has_cultural_pillar = heritage_arabic - has_cultural_pillar = heritage_iranian - } - } - } + ep3_is_clan_inclined_trigger = yes } scope:attacker = { government_has_flag = government_is_clan @@ -3829,7 +3830,7 @@ mpo_duchy_overrunning_vassal_title_distribution_effect = { } } } - + #Have to re-add them as a vassal probably scope:title_gainer = { if = { @@ -3850,7 +3851,7 @@ mpo_duchy_overrunning_vassal_title_distribution_effect = { resolve_title_and_vassal_change = scope:change } } - + #Remove chosen titles from list scope:title_to_grant = { remove_from_list = overrun_counties @@ -3919,6 +3920,39 @@ nomad_convert_herds_to_gold_special_troops_effect = { } } + +settle_the_people_vassal_effect = { + nomad_domicile_refund_effect = yes + nomad_convert_herds_to_gold_special_troops_effect = yes + if = { + limit = { + any_held_title = { + is_nomad_title = yes + } + } + every_held_title = { + limit = { + is_nomad_title = yes + } + root = { + destroy_title = prev + } + } + } + if = { + limit = { + scope:new_capital.title_province = { + has_holding_type = tribal_holding + } + } + assign_tribal_governments_effect = yes + } + else = { + assign_feudal_governments_effect = yes + } + change_authority_effect = { CHANGE = 1 } +} + set_throatsinging_style_effect = { random_list = { 10 = { @@ -4061,7 +4095,7 @@ mpo_save_potential_blood_brother_war_allies_effect = { mpo_valid_for_blood_brotherhood_trigger = yes } add_to_list = attacker_war_allies_list - + } while = { limit = { @@ -4503,7 +4537,7 @@ make_blood_brother_save_common_enemy_effect = { #You have a house feud against someone recipient is also opposed to else_if = { limit = { - + exists = house.house_head exists = scope:recipient.house NOT = { @@ -4875,7 +4909,6 @@ confederation_migration_notification_effect = { type = msg_broken_confederation title = msg_broken_confederation_migration_root desc = msg_broken_confederation_migration_root_desc - left_icon = confederation } add_character_flag = { flag = migrating_from_confederation @@ -4889,6 +4922,7 @@ summon_three_fair_courtiers_effect = { employer = scope:root_scope template = $NOMAD_TEMPLATE_CHARACTER$ faith = root.location.faith + rite = root.location.rite culture = root.location.culture after_creation = { add_to_list = three_fair_courtiers_list @@ -4898,6 +4932,7 @@ summon_three_fair_courtiers_effect = { employer = scope:root_scope template = $NOMAD_TEMPLATE_CHARACTER$ faith = root.location.faith + rite = root.location.rite culture = root.location.culture after_creation = { add_to_list = three_fair_courtiers_list @@ -4907,6 +4942,7 @@ summon_three_fair_courtiers_effect = { employer = scope:root_scope template = $NOMAD_TEMPLATE_CHARACTER$ faith = root.location.faith + rite = root.location.rite culture = root.location.culture after_creation = { add_to_list = three_fair_courtiers_list @@ -4920,6 +4956,7 @@ summon_three_fair_courtiers_effect = { } every_in_list = { list = three_fair_courtiers_list + save_scope_as = new_commander assign_random_nickname_effect = yes if = { limit = { @@ -4935,7 +4972,6 @@ summon_three_fair_courtiers_effect = { flag = blocked_from_leaving years = 25 } - save_scope_as = new_commander # for the localization scope:root_scope = { send_interface_message = { title = nomad_character_recruited.t @@ -4977,9 +5013,9 @@ mpo_war_vassal_tributary_effect = { } } - holder ?= { + holder ?= { add_to_list = target_holder - save_scope_as = temp_de_jure_liege + save_scope_as = temp_de_jure_liege } add_hook_from_temp_de_jure_liege_to_attacker = yes } @@ -5068,7 +5104,7 @@ mpo_war_vassal_tributary_effect = { } remove_from_list = target_titles } - + save_scope_value_as = { name = cb_prestige_factor value = { @@ -5306,8 +5342,8 @@ mpo_yearly_dynasty_of_many_khans_effect = { } add_dynasty_prestige = root.var:temp_dynn_prestige } - remove_variable = temp_dynn_prestige - } + remove_variable = temp_dynn_prestige + } } } @@ -5596,7 +5632,7 @@ language_yurt_effect = { multiply = $CHANCE$ min = 0 } - root = { + root = { send_interface_message = { title = language_yurt_effect_tt desc = language_yurt_effect_desc @@ -5664,7 +5700,7 @@ de_jure_shifting_effect = { type = msg_mpo_de_jure_shifting title = msg_mpo_de_jure_shifting left_icon = root - ordered_in_list = { + ordered_in_list = { order_by = { value = 1 } @@ -5672,7 +5708,7 @@ de_jure_shifting_effect = { check_range_bounds = no list = de_jure_shifted_title show_as_tooltip = { - set_de_jure_liege_title = root.primary_title + set_de_jure_liege_title = root.primary_title } remove_from_list = de_jure_shifted_title } @@ -5695,12 +5731,12 @@ omen_yurt_effect = { if = { limit = { exists = scope:improved_child - } + } send_interface_message = { title = omen_yurt_effect_tt desc = omen_yurt_effect_desc left_icon = scope:improved_child - scope:improved_knight = { + scope:improved_child = { random_list = { 1 = { add_diplomacy_skill = 1 } 1 = { add_stewardship_skill = 1 } @@ -5710,7 +5746,7 @@ omen_yurt_effect = { } } } - } + } } } } @@ -5774,18 +5810,18 @@ better_children_yurt_effect = { limit = { exists = scope:yurt_heir } - } - send_interface_message = { - title = better_children_yurt_effect_tt - desc = better_children_yurt_effect_desc - left_icon = scope:yurt_heir - scope:yurt_heir = { - random_list = { - 1 = { add_diplomacy_skill = 1 } - 1 = { add_stewardship_skill = 1 } - 1 = { add_intrigue_skill = 1 } - 1 = { add_learning_skill = 1 } - 1 = { add_martial_skill = 1 } + send_interface_message = { + title = better_children_yurt_effect_tt + desc = better_children_yurt_effect_desc + left_icon = scope:yurt_heir + scope:yurt_heir = { + random_list = { + 1 = { add_diplomacy_skill = 1 } + 1 = { add_stewardship_skill = 1 } + 1 = { add_intrigue_skill = 1 } + 1 = { add_learning_skill = 1 } + 1 = { add_martial_skill = 1 } + } } } } @@ -5870,7 +5906,7 @@ knight_mystical_yurt_effect = { if = { limit = { exists = scope:improved_knight - } + } send_interface_message = { title = knight_mystical_yurt_effect_tt desc = knight_mystical_yurt_effect_desc @@ -5879,7 +5915,7 @@ knight_mystical_yurt_effect = { add_prowess_skill = $PROWESS$ } } - } + } } } } @@ -5925,7 +5961,7 @@ clean_up_ai_nomad_effect = { liege ?= { is_ai = yes } } is_migrating = no - NOT = { exists = involved_activity } + is_in_activity = no } domicile.domicile_location = { save_scope_as = place_to_stay } if = { @@ -5958,7 +5994,7 @@ clean_up_ai_nomad_effect = { } move_to_pool_at = scope:place_to_stay } - + random = { chance = { value = 20 @@ -6019,7 +6055,7 @@ clean_up_ai_nomad_effect = { } } } - + if = { limit = { scope:nomad_capital_ruler = { @@ -6149,6 +6185,12 @@ expanding_steppe_effect = { REGION = dlc_mpo_steppe_central_china_expansion } } + scope:dlc_mpo_steppe_north_east_asia_expansion = { + expanding_steppe_add_region_effect = { + SUB_REGION = east + REGION = dlc_mpo_steppe_north_east_asia_expansion + } + } scope:world_asia_korea = { expanding_steppe_add_region_effect = { SUB_REGION = east @@ -6195,6 +6237,7 @@ nomadic_heir_cleanup_realm_effect = { save_scope_as = inheritor_char } every_held_title = { + title_tier > barony limit = { is_landless_type_title = no } @@ -6213,11 +6256,9 @@ nomadic_heir_cleanup_realm_effect = { type = swear_fealty save_scope_as = change } - scope:recipient = { - change_liege = { - liege = scope:old_liege - change = scope:change - } + change_liege = { + liege = scope:old_liege + change = scope:change } resolve_title_and_vassal_change = scope:change } @@ -6291,9 +6332,9 @@ nomadic_realm_split_effect = { } save_scope_as = new_capital } - + # Mark the capital duchy - scope:new_ruler_scope = { + scope:new_ruler_scope = { scope:new_capital = { add_to_list = counties_given_to_sibling } @@ -6355,7 +6396,7 @@ nomadic_realm_split_effect = { add_to_list = duchies_given_to_sibling if = { limit = { - holder = { + holder ?= { top_liege = scope:root_scope primary_title.tier < tier_kingdom NOT = { is_in_list = rulers_transferred } @@ -6372,7 +6413,7 @@ nomadic_realm_split_effect = { add_to_list = counties_given_to_sibling if = { limit = { - holder = { + holder ?= { top_liege = scope:root_scope primary_title.tier < tier_kingdom NOT = { is_in_list = rulers_transferred } @@ -6429,7 +6470,7 @@ nomadic_realm_split_effect = { add_to_list = duchies_given_to_sibling if = { limit = { - holder = { + holder ?= { top_liege = scope:root_scope primary_title.tier < tier_kingdom NOT = { is_in_list = rulers_transferred } @@ -6446,7 +6487,7 @@ nomadic_realm_split_effect = { add_to_list = counties_given_to_sibling if = { limit = { - holder = { + holder ?= { top_liege = scope:root_scope primary_title.tier < tier_kingdom NOT = { is_in_list = rulers_transferred } @@ -6467,14 +6508,14 @@ nomadic_realm_split_effect = { } } } - + # Hand out the titles properly create_title_and_vassal_change = { type = swear_fealty add_claim_on_loss = yes save_scope_as = change } - + # Give capital + capital duchy scope:capital_duchy = { change_title_holder = { @@ -6489,7 +6530,7 @@ nomadic_realm_split_effect = { change = scope:change } } - + # Form a new kingdom save_scope_as = founder scope:capital_duchy = { @@ -6508,7 +6549,7 @@ nomadic_realm_split_effect = { generate_coa = yes set_de_jure_liege_title = scope:root_scope.primary_title.empire } - + # Do everything else every_in_list = { list = counties_given_to_sibling @@ -6531,10 +6572,8 @@ nomadic_realm_split_effect = { } if = { limit = { - NOT = { - this = scope:new_ruler_scope - } holder = { + this != scope:new_ruler_scope liege = scope:root_scope primary_title.tier < tier_kingdom } @@ -6547,9 +6586,9 @@ nomadic_realm_split_effect = { } } } - + resolve_title_and_vassal_change = scope:change - + every_in_list = { list = duchies_to_de_jure_shift set_de_jure_liege_title = scope:new_kingdom_title @@ -6593,9 +6632,9 @@ mpo_abuse_authority_county_effect = { } root = { add_gold = medium_gold_value - add_prestige = medium_prestige_value + add_prestige = medium_prestige_value } - } + } } } @@ -6634,13 +6673,14 @@ mpo_release_herder_land_effect = { location = scope:county_of_origin.title_province culture = scope:county_of_origin.culture faith = scope:county_of_origin.faith + rite = scope:county_of_origin.rite gender_female_chance = { if = { - limit = { scope:county_of_origin.faith = { has_doctrine = doctrine_gender_male_dominated } } + limit = { scope:county_of_origin.rite = { rite_has_doctrine = doctrine_gender_male_dominated } } add = 20 } else_if = { - limit = { scope:county_of_origin.faith = { has_doctrine = doctrine_gender_female_dominated } } + limit = { scope:county_of_origin.rite = { rite_has_doctrine = doctrine_gender_female_dominated } } add = 80 } else = { diff --git a/common/scripted_effects/tgp_debate_scripted_effects.txt b/common/scripted_effects/tgp_debate_scripted_effects.txt index 287a5f34f..af3616e0e 100644 --- a/common/scripted_effects/tgp_debate_scripted_effects.txt +++ b/common/scripted_effects/tgp_debate_scripted_effects.txt @@ -230,6 +230,7 @@ debate_disburse_activity_ai_guest_rewards = { if = { limit = { has_activity_intent = debate_increase_movement_power_intent + exists = top_participant_group:dynastic_cycle } top_participant_group:dynastic_cycle ?= { save_scope_as = my_movement @@ -429,7 +430,7 @@ debate_host_rewards_effect = { limit = { variable_list_size = { name = debate_disciples - value = 1 + value >= 1 } num_of_relation_disciple >= 1 } @@ -443,14 +444,14 @@ debate_host_rewards_effect = { limit = { variable_list_size = { name = debate_disciples - value = 2 + value >= 2 } num_of_relation_disciple >= 2 } ordered_in_list = { variable = debate_disciples order_by = learning - position = 0 + position = 1 save_scope_as = disciple_2 } } @@ -458,7 +459,7 @@ debate_host_rewards_effect = { limit = { variable_list_size = { name = debate_disciples - value = 3 + value >= 3 } num_of_relation_disciple >= 3 } @@ -562,6 +563,7 @@ debate_disburse_activity_host_rewards = { scope:host = { debate_host_rewards_effect = yes } } } + pam_vows_of_poverty_host_completion_piety_effect = yes } else = { show_as_tooltip = { debate_host_rewards_effect = yes } diff --git a/common/scripted_effects/tgp_imperial_examination_scripted_effects.txt b/common/scripted_effects/tgp_imperial_examination_scripted_effects.txt index d7794f141..266723b94 100644 --- a/common/scripted_effects/tgp_imperial_examination_scripted_effects.txt +++ b/common/scripted_effects/tgp_imperial_examination_scripted_effects.txt @@ -55,7 +55,7 @@ imperial_examination_update_cheat_washing_effect = { imperial_examination_cheat_washing_effect = { #What a relief. - stress_impact = { base = major_stress_impact_loss } + stress_and_fulfillment_impact = { base = major_stress_impact_loss } #Gonzo! custom_tooltip = imperial_examination.cheat_wash.tt remove_variable ?= been_caught_cheating @@ -149,6 +149,7 @@ imperial_examination_disburse_activity_host_rewards = { } } } + pam_vows_of_poverty_host_completion_piety_effect = yes } local_examination_disburse_activity_host_rewards = { @@ -246,6 +247,7 @@ local_examination_disburse_activity_host_rewards = { } } } + pam_vows_of_poverty_host_completion_piety_effect = yes } imperial_examination_disburse_activity_examiner_rewards = { @@ -437,9 +439,9 @@ imperial_examination_disburse_activity_entrant_rewards = { if = { limit = { has_character_flag = exam_cheat_intent - NOR = { - has_variable = been_caught_cheating - has_variable = been_caught_cheating_longterm + has_none_of_variables = { + name = been_caught_cheating + name = been_caught_cheating_longterm } government_allows = merit } @@ -592,9 +594,9 @@ local_examination_disburse_activity_entrant_rewards = { if = { limit = { has_character_flag = exam_cheat_intent - NOR = { - has_variable = been_caught_cheating - has_variable = been_caught_cheating_longterm + has_none_of_variables = { + name = been_caught_cheating + name = been_caught_cheating_longterm } government_allows = merit } @@ -865,7 +867,7 @@ imperial_examination_set_up_examiners_effect = { value < examiners_amount } any_attending_character = { - location = scope:activity_location + location = scope:location this != scope:host is_ai = yes tgp_gender_can_be_exam_entrant_trigger = yes @@ -884,7 +886,7 @@ imperial_examination_set_up_examiners_effect = { } random_attending_character = { limit = { - location = scope:activity_location + location = scope:location is_ai = yes this != scope:host tgp_gender_can_be_exam_entrant_trigger = yes @@ -1144,10 +1146,20 @@ imperial_examination_set_up_examiners_effect = { } } add_character_flag = passed_metropolitan_exam + add_character_modifier = { + modifier = tgp_passed_metropolitan_exam_modifier + } + add_character_flag = passed_provincial_exam + add_character_modifier = { + modifier = tgp_passed_provincial_exam_modifier + } } else = { add_character_flag = passed_provincial_exam - } + add_character_modifier = { + modifier = tgp_passed_provincial_exam_modifier + } + } } $HOST$ = { add_courtier = scope:new_examiner } scope:activity = { @@ -1171,9 +1183,19 @@ imperial_examination_set_up_examiners_effect = { } } add_character_flag = passed_metropolitan_exam + add_character_modifier = { + modifier = tgp_passed_metropolitan_exam_modifier + } + add_character_flag = passed_provincial_exam + add_character_modifier = { + modifier = tgp_passed_provincial_exam_modifier + } } else = { add_character_flag = passed_provincial_exam + add_character_modifier = { + modifier = tgp_passed_provincial_exam_modifier + } } } $HOST$ = { add_courtier = scope:new_examiner } @@ -1465,7 +1487,6 @@ imperial_examination_gather_stray_entrants_effect = { limit = { involved_activity ?= scope:activity this != root - is_landed = no trigger_if = { limit = { scope:activity = { @@ -1475,9 +1496,9 @@ imperial_examination_gather_stray_entrants_effect = { NOT = { has_character_flag = passed_palace_exam} } trigger_else = { - NOR = { - has_character_flag = passed_provincial_exam - has_character_flag = passed_metropolitan_exam + has_none_of_variables = { + name = passed_provincial_exam + name = passed_metropolitan_exam } } # To make sure no characters appear that shouldn't. @@ -1485,15 +1506,6 @@ imperial_examination_gather_stray_entrants_effect = { has_trait = devoted has_trait = eunuch } - trigger_if = { - limit = { - exists = primary_title - } - primary_title = { - is_mercenary_company = no - is_holy_order = no - } - } tgp_gender_can_be_exam_entrant_trigger = yes } add_to_list = entourage_entrants @@ -1509,12 +1521,12 @@ imperial_examination_gather_stray_entrants_effect = { has_activity_type = activity_imperial_examination } } - NOT = { has_character_flag = passed_palace_exam} + NOT = { has_character_flag = passed_palace_exam } } trigger_else = { - NOR = { - has_character_flag = passed_provincial_exam - has_character_flag = passed_metropolitan_exam + has_none_of_variables = { + name = passed_provincial_exam + name = passed_metropolitan_exam } } # To make sure no characters appear that shouldn't. @@ -1540,11 +1552,11 @@ imperial_examination_gather_stray_entrants_effect = { list = entourage_entrants if = { limit = { - can_join_activity = scope:activity NOT = { involved_activity ?= scope:activity } location = scope:activity.activity_location + can_join_activity = scope:activity } add_to_activity_without_travel = scope:activity } @@ -1871,9 +1883,9 @@ imperial_examination_grab_nr_of_family_entrants_effect = { every_in_list = { list = parent_relevant_entrants limit = { - OR = { - has_character_flag = passed_palace_exam - has_character_flag = passed_metropolitan_exam + has_variable = { + name = passed_palace_exam + name = passed_metropolitan_exam } } root = { diff --git a/common/scripted_effects/tgp_mandala_scripted_effects.txt b/common/scripted_effects/tgp_mandala_scripted_effects.txt index 7fe352bc8..aba69805d 100644 --- a/common/scripted_effects/tgp_mandala_scripted_effects.txt +++ b/common/scripted_effects/tgp_mandala_scripted_effects.txt @@ -78,7 +78,7 @@ determine_if_contributed_and_save_scope_effect = { ### Capital 01 Breakdown Effects ### mandala_contributor_minor_rite_reward_effect = { add_legitimacy = mandala_contribution_minor_legitimacy_reward - add_piety_experience = mandala_contribution_medium_dynasty_reward + add_piety_experience = mandala_contribution_medium_piety_reward } contributed_rites_of_worthiness_effect = { custom_description_no_bullet = { text = contributed_rite_of_worthiness } @@ -259,7 +259,7 @@ mandala_contributor_tiles_reward_effect = { multiply = 5 } } - add_piety_experience = mandala_contribution_medium_dynasty_reward + add_piety_experience = mandala_contribution_medium_piety_reward } contributed_tiles_effect = { custom_description_no_bullet = { text = contributed_tiles } @@ -397,7 +397,7 @@ check_and_reward_contributions_02_effect = { ### Capital 03 Breakdown Effects ### mandala_contributor_medium_rite_reward_effect = { add_legitimacy = mandala_contribution_medium_legitimacy_reward - add_piety_experience = mandala_contribution_major_dynasty_reward + add_piety_experience = mandala_contribution_major_piety_reward } contributed_rites_of_worthiness_02_effect = { custom_description_no_bullet = { text = contributed_rite_of_worthiness } @@ -457,7 +457,7 @@ mandala_contributor_divine_statues_reward_effect = { multiply = 1.5 } } - add_piety_experience = mandala_contribution_medium_dynasty_reward + add_piety_experience = mandala_contribution_medium_piety_reward } if = { limit = { exists = scope:province } @@ -738,7 +738,7 @@ mandala_contributor_gilded_shrines_reward_effect = { multiply = 1.5 } } - add_piety_experience = mandala_contribution_medium_dynasty_reward + add_piety_experience = mandala_contribution_medium_piety_reward } if = { limit = { exists = scope:province } @@ -1243,24 +1243,6 @@ mandala_peacemaker_perk_serenity_effect = { change_to_mandala_government_effect = { change_government = mandala_government change_to_mandala_government_decree_effect = yes - save_scope_as = root_scope - primary_title.title_province = { - if = { - limit = { geographical_region = geographical_region:mpo_region_permafrost } - scope:root_scope = { - every_realm_county = { - if = { - limit = { has_county_modifier = mpo_siberian_permafrost_modifier } - remove_county_modifier = mpo_siberian_permafrost_modifier - } - else_if = { - limit = { has_county_modifier = mpo_siberian_permafrost_modifier_bad } - remove_county_modifier = mpo_siberian_permafrost_modifier_bad - } - } - } - } - } } change_to_mandala_government_and_citadel_effect = { @@ -1296,6 +1278,10 @@ change_capital_holding_to_citadel_effect = { value = combined_building_level days = 1 } + if = { + limit = { holding_is_tribal = yes } + holding_pre_feudalize_effect = yes + } set_holding_type = temple_citadel_holding #Did any buildings invalidate? Calculate! set_variable = { @@ -1353,6 +1339,10 @@ change_tribal_holdings_to_citadels_effect = { value = combined_building_level days = 1 } + if = { + limit = { holding_is_tribal = yes } + holding_pre_feudalize_effect = yes + } set_holding_type = temple_citadel_holding #We need to set the holding type BEFORE we can change to the government, lest it invalidates scope:current_tribal_holder = { @@ -1577,20 +1567,7 @@ mandala_adopt_clan_government_effect = { #Remove Mandala Decrees mandala_nuke_mandala_decrees_effect = yes #Check if capital holding is castle or temple citadel otherwise convert - hidden_effect = { - capital_province = { - if = { - limit = { - NOR = { - has_holding_type = temple_citadel_holding - has_holding_type = castle_holding - } - } - custom_tooltip = realm_capital_will_change_to_castle - set_holding_type = castle_holding - } - } - } + clan_convert_capital_effect = yes change_government = clan_government #Start off crown authorities hidden_effect = { @@ -1638,17 +1615,7 @@ mandala_adopt_clan_government_effect = { } faith.religion = religion:islam_religion } - if = { - limit = { - capital_province = { - NOR = { - has_holding_type = temple_citadel_holding - has_holding_type = castle_holding - } - } - } - capital_province = { set_holding_type = castle_holding } - } + clan_convert_capital_effect = yes change_government = clan_government #Nuke all laws mandala_nuke_realm_laws_effect = yes @@ -2141,7 +2108,14 @@ creator_mandala_upgraded_regular_holding_piety_effect = { ##Interaction Effects mandala_end_tributary_with_notification_effect = { save_scope_as = leaving_tributary - suzerain = { trigger_event = tgp_east_asia_interaction_events.0010 } + suzerain = { + if = { + limit = { + government_has_flag = government_is_mandala + } + trigger_event = tgp_east_asia_interaction_events.0010 + } + } end_tributary = yes } @@ -3425,6 +3399,7 @@ change_to_mandala_interaction_effect = { mandala_no_longer_polytheist_effect = { if = { limit = { + is_ruler = yes government_has_flag = government_is_mandala faith = { NOT = { has_doctrine = doctrine_polytheist } diff --git a/common/scripted_effects/tgp_tribute_mission_scripted_effects.txt b/common/scripted_effects/tgp_tribute_mission_scripted_effects.txt index 3a0e14852..f0ddd6f14 100644 --- a/common/scripted_effects/tgp_tribute_mission_scripted_effects.txt +++ b/common/scripted_effects/tgp_tribute_mission_scripted_effects.txt @@ -109,6 +109,11 @@ tribute_mission_decision_effect = { value = scope:tribute_mission_target } } + # not all tribute decisions have this option + if = { + limit = { NOT = { exists = scope:tribute_mission_bunga_mas } } + save_temporary_scope_value_as = { name = tribute_mission_bunga_mas value = no } + } #Your Suzerain requested this specifically if = { @@ -279,6 +284,17 @@ tribute_mission_decision_effect = { save_scope_as = decision_predetermined_concubine_tribute } } + # Fallback in case there's no saved concubine + if = { + limit = { + NOT = { exists = scope:decision_predetermined_concubine_tribute } + } + create_character = { + template = tgp_concubine_template + location = root.location + save_scope_as = decision_predetermined_concubine_tribute + } + } scope:decision_predetermined_concubine_tribute = { add_character_flag = { flag = cannot_be_diarch # just enough to make sure they don't succeed to the diarchy while en route @@ -592,9 +608,9 @@ tribute_mission_invalidation_effect = { has_variable = tribute_mission_type trigger_if = { limit = { - OR = { - has_variable = offered_concubine - has_variable = offered_eunuch + has_variable = { + name = offered_concubine + name = offered_eunuch } } OR = { diff --git a/common/situation/catalysts/10_tgp_dynastic_cycle_catalysts.txt b/common/situation/catalysts/10_tgp_dynastic_cycle_catalysts.txt index 76fe023f1..b519be8fd 100644 --- a/common/situation/catalysts/10_tgp_dynastic_cycle_catalysts.txt +++ b/common/situation/catalysts/10_tgp_dynastic_cycle_catalysts.txt @@ -30,7 +30,7 @@ catalyst_house_head_consulted_heaven_chaos_negative = {} catalyst_hegemon_above_maa_limit_yearly = {} catalyst_hegemon_below_maa_limit_yearly = {} catalyst_hegemon_outdated_maa_yearly = {} # NOT IMPLEMENTED - requires feature -catalyst_hegemon_hired_mercenary = {} # NOT IMPLEMENTED - requires code support +catalyst_hegemon_hired_mercenary = {} catalyst_hegemon_lost_defensive_territorial_war = {} catalyst_hegemon_lost_capital_in_war = {} catalyst_hegemon_lost_war = {} diff --git a/common/situation/situations/_situations.info b/common/situation/situations/_situations.info index a64b15d5d..785cd825c 100644 --- a/common/situation/situations/_situations.info +++ b/common/situation/situations/_situations.info @@ -16,6 +16,7 @@ situation_type = { # the_great_steppe # silk_road # dynastic_cycle + # the_christian_church # window = situation @@ -109,6 +110,9 @@ situation_type = { # (optional) Path to icon for group icon = "path/to/image.dds" + # List of gui tags, used to set size etc in gui views + gui_tags = { tag_1 tag_2 ... } + ### Should this group automatically consider all landed rulers in a sub-region as potential participants # Rulers still need to satisfy the other conditions of this group to be automatically added to it. # If this is 'no', then you will need to manually add/remove landed rulers to the Situation instead @@ -234,6 +238,10 @@ situation_type = { # scope:situation_sub_region = situation sub region this phase belongs to on_end = { } + # (optional) Path to texture shown in gui (useful if multiple images are needed for the same phase) + # Texture can be accessed in GUI: "[SituationPhaseType.GetTexture]" or "[SituationSubRegion.GetCurrentPhase.GetType.GetTexture]" + texture = "path/to/image.dds" + # (optional) Path to illustration shown in the situation windows # Texture can be accessed in GUI: "[SituationPhaseType.GetIllustration]" or "[SituationSubRegion.GetCurrentPhase.GetType.GetIllustration]" illustration = "path/to/image.dds" @@ -325,7 +333,7 @@ situation_type = { county_modifier = {} character_modifier = {} parameters = {} - doctrine_character_modifier = {} + faith_character_modifier = {} } # Only for one specific participant group @@ -340,13 +348,13 @@ situation_type = { county_faith_conversion_in_region_proceeds_faster = yes } - # Applied to involved characters if they have the given doctrine (can define multiple 'doctrine_character_modifier') - doctrine_character_modifier = { + # Applied to involved characters if they have the given doctrine (can define multiple 'faith_character_modifier') + faith_character_modifier = { name = name_of_doctrine_localization_key doctrine = doctrine_theocracy_lay_clergy same_faith_opinion = 3 } - doctrine_character_modifier = { + faith_character_modifier = { name = name_of_other_doctrine_localization_key doctrine = doctrine_theocracy_temporal same_faith_opinion = -3 @@ -360,4 +368,8 @@ situation_type = { } } } + # Situations can have decision lists associated with them allowing for their use in the gui via [SituationWindow.GetEndingDecisions] and [SituationWindow.GetSituationDecisions] + # [SituationWindow.HasPossibleEndingDecision] and [SituationWindow.HasPossibleSituationDecision] check if any decision in their respective list is possible for the player + ending_decisions = { } + situation_decisions = { } } diff --git a/common/story_cycles/ce1_story_cycle_black_death.txt b/common/story_cycles/ce1_story_cycle_black_death.txt index 1ad4e39b1..9e658519c 100644 --- a/common/story_cycles/ce1_story_cycle_black_death.txt +++ b/common/story_cycles/ce1_story_cycle_black_death.txt @@ -36,9 +36,9 @@ trigger = { has_global_variable = black_death story_owner = { - NOR = { - has_character_flag = black_death_nearby - has_character_flag = black_death_splash + has_none_of_variables = { + name = black_death_nearby + name = black_death_splash } } } @@ -66,9 +66,9 @@ has_global_variable = black_death story_owner = { has_character_flag = black_death_closer - NOR = { - has_character_flag = black_death_nearby - has_character_flag = black_death_splash + has_none_of_variables = { + name = black_death_nearby + name = black_death_splash } } } @@ -97,9 +97,9 @@ has_global_variable = black_death story_owner = { has_character_flag = black_death_closer - NOR = { - has_character_flag = black_death_splash - has_character_flag = black_death_nearby + has_none_of_variables = { + name = black_death_splash + name = black_death_nearby } } } diff --git a/common/story_cycles/ep3_story_cycle_el_cid.txt b/common/story_cycles/ep3_story_cycle_el_cid.txt index 90ed110fe..b62f49bcc 100644 --- a/common/story_cycles/ep3_story_cycle_el_cid.txt +++ b/common/story_cycles/ep3_story_cycle_el_cid.txt @@ -9,7 +9,7 @@ story_el_cid = { visible = yes icon = { - reference = "gfx/interface/icons/artifact/artefact_icons_unique_artifact_excalibur.dds" + reference = "gfx/interface/icons/artifact/artifact_icons_unique_artifact_excalibur.dds" } background = { diff --git a/common/story_cycles/ep3_story_cycle_hasan_sabbah.txt b/common/story_cycles/ep3_story_cycle_hasan_sabbah.txt index 5f4633106..57fe7f76d 100644 --- a/common/story_cycles/ep3_story_cycle_hasan_sabbah.txt +++ b/common/story_cycles/ep3_story_cycle_hasan_sabbah.txt @@ -52,12 +52,12 @@ var:radical_points >= 5 story_owner = { OR = { - faith = faith:ismaili - faith = faith:nizari + rite = rite:ismaili + rite = rite:nizari } - NOR = { - has_character_flag = arrived_in_egypt - has_character_flag = had_hasan_sabah_20 + has_none_of_variables = { + name = arrived_in_egypt + name = had_hasan_sabah_20 } } } @@ -87,27 +87,14 @@ story_owner.domicile.domicile_location.county.holder ?= { save_temporary_scope_as = county_holder } - faith:ismaili = { - religious_head = { - save_temporary_scope_as = ismaili_hof + faith:shia = { + religious_head = { + save_temporary_scope_as = shia_hof NOR = { this = scope:county_holder scope:county_holder = { any_liege_or_above = { - this = scope:ismaili_hof - } - } - } - } - } - faith:nizari = { - religious_head = { - save_temporary_scope_as = nizari_hof - NOR = { - this = scope:county_holder - scope:county_holder = { - any_liege_or_above = { - this = scope:nizari_hof + this = scope:shia_hof } } } @@ -144,7 +131,7 @@ # Must be landless NOT = { story_owner = { has_government = landless_adventurer_government } } # Must not be Sunni - story_owner = { faith = { has_doctrine = muhammad_succession_sunni_doctrine } } + story_owner = { rite = { rite_has_doctrine = muhammad_succession_sunni_doctrine } } } } effect = { diff --git a/common/story_cycles/ep3_story_cycle_violet_poet.txt b/common/story_cycles/ep3_story_cycle_violet_poet.txt index 4d2c054b4..a905b8b51 100644 --- a/common/story_cycles/ep3_story_cycle_violet_poet.txt +++ b/common/story_cycles/ep3_story_cycle_violet_poet.txt @@ -44,8 +44,8 @@ } # Or destroy else = { - end_story = yes remove_variable = violet_poet + end_story = yes } } diff --git a/common/story_cycles/story_cycle_take_mandate_of_heaven.txt b/common/story_cycles/story_cycle_take_mandate_of_heaven.txt index ec4c5a269..0d9824b0a 100644 --- a/common/story_cycles/story_cycle_take_mandate_of_heaven.txt +++ b/common/story_cycles/story_cycle_take_mandate_of_heaven.txt @@ -39,6 +39,8 @@ trigger = { story_owner = { is_ai = yes + # End-cycle group pulses every 900-1800 days + is_landed = yes NOT = { can_execute_decision = situation_dynastic_cycle_claim_mandate_decision } } } diff --git a/common/story_cycles/tgp_story_cycle_tai_migrations.txt b/common/story_cycles/tgp_story_cycle_tai_migrations.txt index f038c6c13..3b47e8d1c 100644 --- a/common/story_cycles/tgp_story_cycle_tai_migrations.txt +++ b/common/story_cycles/tgp_story_cycle_tai_migrations.txt @@ -1,5 +1,5 @@ story_tai_migrations = { - + # by Ali Kara on_setup = { } diff --git a/common/struggle/struggles/_struggles.info b/common/struggle/struggles/_struggles.info index eed4aba52..50e510781 100644 --- a/common/struggle/struggles/_struggles.info +++ b/common/struggle/struggles/_struggles.info @@ -65,12 +65,12 @@ struggle_name = { interloper_character_modifier = { # Character Modifiers applied on interloper characters } - involved_doctrine_character_modifier = { # Applied to involved characters if they have the given doctrine + involved_faith_character_modifier = { # Applied to involved characters if they have the given doctrine doctrine = doctrine_theocracy_lay_clergy same_faith_opinion = 3 } - interloper_doctrine_character_modifier = { # Applied to interloper characters if they have the given doctrine + interloper_faith_character_modifier = { # Applied to interloper characters if they have the given doctrine doctrine = doctrine_theocracy_lay_clergy same_faith_opinion = 3 } diff --git a/common/subject_contracts/contracts/administrative.txt b/common/subject_contracts/contracts/administrative.txt index b7d504c5f..f1125ef08 100644 --- a/common/subject_contracts/contracts/administrative.txt +++ b/common/subject_contracts/contracts/administrative.txt @@ -50,6 +50,7 @@ administrative_themes = { } flag = admin_theme_balanced + flag = province_balanced } admin_theme_civilian = { position = { 2 0 } @@ -102,6 +103,7 @@ administrative_themes = { flag = admin_influence_construction_bonus flag = admin_ai_is_builder flag = admin_theme_civilian + flag = province_civilian flag = obligation_high_taxes } admin_theme_military = { @@ -155,6 +157,7 @@ administrative_themes = { flag = admin_martial_obligation_bonus flag = admin_theme_military + flag = province_military flag = obligation_high_levies } admin_theme_frontier = { @@ -211,6 +214,7 @@ administrative_themes = { flag = admin_duchy_expansion_unlocked flag = admin_ai_is_warlike flag = admin_theme_frontier + flag = province_military flag = admin_theme_can_raid } admin_theme_imperial = { @@ -230,7 +234,7 @@ administrative_themes = { scope:subject = { is_ai = yes culture = scope:liege.culture - faith = top_liege.primary_title.state_faith + rite = top_liege.primary_title.state_rite } } add = 5 @@ -289,6 +293,7 @@ administrative_themes = { flag = admin_theme_imperial flag = admin_prestige_obligation_bonus flag = admin_cannot_revoke_titles_without_cause + flag = province_civilian flag = obligation_high_taxes } admin_theme_naval = { @@ -378,6 +383,7 @@ administrative_themes = { flag = admin_naval_duchy_expansion_unlocked flag = admin_tradeport_obligation_bonus flag = admin_theme_naval + flag = province_military } } } diff --git a/common/subject_contracts/contracts/clan.txt b/common/subject_contracts/contracts/clan.txt index 3f2a618d9..8d2797a0d 100644 --- a/common/subject_contracts/contracts/clan.txt +++ b/common/subject_contracts/contracts/clan.txt @@ -11,31 +11,31 @@ add = scope:tax_collector.tax_collector_aptitude:clan_tax_slot save_temporary_value_as = tax_collector_aptitude_value if = { - limit = { - scope:tax_collector_aptitude_value = 5 - } - add = 10 - } - else_if = { limit = { scope:tax_collector_aptitude_value = 4 } - add = 6 + add = 11 } else_if = { limit = { scope:tax_collector_aptitude_value = 3 } - add = 3 + add = 7 } else_if = { limit = { scope:tax_collector_aptitude_value = 2 } - add = 1 + add = 4 + } + else_if = { + limit = { + scope:tax_collector_aptitude_value = 1 + } + add = 2 } else = { - add = 0 + add = 1 } } } @@ -53,31 +53,31 @@ add = scope:tax_collector.tax_collector_aptitude:clan_tax_slot save_temporary_value_as = tax_collector_aptitude_value if = { - limit = { - scope:tax_collector_aptitude_value = 5 - } - add = 10 - } - else_if = { limit = { scope:tax_collector_aptitude_value = 4 } - add = 6 + add = 11 } else_if = { limit = { scope:tax_collector_aptitude_value = 3 } - add = 3 + add = 7 } else_if = { limit = { scope:tax_collector_aptitude_value = 2 } - add = 1 + add = 4 + } + else_if = { + limit = { + scope:tax_collector_aptitude_value = 1 + } + add = 2 } else = { - add = 0 + add = 1 } } } diff --git a/common/subject_contracts/contracts/japan_administrative.txt b/common/subject_contracts/contracts/japan_administrative.txt index 2638b2a33..b991d7145 100644 --- a/common/subject_contracts/contracts/japan_administrative.txt +++ b/common/subject_contracts/contracts/japan_administrative.txt @@ -52,6 +52,7 @@ japan_administrative_provinces = { enable_title_maa = no flag = japan_administrative_province_standard + flag = province_civilian } japan_administrative_province_trade = { position = { 1 0 } @@ -123,6 +124,7 @@ japan_administrative_provinces = { flag = admin_ai_is_builder flag = japan_administrative_province_trade + flag = province_civilian flag = obligation_high_taxes } japan_administrative_province_military = { @@ -209,6 +211,7 @@ japan_administrative_provinces = { flag = japan_administrative_province_military flag = japan_administrative_military_appointment + flag = province_military flag = obligation_high_levies } } diff --git a/common/subject_contracts/contracts/meritocratic.txt b/common/subject_contracts/contracts/meritocratic.txt index e904c00ba..7d1888b11 100644 --- a/common/subject_contracts/contracts/meritocratic.txt +++ b/common/subject_contracts/contracts/meritocratic.txt @@ -61,6 +61,7 @@ meritocratic_provinces = { flag = meritocratic_province_standard flag = meritocratic_civil_appointment + flag = province_civilian appointment_trait_flag = civilian_province } meritocratic_province_industrial = { @@ -141,6 +142,7 @@ meritocratic_provinces = { flag = admin_ai_is_builder flag = meritocratic_province_industrial flag = meritocratic_civil_appointment + flag = province_civilian flag = obligation_high_taxes appointment_trait_flag = civilian_province } @@ -246,6 +248,7 @@ meritocratic_provinces = { flag = meritocratic_province_military flag = meritocratic_military_appointment + flag = province_military flag = obligation_high_levies appointment_trait_flag = military_province } @@ -265,8 +268,8 @@ meritocratic_treasury = { monthly_treasury_from_liege_mult = -0.10 } - ai_liege_desire = 1 - ai_subject_desire = 5 + ai_liege_desire = 5 + ai_subject_desire = 1 subject_opinion = -25 @@ -280,8 +283,8 @@ meritocratic_treasury = { monthly_treasury_from_liege_mult = -0.05 } - ai_liege_desire = 2 - ai_subject_desire = 4 + ai_liege_desire = 4 + ai_subject_desire = 2 subject_opinion = -15 @@ -305,8 +308,8 @@ meritocratic_treasury = { monthly_treasury_from_liege_mult = 0.05 } - ai_liege_desire = 4 - ai_subject_desire = 2 + ai_liege_desire = 2 + ai_subject_desire = 4 subject_opinion = 5 @@ -320,8 +323,8 @@ meritocratic_treasury = { monthly_treasury_from_liege_mult = 0.10 } - ai_liege_desire = 5 - ai_subject_desire = 1 + ai_liege_desire = 1 + ai_subject_desire = 5 subject_opinion = 10 @@ -343,8 +346,8 @@ meritocratic_salary = { monthly_treasury_from_salary_budget_mult = -0.5 } - ai_liege_desire = 1 - ai_subject_desire = 5 + ai_liege_desire = 5 + ai_subject_desire = 1 subject_opinion = -25 @@ -358,12 +361,12 @@ meritocratic_salary = { monthly_treasury_from_salary_budget_mult = -0.25 } - ai_liege_desire = 2 - ai_subject_desire = 4 + ai_liege_desire = 4 + ai_subject_desire = 2 subject_opinion = -15 - score = 1 + score = -1 } salary_medium = { parent = salary_low @@ -386,8 +389,8 @@ meritocratic_salary = { monthly_treasury_from_salary_budget_mult = 0.25 } - ai_liege_desire = 4 - ai_subject_desire = 2 + ai_liege_desire = 2 + ai_subject_desire = 4 subject_opinion = 5 @@ -401,8 +404,8 @@ meritocratic_salary = { monthly_treasury_from_salary_budget_mult = 0.5 } - ai_liege_desire = 5 - ai_subject_desire = 1 + ai_liege_desire = 1 + ai_subject_desire = 5 subject_opinion = 10 diff --git a/common/subject_contracts/contracts/special_contracts.txt b/common/subject_contracts/contracts/special_contracts.txt index 0108125e5..0c6d6be3d 100644 --- a/common/subject_contracts/contracts/special_contracts.txt +++ b/common/subject_contracts/contracts/special_contracts.txt @@ -298,26 +298,18 @@ religious_rights = { scope:subject.faith != scope:liege.faith OR = { NOT = { - scope:liege.faith = { + scope:liege = { OR = { - has_doctrine = tenet_tax_nonbelievers - has_doctrine = special_doctrine_jizya + rite = { rite_has_tenet = tenet_tax_nonbelievers } + faith = { has_doctrine = special_doctrine_jizya } } } } - AND = { - scope:liege.faith = { - OR = { - has_doctrine = tenet_tax_nonbelievers - has_doctrine = special_doctrine_jizya - } - } - scope:subject = { - NOT = { - vassal_contract_has_flag = vassal_contract_cannot_revoke_titles - } - vassal_contract_has_flag = religiously_protected + scope:subject = { + NOT = { + vassal_contract_has_flag = vassal_contract_cannot_revoke_titles } + vassal_contract_has_flag = religiously_protected } } } @@ -332,6 +324,22 @@ religious_rights = { religious_rights_protected = { is_valid = { scope:subject.faith != scope:liege.faith + OR = { + NOT = { + scope:liege = { + OR = { + rite = { rite_has_tenet = tenet_tax_nonbelievers } + faith = { has_doctrine = special_doctrine_jizya } + } + } + } + scope:subject = { + NOT = { + vassal_contract_has_flag = vassal_contract_cannot_revoke_titles + } + vassal_contract_has_flag = religiously_protected + } + } } parent = religious_rights_none position = { 1 0 } @@ -491,6 +499,11 @@ war_declaration_rights = { council_rights = { display_mode = checkbox + is_shown = { + scope:liege = { + is_nomad = no + } + } obligation_levels = { council_rights_none = { default = yes @@ -568,10 +581,10 @@ title_revocation_rights = { jizya_special_rights = { display_mode = checkbox is_shown = { - scope:liege.faith = { + scope:liege = { OR = { - has_doctrine = tenet_tax_nonbelievers - has_doctrine = special_doctrine_jizya + rite = { rite_has_tenet = tenet_tax_nonbelievers } + faith = { has_doctrine = special_doctrine_jizya } } } scope:subject.faith != scope:liege.faith @@ -598,10 +611,10 @@ jizya_special_rights = { } jizya_special_rights_granted = { is_valid = { - scope:liege.faith = { + scope:liege = { OR = { - has_doctrine = tenet_tax_nonbelievers - has_doctrine = special_doctrine_jizya + rite = { rite_has_tenet = tenet_tax_nonbelievers } + faith = { has_doctrine = special_doctrine_jizya } } } scope:subject.faith != scope:liege.faith @@ -733,6 +746,11 @@ marriage_favor_rights = { kurultai_rights = { display_mode = checkbox + is_shown = { + scope:liege = { + is_nomad = yes + } + } obligation_levels = { kurultai_rights_none = { default = yes diff --git a/common/subject_contracts/groups/subject_contract_groups.txt b/common/subject_contracts/groups/subject_contract_groups.txt index 118b12c0a..ed85609d9 100644 --- a/common/subject_contracts/groups/subject_contract_groups.txt +++ b/common/subject_contracts/groups/subject_contract_groups.txt @@ -9,6 +9,7 @@ succession_rights war_declaration_rights council_rights + kurultai_rights title_revocation_rights jizya_special_rights } @@ -56,6 +57,7 @@ clan_vassal = { religious_rights war_declaration_rights council_rights + kurultai_rights title_revocation_rights marriage_favor_rights } @@ -84,6 +86,7 @@ nomad_vassal = { nomad_government_herd nomad_government_taxes liege_war_participation_obligation + council_rights kurultai_rights war_declaration_rights } @@ -186,7 +189,7 @@ tributary_celestial = { is_valid_tributary_contract = { scope:suzerain = { highest_held_title_tier = tier_hegemony - has_government = celestial_government + government_has_flag = government_is_celestial } } @@ -302,6 +305,7 @@ japan_feudal_vassal = { succession_rights war_declaration_rights council_rights + kurultai_rights title_revocation_rights jizya_special_rights } diff --git a/common/task_contracts/admin_contracts.txt b/common/task_contracts/admin_contracts.txt index 563bab2fc..8df492a0c 100644 --- a/common/task_contracts/admin_contracts.txt +++ b/common/task_contracts/admin_contracts.txt @@ -1073,7 +1073,12 @@ inept_mayor = { increase_governance_effect = { VALUE = 4 } add_dread = minor_dread_gain } - task_contract_employer = { depose = yes } # depose_effect unnecessary for AI mayor + task_contract_employer = { # depose_effect unnecessary for AI mayor + if = { + limit = { is_ruler = yes } + depose = yes + } + } task_contract_location.county = { remove_county_modifier = ep3_mismanaged_administration_modifier } } } diff --git a/common/task_contracts/laamp_base_contracts.txt b/common/task_contracts/laamp_base_contracts.txt index 533e7da7c..47b425f88 100644 --- a/common/task_contracts/laamp_base_contracts.txt +++ b/common/task_contracts/laamp_base_contracts.txt @@ -207,6 +207,7 @@ laamp_base_0001 = { should_print_on_complete = yes effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract save_scope_value_as = { name = extra_reward value = flag:no } # Standard Rewards. laamp_rewards_disburse_ordinary_currency_effect = { @@ -227,6 +228,7 @@ laamp_base_0001 = { should_print_on_complete = yes effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract save_scope_value_as = { name = extra_reward value = flag:no } # Critical Rewards. laamp_rewards_disburse_ordinary_currency_effect = { @@ -407,6 +409,7 @@ laamp_base_0011 = { should_print_on_complete = yes effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract save_scope_value_as = { name = extra_reward value = flag:no } # Standard Rewards. laamp_rewards_disburse_ordinary_currency_effect = { @@ -427,6 +430,7 @@ laamp_base_0011 = { should_print_on_complete = yes effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract save_scope_value_as = { name = extra_reward value = flag:no } # Critical Rewards. laamp_rewards_disburse_ordinary_currency_effect = { @@ -602,6 +606,7 @@ laamp_base_0021 = { should_print_on_complete = yes effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract save_scope_value_as = { name = extra_reward value = flag:no } # Standard Rewards. laamp_rewards_disburse_ordinary_currency_effect = { @@ -622,6 +627,7 @@ laamp_base_0021 = { should_print_on_complete = yes effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract save_scope_value_as = { name = extra_reward value = flag:no } # Critical Rewards. laamp_rewards_disburse_ordinary_currency_effect = { @@ -840,6 +846,7 @@ laamp_base_0031 = { should_print_on_complete = yes effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract save_scope_value_as = { name = extra_reward value = flag:no } # Standard Rewards. laamp_rewards_disburse_ordinary_currency_effect = { @@ -860,6 +867,7 @@ laamp_base_0031 = { should_print_on_complete = yes effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract save_scope_value_as = { name = extra_reward value = flag:no } # Critical Rewards. laamp_rewards_disburse_ordinary_currency_effect = { @@ -1041,6 +1049,7 @@ laamp_base_0041 = { should_print_on_complete = yes effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract # Camp building extra Criminal Rewards: +50%. if = { limit = { @@ -1275,7 +1284,8 @@ laamp_base_1001 = { should_print_on_complete = yes effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } - + + save_scope_as = task_contract save_scope_value_as = { name = extra_reward value = flag:no } # Standard Rewards. laamp_rewards_disburse_ordinary_currency_effect = { @@ -1493,6 +1503,7 @@ laamp_base_1011 = { should_print_on_complete = yes effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract save_scope_value_as = { name = extra_reward value = flag:no } # Standard Rewards. laamp_rewards_disburse_ordinary_currency_effect = { @@ -1521,6 +1532,7 @@ laamp_base_1011 = { should_print_on_complete = yes effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract save_scope_value_as = { name = extra_reward value = flag:no } # Critical Rewards. laamp_rewards_disburse_ordinary_currency_effect = { @@ -1744,6 +1756,7 @@ laamp_base_1041 = { should_print_on_complete = yes effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract # Camp building extra Criminal Rewards: +50%. if = { limit = { @@ -1935,6 +1948,7 @@ laamp_base_5031 = { should_print_on_complete = yes effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract # Camp building extra Criminal Rewards: +50%. if = { limit = { @@ -1971,6 +1985,7 @@ laamp_base_5031 = { should_print_on_complete = yes effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract # Camp building extra Criminal Rewards: +50%. if = { limit = { @@ -2143,6 +2158,7 @@ laamp_base_5051 = { should_print_on_complete = yes effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract save_scope_value_as = { name = extra_reward value = flag:no } # Standard Rewards. laamp_rewards_disburse_ordinary_currency_effect = { @@ -2413,6 +2429,7 @@ laamp_base_2001 = { success_standard = { effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract # Camp building extra Stewardship Rewards: +50%. if = { limit = { @@ -2441,6 +2458,7 @@ laamp_base_2001 = { success_critical = { effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract # Camp building extra Stewardship Rewards: +50%. if = { limit = { @@ -2470,6 +2488,7 @@ laamp_base_2001 = { visible = no effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract # Camp building extra Stewardship Rewards: +50%. if = { limit = { @@ -2498,6 +2517,7 @@ laamp_base_2001 = { visible = no effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract # Camp building extra Stewardship Rewards: +50%. if = { limit = { @@ -2527,6 +2547,7 @@ laamp_base_2001 = { visible = no effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract # Camp building extra Stewardship Rewards: +50%. if = { limit = { @@ -2789,6 +2810,7 @@ laamp_base_2011 = { should_print_on_complete = yes effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract # Camp building extra Stewardship Rewards: +50%. if = { limit = { @@ -2818,6 +2840,7 @@ laamp_base_2011 = { should_print_on_complete = yes effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract # Camp building extra Stewardship Rewards: +50%. if = { limit = { @@ -3034,6 +3057,7 @@ laamp_base_2021 = { should_print_on_complete = yes effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract # Camp building extra Stewardship Rewards: +50%. if = { limit = { @@ -3063,6 +3087,7 @@ laamp_base_2021 = { should_print_on_complete = yes effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract # Camp building extra Stewardship Rewards: +50%. if = { limit = { @@ -3251,6 +3276,7 @@ laamp_base_2031 = { should_print_on_complete = yes effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract # Camp building extra Stewardship Rewards: +50%. if = { limit = { @@ -3279,6 +3305,7 @@ laamp_base_2031 = { should_print_on_complete = yes effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract # Camp building extra Stewardship Rewards: +50%. if = { limit = { @@ -3309,6 +3336,7 @@ laamp_base_2031 = { visible = no effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract # Camp building extra Stewardship Rewards: +50%. if = { limit = { @@ -3338,6 +3366,7 @@ laamp_base_2031 = { visible = no effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract # Camp building extra Stewardship Rewards: +50%. if = { limit = { @@ -3564,6 +3593,7 @@ laamp_base_2041 = { should_print_on_complete = yes effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract # Camp building extra Stewardship Rewards: +50%. if = { limit = { @@ -3600,6 +3630,7 @@ laamp_base_2041 = { should_print_on_complete = yes effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract # Camp building extra Stewardship Rewards: +50%. if = { limit = { @@ -3636,6 +3667,7 @@ laamp_base_2041 = { should_print_on_complete = yes effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract # Camp building extra Stewardship Rewards: +50%. if = { limit = { @@ -3892,6 +3924,7 @@ laamp_base_3001 = { should_print_on_complete = yes effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract save_scope_value_as = { name = extra_reward value = flag:no } # Standard Rewards. laamp_rewards_disburse_ordinary_currency_effect = { @@ -3912,6 +3945,7 @@ laamp_base_3001 = { should_print_on_complete = yes effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract save_scope_value_as = { name = extra_reward value = flag:no } # Critical Rewards. laamp_rewards_disburse_ordinary_currency_effect = { @@ -3932,6 +3966,7 @@ laamp_base_3001 = { should_print_on_complete = yes effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract save_scope_value_as = { name = extra_reward value = flag:no } # Standard Rewards. laamp_rewards_disburse_ordinary_currency_effect = { @@ -4116,6 +4151,7 @@ laamp_base_3011 = { should_print_on_complete = yes effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract save_scope_value_as = { name = extra_reward value = flag:no } # Standard Rewards. laamp_rewards_disburse_ordinary_currency_effect = { @@ -4264,6 +4300,13 @@ laamp_base_3021 = { } } task_contract_employer = { is_landed = yes } + trigger_if = { + limit = { has_variable = target } + var:target = { + is_alive = yes + is_imprisoned = no + } + } } valid_to_keep = { # Standard triggers. @@ -4315,6 +4358,7 @@ laamp_base_3021 = { should_print_on_complete = yes effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract save_scope_value_as = { name = extra_reward value = flag:no } # Standard Rewards. laamp_rewards_disburse_ordinary_currency_effect = { @@ -4526,6 +4570,7 @@ laamp_base_3031 = { should_print_on_complete = yes effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract save_scope_value_as = { name = extra_reward value = flag:no } # Standard Rewards. laamp_rewards_disburse_ordinary_currency_effect = { @@ -4729,6 +4774,7 @@ laamp_base_3041 = { should_print_on_complete = yes effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract save_scope_value_as = { name = extra_reward value = flag:no } # Standard Rewards. laamp_rewards_disburse_ordinary_currency_effect = { @@ -4816,7 +4862,7 @@ laamp_base_4001 = { # Weight up. ## Traits that appreciate works of learning. if = { - limit = { has_trait = scholar } + limit = { has_trait = erudite } add = task_contract_weight_bonus_employer_has_associated_traits_value } if = { @@ -4963,6 +5009,7 @@ laamp_base_4001 = { success_qualified = { should_print_on_complete = yes effect = { + save_scope_as = task_contract # Camp building extra Stewardship Rewards: +50%. if = { limit = { @@ -4991,6 +5038,7 @@ laamp_base_4001 = { should_print_on_complete = yes effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract # Camp building extra Learning Rewards: +50%. if = { limit = { @@ -5019,6 +5067,7 @@ laamp_base_4001 = { should_print_on_complete = yes effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract # Camp building extra Learning Rewards: +50%. if = { limit = { @@ -5204,7 +5253,7 @@ laamp_base_4011 = { scope:employer.capital_province = { save_scope_as = employer_location_destination } ordered_in_list = { list = destination_baronies_list - order_by = "squared_distance(prev.capital_province)" + order_by = "squared_distance(scope:employer_location_destination)" max = 5 check_range_bounds = no if = { @@ -5350,6 +5399,7 @@ laamp_base_4011 = { should_print_on_complete = yes effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract # Camp building extra Learning Rewards: +50%. if = { limit = { @@ -5378,6 +5428,7 @@ laamp_base_4011 = { success_standard = { should_print_on_complete = yes effect = { + save_scope_as = task_contract # Camp building extra Learning Rewards: +50%. if = { limit = { @@ -5407,6 +5458,7 @@ laamp_base_4011 = { should_print_on_complete = yes effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract # Camp building extra Learning Rewards: +50%. if = { limit = { @@ -5474,7 +5526,7 @@ laamp_base_4021 = { # Weight up. ## Traits that appreciate works of learning. if = { - limit = { has_trait = scholar } + limit = { has_trait = erudite } add = task_contract_weight_bonus_employer_has_associated_traits_value } if = { @@ -5597,6 +5649,7 @@ laamp_base_4021 = { success_qualified = { should_print_on_complete = yes effect = { + save_scope_as = task_contract # Camp building extra Stewardship Rewards: +50%. if = { limit = { @@ -5625,6 +5678,7 @@ laamp_base_4021 = { should_print_on_complete = yes effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract # Camp building extra Learning Rewards: +50%. if = { limit = { @@ -5653,6 +5707,7 @@ laamp_base_4021 = { should_print_on_complete = yes effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract # Camp building extra Learning Rewards: +50%. if = { limit = { @@ -5843,6 +5898,7 @@ laamp_base_4031 = { should_print_on_complete = yes effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract # Camp building extra Learning Rewards: +50%. if = { limit = { @@ -5871,6 +5927,7 @@ laamp_base_4031 = { should_print_on_complete = yes effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract # Camp building extra Learning Rewards: +50%. if = { limit = { @@ -6062,6 +6119,7 @@ laamp_base_4041 = { should_print_on_complete = yes effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract # Camp building extra Learning/Criminal Rewards: +50%. if = { limit = { @@ -6147,7 +6205,7 @@ laamp_base_4100 = { # Weight up. ## Traits that appreciate works of learning. if = { - limit = { has_trait = scholar } + limit = { has_trait = erudite } add = task_contract_weight_bonus_employer_has_associated_traits_value } if = { @@ -6420,6 +6478,7 @@ laamp_base_4100 = { success_standard = { should_print_on_complete = yes effect = { + save_scope_as = task_contract # Camp building extra Learning Rewards: +50%. if = { limit = { @@ -6448,6 +6507,7 @@ laamp_base_4100 = { success_critical = { should_print_on_complete = yes effect = { + save_scope_as = task_contract # Camp building extra Learning Rewards: +50%. if = { limit = { @@ -6643,6 +6703,7 @@ laamp_base_6001 = { should_print_on_complete = yes effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract save_scope_value_as = { name = extra_reward value = flag:no } # Standard Rewards. laamp_rewards_disburse_ordinary_currency_effect = { @@ -6673,6 +6734,7 @@ laamp_base_6001 = { should_print_on_complete = yes effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract save_scope_value_as = { name = extra_reward value = flag:no } # Standard Rewards. laamp_rewards_disburse_ordinary_currency_effect = { @@ -6827,6 +6889,7 @@ laamp_base_6011 = { should_print_on_complete = yes effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract save_scope_value_as = { name = extra_reward value = flag:no } # Standard Rewards. laamp_rewards_disburse_ordinary_currency_effect = { @@ -6984,6 +7047,7 @@ laamp_base_6021 = { should_print_on_complete = yes effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract save_scope_value_as = { name = extra_reward value = flag:no } # Standard Rewards. laamp_rewards_disburse_ordinary_currency_effect = { @@ -7145,6 +7209,7 @@ laamp_base_6031 = { should_print_on_complete = yes effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract save_scope_value_as = { name = extra_reward value = flag:no } # Standard Rewards. laamp_rewards_disburse_ordinary_currency_effect = { @@ -7313,6 +7378,7 @@ laamp_base_1021 = { should_print_on_complete = yes effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract save_scope_value_as = { name = extra_reward value = flag:no } # Standard Rewards. laamp_rewards_disburse_ordinary_currency_effect = { @@ -7341,6 +7407,7 @@ laamp_base_1021 = { should_print_on_complete = yes effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract save_scope_value_as = { name = extra_reward value = flag:no } # Critical Rewards. laamp_rewards_disburse_ordinary_currency_effect = { @@ -7504,6 +7571,7 @@ laamp_base_1031 = { should_print_on_complete = yes effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract save_scope_value_as = { name = extra_reward value = flag:no } # Standard Rewards. laamp_rewards_disburse_ordinary_currency_effect = { @@ -7532,6 +7600,7 @@ laamp_base_1031 = { should_print_on_complete = yes effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract save_scope_value_as = { name = extra_reward value = flag:no } # Critical Rewards. laamp_rewards_disburse_ordinary_currency_effect = { @@ -7705,6 +7774,7 @@ laamp_base_5001 = { should_print_on_complete = yes effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract save_scope_value_as = { name = extra_reward value = flag:no } # Standard Rewards. laamp_rewards_disburse_ordinary_currency_effect = { @@ -7729,6 +7799,7 @@ laamp_base_5001 = { should_print_on_complete = yes effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract save_scope_value_as = { name = extra_reward value = flag:no } # Critical Rewards. laamp_rewards_disburse_ordinary_currency_effect = { @@ -7889,6 +7960,7 @@ laamp_base_5011 = { should_print_on_complete = yes effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract save_scope_value_as = { name = extra_reward value = flag:no } # Standard Rewards. laamp_rewards_disburse_ordinary_currency_effect = { @@ -7917,6 +7989,7 @@ laamp_base_5011 = { should_print_on_complete = yes effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract save_scope_value_as = { name = extra_reward value = flag:no } # Critical Rewards. laamp_rewards_disburse_ordinary_currency_effect = { @@ -8103,6 +8176,7 @@ laamp_base_5021 = { should_print_on_complete = yes effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract save_scope_value_as = { name = extra_reward value = flag:no } # Standard Rewards. laamp_rewards_disburse_ordinary_currency_effect = { @@ -8255,6 +8329,7 @@ laamp_base_5041 = { should_print_on_complete = yes effect = { task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } + save_scope_as = task_contract # Camp building extra Criminal Rewards: +50%. if = { limit = { diff --git a/common/task_contracts/laamp_extra_contracts.txt b/common/task_contracts/laamp_extra_contracts.txt index 3e3e39981..443b1b479 100644 --- a/common/task_contracts/laamp_extra_contracts.txt +++ b/common/task_contracts/laamp_extra_contracts.txt @@ -72,15 +72,13 @@ laamp_raid_contract = { is_ai = yes is_adult = yes is_landed = yes + highest_held_title_tier >= tier_county capital_province.building_max_garrison < root.current_military_strength is_within_diplo_range = { CHARACTER = scope:employer } any_courtier_or_guest = { count >= 3 OR = { - AND = { - has_dynasty = yes - dynasty = prev.dynasty - } + dynasty ?= prev.dynasty is_consort_of = prev } } @@ -89,6 +87,7 @@ laamp_raid_contract = { is_ai = yes is_adult = yes is_landed = yes + highest_held_title_tier >= tier_county capital_province.building_max_garrison < root.current_military_strength house_has_feud_relation_with_trigger = { TARGET = scope:employer } any_courtier_or_guest = { @@ -126,6 +125,11 @@ laamp_raid_contract = { EMPLOYER = root.task_contract_employer LAAMP = root.task_contract_taker } + task_contract_target = { + is_alive = yes + is_landed = yes + highest_held_title_tier >= tier_county + } } weight = { @@ -152,15 +156,13 @@ laamp_raid_contract = { is_ai = yes is_adult = yes is_landed = yes + highest_held_title_tier >= tier_county capital_province.building_max_garrison < root.current_military_strength house_has_feud_relation_with_trigger = { TARGET = scope:task_contract_employer } any_courtier_or_guest = { count >= 3 OR = { - AND = { - has_dynasty = yes - dynasty = prev.dynasty - } + dynasty ?= prev.dynasty is_consort_of = prev } } @@ -171,6 +173,7 @@ laamp_raid_contract = { is_ai = yes is_adult = yes is_landed = yes + highest_held_title_tier >= tier_county capital_province.building_max_garrison < root.current_military_strength house_has_feud_relation_with_trigger = { TARGET = scope:task_contract_employer } any_courtier_or_guest = { @@ -197,6 +200,7 @@ laamp_raid_contract = { is_ai = yes is_adult = yes is_landed = yes + highest_held_title_tier >= tier_county capital_province.building_max_garrison < root.current_military_strength is_within_diplo_range = { CHARACTER = scope:task_contract_employer } any_courtier_or_guest = { @@ -239,7 +243,7 @@ laamp_raid_contract = { } set_variable = { name = task_contract_destination - value = scope:task_contract_destination + value = scope:task_contract_destination } } } @@ -295,7 +299,7 @@ laamp_raid_contract = { value = flag:employer_dead } trigger_event = ep3_contract_event.0012 - + } } else_if = { @@ -338,20 +342,20 @@ laamp_raid_contract = { limit = { faith != scope:defender.faith } - add_piety = minor_piety_gain + add_piety = minor_piety_gain } } # Huck 'em into our contact list. add_contact = scope:task_contract_employer # Give hook as well as contact add_hook_if_possible_default_length_effect = { - TARGET = scope:task_contract_employer + TARGET = scope:task_contract_employer TYPE = contact_list_weak_hook } war_contracts_completed_tracker_effect = yes } - } - } + } + } failure_standard = { positive = no effect = { @@ -414,11 +418,15 @@ laamp_join_war_contract = { } } #don't spawn contracts for the same wars - NOT = { + NOR = { any_character_task_contract = { task_contract_type = laamp_join_war_contract var:task_contract_war ?= scope:temp_war } + any_character_task_contract = { + task_contract_type = laamp_help_claimant_contract + task_contract_employer = scope:employer + } } #or if you are already an ally in a war with someone in that war, to prevent being an ally and an enemy at the same time scope:temp_war = { @@ -576,7 +584,7 @@ laamp_join_war_contract = { value = flag:employer_dead } trigger_event = ep3_contract_event.0012 - + } } else_if = { @@ -644,7 +652,7 @@ laamp_join_war_contract = { add_contact = scope:task_contract_employer # Give hook as well as contact add_hook_if_possible_default_length_effect = { - TARGET = scope:task_contract_employer + TARGET = scope:task_contract_employer TYPE = contact_list_weak_hook } war_contracts_completed_tracker_effect = yes @@ -707,13 +715,13 @@ laamp_help_claimant_contract = { scope:employer = { is_at_war = no NAND = { - government_allows = administrative - liege = { government_allows = administrative } + government_has_mechanic = administrative + liege = { government_has_mechanic = administrative } } liege = { has_realm_law_flag = vassal_all_wars_banned } NOT = { vassal_contract_has_flag = vassal_contract_war_override - } + } any_claim = { holder ?= { NOT = { is_allied_to = scope:employer } @@ -800,7 +808,7 @@ laamp_help_claimant_contract = { } set_variable = { name = task_contract_title - value = scope:task_contract_title + value = scope:task_contract_title } } } @@ -854,7 +862,7 @@ laamp_help_claimant_contract = { value = flag:employer_dead } trigger_event = ep3_contract_event.0012 - + } } else_if = { @@ -912,7 +920,7 @@ laamp_help_claimant_contract = { add_contact = scope:task_contract_employer # Give hook as well as contact add_hook_if_possible_default_length_effect = { - TARGET = scope:task_contract_employer + TARGET = scope:task_contract_employer TYPE = contact_list_weak_hook } war_contracts_completed_tracker_effect = yes @@ -1141,7 +1149,8 @@ laamp_steal_artifact_contract = { name = task_contract_tier value = root.task_contract_tier } - var:task_contract_destination = { + # This contract targets an artifact, not a place, so it never sets a destination + var:task_contract_destination ?= { save_scope_as = task_contract_destination } var:task_contract_target = { @@ -1169,7 +1178,7 @@ laamp_steal_artifact_contract = { value = flag:employer_dead } trigger_event = ep3_contract_event.0012 - + } } else_if = { @@ -1297,14 +1306,18 @@ laamp_construction_contract = { is_available_ai_adult = yes } } - ai_has_builder_or_pious_builder_personality = yes + ai_has_builder_or_pious_builder_personality = yes } - } + } } valid_to_keep = { var:task_contract_destination ?= { has_ongoing_construction = yes } + valid_laamp_basic_trigger = { + EMPLOYER = root.task_contract_employer + LAAMP = root.task_contract_taker + } } valid_to_accept = { # Standard triggers. @@ -1319,7 +1332,7 @@ laamp_construction_contract = { trigger_if = { limit = { var:task_contract_destination.county = { - has_county_modifier = massive_construction_efforts_modifier + has_county_modifier = massive_construction_efforts_modifier } } task_contract_taker.capital_county = var:task_contract_destination.county @@ -1329,6 +1342,10 @@ laamp_construction_contract = { has_variable = laamp_city_construction } } + valid_laamp_basic_trigger = { + EMPLOYER = root.task_contract_employer + LAAMP = root.task_contract_taker + } } weight = { @@ -1459,11 +1476,11 @@ laamp_construction_contract = { value = flag:employer_dead } trigger_event = ep3_contract_event.0012 - + } } var:task_contract_destination.county = { - remove_county_modifier = massive_construction_efforts_modifier + remove_county_modifier = massive_construction_efforts_modifier } task_contract_taker = { remove_character_modifier = ep3_construction_contract_modifier @@ -1578,7 +1595,7 @@ laamp_construction_contract = { add_contact = scope:task_contract.task_contract_employer # Give hook as well as contact add_hook_if_possible_default_length_effect = { - TARGET = scope:task_contract.task_contract_employer + TARGET = scope:task_contract.task_contract_employer TYPE = contact_list_weak_hook } } @@ -1719,7 +1736,7 @@ laamp_treasure_hunting_contract = { value = flag:employer_dead } trigger_event = ep3_contract_event.0012 - + } } } @@ -1759,7 +1776,7 @@ laamp_treasure_hunting_contract = { add_contact = scope:task_contract.task_contract_employer # Give hook as well as contact add_hook_if_possible_default_length_effect = { - TARGET = scope:task_contract.task_contract_employer + TARGET = scope:task_contract.task_contract_employer TYPE = contact_list_weak_hook } } @@ -1877,7 +1894,7 @@ laamp_cultural_minority_contract = { } set_variable = { name = task_contract_destination - value = scope:task_contract_destination + value = scope:task_contract_destination } # Make our gold rewards static. grab_gold_fuzz_number_effect = yes @@ -1939,7 +1956,7 @@ laamp_cultural_minority_contract = { value = flag:employer_dead } trigger_event = ep3_contract_event.0012 - + } } else_if = { @@ -2026,7 +2043,7 @@ laamp_cultural_minority_contract = { } } } - } + } failure_standard = { positive = no effect = { @@ -2149,7 +2166,7 @@ laamp_religious_minority_contract = { } set_variable = { name = task_contract_destination - value = scope:task_contract_destination + value = scope:task_contract_destination } # Make our gold rewards static. grab_gold_fuzz_number_effect = yes @@ -2211,7 +2228,7 @@ laamp_religious_minority_contract = { value = flag:employer_dead } trigger_event = ep3_contract_event.0012 - + } } else_if = { @@ -2286,7 +2303,7 @@ laamp_religious_minority_contract = { } } } - } + } failure_standard = { positive = no effect = { @@ -2353,7 +2370,7 @@ laamp_prison_break_contract = { NOR = { is_imprisoned_by = scope:employer is_imprisoned_by = root - } + } } any_relation = { type = soulmate @@ -2438,7 +2455,7 @@ laamp_prison_break_contract = { NOR = { is_imprisoned_by = scope:task_contract.task_contract_employer is_imprisoned_by = scope:task_contract.task_contract_taker - } + } } add_to_list = character_to_breakout } @@ -2466,7 +2483,7 @@ laamp_prison_break_contract = { } ordered_in_list = { list = character_to_breakout - order_by = prison_break_value + order_by = prison_break_value save_scope_as = task_contract_object } } @@ -2559,7 +2576,7 @@ laamp_prison_break_contract = { value = flag:employer_dead } trigger_event = ep3_contract_event.0012 - + } } else_if = { @@ -2643,7 +2660,7 @@ laamp_prison_break_contract = { } } } - } + } failure_standard = { positive = no effect = { @@ -2709,8 +2726,8 @@ laamp_treasure_map_contract = { LAAMP = root } #We're not already enrolled in a treasure map contract - NOT = { - any_character_artifact = { has_variable = 1025_treasure_map } + NOT = { + any_character_artifact = { has_variable = 1025_treasure_map } } } valid_to_continue = { @@ -2724,10 +2741,10 @@ laamp_treasure_map_contract = { } } #The employer is still alive and free - root.task_contract_employer = { + root.task_contract_employer = { is_alive = yes is_imprisoned = no - NOT = { has_trait = incapable } + is_incapable = no } # Standard triggers. valid_laamp_basic_trigger = { @@ -2767,7 +2784,7 @@ laamp_treasure_map_contract = { type = miscellaneous visuals = pocket_map max_durability = 10 - history = { + history = { type = given actor = scope:task_contract_employer recipient = scope:task_contract_taker @@ -2776,7 +2793,7 @@ laamp_treasure_map_contract = { save_scope_as = newly_created_map } #Set variables - scope:newly_created_map ?= { + scope:newly_created_map ?= { set_variable = 1025_treasure_map set_variable = { name = picked_up_in_location @@ -2787,7 +2804,7 @@ laamp_treasure_map_contract = { value = scope:task_contract.var:contract_treasure_location } if = { - limit = { + limit = { exists = var:picked_up_in_location exists = var:artifact_treasure_location } @@ -2809,9 +2826,9 @@ laamp_treasure_map_contract = { #Employer died? Map decayed? on_invalidated = { #Employer unavailable - if = { + if = { limit = { - task_contract_employer = { + task_contract_employer = { OR = { is_alive = no has_trait = incapable @@ -2833,7 +2850,7 @@ laamp_treasure_map_contract = { var:contract_treasure_location ?= { save_scope_as = task_contract_destination } #Destroy the historical artifact if the LAAMP is an AI if = { - limit = { + limit = { has_variable = has_unique_historical_artifact task_contract_taker = { is_ai = yes } } @@ -2848,21 +2865,21 @@ laamp_treasure_map_contract = { } #Dead if = { - limit = { + limit = { scope:task_contract_employer = { is_alive = no } } trigger_event = ep3_contract_event.0041 } #Incapable if = { - limit = { + limit = { scope:task_contract_employer = { has_trait = incapable } } trigger_event = ep3_contract_event.0041 } #Imprisoned if = { - limit = { + limit = { scope:task_contract_employer = { is_imprisoned = yes } } #Save the invalidation flag @@ -2949,11 +2966,11 @@ laamp_treasure_map_contract = { } } } - } - stress_impact = { + } + stress_and_fulfillment_impact = { base = major_stress_impact_loss honest = minor_stress_impact_loss - } + } #1000 seems like a fine, round number for some old adventurer to have stashed somewhere domicile ?= { change_provisions = { @@ -2971,7 +2988,7 @@ laamp_treasure_map_contract = { } } #We're not capped and our max cap is equal to -or more- than 1000 - else = { + else = { value = { value = max_provisions subtract = provisions @@ -3016,7 +3033,7 @@ laamp_treasure_map_contract = { } else = { save_scope_value_as = { - name = provisions_to_add_value + name = provisions_to_add_value value = old_adventurer_stashed_provisions_value } } @@ -3061,7 +3078,7 @@ laamp_treasure_map_contract = { right_icon = scope:task_contract.task_contract_employer #Historical Artifact 'transferred owner' if = { - limit = { + limit = { scope:task_contract = { has_variable = has_unique_historical_artifact } } scope:task_contract = { @@ -3073,7 +3090,7 @@ laamp_treasure_map_contract = { } #Random Jewellry 'transferred owner' if = { - limit = { + limit = { scope:task_contract = { has_variable = has_jewelry_artifact } } scope:task_contract = { @@ -3148,9 +3165,9 @@ laamp_treasure_map_contract = { else_if = { limit = { scope:task_contract = { - OR = { - has_variable = treasure_gold_mediocre - has_variable = treasure_gold_poor + has_variable = { + name = treasure_gold_mediocre + name = treasure_gold_poor } } } @@ -3159,7 +3176,7 @@ laamp_treasure_map_contract = { gold = { value = { value = old_adventurer_stashed_gold_value - multiply = 1.25 + multiply = 1.25 #Extra rewards if = { limit = { scope:extra_reward = flag:yes } @@ -3187,7 +3204,7 @@ laamp_treasure_map_contract = { } } } - } + } } #For AI else = { @@ -3228,7 +3245,7 @@ laamp_treasure_map_contract = { scope:task_contract = { has_variable = treasure_gold_great } } } - stress_impact = { + stress_and_fulfillment_impact = { base = minor_stress_impact_loss honest = minor_stress_impact_loss } @@ -3236,13 +3253,13 @@ laamp_treasure_map_contract = { else_if = { limit = { scope:task_contract = { - OR = { - has_variable = treasure_gold_mediocre - has_variable = treasure_gold_poor + has_variable = { + name = treasure_gold_mediocre + name = treasure_gold_poor } } } - stress_impact = { + stress_and_fulfillment_impact = { base = medium_stress_impact_loss honest = minor_stress_impact_loss } @@ -3251,7 +3268,7 @@ laamp_treasure_map_contract = { limit = { scope:task_contract = { has_variable = treasure_pillaged } } - stress_impact = { + stress_and_fulfillment_impact = { base = major_stress_impact_loss honest = minor_stress_impact_loss } @@ -3261,13 +3278,13 @@ laamp_treasure_map_contract = { if = { limit = { #... you can't steal a view - NOT = { + NOT = { scope:task_contract = { has_variable = has_scenic_riches } } } #Lose some Gallowsbait xp if = { - limit = { + limit = { has_trait = gallowsbait has_trait_xp = { trait = gallowsbait @@ -3295,7 +3312,7 @@ laamp_treasure_map_contract = { limit = { exists = scope:historical_artifact } hidden_effect = { destroy_artifact = scope:historical_artifact } } - } + } #1000 seems like a fine, round number for some old adventurer to have stashed somewhere domicile ?= { change_provisions = { @@ -3313,7 +3330,7 @@ laamp_treasure_map_contract = { } } #We're not capped and our max cap is equal to -or more- than 1000 - else = { + else = { value = { value = max_provisions subtract = provisions @@ -3366,7 +3383,7 @@ laamp_treasure_map_contract = { } add_prestige = medium_prestige_loss } - } + } } else = { task_contract_taker = { #Pretty inconsequential, since you couldn't really determine ahead of time @@ -3381,7 +3398,7 @@ laamp_treasure_map_contract = { CHARACTER = scope:task_contract.task_contract_employer OPINION = 0 } - } + } reverse_add_opinion = { modifier = disappointed_opinion target = scope:task_contract.task_contract_employer @@ -3389,7 +3406,7 @@ laamp_treasure_map_contract = { } add_prestige = minor_prestige_loss } - } + } } task_contract_taker = { #Sweep, sweep. (Let the player know the map will be destroyed when failing) @@ -3445,6 +3462,15 @@ laamp_legitimist_support_contract = { } } + valid_to_accept = { + # Standard triggers. + valid_laamp_basic_accept_only_trigger = yes + valid_laamp_basic_trigger = { + EMPLOYER = scope:employer + LAAMP = root + } + } + valid_to_continue = { # Standard triggers. valid_laamp_basic_trigger = { @@ -3614,7 +3640,7 @@ laamp_join_faction_contract = { } custom_description = { text = "FACTION_CANT_JOIN_CREATE_INCAPABLE" - NOT = { has_trait = incapable } + is_incapable = no } custom_description = { text = "character_blocked_from_joining" @@ -3743,7 +3769,7 @@ laamp_join_faction_contract = { value = flag:employer_dead } trigger_event = ep3_contract_event.0012 - + } } else_if = { @@ -3775,7 +3801,10 @@ laamp_join_faction_contract = { } } task_contract_taker = { - remove_variable = task_contract_faction + if = { + limit = { has_variable = task_contract_faction } + remove_variable = task_contract_faction + } } } @@ -3818,7 +3847,7 @@ laamp_join_faction_contract = { add_contact = scope:task_contract.task_contract_employer # Give hook as well as contact add_hook_if_possible_default_length_effect = { - TARGET = scope:task_contract.task_contract_employer + TARGET = scope:task_contract.task_contract_employer TYPE = contact_list_weak_hook } if = { @@ -3893,6 +3922,7 @@ laamp_help_faith_conversion_contract = { } valid_to_accept = { + valid_laamp_basic_accept_only_trigger = yes council_task_contract_valid_employer_trigger = { COUNCILLOR_TYPE = councillor_court_chaplain COUNCIL_TASK_TYPE = task_conversion @@ -4018,7 +4048,7 @@ laamp_help_faith_conversion_contract = { value = flag:employer_dead } trigger_event = ep3_contract_event.0012 - + } } else_if = { @@ -4056,8 +4086,8 @@ laamp_help_faith_conversion_contract = { EXTRA_REWARD = scope:extra_reward } gain_patron_and_hook_from_council_task_contract_effect = yes - } - } + } + } failure_standard = { positive = no effect = { @@ -4164,7 +4194,7 @@ laamp_fight_faith_conversion_contract = { cp:councillor_court_chaplain ?= { is_performing_council_task = task_conversion councillor_task_target = scope:task_contract_employer.location - save_temporary_scope_as = temp_councillor + save_temporary_scope_as = temp_councillor } faith != scope:task_contract.task_contract_taker.faith faith != scope:task_contract_employer.faith @@ -4205,7 +4235,7 @@ laamp_fight_faith_conversion_contract = { var:spawned_by = flag:populate_effect var:spawned_by = flag:on_action } - } + } } set_variable = { name = task_contract_councillor_liege @@ -4305,7 +4335,7 @@ laamp_fight_faith_conversion_contract = { value = flag:employer_dead } trigger_event = ep3_contract_event.0012 - + } } else_if = { @@ -4343,8 +4373,8 @@ laamp_fight_faith_conversion_contract = { CONTACT_HOOK = yes EXTRA_REWARD = scope:extra_reward } - } - } + } + } failure_standard = { positive = no effect = { @@ -4389,17 +4419,18 @@ laamp_help_train_commanders_contract = { } } scope:employer = { - any_knight = { } + any_knight = { } } } trigger_else = { scope:employer.liege = { - any_knight = { } + any_knight = { } } } } valid_to_accept = { + valid_laamp_basic_accept_only_trigger = yes council_task_contract_valid_employer_trigger = { COUNCILLOR_TYPE = councillor_marshal COUNCIL_TASK_TYPE = task_train_commanders @@ -4448,7 +4479,7 @@ laamp_help_train_commanders_contract = { name = task_contract_employer value = scope:task_contract_employer } - + assign_council_task_scopes_in_contract_effect = { COUNCILLOR_TYPE = councillor_marshal COUNCIL_TASK_TYPE = task_train_commanders @@ -4486,7 +4517,7 @@ laamp_help_train_commanders_contract = { subtract = 1 } } - #get a list of traits you can teach + #get a list of traits you can teach task_contract_taker = { every_character_trait = { limit = { @@ -4565,7 +4596,7 @@ laamp_help_train_commanders_contract = { value = flag:employer_dead } trigger_event = ep3_contract_event.0012 - + } } else_if = { @@ -4724,6 +4755,7 @@ laamp_help_find_secrets_contract = { } } valid_to_accept = { + valid_laamp_basic_accept_only_trigger = yes council_task_contract_valid_employer_trigger = { COUNCILLOR_TYPE = councillor_spymaster COUNCIL_TASK_TYPE = task_find_secrets @@ -4828,7 +4860,7 @@ laamp_help_find_secrets_contract = { value = flag:employer_dead } trigger_event = ep3_contract_event.0012 - + } } else_if = { @@ -4847,15 +4879,7 @@ laamp_help_find_secrets_contract = { } else = { scope:task_contract = { - if = { - limit = { - var:knights_trained >= scope:task_contract.var:knights_failed - } - complete_task_contract = success_standard - } - else = { - complete_task_contract = failure_standard - } + complete_task_contract = failure_standard } } } @@ -4932,6 +4956,7 @@ laamp_help_fabricate_claim_contract = { } } valid_to_accept = { + valid_laamp_basic_accept_only_trigger = yes council_task_contract_valid_employer_trigger = { COUNCILLOR_TYPE = councillor_court_chaplain COUNCIL_TASK_TYPE = task_fabricate_claim @@ -5049,7 +5074,7 @@ laamp_help_fabricate_claim_contract = { value = flag:employer_dead } trigger_event = ep3_contract_event.0012 - + } } else_if = { @@ -5111,7 +5136,7 @@ laamp_help_fabricate_claim_contract = { } } gain_patron_and_hook_from_council_task_contract_effect = yes - } + } } success_standard = { effect = { @@ -5154,7 +5179,7 @@ laamp_help_fabricate_claim_contract = { } gain_patron_and_hook_from_council_task_contract_effect = yes } - } + } failure_standard = { positive = no effect = { @@ -5223,7 +5248,7 @@ laamp_help_increase_control_contract = { highest_skill = martial } } - is_councillor_of = top_liege + is_councillor_of = top_liege top_liege = { NOT = { has_any_bad_relationship_with_character_trigger = { CHARACTER = scope:employer } @@ -5239,6 +5264,15 @@ laamp_help_increase_control_contract = { } } + valid_to_accept = { + # Standard triggers. + valid_laamp_basic_accept_only_trigger = yes + valid_laamp_basic_trigger = { + EMPLOYER = scope:employer + LAAMP = root + } + } + valid_to_keep = { var:task_contract_councillor_liege ?= { any_sub_realm_county = { @@ -5263,9 +5297,6 @@ laamp_help_increase_control_contract = { } } - valid_to_accept = { - } - weight = { # Standard weights. value = task_contract_weight_interesting_almost_rare_value @@ -5389,6 +5420,7 @@ laamp_help_increase_control_contract = { value = { value = task_contract_taker.task_contract_success_gold_gain_full_value multiply = scope:task_contract.var:num_of_corrupt_counties + multiply = 2 } } set_variable = { @@ -5396,7 +5428,6 @@ laamp_help_increase_control_contract = { value = { value = task_contract_taker.task_contract_success_gold_gain_full_value multiply = scope:task_contract.var:num_of_corrupt_counties - multiply = 0.5 } } } @@ -5453,7 +5484,7 @@ laamp_help_increase_control_contract = { value = flag:employer_dead } trigger_event = ep3_contract_event.0012 - + } } else_if = { @@ -5510,7 +5541,7 @@ laamp_help_increase_control_contract = { hidden_effect = { scope:task_contract.task_contract_taker= { return_home = yes } } - } + } } success_standard = { effect = { @@ -5550,7 +5581,7 @@ laamp_help_increase_control_contract = { } } } - } + } failure_standard = { positive = no effect = { diff --git a/common/task_contracts/laamp_nm_contracts.txt b/common/task_contracts/laamp_nm_contracts.txt index fb6308e8a..59ec2924a 100644 --- a/common/task_contracts/laamp_nm_contracts.txt +++ b/common/task_contracts/laamp_nm_contracts.txt @@ -167,6 +167,7 @@ laamp_boost_legitimacy_contract = { positive = no effect = { save_scope_as = task_contract + save_scope_value_as = { name = extra_reward value = flag:no } # Standard Penalties. laamp_rewards_disburse_ordinary_currency_effect = { GOLD = 0 @@ -425,7 +426,7 @@ laamp_gain_wanderer_contract = { } NOR = { government_has_flag = government_is_theocracy - government_allows = administrative + government_has_mechanic = administrative } } } @@ -454,11 +455,27 @@ laamp_gain_wanderer_contract = { } NOR = { government_has_flag = government_is_theocracy - government_allows = administrative + government_has_mechanic = administrative } } } + valid_to_continue = { + # Standard triggers. + valid_laamp_basic_trigger = { + EMPLOYER = root.task_contract_employer + LAAMP = root.task_contract_taker + } + } + + valid_to_keep = { + # Standard triggers. + valid_laamp_basic_trigger = { + EMPLOYER = root.task_contract_employer + LAAMP = root.task_contract_taker + } + } + weight = { # Keep it rare and use it to fill in gaps between other contracts value = task_contract_weight_interesting_very_rare_value @@ -565,7 +582,7 @@ laamp_find_secret_contract = { } valid_laamp_sensible_start_trigger = yes scope:employer = { - is_ai = yes + is_ai = yes location = { #Not too far away squared_distance = { target = root.location @@ -598,7 +615,7 @@ laamp_find_secret_contract = { LAAMP = root } scope:employer = { - is_ai = yes + is_ai = yes location = { #Not too far away squared_distance = { target = root.location @@ -795,8 +812,8 @@ laamp_eliminate_heir_contract = { } valid_laamp_sensible_start_trigger = yes scope:employer = { - is_ai = yes - in_diplomatic_range = root + is_ai = yes + in_diplomatic_range = root is_landed = yes location = { #Not too far away squared_distance = { @@ -806,7 +823,7 @@ laamp_eliminate_heir_contract = { } NOR = { government_has_flag = government_is_theocracy - government_allows = administrative + government_has_mechanic = administrative } AND = { #They have a primary heir they dislike, and another one they like primary_heir ?= { @@ -814,7 +831,7 @@ laamp_eliminate_heir_contract = { target = scope:employer value <= high_negative_opinion } - age > 16 #No murderin' babies + age > 16 #No murderin' babies } any_heir = { count > 1 @@ -829,7 +846,7 @@ laamp_eliminate_heir_contract = { LAAMP = root } } - + valid_to_continue = { # Standard triggers. valid_laamp_basic_trigger = { diff --git a/common/task_contracts/laamp_transport_contracts.txt b/common/task_contracts/laamp_transport_contracts.txt index 29ccb4877..d91bd9c79 100644 --- a/common/task_contracts/laamp_transport_contracts.txt +++ b/common/task_contracts/laamp_transport_contracts.txt @@ -55,7 +55,7 @@ laamp_transport_vip = { is_adult = yes is_lowborn = no } - any_neighboring_top_liege_realm_owner = { + any_neighboring_and_across_water_top_liege_realm_owner = { is_ai = yes is_adult = yes capital_province != root.domicile.domicile_location @@ -68,6 +68,10 @@ laamp_transport_vip = { is_courtier_of = root.task_contract_employer is_available = yes } + valid_laamp_basic_trigger = { + EMPLOYER = scope:employer + LAAMP = root.task_contract_taker + } } valid_to_accept = { # Standard triggers. @@ -84,6 +88,10 @@ laamp_transport_vip = { var:task_contract_target ?= { is_alive = yes } + valid_laamp_basic_trigger = { + EMPLOYER = root.task_contract_employer + LAAMP = root.task_contract_taker + } } weight = { @@ -116,7 +124,7 @@ laamp_transport_vip = { limit = { NOT = { exists = scope:task_contract.task_contract_target } } - random_neighboring_top_liege_realm_owner = { + random_neighboring_and_across_water_top_liege_realm_owner = { limit = { is_ai = yes is_adult = yes @@ -379,14 +387,14 @@ laamp_transport_artifact = { # Specific flavour triggers. scope:employer = { any_character_artifact = { - NOR = { - has_variable = artifact_succession_title - has_variable = historical_unique_artifact - has_variable = banner_house - has_variable = banner_dynasty + has_none_of_variables = { + name = artifact_succession_title + name = historical_unique_artifact + name = banner_house + name = banner_dynasty } } - any_neighboring_top_liege_realm_owner = { + any_neighboring_and_across_water_top_liege_realm_owner = { is_ai = yes is_adult = yes capital_province != root.domicile.domicile_location @@ -395,6 +403,10 @@ laamp_transport_artifact = { } valid_to_keep = { exists = root.var:escorted_artifact + valid_laamp_basic_trigger = { + EMPLOYER = root.task_contract_employer + LAAMP = root.task_contract_taker + } } valid_to_accept = { # Standard triggers. @@ -405,11 +417,11 @@ laamp_transport_artifact = { } scope:employer = { any_character_artifact = { - NOR = { - has_variable = artifact_succession_title - has_variable = historical_unique_artifact - has_variable = banner_house - has_variable = banner_dynasty + has_none_of_variables = { + name = artifact_succession_title + name = historical_unique_artifact + name = banner_house + name = banner_dynasty } } } @@ -426,6 +438,10 @@ laamp_transport_artifact = { var:task_contract_target ?= { is_alive = yes } + valid_laamp_basic_trigger = { + EMPLOYER = root.task_contract_employer + LAAMP = root.task_contract_taker + } } weight = { @@ -458,7 +474,7 @@ laamp_transport_artifact = { limit = { NOT = { exists = scope:task_contract.task_contract_target } } - random_neighboring_top_liege_realm_owner = { + random_neighboring_and_across_water_top_liege_realm_owner = { limit = { is_ai = yes is_adult = yes @@ -773,7 +789,7 @@ laamp_transport_gold = { value = task_contract_escort_gold_value multiply = 1.5 } - any_neighboring_top_liege_realm_owner = { + any_neighboring_and_across_water_top_liege_realm_owner = { is_ai = yes is_adult = yes gold <= 0 @@ -794,6 +810,18 @@ laamp_transport_gold = { var:task_contract_target ?= { is_alive = yes } + # Standard triggers. + valid_laamp_basic_trigger = { + EMPLOYER = root.task_contract_employer + LAAMP = root.task_contract_taker + } + } + valid_to_keep = { + # Standard triggers. + valid_laamp_basic_trigger = { + EMPLOYER = root.task_contract_employer + LAAMP = root.task_contract_taker + } } weight = { @@ -813,7 +841,7 @@ laamp_transport_gold = { limit = { NOT = { exists = scope:task_contract.task_contract_target } } - random_neighboring_top_liege_realm_owner = { + random_neighboring_and_across_water_top_liege_realm_owner = { limit = { is_ai = yes is_adult = yes @@ -1036,7 +1064,7 @@ laamp_transport_ward = { age = { 4 12 } } OR = { - any_neighboring_top_liege_realm_owner = { + any_neighboring_and_across_water_top_liege_realm_owner = { is_ai = yes num_of_relation_ward < 2 is_adult = yes @@ -1067,6 +1095,10 @@ laamp_transport_ward = { root.var:task_contract_object ?= { is_available_child = yes } + valid_laamp_basic_trigger = { + EMPLOYER = root.task_contract_employer + LAAMP = root.task_contract_taker + } } valid_to_accept = { # Standard triggers. @@ -1083,6 +1115,10 @@ laamp_transport_ward = { var:task_contract_target ?= { is_alive = yes } + valid_laamp_basic_trigger = { + EMPLOYER = root.task_contract_employer + LAAMP = root.task_contract_taker + } } weight = { @@ -1121,7 +1157,7 @@ laamp_transport_ward = { limit = { NOT = { exists = scope:task_contract.task_contract_target } } - random_neighboring_top_liege_realm_owner = { + random_neighboring_and_across_water_top_liege_realm_owner = { limit = { is_ai = yes is_adult = yes @@ -1422,7 +1458,7 @@ laamp_transport_explorer = { ai_energy >= 50 has_trait = lifestyle_traveler } - any_neighboring_top_liege_realm_owner = { + any_neighboring_and_across_water_top_liege_realm_owner = { is_within_diplo_range = { CHARACTER = root } any_realm_province = { this != root.domicile.domicile_location @@ -1446,6 +1482,23 @@ laamp_transport_explorer = { var:task_contract_target ?= { is_alive = yes } + valid_laamp_basic_trigger = { + EMPLOYER = root.task_contract_employer + LAAMP = root.task_contract_taker + } + } + valid_to_keep = { + var:task_contract_object ?= { + is_alive = yes + } + var:task_contract_target ?= { + is_alive = yes + } + # Standard triggers. + valid_laamp_basic_trigger = { + EMPLOYER = root.task_contract_employer + LAAMP = root.task_contract_taker + } } weight = { @@ -1461,7 +1514,7 @@ laamp_transport_explorer = { scope:contract = { save_scope_as = task_contract task_contract_employer = { - random_neighboring_top_liege_realm_owner = { + random_neighboring_and_across_water_top_liege_realm_owner = { limit = { is_within_diplo_range = { CHARACTER = scope:task_contract.task_contract_taker } any_realm_province = { @@ -1758,7 +1811,7 @@ laamp_transport_animal = { any_owned_story = { NOT = { exists = var:gifted_pet_story } } - any_neighboring_top_liege_realm_owner = { + any_neighboring_and_across_water_top_liege_realm_owner = { is_ai = yes is_adult = yes has_cat_or_dog_trigger = no @@ -1768,6 +1821,10 @@ laamp_transport_animal = { } valid_to_keep = { exists = root.var:escorted_story + valid_laamp_basic_trigger = { + EMPLOYER = root.task_contract_employer + LAAMP = root.task_contract_taker + } } valid_to_accept = { # Standard triggers. @@ -1785,6 +1842,10 @@ laamp_transport_animal = { var:task_contract_target ?= { is_alive = yes } + valid_laamp_basic_trigger = { + EMPLOYER = root.task_contract_employer + LAAMP = root.task_contract_taker + } } weight = { @@ -1814,7 +1875,7 @@ laamp_transport_animal = { limit = { NOT = { exists = scope:task_contract.task_contract_target } } - random_neighboring_top_liege_realm_owner = { + random_neighboring_and_across_water_top_liege_realm_owner = { limit = { is_ai = yes is_adult = yes diff --git a/common/task_contracts/tgp_admin_contracts.txt b/common/task_contracts/tgp_admin_contracts.txt index 0af1f0d6b..ded68e968 100644 --- a/common/task_contracts/tgp_admin_contracts.txt +++ b/common/task_contracts/tgp_admin_contracts.txt @@ -2477,8 +2477,8 @@ confusion_of_tongues = { } if = { limit = { - faith = { - trait_is_sin = greedy + rite = { + trait_is_sin_rite = greedy } } add_piety = minor_piety_loss @@ -3142,8 +3142,8 @@ monopoly_in_the_marketplace = { } if = { limit = { - faith = { - trait_is_sin = greedy + rite = { + trait_is_sin_rite = greedy } } add_piety = minor_piety_loss @@ -3222,8 +3222,8 @@ monopoly_in_the_marketplace = { } if = { limit = { - faith = { - trait_is_sin = greedy + rite = { + trait_is_sin_rite = greedy } } add_piety = minor_piety_loss @@ -3357,8 +3357,8 @@ contested_inheritance = { } if = { limit = { - faith = { - trait_is_sin = greedy + rite = { + trait_is_sin_rite = greedy } } add_piety = minor_piety_loss diff --git a/common/travel/point_of_interest_types/_travel_point_of_interest_types.info b/common/travel/point_of_interest_types/_travel_point_of_interest_types.info index 084beb947..577c69351 100644 --- a/common/travel/point_of_interest_types/_travel_point_of_interest_types.info +++ b/common/travel/point_of_interest_types/_travel_point_of_interest_types.info @@ -15,4 +15,12 @@ key = { # # use add_to_list = provinces to return which provinces are valid build_province_list = {} + + # Optional, effect run when this POI is added to / removed from a province. + # keep effects local to the province and do NOT make changes to global gamestate + # scopes: + # root: the province. Use to cache data for localization so it survives later state changes + # + on_added = {} + on_removed = {} } diff --git a/common/travel/point_of_interest_types/travel_point_of_interest_types.txt b/common/travel/point_of_interest_types/travel_point_of_interest_types.txt index 1ed12552d..75079673d 100644 --- a/common/travel/point_of_interest_types/travel_point_of_interest_types.txt +++ b/common/travel/point_of_interest_types/travel_point_of_interest_types.txt @@ -175,96 +175,7 @@ poi_capitals = { } every_courtier = { hidden_effect = { - scope:province.barony.holder = { - if = { - limit = { - has_royal_court = yes - has_court_type = court_diplomatic - } - prev = { - add_diplomacy_skill = 1 - force_character_skill_recalculation = yes - } - } - else_if = { - limit = { - has_royal_court = yes - has_court_type = court_warlike - } - prev = { - add_martial_skill = 1 - force_character_skill_recalculation = yes - } - } - else_if = { - limit = { - has_royal_court = yes - has_court_type = court_administrative - } - prev = { - add_stewardship_skill = 1 - force_character_skill_recalculation = yes - } - } - else_if = { - limit = { - has_royal_court = yes - has_court_type = court_intrigue - } - prev = { - add_intrigue_skill = 1 - force_character_skill_recalculation = yes - } - } - else_if = { - limit = { - has_royal_court = yes - has_court_type = court_scholarly - } - prev = { - add_learning_skill = 1 - force_character_skill_recalculation = yes - } - } - else_if = { - limit = { - has_royal_court = yes - OR = { - has_court_type = court_tribal - has_court_type = court_nomadic - } - } - prev = { - add_prowess_skill = 1 - force_character_skill_recalculation = yes - } - } - else = { - prev = { - random_list = { - 1 = { - add_prowess_skill = 1 - } - 1 = { - add_learning_skill = 1 - } - 1 = { - add_intrigue_skill = 1 - } - 1 = { - add_stewardship_skill = 1 - } - 1 = { - add_martial_skill = 1 - } - 1 = { - add_diplomacy_skill = 1 - } - } - force_character_skill_recalculation = yes - } - } - } + local_court_type_skill_point_effect = { PROVINCE = scope:province } } } } @@ -437,6 +348,15 @@ poi_special_buildings_religious = { } } add_piety = point_of_interest_piety_value + if = { # Bonuses from Zeal Phases + limit = { + top_participant_group:the_christian_church ?= { + has_participant_group_parameter = the_christian_church_holy_site_poi_bonus + } + } + add_poi_learning_experience_effect = yes + add_scholar_trait_or_xp_effect = { VALUE = 10 } + } } # Prestige for Wanderers @@ -468,7 +388,167 @@ poi_special_buildings_religious = { has_perk = church_and_state_perk has_government = landless_adventurer_government } - add_piety = major_piety_gain + add_piety = adventurer_church_and_state_perk_value + } + } + + visiting_poi_effect = yes + } +} + +# Holy sites with an enshrined artifact but no religious POI building +poi_standalone_holy_site = { + build_province_list = { + every_religion_global = { + every_faith = { + limit = { + num_county_followers > 0 + } + every_holy_site = { + limit = { + holy_site_has_artifact = yes + holy_site_barony.title_province ?= { + NOT = { has_building_with_flag = { flag = travel_point_of_interest_religious } } + } + } + holy_site_barony.title_province ?= { add_to_list = provinces } + } + } + } + } + + # Remember which holy site caused this POI to be generated, so localization does not break if that site later goes inactive + on_added = { + barony ?= { + random_barony_holy_site = { + limit = { + holy_site_has_artifact = yes + any_holy_site_faith = { num_county_followers > 0 } + } + save_scope_as = poi_holy_site + + random_holy_site_faith = { + limit = { + num_county_followers > 0 + } + save_scope_as = poi_holy_site_faith + } + } + } + if = { + limit = { + exists = scope:poi_holy_site + exists = scope:poi_holy_site_faith + } + set_variable = { + name = poi_standalone_holy_site + value = scope:poi_holy_site + } + set_variable = { + name = poi_standalone_holy_site_faith + value = scope:poi_holy_site_faith + } + } + } + + on_removed = { + if = { + limit = { + has_variable = poi_standalone_holy_site + has_variable = poi_standalone_holy_site_faith + } + remove_variable = poi_standalone_holy_site + remove_variable = poi_standalone_holy_site_faith + } + } + + on_visit = { + send_interface_toast = { + title = poi_standalone_holy_site.visit + left_icon = root + + add_poi_learning_experience_effect_minor = yes + if = { + limit = { + scope:province.barony ?= { + is_holy_site_of = root.faith + } + } + scope:province.barony = { + random_barony_holy_site = { + limit = { any_holy_site_faith = { this = root.faith } } + save_scope_as = holy_site + } + } + if = { # Regular Holy Site + limit = { + exists = scope:holy_site + root.faith = { + is_faith_holy_site = scope:holy_site + NOT = { is_faith_eminent_holy_site = scope:holy_site } + } + } + add_piety = point_of_interest_minor_piety_value + if = { # Bonuses from Zeal Phases + limit = { + top_participant_group:the_christian_church ?= { + has_participant_group_parameter = the_christian_church_holy_site_poi_bonus + } + } + add_poi_learning_experience_effect_minor = yes + add_scholar_trait_or_xp_effect = { VALUE = 5 } + } + } + if = { # Eminent Holy Site + limit = { + exists = scope:holy_site + root.faith = { + is_faith_eminent_holy_site = scope:holy_site + } + } + add_piety = point_of_interest_piety_value + if = { # Bonuses from Zeal Phases + limit = { + top_participant_group:the_christian_church ?= { + has_participant_group_parameter = the_christian_church_holy_site_poi_bonus + } + } + add_poi_learning_experience_effect = yes + add_scholar_trait_or_xp_effect = { VALUE = 10 } + } + } + } + + # Prestige for Wanderers + wanderer_lifestyle_destination_effect = yes + + if = { + limit = { + has_trait = lifestyle_mystic + } + add_trait_xp = { + trait = lifestyle_mystic + value = lifestyle_mystic_xp_gain_minor_value + } + } + + traveler_travel_xp_effect = { + MIN = 3 + MAX = 5 + } + if = { + limit = { + has_government = landless_adventurer_government + has_perk = organized_muster_rolls_perk + } + add_gold = see_how_its_done_gold_reward_value + } + if = { + limit = { + has_perk = church_and_state_perk + has_government = landless_adventurer_government + } + add_piety = adventurer_church_and_state_perk_value } } @@ -552,7 +632,7 @@ poi_grand_city = { title = poi_grand_city.visit left_icon = root - add_gold = minor_gold_laamps_value + add_gold = see_how_its_done_gold_reward_value } } } @@ -570,7 +650,7 @@ poi_grand_city = { has_government = landless_adventurer_government has_perk = organized_muster_rolls_perk } - add_gold = minor_gold_laamps_value + add_gold = see_how_its_done_gold_reward_value } } } @@ -733,7 +813,7 @@ poi_natural_feature = { title = poi_natural_feature.visit left_icon = root add_poi_wanderer_experience_effect = yes - stress_impact = { base = minor_stress_impact_loss } + stress_and_fulfillment_impact = { base = minor_stress_impact_loss } if = { limit = { @@ -754,7 +834,7 @@ poi_natural_feature = { has_government = landless_adventurer_government has_perk = organized_muster_rolls_perk } - add_gold = minor_gold_laamps_value + add_gold = see_how_its_done_gold_reward_value } } } @@ -771,7 +851,7 @@ poi_natural_feature = { has_government = landless_adventurer_government has_perk = organized_muster_rolls_perk } - add_gold = minor_gold_laamps_value + add_gold = see_how_its_done_gold_reward_value } } } @@ -839,10 +919,8 @@ poi_battles = { } on_visit = { - send_interface_toast = { - title = poi_battles.visit - left_icon = root - + # keep tooltip and result consistent + show_as_tooltip = { if = { limit = { OR = { @@ -861,50 +939,117 @@ poi_battles = { # Prestige for Wanderers wanderer_lifestyle_destination_effect = yes } - - if = { - limit = { - NOR = { - has_variable = battle_poi_trait_gained - number_of_commander_traits > 1 + random_list = { + 80 = { + save_scope_value_as = { + name = poi_battles_bonus + value = flag:martial_xp + } + show_as_tooltip = { + add_poi_martial_experience_effect = yes } } - scope:province = { - random_list = { - 80 = { - root = { add_poi_martial_experience_effect = yes } - } - 20 = { + 20 = { + save_scope_value_as = { + name = poi_battles_bonus + value = flag:trait + } + show_as_tooltip = { + scope:province = { switch = { trigger = terrain - forest = { battle_poi_trait_effect = { TRAIT = forest_fighter } } - taiga = { battle_poi_trait_effect = { TRAIT = forest_fighter } } - farmlands = { battle_poi_trait_effect = { TRAIT = open_terrain_expert } } - plains = { battle_poi_trait_effect = { TRAIT = open_terrain_expert } } - steppe = { battle_poi_trait_effect = { TRAIT = open_terrain_expert } } - hills = { battle_poi_trait_effect = { TRAIT = rough_terrain_expert } } - mountains = { battle_poi_trait_effect = { TRAIT = rough_terrain_expert } } - wetlands = { battle_poi_trait_effect = { TRAIT = rough_terrain_expert } } - drylands = { battle_poi_trait_effect = { TRAIT = desert_warrior } } - desert = { battle_poi_trait_effect = { TRAIT = desert_warrior } } - desert_mountains = { battle_poi_trait_effect = { TRAIT = desert_warrior } } - oasis = { battle_poi_trait_effect = { TRAIT = desert_warrior } } - jungle = { battle_poi_trait_effect = { TRAIT = jungle_stalker } } - floodplains = { battle_poi_trait_effect = { TRAIT = flexible_leader } } - } - root = { - set_variable = battle_poi_trait_gained + forest = { root = { add_trait = forest_fighter } } + taiga = { root = { add_trait = forest_fighter } } + farmlands = { root = { add_trait = open_terrain_expert } } + plains = { root = { add_trait = open_terrain_expert } } + steppe = { root = { add_trait = open_terrain_expert } } + hills = { root = { add_trait = rough_terrain_expert } } + mountains = { root = { add_trait = rough_terrain_expert } } + wetlands = { root = { add_trait = rough_terrain_expert } } + drylands = { root = { add_trait = desert_warrior } } + desert = { root = { add_trait = desert_warrior } } + desert_mountains = { root = { add_trait = desert_warrior } } + oasis = { root = { add_trait = desert_warrior } } + jungle = { root = { add_trait = jungle_stalker } } + floodplains = { root = { add_trait = flexible_leader } } } } } } } + if = { + limit = { location = scope:province } + send_interface_toast = { + title = poi_battles.visit + left_icon = root - traveler_danger_xp_effect = { - MIN = 1 - MAX = 3 + if = { + limit = { + OR = { + has_variable = battle_poi_trait_gained + number_of_commander_traits > 1 + } + } + add_poi_martial_experience_effect = yes + } + else = { + poi_lifestyle_experience_effect = { + LIFESTYLE = martial + VALUE = travel_minor_lifestyle_xp + } + } + + if = { + limit = { + NOR = { + has_variable = battle_poi_trait_gained + number_of_commander_traits > 1 + } + } + if = { + limit = { + scope:poi_battles_bonus = flag:martial_xp + } + add_poi_martial_experience_effect = yes + } + else_if = { + limit = { + scope:poi_battles_bonus = flag:trait + } + scope:province = { + switch = { + trigger = terrain + forest = { root = { add_trait = forest_fighter } } + taiga = { root = { add_trait = forest_fighter } } + farmlands = { root = { add_trait = open_terrain_expert } } + plains = { root = { add_trait = open_terrain_expert } } + steppe = { root = { add_trait = open_terrain_expert } } + hills = { root = { add_trait = rough_terrain_expert } } + mountains = { root = { add_trait = rough_terrain_expert } } + wetlands = { root = { add_trait = rough_terrain_expert } } + drylands = { root = { add_trait = desert_warrior } } + desert = { root = { add_trait = desert_warrior } } + desert_mountains = { root = { add_trait = desert_warrior } } + oasis = { root = { add_trait = desert_warrior } } + jungle = { root = { add_trait = jungle_stalker } } + floodplains = { root = { add_trait = flexible_leader } } + } + root = { + set_variable = battle_poi_trait_gained + } + } + } + } + + traveler_danger_xp_effect = { + MIN = 1 + MAX = 3 + } + + # Prestige for Wanderers + wanderer_lifestyle_destination_effect = yes + } } - visiting_poi_effect = yes } } @@ -1018,10 +1163,8 @@ poi_battles_historical = { } on_visit = { - send_interface_toast = { - title = travel_point_historical_name_visit_message - left_icon = root - + # keep tooltip and result consistent + show_as_tooltip = { if = { limit = { OR = { @@ -1037,19 +1180,119 @@ poi_battles_historical = { VALUE = travel_minor_lifestyle_xp } } - - if = { - limit = { - NOR = { - has_variable = battle_poi_trait_gained - number_of_commander_traits > 1 + } + random_list = { + 80 = { + save_scope_value_as = { + name = poi_battles_historical_bonus + value = flag:martial_xp + } + show_as_tooltip = { + add_poi_martial_experience_effect = yes + } + } + 20 = { + save_scope_value_as = { + name = poi_battles_historical_bonus + value = flag:trait + } + show_as_tooltip = { + scope:province = { + switch = { + trigger = this + # Tours + province:2253 = { root = { add_trait = unyielding_defender } } + # Lechfeld + province:2778 = { root = { add_trait = open_terrain_expert } } + # Hastings + province:1509 = { root = { add_trait = aggressive_attacker } } + # Stamford Bridge + province:1595 = { root = { add_trait = organizer } } + # Manzikert + province:701 = { root = { add_trait = flexible_leader } } + # Yarmuk + province:5954 = { root = { add_trait = reckless } } + # Dandanaqan + province:4008 = { root = { add_trait = desert_warrior } } + # Battle of Aror + province:1175 = { root = { add_trait = flexible_leader } } + # Battle of Svolder + province:2811 = { root = { add_trait = holy_warrior } } + # Battle of Civitate + province:2605 = { root = { add_trait = open_terrain_expert } } + # Battle of Talas + province:7132 = { root = { add_trait = desert_warrior } } + #Battle of Sufuku + province:10698 = { root = { add_trait = rough_terrain_expert } } + #Battle of Baekgang + province:9953 = { root = { add_trait = unyielding_defender } } + #Battle of Palembang + province:11296 = { root = { add_trait = flexible_leader } } + #Battle of Angkor + province:10816 = { root = { add_trait = reaver } } + #Battle of Songping + province:10861 = { root = { add_trait = reaver } } + #Battle of Muye + province:10355 = { root = { add_trait = aggressive_attacker } } + #Battle of Guandu + province:9820 = { root = { add_trait = flexible_leader } } + #Battle of Red Cliffs + province:8978 = { root = { add_trait = forder } } + #Battle of Yiling + province:10020 = { root = { add_trait = reckless } } + #Battle of Fei River + province:10249 = { root = { add_trait = unyielding_defender } } + #Battle of Canhe Slope + province:11715 = { root = { add_trait = organizer } } + #Battle of Xiangji Temple + province:10430 = { root = { add_trait = unyielding_defender } } + #Battle of Gaoliang River + province:9702 = { root = { add_trait = logistician } } + } } } - random_list = { - 80 = { + } + } + + send_interface_toast = { + title = travel_point_historical_name_visit_message + left_icon = root + + if = { + limit = { location = scope:province } + if = { + limit = { + OR = { + has_variable = battle_poi_trait_gained + number_of_commander_traits > 1 + } + } + add_poi_martial_experience_effect = yes + } + else = { + poi_lifestyle_experience_effect = { + LIFESTYLE = martial + VALUE = travel_minor_lifestyle_xp + } + } + + if = { + limit = { + NOR = { + has_variable = battle_poi_trait_gained + number_of_commander_traits > 1 + } + } + if = { + limit = { + scope:poi_battles_historical_bonus = flag:martial_xp + } add_poi_martial_experience_effect = yes } - 20 = { + else_if = { + limit = { + scope:poi_battles_historical_bonus = flag:trait + } scope:province = { switch = { trigger = this @@ -1138,7 +1381,7 @@ poi_special_buildings_stress_relief = { left_icon = root # Stress loss - stress_impact = { + stress_and_fulfillment_impact = { base = -10 lazy = -5 content = -5 @@ -1413,3 +1656,326 @@ poi_mandala_capital = { visiting_poi_effect = yes } } + +poi_grand_cathedral = { + build_province_list = { + every_in_global_list = { + variable = grand_cathedral_poi_list + limit = { has_building_with_flag = { flag = grand_cathedral_flag } } + add_to_list = provinces + } + } + + on_visit = { + send_interface_toast = { + title = poi_grand_cathedral_visit + left_icon = root + + if = { + limit = { + scope:province = { + exists = var:grand_cathedral_tier + var:grand_cathedral_tier >= 2 + } + } + if = { + limit = { is_playable_character = yes } # Only playable characters have spiritual fulfillment + change_spiritual_fulfillment = minor_spiritual_fulfillment_value + } + add_piety = minor_piety_gain + } + + #Christians get spiritual fulfillment and learning lifestyle xp from frescoes + if = { + limit = { + has_spiritual_fulfillment_type = christian_fulfillment + } + if = { + limit = { + scope:province = { + has_variable = cathedral_learning_xp + } + } + add_poi_learning_experience_effect_minor = yes + if = { + limit = { + is_playable_character = yes # Only playable characters have spiritual fulfillment + scope:province = { + exists = var:grand_cathedral_tier + var:grand_cathedral_tier >= 2 + } + } + change_spiritual_fulfillment = major_spiritual_fulfillment_value + } + else_if = { + limit = { is_playable_character = yes } + change_spiritual_fulfillment = medium_spiritual_fulfillment_value + } + } + } + else = { + if = { + limit = { + scope:province = { + has_variable = cathedral_learning_xp + } + } + add_poi_learning_experience_effect = yes + } + else = { + add_poi_learning_experience_effect_minor = yes + } + } + + #Variables set by frescoing the cathedral nicely + #Stress loss + if = { + limit = { + scope:province = { + has_variable = cathedral_stress_loss + } + } + stress_and_fulfillment_impact = { base = minor_stress_impact_loss } + } + if = { + limit = { + scope:province = { + has_variable = cathedral_glass_marian_light + } + } + stress_and_fulfillment_impact = { base = minor_stress_impact_loss } + if = { + limit = { + has_spiritual_fulfillment_type = christian_fulfillment + } + if = { + limit = { + is_playable_character = yes + has_personal_tenet = tenet_dulia + } + change_spiritual_fulfillment = major_spiritual_fulfillment_value + } + else_if = { + limit = { is_playable_character = yes } + change_spiritual_fulfillment = medium_spiritual_fulfillment_value + } + } + } + + #Variables set by stained glass program + #Tree of Jesse dynasty prestige is reserved for the travel plan leader so it doesn't spam for every entourage member + if = { + limit = { + is_travel_leader = yes + scope:province = { + has_variable = cathedral_glass_tree_of_jesse + } + exists = dynasty + } + dynasty = { + add_dynasty_prestige = minor_dynasty_prestige_gain + } + } + if = { + limit = { + scope:province = { + has_variable = cathedral_glass_dynasty + } + } + add_prestige = minor_prestige_gain + } + if = { + limit = { + has_spiritual_fulfillment_type = christian_fulfillment + scope:province = { + has_variable = { + name = cathedral_glass_martyrdom + name = cathedral_glass_tree_of_jesse + name = cathedral_glass_dynasty + name = cathedral_glass_pilgrim + } + } + } + if = { + limit = { is_playable_character = yes } + change_spiritual_fulfillment = minor_spiritual_fulfillment_value + } + } + + #Big piety from combined piety cathedral and holy site + if = { + limit = { + OR = { + scope:province = { + has_variable = cathedral_piety + } + scope:province = { + has_variable = cathedral_glass_martyrdom + } + scope:province.barony ?= { + is_holy_site_of = root.faith + } + } + } + add_piety = { + value = point_of_interest_piety_value + multiply = 2 + } + } + #Regular piety + else_if = { + limit = { + scope:province = { + has_variable = cathedral_piety + barony ?= { + is_holy_site_of = root.faith + } + } + } + add_piety = point_of_interest_piety_value + } + + #Pilgrim XP + if = { + limit = { + has_trait = pilgrim + scope:province = { + has_variable = cathedral_extended_nave + } + } + add_trait_xp = { + trait = pilgrim + value = { + value = pilgrim_xp_gain_minor_value + multiply = 2 + } + } + add_piety = minor_piety_gain + } + else_if = { + limit = { + has_trait = pilgrim + scope:province = { + has_variable = cathedral_pilgrim_xp + } + } + add_trait_xp = { + trait = pilgrim + value = { + value = pilgrim_xp_gain_minor_value + multiply = 1.5 + } + } + } + else_if = { + limit = { + has_trait = pilgrim + scope:province = { + has_variable = cathedral_glass_pilgrim + } + } + add_trait_xp = { + trait = pilgrim + value = { + value = pilgrim_xp_gain_minor_value + multiply = 2 + } + } + add_piety = minor_piety_gain + } + + #Scholar XP + if = { + limit = { + has_trait = lifestyle_scholar + scope:province = { + has_variable = cathedral_scholar_xp + } + } + add_trait_xp = { + trait = lifestyle_scholar + value = { + value = scholar_xp_gain_minor_value + multiply = 1.5 + } + } + } + if = { + limit = { + has_trait = zealous + scope:province = { + has_variable = cathedral_glass_martyrdom + } + } + add_piety = major_piety_gain + stress_and_fulfillment_impact = { base = minor_stress_impact_loss } + } + + #Mystic + if = { + limit = { + has_trait = lifestyle_mystic + } + if = { + limit = { + scope:province = { + has_variable = cathedral_stars_vault + } + } + add_trait_xp = { + trait = lifestyle_mystic + value = { + value = lifestyle_mystic_xp_gain_medium_value + multiply = 2 + } + } + } + else_if = { + limit = { + scope:province = { + has_variable = cathedral_mystic_xp + } + } + add_trait_xp = { + trait = lifestyle_mystic + value = { + value = lifestyle_mystic_xp_gain_medium_value + multiply = 1.5 + } + } + } + else = { + add_trait_xp = { + trait = lifestyle_mystic + value = lifestyle_mystic_xp_gain_minor_value + } + } + } + + # Prestige for Wanderers + wanderer_lifestyle_destination_effect = yes + + traveler_travel_xp_effect = { + MIN = 3 + MAX = 5 + } + + if = { + limit = { + has_government = landless_adventurer_government + has_perk = organized_muster_rolls_perk + } + add_gold = see_how_its_done_gold_reward_value + } + if = { + limit = { + has_perk = church_and_state_perk + has_government = landless_adventurer_government + } + add_piety = adventurer_church_and_state_perk_value + } + } + + visiting_poi_effect = yes + } +}