﻿# Complex for handling Murder schemes for the AI (both landed and unlanded), murder complex

namespace = RegRew_event_trigger

# liege sway
RegRew_event_trigger.0001 = {
	type = character_event
	
	hidden = yes

	trigger = {
		is_pool_character = no

		# Basics of murdering
		is_physically_able_ai_adult = yes
		scheme_generic_ai_blocker_trigger = no
		diarch ?= { has_variable = RewReg_diarchy_left_save_power }

	}

	immediate = {
		# The peculiar arrangement with an empty if statement & a separate random_in_list is intentional; they save on performance. Somehow.
		## #JustCodeThings.
		if = {
			limit = { scheme_generic_ai_blocker_trigger = no }
		}
		save_scope_as = RewReg_liege
		diarch = { save_scope_as = RewReg_diarch }
		every_vassal = {
			limit = {
				is_adult = yes
				highest_held_title_tier >= tier_county
				NOT = { this = scope:RewReg_diarch }
				NOT = { has_variable = RegRew_coup_liege_var }
				OR = {
					has_variable = RegRew_coup_neutral_var
					has_variable = RegRew_coup_diarch_var
				}
			}
			add_to_list = RegRew_sway_liege
		}
		every_councillor = {
			limit = {
				is_adult = yes
				NOT = {highest_held_title_tier >= tier_county }
				NOT = { this = scope:RewReg_diarch}
				NOT = { has_variable = RegRew_coup_liege_var }
				OR = {
					has_variable = RegRew_coup_neutral_var
					has_variable = RegRew_coup_diarch_var
				}
			}
			add_to_list = RegRew_sway_liege
		}
		random_in_list = {
			list = RegRew_sway_liege
			limit = {
				root = {
					can_start_scheme = {
						type = sway
						target_character = prev
					}
				}				
			}
			weight = {
				base = 0
				modifier = {
					add = 25
					has_variable = RegRew_coup_diarch_var
				}
				modifier = {
					add = 50
					has_variable = RegRew_coup_neutral_var
				}
				modifier = {
					add = {
						value = RewReg_indiv_power_value
						multiply = 10
					}
				}				
				modifier = { 
					factor = 0
					has_relation_rival = root
				}
				modifier = { 
					factor = 0
					opinion = {
						target = root
						value >= 100
					}
				}
				modifier = { 
					factor = 0
					is_imprisoned = yes
				}
				modifier = { 
					factor = 0
					has_variable = RegRew_coup_liege_var
				}				
			}
			random = {
				chance = 35				
				modifier = {
					add = {
						value = 0
						add = root.ai_sociability
						divide = 2
					}
				}				
				root = {
					start_scheme = {
						type = sway
						target_character = prev
					}
				}
				## test
				#random_player = {
				#	send_interface_toast = {
				#		title = msg_RegRew_sway_liege_test_title
				#		left_icon = root
				#	}
				#}
				## test				
			}
		}
	}
}

# diarch sway
RegRew_event_trigger.0002 = {
	type = character_event
	
	hidden = yes

	trigger = {
		is_pool_character = no

		# Basics of murdering
		is_physically_able_ai_adult = yes
		scheme_generic_ai_blocker_trigger = no
		has_variable = RewReg_diarchy_left_save_power

	}

	immediate = {
		# The peculiar arrangement with an empty if statement & a separate random_in_list is intentional; they save on performance. Somehow.
		## #JustCodeThings.
		if = {
			limit = { scheme_generic_ai_blocker_trigger = no }
		}
		save_scope_as = RewReg_diarch
		liege = { save_scope_as = RewReg_liege }
		liege ?= {
			every_vassal = {
				limit = {
					is_adult = yes
					highest_held_title_tier >= tier_county
					NOT = { this = scope:RewReg_diarch }
					NOT = { has_variable = RegRew_coup_liege_var }
					OR = {
						has_variable = RegRew_coup_neutral_var
						has_variable = RegRew_coup_diarch_var
					}
				}
				add_to_list = RegRew_sway_liege
			}
			every_councillor = {
				limit = {
					is_adult = yes
					NOT = {highest_held_title_tier >= tier_county }
					NOT = { this = scope:RewReg_diarch}
					NOT = { has_variable = RegRew_coup_liege_var }
					OR = {
						has_variable = RegRew_coup_neutral_var
						has_variable = RegRew_coup_diarch_var
					}
				}
				add_to_list = RegRew_sway_liege
			}
		}
		random_in_list = {
			list = RegRew_sway_liege
			limit = {
				root = {
					can_start_scheme = {
						type = sway
						target_character = prev
					}
				}				
			}
			weight = {
				base = 0
				modifier = {
					add = 25
					has_variable = RegRew_coup_diarch_var
				}
				modifier = {
					add = 50
					has_variable = RegRew_coup_neutral_var
				}
				modifier = {
					add = {
						value = RewReg_indiv_power_value
						multiply = 10
					}
				}				
				modifier = { 
					factor = 0
					has_relation_rival = root
				}
				modifier = { 
					factor = 0
					opinion = {
						target = root
						value >= 100
					}
				}
				modifier = { 
					factor = 0
					is_imprisoned = yes
				}
				modifier = { 
					factor = 0
					has_variable = RegRew_coup_liege_var
				}				
			}
			random = {
				chance = 35				
				modifier = {
					add = {
						value = 0
						add = root.ai_sociability
						divide = 2
					}
				}				
				root = {
					start_scheme = {
						type = sway
						target_character = prev
					}
				}
				## test
				#random_player = {
				#	send_interface_toast = {
				#		title = msg_RegRew_sway_diarch_test_title
				#		left_icon = root
				#	}
				#}
				## test				
			}
		}
	}
}

