﻿
on_entered_diarchy = {
    on_actions = {
        dr_on_entered_diarchy
    }
}

on_diarch_change = {
    on_actions = {
        dr_on_diarch_change
    }
}

on_left_diarchy = {
    on_actions = {
        dr_on_left_diarchy
    }
}

on_alliance_added = {
    on_actions = {
        dr_on_alliance_change
    }
}

on_alliance_removed = {
    on_actions = {
        dr_on_alliance_change
    }
}

on_rank_up = {
    on_actions = {
        dr_on_rank_change
    }
}

on_rank_down = {
    on_actions = {
        dr_on_rank_change
    }
}

on_imprison = {
    on_actions = {
        dr_on_imprison_change
    }
}

on_release_from_prison = {
    on_actions = {
        dr_on_imprison_change
    }
}

dr_on_entered_diarchy = {
    effect = {
        if = {
            limit = { #Remeber to copy this
                dr_ui_trigger_liege = yes
                #exists = diarch
                diarch = { dr_ui_trigger_diarch = yes }
            }
            set_diarchy_swing = diarch.dr_initial_swing
            diarch = {
                set_variable = {
                    name = dr_swing_value
                    value = dr_swing_value
                }
                set_variable = {
                    name = dr_swing_value_beginning
                    value = dr_swing_value
                }
                set_variable = {
                    name = dr_balance_swing
                    value = dr_balance_swing
                }
                if = {
                    limit = {always = yes} # For performance testing
                    set_variable = {
                        name = dr_liege_initial_military_power
                        value = liege.dr_military_power_liege
                    }
                    set_variable = {
                        name = dr_diarch_initial_military_power
                        value = dr_military_power_diarch
                    }
                    set_variable = {
                        name = dr_diarch_initial_military_swing
                        value = liege.dr_military_power_swing
                    }
                    set_variable = {
                        name = dr_liege_initial_rank
                        value = liege.highest_held_title_tier
                    }
                    set_variable = {
                        name = dr_diarch_initial_rank
                        value = highest_held_title_tier
                    }
                    set_variable = {
                        name = dr_liege_initial_prestige
                        value = liege.prestige_level
                    }
                    set_variable = {
                        name = dr_diarch_initial_prestige
                        value = prestige_level
                    }
                    set_variable = {
                        name = dr_liege_initial_piety
                        value = liege.piety_level
                    }
                    set_variable = {
                        name = dr_diarch_initial_piety
                        value = piety_level
                    }
                    set_variable = {
                        name = dr_liege_initial_influence
                        value = liege.influence_level
                    }
                    set_variable = {
                        name = dr_diarch_initial_influence
                        value = influence_level
                    }
                    set_variable = {
                        name = dr_initial_vassal_standing_diarch
                        value = dr_vassal_standing_diarch
                    }
                    set_variable = {
                        name = dr_initial_vassal_standing_liege
                        value = dr_vassal_standing_liege
                    }
                    set_variable = {
                        name = dr_initial_vassal_standing_difference
                        value = dr_vassal_standing
                    }
                    set_variable = {
                        name = dr_initial_crown_authority
                        value = dr_crown_authority
                    }
                    set_variable = {
                        name = dr_inital_years_reigned
                        value = liege.primary_title.title_held_years
                    }
                    set_variable = {
                        name = dr_inital_liege_civil_service_importance_swing
                        value = liege.dr_civil_service_importance_initial_swing
                    }
                    set_variable = {
                        name = dr_inital_liege_civil_service_importance
                        value = liege.dr_civil_service_importance_ui
                    }
                    set_variable = {
                        name = dr_inital_liege_imprisonment_state
                        value = liege.dr_imprisonment_state
                    }
                    set_variable = {
                        name = dr_inital_diarch_imprisonment_state
                        value = dr_imprisonment_state
                    }
                    set_variable = {
                        name = dr_inital_councillor_state
                        value = dr_councillor_state
                    }
                    set_variable = {
                        name = dr_inital_diarch_relation
                        value = dr_diarch_relation_swing
                    }
                    set_variable = {
                        name = dr_inheritance_swing_initial
                        value = dr_diarch_inheritance_swing
                    }
                }

                if = {
                    limit = {
                        any_owned_story = {
                            story_type = dr_swing_residual_story
                        }
                    }
                    random_owned_story = {
                        limit = {
                            story_type = dr_swing_residual_story
                        }
                        end_story = yes
                    }
                }
            }
            create_story = {
                type = dr_diarch_story
                save_scope_as = dr_diarch_story
            }
        }
    }
}

