From fde0fe74546ab62d3f49dcba50962a4ae712db61 Mon Sep 17 00:00:00 2001 From: Fishedotjpg Date: Tue, 3 Nov 2026 16:34:23 +0000 Subject: [PATCH] fix --- .../00_ep3_decision_effects.txt | 633 ++++++++++++++++++ .../00_government_effects.txt | 202 ++++++ 2 files changed, 835 insertions(+) create mode 100644 common/scripted_effects/00_ep3_decision_effects.txt create mode 100644 common/scripted_effects/00_government_effects.txt diff --git a/common/scripted_effects/00_ep3_decision_effects.txt b/common/scripted_effects/00_ep3_decision_effects.txt new file mode 100644 index 000000000..ab9fbdd0f --- /dev/null +++ b/common/scripted_effects/00_ep3_decision_effects.txt @@ -0,0 +1,633 @@ +# This effect requires you to input which convert to convert to with GOVERNMENT_TO_ADOPT +# If you want it to be dynamic, simply use "flag:dynamic" +# Otherwise, set the government you want to adopt +convert_to_administrative_from_feudalism_effect = { + save_scope_as = administrative_liege + + switch = { + trigger = $GOVERNMENT_TO_ADOPT$ + flag:dynamic = { # If we want the selection to be dynamic, save and clear the scope to prevent errors + save_scope_value_as = { + name = has_selected_a_government + value = flag:dynamic + } + clear_saved_scope = has_selected_a_government + } + flag:administrative = { # administrative_government / Administrative + save_scope_value_as = { + name = has_selected_a_government + value = flag:administrative + } + } + flag:celestial = { # celestial_government / Celestial + save_scope_value_as = { + name = has_selected_a_government + value = flag:celestial + } + } + flag:meritocratic = { # meritocratic_government / Meritocratic + save_scope_value_as = { + name = has_selected_a_government + value = flag:meritocratic + } + } + flag:japan_administrative = { # japan_administrative_government / Ritsuryo + save_scope_value_as = { + name = has_selected_a_government + value = flag:japan_administrative + } + } + } + + change_to_administrative_effect = yes + + #Direct Vassals who fulfill the ep3_vassal_will_become_admin criteria are converted. Vassals above 25 opinion always accept + #Vassals are converted as a hierarchy. If a king is converted we convert all who are valid below that king (so his dukes, their counts, and their barons) are all converted. + #If a vassal does not convert (because of not accepting or because they are outside of the de jure empire, etc) then the vassals below them are _not_ converted either. + + #Human vassals are given a choice to convert or not in the ping event, even if powerful or having very good relation. + + hidden_effect = { + save_scope_as = actor + every_powerful_vassal = { #All valid powerful vassals auto convert - their support was required to take the decision. + limit = { + ep3_vassal_will_become_admin = yes + is_ai = yes + } + save_scope_as = recipient + change_to_administrative_effect = yes + every_vassal = { #Everyone below also converts + limit = { + ep3_vassal_will_become_admin = yes #We still don't want mayors and bishops + is_ai = yes + } + save_scope_as = recipient + change_to_administrative_effect = yes + every_vassal = { #Everyone below also converts (could be Counts, could be Barons) + limit = { + ep3_vassal_will_become_admin = yes #We still don't want mayors and bishops + is_ai = yes + } + save_scope_as = recipient + change_to_administrative_effect = yes + every_vassal = { #Everyone below also converts could be Barons) + limit = { + ep3_vassal_will_become_admin = yes #We still don't want mayors and bishops + is_ai = yes + } + save_scope_as = recipient + change_to_administrative_effect = yes + } + } + } + } + every_vassal = { + limit = { + ep3_vassal_will_become_admin = yes + trigger_if = { #Dukes and above can say no + limit = { + primary_title.tier >= tier_duchy + is_ai = yes + } + opinion = { + target = scope:administrative_liege + value > 25 + } + } + } + save_scope_as = recipient + change_to_administrative_effect = yes + every_vassal = { #Everyone below also converts (could be Counts, could be Dukes) + limit = { + ep3_vassal_will_become_admin = yes #We still don't want mayors and bishops + is_ai = yes + } + save_scope_as = recipient + change_to_administrative_effect = yes + every_vassal = { #Everyone below also converts (Could be Counts, could be Barons) + limit = { + ep3_vassal_will_become_admin = yes #We still don't want mayors and bishops + is_ai = yes + } + save_scope_as = recipient + change_to_administrative_effect = yes + every_vassal = { #Everyone below also converts (could be Barons) + limit = { + ep3_vassal_will_become_admin = yes #We still don't want mayors and bishops + is_ai = yes + } + save_scope_as = recipient + change_to_administrative_effect = yes + } + } + } + } + every_vassal = { + limit = { + ep3_vassal_will_become_admin = yes + trigger_if = { #Dukes and above can say no + limit = { + primary_title.tier >= tier_duchy + is_ai = yes + } + opinion = { + target = scope:administrative_liege + value > 0 + } + } + } + random_list = { + 10 = { } #10% of the vassals that like us less than 25 but more than 0 still convert. + 90 = { + save_scope_as = recipient + change_to_administrative_effect = yes + every_vassal = { #Everyone below also converts (could be Counts, could be Dukes) + limit = { + ep3_vassal_will_become_admin = yes #We still don't want mayors and bishops + is_ai = yes + } + save_scope_as = recipient + change_to_administrative_effect = yes + every_vassal = { #Everyone below also converts (Could be Counts, could be Barons) + limit = { + ep3_vassal_will_become_admin = yes #We still don't want mayors and bishops + is_ai = yes + } + save_scope_as = recipient + change_to_administrative_effect = yes + every_vassal = { #Everyone below also converts (could be Barons) + limit = { + ep3_vassal_will_become_admin = yes #We still don't want mayors and bishops + is_ai = yes + } + save_scope_as = recipient + change_to_administrative_effect = yes + } + } + } + } + } + } + every_vassal = { + limit = { + highest_held_title_tier >= tier_duchy + house.house_head ?= this + government_allows = noble_families + NOT = { + any_held_title = { is_noble_family_title = yes } + } + } + create_noble_family_effect = { GOVERNMENT_GIVER = this } + } + } + + if = { + limit = { + NOT = { + has_character_flag = latin_emp_force_admin_flag + } + top_liege = this + } + add_character_modifier = { + modifier = first_admin_emperor + } + } + + change_influence = admin_convert_influence_value + + custom_description_no_bullet = { + text = vassals_can_become_administrative + } + custom_tooltip = powerful_vassals_become_administrative + custom_tooltip = vassals_become_administrative + custom_tooltip = vassals_who_may_switch_to_administrative +} + +convert_to_administrative_from_feudalism_game_start_effect = { + if = { + limit = { has_dlc_feature = roads_to_power } + # Because we run this twice, since folks can change in the lobby. + if = { + limit = { + NOT = { government_has_mechanic = administrative } + trigger_if = { + limit = { + independent = no + } + NOR = { + has_character_flag = granted_title_government_cooldown + prestige_level > 2 + piety_level > 2 + AND = { + dynasty ?= { + dynasty_prestige_level > 2 + } + } + } + } + } + change_government = administrative_government + create_noble_family_effect = { GOVERNMENT_GIVER = this } + add_to_list = estatified_list + } + + every_vassal_or_below = { + limit = { + highest_held_title_tier >= tier_county + OR = { + government_has_flag = government_is_feudal + government_has_flag = government_is_clan + government_has_flag = government_is_tribal + } + NOR = { + faith.religious_head ?= this + liege = { + faith.religious_head ?= this + top_liege != this + } + AND = { + exists = scope:ignore_culture + culture = scope:ignore_culture + } + } + } + change_to_administrative_effect = yes + } + } +} + +apply_historic_administrative_game_rule_effect = { + # We'll be doing some excessive triggers below in a bid to lightly future-proof + error-spam mods less, don't worry about it. + ## We also do player-specific realms separately — we need to know what their realm is so we do it after the lobby exclusively. + # Egypt. + if = { + limit = { + NOT = { has_game_rule = historicity_extra_admin_egypt_gameplay_not_administrative } + exists = title:k_egypt + } + if = { + limit = { has_game_rule = historicity_extra_admin_egypt_historic_always } + title:k_egypt.holder ?= { convert_to_administrative_from_feudalism_game_start_effect = yes } + } + } + # Arabia. + if = { + limit = { + NOT = { has_game_rule = historicity_extra_admin_arabia_gameplay_not_administrative } + exists = title:e_arabia + } + if = { + limit = { has_game_rule = historicity_extra_admin_arabia_historic_867 } + # Give the Armenians a fighting chance. + culture:armenian = { save_scope_as = ignore_culture } + title:e_arabia.holder ?= { convert_to_administrative_from_feudalism_game_start_effect = yes } + } + } + # Ghana. + if = { + limit = { + NOT = { has_game_rule = historicity_extra_admin_ghana_gameplay_not_administrative } + exists = title:k_ghana + } + if = { + limit = { has_game_rule = historicity_extra_admin_ghana_historic_always } + title:k_ghana.holder ?= { convert_to_administrative_from_feudalism_game_start_effect = yes } + } + } + # Kabulistan/the Ghaznivids. + if = { + limit = { + NOT = { has_game_rule = historicity_extra_admin_kabulistan_gameplay_not_administrative } + exists = title:k_kabulistan + } + if = { + limit = { has_game_rule = historicity_extra_admin_kabulistan_historic_always } + title:k_kabulistan.holder ?= { convert_to_administrative_from_feudalism_game_start_effect = yes } + } + } + # Persia. + if = { + limit = { + NOT = { has_game_rule = historicity_extra_admin_persia_gameplay_not_administrative } + exists = title:e_persia + exists = title:k_persia + } + if = { + limit = { + game_start_date = 1178.10.1 + has_game_rule = historicity_extra_admin_persia_historic_1178 + } + title:k_persia.holder ?= { convert_to_administrative_from_feudalism_game_start_effect = yes } + } + else_if = { + limit = { has_game_rule = historicity_extra_admin_persia_alt_historic_always } + # Independent k_persia. + if = { + limit = { + title:k_persia.holder ?= { top_liege = this } + } + title:k_persia.holder ?= { convert_to_administrative_from_feudalism_game_start_effect = yes } + } + # Else, the empire. + else = { + title:e_persia.holder ?= { convert_to_administrative_from_feudalism_game_start_effect = yes } + } + } + } + # Maghreb. + if = { + limit = { + NOT = { has_game_rule = historicity_extra_admin_maghreb_gameplay_not_administrative } + exists = title:k_maghreb + } + if = { + limit = { + game_start_date >= 1066.9.15 + has_game_rule = historicity_extra_admin_maghreb_historic_post_1066 + } + title:k_maghreb.holder ?= { convert_to_administrative_from_feudalism_game_start_effect = yes } + } + else_if = { + limit = { has_game_rule = historicity_extra_admin_maghreb_alt_historic_always } + title:k_maghreb.holder ?= { convert_to_administrative_from_feudalism_game_start_effect = yes } + } + } + # Tamilakam/the Cholas. + if = { + limit = { + NOT = { has_game_rule = historicity_extra_admin_tamilakam_gameplay_not_administrative } + exists = title:k_tamilakam + } + if = { + limit = { + game_start_date = 1066.9.15 + has_game_rule = historicity_extra_admin_tamilakam_historic_1066 + } + title:k_tamilakam.holder ?= { convert_to_administrative_from_feudalism_game_start_effect = yes } + } + else_if = { + limit = { has_game_rule = historicity_extra_admin_tamilakam_alt_historic_always } + title:k_tamilakam.holder ?= { convert_to_administrative_from_feudalism_game_start_effect = yes } + } + } + # The Carolingians. + if = { + limit = { + NOT = { has_game_rule = historicity_extra_admin_carolingians_gameplay_not_administrative } + game_start_date = 867.1.1 + exists = title:k_france + exists = title:k_lotharingia + exists = title:k_east_francia + exists = title:k_italy + } + if = { + limit = { has_game_rule = historicity_extra_admin_carolingians_alt_historic_all_administrative } + title:k_france.holder ?= { convert_to_administrative_from_feudalism_game_start_effect = yes } + title:k_lotharingia.holder ?= { convert_to_administrative_from_feudalism_game_start_effect = yes } + title:k_east_francia.holder ?= { convert_to_administrative_from_feudalism_game_start_effect = yes } + title:k_italy.holder ?= { convert_to_administrative_from_feudalism_game_start_effect = yes } + } + if = { + limit = { has_game_rule = historicity_extra_admin_carolingians_alt_historic_west_francia_administrative } + title:k_france.holder ?= { convert_to_administrative_from_feudalism_game_start_effect = yes } + } + if = { + limit = { has_game_rule = historicity_extra_admin_carolingians_alt_historic_lotharingia_administrative } + title:k_lotharingia.holder ?= { convert_to_administrative_from_feudalism_game_start_effect = yes } + } + if = { + limit = { has_game_rule = historicity_extra_admin_carolingians_alt_historic_east_francia_administrative } + title:k_east_francia.holder ?= { convert_to_administrative_from_feudalism_game_start_effect = yes } + } + if = { + limit = { has_game_rule = historicity_extra_admin_carolingians_alt_historic_italy_administrative } + title:k_italy.holder ?= { convert_to_administrative_from_feudalism_game_start_effect = yes } + } + } +} + +convert_to_feudalism_from_administrative_effect = { + #Gain some gold for selling off your estates + if = { + limit = { + any_vassal = { + any_held_title = { is_noble_family_title = yes } + exists = domicile + } + } + custom_tooltip = estates_get_bought + every_vassal = { + limit = { + any_held_title = { is_noble_family_title = yes } + exists = domicile + } + hidden_effect = { + add_gold = { + value = { + value = major_gold_value + switch = { + trigger = domicile.num_domicile_buildings + 7 = { multiply = 7 } + 6 = { multiply = 6 } + 5 = { multiply = 5 } + 4 = { multiply = 4 } + 3 = { multiply = 3 } + 2 = { multiply = 2 } + } + } + } + } + } + } + + #Then change government + if = { + limit = { ep3_is_clan_inclined_trigger = yes } + change_government = clan_government + + #Duchies automatically transfer, need to poke the kingdoms + if = { + limit = { + any_vassal = { + primary_title.tier >= tier_kingdom + NOR = { + government_has_flag = government_is_clan + government_has_flag = government_is_theocracy + } + } + } + custom_tooltip = kings_become_clan + every_vassal = { + limit = { + primary_title.tier >= tier_kingdom + NOR = { + government_has_flag = government_is_clan + government_has_flag = government_is_theocracy + } + } + hidden_effect = { change_government = clan_government } + } + } + } + else = { + change_government = feudal_government + + #Duchies automatically transfer, need to poke the kingdoms + if = { + limit = { + any_vassal = { + primary_title.tier >= tier_kingdom + NOR = { + government_has_flag = government_is_feudal + government_has_flag = government_is_theocracy + } + } + } + custom_tooltip = kings_become_feudal + every_vassal = { + limit = { + primary_title.tier >= tier_kingdom + NOR = { + government_has_flag = government_is_feudal + government_has_flag = government_is_theocracy + } + } + hidden_effect = { change_government = feudal_government } + } + } + } + + #Governors become Dukes tooltip + if = { + limit = { + any_vassal = { + primary_title.tier = tier_duchy + NOT = { government_has_flag = government_is_clan } + } + } + custom_tooltip = governors_become_dukes + } +} + +humiliate_stooge_counter_effect = { + if = { + limit = { + NOT = { has_variable = humiliated_stooge_counter_var } + } + set_variable = { + name = humiliated_stooge_counter_var + value = 1 + } + } + else = { + change_variable = { + name = humiliated_stooge_counter_var + add = 1 + } + } +} + +humiliate_stooge_reward_effect = { + hidden_effect = { + scope:stooge ?= { + add_opinion = { + target = root + opinion = -25 + modifier = humiliated_opinion + } + } + if = { + limit = { + scope:stooge.var:humiliated_stooge_counter_var ?= 1 + } + # First time, it's fine + send_interface_toast = { + type = event_toast_effect_good + title = humiliate_the_stooge_decision_tt + left_icon = root + right_icon = scope:stooge + add_stress = major_stress_impact_loss + add_dread = minor_dread_gain + add_character_modifier = { + modifier = stooge_humiliated_modifier + years = 2 + } + } + } + else_if = { + limit = { + scope:stooge.var:humiliated_stooge_counter_var ?= 2 + } + send_interface_toast = { + type = event_toast_effect_good + title = humiliate_the_stooge_decision_2_tt + left_icon = root + right_icon = scope:stooge + add_stress = medium_stress_impact_loss + add_dread = medium_dread_gain + add_character_modifier = { + modifier = stooge_humiliated_modifier + years = 2 + } + } + } + else_if = { + limit = { + scope:stooge.var:humiliated_stooge_counter_var ?= 3 + } + # Third time, crying + send_interface_toast = { + type = event_toast_effect_good + title = humiliate_the_stooge_decision_3_tt + left_icon = root + right_icon = scope:stooge + add_stress = minor_stress_impact_loss + add_dread = major_dread_gain + add_character_modifier = { + modifier = stooge_humiliated_modifier + years = 2 + } + } + } + else_if = { + limit = { + scope:stooge.var:humiliated_stooge_counter_var ?= 4 + } + # Fourth time, it's over + send_interface_toast = { + type = event_toast_effect_neutral + title = humiliate_the_stooge_decision_4_tt + left_icon = root + right_icon = scope:stooge + add_dread = major_dread_gain + add_character_modifier = { + modifier = stooge_humiliated_fourth_time_modifier + years = 2 + } + remove_courtier_or_guest = scope:stooge + scope:stooge = { # They won't join your court + set_variable = { + name = non_recruitable_var + value = root + } + } + } + } + } +} + +admin_confirmation_vassal_reward_guts_effect = { + dynasty ?= { add_dynasty_prestige = minor_dynasty_prestige_gain } + if = { + limit = { + scope:confirmation_liege = { is_ai = yes } + } + reverse_add_opinion = { + target = scope:confirmation_liege + modifier = respect_opinion + opinion = 20 + } + } + add_prestige = major_prestige_gain + change_influence = major_influence_gain +} diff --git a/common/scripted_effects/00_government_effects.txt b/common/scripted_effects/00_government_effects.txt new file mode 100644 index 000000000..9758aecc2 --- /dev/null +++ b/common/scripted_effects/00_government_effects.txt @@ -0,0 +1,202 @@ +save_old_government_effect = { + if = { + limit = { + government_has_mechanic = administrative + } + save_scope_value_as = { name = admin value = yes } + } + government_type ?= { save_scope_as = old_government } +} + +assign_tribal_governments_effect = { + if = { + limit = { + has_tgp_dlc_trigger = yes + OR = { + government_has_flag = government_is_wanua + scope:old_government ?= government_type:wanua_government + scope:capital_county.title_province ?= { + geographical_region = world_asia_southeast_islands + } + } + } + change_government = wanua_government + } + else = { + change_government = tribal_government + } +} + +assign_feudal_governments_effect = { + if = { + limit = { + tgp_can_become_japanese_feudal_trigger = yes + } + change_government = japan_feudal_government + } + else_if = { + limit = { + ep3_is_clan_inclined_trigger = yes + } + change_government = clan_government + } + else = { + change_government = feudal_government + } +} + +update_feudal_governments_by_religion_effect = { + if = { + limit = { + faith = { religion_tag = islam_religion } + government_has_flag = government_is_feudal + } + change_government = clan_government + } + else_if = { + limit = { + ep3_is_clan_inclined_trigger = no + government_has_flag = government_is_clan + } + change_government = feudal_government + } +} + +assign_feudal_governments_by_religion_effect = { + if = { + limit = { + faith = { religion_tag = islam_religion } + } + change_government = clan_government + } + else = { change_government = feudal_government } +} + +assign_new_government_effect = { + if = { + limit = { + exists = scope:new_capital + NOT = { exists = scope:capital_county } + } + scope:new_capital = { save_scope_as = capital_county } + } + save_scope_as = new_ruler + # Change our government according to the government of our liege. + ## Nomad. + if = { + limit = { + scope:capital_county.title_province = { + OR = { + has_holding_type = nomad_holding + has_holding_type = herder_holding + } + } + } + hidden_effect = { + every_held_title = { + title_tier = county + limit = { + title_province ?= { has_holding_type = herder_holding } + } + title_province = { set_holding_type = nomad_holding } + } + } + change_government = nomad_government + } + ## Wanua or Tribal. + else_if = { + limit = { + scope:capital_county.title_province = { + has_holding_type = tribal_holding + } + } + assign_tribal_governments_effect = yes + } + ## Mandala. + else_if = { + limit = { + has_mandala_culture_trigger = yes + has_mandala_faith_trigger = yes + scope:capital_county.title_province = { + has_holding_type = temple_citadel_holding + } + } + change_government = mandala_government + #Sort out the House shenanigans + hidden_effect = { + if = { + limit = { is_house_head = no } + house = { + if = { + limit = { + house_head = { + is_landed = no + is_courtier_of = scope:new_ruler + } + } + set_house_head = scope:new_ruler + } + } + } + else = { + house ?= { + set_house_aspiration = { type = no_aspect } + } + } + } + } + else_if = { + limit = { + OR = { + government_has_mechanic = administrative + exists = scope:admin + } + trigger_if = { + limit = { + independent = no + liege = { + government_has_mechanic = administrative + } + } + NOR = { + has_character_flag = granted_title_government_cooldown + prestige_level > 2 + piety_level > 2 + AND = { + dynasty ?= { + dynasty_prestige_level > 2 + } + } + } + } + } + change_to_administrative_effect = yes + } + # add check for non-playable govs? + else_if = { + limit = { + exists = scope:old_government + trigger_if = { + limit = { + independent = no + liege = { + government_has_mechanic = administrative + } + } + NOR = { + has_character_flag = granted_title_government_cooldown + prestige_level > 2 + piety_level > 2 + AND = { + dynasty ?= { + dynasty_prestige_level > 2 + } + } + } + } + } + change_government = scope:old_government + } + ## Else feudal. + else = { assign_feudal_governments_effect = yes } +}