﻿vta_setting_cb = {
    scope = character

    saved_scopes = {
		war_value
	}

    effect = {
        save_scope_as = actor
        switch = {
            trigger = scope:war_value
            # Religious war on county
            1 = { vta_setting_cb_vars = { VARNAME = vta_minor_religious_war } }
            # Religious war on duchy
            2 = { vta_setting_cb_vars = { VARNAME = vta_religious_war } }
            # Religious war on kingdom
            3 = { vta_setting_cb_vars = { VARNAME = vta_major_religious_war } }
            # Claim on county
            4 = { vta_setting_cb_vars = { VARNAME = vta_claim_cb_county } }
            # Claim on duchy
            5 = { vta_setting_cb_vars = { VARNAME = vta_claim_cb_duchy } }
            # Claim on kingdom
            6 = { vta_setting_cb_vars = { VARNAME = vta_claim_cb_kingdom } }
            # Claim on Empire
            7 = { vta_setting_cb_vars = { VARNAME = vta_claim_cb_empire } }
            # Conquest on County
            8 = { vta_setting_cb_vars = { VARNAME = vta_county_conquest_cb } }
            # Conquest on Duchy
            9 = { vta_setting_cb_vars = { VARNAME = vta_duchy_conquest_cb } }
            # Invasion
            10 = { vta_setting_cb_vars = { VARNAME = vta_invasion_war } }
            # Ducal conquest
            11 = { vta_setting_cb_vars = { VARNAME = vta_ducal_conquest_cb } }
            # Norman conquest
            12 = { vta_setting_cb_vars = { VARNAME = vta_norman_conquest_cb } }
            # Norwegian Invasion
            13 = { vta_setting_cb_vars = { VARNAME = vta_norwegian_invasion_cb } }
            # De Jure on County
            14 = { vta_setting_cb_vars = { VARNAME = vta_individual_county_de_jure_cb } }
            # De jure on Duchy
            15 = { vta_setting_cb_vars = { VARNAME = vta_individual_duchy_de_jure_cb } }
            # De Jure
            16 = { vta_setting_cb_vars = { VARNAME = vta_de_jure_cb } }
            # Claimant Faction
            17 = { vta_setting_cb_vars = { VARNAME = vta_claimant_faction_war } }
            # Undirected GHW
            19 = { vta_setting_cb_vars = { VARNAME = vta_undirected_great_holy_war } }
            # Directed GHW
            20 = { vta_setting_cb_vars = { VARNAME = vta_directed_great_holy_war } }
            # Tribal Subjugation
            21 = { vta_setting_cb_vars = { VARNAME = vta_tribal_subjugation_cb } }
            # Sons of Lothbrok invasion
            22 = { vta_setting_cb_vars = { VARNAME = vta_sons_of_lothbrok_invasion_cb } }
            # County Struggle
            23 = { vta_setting_cb_vars = { VARNAME = vta_county_struggle_cb } }
        }
    }
}

