﻿### Configuration parameters

centralization_development_baseline_multiplier	= 3
centralization_development_baseline_max			= 40
centralization_unity_baseline_multiplier		= 0.4
centralization_popinion_multiplier				= 0.2
centralization_vopinion_multiplier				= 0.4

HRT_centralization_progressbar_limiter_value = {
	value = title:c_aachen.var:HRT_centralization
	add = HRT_centralization_progressbar_change_value
}

HRT_centralization_progressbar_change_value = {
	value = 0
	if = {
		limit = {
			title:c_aachen.var:HRT_emperor ?= {
				exists = this
				is_alive = yes
			}
		}
		add = HRT_centralization_baseline_change_value
		add = HRT_centralization_centralize_value
		add = HRT_centralization_perk_bonus
	}
	min = -3
	max = 2
}

HRT_centralization_centralize_value = {
	value = 0
	if = {
		limit = {
			title:c_aachen.var:HRT_emperor ?= { is_ai = no }
		}
		if = {
			limit = {
				title:c_aachen.var:HRT_emperor ?= {
					HRT_is_centralizing_trigger = yes
					var:HRT_authority > 0
				}
			}
			if = {
				limit = { title:c_aachen.var:HRT_emperor.var:HRT_centralization_effort_value ?= 2 }
				add = HRT_authority_total_gain_value
				multiply = 0.75
			}
			else_if = {
				limit = { title:c_aachen.var:HRT_emperor.var:HRT_centralization_effort_value ?= 1 }
				add = HRT_authority_total_gain_value
				multiply = 0.5
			}
			else = {
				add = HRT_authority_total_gain_value
				multiply = 0.25
			}
		}
	}
	else = {
		add = HRT_authority_total_gain_value
		multiply = 0.5
	}
}

HRT_centralization_perk_bonus = {
	value = 0
	if = {
		limit = {
			title:c_aachen.var:HRT_emperor ?= {
				has_perk = centralization_perk
			}
		}
		add = 1
	}
}

#HRT_centralization_imperial_city_value = {
#	value = 0
#	title:c_aachen = {
#		if = {
#			limit = { has_variable_list = HRT_reichsstaedte }
#			every_in_list = {
#				variable = HRT_reichsstaedte
#				add = 0.4
#			}
#		}
#	}
#	max = 3
#}

# Baseline
HRT_centralization_baseline_value = {
	value = 0
	add = HRT_centralization_development_baseline_value
	add = HRT_centralization_unity_value
	add = HRT_centralization_cultural_era_value
	add = HRT_centralization_edicts_value
	add = HRT_centralization_popinion_value
	add = HRT_centralization_vopinion_value
	add = HRT_centralization_legitimacy_value
	add = HRT_centralization_government_value
	min = 0
	max = 200
}

HRT_centralization_development_baseline_value = {
	value = 0
	if = {
		limit = {
			exists = title:c_aachen.var:HRT_emperor.capital_county
			exists = title:c_aachen.var:HRT_emperor.var:HRT_centralization_vassal_development
			exists = title:c_aachen.var:HRT_emperor.var:HRT_authority_vassals_var
		}
		add = title:c_aachen.var:HRT_emperor.capital_county.development_level
		subtract = {
			value = title:c_aachen.var:HRT_emperor.var:HRT_centralization_vassal_development # all vassals capitals development
			divide = {
				value = title:c_aachen.var:HRT_emperor.var:HRT_authority_vassals_var # divided by the number of vassals
				min = 1
			}
		}
		multiply = centralization_development_baseline_multiplier
		add = title:c_aachen.var:HRT_emperor.capital_county.development_level
	}
	max = centralization_development_baseline_max
}

HRT_centralization_unity_value = {
	value = 0
	if = {
		limit = { exists = title:c_aachen.var:HRT_emperor.var:HRT_authority_unity }
		add = title:c_aachen.var:HRT_emperor.var:HRT_authority_unity
		multiply = centralization_unity_baseline_multiplier
	}
}

HRT_centralization_cultural_era_value = {
	value = 10
	if = { limit = { title:c_aachen.var:HRT_emperor.culture ?= { has_cultural_era_or_later = culture_era_early_medieval } } add = 10 }
	if = { limit = { title:c_aachen.var:HRT_emperor.culture ?= { has_cultural_era_or_later = culture_era_high_medieval } } add = 10 }
	if = { limit = { title:c_aachen.var:HRT_emperor.culture ?= { has_cultural_era_or_later = culture_era_late_medieval } } add = 10 }
}

