﻿namespace = loaa_eviction_events

scripted_effect fund_beneficiary_effect = {
	$BENEFICIARY$ = { save_temporary_scope_as = beneficiary }
	if = {
		limit = {
			any_maa_regiment = {
				maa_size > 12
			}
		}
		ordered_maa_regiment = {
			order_by = maa_size
			limit = {
				maa_size > 12
			}
			change_maa_regiment_size = {
				size = -6
				reinforce = yes
			}
			scope:beneficiary = {
				create_maa_regiment = {
					type_of = prev
					size = 6
				}
			}
		}
	}
	else_if = {
		limit = {
			any_maa_regiment = {
				maa_size > 10
			}
		}
		ordered_maa_regiment = {
			order_by = maa_size
			limit = {
				maa_size > 10
			}
			change_maa_regiment_size = {
				size = -5
				reinforce = yes
			}
			scope:beneficiary = {
				create_maa_regiment = {
					type_of = prev
					size = 5
				}
			}
		}
	}
	else_if = {
		limit = {
			any_maa_regiment = {
				maa_size > 8
			}
		}
		ordered_maa_regiment = {
			order_by = maa_size
			limit = {
				maa_size > 8
			}
			change_maa_regiment_size = {
				size = -4
				reinforce = yes
			}
			scope:beneficiary = {
				create_maa_regiment = {
					type_of = prev
					size = 4
				}
			}
		}
	}
	else_if = {
		limit = {
			any_maa_regiment = {
				maa_size > 6
			}
		}
		ordered_maa_regiment = {
			order_by = maa_size
			limit = {
				maa_size > 6
			}
			change_maa_regiment_size = {
				size = -3
				reinforce = yes
			}
			scope:beneficiary = {
				create_maa_regiment = {
					type_of = prev
					size = 3
				}
			}
		}
	}
	else_if = {
		limit = {
			any_maa_regiment = {
				maa_size > 4
			}
		}
		ordered_maa_regiment = {
			order_by = maa_size
			limit = {
				maa_size > 4
			}
			change_maa_regiment_size = {
				size = -2
				reinforce = yes
			}
			scope:beneficiary = {
				create_maa_regiment = {
					type_of = prev
					size = 2
				}
			}
		}
	}
	else_if = {
		limit = {
			any_maa_regiment = {
				maa_size > 2
			}
		}
		ordered_maa_regiment = {
			order_by = maa_size
			limit = {
				maa_size > 2
			}
			change_maa_regiment_size = {
				size = -1
				reinforce = yes
			}
			scope:beneficiary = {
				create_maa_regiment = {
					type_of = prev
					size = 1
				}
			}
		}
	}

	if  = {
		limit = {
			gold > 0
		}
		save_scope_value_as = {
			name = given_gold
			value = {
				value = 0
				add = gold
				multiply = 0.10
				multiply = scope:loser.primary_title.tier
			}
		}

		pay_short_term_gold = {
			gold = scope:given_gold
			target = scope:beneficiary
		}

	}
}

scripted_effect ennobled_follower_effect = {
	save_temporary_scope_value_as = {
		name = modifier_rank
		value = 0
	}
	if = {
		limit = {
			scope:new_capital.culture != culture
		}
		save_temporary_scope_value_as = {
			name = modifier_rank
			value = {
				value = scope:modifier_rank
				add = 1
			}
		}

		custom_tooltip = loaa_eviction_events.3.warning_culture
	}
	if = {
		limit = {
			scope:new_capital.faith != faith
		}

		save_temporary_scope_value_as = {
			name = modifier_rank
			value = {
				value = scope:modifier_rank
				add = 1
			}
		}

		custom_tooltip = loaa_eviction_events.3.warning_faith
	}
	if = {
		limit = {
			is_lowborn = yes
		}

		save_temporary_scope_value_as = {
			name = modifier_rank
			value = {
				value = scope:modifier_rank
				add = 1
			}
		}

		custom_tooltip = loaa_eviction_events.3.warning_lowborn
	}

	switch = {
		trigger = scope:modifier_rank
		0 = {
			add_prestige = 500
		}
		1 = {
			add_character_modifier = {
				modifier = loaa_ennobled_follower_modifier_1
				years = 10
			}
		}
		2 = {
			add_character_modifier = {
				modifier = loaa_ennobled_follower_modifier_2
				years = 20
			}
		}
		3 = {
			add_character_modifier = {
				modifier = loaa_ennobled_follower_modifier_3
				years = 30
			}
		}
	}
}

