﻿# A holy order gets a new barony for lease.
# root = the holy order
# scope:patron = the current patron of the holy order, if any
# scope:barony = the new title leased to the holy order
on_holy_order_new_lease = {
	on_actions = {
		on_add_expiration_date_to_new_lease
	}
}

on_add_expiration_date_to_new_lease = {
	trigger = {
		has_game_rule = dynamic_holy_order_lease_enabled
	}
	effect = {
		scope:barony = {
			if = {
				limit = { exists = var:mr_under_holy_order_lease } # from a previously destroyed holy_order
				remove_variable = mr_under_holy_order_lease
			}
			set_variable = {
				name = mr_under_holy_order_lease
				value = yes
				years = 10
			}
		}
		trigger_event = { # call for removal in the future
			on_action = on_holy_order_lease_expired
			years = 10
			delayed = yes # so that variable is definitely cleared
		}
	}
}

on_holy_order_lease_expired = {
	trigger = {
		# still valid after 10 years
		exists = this
	}
	effect = {
		every_leased_title = {
			limit = {
				root = { num_leased_titles > 1 }
				tier = tier_barony
				NOT = { exists = var:mr_under_holy_order_lease } # definition of expired

				trigger_if = {
					limit = {
						exists = root.holy_order_patron
						holder = root.holy_order_patron
					}
					save_temporary_scope_value_as = {
						name = minimal_renew_opinion
						value = high_negative_opinion #-80
					}
				}
				trigger_else = {
					save_temporary_scope_value_as = {
						name = minimal_renew_opinion
						value = low_negative_opinion #-20
					}
				}
				OR = {
					# wrong holding, clears pre-mod mistakes
					NOT = { title_province = { has_holding_type = castle_holding } }
					holder = { # I don't like the order leader / I hate the order leader
						opinion = {
							target = root.leader
							value < scope:minimal_renew_opinion
						}
					}
					root.leader = { # I don't like the land owner / I hate my patron
						opinion = {
							target = prev.holder
							value < scope:minimal_renew_opinion
						}
					}
				}
			}
			save_scope_as = expired_barony
			root.holy_order_patron ?= { add_to_list = need_notification }
			holder = {
				if = {
					limit = { NOT = { is_in_list = need_notification } }
					add_to_list = need_notification
				}
			}
			every_in_list = {
				list = need_notification
				send_interface_message = {
					type = holy_order_destroyed
					title = holy_order.lease_expired_title
					desc = holy_order.lease_expired
					left_icon = scope:expired_barony
					right_icon = root.leader
					show_as_tooltip = {
						custom_tooltip = holy_order.lease_expired
						if = {
							limit = { this = root.holy_order_patron }
							custom_tooltip = holy_order.lease_expired_patron
						}
					}
				}
				remove_from_list = need_notification
			}
			revoke_lease = yes
			clear_saved_scope = expired_barony
		}
		if = { # (patron or owner) and lessee still like each other
			limit = {
				exists = scope:barony
				scope:barony = { is_under_holy_order_lease = yes }
			}
			# leader improves lessed holding
			if = {
				limit = { root.leader = { long_term_gold > 150 } }
				scope:barony.title_province = {
					add_random_building_variable_effect = yes
					add_random_building_construct_effect = yes
				}
				root.leader = {
					pay_long_term_gold = {
						gold = 150
						target = scope:barony.holder
					}
				}
			}
			# notify new lease, and pay back?
			save_scope_value_as = {
				name = new_lease_fee
				value = {
					value = scope:barony.title_province.monthly_income
					multiply = 12
				}
			}
			root.leader = { add_short_term_gold = scope:new_lease_fee }
			
			root.holy_order_patron ?= { add_to_list = need_notification }
			scope:barony.holder = {
				if = {
					limit = { NOT = { is_in_list = need_notification } }
					add_to_list = need_notification
				}
			}
			every_in_list = {
				list = need_notification
				send_interface_message = {
					type = holy_order_expanded_message
					title = holy_order.lease_renewed_title
					desc = holy_order.lease_renewed
					left_icon = scope:barony
					right_icon = root.leader
					show_as_tooltip = {
						custom_tooltip = holy_order.lease_renewed
					}
					if = {
						limit = { this = root.holy_order_patron }
						root.leader = {
							pay_short_term_gold = {
								gold = scope:new_lease_fee
								target = scope:barony.holder
							}
						}
					}
				}
				remove_from_list = need_notification
			}
			clear_saved_scope = new_lease_fee
			trigger_event = { on_action = on_add_expiration_date_to_new_lease } # renew lease
		}
	}
}