dr_on_diarch_change = {
    effect = {
        random_owned_story = {
            limit = { 
                story_type = dr_diarch_story
            }
            end_story = yes
        }

        if = {
            limit = {
                dr_ui_trigger_liege = yes
                #exists = diarch
                diarch = { dr_ui_trigger_diarch = yes }
            }
            if = {
                limit = {
                    liege ?= {
                        has_diarchy_active_parameter = diarchy_type_is_entrenched_regency
                    }
                }
                set_diarchy_type = temporary_regency
            }
            set_diarchy_swing = diarch.dr_initial_swing
            diarch = {
                set_variable = {
                    name = dr_swing_value
                    value = dr_swing_value
                }
                set_variable = {
                    name = dr_swing_value_beginning
                    value = dr_swing_value
                }
                set_variable = {
                    name = dr_balance_swing
                    value = dr_balance_swing
                }
                if = {
                    limit = {always = yes} # For performance testing
                    set_variable = {
                        name = dr_liege_initial_military_power
                        value = liege.dr_military_power_liege
                    }
                    set_variable = {
                        name = dr_diarch_initial_military_power
                        value = dr_military_power_diarch
                    }
                    set_variable = {
                        name = dr_diarch_initial_military_swing
                        value = liege.dr_military_power_swing
                    }
                    set_variable = {
                        name = dr_liege_initial_rank
                        value = liege.highest_held_title_tier
                    }
                    set_variable = {
                        name = dr_diarch_initial_rank
                        value = highest_held_title_tier
                    }
                    set_variable = {
                        name = dr_liege_initial_prestige
                        value = liege.prestige_level
                    }
                    set_variable = {
                        name = dr_diarch_initial_prestige
                        value = prestige_level
                    }
                    set_variable = {
                        name = dr_liege_initial_piety
                        value = liege.piety_level
                    }
                    set_variable = {
                        name = dr_diarch_initial_piety
                        value = piety_level
                    }
                    set_variable = {
                        name = dr_liege_initial_influence
                        value = liege.influence_level
                    }
                    set_variable = {
                        name = dr_diarch_initial_influence
                        value = influence_level
                    }
                    set_variable = {
                        name = dr_initial_vassal_standing_diarch
                        value = dr_vassal_standing_diarch
                    }
                    set_variable = {
                        name = dr_initial_vassal_standing_liege
                        value = dr_vassal_standing_liege
                    }
                    set_variable = {
                        name = dr_initial_vassal_standing_difference
                        value = dr_vassal_standing
                    }
                    set_variable = {
                        name = dr_initial_crown_authority
                        value = dr_crown_authority
                    }
                    set_variable = {
                        name = dr_inital_years_reigned
                        value = liege.primary_title.title_held_years
                    }
                    set_variable = {
                        name = dr_inital_liege_civil_service_importance_swing
                        value = liege.dr_civil_service_importance_initial_swing
                    }
                    set_variable = {
                        name = dr_inital_liege_civil_service_importance
                        value = liege.dr_civil_service_importance_ui
                    }
                    set_variable = {
                        name = dr_inital_liege_imprisonment_state
                        value = liege.dr_imprisonment_state
                    }
                    set_variable = {
                        name = dr_inital_diarch_imprisonment_state
                        value = dr_imprisonment_state
                    }
                    set_variable = {
                        name = dr_inital_councillor_state
                        value = dr_councillor_state
                    }
                    set_variable = {
                        name = dr_inital_diarch_relation
                        value = dr_diarch_relation_swing
                    }
                    set_variable = {
                        name = dr_inheritance_swing_initial
                        value = dr_diarch_inheritance_swing
                    }
                }
                if = {
                    limit = {
                        any_owned_story = {
                            story_type = dr_swing_residual_story
                        }
                    }
                    random_owned_story = {
                        limit = {
                            story_type = dr_swing_residual_story
                        }
                        end_story = yes
                    }
                }
            }
            create_story = {
                type = dr_diarch_story
                save_scope_as = dr_diarch_story
            }
        }

        if = {
            limit = {
                exists = scope:old_diarch
                scope:old_diarch = {is_alive = yes}
            }
            scope:old_diarch = { #Remeber to copy this
                if = {
                    limit = {
                        exists = liege
                        liege = { this = root }
                    }
                    create_story = {
                        type = dr_swing_residual_story
                        save_scope_as = dr_swing_residual_story
                    }
                    scope:dr_swing_residual_story = {
                        set_variable = {
                            name = rv_last_diarchy_liege
                            value = root
                        }   
                    }
                }        
                remove_variable = dr_swing_value
                remove_variable = dr_swing_value_beginning
                remove_variable = dr_current_swing
                remove_variable = dr_balance_swing
                remove_variable = dr_liege_initial_military_power
                remove_variable = dr_diarch_initial_military_power
                remove_variable = dr_diarch_initial_military_swing
                remove_variable = dr_liege_initial_rank
                remove_variable = dr_diarch_initial_rank
                remove_variable = dr_liege_initial_prestige
                remove_variable = dr_diarch_initial_prestige
                remove_variable = dr_liege_initial_piety
                remove_variable = dr_diarch_initial_piety
                remove_variable = dr_liege_initial_influence
                remove_variable = dr_diarch_initial_influence
                remove_variable = dr_initial_vassal_standing_difference
                remove_variable = dr_initial_vassal_standing_diarch
                remove_variable = dr_initial_vassal_standing_liege
                remove_variable = dr_initial_crown_authority
                remove_variable = dr_inital_years_reigned
                remove_variable = dr_inital_liege_civil_service_importance_swing
                remove_variable = dr_inital_liege_civil_service_importance
                remove_variable = dr_inital_liege_imprisonment_state
                remove_variable = dr_inital_diarch_imprisonment_state
                remove_variable = dr_inital_councillor_state
                remove_variable = dr_inital_diarch_relation
                remove_variable = dr_inheritance_swing_initial
            }
        }
    }
}

