﻿#Note that record changes for direct transitions form friend/BF to rival/nemesis are handled in esr_on_x_to_x in esr_on_actions.txt
#      /\
#     /  \ Life long relation
#   _/_/\ \
#     /  \
#    /    \ Normal Relation

on_set_relation_friend = {
    on_actions = {
        esr_record_on_become_friend
    }  
}

on_remove_relation_friend = {
    on_actions = {
        esr_record_on_remove_friend
    }  
}

on_death_relation_friend = {
    on_actions = {
        esr_record_on_remove_friend
    }  
}

on_set_relation_best_friend = {
    on_actions = {
        esr_record_on_become_best_friend
    }
}

on_remove_relation_best_friend = {
    on_actions = {
        esr_record_on_remove_friend
        esr_record_on_remove_best_friend
    } 
}

on_death_relation_best_friend = {
    on_actions = {
        esr_record_on_remove_friend
        esr_record_on_remove_best_friend
    } 
}

on_set_relation_rival = {
    on_actions = {
        esr_record_on_become_rival
    }  
}

on_remove_relation_rival = {
    on_actions = {
        esr_record_on_remove_rival
    }  
}

on_death_relation_rival = {
    on_actions = {
        esr_record_on_remove_rival
    }  
}

on_set_relation_nemesis = {
    on_actions = {
        esr_record_on_become_nemesis
    }
}

on_remove_relation_nemesis = {
    on_actions = {
        esr_record_on_remove_rival
        esr_record_on_remove_nemesis
    } 
}

on_death_relation_nemesis = {
    on_actions = {
        esr_record_on_remove_rival
        esr_record_on_remove_nemesis
    } 
}

on_set_relation_lover = {
    on_actions = {
        esr_record_on_become_lover
    }  
}

on_remove_relation_lover = {
    on_actions = {
        esr_record_on_remove_lover
    }  
}

on_death_relation_lover = {
    on_actions = {
        esr_record_on_remove_lover
    }  
}

on_remove_relation_soulmate = {
    on_actions = {
        esr_record_on_remove_lover
    } 
}

on_death_relation_soulmate = {
    on_actions = {
        esr_record_on_remove_lover
    } 
}

### Others

on_vassal_gained = {
    on_actions = {
        esr_record_on_vassal_gained
    }
}

on_title_gain_inheritance = {
    on_actions = {
        esr_on_title_gain_inheritance
    }
}

on_game_start = {
    on_actions = {
        esr_record_on_game_start
    }
}

### Others/

esr_record_on_become_friend = {
    effect = {
        if = {
            limit = {scope:target = {is_alive = yes}}
            scope:target = {
                add_to_variable_list = {
                    name = esr_friends_list
                    target = root
                }
            }
        }
        if = {
            limit = {root = {is_alive = yes}}
            root = {
                add_to_variable_list = {
                    name = esr_friends_list
                    target = scope:target
                }
            }
        }
    }
}

esr_record_on_remove_friend = {
    effect = {
        if = {
            limit = {scope:target = {is_alive = yes}}
            scope:target = {
                remove_list_variable = {
                    name = esr_friends_list
                    target = root
                }
            }
        }
        if = {
            limit = {root = {is_alive = yes}}
            root = {
                remove_list_variable = {
                    name = esr_friends_list
                    target = scope:target
                }
            }
        }
    }
}

esr_record_on_become_best_friend = {
    effect = {
        if = {
            limit = {scope:target = {is_alive = yes}}
            scope:target = {
                add_to_variable_list = {
                    name = esr_best_friend_list
                    target = root
                }
            }
        }
        if = {
            limit = {root = {is_alive = yes}}
            root = {
                add_to_variable_list = {
                    name = esr_best_friend_list
                    target = scope:target
                }
            }
        }
    }
}

esr_record_on_remove_best_friend = {
    effect = {
        if = {
            limit = {scope:target = {is_alive = yes}}
            scope:target = {
                remove_list_variable = {
                    name = esr_best_friend_list
                    target = root
                }
            }
        }
        if = {
            limit = {root = {is_alive = yes}}
            root = {
                remove_list_variable = {
                    name = esr_best_friend_list
                    target = scope:target
                }
            }
        }
    }
}

esr_record_on_become_rival = {
    effect = {
        if = {
            limit = {scope:target = {is_alive = yes}}
            scope:target = {
                add_to_variable_list = {
                    name = esr_rivals_list
                    target = root
                }
            }
        }
        if = {
            limit = {root = {is_alive = yes}}
            root = {
                add_to_variable_list = {
                    name = esr_rivals_list
                    target = scope:target
                }
            }
        }
    }
}

esr_record_on_remove_rival = {
    effect = {
        if = {
            limit = {scope:target = {is_alive = yes}}
            scope:target = {
                remove_list_variable = {
                    name = esr_rivals_list
                    target = root
                }
            }
        }
        if = {
            limit = {root = {is_alive = yes}}
            root = {
                remove_list_variable = {
                    name = esr_rivals_list
                    target = scope:target
                }
            }
        }
    }
}

esr_record_on_become_nemesis = {
    effect = {
        if = {
            limit = {scope:target = {is_alive = yes}}
            scope:target = {
                add_to_variable_list = {
                    name = esr_nemesis_list
                    target = root
                }
            }
        }
        if = {
            limit = {root = {is_alive = yes}}
            root = {
                add_to_variable_list = {
                    name = esr_nemesis_list
                    target = scope:target
                }
            }
        }
    }
}

esr_record_on_remove_nemesis = {
    effect = {
        if = {
            limit = {scope:target = {is_alive = yes}}
            scope:target = {
                remove_list_variable = {
                    name = esr_nemesis_list
                    target = root
                }
            }
        }
        if = {
            limit = {root = {is_alive = yes}}
            root = {
                remove_list_variable = {
                    name = esr_nemesis_list
                    target = scope:target
                }
            }
        }
    }
}

esr_record_on_become_lover = {
    effect = {
        if = {
            limit = {scope:target = {is_alive = yes}}
            scope:target = {
                add_to_variable_list = {
                    name = esr_lovers_list
                    target = root
                }
            }
        }
        if = {
            limit = {root = {is_alive = yes}}
            root = {
                add_to_variable_list = {
                    name = esr_lovers_list
                    target = scope:target
                }
            }
        }
    }
}

esr_record_on_remove_lover = {
    effect = {
        if = {
            limit = {scope:target = {is_alive = yes}}
            scope:target = {
                remove_list_variable = {
                    name = esr_lovers_list
                    target = root
                }
            }
        }
        if = {
            limit = {root = {is_alive = yes}}
            root = {
                remove_list_variable = {
                    name = esr_lovers_list
                    target = scope:target
                }
            }
        }
    }
}

esr_record_on_vassal_gained = {
    trigger = {
        exists = root
        exists = scope:vassal
        root = {is_alive = yes}
        scope:vassal = {is_alive = yes}
    }
    effect = {
        scope:vassal = {
            set_variable = {
                name = esr_most_recent_liege
                value = root
            }
        }
    }
}

esr_on_title_gain_inheritance = {
    trigger = {
        exists = root
        root = {is_alive = yes}
    }
    effect = {
        root = {
            set_variable = {
                name = esr_most_recent_liege
                value = root
            }
        }
    }
}

esr_record_on_game_start = {
    effect = {
        every_ruler = {
            limit = {
                is_independent_ruler = no
            }
            set_variable = {
                name = esr_most_recent_liege
                value = this.liege
            }
        }
    }
}