vta_potential_war_title = {
    scope = character

    saved_scopes = {
		target_title
        is_selected
        is_click
	}

    effect = {
        save_scope_as = actor
        # Remove title from list, when deselecting one
        if = {
            limit = {
                NOT = { always = scope:is_selected }
                exists = scope:target_title
                has_variable_list = vta_war_target_title
                is_target_in_variable_list = { name = vta_war_target_title target = scope:target_title }
            }
            remove_list_variable = {
                name = vta_war_target_title
                target = scope:target_title
            }
        }
        # Reset target title, if only one title can be selected
        if = {
            limit = {
                always = scope:is_selected
                AND = {
                    NOR = {
                        has_character_flag = de_jure_cb
                        has_character_flag = county_struggle_cb
                    }
                    OR = {
                        NOT = { has_character_flag = claim_cb }
                        NOT = { scope:actor.culture = { has_innovation = innovation_divine_right } }
                        has_variable_list = vta_claimants
                    }
                    OR = {
                        NOT = { has_character_flag = claim_cb }
                        NOT = { scope:actor.culture = { has_innovation = innovation_rightful_ownership } }
                        NOT = { has_variable_list = vta_claimants }
                    }
                }
            }
            clear_variable_list = vta_war_target_title
        }
        # Was a manual click and has no more title selected => clear affected vassal lists
        if = {
            limit = {
                always = scope:is_click
                NOT = { has_variable_list = vta_war_target_title }
            }
            clear_variable_list = vta_lose_land
            clear_variable_list = vta_change_liege
        }
        if = {
            limit = {
                OR = {
                    scope:is_selected = yes
                    has_variable_list = vta_war_target_title
                }
                has_variable = selected_war_defender
                exists = scope:target_title
            }
            if = {
                limit = { always = scope:is_selected }
                add_to_variable_list = {
                    name = vta_war_target_title
                    target = scope:target_title
                }
            }
            # Set claimants
            if = {
                limit = {
                    OR = {
                        has_character_flag = individual_county_de_jure_cb
                        has_character_flag = individual_duchy_de_jure_cb
                    }
                    vta_should_event_trigger = {
                        WAR = scope:actor
                        TITLE = scope:target_title
                        TRIGGER = has_character_flag
                    }
                }
                # Remove claimants list
                clear_variable_list = vta_claimants
                # Add claimants to list
                if = {
                    limit = {
                        always = scope:is_selected
                    }
                    scope:target_title = {
                        if = {
                            limit = {
                                duchy = { is_title_created = yes }
                            }
                            duchy = {
                                if = {
                                    limit = {
                                        exists = this.holder
                                        NOT = { this.holder = scope:actor }
                                        this.holder = { is_vassal_or_below_of = scope:actor }
                                        this.holder = { save_temporary_scope_as = this_claimant }
                                        NOT = { is_target_in_variable_list = { name = vta_claimants target = scope:this_claimant } }
                                    }
                                    scope:actor = {
                                        add_to_variable_list = {
                                            name = vta_claimants
                                            target = scope:this_claimant
                                        }
                                    }
                                }
                            }
                        }
                        else_if = {
                            limit = { kingdom = { is_title_created = yes } }
                            kingdom = {
                                if = {
                                    limit = {
                                        exists = this.holder
                                        NOT = { this.holder = scope:actor }
                                        this.holder = { is_vassal_or_below_of = scope:actor }
                                        this.holder = { save_temporary_scope_as = this_claimant }
                                        NOT = { is_target_in_variable_list = { name = vta_claimants target = scope:this_claimant } }
                                    }
                                    scope:actor = {
                                        add_to_variable_list = {
                                            name = vta_claimants
                                            target = scope:this_claimant
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }

            var:selected_war_defender = { save_scope_as = defender }
            clear_variable_list = vta_lose_land
            clear_variable_list = vta_change_liege
            scope:actor = {
                every_in_list = {
                    variable = vta_war_target_title
                    save_scope_as = title
                    # GHW
                    if = {
                        limit = {
                            scope:actor = {
                                OR = {
                                    has_character_flag = undirected_great_holy_war
                                    has_character_flag = directed_great_holy_war
                                }
                            }
                            vta_should_event_trigger = {
                                WAR = scope:actor
                                TITLE = scope:title
                                TRIGGER = has_character_flag
                            }
                        }
                        every_ruler = {
                            limit = {
                                is_independent_ruler = yes
                                NOT = { this = scope:actor }
                                any_sub_realm_county = {
                                    target_is_de_jure_liege_or_above = scope:title
                                }
                            }
                            save_temporary_scope_as = ruler
                            if = {
                                limit = { NOT = { this = scope:defender } }
                                vta_setup_for_war = {
                                    WAR = scope:actor
                                    ATTACKER = scope:actor
                                    DEFENDER = scope:ruler
                                    CHARACTER = scope:ruler
                                    TITLE = scope:title
                                    TRIGGER = has_character_flag
                                }
                            }
                            every_vassal_or_below = {
                                limit = {
                                    OR = {
                                        any_sub_realm_county = {
                                            target_is_de_jure_liege_or_above = scope:title
                                        }
                                        AND = {
                                            exists = scope:title.holder
                                            scope:title.holder = {
                                                OR = {
                                                    this = PREV
                                                    is_vassal_or_below_of = PREV
                                                }
                                            }
                                        }
                                    }
                                }
                                save_temporary_scope_as = character
                                vta_setup_for_war = {
                                    WAR = scope:actor
                                    ATTACKER = scope:actor
                                    DEFENDER = scope:defender
                                    CHARACTER = scope:character
                                    TITLE = scope:title
                                    TRIGGER = has_character_flag
                                }
                            }
                        }
                    }
                    else_if = {
                        limit = {
                            vta_should_event_trigger = {
                                WAR = scope:actor
                                TITLE = scope:title
                                TRIGGER = has_character_flag
                            }
                        }
                        scope:defender = {
                            every_vassal_or_below = {
                                limit = {
                                    OR = {
                                        any_sub_realm_county = {
                                            target_is_de_jure_liege_or_above = scope:title
                                        }
                                        AND = {
                                            exists = scope:title.holder
                                            scope:title.holder = {
                                                OR = {
                                                    this = PREV
                                                    is_vassal_or_below_of = PREV
                                                }
                                            }
                                        }
                                    }
                                }
                                save_temporary_scope_as = character
                                vta_setup_for_war = {
                                    WAR = scope:actor
                                    ATTACKER = scope:actor
                                    DEFENDER = scope:defender
                                    CHARACTER = scope:character
                                    TITLE = scope:title
                                    TRIGGER = has_character_flag
                                }
                            }
                        }
                    }
                }
            }
            vta_clean_up = { WAR = scope:actor }
            # Add characters to vta_lose_land, if their vassal_or_below loses land
            if = {
                limit = {
                    has_variable_list = vta_lose_land
                }
                scope:defender = {
                    every_vassal_or_below = {
                        limit = {
                            save_temporary_scope_as = vassal
                            NOT = { scope:actor = { is_target_in_variable_list = { name = vta_lose_land target = scope:vassal } } }
                            any_vassal_or_below = {
                                scope:actor = { is_target_in_variable_list = { name = vta_lose_land target = PREV } }
                            }
                        }
                        scope:actor = {
                            add_to_variable_list = {
                                name = vta_lose_land
                                target = PREV
                            }
                        }
                    }
                }
            }
        }
    }
}

vta_potential_war_cb = {
    scope = character

    saved_scopes = {
		selected_cb
	}

    effect = {
        save_scope_as = actor
        switch = {
            trigger = scope:selected_cb
            1 = { add_character_flag = minor_religious_war }
            2 = { add_character_flag = religious_war }
            3 = { add_character_flag = major_religious_war }
            4 = { add_character_flag = claim_cb }
            8 = { add_character_flag = county_conquest_cb }
            9 = { add_character_flag = duchy_conquest_cb }
            10 = { add_character_flag = invasion_war }
            11 = { add_character_flag = ducal_conquest_cb }
            12 = { add_character_flag = norman_conquest_cb } # unused, listed to suppress error
            13 = { add_character_flag = norwegian_invasion_cb } # unused, listed to suppress error
            14 = { add_character_flag = individual_county_de_jure_cb }
            15 = { add_character_flag = individual_duchy_de_jure_cb }
            16 = {
                add_character_flag = de_jure_cb
                if = {
                    limit = {
                        vta_should_event_trigger = {
                            WAR = scope:actor
                            TITLE = scope:title
                            TRIGGER = has_character_flag
                        }
                    }
                    var:selected_war_defender = { save_temporary_scope_as = defender }
                    scope:actor = {
                        every_sub_realm_title = {
                            limit = {
                                save_temporary_scope_as = de_jure_title
                                tier >= tier_duchy
                                scope:defender = {
                                    any_sub_realm_county = {
                                        target_is_de_jure_liege_or_above = scope:de_jure_title
                                    }
                                }
                            }
                            save_temporary_scope_as = de_jure_title
                            scope:actor = {
                                add_to_variable_list = {
                                    name = vta_de_jure_titles
                                    target = scope:de_jure_title
                                }
                            }
                        }
                        every_in_list = {
                            variable = vta_de_jure_titles
                            save_temporary_scope_as = de_jure_title
                            scope:defender = {
                                every_vassal_or_below = {
                                    limit = {
                                        any_sub_realm_county = {
                                            target_is_de_jure_liege_or_above = scope:de_jure_title
                                        }
                                    }
                                    # Set variables
                                    save_temporary_scope_as = current
                                    vta_setup_for_war = {
                                        WAR = scope:actor
                                        ATTACKER = scope:actor
                                        DEFENDER = scope:defender
                                        CHARACTER = scope:current
                                        TITLE = scope:de_jure_title
                                        TRIGGER = has_character_flag
                                    }
                                }
                            }
                        }
                    }
                    vta_clean_up = { WAR = scope:actor }
                    # Add claimants to list
                    every_in_list = {
                        variable = vta_de_jure_titles
                        limit = {
                            NOT = { holder = scope:actor }
                            exists = holder
                            holder = { is_vassal_or_below_of = scope:actor }
                        }
                        scope:actor = {
                            add_to_variable_list = {
                                name = vta_claimants
                                target = PREV.holder
                            }
                        }
                    }
                }
            }
            17 = { add_character_flag = claimant_faction_war } # unused, listed to suppress error
            19 = { add_character_flag = undirected_great_holy_war }
            20 = { add_character_flag = directed_great_holy_war }
            21 = {
                add_character_flag = tribal_subjugation_cb
                if = {
                    limit = {
                        vta_should_event_trigger = {
                            WAR = scope:actor
                            TITLE = scope:title
                            TRIGGER = has_character_flag
                        }
                    }
                    var:selected_war_defender = { save_temporary_scope_as = defender }
                    scope:defender = {
                        every_vassal = {
                            this = { save_temporary_scope_as = character }
                            vta_setup_for_war = {
                                WAR = scope:actor
                                ATTACKER = scope:actor
                                DEFENDER = scope:defender
                                CHARACTER = scope:character
                                TITLE = scope:title
                                TRIGGER = has_character_flag
                            }
                        }
                    }
                }
            }
            22 = { add_character_flag = sons_of_lothbrok_invasion_cb } # unused, listed to suppress error
            23 = { add_character_flag = county_struggle_cb }
            24 = { add_character_flag = clan_invasion_war }
        }
       
    }
}

vta_potential_war_defender = {
    scope = character

    saved_scopes = {
		selected_defender
        selected_claimant
	}

    effect = {
        save_scope_as = actor
        set_variable = {
            name = selected_war_defender
            value = scope:selected_defender
        }
        if = {
            limit = {
                exists = scope:selected_claimant
                NOT = { scope:actor = scope:selected_claimant }
            }
            add_to_variable_list = {
				name = vta_claimants
				target = scope:selected_claimant
			}
        } 
    }
}

vta_potential_war_cleanup = {
    scope = character

    saved_scopes = {
		is_closed
	}

    effect = {
        # Remove selected cb
        remove_character_flag = minor_religious_war
        remove_character_flag = religious_war
        remove_character_flag = major_religious_war
        remove_character_flag = claim_cb
        remove_character_flag = county_conquest_cb
        remove_character_flag = duchy_conquest_cb
        remove_character_flag = invasion_war
        remove_character_flag = ducal_conquest_cb
        remove_character_flag = individual_county_de_jure_cb
        remove_character_flag = individual_duchy_de_jure_cb
        remove_character_flag = de_jure_cb
        remove_character_flag = undirected_great_holy_war
        remove_character_flag = directed_great_holy_war
        remove_character_flag = tribal_subjugation_cb
        remove_character_flag = county_struggle_cb
        remove_character_flag = clan_invasion_war
        if = {
            limit = {
                has_variable = selected_war_defender
                always = scope:is_closed
            }
            remove_variable = selected_war_defender
        }
        clear_variable_list = vta_war_target_title
        clear_variable_list = vta_lose_land
        clear_variable_list = vta_change_liege
        clear_variable_list = vta_de_jure_titles
        clear_variable_list = vta_claimants
    }
}

vta_potential_war_tooltip = {
    scope = character

    saved_scopes = {
		selected_value
	}

    effect = {
        save_scope_as = prepare_war_actor
        switch = {
            trigger = scope:selected_value
            0 = {
                custom_tooltip = VTA_CLAIMANT
                every_in_list = {
                    variable = vta_claimants
                    save_temporary_scope_as = vta_tooltip
                    custom_tooltip = VTA_PERSON_AND_TROOPS_CLAIMANTS
                }
            }
            1 = {
                custom_tooltip = VTA_TITLE_LOSS
                every_in_list = {
                    variable = vta_lose_land
                    save_temporary_scope_as = vta_tooltip
                    custom_tooltip = VTA_PERSON_AND_TROOPS_TITLE_LOSS
                }
            }
            2 = {
                custom_tooltip = VTA_LIEGE_CHANGE
                every_in_list = {
                    variable = vta_change_liege
                    save_temporary_scope_as = vta_tooltip
                    custom_tooltip = VTA_PERSON_AND_TROOPS_NEW_LIEGE
                }
            }
        }
    }
}

vta_is_attacker = {
    scope = character
    
    saved_scopes = {
	    second_character
	}

    is_shown = {
        save_temporary_scope_as = actor
        AND = {
            this = scope:second_character
            OR = {
                has_game_rule = vta_rule_attacker
                has_game_rule = vta_rule_both
            }
            OR = {
                any_in_list = {
                    variable = vta_war_target_title
                    save_temporary_scope_as = war_target_title
                    vta_should_event_trigger = {
                        WAR = scope:actor
                        TITLE = scope:war_target_title
                        TRIGGER = has_character_flag
                    }
                }
                AND = {
                    has_character_flag = tribal_subjugation_cb
                    vta_should_event_trigger = {
                        WAR = scope:actor
                        TITLE = scope:war_target_title
                        TRIGGER = has_character_flag
                    }
                }
                AND = {
                    has_character_flag = de_jure_cb
                    vta_should_event_trigger = {
                        WAR = scope:second_character
                        TITLE = scope:war_target_title
                        TRIGGER = has_character_flag
                    }
                }
            }
            
        }
    }
}

vta_is_defender = {
    scope = character
    
    saved_scopes = {
	    second_character
        selected_value
	}

    is_shown = {
        scope:second_character = {
            AND = {
                NOT = { PREV = scope:second_character }
                OR = {
                    has_game_rule = vta_rule_defender
                    has_game_rule = vta_rule_both
                }
                switch = {
                    trigger = scope:selected_value
                    0 = {
                        OR = {
                            has_game_rule = vta_rule_land
                            has_game_rule = vta_rule_land_subject
                        }
                    }
                    1 = {
                        has_game_rule = vta_rule_land_subject
                    }
                }
                OR = {
                    any_in_list = {
                        variable = vta_war_target_title
                        save_temporary_scope_as = war_target_title
                        vta_should_event_trigger = {
                            WAR = scope:second_character
                            TITLE = scope:war_target_title
                            TRIGGER = has_character_flag
                        }
                    }
                    AND = {
                        has_character_flag = tribal_subjugation_cb
                        vta_should_event_trigger = {
                            WAR = scope:second_character
                            TITLE = scope:war_target_title
                            TRIGGER = has_character_flag
                        }
                    }
                    AND = {
                        has_character_flag = de_jure_cb
                        vta_should_event_trigger = {
                            WAR = scope:second_character
                            TITLE = scope:war_target_title
                            TRIGGER = has_character_flag
                        }
                    }
                }
            }
        } 
    }
}