From 9a54c59545a2e854a16909f5ce5981d38e637dd2 Mon Sep 17 00:00:00 2001 From: Fishedotjpg Date: Mon, 9 Mar 2026 06:16:12 +0000 Subject: [PATCH] push --- common/buildings/00_city_buildings.txt | 45 +- common/game_concepts/neow_game_concepts.txt | 10 + common/governments/00_government_types.txt | 3 +- common/laws/00_succession_laws.txt | 78 + common/laws/01_title_succession_laws.txt | 30 +- common/on_action/game_start.txt | 22 + common/on_action/title_on_actions.txt | 67 + common/on_action/yearly_on_actions.txt | 34 + .../07_dlc_ep3_scripted_effects.txt | 11 + .../contracts/_subject_contracts.info | 125 ++ .../contracts/administrative.txt | 456 ++++++ .../subject_contracts/contracts/celestial.txt | 1457 +++++++++++++++++ common/subject_contracts/contracts/clan.txt | 89 + .../contracts/default_tributary.txt | 139 ++ common/subject_contracts/contracts/feudal.txt | 227 +++ common/subject_contracts/contracts/herder.txt | 12 + .../contracts/japan_administrative.txt | 299 ++++ .../subject_contracts/contracts/mandala.txt | 255 +++ .../contracts/meritocratic.txt | 636 +++++++ common/subject_contracts/contracts/nomad.txt | 291 ++++ .../peasant_republic_obligations.txt | 82 + .../subject_contracts/contracts/republic.txt | 123 ++ .../contracts/special_contracts.txt | 896 ++++++++++ .../contracts/theocratic.txt | 42 + common/subject_contracts/contracts/tribal.txt | 26 + common/subject_contracts/contracts/wanua.txt | 75 + .../groups/_subject_contract_groups.info | 56 + .../groups/subject_contract_groups.txt | 331 ++++ .../succession_election/04_saxon_elective.txt | 140 ++ history/titles/k_ireland.txt | 1 + .../replace/NEOW_Domicile_l_english.yml | 24 +- .../replace/prepublic_loc_l_english.yml | 33 +- 32 files changed, 6078 insertions(+), 37 deletions(-) create mode 100644 common/subject_contracts/contracts/_subject_contracts.info create mode 100644 common/subject_contracts/contracts/administrative.txt create mode 100644 common/subject_contracts/contracts/celestial.txt create mode 100644 common/subject_contracts/contracts/clan.txt create mode 100644 common/subject_contracts/contracts/default_tributary.txt create mode 100644 common/subject_contracts/contracts/feudal.txt create mode 100644 common/subject_contracts/contracts/herder.txt create mode 100644 common/subject_contracts/contracts/japan_administrative.txt create mode 100644 common/subject_contracts/contracts/mandala.txt create mode 100644 common/subject_contracts/contracts/meritocratic.txt create mode 100644 common/subject_contracts/contracts/nomad.txt create mode 100644 common/subject_contracts/contracts/peasant_republic_obligations.txt create mode 100644 common/subject_contracts/contracts/republic.txt create mode 100644 common/subject_contracts/contracts/special_contracts.txt create mode 100644 common/subject_contracts/contracts/theocratic.txt create mode 100644 common/subject_contracts/contracts/tribal.txt create mode 100644 common/subject_contracts/contracts/wanua.txt create mode 100644 common/subject_contracts/groups/_subject_contract_groups.info create mode 100644 common/subject_contracts/groups/subject_contract_groups.txt create mode 100644 common/succession_election/04_saxon_elective.txt diff --git a/common/buildings/00_city_buildings.txt b/common/buildings/00_city_buildings.txt index a99e1c98..64aba18a 100644 --- a/common/buildings/00_city_buildings.txt +++ b/common/buildings/00_city_buildings.txt @@ -2001,7 +2001,14 @@ guild_halls_01 = { #Mandala Creator Aspect creator_mandala_built_regular_building_piety_effect = yes } - + + + province_culture_modifier = { + parameter = use_farmer_republics + monthly_barter_goods = 0.1 + } + + next_building = guild_halls_02 type_icon = "icon_building_guild_halls.dds" @@ -2050,7 +2057,11 @@ guild_halls_02 = { #Mandala Creator Aspect creator_mandala_built_regular_building_piety_effect = yes } - + province_culture_modifier = { + parameter = use_farmer_republics + monthly_barter_goods = 0.2 + } + next_building = guild_halls_03 ai_value = { base = 9 @@ -2104,6 +2115,11 @@ guild_halls_03 = { county_modifier = { development_growth_factor = 0.15 } + province_culture_modifier = { + parameter = use_farmer_republics + monthly_barter_goods = 0.3 + } + on_complete = { #Mandala Creator Aspect @@ -2164,6 +2180,11 @@ guild_halls_04 = { county_modifier = { development_growth_factor = 0.2 } + province_culture_modifier = { + parameter = use_farmer_republics + monthly_barter_goods = 0.3 + } + on_complete = { #Mandala Creator Aspect @@ -2223,6 +2244,11 @@ guild_halls_05 = { county_modifier = { development_growth_factor = 0.25 } + province_culture_modifier = { + parameter = use_farmer_republics + monthly_barter_goods = 0.3 + } + on_complete = { #Mandala Creator Aspect @@ -2282,6 +2308,11 @@ guild_halls_06 = { county_modifier = { development_growth_factor = 0.3 } + province_culture_modifier = { + parameter = use_farmer_republics + monthly_barter_goods = 0.3 + } + on_complete = { #Mandala Creator Aspect @@ -2341,6 +2372,11 @@ guild_halls_07 = { county_modifier = { development_growth_factor = 0.35 } + province_culture_modifier = { + parameter = use_farmer_republics + monthly_barter_goods = 0.3 + } + on_complete = { #Mandala Creator Aspect @@ -2400,6 +2436,11 @@ guild_halls_08 = { county_modifier = { development_growth_factor = 0.4 } + province_culture_modifier = { + parameter = use_farmer_republics + monthly_barter_goods = 0.3 + } + on_complete = { #Mandala Creator Aspect diff --git a/common/game_concepts/neow_game_concepts.txt b/common/game_concepts/neow_game_concepts.txt index bbf1dffc..1896bae5 100644 --- a/common/game_concepts/neow_game_concepts.txt +++ b/common/game_concepts/neow_game_concepts.txt @@ -24,5 +24,15 @@ minority_community = { } minority_government = { texture = "gfx/interface/icons/government_types/landless_minority_government.dds" + parent = government +} +farm_estate = { + texture = "gfx/interface/icons/government_types/peasant_republic_government.dds" + alias = { farm_estate farm_estate_i } parent = domicile +} +peasant_government = { + texture = "gfx/interface/icons/government_types/peasant_republic_government.dds" + alias = { peasant_government peasant_republic_i } + parent = government } \ No newline at end of file diff --git a/common/governments/00_government_types.txt b/common/governments/00_government_types.txt index a53efd01..8d9f1a50 100644 --- a/common/governments/00_government_types.txt +++ b/common/governments/00_government_types.txt @@ -664,7 +664,7 @@ peasant_republic_government = { mercenary_hire_cost_mult = 2 men_at_arms_maintenance = 1.5 } - vassal_contract_group = feudal_vassal + vassal_contract_group = peasant_republic_vassal # Use flags instead of has_government for moddability if possible (i.e., wherever not visible to the player). flags = { @@ -679,6 +679,7 @@ peasant_republic_government = { government_locked_to_elective } + mechanic_type = feudal color = hsv{ 0.30 0.60 0.68 } realm_mask_offset = { 0.0 -0.01 } realm_mask_scale = { 1 1 } diff --git a/common/laws/00_succession_laws.txt b/common/laws/00_succession_laws.txt index c91c100d..e7e4abea 100644 --- a/common/laws/00_succession_laws.txt +++ b/common/laws/00_succession_laws.txt @@ -40,6 +40,9 @@ } is_confederation_member = no } + NOT = { + government_has_flag = government_is_prepublic + } } should_start_with = { NOR = { @@ -82,6 +85,7 @@ potential = { NOR = { + government_has_flag = government_is_prepublic government_has_flag = government_is_nomadic government_has_flag = government_is_clan government_has_flag = government_is_administrative @@ -126,6 +130,9 @@ is_confederation_member = yes } } + NOT = { + government_has_flag = government_is_prepublic + } } should_start_with = { NOR = { @@ -169,6 +176,7 @@ potential = { NOR = { + government_has_flag = government_is_prepublic government_has_flag = government_is_nomadic government_has_flag = government_is_clan government_has_flag = government_is_administrative @@ -190,6 +198,9 @@ can_have = { NOT = { government_has_flag = government_is_nomadic } can_have_high_partition_succession_law_trigger = yes + NOT = { + government_has_flag = government_is_prepublic + } } should_start_with = { NOR = { @@ -234,6 +245,7 @@ potential = { NOR = { + government_has_flag = government_is_prepublic government_has_flag = government_is_nomadic government_has_flag = government_is_clan government_has_flag = government_is_administrative @@ -264,6 +276,9 @@ can_have = { NOT = { government_has_flag = government_is_nomadic } can_have_single_heir_succession_law_trigger = yes + NOT = { + government_has_flag = government_is_prepublic + } } can_pass = { can_change_succession_law_trigger = yes @@ -323,6 +338,7 @@ potential = { NOR = { + government_has_flag = government_is_prepublic government_has_flag = government_is_nomadic government_has_flag = government_is_mandala } @@ -344,6 +360,9 @@ } can_have = { government_has_flag = government_is_nomadic + NOT = { + government_has_flag = government_is_prepublic + } } can_pass = { government_has_flag = government_is_nomadic @@ -395,6 +414,9 @@ can_have = { NOT = { government_has_flag = government_is_nomadic } can_have_single_heir_youngest_succession_law_trigger = yes + NOT = { + government_has_flag = government_is_prepublic + } } can_pass = { can_change_succession_law_trigger = yes @@ -475,6 +497,9 @@ can_have = { NOT = { government_has_flag = government_is_nomadic } can_have_single_heir_dynasty_house_trigger = yes + NOT = { + government_has_flag = government_is_prepublic + } } can_pass = { can_change_single_heir_dynasty_house_succession_law_trigger = yes @@ -537,6 +562,7 @@ potential = { NOR = { + government_has_flag = government_is_prepublic government_has_flag = government_is_administrative government_has_flag = government_is_nomadic government_has_flag = government_is_mandala @@ -554,6 +580,9 @@ can_have = { NOT = { government_has_flag = government_is_nomadic } can_have_acclamation_succession_law_trigger = yes + NOT = { + government_has_flag = government_is_prepublic + } } should_start_with = { has_ep3_dlc_trigger = yes @@ -586,6 +615,7 @@ government_allows = administrative is_independent_ruler = yes NOR = { + government_has_flag = government_is_prepublic government_has_flag = government_is_celestial government_has_flag = government_is_japan_administrative government_has_flag = government_is_meritocratic @@ -609,6 +639,9 @@ can_have = { NOT = { government_has_flag = government_is_nomadic } can_have_appointment_succession_law_trigger = yes + NOT = { + government_has_flag = government_is_prepublic + } } can_pass = { can_change_appointment_succession_law_trigger = yes @@ -673,6 +706,9 @@ } can_have = { government_has_flag = government_is_landless_adventurer + NOT = { + government_has_flag = government_is_prepublic + } } can_pass = { government_has_flag = government_is_landless_adventurer @@ -704,9 +740,15 @@ bishop_theocratic_succession_law = { can_keep = { can_have_bishop_theocratic_succession_law_trigger = yes # same as can_have + NOT = { + government_has_flag = government_is_prepublic + } } can_have = { can_have_bishop_theocratic_succession_law_trigger = yes + NOT = { + government_has_flag = government_is_prepublic + } } should_start_with = { always = yes @@ -725,9 +767,15 @@ holy_order_succession_law = { can_keep = { can_have_holy_order_succession_law_trigger = yes # same as can_have + NOT = { + government_has_flag = government_is_prepublic + } } can_have = { can_have_holy_order_succession_law_trigger = yes + NOT = { + government_has_flag = government_is_prepublic + } } should_start_with = { government_has_flag = government_is_holy_order @@ -766,9 +814,15 @@ city_succession_law = { can_keep = { can_have_city_succession_law_trigger = yes + NOT = { + government_has_flag = government_is_prepublic + } } can_have = { can_have_city_succession_law_trigger = yes + NOT = { + government_has_flag = government_is_prepublic + } } should_start_with = { government_has_flag = government_is_republic @@ -801,6 +855,9 @@ house ?= { has_house_unity_stage = antagonistic } + NOT = { + government_has_flag = government_is_prepublic + } } should_start_with = { @@ -858,6 +915,9 @@ house ?= { has_house_unity_stage = competitive } + NOT = { + government_has_flag = government_is_prepublic + } } should_start_with = { government_has_flag = government_is_clan @@ -917,6 +977,9 @@ house ?= { has_house_unity_stage = impassive } + NOT = { + government_has_flag = government_is_prepublic + } } should_start_with = { government_has_flag = government_is_clan @@ -975,6 +1038,9 @@ house ?= { has_house_unity_stage = friendly } + NOT = { + government_has_flag = government_is_prepublic + } } should_start_with = { government_has_flag = government_is_clan @@ -1027,6 +1093,9 @@ house ?= { has_house_unity_stage = harmonious } + NOT = { + government_has_flag = government_is_prepublic + } } should_start_with = { government_has_flag = government_is_clan @@ -1065,9 +1134,15 @@ herder_succession_law = { can_keep = { can_have_herder_succession_law_trigger = yes + NOT = { + government_has_flag = government_is_prepublic + } } can_have = { can_have_herder_succession_law_trigger = yes + NOT = { + government_has_flag = government_is_prepublic + } } should_start_with = { government_has_flag = government_is_herder @@ -1105,6 +1180,9 @@ can_have = { government_allows = administrative is_independent_ruler = no + NOT = { + government_has_flag = government_is_prepublic + } } can_pass = { government_allows = administrative diff --git a/common/laws/01_title_succession_laws.txt b/common/laws/01_title_succession_laws.txt index 90dda5af..462959fd 100644 --- a/common/laws/01_title_succession_laws.txt +++ b/common/laws/01_title_succession_laws.txt @@ -5,6 +5,7 @@ government_has_flag = government_is_feudal highest_held_title_tier >= tier_county NOR = { #Cultures have their special flavor. + government_has_flag = government_is_prepublic culture = { has_cultural_parameter = witenagemot_succession_enabled } culture = { has_cultural_parameter = scandinavian_elective_enabled } culture = { has_cultural_parameter = tribal_elective_enabled } #FP3 addition @@ -37,6 +38,9 @@ government_has_flag = government_is_feudal government_has_flag = government_is_clan } + NOT = { + government_has_flag = government_is_prepublic + } highest_held_title_tier = tier_empire } can_pass = { @@ -67,16 +71,10 @@ # Witenagemot saxon_elective_succession_law = { can_have = { - OR = { - government_has_flag = government_is_feudal - government_has_flag = government_is_clan - government_has_flag = government_is_tribal - } - highest_held_title_tier >= tier_kingdom + government_has_flag = government_is_prepublic } can_pass = { can_change_title_law_trigger = yes - culture = { has_cultural_parameter = witenagemot_succession_enabled } } can_title_have = { can_title_have_law_general_trigger = yes @@ -93,6 +91,9 @@ pass_cost = { prestige = change_title_succession_law_prestige_cost } + potential = { + government_has_flag = government_is_prepublic + } } # Thing @@ -103,6 +104,9 @@ government_has_flag = government_is_clan government_has_flag = government_is_tribal } + NOT = { + government_has_flag = government_is_prepublic + } highest_held_title_tier >= tier_duchy } can_pass = { @@ -134,6 +138,9 @@ government_has_flag = government_is_clan government_has_flag = government_is_tribal } + NOT = { + government_has_flag = government_is_prepublic + } highest_held_title_tier >= tier_duchy } can_pass = { @@ -171,6 +178,9 @@ government_has_flag = government_is_clan government_has_flag = government_is_tribal } + NOT = { + government_has_flag = government_is_prepublic + } highest_held_title_tier >= tier_kingdom } can_pass = { @@ -292,6 +302,9 @@ celestial_ministry_appointment_succession_law = { can_have = { government_has_flag = government_is_celestial + NOT = { + government_has_flag = government_is_prepublic + } } can_pass = { } @@ -330,6 +343,9 @@ celestial_grand_marshal_appointment_succession_law = { can_have = { government_has_flag = government_is_celestial + NOT = { + government_has_flag = government_is_prepublic + } } can_pass = { } diff --git a/common/on_action/game_start.txt b/common/on_action/game_start.txt index db4fd5e9..f53978ef 100644 --- a/common/on_action/game_start.txt +++ b/common/on_action/game_start.txt @@ -12,6 +12,28 @@ on_game_start = { effect = { ##NEOW + if = { + limit = { + government_has_flag = government_is_prepublic + NOT = { + exists = domicile + } + } + create_noble_family_effect = { GOVERNMENT_GIVER = this } + } + if = { + limit = { + government_has_flag = government_is_prepublic + primary_title = { + NOT = { + has_title_law = saxon_elective_succession_law + } + } + } + primary_title = { + add_title_law = saxon_elective_succession_law + } + } if = { limit = { government_allows = administrative diff --git a/common/on_action/title_on_actions.txt b/common/on_action/title_on_actions.txt index d4c07b73..6acee2f4 100644 --- a/common/on_action/title_on_actions.txt +++ b/common/on_action/title_on_actions.txt @@ -196,6 +196,29 @@ on_title_gain = { ###################### # COUNTY-TIER TITLES # ###################### + + if = { + limit = { + government_has_flag = government_is_prepublic + NOT = { + exists = domicile + } + } + create_noble_family_effect = { GOVERNMENT_GIVER = this } + } + if = { + limit = { + government_has_flag = government_is_prepublic + primary_title = { + NOT = { + has_title_law = saxon_elective_succession_law + } + } + } + primary_title = { + add_title_law = saxon_elective_succession_law + } + } if = { limit = { scope:title.tier = tier_county @@ -2794,6 +2817,28 @@ on_title_gain_inheritance = { diarchy.0113 } effect = { + if = { + limit = { + government_has_flag = government_is_prepublic + NOT = { + exists = domicile + } + } + create_noble_family_effect = { GOVERNMENT_GIVER = this } + } + if = { + limit = { + government_has_flag = government_is_prepublic + primary_title = { + NOT = { + has_title_law = saxon_elective_succession_law + } + } + } + primary_title = { + add_title_law = saxon_elective_succession_law + } + } if = { limit = { government = landless_minority_government @@ -2844,6 +2889,28 @@ on_title_gain_usurpation = { events = { } effect = { + if = { + limit = { + government_has_flag = government_is_prepublic + NOT = { + exists = domicile + } + } + create_noble_family_effect = { GOVERNMENT_GIVER = this } + } + if = { + limit = { + government_has_flag = government_is_prepublic + primary_title = { + NOT = { + has_title_law = saxon_elective_succession_law + } + } + } + primary_title = { + add_title_law = saxon_elective_succession_law + } + } if = { limit = { government = landless_minority_government diff --git a/common/on_action/yearly_on_actions.txt b/common/on_action/yearly_on_actions.txt index f59050b6..e782af49 100644 --- a/common/on_action/yearly_on_actions.txt +++ b/common/on_action/yearly_on_actions.txt @@ -755,6 +755,15 @@ yearly_global_pulse = { # Root is the character yearly_playable_pulse = { effect = { + if = { + limit = { + government_has_flag = government_is_prepublic + NOT = { + exists = domicile + } + } + create_noble_family_effect = { GOVERNMENT_GIVER = this } + } if = { limit = { has_title = title:k_papal_state @@ -2666,6 +2675,31 @@ five_year_playable_pulse = { # Root is the character # scope:quarter is which quarter it's for, from 1 to 4. Note that scope:quarter = 1 isn't necessarily in Q1 by calendar time quarterly_playable_pulse = { + + effect = { + if = { + limit = { + government_has_flag = government_is_prepublic + NOT = { + exists = domicile + } + } + create_noble_family_effect = { GOVERNMENT_GIVER = this } + } + if = { + limit = { + government_has_flag = government_is_prepublic + primary_title = { + NOT = { + has_title_law = saxon_elective_succession_law + } + } + } + primary_title = { + add_title_law = saxon_elective_succession_law + } + } + } on_actions = { realm_maintenance_quarterly_pulse diff --git a/common/scripted_effects/07_dlc_ep3_scripted_effects.txt b/common/scripted_effects/07_dlc_ep3_scripted_effects.txt index 114f6a28..a9c9085f 100644 --- a/common/scripted_effects/07_dlc_ep3_scripted_effects.txt +++ b/common/scripted_effects/07_dlc_ep3_scripted_effects.txt @@ -4075,6 +4075,17 @@ create_noble_family_effect = { } } } + peasant_republic_government = { # Steppe Admin has different government + scope:new_noble_family_holder = { + give_noble_family_title = { + name = domicile_farm_estate + tier = county + article = DEFAULT_TITLE_NAME_ARTICLE + government = peasant_republic_government + save_scope_as = new_title + } + } + } fallback = { scope:new_noble_family_holder = { give_noble_family_title = { diff --git a/common/subject_contracts/contracts/_subject_contracts.info b/common/subject_contracts/contracts/_subject_contracts.info new file mode 100644 index 00000000..cc24b2b8 --- /dev/null +++ b/common/subject_contracts/contracts/_subject_contracts.info @@ -0,0 +1,125 @@ +# Obligations - how much does the subject give to their liege. The subject's government type determines which contract type is used. +# Note that the values can be changed with the vassal_tax_contribution_add/mult, vassal_levy_contribution_add/mult and vassal_herd_contribution_add/mult modifiers. (Applies to tributaries as well) + +subject_contract = { + uses_opinion_of_liege = yes/no # if set to yes, scope:opinion_of_liege can be used in the levies and tax script math (it's a value that's updated daily for player contracts, for AI it uses NSubjectContract::OPINION_OF_LIEGE_UPDATE_INTERVAL. No by default for performance reasons. + + is_shown = trigger to determine whether this obligation should be shown or not, uses the same scopes as obligation_levels + + display_mode = tree/radiobutton/checkbox/hidden # How are the obligations displayed in the negotiate contract UI, default is radiobutton + + # If this contract obligation should default to the (in score) level, instead to a specific one + # Default: no + defaults_to_highest_valid_level = yes/no + + # Trigger that checks whether this option can be modified. Blockers will be shown in the tooltip and the option won't be clickable, but it will still be visible. + # Scope support: + # liege + # subject / vassal (for backward compatibility) + # tax_slot + # tax_collector + # opinion_of_liege = current opinion of the liege towards the subject, if uses opinion_of_liege is set to yes + # + can_be_changed = { + } + + # Modifiable contract with multiple levels: + obligation_levels = { + # Scopes available: + # scope:liege the liege or suzerain in the contract + # scope:subject the subject in the contract + # scope:vassal the subject in the contract. Same as scope:subject. Kept in for backwards compatability. + # scope:opinion_of_liege set if uses_opinion_of_liege = yes + # scope:tax_slot the slot they are in/are being considered to be placed in + # scope:tax_collector the collector for the above/the potential new collector + + subject_obligation_low = { # choose a key for the level, it will be used for localization + levies = 0.5 # % of levies (0..1), default 0; can also use script math + tax = 0.2 # % of gold income (0..1), default 0; Can also use script math + herd = 0.2 # % of herd income (0..1), default 0; Can also use script math + barter_goods = 0.2 # % of barter goods income (0..1), default 0; Can also use script math + min_levies = 0.1 # Optional min floor on levies. Can also use script math + min_tax = 0.0 # Optional min floor on tax. Can also use script math + min_herd = 0.0 # Optional min floor on herd. Can also use script math + min_barter_goods = 0.0 # Optional min floor on barter goods. Can also use script math + + contribution_desc = { ... } # Optional dynamic description used for the breakdown of the tax, levies and herd contribution + + tax_contribution_postfix = "..." # Optional postfix added to the tax contribution breakdown + levies_contribution_postfix = "..." # Optional postfix added to the levies contribution breakdown + herd_contribution_postfix = "..." # Optional postfix added to the herd contribution breakdown + + unclamped_contribution_label = "..." # Breakdown label for the unclamped tax/levies/herd contribution + min_contribution_label = "..." # Breakdown label for the minimum tax/levies/herd contribution the value is clamped to + + subject_opinion = 0 # value for opinion of liege that's added to subject's opinion of the liege if they have this contract + + flag = token # Arbitrary flag, can be checked in script to see if any obligation level in the current subject contract has a flag + + gui_tags = { tag_1 tag_2 ... } # List of gui tags, used to set size, color etc in gui views + + score = int # Positive means it is better for the subject to have, 0 means neutral, negative is better for liege + # When changing obligations the current score and new score are compared to see if it is in favour of the subject or liege + # and by how much. + # Defaults to order the contracts are defined + + ai_liege_desire =