HRT_centralization_edicts_value = {
	value = 0
	if = {
		limit = { exists = title:c_aachen.var:HRT_emperor.dynasty.var:HRT_edicts_issued }
		add = title:c_aachen.var:HRT_emperor.dynasty.var:HRT_edicts_issued
		#multiply = 2
	}
	max = 40
}

HRT_centralization_popinion_value = {
	value = 0
	if = {
		limit = {
			exists = faith:catholic.religious_head
			exists = title:c_aachen.var:HRT_emperor.var:HRT_popinion
		}
		add = title:c_aachen.var:HRT_emperor.var:HRT_popinion
		multiply = centralization_popinion_multiplier
	}
}

HRT_centralization_vopinion_value = {
	value = 0
	add = title:c_aachen.var:HRT_emperor.var:HRT_vopinion
	divide = {
		value = title:c_aachen.var:HRT_emperor.var:HRT_authority_vassals_var # divided by the number of vassals
		min = 1
	}
	multiply = centralization_vopinion_multiplier
}

HRT_centralization_legitimacy_value = {
	value = 0
	if = { limit = { title:c_aachen.var:HRT_emperor ?= { highest_held_title_tier = tier_empire } }
		if =		{ limit = { title:c_aachen.var:HRT_emperor ?= { legitimacy_level = 0 } }	add = -100 }
		else_if =	{ limit = { title:c_aachen.var:HRT_emperor ?= { legitimacy_level = 1 } }	add = -60 }
		else_if =	{ limit = { title:c_aachen.var:HRT_emperor ?= { legitimacy_level = 2 } }	add = -40 }
		else_if =	{ limit = { title:c_aachen.var:HRT_emperor ?= { legitimacy_level = 3 } }	add = -20 }
		else_if =	{ limit = { title:c_aachen.var:HRT_emperor ?= { legitimacy_level = 4 } }	add = -10 }
		else_if =	{ limit = { title:c_aachen.var:HRT_emperor ?= { legitimacy_level = 5 } }	add = 10 }
	}
	else = {
		if =		{ limit = { title:c_aachen.var:HRT_emperor ?= { legitimacy_level = 0 } }	add = -100 }
		else_if =	{ limit = { title:c_aachen.var:HRT_emperor ?= { legitimacy_level = 1 } }	add = -60 }
		else_if =	{ limit = { title:c_aachen.var:HRT_emperor ?= { legitimacy_level = 2 } }	add = -40 }
		else_if =	{ limit = { title:c_aachen.var:HRT_emperor ?= { legitimacy_level = 3 } }	add = -20 }
		else_if =	{ limit = { title:c_aachen.var:HRT_emperor ?= { legitimacy_level = 4 } }	add = 5 }
		else_if =	{ limit = { title:c_aachen.var:HRT_emperor ?= { legitimacy_level = 5 } }	add = 10 }
	}
}

HRT_centralization_government_value = {
	value = 0
	if = {
		limit = {
			title:c_aachen.var:HRT_emperor ?= { government_has_flag = government_is_administrative }
		}
		add = 60
	}
}

# Change towards Baseline
HRT_centralization_baseline_change_value = {
	value = 0
	if = {
		limit = {
			HRT_centralization_baseline_difference < 2
			HRT_is_centralizing_trigger = no
		}
		if = { limit = { title:c_aachen.var:HRT_centralization < HRT_centralization_baseline_gui_value }
			add = HRT_centralization_baseline_difference
		}
		else = {
			subtract = HRT_centralization_baseline_difference
		}
	}
	else_if = {
		limit = { HRT_centralization_baseline_difference >= 100 }
		if = { limit = { title:c_aachen.var:HRT_centralization < HRT_centralization_baseline_gui_value }
			add = 100
			divide = 48
		}
		else = {
			subtract = 100
			divide = 48
		}
	}
	else_if = {
		limit = {
			HRT_centralization_baseline_difference <= 10
			HRT_is_centralizing_trigger = no
		}
		if = { limit = { title:c_aachen.var:HRT_centralization < HRT_centralization_baseline_gui_value }
			add = 10
			divide = 12
		}
		else_if = { limit = { title:c_aachen.var:HRT_centralization > HRT_centralization_baseline_gui_value }
			subtract = 10
			divide = 12
		}
	}
	else = {
		if = { limit = { title:c_aachen.var:HRT_centralization < HRT_centralization_baseline_gui_value }
			add = HRT_centralization_baseline_difference
			divide = 48
		}
		else_if = { limit = { title:c_aachen.var:HRT_centralization > HRT_centralization_baseline_gui_value }
			subtract = HRT_centralization_baseline_difference
			divide = 48
		}
	}
}

