﻿agotma_instigator_story = {
	on_setup = {
		story_owner = { save_scope_as = instigator }
		scope:story = {
			set_variable = {
				name = agotma_instigated_char
				value = scope:instigator.var:agotma_instigated_char_temp
			}
			set_variable = {
				name = agotma_war_target
				value = scope:instigator.var:agotma_war_target_temp
			}
			set_variable = {
				name = agotma_instigation_plot_points
				value = 1
			}
		}
		story_owner = {
			remove_variable = agotma_instigated_char_temp
			remove_variable = agotma_war_target_temp
			save_scope_as = instigator
			scope:story.var:agotma_instigated_char = { save_scope_as = agotma_instigated_char }
			scope:story.var:agotma_war_target.holder = { save_scope_as = agotma_war_target_char }
			scope:story.var:agotma_war_target = { save_scope_as = agotma_war_target }
			trigger_event = agotma_instigator_events.0001
		}
	}

	on_end = {
		story_owner = {
			if = {
				limit = { is_alive = yes }
				if = {
					limit = { has_character_flag = instigator_0005_sent }
					remove_character_flag = instigator_0005_sent
				}
				if = {
					limit = { has_character_flag = instigator_0550_sent }
					remove_character_flag = instigator_0550_sent
				}
				if = {
					limit = { has_character_flag = instigator_0560_sent }
					remove_character_flag = instigator_0560_sent
				}
				if = {
					limit = { has_character_flag = instigator_0570_sent }
					remove_character_flag = instigator_0570_sent
				}
				if = {
					limit = { has_character_flag = instigator_0580_sent }
					remove_character_flag = instigator_0580_sent
				}
				if = {
					limit = { has_character_flag = instigator_0590_sent }
					remove_character_flag = instigator_0590_sent
				}
				if = {
					limit = { has_character_flag = instigator_0600_sent }
					remove_character_flag = instigator_0600_sent
				}
				if = {
					limit = { has_character_flag = instigator_0700_sent }
					remove_character_flag = instigator_0700_sent
				}
			}
		}
	}

	on_owner_death = {
		scope:story = { end_story = yes }
	}

	### DAILY
	effect_group = {
		days = 1

		### VALIDITY CHECKS ###

		#Check if the story is still valid - Instigated Char died
		triggered_effect = {
			trigger = {
				story_owner = {
					exists = scope:story.var:agotma_instigated_char
					scope:story.var:agotma_instigated_char = {
						OR = {
							is_alive = no
							AND = {
								is_alive = yes
								has_character_flag = generic_secret_identity
								exists = scope:story.var:agotma_instigated_char.var:secret_identity_character
								scope:story.var:agotma_instigated_char.var:secret_identity_character = { is_alive = no }
							}
						}
					}
				}
			}
			effect = {
				story_owner = { save_scope_as = instigator }
				scope:story = {
					if = {
						limit = { scope:story.var:agotma_instigated_char = { is_alive = no } }
						scope:story.var:agotma_instigated_char = { save_scope_as = agotma_instigated_char }
					}
					else_if = {
						limit = {
							is_alive = yes
							has_character_flag = generic_secret_identity
							exists = scope:story.var:agotma_instigated_char.var:secret_identity_character
							scope:story.var:agotma_instigated_char.var:secret_identity_character = { is_alive = no }
						}
						scope:story.var:agotma_instigated_char.var:secret_identity_character = { save_scope_as = agotma_instigated_char }
					}
				}
				scope:story.var:agotma_war_target.holder = { save_scope_as = agotma_war_target_char }
				scope:story.var:agotma_war_target = { save_scope_as = agotma_war_target }
				scope:instigator = { trigger_event = agotma_instigator_events.0002 }
			}
		}

		#Check if the story is still valid - Instigated Char already got instigate
		triggered_effect = {
			trigger = {
				story_owner = {
					exists = scope:story.var:agotma_instigated_char
					scope:story.var:agotma_instigated_char = {
						OR = {
							has_character_flag = already_instigated
							NOT = { is_playable_character = yes }
						}
					}
				}
			}
			effect = {
				story_owner = { save_scope_as = instigator }
				scope:story.var:agotma_instigated_char = { save_scope_as = agotma_instigated_char }
				scope:story.var:agotma_war_target.holder = { save_scope_as = agotma_war_target_char }
				scope:story.var:agotma_war_target = { save_scope_as = agotma_war_target }
				scope:instigator = { trigger_event = agotma_instigator_events.0003 }
			}
		}

		#Check if the story is still valid - Target title no longer exists
		triggered_effect = {
			trigger = {
				story_owner = {
					NOT = { exists = scope:story.var:agotma_war_target.holder }
				}
			}
			effect = {
				story_owner = { save_scope_as = instigator }
				scope:story.var:agotma_instigated_char = { save_scope_as = agotma_instigated_char }
				scope:story.var:agotma_war_target = { save_scope_as = agotma_war_target }
				scope:instigator = { trigger_event = agotma_instigator_events.0004 }
			}
		}

		#Check if the story is still valid - Story is complete
		triggered_effect = {
			trigger = {
				scope:story = { has_variable = agotma_instigation_completed }
			}
			effect = {
				story_owner = { save_scope_as = instigator }
				scope:story.var:agotma_instigated_char = {
					save_scope_as = agotma_instigated_char
					add_character_flag = already_instigated
				}
				scope:story.var:agotma_war_target.holder = { save_scope_as = agotma_war_target_char }
				scope:story.var:agotma_war_target = { save_scope_as = agotma_war_target }
				scope:story = { end_story = yes }
			}
		}

		#####################
		### PLOT PROGRESS ###
		#####################

		#Send Clue Events
		triggered_effect = {
			trigger = {
				story_owner = {
					exists = scope:story.var:agotma_instigated_char
					scope:story.var:agotma_instigated_char = {
						OR = {
							is_alive = yes
							NOT = {
								has_character_flag = generic_secret_identity
								exists = scope:story.var:agotma_instigated_char.var:secret_identity_character
							}
						}
					}
					exists = scope:story.var:agotma_instigation_plot_points
					scope:story.var:agotma_instigation_plot_points >= 10
					NOT = { has_character_flag = instigation_event_sent }
					scope:story.var:agotma_instigated_char = { NOT = { is_at_war = yes } }
				}
			}
			effect = {
				story_owner = { save_scope_as = instigator }
				scope:story.var:agotma_instigated_char = { save_scope_as = agotma_instigated_char }
				scope:story.var:agotma_war_target.holder = { save_scope_as = agotma_war_target_char }
				scope:story.var:agotma_war_target = { save_scope_as = agotma_war_target }
				scope:instigator = {
					if = {
						limit = {
							scope:story.var:agotma_instigation_plot_points >= 10
							scope:story.var:agotma_instigation_plot_points < 60
							NOT = { has_character_flag = instigator_0005_sent }
						}
						add_character_flag = {
							flag = instigation_event_sent
							days = 10
						}
						add_character_flag = instigator_0005_sent
						trigger_event = agotma_instigator_events.0005
					}
					else_if = {
						limit = {
							scope:story.var:agotma_instigation_plot_points >= 60
							scope:story.var:agotma_instigation_plot_points < 99
							scope:story = { has_variable = instigation_diplomacy_approach }
							NOT = { has_character_flag = instigator_0550_sent }
						}
						add_character_flag = {
							flag = instigation_event_sent
							days = 10
						}
						add_character_flag = instigator_0550_sent
						trigger_event = agotma_instigator_events.0550
					}
					else_if = {
						limit = {
							scope:story.var:agotma_instigation_plot_points >= 60
							scope:story.var:agotma_instigation_plot_points < 99
							scope:story = { has_variable = instigation_martial_approach }
							NOT = { has_character_flag = instigator_0560_sent }
						}
						add_character_flag = {
							flag = instigation_event_sent
							days = 10
						}
						add_character_flag = instigator_0560_sent
						trigger_event = agotma_instigator_events.0560
					}
					else_if = {
						limit = {
							scope:story.var:agotma_instigation_plot_points >= 60
							scope:story.var:agotma_instigation_plot_points < 99
							scope:story = { has_variable = instigation_stewardship_approach }
							NOT = { has_character_flag = instigator_0570_sent }
						}
						add_character_flag = {
							flag = instigation_event_sent
							days = 10
						}
						add_character_flag = instigator_0570_sent
						trigger_event = agotma_instigator_events.0570
					}
					else_if = {
						limit = {
							scope:story.var:agotma_instigation_plot_points >= 60
							scope:story.var:agotma_instigation_plot_points < 99
							scope:story = { has_variable = instigation_intrigue_approach }
							NOT = { has_character_flag = instigator_0580_sent }
						}
						add_character_flag = {
							flag = instigation_event_sent
							days = 10
						}
						add_character_flag = instigator_0580_sent
						trigger_event = agotma_instigator_events.0580
					}
					else_if = {
						limit = {
							scope:story.var:agotma_instigation_plot_points >= 60
							scope:story.var:agotma_instigation_plot_points < 99
							scope:story = { has_variable = instigation_learning_approach }
							NOT = { has_character_flag = instigator_0590_sent }
						}
						add_character_flag = {
							flag = instigation_event_sent
							days = 10
						}
						add_character_flag = instigator_0590_sent
						trigger_event = agotma_instigator_events.0590
					}
					else_if = {
						limit = {
							scope:story.var:agotma_instigation_plot_points >= 60
							scope:story.var:agotma_instigation_plot_points < 99
							scope:story = { has_variable = instigation_accepted }
							NOT = { has_character_flag = instigator_0600_sent }
						}
						add_character_flag = {
							flag = instigation_event_sent
							days = 10
						}
						add_character_flag = instigator_0600_sent
						trigger_event = agotma_instigator_events.0600
					}
					else_if = {
						limit = {
							scope:story.var:agotma_instigation_plot_points >= 100
							NOT = { has_character_flag = instigator_0700_sent }
							scope:story.var:agotma_war_target.holder = { NOT = { is_at_war = yes } }
							scope:story.var:agotma_war_target.holder = { NOT = { is_at_war = yes } }
						}
						add_character_flag = {
							flag = instigation_event_sent
							days = 10
						}
						add_character_flag = instigator_0700_sent
						trigger_event = agotma_instigator_events.0700
					}
				}
			}
		}

		#Finish the story - Success
		triggered_effect = {
			trigger = {
				story_owner = {
					exists = scope:story.var:agotma_instigated_char
					scope:story.var:agotma_instigated_char = {
						OR = {
							is_alive = yes
							NOT = {
								has_character_flag = generic_secret_identity
								exists = scope:story.var:agotma_instigated_char.var:secret_identity_character
							}
						}
					}
					scope:story = { has_variable = agotma_ongoing_war }
					scope:story.var:agotma_instigated_char = { NOT = { is_at_war = yes } }
					NOT = { has_character_flag = instigation_event_sent }
					scope:story = { NOT = { has_variable = agotma_instigation_completed } }
					scope:story.var:agotma_war_target.holder = scope:story.var:agotma_instigated_char
				}
			}
			effect = {
				story_owner = { save_scope_as = instigator }
				scope:story.var:agotma_instigated_char = { save_scope_as = agotma_instigated_char }
				scope:story.var:agotma_war_target.holder = { save_scope_as = agotma_war_target_char }
				scope:story.var:agotma_war_target = { save_scope_as = agotma_war_target }
				scope:instigator = {
					add_character_flag = {
						flag = instigation_event_sent
						days = 10
					}
				}
				scope:story = { set_variable = agotma_instigation_completed }
				scope:agotma_instigated_char = {
					trigger_event = {
						id = agotma_instigator_events.0800
						days = 3
					}
				}
			}
		}
		#Finish the story - Failure
		triggered_effect = {
			trigger = {
				story_owner = {
					exists = scope:story.var:agotma_instigated_char
					scope:story.var:agotma_instigated_char = {
						OR = {
							is_alive = yes
							NOT = {
								has_character_flag = generic_secret_identity
								exists = scope:story.var:agotma_instigated_char.var:secret_identity_character
							}
						}
					}
					scope:story = { has_variable = agotma_ongoing_war }
					scope:story.var:agotma_instigated_char = { NOT = { is_at_war = yes } }
					NOT = { has_character_flag = instigation_event_sent }
					scope:story = { NOT = { has_variable = agotma_instigation_completed } }
					NOT = { scope:story.var:agotma_war_target.holder = scope:story.var:agotma_instigated_char }
				}
			}
			effect = {
				story_owner = { save_scope_as = instigator }
				scope:story.var:agotma_instigated_char = { save_scope_as = agotma_instigated_char }
				scope:story.var:agotma_war_target.holder = { save_scope_as = agotma_war_target_char }
				scope:story.var:agotma_war_target = { save_scope_as = agotma_war_target }
				scope:instigator = {
					add_character_flag = {
						flag = instigation_event_sent
						days = 10
					}
				}
				scope:story = { set_variable = agotma_instigation_completed }
			}
		}
	}

	### HALF MONTHLY
	effect_group = {
		days = 14

		### PLOT POINT GENERATION ###

		triggered_effect = {
			trigger = {
				story_owner = {
					exists = scope:story.var:agotma_instigated_char
					scope:story.var:agotma_instigated_char = {
						OR = {
							is_alive = yes
							NOT = {
								has_character_flag = generic_secret_identity
								exists = scope:story.var:agotma_instigated_char.var:secret_identity_character
							}
						}
					}
					exists = scope:story.var:agotma_instigated_char
					exists = scope:story.var:agotma_instigation_plot_points
					trigger_if = {
						limit = {
							NOT = { exists = scope:story.var:instigation_diplomacy_approach }
							NOT = { exists = scope:story.var:instigation_martial_approach }
							NOT = { exists = scope:story.var:instigation_stewardship_approach }
							NOT = { exists = scope:story.var:instigation_intrigue_approach }
							NOT = { exists = scope:story.var:instigation_learning_approach }
							NOT = { exists = scope:story.var:instigation_accepted }
						}
						scope:story.var:agotma_instigation_plot_points < 60
					}
					scope:story.var:agotma_instigated_char = { NOT = { is_at_war = yes } }
				}
			}
			effect = {
				story_owner = { save_scope_as = instigator }
				scope:story.var:agotma_instigated_char = { save_scope_as = agotma_instigated_char }
				scope:story.var:agotma_war_target.holder = { save_scope_as = agotma_war_target_char }
				scope:story.var:agotma_war_target = { save_scope_as = agotma_war_target }
				scope:story = {
					if = {
						limit = { scope:story.var:agotma_instigation_plot_points < 60 }
						random = {
							chance = {
								value = scope:instigator.intrigue
								multiply = 2
								max = 100
							}
							change_variable = {
								name = agotma_instigation_plot_points
								add = {
									value = scope:instigator.diplomacy
									min = 1
									max = 59
								}
							}
						}
					}
					else_if = {
						limit = { scope:story.var:agotma_instigation_plot_points < 90 }
						if = {
							limit = {
								OR = {
									exists = scope:story.var:instigation_diplomacy_approach
									exists = scope:story.var:instigation_martial_approach
									exists = scope:story.var:instigation_stewardship_approach
									exists = scope:story.var:instigation_intrigue_approach
									exists = scope:story.var:instigation_learning_approach
									exists = scope:story.var:instigation_accepted
								}
							}
							random = {
								chance = {
									value = scope:instigator.intrigue
									multiply = 2
									max = 100
								}
								change_variable = {
									name = agotma_instigation_plot_points
									add = {
										value = scope:instigator.diplomacy
										min = 1
										max = 10
									}
								}
							}
						}
					}
					else = {
						if = {
							limit = { exists = scope:story.var:instigation_can_be_finished }
							random = {
								chance = {
									value = scope:instigator.intrigue
									multiply = 2
									max = 100
								}
								change_variable = {
									name = agotma_instigation_plot_points
									add = {
										value = scope:instigator.diplomacy
										min = 1
										max = 10
									}
								}
							}
						}
					}
				}
			}
		}
	}
}