# select actor for influence interaction
RegRew_event_trigger.0003 = {
	type = character_event
	
	hidden = yes

	trigger = {

		diarch ?= { has_variable = RewReg_diarchy_left_save_power }

	}

	immediate = {
		save_scope_as = RewReg_liege
		diarch = { save_scope_as = RewReg_diarch }
		every_vassal = {
			limit = {
				is_adult = yes
				is_ai = yes
				highest_held_title_tier >= tier_county
				NOT = { this = scope:RewReg_diarch }
				has_variable = RegRew_coup_liege_var
			}
			add_to_list = RegRew_liege_supporter_list
		}
		every_vassal = {
			limit = {
				is_adult = yes
				is_ai = yes
				highest_held_title_tier >= tier_county
				NOT = { this = scope:RewReg_diarch }
				has_variable = RegRew_coup_diarch_var
			}
			add_to_list = RegRew_diarch_supporter_list
		}
		every_councillor = {
			limit = {
				is_adult = yes
				is_ai = yes
				NOT = {highest_held_title_tier >= tier_county }
				NOT = { this = scope:RewReg_diarch}
				has_variable = RegRew_coup_liege_var
			}
			add_to_list = RegRew_liege_supporter_list
		}
		every_councillor = {
			limit = {
				is_adult = yes
				is_ai = yes
				NOT = {highest_held_title_tier >= tier_county }
				NOT = { this = scope:RewReg_diarch}
				has_variable = RegRew_coup_diarch_var
			}
			add_to_list = RegRew_diarch_supporter_list
		}
		every_vassal = {
			limit = {
				is_adult = yes
				is_ai = yes
				highest_held_title_tier >= tier_county
				NOT = { this = scope:RewReg_diarch }
				OR = {
					has_variable = RegRew_coup_liege_var
					has_variable = RegRew_coup_neutral_var
					has_variable = RegRew_coup_diarch_var
				}
			}
			add_to_list = RegRew_supporter_list
		}
		every_councillor = {
			limit = {
				is_adult = yes
				is_ai = yes
				NOT = {highest_held_title_tier >= tier_county }
				NOT = { this = scope:RewReg_diarch}
				OR = {
					has_variable = RegRew_coup_liege_var
					has_variable = RegRew_coup_neutral_var
					has_variable = RegRew_coup_diarch_var
				}
			}
			add_to_list = RegRew_supporter_list
		}		
		
		scope:RewReg_liege = {
			trigger_event =  RegRew_event_trigger.0004
		}
		scope:RewReg_diarch = {
			trigger_event = RegRew_event_trigger.0005
		}
		every_in_list = {
			list = RegRew_liege_supporter_list
			trigger_event =  RegRew_event_trigger.0004
		}
		every_in_list = {
			list = RegRew_diarch_supporter_list
			trigger_event = RegRew_event_trigger.0005
		}
	}
}

