﻿dr_diarch_story = {

	on_setup = {
		
	}

	on_end = {

	}

	#effect_group = {
		#months = 1

		#triggered_effect = {
			#trigger = {
				#always = no
			#}
			#effect = {
				#story_owner = {
				#}
			#}
		#}
	#}

	effect_group = {
		months = 1

		triggered_effect = {
			trigger = {
				story_owner = {
					exists = this
					exists = diarch
					has_active_diarchy = yes
				}
			}
			effect = {
				story_owner.diarch = {
					if = { # Do not allow diarch whose liege is not you to hold position (Fix for vanilla bug)
						limit = {
							#always = no
							OR = {
								NOT = { exists = liege }
								liege = {
									NOT = {this = root.story_owner}
								}
							}
						}
						root.story_owner = {
							end_diarchy = yes
							start_diarchy = temporary_regency
						}
					}					
				}
			}
		}
	}	

	effect_group = {
		months = 1
		
		triggered_effect = { #Player gets monthly Swing update similar to vanilla
			trigger = {
				#always = yes #For performance testing
				story_owner = {
					exists = this
					exists = diarch
					has_active_diarchy = yes
					OR = {
						is_ai = no
						any_player = {
							is_vassal_of = prev
						}
					}
				}
			}
			effect = {
				story_owner = {
					dr_update_swing_value = yes
					dr_monthly_swing_change = yes
					dr_monthly_swing_record = yes
					diarch = {
						if = {
							limit = {
								has_variable = dr_diarch_rule_duration
							}
							change_variable = {
								name = dr_diarch_rule_duration
								add = 1
							}
						}
						else = {
							set_variable = {
								name = dr_diarch_rule_duration
								value = 1
							}
						}
					}
				}
			}
		}
	}

	effect_group = { #For AI that doesn't directly engage in diarchy mechanics with a palyer, update swing every 3 months for performance
		months = 3
		
		triggered_effect = {
			trigger = {
				#always = yes #For performance testing
				story_owner = {
					exists = this
					exists = diarch
					has_active_diarchy = yes
					is_ai = yes
					#diarch = {is_ai = yes}
					NOT = {
						any_player = {
							is_vassal_of = prev
						}
					}
				}
			}
			effect = {
				story_owner = {
					dr_update_swing_value = yes
					dr_monthly_swing_change_ai = yes
					dr_monthly_swing_record = yes
					diarch = {
						if = {
							limit = {
								has_variable = dr_diarch_rule_duration
							}
							change_variable = {
								name = dr_diarch_rule_duration
								add = 3
							}
						}
						else = {
							set_variable = {
								name = dr_diarch_rule_duration
								value = 3
							}
						}						
					}
				}
			}
		}
	}

	on_owner_death = {
		end_story = yes
	}
}

dr_swing_residual_story = {
	on_setup = {
		story_owner = {
			if = {
				limit = {
					exists = this
					has_variable = dr_current_swing
				}
				set_variable = {
					name = dr_swing_residual
					value = var:dr_current_swing
				}
			}
		}
	}

	effect_group = {
		months = 1
		
		triggered_effect = {
			trigger = {
				story_owner = {
					exists = this
					is_independent_ruler = yes
				}
			}
			effect = {
				root = { end_story = yes }
			}
		}
	}

	effect_group = {
		months = 1
		
		triggered_effect = {
			trigger = {
				story_owner = {
					exists = this
					exists = liege
					liege = { is_ai = no }
				}
			}
			effect = {
				story_owner = {
					save_scope_value_as = {
						name = dr_swing_residual_tick
						value = dr_swing_residual_tick
					}
					set_variable = {
						name = dr_swing_residual
						value = scope:dr_swing_residual_tick
					}
					if = {
						limit = {
							OR = {
								NOT = { liege = { this = root.var:rv_last_diarchy_liege } }
								dr_swing_residual = 0
							}
						}
						root = { end_story = yes }
					}
				}
			}
		}
	}

	effect_group = {
		months = 3
		
		triggered_effect = {
			trigger = {
				story_owner = {
					exists = this
					exists = liege
					liege = { is_ai = yes }
				}
			}
			effect = {
				story_owner = {
					save_scope_value_as = {
						name = dr_swing_residual_triple_tick
						value = dr_swing_residual_triple_tick
					}
					set_variable = {
						name = dr_swing_residual
						value = scope:dr_swing_residual_triple_tick
					}
					if = {
						limit = {
							OR = {
								NOT = { liege = { this = root.var:rv_last_diarchy_liege } }
								dr_swing_residual = 0
							}
						}
						root = { end_story = yes }
					}
				}
			}
		}
	}

	on_end = {
		story_owner = {
			remove_variable = dr_swing_residual
		}
	}

	on_owner_death = {
		end_story = yes
	}
}
