﻿
liberation_cb = {
	icon = de_jure
	group = de_jure
	
	allowed_for_character = {
		any_relation = { 
			OR = {
				is_imprisoned_by = scope:defender
				has_opinion_modifier = {
					target = scope:defender
					modifier = forced_me_concubine_marriage_opinion
				}
				has_opinion_modifier = {
					target = scope:defender
					modifier = concubine_with_monogamous_faith_opinion
				}
				has_opinion_modifier = {
					target = scope:defender
					modifier = concubine_with_polygamous_faith_opinion
				}
			}
		}
	}

	# Root is the title
	# scope:attacker is the attacker
	# scope:defender is the defender

	allowed_against_character = {
		scope:defender = {
			any_prisoner = { 
				has_relation_to = scope:attacker
				demand_release_filter_trigger = { 
					ACTOR = scope:attacker
					RECIPIENT = scope:defender
				}
			}
		}
	}
	
	cost = {
		piety = {
			value = 0
		}
		prestige = {
			value = 0
		}
	}
	
	should_invalidate = {
		OR = {
			scope:defender = {
				is_independent_ruler = no
			}
		}
	}
	
	on_declaration = {
		on_declared_war = yes
		scope:defender = {
			every_vassal_or_below = {
				limit = { 
					any_prisoner = {
						has_relation_to = scope:attacker
						demand_release_filter_trigger = { 
							ACTOR = scope:attacker
							RECIPIENT = prev
						}
					}
				}
				scope:war = { add_defender = prev }
			} 
		}
	}	
	
	on_invalidated_desc = {}
	
	on_invalidated = {}

	on_victory_desc = {}
	
	on_victory = {
		scope:attacker = { show_pow_release_message_effect = yes }
		scope:defender = {
			every_prisoner = {
				limit = { 
					OR = {
						has_relation_to = scope:attacker
						demand_release_filter_trigger = { 
							ACTOR = scope:attacker
							RECIPIENT = scope:defender
						}
					}
				}
				if = {
					limit = { has_relation_rival = scope:attacker }
					save_temporary_scope_as = prisoner	
					scope:attacker = { 
						imprison = {
							target = scope:prisoner
							type = dungeon
						}
					}
				}
				else_if = {
					limit = { 
						demand_release_filter_trigger = {
							ACTOR = scope:attacker
							RECIPIENT = scope:defender
						} 
					}
					save_temporary_scope_as = prisoner
					hidden_effect = {
						if = {
							limit = { is_in_prison_type = house_arrest }
							add_opinion = {
								modifier = grateful_opinion
								target = scope:attacker
								opinion = 30
								# years = 20
							}
						}
						else = {
							add_opinion = {
								modifier = saved_my_life_opinion
								target = scope:attacker
								# opinion = 40
								# years = 20
							}
						}
						scope:attacker = {
							if = {
								limit = { scope:prisoner = { is_in_prison_type = house_arrest } }
								add_hook_no_toast =	{ 
									type = indebted_hook	
									target = scope:prisoner
								}
							}
							else = {
								add_hook_no_toast =	{ 
									type = loyalty_hook	
									target = scope:prisoner
								}
							}
						}
					}
					release_from_prison = yes
				}
			}
			every_concubine = {
				limit = {
					OR = {
						demand_release_filter_trigger = {
							ACTOR = scope:attacker
							RECIPIENT = scope:defender
						} 						
						has_opinion_modifier = {
							target = scope:defender
							modifier = forced_me_concubine_marriage_opinion
						}
						has_opinion_modifier = {
							target = scope:defender
							modifier = concubine_with_monogamous_faith_opinion
						}
						has_opinion_modifier = {
							target = scope:defender
							modifier = concubine_with_polygamous_faith_opinion
						}
						opinion = {
							target = scope:defender
							value <= 0
						}
					}
				}
				concubine_opinion_on_release_effect = {
					ACTOR = scope:attacker
					RECIPIENT = scope:defender
				}
				save_temporary_scope_as = concubine
				scope:defender = { remove_concubine = scope:concubine }
				if = {
					limit = { any_former_spouse = { this = scope:attacker } }
					scope:attacker = { add_courtier = scope:concubine }
					if = {
						limit = { has_relation_potential_lover = scope:attacker }
						if = {
							limit = {
								OR = {
									has_relation_friend = scope:attacker
									has_relation_best_friend = scope:attacker
								}
							}
							set_relation_lover = { reason = lover_friend_to_lover target = scope:attacker }
						}
						else = {
							set_relation_lover = { reason = lover_longing target = scope:attacker }
						}
					}
					else_if = {
						limit = { has_relation_lover = scope:attacker }
						set_relation_soulmate = { reason = soulmate_professed_love copy_reason = lover target = scope:attacker}
					}
				}
				else_if = {
					limit = { has_relation_to = scope:attacker }
					scope:defender = { remove_courtier_or_guest = scope:concubine }
					scope:attacker = { add_visiting_courtier = scope:concubine }
				}
				else = {
					scope:defender = { remove_courtier_or_guest = scope:concubine }
				}
				if = {
					limit = { 
						scope:attacker = { is_ai = yes }
						any_former_spouse = { this = scope:attacker }
					}
					if = {
						limit = {scope:attacker = { is_male = yes } }
						marry = scope:attacker
					}
					else = {
						marry_matrilineal = scope:attacker
					}
				}
			}
			every_vassal_or_below = {
				save_temporary_scope_as = vassal
				every_prisoner = {
					limit = { 
						OR = {
							has_relation_to = scope:attacker
							demand_release_filter_trigger = { 
								ACTOR = scope:attacker
								RECIPIENT = scope:vassal
							}
						}
					}
					if = {
						limit = { has_relation_rival = scope:attacker }
						save_temporary_scope_as = prisoner	
						scope:attacker = { 
							imprison = {
								target = scope:prisoner
								type = dungeon
							}
						}
					}
					else = {
						limit = { 
							demand_release_filter_trigger = {
								ACTOR = scope:attacker
								RECIPIENT = scope:vassal
							} 
						}
						save_temporary_scope_as = prisoner
						hidden_effect = {
							if = {
								limit = { is_in_prison_type = house_arrest }
								add_opinion = {
									modifier = grateful_opinion
									target = scope:attacker
									opinion = 30
									# years = 20
								}
							}
							else = {
								add_opinion = {
									modifier = saved_my_life_opinion
									target = scope:attacker
									# opinion = 40
									# years = 20
								}
							}
							scope:attacker = {
								if = {
									limit = { scope:prisoner = { is_in_prison_type = house_arrest } }
									add_hook_no_toast =	{ 
										type = indebted_hook	
										target = scope:prisoner
									}
								}
								else = {
									add_hook_no_toast =	{ 
										type = loyalty_hook	
										target = scope:prisoner
									}
								}
							}
						}
						release_from_prison = yes
					}
				}
				every_concubine = {
					limit = {
						is_concubine_of = scope:vassal
						OR = {
							demand_release_filter_trigger = {
								ACTOR = scope:attacker
								RECIPIENT = scope:vassal
							} 			
							has_opinion_modifier = {
								target = scope:vassal
								modifier = forced_me_concubine_marriage_opinion
							}
							has_opinion_modifier = {
								target = scope:vassal
								modifier = concubine_with_monogamous_faith_opinion
							}
							has_opinion_modifier = {
								target = scope:vassal
								modifier = concubine_with_polygamous_faith_opinion
							}
							opinion = {
								target = scope:vassal
								value <= 0
							}
						}
					}
					concubine_opinion_on_release_effect = {
						ACTOR = scope:attacker
						RECIPIENT = scope:vassal
					}
					save_temporary_scope_as = concubine
					scope:vassal = { remove_concubine = scope:concubine }
					if = {
						limit = { any_former_spouse = { this = scope:attacker } }
						scope:attacker = { add_courtier = scope:concubine }
						if = {
							limit = { has_relation_potential_lover = scope:attacker }
							if = {
								limit = {
									OR = {
										has_relation_friend = scope:attacker
										has_relation_best_friend = scope:attacker
									}
								}
								set_relation_lover = { reason = lover_friend_to_lover target = scope:attacker }
							}
							else = {
								set_relation_lover = { reason = lover_longing target = scope:attacker }
							}
						}
						else_if = {
							limit = { has_relation_lover = scope:attacker }
							set_relation_soulmate = { reason = soulmate_professed_love copy_reason = lover target = scope:attacker}
						}
					}
					else_if = {
						limit = { has_relation_to = scope:attacker }
						scope:vassal = { remove_courtier_or_guest = scope:concubine }
						scope:attacker = { add_visiting_courtier = scope:concubine }
					}
					else = {
						scope:vassal = { remove_courtier_or_guest = scope:concubine }
					}
					if = {
						limit = { 
							scope:attacker = { is_ai = yes }
							any_former_spouse = { this = scope:attacker }
						}
						if = {
							limit = {scope:attacker = { is_male = yes } }
							marry = scope:attacker
						}
						else = {
							marry_matrilineal = scope:attacker
						}
					}
				}
			}
		}
		
		
		# Prestige level progress for the attacker
		scope:attacker = {
			add_prestige_experience = {
				value = medium_prestige_value
			}
		}

		# Prestige loss for the defender
		scope:defender = {
			pay_short_term_gold_reparations_to_attacker_effect = {
				GOLD_VALUE = 2
			}
			add_prestige = {
				value = medium_prestige_value
				multiply = -1.0
			}
		}

		# Allies on both sides get full prestige value for helping in the war, based on their war participation.
		modify_allies_of_participants_fame_values = {
			WINNER = scope:attacker
			FAME_BASE = major_prestige_value
			IS_RELIGIOUS_WAR = no
			WINNER_ALLY_FAME_SCALE = 1
			LOSER_ALLY_FAME_SCALE = 1
		}
		
		# Truce
		add_truce_attacker_victory_effect = yes
				
	}

	on_white_peace_desc = {}
	
	on_white_peace = {
		scope:attacker = { show_pow_release_message_effect = yes }
		
		#EP2 accolade glory gain for doing ok against higher ranked enemy
		scope:defender = { accolade_defender_war_end_glory_gain_low_effect = yes }

		# Prestige loss for the attacker
		scope:attacker = {
			add_prestige = {
				value = minor_prestige_value
				multiply = -1.0
			}
			stress_impact = {
				ambitious = medium_stress_impact_gain
				arrogant = medium_stress_impact_gain
			}
		}

		# Allies on both sides get full prestige value for helping in the war, based on their war participation.
		modify_allies_of_participants_fame_values = {
			WINNER = scope:attacker # Not important as the scales are identical
			FAME_BASE = minor_prestige_value
			IS_RELIGIOUS_WAR = no
			WINNER_ALLY_FAME_SCALE = 1
			LOSER_ALLY_FAME_SCALE = 1
		}
		
		scope:defender = {
			stress_impact = {
				arrogant = medium_stress_impact_gain
			}
		}

		# Truce
		add_truce_white_peace_effect = yes
	}

	on_defeat_desc = {}
	
	on_defeat = {
		scope:attacker = { show_pow_release_message_effect = yes }
	
		#EP2 accolade glory gain for winning against higher ranked enemy
		scope:defender = { accolade_defender_war_end_glory_gain_med_effect = yes }
		
		# Prestige loss for the attacker
		scope:attacker = {
			pay_short_term_gold_reparations_effect = {
				GOLD_VALUE = 2
			}
			add_prestige = {
				value = major_prestige_value
				multiply = -1.0
			}
		}

		# Prestige for the defender
		scope:defender = {
			add_prestige_war_defender_effect = {
				PRESTIGE_VALUE = medium_prestige_value
			}
		}

		# Allies on both sides get full prestige value for helping in the war, based on their war participation.
		modify_allies_of_participants_fame_values = {
			WINNER = scope:defender
			FAME_BASE = major_prestige_value
			IS_RELIGIOUS_WAR = no
			WINNER_ALLY_FAME_SCALE = 1
			LOSER_ALLY_FAME_SCALE = 1
		}
		
		scope:attacker = {
			save_temporary_scope_as = loser
		}

		# Truce
		add_truce_attacker_defeat_effect = yes
		
		on_lost_aggression_war_discontent_loss = yes
	}
	
	on_primary_attacker_death = inherit
	on_primary_defender_death = inherit
	
	attacker_allies_inherit = yes
	defender_allies_inherit = yes
	
	war_name = "LIBERATION_WAR_NAME"
	war_name_base = "LIBERATION_WAR_NAME_BASE"
	cb_name = "LIBERATION_CB_NAME"
	interface_priority = 59
	
	ticking_war_score_targets_entire_realm = yes
	max_defender_score_from_occupation = 150
	max_attacker_score_from_occupation = 150
	attacker_ticking_warscore = 0
	attacker_wargoal_percentage = 0.8

}