# Eviction War Results
loaa_eviction_events.1= {
    type = character_event
	title = loaa_eviction_events.1.t
	desc = loaa_eviction_events.1.desc
	theme = martial
	left_portrait = {
		character = root
		animation = menacing
	}
	right_portrait = {
		character = scope:loser
		animation = fear
	}
	override_background = { reference = burning_building }
	immediate = {
		hidden_effect = {
			scope:loser = {
				add_opinion = {
					target = scope:winner
					modifier = crushed_capture_attempt_opinion
				}
			}
			scope:loser = {
				every_held_title = {
					limit = {
						is_leased_out = no
						is_landless_type_title = no
						is_head_of_faith = no
					}
					add_to_list = target_titles
				}
				ordered_in_list = {
					list = target_titles
					limit = { tier = tier_county }
					order_by = development_level
					save_scope_as = new_capital
				}
				primary_title = { save_scope_as = new_primary_title }
			}
		}
	}
    option = {
        name = loaa_eviction_events.1.a
		flavor = seize_realm_warning

		ep3_landless_invasion_titles_taken_effect = {
			TITLE_GIVER = scope:loser
			TITLE_RECEIVER = scope:winner
			TITLE = scope:loser.primary_title
			TITLE_LIST = target_titles
		}
		ai_chance = {
			base = 100
		}
    }

    option = {
         name = loaa_eviction_events.1.b
         scope:loser = {
         if = {
				limit = { gold > 0 }
				pay_short_term_gold = {
					gold = { value = { value = gold multiply = 0.5 } }
					target = scope:winner
				}
			}
			random_character_artifact = {
                weight = {
                    base = 1
                    # Prefer worse artifacts
                    modifier = {
                        rarity = masterwork
                        factor = 5
                    }
                    modifier = {
                        rarity = common
                        factor = 10
                    }
                    # Prefer equippable artifacts
                    modifier = {
                        scope:winner = { can_equip_artifact = prev }
                        factor = 2
                    }
                    # Don't like banners
                    modifier = {
                        exists = var:banner_dynasty
                        factor = 0.1
                    }
                    modifier = {
                        exists = var:banner_house
                        factor = 0.1
                    }
                }
				set_owner = {
					target = scope:winner
					history = {
						type = taken_in_battle
						actor = scope:loser
						recipient = scope:winner
						location = scope:winner.location
					}
				}
			}
			this.capital_province = {
				add_province_modifier = {
					modifier = recently_looted_modifier
					years = 5
				}
			}
         }
         scope:winner.domicile = {
            change_provisions = {
				value = {
					value = 500
					multiply = scope:loser.primary_title.tier
				}
            }
         }
		ai_chance = {
			base = 0
		}
    }

    option = {
         name = loaa_eviction_events.1.c
         scope:loser = {
			primary_heir ?= {
				add_opinion = {
					target = scope:winner
					modifier = crushed_capture_attempt_opinion
				}
			}
            depose = yes
         }
		 scope:winner = { trigger_event = { id = loaa_eviction_events.2 days = 5 } }
		ai_chance = {
			base = 0
		}
    }

	option = {
         name = loaa_eviction_events.1.d
		 trigger = {
			OR = {
				has_trait = wrathful
				has_trait = sadistic
				has_trait = vengeful
			}
		 }
		 scope:loser = {
         if = {
				limit = { gold > 0 }
				pay_short_term_gold = {
					gold = { value = { value = gold multiply = 0.5 } }
					target = scope:winner
				}
			}
			random_character_artifact = {
                weight = {
                    base = 1
                    # Prefer worse artifacts
                    modifier = {
                        rarity = masterwork
                        factor = 5
                    }
                    modifier = {
                        rarity = common
                        factor = 10
                    }
                    # Prefer equippable artifacts
                    modifier = {
                        scope:winner = { can_equip_artifact = prev }
                        factor = 2
                    }
                    # Don't like banners
                    modifier = {
                        exists = var:banner_dynasty
                        factor = 0.1
                    }
                    modifier = {
                        exists = var:banner_house
                        factor = 0.1
                    }
                }
				set_owner = {
					target = scope:winner
					history = {
						type = taken_in_battle
						actor = scope:loser
						recipient = scope:winner
						location = scope:winner.location
					}
				}
			}
			this.capital_province = {
				add_province_modifier = {
					modifier = recently_looted_modifier
					years = 5
				}
			}
         }
         scope:winner.domicile = {
            change_provisions = {
				value = {
					value = 500
					multiply = scope:loser.primary_title.tier
				}
            }
         }
         scope:loser = {
			primary_heir ?= {
				add_opinion = {
					target = scope:winner
					modifier = crushed_capture_attempt_opinion
				}
			}
			death = {
				death_reason = death_execution
				killer = scope:winner
			}
         }
		ai_chance = {
			base = 0
		}
    }

	option = {
		name = loaa_eviction_events.1.e
		trigger = {
			any_courtier = {
				is_adult = yes
				count >= 1
			}
		}
		trigger_event = loaa_eviction_events.3
		ai_chance = {
			base = 0
		}
	}
}