HRT_centralization_baseline_difference = {
	value = 0
	if = {
		limit = { title:c_aachen.var:HRT_centralization > HRT_centralization_baseline_gui_value }
		add = title:c_aachen.var:HRT_centralization
		subtract = HRT_centralization_baseline_gui_value
	}
	else_if = {
		limit = { title:c_aachen.var:HRT_centralization < HRT_centralization_baseline_gui_value }
		add = HRT_centralization_baseline_gui_value
		subtract = title:c_aachen.var:HRT_centralization
	}
}

HRT_centralization_progressbar_max_value = {
	value = 80
	if = {
		limit = {
			title:c_aachen.var:HRT_emperor ?= {
				OR = {
					AND = {
						culture = { has_innovation = innovation_baliffs }
						OR = {
							has_realm_law = crown_authority_1
							has_realm_law = crown_authority_2
							has_realm_law = crown_authority_3
							has_realm_law = imperial_bureaucracy_1
							has_realm_law = imperial_bureaucracy_2
							has_realm_law = imperial_bureaucracy_3
						}
					}
					this = character:1316 # Heinrich IV
					this = character:212501 # Friedrich "Barbarossa"
				}
			}
		}
		add = 40 #120
	}
	if = {
		limit = {
			title:c_aachen.var:HRT_emperor ?= {
				OR = {
					AND = {
						culture = { has_innovation = innovation_baliffs }
						OR = {
							has_realm_law = crown_authority_2
							has_realm_law = crown_authority_3
							has_realm_law = imperial_bureaucracy_2
							has_realm_law = imperial_bureaucracy_3
						}
					}
					this = character:212501 # Friedrich "Barbarossa"
				}
			}
		}
		add = 40 #160
	}
	if = {
		limit = {
			title:c_aachen.var:HRT_emperor ?= {
				AND = {
					culture = {
						AND = {
							has_innovation = innovation_baliffs
							has_innovation = innovation_court_officials
						}
					}
					OR = {
						has_realm_law = crown_authority_3
						has_realm_law = imperial_bureaucracy_3
					}
				}
			}
		}
		value = 200
	}
	min = 0
	max = 200
}

HRT_centralization_progressbar_min_value = {
	value = 0
	if = {
		limit = {
			title:c_aachen.var:HRT_emperor ?= {
				has_realm_law = imperial_bureaucracy_1
			}
		}
		add = 80.01
	}
	else_if = {
		limit = {
			title:c_aachen.var:HRT_emperor ?= {
				has_realm_law = imperial_bureaucracy_2
			}
		}
		add = 120.01
	}
	else_if = {
		limit = {
			title:c_aachen.var:HRT_emperor ?= {
				has_realm_law = imperial_bureaucracy_3
			}
		}
		add = 160.01
	}
	min = 0
	max = 200
}


HRT_centralization_baseline_difference_limit = {
	value = HRT_centralization_progressbar_value
	if = { limit = { exists = title:c_aachen.var:HRT_emperor.var:HRT_centralization_baseline }
		subtract = title:c_aachen.var:HRT_emperor.var:HRT_centralization_baseline
	}
}

HRT_centralization_reduction_months_left = {
	value = 6
	subtract = title:c_aachen.var:HRT_emperor.var:HRT_centralization_reduction_imminent
}

HRT_edict_centralization_scale_value = {
	value = 0
	if =		{ limit = { HRT_has_centralization_0_trigger = yes } add = 1 }
	else_if =	{ limit = { HRT_has_centralization_1_trigger = yes } add = 2 }
	else_if =	{ limit = { HRT_has_centralization_2_trigger = yes } add = 3 }
	else_if = 	{ limit = { HRT_has_centralization_3_trigger = yes } add = 4 }
	else_if =	{ limit = { HRT_has_centralization_4_trigger = yes } add = 5 }
}

# GUI
HRT_centralization_progressbar_value = {
	value = 0
	add = title:c_aachen.var:HRT_centralization
}

HRT_centralization_baseline_gui_value = {
	value = 0
	if = { limit = { exists = title:c_aachen.var:HRT_emperor.var:HRT_centralization_baseline }
		add = title:c_aachen.var:HRT_emperor.var:HRT_centralization_baseline
	}
}

HRT_centralization_effort_value = {
	value = 25
	if = {
		limit = { title:c_aachen.var:HRT_emperor.var:HRT_centralization_effort_value = 1 }
		value = 50
	}
	else_if = {
		limit = { title:c_aachen.var:HRT_emperor.var:HRT_centralization_effort_value = 2 }
		value = 75
	}
}