dr_on_left_diarchy = {
    effect = {
        random_owned_story = {
            limit = { 
                story_type = dr_diarch_story
            }
            end_story = yes
        }
        if = {
            limit = {
                exists = scope:old_diarch
                scope:old_diarch = {is_alive = yes} 
            }
            scope:old_diarch = {
                if = {
                    limit = {
                        exists = liege
                        liege = { this = root }
                    }
                    create_story = {
                        type = dr_swing_residual_story
                        save_scope_as = dr_swing_residual_story
                    }
                    scope:dr_swing_residual_story = {
                        set_variable = {
                            name = rv_last_diarchy_liege
                            value = root
                        }   
                    }
                }
                remove_variable = dr_swing_value
                remove_variable = dr_swing_value_beginning
                remove_variable = dr_current_swing
                remove_variable = dr_balance_swing
                remove_variable = dr_liege_initial_military_power
                remove_variable = dr_diarch_initial_military_power
                remove_variable = dr_diarch_initial_military_swing
                remove_variable = dr_liege_initial_rank
                remove_variable = dr_diarch_initial_rank
                remove_variable = dr_liege_initial_prestige
                remove_variable = dr_diarch_initial_prestige
                remove_variable = dr_liege_initial_piety
                remove_variable = dr_diarch_initial_piety
                remove_variable = dr_liege_initial_influence
                remove_variable = dr_diarch_initial_influence
                remove_variable = dr_initial_vassal_standing_difference
                remove_variable = dr_initial_vassal_standing_diarch
                remove_variable = dr_initial_vassal_standing_liege
                remove_variable = dr_initial_crown_authority
                remove_variable = dr_inital_years_reigned
                remove_variable = dr_inital_liege_civil_service_importance_swing
                remove_variable = dr_inital_liege_civil_service_importance
                remove_variable = dr_inital_liege_imprisonment_state
                remove_variable = dr_inital_diarch_imprisonment_state
                remove_variable = dr_inital_councillor_state
                remove_variable = dr_inital_diarch_relation
                remove_variable = dr_inheritance_swing_initial
            }
        }
    }
}

dr_on_alliance_change = {
    effect = {
        scope:first = {
            dr_update_swing_double_check_effect = yes
        }

        scope:second = {
            dr_update_swing_double_check_effect = yes
        }
    }
}

dr_on_rank_change = {
    effect = {
        dr_update_swing_double_check_effect = yes
    }
}

dr_on_imprison_change = {
    effect = {
        dr_update_swing_double_check_effect = yes
    }
}

