﻿actow_olympia_add_heir_modifiers = {
	if = {
		limit = {
			NOT = { has_game_rule = acotw_ruler_adjustments_off }
		}
		
		if = {
			limit = {
				has_game_rule = acotw_ruler_adjustments_all_on
				NOR = {
					has_character_modifier = acotw_olympia_war_reduction
					has_character_modifier = acotw_olympia_ruler_domain_increase 
				}
			}
			
			add_character_modifier = acotw_olympia_war_reduction
			add_character_modifier = acotw_olympia_ruler_domain_increase
		}
		else_if = {
			limit = {
				has_game_rule = acotw_ruler_adjustments_knights_only
				NOT = {
					has_character_modifier = acotw_olympia_war_reduction
				}
			}
			
			add_character_modifier = acotw_olympia_war_reduction
		}
		else_if = {
			limit = {
				has_game_rule = acotw_ruler_adjustments_domain_only
				NOT = {
					has_character_modifier = acotw_olympia_ruler_domain_increase
				}
			}
			
			add_character_modifier = acotw_olympia_ruler_domain_increase
		}
	}
}

actow_olympia_add_ruler_modifiers = {
	if = {
		limit = {
			NOT = { has_game_rule = acotw_ruler_adjustments_off }
			is_ruler = yes
		}
		
		if = {
			limit = {
				has_game_rule = acotw_ruler_adjustments_all_on
				NOR = {
					has_character_modifier = acotw_olympia_war_reduction
					has_character_modifier = acotw_olympia_ruler_domain_increase 
				}
			}
			
			add_character_modifier = acotw_olympia_war_reduction
			add_character_modifier = acotw_olympia_ruler_domain_increase
		}
		else_if = {
			limit = {
				has_game_rule = acotw_ruler_adjustments_knights_only
				NOT = {
					has_character_modifier = acotw_olympia_war_reduction
				}
			}
			
			add_character_modifier = acotw_olympia_war_reduction
		}
		else_if = {
			limit = {
				has_game_rule = acotw_ruler_adjustments_domain_only
				NOT = {
					has_character_modifier = acotw_olympia_ruler_domain_increase
				}
			}
			
			add_character_modifier = acotw_olympia_ruler_domain_increase
		}
	}
}

actow_olympia_add_health_modifiers = {
	
	if = {
		limit = {
			NOR = {
				has_character_modifier = acotw_olympia_health_adjustments
				has_game_rule = acotw_health_adjustments_off
			}
		}

		if = {
			limit = {
				has_game_rule = acotw_health_adjustments_on
				NOT = {
					has_character_modifier = acotw_olympia_health_adjustments
				}
			}
			add_character_modifier = acotw_olympia_health_adjustments
		}
		else_if = {
			limit = {
				has_game_rule = acotw_health_adjustments_partial
				NOT = {
					has_character_modifier = acotw_olympia_health_adjustments
					is_ruler = no
				}
			}
			add_character_modifier = acotw_olympia_health_adjustments
		}
		else_if = {
			limit = {
				has_game_rule = acotw_health_adjustments_partial
				AND = {
					has_character_modifier = acotw_olympia_health_adjustments
					is_ruler = yes
				}
			}
			remove_character_modifier = acotw_olympia_health_adjustments
		}
	}
}

actow_olympia_remove_culling_trait_and_modifiers = {
	if = {
		limit = { has_trait = acotw_obscured }
		remove_trait = acotw_obscured
	}
	if = {
		limit = { has_character_modifier = acotw_olympia_ruler_domain_increase }
		remove_character_modifier = acotw_olympia_ruler_domain_increase
	}
	if = {
		limit = { has_character_modifier = acotw_olympia_war_reduction }
		remove_character_modifier = acotw_olympia_war_reduction
	}
	if = {
		limit = { has_character_modifier = acotw_olympia_health_adjustments }
		remove_character_modifier = acotw_olympia_health_adjustments
	}
}

olympia_purge_obscured_from_realm = {

	actow_olympia_remove_culling_trait_and_modifiers = yes

	every_courtier_or_guest = {
		actow_olympia_remove_culling_trait_and_modifiers = yes
	}
	
	every_vassal_or_below = {
		actow_olympia_remove_culling_trait_and_modifiers = yes
		
		every_courtier_or_guest = {
			actow_olympia_remove_culling_trait_and_modifiers = yes
		}
	}
	
	#In case you are not a top liege of the realm
	top_liege ?= {
		actow_olympia_remove_culling_trait_and_modifiers = yes
		
		every_vassal_or_below = {	#Or do we need to do a any_subject?
			actow_olympia_remove_culling_trait_and_modifiers = yes
			
			every_courtier_or_guest = {
				actow_olympia_remove_culling_trait_and_modifiers = yes
			}
		}
	}
}