loaa_eviction_events.2 = {
	hidden = yes
	immediate = {
		populate_location_with_contracts_effect = {
			AREA_CHAR = this
			AMOUNT = 8
		}
	}
}

loaa_eviction_events.3 = {
    type = character_event
	title = loaa_eviction_events.3.t
	desc = loaa_eviction_events.3.desc
	theme = martial

	left_portrait = {
		character = root
		animation = marshal
	}

	right_portrait = {
		character = scope:beneficiary_1
		animation = chancellor
	}

	lower_left_portrait = {
		character = scope:beneficiary_2
	}

	lower_right_portrait = {
		character = scope:beneficiary_3
	}

	lower_center_portrait = {
		character = scope:beneficiary_4
	}

	override_background = { reference = burning_building }

	immediate = {

		if = {
			limit = {
				employs_court_position = second_camp_officer
			}
			random_court_position_holder = {
				type = second_camp_officer
				save_scope_as = beneficiary_1
			}
		}

		if = {
			limit = {
				NOT = { exists = scope:beneficiary_1 }
			}
			random_courtier = {
				limit = {
					OR = {
						has_court_position = travel_leader_court_position
						has_court_position = light_cavalry_captain_camp_officer
						has_court_position = camelry_captain_camp_officer
						has_court_position = elephantry_captain_camp_officer
						has_court_position = heavy_cavalry_captain_camp_officer
						has_court_position = horse_archer_captain_camp_officer
						has_court_position = archer_captain_camp_officer
						has_court_position = light_infantry_captain_camp_officer
						has_court_position = pike_captain_camp_officer
						has_court_position = heavy_infantry_captain_camp_officer
					}
				}
				save_scope_as = beneficiary_1
			}
		}

		if = {
			limit = { NOT = { exists = scope:beneficiary_1 } }
			random_courtier = {
				limit = {
					has_any_court_position = yes
					NOT = { has_court_position = stooge_camp_officer }
				}
				save_scope_as = beneficiary_1
			}
		}

		ordered_courtier = {
			order_by = {
				value = {
					value = stewardship
					add = diplomacy
					add = martial
					add = intrigue
					add = learning
				}
			}
			limit = {
				is_adult = yes
				dynasty = root.dynasty
				NOT = { scope:beneficiary_1 ?= this }
			}
			save_scope_as = beneficiary_2
		}

		if = {
			limit = {
				NOT = { exists = scope:beneficiary_2 }
			}
			ordered_courtier = {
				order_by = {
					value = {
						value = stewardship
						add = diplomacy
						add = martial
						add = intrigue
						add = learning
					}
				}
				limit = {
					is_adult = yes
					NOT = { scope:beneficiary_1 ?= this }
				}
				save_scope_as = beneficiary_2
			}
		}

		ordered_courtier = {
			order_by = {
				value = {
					value = stewardship
					add = diplomacy
					add = martial
					add = intrigue
					add = learning
				}
			}
			limit = {
				is_adult = yes
				NOR = {
					scope:beneficiary_1 ?= this
					scope:beneficiary_2 ?= this
				}
			}
			save_scope_as = beneficiary_3
		}

		ordered_courtier = {
			order_by = {
				value = {
					value = stewardship
					add = diplomacy
					add = martial
					add = intrigue
					add = learning
				}
			}
			limit = {
				is_adult = yes
				NOR = {
					scope:beneficiary_1 ?= this
					scope:beneficiary_2 ?= this
					scope:beneficiary_3 ?= this
				}
			}
			save_scope_as = beneficiary_4
		}

	}

    option = {
        name = loaa_eviction_events.3.a
		trigger = {
			exists = scope:beneficiary_1
		}
        scope:loser = {
			create_title_and_vassal_change = {
				type = conquest
				save_scope_as = change
				add_claim_on_loss = yes
			}
			every_held_title = {
				limit = {
					is_leased_out = no
					is_landless_type_title = no
					is_head_of_faith = no
					tier >= tier_county
				}
				change_title_holder_include_vassals = {
					holder = scope:beneficiary_1
					change = scope:change
				}
			}
			resolve_title_and_vassal_change = scope:change
		}
		fund_beneficiary_effect = {
			BENEFICIARY = scope:beneficiary_1
		}
		scope:beneficiary_1 = {
			ennobled_follower_effect = yes
		}
		add_contact = scope:beneficiary_1
    }

	option = {
        name = loaa_eviction_events.3.b
		trigger = {
			exists = scope:beneficiary_2
		}

        scope:loser = {
			create_title_and_vassal_change = {
				type = conquest
				save_scope_as = change
				add_claim_on_loss = yes
			}
			every_held_title = {
				limit = {
					is_leased_out = no
					is_landless_type_title = no
					is_head_of_faith = no
					tier >= tier_county
				}
				change_title_holder_include_vassals = {
					holder = scope:beneficiary_2
					change = scope:change
				}
			}
			resolve_title_and_vassal_change = scope:change
		}

		scope:beneficiary_2 = {
			ennobled_follower_effect = yes
		}

		fund_beneficiary_effect = {
			BENEFICIARY = scope:beneficiary_2
		}

		add_contact = scope:beneficiary_2
    }

	option = {
        name = loaa_eviction_events.3.c
		trigger = {
			exists = scope:beneficiary_3
		}
        scope:loser = {
			create_title_and_vassal_change = {
				type = conquest
				save_scope_as = change
				add_claim_on_loss = yes
			}
			every_held_title = {
				limit = {
					is_leased_out = no
					is_landless_type_title = no
					is_head_of_faith = no
					tier >= tier_county
				}
				change_title_holder_include_vassals = {
					holder = scope:beneficiary_3
					change = scope:change
				}
			}
			resolve_title_and_vassal_change = scope:change
		}

		scope:beneficiary_3 = {
			ennobled_follower_effect = yes
		}

		fund_beneficiary_effect = {
			BENEFICIARY = scope:beneficiary_3
		}

		add_contact = scope:beneficiary_3
    }

	option = {
        name = loaa_eviction_events.3.d
		trigger = {
			exists = scope:beneficiary_4
		}
        scope:loser = {
			create_title_and_vassal_change = {
				type = conquest
				save_scope_as = change
				add_claim_on_loss = yes
			}
			every_held_title = {
				limit = {
					is_leased_out = no
					is_landless_type_title = no
					is_head_of_faith = no
					tier >= tier_county
				}
				change_title_holder_include_vassals = {
					holder = scope:beneficiary_4
					change = scope:change
				}
			}
			resolve_title_and_vassal_change = scope:change
		}

		scope:beneficiary_4 = {
			ennobled_follower_effect = yes
		}

		fund_beneficiary_effect = {
			BENEFICIARY = scope:beneficiary_4
		}
		add_contact = scope:beneficiary_4
    }
}

