admin stuff and militia stuff

This commit is contained in:
Fishedotjpg 2026-10-31 15:10:15 +00:00
parent b8916d4a89
commit 5bbf6f16c6
12 changed files with 1938 additions and 42 deletions

View file

@ -358,8 +358,8 @@ spahis = {
NEOW_militia = {
type = peasant_militia
damage = 12
toughness = 16
damage = 14
toughness = 14
pursuit = 10
screen = 4
@ -379,26 +379,7 @@ NEOW_militia = {
}
can_recruit = {
OR = {
AND = {
militia_raise_limit_existing_militia_units < militia_raise_limit_existing_militia_buildings
OR = {
has_trait = education_martial_1
has_trait = education_martial_2
has_trait = education_martial_3
has_trait = education_martial_4
has_trait = education_martial_5
has_trait = peasant_leader
has_trait = heresiarch
has_trait = populist_leader
has_lifestyle = martial_lifestyle
has_martial_lifestyle_trait_trigger = yes
trigger_if = {
limit = { exists = cp:councillor_marshal }
cp:councillor_marshal = { martial = 13 }
}
faith ?= { has_doctrine_parameter = allows_communal_settlement }
}
}
militia_raise_limit_existing_militia_units < militia_raise_limit_existing_militia_buildings
trigger_if = {
limit = {
@ -429,35 +410,44 @@ NEOW_militia = {
reference = pikemen_militia
}
}
NEOW_citizen_militia = {
NEOW_militia_archers = {
type = peasant_militia
damage = 15
toughness = 18
pursuit = 10
screen = 4
damage = 18
toughness = 10
pursuit = 0
screen = 0
terrain_bonus = {
mountains = { toughness = 8 }
desert_mountains = { toughness = 8 }
hills = { toughness = 4 }
farmlands = { toughness = 8 }
floodplains = { toughness = 8 }
terraced_hills = { toughness = 8 }
hills = { damage = 10 toughness = 4 }
forest = { toughness = 4 screen = 4 }
taiga = { toughness = 4 screen = 4 }
}
counters = {
light_cavalry = 1
heavy_cavalry = 0.5
camel_cavalry = 1
skirmishers = 0.5
chemical_weapons = 0.5
archer_cavalry = 0.25
archer_cavalry = 0.5
}
can_recruit = {
government_has_flag = government_is_republic
OR = {
militia_raise_limit_existing_militia_units < militia_raise_limit_existing_militia_buildings
trigger_if = {
limit = {
government_has_flag = government_is_landless_minority
exists = domicile
}
domicile = {
has_domicile_parameter = can_recruit_militia
}
}
}
}
buy_cost = { gold = militia_recruitment_cost }
low_maintenance_cost = { gold = skirmisher_low_maint_cost }
low_maintenance_cost = { gold = militia_low_maint_cost }
high_maintenance_cost = { gold = militia_high_maint_cost }
provision_cost = @provisions_cost_infantry_cheap
stack = 100
@ -467,13 +457,14 @@ NEOW_citizen_militia = {
trigger = {
should_use_asian_maa_graphics = yes
}
reference = pikemen_militia_asia
reference = bowmen_asia
}
illustration = {
reference = pikemen_militia
reference = bowmen
}
}
carabineers = {
type = gun_cavalry

View file

@ -1004,6 +1004,13 @@ militia_raise_limit_existing_militia_units = {
}
add = 1
}
every_maa_regiment = {
limit = {
is_personal_maa_regiment = yes
is_maa_type = NEOW_militia_archers
}
add = 1
}
}
militia_raise_limit_existing_militia_buildings = {

View file

@ -0,0 +1,895 @@
administrative_obligations = {
obligation_levels = {
default = {
levies = {
value = 0.3
#multiply = governor_efficiency
}
tax = {
value = 0.75
#multiply = governor_efficiency
}
}
}
}
### brief: administrative_themes
# This is referenced in code.
#
administrative_themes = {
display_mode = radiobutton
is_shown = {
scope:subject.primary_title.tier == tier_duchy
}
obligation_levels = {
admin_theme_balanced = {
default = yes
position = { 0 0 }
gui_tags = { byzantine_purple }
icon = "gfx/interface/icons/theme_administration_types/icon_balanced_administration.dds"
ai_liege_desire = {
value = 0
if = {
limit = {
scope:subject = {
is_ai = yes
}
}
add = 1
}
}
ai_subject_desire = 0
score = 0
color = { 0.7 0.7 0.7 1.0 }
liege_modifier = {
men_at_arms_cap = 1
men_at_arms_maintenance = -0.05
}
subject_modifier = {
governor_xp_gain_mult = 0.2
men_at_arms_cap = -1
men_at_arms_maintenance = 0.05
}
flag = vassal_contract_war_override
flag = admin_theme_balanced
flag = province_balanced
}
admin_theme_civilian = {
position = { 2 0 }
icon = "gfx/interface/icons/theme_administration_types/icon_civilian_administration.dds"
gui_tags = { byzantine_purple }
ai_liege_desire = {
value = 0
if = {
limit = {
scope:subject = {
is_ai = yes
OR = {
has_trait = education_stewardship
stewardship >= very_high_skill_rating
AND = { # Large semi-coastal themes are good for an economic focus
any_sub_realm_county = { count >= 2 is_coastal_county = yes }
any_sub_realm_county = { count >= 2 is_coastal_county = no }
}
}
}
}
add = 2
}
if = {
limit = {
scope:liege = {
ai_has_builder_or_pious_builder_personality = yes
}
}
add = 1
}
}
ai_subject_desire = 0
score = 0
color = { 0.2 0.2 0.7 1.0 }
tax_factor = 0.5
liege_modifier = {
men_at_arms_cap = 1
men_at_arms_maintenance = -0.05
}
subject_modifier = {
development_growth_factor = 0.2
build_gold_cost = -0.1
build_speed = -0.1
men_at_arms_title_limit = -2
men_at_arms_title_cap = -2
men_at_arms_cap = -1
men_at_arms_maintenance = 0.05
}
flag = vassal_contract_war_override
flag = admin_stewardship_obligation_bonus
flag = admin_influence_construction_bonus
flag = admin_ai_is_builder
flag = admin_theme_civilian
flag = province_civilian
flag = obligation_high_taxes
}
admin_theme_military = {
position = { 1 0 }
icon = "gfx/interface/icons/theme_administration_types/icon_military_administration.dds"
gui_tags = { byzantine_purple }
ai_liege_desire = {
value = 0
if = {
limit = {
scope:subject = {
is_ai = yes
OR = {
has_trait = education_martial
martial >= very_high_skill_rating
primary_title = { any_owned_title_maa_regiment = { count > 4 } }
AND = { # Large inland themes are good for military
any_sub_realm_county = { count >= 5 }
any_sub_realm_county = { percent >= 0.95 is_coastal_county = no }
}
}
}
}
add = 2
}
if = {
limit = {
scope:liege = {
ai_has_warlike_personality = yes
}
}
add = 1
}
}
ai_subject_desire = 0
score = 0
color = { 0.7 0.2 0.2 1.0 }
levies_factor = 0.75
liege_modifier = {
men_at_arms_cap = -1
men_at_arms_maintenance = 0.05
}
subject_modifier = {
development_growth_factor = -0.25
monthly_county_control_growth_factor = 0.1
maa_damage_mult = 0.1
men_at_arms_title_cap = 2
men_at_arms_maintenance = -0.2
monthly_treasury_from_military_budget_base = 1
men_at_arms_cap = 1
}
flag = admin_martial_obligation_bonus
flag = admin_theme_military
flag = province_military
flag = obligation_high_levies
}
admin_theme_frontier = {
position = { 0 1 }
icon = "gfx/interface/icons/theme_administration_types/icon_frontier_administration.dds"
gui_tags = { byzantine_purple }
ai_liege_desire = {
value = 0
if = {
limit = {
scope:subject = {
is_ai = yes
}
}
add = 5
}
}
ai_subject_desire = 0
score = 0
color = { 0.2 0.7 0.2 1.0 }
is_valid = {
custom_tooltip = {
text = admin_theme_frontier_valid_desc
scope:subject = {
any_sub_realm_county = {
any_neighboring_county = {
holder = {
top_liege != scope:subject.top_liege
}
}
}
}
}
}
tax_factor = -0.2
liege_modifier = {
men_at_arms_cap = -1
men_at_arms_maintenance = 0.05
}
subject_modifier = {
fort_level = 2
defender_advantage = 6
hostile_county_attrition = -0.3
hostile_raid_time = 0.75
# Values to tweak the AI slightly in order to make them more likely to declare war
ai_boldness = 20
ai_rationality = -15
monthly_treasury_from_military_budget_base = 1.5
men_at_arms_cap = 1
men_at_arms_maintenance = -0.05
}
flag = admin_prowess_obligation_bonus
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 = {
position = { 1 1 }
icon = "gfx/interface/icons/theme_administration_types/icon_imperial_administration.dds"
gui_tags = { byzantine_purple }
ai_liege_desire = {
value = 0
if = {
limit = {
scope:liege = {
NOT = {
any_vassal = { vassal_contract_has_flag = admin_theme_imperial }
}
}
scope:subject = {
is_ai = yes
culture = scope:liege.culture
rite = top_liege.primary_title.state_rite
}
}
add = 5
}
if = {
limit = {
exists = scope:liege.house
exists = scope:subject.house
scope:liege.house = scope:subject.house
}
add = 1
}
}
ai_subject_desire = 0
score = 0
color = { 0.7 0.0 0.7 1.0 }
is_valid = {
scope:liege = {
highest_held_title_tier >= tier_empire
}
custom_tooltip = {
text = admin_theme_imperial_valid_desc
OR = {
scope:liege = {
NOT = {
any_vassal = { vassal_contract_has_flag = admin_theme_imperial }
}
}
AND = {
scope:subject = { vassal_contract_has_flag = admin_theme_imperial }
scope:liege = {
any_vassal = {
count = 1
vassal_contract_has_flag = admin_theme_imperial
}
}
}
}
}
}
tax_factor = 0.1
liege_modifier = {
monthly_prestige_gain_per_legitimacy_level_add = 0.5
legitimacy_gain_mult = 0.2
}
subject_modifier = {
monthly_prestige = 0.5
monthly_influence = 0.25
}
flag = vassal_contract_war_override
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 = {
position = { 2 1 }
icon = "gfx/interface/icons/theme_administration_types/icon_naval_administration.dds"
gui_tags = { byzantine_purple }
ai_liege_desire = {
value = 0
if = {
limit = {
scope:subject = { is_ai = yes }
}
if = {
limit = { # Large coastal areas qualify as good naval themes
scope:subject = {
any_sub_realm_county = {
count >= 3
is_coastal_county = yes
}
}
scope:liege = { # But don't go overboard with naval themes
any_vassal = {
percent < 0.15
vassal_contract_has_flag = admin_theme_naval
}
}
}
add = 3
}
if = {
limit = { # Islands are good naval candidates
scope:subject = {
any_sub_realm_county = {
percent >= 0.95
is_coastal_county = yes
OR = {
any_neighboring_county = {
percent >= 0.95
holder = {
OR = {
this = scope:subject
any_liege_or_above = { this = scope:subject }
}
}
}
any_neighboring_county = { count < 1 }
}
}
}
}
add = 8
}
}
}
ai_subject_desire = 0
score = 0
color = { 0.0 0.4 0.7 1.0 }
is_valid = {
custom_tooltip = {
text = admin_theme_naval_valid_desc
scope:subject = {
any_sub_realm_county = {
is_coastal_county = yes
}
}
}
}
liege_modifier = {
men_at_arms_cap = -1
men_at_arms_maintenance = 0.05
embarkation_cost_mult = -0.1
naval_movement_speed_mult = 0.1
}
subject_modifier = {
embarkation_cost_mult = -0.5
naval_movement_speed_mult = 0.25
no_disembark_penalty = yes
coastal_advantage = 10
development_growth_factor = 0.1
monthly_treasury_from_military_budget_base = 1
men_at_arms_cap = 1
men_at_arms_maintenance = -0.05
}
flag = admin_naval_duchy_expansion_unlocked
flag = admin_tradeport_obligation_bonus
flag = admin_theme_naval
flag = province_military
}
}
}
administrative_themes_king = {
display_mode = radiobutton
is_shown = {
scope:subject.primary_title.tier == tier_kingdom
}
obligation_levels = {
admin_theme_balanced_king = {
default = yes
position = { 0 0 }
gui_tags = { byzantine_purple }
icon = "gfx/interface/icons/theme_administration_types/icon_balanced_administration.dds"
ai_liege_desire = {
value = 0
if = {
limit = {
scope:subject = {
is_ai = yes
}
}
add = 1
}
}
ai_subject_desire = 0
score = 0
color = { 0.7 0.7 0.7 1.0 }
liege_modifier = {
men_at_arms_cap = 2
men_at_arms_maintenance = -0.1
}
subject_modifier = {
governor_xp_gain_mult = 0.4
men_at_arms_cap = -2
men_at_arms_maintenance = 0.1
}
flag = vassal_contract_war_override
flag = admin_theme_balanced
flag = province_balanced
}
admin_theme_civilian_king = {
position = { 2 0 }
icon = "gfx/interface/icons/theme_administration_types/icon_civilian_administration.dds"
gui_tags = { byzantine_purple }
ai_liege_desire = {
value = 0
if = {
limit = {
scope:subject = {
is_ai = yes
OR = {
has_trait = education_stewardship
stewardship >= very_high_skill_rating
AND = { # Large semi-coastal themes are good for an economic focus
any_sub_realm_county = { count >= 2 is_coastal_county = yes }
any_sub_realm_county = { count >= 2 is_coastal_county = no }
}
}
}
}
add = 2
}
if = {
limit = {
scope:liege = {
ai_has_builder_or_pious_builder_personality = yes
}
}
add = 1
}
}
ai_subject_desire = 0
score = 0
color = { 0.2 0.2 0.7 1.0 }
tax_factor = 0.5
liege_modifier = {
men_at_arms_cap = 2
men_at_arms_maintenance = -0.1
}
subject_modifier = {
development_growth_factor = 0.3
build_gold_cost = -0.2
build_speed = -0.2
men_at_arms_title_limit = -3
men_at_arms_title_cap = -3
men_at_arms_cap = -2
men_at_arms_maintenance = 0.1
}
flag = vassal_contract_war_override
flag = admin_stewardship_obligation_bonus
flag = admin_influence_construction_bonus
flag = admin_ai_is_builder
flag = admin_theme_civilian
flag = province_civilian
flag = obligation_high_taxes
}
admin_theme_military_king = {
position = { 1 0 }
icon = "gfx/interface/icons/theme_administration_types/icon_military_administration.dds"
gui_tags = { byzantine_purple }
ai_liege_desire = {
value = 0
if = {
limit = {
scope:subject = {
is_ai = yes
OR = {
has_trait = education_martial
martial >= very_high_skill_rating
primary_title = { any_owned_title_maa_regiment = { count > 4 } }
AND = { # Large inland themes are good for military
any_sub_realm_county = { count >= 5 }
any_sub_realm_county = { percent >= 0.95 is_coastal_county = no }
}
}
}
}
add = 2
}
if = {
limit = {
scope:liege = {
ai_has_warlike_personality = yes
}
}
add = 1
}
}
ai_subject_desire = 0
score = 0
color = { 0.7 0.2 0.2 1.0 }
levies_factor = 0.75
liege_modifier = {
men_at_arms_cap = -2
men_at_arms_maintenance = 0.1
}
subject_modifier = {
development_growth_factor = -0.33
monthly_county_control_growth_factor = 0.2
maa_damage_mult = 0.2
men_at_arms_title_cap = 3
men_at_arms_maintenance = -0.3
monthly_treasury_from_military_budget_base = 1.5
men_at_arms_cap = 2
}
flag = admin_martial_obligation_bonus
flag = admin_theme_military
flag = province_military
flag = obligation_high_levies
}
admin_theme_frontier_king = {
position = { 0 1 }
icon = "gfx/interface/icons/theme_administration_types/icon_frontier_administration.dds"
gui_tags = { byzantine_purple }
ai_liege_desire = {
value = 0
if = {
limit = {
scope:subject = {
is_ai = yes
}
}
add = 5
}
}
ai_subject_desire = 0
score = 0
color = { 0.2 0.7 0.2 1.0 }
is_valid = {
custom_tooltip = {
text = admin_theme_frontier_valid_desc
scope:subject = {
any_sub_realm_county = {
any_neighboring_county = {
holder = {
top_liege != scope:subject.top_liege
}
}
}
}
}
}
tax_factor = -0.2
liege_modifier = {
men_at_arms_cap = -2
men_at_arms_maintenance = 0.1
}
subject_modifier = {
fort_level = 3
defender_advantage = 8
hostile_county_attrition = -0.4
hostile_raid_time = 0.85
# Values to tweak the AI slightly in order to make them more likely to declare war
ai_boldness = 20
ai_rationality = -15
monthly_treasury_from_military_budget_base = 1.75
men_at_arms_cap = 2
men_at_arms_maintenance = -0.1
}
flag = admin_prowess_obligation_bonus
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_king = {
position = { 1 1 }
icon = "gfx/interface/icons/theme_administration_types/icon_imperial_administration.dds"
gui_tags = { byzantine_purple }
ai_liege_desire = {
value = 0
if = {
limit = {
scope:liege = {
NOT = {
any_vassal = { vassal_contract_has_flag = admin_theme_imperial }
}
}
scope:subject = {
is_ai = yes
culture = scope:liege.culture
rite = top_liege.primary_title.state_rite
}
}
add = 5
}
if = {
limit = {
exists = scope:liege.house
exists = scope:subject.house
scope:liege.house = scope:subject.house
}
add = 1
}
}
ai_subject_desire = 0
score = 0
color = { 0.7 0.0 0.7 1.0 }
is_valid = {
scope:liege = {
highest_held_title_tier >= tier_empire
}
custom_tooltip = {
text = admin_theme_imperial_valid_desc
OR = {
scope:liege = {
NOT = {
any_vassal = { vassal_contract_has_flag = admin_theme_imperial }
}
}
AND = {
scope:subject = { vassal_contract_has_flag = admin_theme_imperial }
scope:liege = {
any_vassal = {
count = 1
vassal_contract_has_flag = admin_theme_imperial
}
}
}
}
}
}
tax_factor = 0.1
liege_modifier = {
monthly_prestige_gain_per_legitimacy_level_add = 1
legitimacy_gain_mult = 0.4
}
subject_modifier = {
monthly_prestige = 1
monthly_influence = 0.5
}
flag = vassal_contract_war_override
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_king = {
position = { 2 1 }
icon = "gfx/interface/icons/theme_administration_types/icon_naval_administration.dds"
gui_tags = { byzantine_purple }
ai_liege_desire = {
value = 0
if = {
limit = {
scope:subject = { is_ai = yes }
}
if = {
limit = { # Large coastal areas qualify as good naval themes
scope:subject = {
any_sub_realm_county = {
count >= 3
is_coastal_county = yes
}
}
scope:liege = { # But don't go overboard with naval themes
any_vassal = {
percent < 0.15
vassal_contract_has_flag = admin_theme_naval
}
}
}
add = 3
}
if = {
limit = { # Islands are good naval candidates
scope:subject = {
any_sub_realm_county = {
percent >= 0.95
is_coastal_county = yes
OR = {
any_neighboring_county = {
percent >= 0.95
holder = {
OR = {
this = scope:subject
any_liege_or_above = { this = scope:subject }
}
}
}
any_neighboring_county = { count < 1 }
}
}
}
}
add = 8
}
}
}
ai_subject_desire = 0
score = 0
color = { 0.0 0.4 0.7 1.0 }
is_valid = {
custom_tooltip = {
text = admin_theme_naval_valid_desc
scope:subject = {
any_sub_realm_county = {
is_coastal_county = yes
}
}
}
}
liege_modifier = {
men_at_arms_cap = -2
men_at_arms_maintenance = 0.1
embarkation_cost_mult = -0.2
naval_movement_speed_mult = 0.2
}
subject_modifier = {
embarkation_cost_mult = -0.75
naval_movement_speed_mult = 0.33
no_disembark_penalty = yes
coastal_advantage = 15
development_growth_factor = 0.2
monthly_treasury_from_military_budget_base = 2
men_at_arms_cap = 2
men_at_arms_maintenance = -0.1
}
flag = admin_naval_duchy_expansion_unlocked
flag = admin_tradeport_obligation_bonus
flag = admin_theme_naval
flag = province_military
}
}
}
administrative_salary_rank = {
display_mode = hidden
defaults_to_highest_valid_level = yes
can_be_changed = {
always = no
}
obligation_levels = {
administrative_salary_rank_none = {
position = { 0 0 }
default = yes
ai_liege_desire = 0
ai_subject_desire = 0
}
administrative_salary_rank_duchy = {
position = { 2 0 }
parent = administrative_salary_rank_none
is_valid = {
scope:subject = {
any_held_title = {
is_noble_family_title = no
tier = tier_duchy
}
}
}
ai_liege_desire = 3
ai_subject_desire = 3
subject_modifier = {
monthly_treasury_from_salary_budget_base = 0.75
}
}
administrative_salary_rank_kingdom = {
position = { 3 0 }
parent = administrative_salary_rank_duchy
is_valid = {
scope:subject = {
highest_held_title_tier = tier_kingdom
}
}
ai_liege_desire = 4
ai_subject_desire = 4
subject_modifier = {
monthly_treasury_from_salary_budget_base = 1.0
}
}
administrative_salary_rank_empire = {
position = { 4 0 }
parent = administrative_salary_rank_kingdom
ai_liege_desire = 5
ai_subject_desire = 5
is_valid = {
scope:subject = {
highest_held_title_tier = tier_empire
is_landless_ruler = no
}
}
subject_modifier = {
monthly_treasury_from_salary_budget_base = 2.0
}
}
}
}

View file

@ -0,0 +1,323 @@
japan_administrative_obligations = {
obligation_levels = {
default = {
levies = {
value = 0.1
}
tax = {
value = 0.1
}
}
}
}
### brief: administrative_themes
# This is referenced in code.
#
japan_administrative_provinces = {
display_mode = radiobutton
is_shown = {
scope:subject.primary_title.tier >= tier_county
}
obligation_levels = {
japan_administrative_province_standard = {
default = yes
position = { 0 0 }
icon = "gfx/interface/icons/celestial_administration_types/icon_standard_administration.dds"
gui_tags = { civilian }
ai_liege_desire = {
value = 0
if = {
limit = {
scope:subject = { is_ai = yes }
}
add = 1
# Cautious AI should tend to have a minor bias towards the default
if = {
limit = {
scope:liege = { ai_has_cautious_personality = yes }
}
add = 1
}
}
}
ai_subject_desire = 0
liege_modifier = {
men_at_arms_cap = 1
men_at_arms_maintenance = -0.05
}
subject_modifier = {
men_at_arms_cap = -1
men_at_arms_maintenance = 0.05
}
score = 0
color = { 0.7 0.7 0.7 1.0 }
enable_title_maa = no
flag = vassal_contract_war_override
flag = japan_administrative_province_standard
flag = province_civilian
}
japan_administrative_province_trade = {
position = { 1 0 }
icon = "gfx/interface/icons/celestial_administration_types/icon_industrial_administration.dds"
gui_tags = { civilian }
ai_liege_desire = {
value = 0
if = {
limit = {
scope:subject = {
is_ai = yes
OR = {
has_trait = education_stewardship
stewardship >= very_high_skill_rating
}
}
}
add = 2
# Economical AI wants more of civic vassals
if = {
limit = {
scope:liege = { ai_has_builder_or_pious_builder_personality = yes }
}
add = 1
}
}
}
ai_subject_desire = 0
score = 0
color = { 0.2 0.2 0.7 1.0 }
is_valid = {
trigger_if = {
limit = { exists = this }
# Only for direct vassals of the top liege
scope:liege.top_liege = this
}
# There can only be a limited number of industries at a time
custom_tooltip = {
text = japan_administrative_province_trade_amount_desc
OR = {
scope:liege = {
any_vassal = {
count < japan_administrative_province_trade_max_value
vassal_contract_has_flag = japan_administrative_province_trade
}
}
scope:subject = {
OR = {
vassal_contract_has_flag = japan_administrative_province_trade
any_sub_realm_county = { is_coastal_county = yes } # Is a coastal province
}
}
}
}
}
tax_factor = 0.25
enable_title_maa = no
liege_modifier = {
men_at_arms_cap = 1
men_at_arms_maintenance = -0.05
}
subject_modifier = {
men_at_arms_cap = -1
men_at_arms_maintenance = 0.05
development_growth_factor = 0.15
build_gold_cost = -0.1
build_speed = -0.2
}
flag = vassal_contract_war_override
flag = admin_ai_is_builder
flag = japan_administrative_province_trade
flag = province_civilian
flag = obligation_high_taxes
}
japan_administrative_province_military = {
position = { 0 1 }
icon = "gfx/interface/icons/celestial_administration_types/icon_military_administration.dds"
gui_tags = { military }
ai_liege_desire = {
value = 0
if = {
limit = {
scope:subject = {
is_ai = yes
OR = {
has_trait = education_martial
martial >= very_high_skill_rating
primary_title = {
any_owned_title_maa_regiment = { count >= 3 }
}
any_sub_realm_county = { # Is a border province
any_neighboring_county = { holder.top_liege != scope:subject.top_liege }
}
}
}
}
add = 2
# Preference for vassals along the border
if = {
limit = {
scope:subject = {
any_sub_realm_county = {
any_neighboring_county = { holder.top_liege != scope:subject.top_liege }
}
}
}
add = 3
}
# Warlike AI wants more military vassals
if = {
limit = {
scope:liege = { ai_has_warlike_personality = yes }
}
add = 1
}
}
}
ai_subject_desire = 0
score = 0
color = { 0.7 0.2 0.2 1.0 }
is_valid = {
trigger_if = {
limit = { exists = this }
# Only for direct vassals of the top liege
scope:liege.top_liege = this
}
# There can only be a limited number of militaries at a time
custom_tooltip = {
text = japan_administrative_province_military_amount_desc
OR = {
scope:liege = {
any_vassal = {
count < japan_administrative_province_military_max_value
vassal_contract_has_flag = japan_administrative_province_military
}
}
scope:subject = { vassal_contract_has_flag = japan_administrative_province_military }
}
}
}
levies_factor = 0.5
liege_modifier = {
men_at_arms_cap = -1
men_at_arms_maintenance = 0.05
}
subject_modifier = {
men_at_arms_cap = 1
development_growth_factor = -0.2
monthly_county_control_growth_factor = 0.1
fort_level = 1
defender_advantage = 2
men_at_arms_maintenance = -0.15
}
flag = japan_administrative_province_military
flag = japan_administrative_military_appointment
flag = province_military
flag = obligation_high_levies
}
}
}
japan_administrative_salary = {
display_mode = tree
is_shown = {
scope:subject.primary_title.tier >= tier_duchy
}
obligation_levels = {
salary_very_low = {
position = { 0 2 }
subject_modifier = {
subject_salary_expense_treasury_mult = -0.5
subject_salary_income_gold_mult = -0.5
}
ai_liege_desire = 1
ai_subject_desire = 5
subject_opinion = -25
score = -2
}
salary_low = {
parent = salary_very_low
position = { 1 2 }
subject_modifier = {
subject_salary_income_gold_mult = -0.25
}
ai_liege_desire = 2
ai_subject_desire = 4
subject_opinion = -15
score = 1
}
salary_medium = {
parent = salary_low
default = yes
position = { 2 2 }
subject_modifier = {
}
ai_liege_desire = 3
ai_subject_desire = 3
score = 0
}
salary_high = {
parent = salary_medium
position = { 3 2 }
subject_modifier = {
subject_salary_income_gold_mult = 0.25
}
ai_liege_desire = 4
ai_subject_desire = 2
subject_opinion = 5
score = 1
}
salary_very_high = {
parent = salary_high
position = { 4 2 }
subject_modifier = {
subject_salary_income_gold_mult = 0.5
}
ai_liege_desire = 5
ai_subject_desire = 1
subject_opinion = 10
score = 2
}
}
}

View file

@ -0,0 +1,56 @@
# Subject contract groups
feudal_contract_group = {
# <optional> Which contract within this group is the administrative province type contract
# This will be used in the interface
# Contract might be listed in 'contracts' list
admin_province_contract = administrative_themes
contracts = { # The subject contracts within this group
feudal_government_taxes
feudal_government_levies
special_contract
...
}
modify_contract_layout = clan # a string property on the contract group that can be checked with SubjectContract.HasModifyContractLayout in gui script to choose the layout to use for the Modify Contract interaction window (default value is 'default')
# #########################################
# REMAINING IS ONLY FOR TRIBUTARY CONTRACTS
# #########################################
is_tributary = no # Whether or not this subject contract is specifically for tributaries or not.
# Whether or not the subject contract is valid.
# Scopes available:
# ROOT - The subject in the contract
# scope:suzerain the suzerain in the contract
is_valid_tributary_contract = {}
# Whether or not subject can break free from a contract themselves.
# Same scopes as is_valid
tributary_can_break_free = {}
# The name of the line types that will be shown when drawing the tributary relation to the suzerain on the map.
# Skip these parameters if you don't want a line at all.
# suzerain_line_type is used when showing a selected character's suzerain.
# tributary_line_type is used when showing a selected character's tributaries.
# Lines are defined in gfx/lines/lines.lines
suzerain_line_type = line_suzerain
tributary_line_type = line_tributary
# Whether or not the tributary's realm should show with the suzerain's realm name on the map (Default: no)
should_show_as_suzerain_realm_name = yes/no
# Whether or not the tributary's realm should show with the suzerain's realm color on the map. (Default: no)
# If yes, the actual color will be an interpolation between the suzerain and tributary's realm colors, with the ratio defined in TRIBUTARY_REALM_COLOR_FACTOR
should_show_as_suzerain_realm_color = yes/no
# Whether the tributary's heirs should become tributaries themselves upon succession (if they can be, e.g. they are independent). (Default: yes)
tributary_heir_succession = yes/no
# Whether the suzerain's primary heir should take over as suzerain upon succession (if they can be, e.g. they are independent). (Default: yes)
suzerain_heir_succession = yes/no
}

View file

@ -0,0 +1,324 @@
feudal_vassal = {
contracts = {
feudal_government_taxes
feudal_government_levies
special_contract
religious_rights
fortification_rights
coinage_rights
succession_rights
war_declaration_rights
council_rights
kurultai_rights
title_revocation_rights
jizya_special_rights
}
}
republic_vassal = {
contracts = {
republic_government_obligations
}
}
theocracy_vassal ={
contracts = {
theocracy_government_obligations
}
}
clan_vassal = {
contracts = {
clan_tax_collector_obligations
special_contract
religious_rights
war_declaration_rights
council_rights
kurultai_rights
title_revocation_rights
marriage_favor_rights
}
modify_contract_layout = clan
}
tribal_vassal = {
contracts = {
tribal_government_obligations
}
}
admin_vassal = {
admin_province_contract = administrative_themes
contracts = {
administrative_obligations
administrative_themes
administrative_themes_king
administrative_salary_rank
}
modify_contract_layout = admin
}
nomad_vassal = {
contracts = {
nomad_government_herd
nomad_government_taxes
liege_war_participation_obligation
council_rights
kurultai_rights
war_declaration_rights
}
}
tributary_settled = {
is_tributary = yes
suzerain_line_type = line_suzerain
tributary_line_type = line_tributary
should_show_as_suzerain_realm_name = yes
should_show_as_suzerain_realm_color = yes
contracts = {
default_tributary_taxes
default_tributary_levies
default_tributary_prestige
suzerain_war_participation_guarantee
tributary_war_participation_obligation
}
}
tributary_nomadic = {
is_tributary = yes
suzerain_line_type = line_suzerain
tributary_line_type = line_tributary
should_show_as_suzerain_realm_name = yes
should_show_as_suzerain_realm_color = yes
contracts = {
nomad_government_herd
nomad_government_prestige
suzerain_war_participation_guarantee
tributary_war_participation_obligation
}
}
tributary_subjugated = {
is_tributary = yes
tributary_can_break_free = { always = no }
suzerain_heir_succession = no
suzerain_line_type = line_suzerain
tributary_line_type = line_tributary
should_show_as_suzerain_realm_name = no
should_show_as_suzerain_realm_color = yes
contracts = {
default_tributary_taxes
default_tributary_prestige
suzerain_war_participation_guarantee
tributary_war_participation_obligation
}
}
tributary_steppe = {
is_tributary = yes
suzerain_line_type = line_suzerain
tributary_line_type = line_tributary
should_show_as_suzerain_realm_name = yes
should_show_as_suzerain_realm_color = yes
contracts = {
default_tributary_taxes
nomad_government_prestige
suzerain_war_participation_guarantee
tributary_war_participation_obligation
}
}
herder_vassal = {
contracts = {
herder_government_obligations
}
}
celestial_vassal = {
admin_province_contract = celestial_provinces
contracts = {
celestial_obligations
celestial_ministry_obligations
celestial_provinces
celestial_treasury
celestial_salary
celestial_ministry_budget
celestial_salary_rank
}
modify_contract_layout = eastern_admin
}
tributary_celestial = {
is_tributary = yes
suzerain_line_type = line_suzerain
tributary_line_type = line_tributary
should_show_as_suzerain_realm_name = no
should_show_as_suzerain_realm_color = no
tributary_heir_succession = yes
suzerain_heir_succession = yes
is_valid_tributary_contract = {
scope:suzerain = {
highest_held_title_tier = tier_hegemony
government_has_flag = government_is_celestial
}
}
tributary_can_break_free = {
always = yes
}
contracts = {
celestial_tribute_gold
celestial_tribute_prestige
celestial_tributary_investiture_privilege_trade
celestial_tributary_investiture_privilege_marriage
celestial_tributary_investiture_privilege_politics
}
}
tributary_hegemonic = {
is_tributary = yes
suzerain_line_type = line_suzerain
tributary_line_type = line_tributary
should_show_as_suzerain_realm_name = no
should_show_as_suzerain_realm_color = no
tributary_heir_succession = yes
suzerain_heir_succession = yes
is_valid_tributary_contract = {
scope:suzerain = {
highest_held_title_tier = tier_hegemony
}
}
tributary_can_break_free = {
always = yes
}
contracts = {
hegemonic_tribute_gold
hegemonic_tribute_prestige
}
}
mandala_vassal = {
contracts = {
mandala_government_taxes
mandala_government_piety
mandala_government_levies
religious_rights
fortification_rights
coinage_rights
succession_rights
title_revocation_rights
}
}
tributary_mandala = {
is_tributary = yes
tributary_can_break_free = {
NOT = { has_variable = tributary_has_been_reasserted_recently }
}
suzerain_line_type = line_suzerain
tributary_line_type = line_tributary
should_show_as_suzerain_realm_name = yes
should_show_as_suzerain_realm_color = yes
tributary_heir_succession = yes
suzerain_heir_succession = yes
contracts = {
mandala_government_taxes
mandala_government_piety
mandala_government_levies
mandala_suzerain_war_participation_guarantee
}
}
#Wanua, amongst others
tributary_mandala_tribal = {
is_tributary = yes
suzerain_line_type = line_suzerain
tributary_line_type = line_tributary
should_show_as_suzerain_realm_name = yes
should_show_as_suzerain_realm_color = yes
tributary_heir_succession = yes
suzerain_heir_succession = yes
contracts = {
mandala_government_taxes
mandala_government_prestige
mandala_government_piety
mandala_government_levies
mandala_suzerain_war_participation_guarantee
}
}
japan_administrative_vassal = {
admin_province_contract = japan_administrative_provinces
contracts = {
japan_administrative_obligations
japan_administrative_provinces
}
modify_contract_layout = eastern_admin
}
japan_feudal_vassal = {
contracts = {
feudal_government_taxes
feudal_government_levies
special_contract
religious_rights
fortification_rights
coinage_rights
succession_rights
war_declaration_rights
council_rights
kurultai_rights
title_revocation_rights
jizya_special_rights
}
}
wanua_vassal = {
contracts = {
wanua_obligations
}
}
tributary_wanua = {
is_tributary = yes
suzerain_line_type = line_suzerain
tributary_line_type = line_tributary
should_show_as_suzerain_realm_name = yes
should_show_as_suzerain_realm_color = yes
contracts = {
default_tributary_taxes
default_tributary_prestige
barter_goods_obligations
}
}
meritocratic_vassal = {
admin_province_contract = meritocratic_provinces
contracts = {
meritocratic_obligations
meritocratic_provinces
meritocratic_treasury
meritocratic_salary
meritocratic_salary_rank
}
modify_contract_layout = eastern_admin
}