olympia_purge_obscured_from_ruler = {

	actow_olympia_remove_culling_trait_and_modifiers = yes
	
	every_vassal_or_below = {
		actow_olympia_remove_culling_trait_and_modifiers = yes
	}
	
	#In case you are not a top liege of the realm
	top_liege ?= {
		actow_olympia_remove_culling_trait_and_modifiers = yes
		
		every_vassal_or_below = {	#Or do we need to do a any_subject?
			actow_olympia_remove_culling_trait_and_modifiers = yes
		}
	}
}

olympia_add_obscured_to_ruler = {
	if = {
		limit = { acotw_character_can_be_obscured = yes }
		add_trait = acotw_obscured
	}
	
	#If they are obscured but haven't yet got the modifiers particularly if they just inherited the title
	actow_olympia_add_ruler_modifiers = yes
	actow_olympia_add_health_modifiers = yes
	
	#In case you are not a top liege of the realm
	top_liege ?= {
		add_trait = acotw_obscured
		actow_olympia_add_ruler_modifiers = yes
		actow_olympia_add_health_modifiers = yes
		
		every_vassal_or_below = {
			limit = { acotw_character_can_be_obscured = yes }
			add_trait = acotw_obscured
			actow_olympia_add_ruler_modifiers = yes
			actow_olympia_add_health_modifiers = yes
		}
	}
	
	every_vassal_or_below = {
		limit = { acotw_character_can_be_obscured = yes }
		add_trait = acotw_obscured
		actow_olympia_add_ruler_modifiers = yes
		actow_olympia_add_health_modifiers = yes
	}
}

olympia_add_obscured_to_realm = {
	if = {
		limit = { acotw_character_can_be_obscured = yes }
		add_trait = acotw_obscured
	}
	
	#If they are obscured but haven't yet got the modifiers particularly if they just inherited the title
	actow_olympia_add_ruler_modifiers = yes
	actow_olympia_add_health_modifiers = yes
	
	#Add traits and modifiers to all courtiers and guests
	every_courtier_or_guest = {
		limit = { acotw_character_can_be_obscured = yes }
		add_trait = acotw_obscured
		actow_olympia_add_health_modifiers = yes
	}
	
	#Add traits to every vassal
	every_vassal_or_below = {
		limit = { acotw_character_can_be_obscured = yes }
		add_trait = acotw_obscured
		actow_olympia_add_ruler_modifiers = yes
		actow_olympia_add_health_modifiers = yes
	}
	
	#Add traits to every vassal's courtiers and guests
	every_vassal_or_below = {				
		every_courtier_or_guest = {
			limit = { acotw_character_can_be_obscured = yes }
			add_trait = acotw_obscured
			actow_olympia_add_health_modifiers = yes
		}
	}
}

olympia_acotw_add_100_range_adjustment = {

	if = {
		limit = { has_character_modifier = acotw_olympia_adjust_diplomatic_range_25 }
		remove_character_modifier = acotw_olympia_adjust_diplomatic_range_25
	}
	else_if = {
		limit = { has_character_modifier = acotw_olympia_adjust_diplomatic_range_50 }
		remove_character_modifier = acotw_olympia_adjust_diplomatic_range_50
	}
	else_if = {
		limit = { has_character_modifier = acotw_olympia_adjust_diplomatic_range_75 }
		remove_character_modifier = acotw_olympia_adjust_diplomatic_range_75
	}
	
	trigger_event = {
		id = olympia_culling.1008
		days = 1
	}
}

olympia_acotw_add_75_range_adjustment = {

	add_character_modifier = acotw_olympia_adjust_diplomatic_range_75

	if = {
		limit = { has_character_modifier = acotw_olympia_adjust_diplomatic_range_50 }
		remove_character_modifier = acotw_olympia_adjust_diplomatic_range_50
	}
	else_if = {
		limit = { has_character_modifier = acotw_olympia_adjust_diplomatic_range_25 }
		remove_character_modifier = acotw_olympia_adjust_diplomatic_range_25
	}
	
	trigger_event = {
		id = olympia_culling.1008
		days = 1
	}
}

olympia_acotw_add_50_range_adjustment = {

	add_character_modifier = acotw_olympia_adjust_diplomatic_range_50

	if = {
		limit = { has_character_modifier = acotw_olympia_adjust_diplomatic_range_75 }
		remove_character_modifier = acotw_olympia_adjust_diplomatic_range_75
	}
	else_if = {
		limit = { has_character_modifier = acotw_olympia_adjust_diplomatic_range_25 }
		remove_character_modifier = acotw_olympia_adjust_diplomatic_range_25
	}
	
	trigger_event = {
		id = olympia_culling.1008
		days = 1
	}

}

