﻿on_death = {
	on_actions = {
		loaa_landless_on_death_on_action
		loaa_legitimist_debt_inheritance_on_action
		loaa_legitimist_death_clean_up
	}
}

loaa_landless_on_death_on_action = {
	trigger = {
		is_landless_adventurer = yes
	}
	effect = {
		every_character_active_contract = {
			invalidate_contract = yes
		}
		if = {
			limit = {
				has_character_flag = loaa_fighting_for_the_camp
			}
			trigger_event = loaa_succession_events.5
		}
		primary_heir ?= {
			if = {
				limit = {
					OR = {
						is_adult = no
						prowess < 10
						has_domicile_temperament_low = yes
						AND = {
							OR = {
								NOT = {
									can_be_combatant_based_on_gender_trigger = {
										ARMY_OWNER = this
									}
								}
								any_courtier = {
									prowess > prev.prowess
								}
								has_trait = craven
							}
							root = {
								OR = {
									has_realm_law = camp_purpose_brigands
									has_realm_law = camp_purpose_mercenaries
								}
							}
						}
						AND = {
							OR = {
								has_trait = intellect_bad_1
								has_trait = intellect_bad_2
								has_trait = intellect_bad_3
								has_trait = lazy
							}
							root = {
								OR = {
									has_realm_law = camp_purpose_scholars
									has_realm_law = camp_purpose_explorers
								}
							}
						}
					}
				}

				# trigger_event = {
				# 	id = loaa_succession_events.1
				# 	days = { 3 10 }
				# 	#delayed = yes
				# }
			}
		}
	}
}

loaa_legitimist_debt_inheritance_on_action = {
	trigger = {
		is_ruler = yes
		is_landless_adventurer = no
		has_variable_list = loaa_legitimist_supporters
	}
	effect = {
		if = {
			limit = {
				has_variable_list = loaa_legitimist_supporters
			}
			every_in_list = {
				variable = loaa_legitimist_supporters
				limit = {
					NOT = {
						is_target_in_variable_list = {
							name = legitimist_payed_supporters
							target = this
						}
					}
					is_alive = yes
					has_variable = legitimist_obligations_left
				}
				save_scope_as = petitioned_ruler
				root = {
					save_scope_as = previous_ruler
					player_heir ?= {
						trigger_event = {
							id = loaa_legitimist_support_events.14
							months = { 1 6 }
						}
					}
				}
			}
		}
	}
}

loaa_legitimist_death_clean_up = {
	trigger = {
		is_landless_adventurer = yes
		exists = var:potential_legitimist_supporter
	}
	effect = {
		var:potential_legitimist_supporter = {
			if = {
				limit = {
					has_character_flag = legitimist_supporter
				}
				remove_character_flag = legitimist_supporter
			}
		}
		remove_variable = potential_legitimist_supporter
	}
}

on_travel_plan_complete = {
	on_actions = {
		player_spawns_criminal_contracts_on_action
	}
}

on_travel_plan_abort = {
	on_actions = {
		remove_loaa_flags_on_action
	}
}

player_spawns_criminal_contracts_on_action = {
	trigger = {
		is_landless_adventurer = yes
		num_taken_task_contracts = 0
		location.county.holder.top_liege = {
			is_ai = no
			NOT = { has_game_rule = ai_criminal_contracts_cd_never }
			OR = {
				NOT = { has_character_flag = targeted_by_hostile_contract_heist }
				NOT = { has_character_flag = targeted_by_hostile_contract_ambush }
				NOT = { has_character_flag = targeted_by_hostile_contract_tax }
				NOT = { has_character_flag = targeted_by_hostile_contract_rustle }
			}
		}
		NOT = { has_character_flag = ai_laamp_criminal_contract_cd }
		NOT = { has_character_flag = offer_contract_sent }
	}
	effect = {
		trigger_event = loaa_ai_criminal_events.1
	}
}

remove_loaa_flags_on_action = {
	trigger = {
		is_landless_adventurer = yes
		has_character_flag = recently_invited_adventurer
	}
	effect = {
		remove_character_flag = recently_invited_adventurer
	}
}

on_title_gain = {
	on_actions = {
		loaa_legitmist_gain_title_on_action
	}
}