# Eviction events
loaa_eviction_events.0500 = {
	type = letter_event
	opening = ep3_interactions_events.0500.opening
	desc = ep3_interactions_events.0500.desc
	sender = scope:actor

	trigger = { is_ai = no }

	option = {
		name = ep3_interactions_events.0500.a
		trigger = {
			custom_tooltip = {
				text = ep3_interactions_events.0500.a.tt.need_soldiers
				current_military_strength >= ep3_interactions_events_0500_troops_count_value
			}
		}
		show_as_unavailable = { always = yes }
		custom_description_no_bullet = {
			text = evict_adventurer_consequences_tt
			object = scope:recipient
			subject = scope:actor
		}
		custom_tooltip = evict_adventurer_casus_belli_tt
		show_as_tooltip = {
			reverse_add_opinion = {
				target = scope:actor
				modifier = eviction_ignored_opinion
			}
		}
	}

	option = {
		name = ep3_interactions_events.0500.b
		trigger = {
			current_military_strength < ep3_interactions_events_0500_troops_count_value
		}
		custom_description_no_bullet = {
			text = evict_adventurer_consequences_tt
			object = scope:recipient
			subject = scope:actor
		}
		custom_tooltip = evict_adventurer_forced_tt
		custom_tooltip = evict_adventurer_forced_tt.part_2
		show_as_tooltip = {
			reverse_add_opinion = {
				target = scope:actor
				modifier = eviction_ignored_opinion
			}
		}
	}

	after = { trigger_event = loaa_eviction_events.0502 }
}