olympia_acotw_add_25_range_adjustment = {

	add_character_modifier = acotw_olympia_adjust_diplomatic_range_25

	if = {
		limit = { has_character_modifier = acotw_olympia_adjust_diplomatic_range_75 }
		remove_character_modifier = acotw_olympia_adjust_diplomatic_range_75
	}
	else_if = {
		limit = { has_character_modifier = acotw_olympia_adjust_diplomatic_range_50 }
		remove_character_modifier = acotw_olympia_adjust_diplomatic_range_50
	}
	
	trigger_event = {
		id = olympia_culling.1008
		days = 1
	}

}

##########
#Landless - Can't dynamically change modifier localization so need duplicate modifiers
##########

olympia_acotw_landless_add_100_range_adjustment = {

	if = {
		limit = { has_character_modifier = acotw_landless_olympia_adjust_diplomatic_range_25 }
		remove_character_modifier = acotw_landless_olympia_adjust_diplomatic_range_25
	}
	else_if = {
		limit = { has_character_modifier = acotw_landless_olympia_adjust_diplomatic_range_50 }
		remove_character_modifier = acotw_landless_olympia_adjust_diplomatic_range_50
	}
	else_if = {
		limit = { has_character_modifier = acotw_landless_olympia_adjust_diplomatic_range_75 }
		remove_character_modifier = acotw_landless_olympia_adjust_diplomatic_range_75
	}
	
	trigger_event = {
		id = olympia_culling.1008
		days = 1
	}
}

olympia_acotw_landless_add_75_range_adjustment = {

	add_character_modifier = acotw_landless_olympia_adjust_diplomatic_range_75

	if = {
		limit = { has_character_modifier = acotw_landless_olympia_adjust_diplomatic_range_50 }
		remove_character_modifier = acotw_landless_olympia_adjust_diplomatic_range_50
	}
	else_if = {
		limit = { has_character_modifier = acotw_landless_olympia_adjust_diplomatic_range_25 }
		remove_character_modifier = acotw_landless_olympia_adjust_diplomatic_range_25
	}
	
	trigger_event = {
		id = olympia_culling.1008
		days = 1
	}
}

olympia_acotw_landless_add_50_range_adjustment = {

	add_character_modifier = acotw_landless_olympia_adjust_diplomatic_range_50

	if = {
		limit = { has_character_modifier = acotw_landless_olympia_adjust_diplomatic_range_75 }
		remove_character_modifier = acotw_landless_olympia_adjust_diplomatic_range_75
	}
	else_if = {
		limit = { has_character_modifier = acotw_landless_olympia_adjust_diplomatic_range_25 }
		remove_character_modifier = acotw_landless_olympia_adjust_diplomatic_range_25
	}
	
	trigger_event = {
		id = olympia_culling.1008
		days = 1
	}

}

olympia_acotw_landless_add_25_range_adjustment = {

	add_character_modifier = acotw_landless_olympia_adjust_diplomatic_range_25

	if = {
		limit = { has_character_modifier = acotw_landless_olympia_adjust_diplomatic_range_75 }
		remove_character_modifier = acotw_landless_olympia_adjust_diplomatic_range_75
	}
	else_if = {
		limit = { has_character_modifier = acotw_landless_olympia_adjust_diplomatic_range_50 }
		remove_character_modifier = acotw_landless_olympia_adjust_diplomatic_range_50
	}
	
	trigger_event = {
		id = olympia_culling.1008
		days = 1
	}

}

olympia_acotw_clear_modifiers_for_war = {
	if = {
		limit = {
			AND = {
				any_war_participant = {
					is_ai = no
				}
				any_war_participant = {
					has_trait = acotw_obscured
				}
			}
		}
		every_war_participant = {
			limit = { has_trait = acotw_obscured }
			actow_olympia_remove_culling_trait_and_modifiers = yes
			
			#Add a temporary flag to prevent getting the modifiers back after 10 years (most wars are done by then... right...?)
			add_character_flag = {
				flag = acotw_do_not_obscure
				years = 10
			}
			add_character_flag = {
				flag = olympia_awkwardly_relevant
				years = 10
			}
		}
	}
}

olympia_acotw_clear_immunity_flags_for_peace = {
	if = {
		limit = {
			AND = {
				any_war_participant = {
					is_ai = no
				}
				any_war_participant = {
					AND = {
						has_character_flag = acotw_do_not_obscure
						has_character_flag = olympia_awkwardly_relevant
					}
				}
			}
		}
		every_war_participant = {
			limit = { 
				AND = {
					has_character_flag = acotw_do_not_obscure
					has_character_flag = olympia_awkwardly_relevant
				}
			}
			remove_character_flag = acotw_do_not_obscure
			remove_character_flag = olympia_awkwardly_relevant
		}
	}
}

acotw_add_health_modifiers_baby = {
	if = {
		limit = {
			has_trait = acotw_obscured
		}
		actow_olympia_add_health_modifiers = yes
	}
}