loaa_legitmist_gain_title_on_action = {
	trigger = {
		has_variable_list = loaa_legitimist_supporters
		has_variable = legitimist_claimed_title
		root.var:legitimist_claimed_title ?= { this = scope:title }
	}
	effect = {
		every_in_list = {
			variable = loaa_legitimist_supporters
			limit = {
				NOT = {
					is_target_in_variable_list = {
						name = legitimist_payed_supporters
						target = this
					}
				}
				is_alive = yes
				has_variable = legitimist_obligations_left
			}
			save_scope_as = petitioned_ruler
			root = { save_scope_as = sender }
			scope:title = { save_scope_as = claimed_title }
			trigger_event = loaa_legitimist_support_events.15
		}
	}
}

yearly_playable_pulse = {
	on_actions = {
		loaa_laamp_yearly_pulse_on_action
	}
}

loaa_laamp_yearly_pulse_on_action = {
	trigger = {
		is_landless_adventurer = yes
		has_realm_law = camp_purpose_mercenaries
		NOT = { has_variable = loaa_war_promise }
		is_at_war = no
	}

	random_events = {
		chance_to_happen = 20
		100 = loaa_laamp_general_events.20
	}
}

on_legitimist_travel_relocation_end = {
	effect = {
		if = {
			limit = { exists = var:legitimist_contract }
			accept_task_contract = var:legitimist_contract
			remove_variable = legitimist_contract
		}
	}
}

on_travel_plan_arrival = {
	on_actions = {
		loaa_laamp_travel_on_action
	}
}

on_travel_plan_movement = {
	on_actions = {
		loaa_laamp_travel_on_action
		loaa_ambush_contract_on_action
	}
}

loaa_laamp_travel_on_action = {
	trigger = {
		is_landless_adventurer = yes
		any_character_active_contract = {
			OR = {
				has_task_contract_type = loaa_deliver_artifact_contract
				has_task_contract_type = loaa_sabotage_contract
			}
			var:task_contract_destination ?= root.current_travel_plan.current_location
		}

		# 	# trigger_if = {
		# 	# 	limit = { exists = var:task_contract_object }
		# 	# 	var:task_contract_object = {
		# 	# 		current_travel_plan ?= {
		# 	# 			travel_plan_owner = root
		# 	# 		}
		# 	# 	}
		# 	# }
		# }
	}
	effect = {
		every_character_active_contract = {
			limit = {
				OR = {
					has_task_contract_type = loaa_deliver_artifact_contract
					has_task_contract_type = loaa_sabotage_contract
				}
				var:task_contract_destination ?= root.current_travel_plan.current_location
				# trigger_if = {
				# 	limit = { exists = var:task_contract_object }
				# 	var:task_contract_object = {
				# 		current_travel_plan ?= {
				# 			travel_plan_owner = root
				# 		}
				# 	}
				# }
			}
			save_scope_as = task_contract
			if = {
				limit = {
					OR = {
						has_task_contract_type = loaa_deliver_artifact_contract
					}
				}
				task_contract_taker = {
					trigger_event = loaa_contract_event.0042
				}
			}
			else_if = {
				limit = { has_task_contract_type = loaa_sabotage_contract }
				task_contract_taker = {
					trigger_event = loaa_contract_event.0063
				}
			}
		}
	}
}

loaa_ambush_contract_on_action = {
	effect = {
		# laamp_base_1041/Ambush Travellers task contract minigame.
		current_travel_plan ?= {
			if = {
				limit = { has_variable = loaa_activate_laamp_base_1041_logic }
				travel_plan_owner.var:laamp_base_1041_travel_plan_contract_storage ?= {
					if = {
						limit = { var:event_ratio_tracker >= 1 }
						increment_variable_effect = {
							VAR = event_ratio_tracker
							VAL = -1
						}
					}
					else_if = {
						limit = { var:encounters_tally < var:encounters_max }
						root = { trigger_event = loaa_laamp_base_contract_schemes.1782 }
						set_variable = {
							name = event_ratio_tracker
							value = var:event_ratio
						}
						increment_variable_effect = {
							VAR = encounters_tally
							VAL = 1
						}
					}
				}
			}
		}
	}
}

on_game_start = {
	on_actions = { loaa_on_game_start }
}

# Compatibility Error Suppression setup
loaa_on_game_start = {
	effect = {
		if = {
			limit = { always = no }
			set_global_variable = AGOT_is_loaded
			set_global_variable = franko_war_complete
			set_global_variable = curr_province
			random_kingdom = {
				holder ?= {
					add_character_flag = agot_landless_interaction_blocker
					add_character_flag = unknown_sauron_flag
					add_to_list = loaa_target_list
					if = {
						limit = {
							has_character_flag = unknown_sauron_flag
							has_variable = months_spent
							has_variable = prestige_penalty
						}
						add_prestige = 1
					}
				}
			}
		}
	}
}