# liege side influencer
RegRew_event_trigger.0004 = {
	type = character_event
	
	hidden = yes
	
	trigger = {
		is_physically_able_ai_adult = yes
		ai_energy > high_negative_ai_value
		any_in_list = {
			list = RegRew_supporter_list
			count >= 1
			NOT = { this = root }
			is_imprisoned = no	
			is_ai = yes
			root = {
				NOT = {
					is_target_in_variable_list = {
						name = RegRew_influenced_target_var
						target = prev
					}
				}	
			}				
		}
		OR = {
			any_in_list = {
				list = RegRew_supporter_list
				root = {
					has_usable_hook = prev
					has_strong_usable_hook = prev
				}
			}
			trigger_if = {
				limit = {
					government_allows = administrative
				}
				influence >= RegRew_influence_influence_ai_check
			}
			prestige >= RegRew_influence_prestige_ai_check
			gold >= RegRew_influence_gold_ai_check
		}
	}
	
	immediate = {
		random_in_list = {
			list = RegRew_supporter_list
			limit = {
				NOT = { this = root }
				is_imprisoned = no	
				is_ai = yes
				root = {
					NOT = {
						is_target_in_variable_list = {
							name = RegRew_influenced_target_var
							target = prev
						}
					}	
				}				
			}
			weight = {
				base = 0
				modifier = {
					add = 25
					has_variable = RegRew_coup_diarch_var
				}
				modifier = {
					add = 50
					has_variable = RegRew_coup_neutral_var
				}
				modifier = {
					add = {
						value = RewReg_indiv_power_value
						multiply = 10
					}
				}
				modifier = {
					add = 50
					root = {
						has_usable_hook = prev 
						NOT = { has_strong_usable_hook = prev }
					}					
				}
				modifier = {
					add = 100
					root = {
						has_strong_usable_hook = prev
					}					
				}	
				RegRew_choice_influenced_reduce = yes
				
				modifier = { 
					factor = 0.5
					root = {
						opinion = {
							target = prev
							value < -50
						}
					}
				}
				modifier = { 
					factor = 0
					has_relation_rival = root
				}
				modifier = { 
					factor = 0
					is_imprisoned = yes
				}
				modifier = { 
					factor = 0
					has_variable = RegRew_coup_liege_var
				}				
			}
			save_scope_as = influenced	
		}	
	}
	#use_hook	
	option = {
		trigger = {
			OR = {
				has_usable_hook = scope:influenced
				has_strong_usable_hook = scope:influenced
			}
		}
		if = {
			limit = {
				has_strong_usable_hook = scope:influenced
			}
			scope:influenced = {
				RegRew_influence_ai_effect = { VALUE = RegRew_influence_liege_gain_high_value }
			}
			use_hook = scope:influenced
		}
		else_if = {
			limit = {
				has_usable_hook = scope:influenced
				NOT = { has_strong_usable_hook = scope:influenced }
			}
			scope:influenced = {
				RegRew_influence_ai_effect = { VALUE = RegRew_influence_liege_gain_low_value }
			}
			use_hook = scope:influenced
		}
		##test
		#random_player = {
		#	send_interface_toast = {
		#	title = msg_RegRew_sway_liege_test_hook
		#	left_icon = root
		#	right_icon = scope:influenced
		#	}
		#}
		##test
		ai_chance = {
			base = 25
			ai_value_modifier = {
				ai_energy = 0.5
			}
			modifier = {
				add = 25
				has_usable_hook = scope:influenced
				NOT = { has_strong_usable_hook = scope:influenced }
			}
			modifier = {
				add = 50
				has_strong_usable_hook = scope:influenced
			}
		}
	}
	#use_gold	
	option = {
		trigger = {
			gold >= RegRew_influence_gold_ai_check
		}
		pay_short_term_gold = {
			target = scope:influenced
			gold = RegRew_influence_gold_ai_cost
		}
		scope:influenced = {
			RegRew_influence_ai_effect = { VALUE = RegRew_influence_liege_gain_low_value }
		}
		##test
		#random_player = {
		#	send_interface_toast = {
		#	title = msg_RegRew_sway_liege_test_gold
		#	left_icon = root
		#	right_icon = scope:influenced
		#	}
		#}
		##test
		ai_chance = {
			base = 25
			ai_value_modifier = {
				ai_energy = 0.5
			}
			modifier = {
				add = 50
				gold > RegRew_influence_gold_ai_check_huge				
			}
			modifier = {
				add = 15
				has_trait = generous
			}
			modifier = {
				factor = 0.25
				ai_has_economical_boom_personality = yes
			}
			modifier = {
				factor = 0
				has_trait = greedy
			}
		}
	}
	#use_prestige	
	option = {
		trigger = {
			prestige >= RegRew_influence_prestige_ai_check
		}
		add_prestige = RegRew_influence_prestige_ai_cost
		scope:influenced = {
			RegRew_influence_ai_effect = { VALUE = RegRew_influence_liege_gain_low_value }
		}
		##test
		#random_player = {
		#	send_interface_toast = {
		#	title = msg_RegRew_sway_liege_test_prestige
		#	left_icon = root
		#	right_icon = scope:influenced
		#	}
		#}
		##test
		ai_chance = {
			base = 25
			ai_value_modifier = {
				ai_energy = 0.5
			}
			modifier = {
				add = 50
				prestige > RegRew_influence_prestige_ai_check_huge				
			}
		}
	}
	#use_influence	
	option = {
		trigger = {
			government_allows = administrative
			influence >= RegRew_influence_influence_ai_check
		}
		add_prestige = RegRew_influence_prestige_ai_cost
		scope:influenced = {
			RegRew_influence_ai_effect = { VALUE = RegRew_influence_liege_gain_low_value }
		}
		##test
		#random_player = {
		#	send_interface_toast = {
		#	title = msg_RegRew_sway_liege_test_influence
		#	left_icon = root
		#	right_icon = scope:influenced
		#	}
		#}
		##test
		ai_chance = {
			base = 25
			ai_value_modifier = {
				ai_energy = 0.5
			}
			modifier = {
				add = 50
				influence > RegRew_influence_influence_ai_check_huge				
			}
		}
	}
	#nope
	option = {
		##test
		#random_player = {
		#	send_interface_toast = {
		#	title = msg_RegRew_sway_liege_test_nope
		#	left_icon = root
		#	right_icon = scope:influenced
		#	}
		#}
		##test
		ai_chance = {
			base = 50
			ai_value_modifier = {
				ai_energy = -0.5
			}
			RegRew_influence_reduce = { TARGET = influenced }
		}
	}
}