loaa_eviction_events.0501 = {
	hidden = yes
	type = character_event

	trigger = {
		var:adventurer_expeller ?= {
			is_alive = yes
			is_landed = yes
			save_temporary_scope_as = expeller_temp
		}
		is_alive = yes
		government_has_flag = government_is_landless_adventurer
		domicile.domicile_location.county.holder ?= {
			OR = {
				scope:expeller_temp ?= this
				any_liege_or_above = { scope:expeller_temp ?= this }
			}
		}
		NOR = {
			is_at_war_with = var:adventurer_expeller
			is_spouse_of = var:adventurer_expeller
			has_relation_friend = var:adventurer_expeller
			has_relation_lover = var:adventurer_expeller
		}
	}

	immediate = {
		save_scope_as = adventurer
		var:adventurer_expeller = {
			save_scope_as = expeller
			send_interface_message = {
				type = msg_landless_adventurer_expulsion_consequences
				title = expel_adventurer_consequences_title
				left_icon = scope:adventurer
				scope:adventurer = {
					send_interface_message = {
						type = msg_landless_adventurer_expulsion_consequences_adventurer
						title = expel_adventurer_consequences_title
						left_icon = scope:expeller
						custom_tooltip = evict_adventurer_casus_belli_tt
						reverse_add_opinion = {
							target = scope:expeller
							modifier = eviction_ignored_opinion
						}
					}
				}
			}
			if = {
				limit = {
					is_ai = yes
					is_character_interaction_valid = {
						recipient = scope:adventurer
						interaction = imprison_interaction
					}
					scope:adventurer = {
						NOT = {
							current_travel_plan ?= {
								is_travel_with_domicile = yes
								final_destination_province.county.holder = {
									OR = {
										this = scope:expeller
										any_liege_or_above = { this = scope:expeller }
									}
								}
							}
						}
					}
				}
				run_interaction = {
					interaction = imprison_interaction
					actor = scope:expeller
					recipient = scope:adventurer
					execute_threshold = accept
					send_threshold = decline
				}
			}
		}
		remove_variable = adventurer_expeller
		trigger_event = loaa_eviction_events.0502
	}
}

loaa_eviction_events.0502 = {
	hidden = yes
	type = character_event

	trigger = { is_ai = yes }

	immediate = {
		save_scope_as = adventurer
		random_list = {
			10 = { # Stay
				trigger = { current_military_strength > scope:expeller.military_strength_25_percent_value }
				modifier = {
					add = {
						value = current_strength_with_allies_value
						multiply = 0.1
					}
				}
				modifier = {
					scope:expeller = {
						any_held_title = {
							any_claimant = { this = scope:adventurer }
						}
					}
					factor = 2
				}
				opinion_modifier = {
					who = scope:expeller
					opinion_target = root
					multiplier = -0.2
				}
			}
			10 = { # Leave
				modifier = {
					add = {
						value = scope:expeller.current_strength_with_allies_value
						multiply = 0.1
					}
				}
				scope:expeller = {
					random_neighboring_and_across_water_top_liege_realm_owner = {
						limit = {
							NOR = {
								has_imprisonment_reason = scope:adventurer
								has_execute_reason = scope:adventurer
								has_banish_reason = scope:adventurer
							}
						}
						save_scope_as = destination_realm_owner
					}
				}
				start_travel_plan = {
					destination = scope:destination_realm_owner.capital_province
					return_trip = no
				}
			}
		}
	}
}