# diarch side influencer
RegRew_event_trigger.0005= {
	type = character_event
	
	hidden = yes
	
	trigger = {
		is_physically_able_ai_adult = yes
		ai_energy > high_negative_ai_value
		any_in_list = {
			list = RegRew_supporter_list
			count >= 1
			NOT = { this = root }
			is_imprisoned = no	
			is_ai = yes
			root = {
				NOT = {
					is_target_in_variable_list = {
						name = RegRew_influenced_target_var
						target = prev
					}
				}	
			}				
		}
		OR = {
			any_in_list = {
				list = RegRew_supporter_list
				root = {
					has_usable_hook = prev
					has_strong_usable_hook = prev
				}
			}
			trigger_if = {
				limit = {
					government_allows = administrative
				}
				influence >= RegRew_influence_influence_ai_check
			}
			prestige >= RegRew_influence_prestige_ai_check
			gold >= RegRew_influence_gold_ai_check
		}
	}
	
	immediate = {
		random_in_list = {
			list = RegRew_supporter_list
			limit = {
				NOT = { this = root }
				is_imprisoned = no	
				is_ai = yes
				root = {
					NOT = {
						is_target_in_variable_list = {
							name = RegRew_influenced_target_var
							target = prev
						}
					}	
				}				
			}
			weight = {
				base = 0
				modifier = {
					add = 25
					has_variable = RegRew_coup_liege_var
				}
				modifier = {
					add = 50
					has_variable = RegRew_coup_neutral_var
				}
				modifier = {
					add = {
						value = RewReg_indiv_power_value
						multiply = 10
					}
				}
				modifier = {
					add = 50
					root = {
						has_usable_hook = prev 
						NOT = { has_strong_usable_hook = prev }
					}					
				}
				modifier = {
					add = 100
					root = {
						has_strong_usable_hook = prev
					}					
				}
				RegRew_choice_influenced_reduce = yes
				
				modifier = { 
					factor = 0.5
					root = {
						opinion = {
							target = prev
							value < -50
						}
					}
				}
				modifier = { 
					factor = 0
					has_relation_rival = root
				}
				modifier = { 
					factor = 0
					is_imprisoned = yes
				}
				modifier = { 
					factor = 0
					has_variable = RegRew_coup_diarch_var
				}				
			}
			save_scope_as = influenced	
		}	
	}
	#use_hook	
	option = {
		trigger = {
			OR = {
				has_usable_hook = scope:influenced
				has_strong_usable_hook = scope:influenced
			}
		}
		if = {
			limit = {
				has_strong_usable_hook = scope:influenced
			}
			scope:influenced = {
				RegRew_influence_ai_effect = { VALUE = RegRew_influence_diarch_gain_high_value }
			}
			use_hook = scope:influenced
		}
		else_if = {
			limit = {
				has_usable_hook = scope:influenced
				NOT = { has_strong_usable_hook = scope:influenced }
			}
			scope:influenced = {
				RegRew_influence_ai_effect = { VALUE = RegRew_influence_diarch_gain_low_value }
			}
			use_hook = scope:influenced
		}
		##test
		#random_player = {
		#	send_interface_toast = {
		#	title = msg_RegRew_sway_liege_test_hook
		#	left_icon = root
		#	right_icon = scope:influenced
		#	}
		#}
		##test
		ai_chance = {
			base = 25
			ai_value_modifier = {
				ai_energy = 0.5
			}
			modifier = {
				add = 25
				has_usable_hook = scope:influenced
				NOT = { has_strong_usable_hook = scope:influenced }
			}
			modifier = {
				add = 50
				has_strong_usable_hook = scope:influenced
			}
		}
	}
	#use_gold	
	option = {
		trigger = {
			gold >= RegRew_influence_gold_ai_check
		}
		pay_short_term_gold = {
			target = scope:influenced
			gold = RegRew_influence_gold_ai_cost
		}
		scope:influenced = {
			RegRew_influence_ai_effect = { VALUE = RegRew_influence_diarch_gain_low_value }
		}
		##test
		#random_player = {
		#	send_interface_toast = {
		#	title = msg_RegRew_sway_liege_test_gold
		#	left_icon = root
		#	right_icon = scope:influenced
		#	}
		#}
		##test
		ai_chance = {
			base = 25
			ai_value_modifier = {
				ai_energy = 0.5
			}
			modifier = {
				add = 50
				gold > RegRew_influence_gold_ai_check_huge				
			}
			modifier = {
				add = 15
				has_trait = generous
			}
			modifier = {
				factor = 0.25
				ai_has_economical_boom_personality = yes
			}
			modifier = {
				factor = 0
				has_trait = greedy
			}
		}
	}
	#use_prestige	
	option = {
		trigger = {
			prestige >= RegRew_influence_prestige_ai_check
		}
		add_prestige = RegRew_influence_prestige_ai_cost
		scope:influenced = {
			RegRew_influence_ai_effect = { VALUE = RegRew_influence_diarch_gain_low_value }
		}
		##test
		#random_player = {
		#	send_interface_toast = {
		#	title = msg_RegRew_sway_liege_test_prestige
		#	left_icon = root
		#	right_icon = scope:influenced
		#	}
		#}
		##test
		ai_chance = {
			base = 25
			ai_value_modifier = {
				ai_energy = 0.5
			}
			modifier = {
				add = 50
				prestige > RegRew_influence_prestige_ai_check_huge				
			}
		}
	}
	#use_influence	
	option = {
		trigger = {
			government_allows = administrative
			influence >= RegRew_influence_influence_ai_check
		}
		add_prestige = RegRew_influence_prestige_ai_cost
		scope:influenced = {
			RegRew_influence_ai_effect = { VALUE = RegRew_influence_diarch_gain_low_value }
		}
		##test
		#random_player = {
		#	send_interface_toast = {
		#	title = msg_RegRew_sway_liege_test_influence
		#	left_icon = root
		#	right_icon = scope:influenced
		#	}
		#}
		##test
		ai_chance = {
			base = 25
			ai_value_modifier = {
				ai_energy = 0.5
			}
			modifier = {
				add = 50
				influence > RegRew_influence_influence_ai_check_huge				
			}
		}
	}
	#nope
	option = {
		##test
		#random_player = {
		#	send_interface_toast = {
		#	title = msg_RegRew_sway_liege_test_nope
		#	left_icon = root
		#	right_icon = scope:influenced
		#	}
		#}
		##test
		ai_chance = {
			base = 50
			ai_value_modifier = {
				ai_energy = -0.5
			}
			RegRew_influence_reduce = { TARGET = influenced }
		}
	}
}
