﻿namespace = loaa_merge_camps_events

scripted_effect merge_buildings_effect = {
    if = {
        limit = {
            has_domicile_building_or_higher = $BUILDING$_01
        }
        switch = {
            trigger = has_domicile_building
            $BUILDING$_01 = {
                root.domicile = {
                    if = {
                        limit = {
                            NOT = { has_domicile_building = $BUILDING$_01 }
                            free_external_domicile_building_slots >= 1
                        }
                    }
                    add_domicile_building = $BUILDING$_01
                }
            }
            $BUILDING$_02 = {
                root.domicile = {
                    if = {
                        limit = {
                            OR = {
                                has_domicile_building = $BUILDING$_01
                                free_external_domicile_building_slots >= 1
                            }
                        }
                    }
                    add_domicile_building = $BUILDING$_01
                    add_domicile_building = $BUILDING$_02
                }
            }
            $BUILDING$_03 = {
                root.domicile = {
                    if = {
                        limit = {
                            OR = {
                                has_domicile_building = $BUILDING$_01
                                has_domicile_building = $BUILDING$_02
                                free_external_domicile_building_slots >= 1
                            }
                        }
                    }
                    add_domicile_building = $BUILDING$_01
                    add_domicile_building = $BUILDING$_02
                    add_domicile_building = $BUILDING$_03
                }
            }
            $BUILDING$_04 = {
                root.domicile = {
                    if = {
                        limit = {
                            OR = {
                                has_domicile_building = $BUILDING$_01
                                has_domicile_building = $BUILDING$_02
                                has_domicile_building = $BUILDING$_03
                                free_external_domicile_building_slots >= 1
                            }
                        }
                    }
                    add_domicile_building = $BUILDING$_01
                    add_domicile_building = $BUILDING$_02
                    add_domicile_building = $BUILDING$_03
                    add_domicile_building = $BUILDING$_04
                }
            }
            $BUILDING$_05 = {
                root.domicile = {
                    if = {
                        limit = {
                            OR = {
                                has_domicile_building = $BUILDING$_01
                                has_domicile_building = $BUILDING$_02
                                has_domicile_building = $BUILDING$_03
                                has_domicile_building = $BUILDING$_04
                                free_external_domicile_building_slots >= 1
                            }
                        }
                    }
                    add_domicile_building = $BUILDING$_01
                    add_domicile_building = $BUILDING$_02
                    add_domicile_building = $BUILDING$_03
                    add_domicile_building = $BUILDING$_04
                    add_domicile_building = $BUILDING$_05
                }
            }
            $BUILDING$_06 = {
                root.domicile = {
                    if = {
                        limit = {
                            OR = {
                                has_domicile_building = $BUILDING$_01
                                has_domicile_building = $BUILDING$_02
                                has_domicile_building = $BUILDING$_03
                                has_domicile_building = $BUILDING$_04
                                has_domicile_building = $BUILDING$_05
                                free_external_domicile_building_slots >= 1
                            }
                        }
                    }
                    add_domicile_building = $BUILDING$_01
                    add_domicile_building = $BUILDING$_02
                    add_domicile_building = $BUILDING$_03
                    add_domicile_building = $BUILDING$_04
                    add_domicile_building = $BUILDING$_05
                    add_domicile_building = $BUILDING$_06
                }
            }
        }
    }
}

loaa_merge_camps_events.1 = {
    type = character_event
    hidden = yes

    immediate = {
        if = {
            limit = {
                scope:joined_leader = {
                    AND = {
                        current_military_strength <= 1000
                        any_courtier = {
                            count <= 10
                        }
                    }
                }
            }
            save_scope_value_as = {
                name = merged_modifier_lvl
                value = 1
            }
        }
        else_if = {
            limit = {
                scope:joined_leader = {
                    AND = {
                        current_military_strength <= 5000
                        any_courtier = {
                            count <= 30
                        }
                    }
                }
            }
            save_scope_value_as = {
                name = merged_modifier_lvl
                value = 2
            }
        }
        else = {
            save_scope_value_as = {
                name = merged_modifier_lvl
                value = 3
            }
        }
        while = {
            limit = {
                AND = {
                    maa_regiments_count < maa_regiments_max_count
                    scope:joined_leader.maa_regiments_count >= 1
                }

            }
            scope:joined_leader = {
                every_maa_regiment = {
                    if = {
                        limit = { maa_size = 1 }
                        root ?= {
                            create_maa_regiment = {
                            type_of = prev
                            check_can_recruit = no
                            size = 1
                            }
                        }
                    }
                    else_if = {
                        limit = { maa_size = 2 }
                        root ?= {
                            create_maa_regiment = {
                            type_of = prev
                            check_can_recruit = no
                            size = 2
                            }
                        }
                    }
                    else_if = {
                        limit = { maa_size = 3 }
                        root ?= {
                            create_maa_regiment = {
                            type_of = prev
                            check_can_recruit = no
                            size = 3
                            }
                        }
                    }
                    else_if = {
                        limit = { maa_size = 4 }
                        root ?= {
                            create_maa_regiment = {
                            type_of = prev
                            check_can_recruit = no
                            size = 4
                            }
                        }
                    }
                    else_if = {
                        limit = { maa_size = 5 }
                        root ?= {
                            create_maa_regiment = {
                            type_of = prev
                            check_can_recruit = no
                            size = 5
                            }
                        }
                    }
                    else_if = {
                        limit = { maa_size = 6 }
                        root ?= {
                            create_maa_regiment = {
                            type_of = prev
                            check_can_recruit = no
                            size = 6
                            }
                        }
                    }
                    else_if = {
                        limit = { maa_size = 7 }
                        root ?= {
                            create_maa_regiment = {
                            type_of = prev
                            check_can_recruit = no
                            size = 7
                            }
                        }
                    }
                    else_if = {
                        limit = { maa_size = 8 }
                        root ?= {
                            create_maa_regiment = {
                            type_of = prev
                            check_can_recruit = no
                            size = 8
                            }
                        }
                    }
                    else_if = {
                        limit = { maa_size = 9 }
                        root ?= {
                            create_maa_regiment = {
                            type_of = prev
                            check_can_recruit = no
                            size = 9
                            }
                        }
                    }
                    else_if = {
                        limit = { maa_size = 10 }
                        root ?= {
                            create_maa_regiment = {
                            type_of = prev
                            check_can_recruit = no
                            size = 10
                            }
                        }
                    }
                    else_if = {
                        limit = { maa_size = 11 }
                        root ?= {
                            create_maa_regiment = {
                            type_of = prev
                            check_can_recruit = no
                            size = 11
                            }
                        }
                    }
                    else_if = {
                        limit = { maa_size = 12 }
                        root ?= {
                            create_maa_regiment = {
                            type_of = prev
                            check_can_recruit = no
                            size = 12
                            }
                        }
                    }
                    else_if = {
                        limit = { maa_size = 13 }
                        root ?= {
                            create_maa_regiment = {
                            type_of = prev
                            check_can_recruit = no
                            size = 13
                            }
                        }
                    }
                    else_if = {
                        limit = { maa_size = 14 }
                        root ?= {
                            create_maa_regiment = {
                            type_of = prev
                            check_can_recruit = no
                            size = 14
                            }
                        }
                    }
                    else = {
                        root ?= {
                            create_maa_regiment = {
                            type_of = prev
                            check_can_recruit = no
                            size = 15
                            }
                        }
                    }
                    destroy_maa_regiment = yes
                }

            }
        }
        scope:joined_leader.domicile = {
            # Main Tent
			if = {
				limit = {
                    has_domicile_building_or_higher = camp_main_02
                    root.domicile = { has_domicile_building_or_higher = camp_main_01 }
                }
				switch = {
					trigger = has_domicile_building
					camp_main_02 = {
                        root.domicile = {
                            if = {
                                limit = { NOT = { has_domicile_building_or_higher = camp_main_02 } }
                            }
                            add_domicile_building = camp_main_02
                        }
                    }
                    camp_main_03 = {
                        root.domicile = {
                            if = {
                                limit = { NOT = { has_domicile_building_or_higher = camp_main_03 } }
                            }
                            add_domicile_building = camp_main_03
                        }
                    }
                    camp_main_04 = {
                        root.domicile = {
                            if = {
                                limit = { NOT = { has_domicile_building_or_higher = camp_main_04 } }
                            }
                            add_domicile_building = camp_main_04
                        }
                    }
				}
			}

            # Camp Fire
            merge_buildings_effect = {
                BUILDING = camp_fire
            }
            # Baggage Train
            merge_buildings_effect = {
                BUILDING = baggage_train
            }
            # Proving Grounds
            merge_buildings_effect = {
                BUILDING = proving_grounds
            }
            # Supply Tent
            merge_buildings_effect = {
                BUILDING = supply_tent
            }
            # Mess Tent
            merge_buildings_effect = {
                BUILDING = mess_tent
            }
            # Barber Tent
            merge_buildings_effect = {
                BUILDING = barber_tent
            }
            # Camp Perimeter
             merge_buildings_effect = {
                BUILDING = camp_perimeter
            }

		}
        scope:joined_leader = {
            every_courtier = {
                add_to_list = joined_courtiers
                root  = { add_courtier = prev }
            }
            destroy_title = primary_title
            root  = { add_courtier = prev }
        }
        trigger_event = loaa_merge_camps_events.2
    }
}

loaa_merge_camps_events.2 = {
    type = character_event
	theme = landless_adventurer
	title = loaa_merge_camps_events.2.t

	desc = loaa_merge_camps_events.2.desc

	override_background = {
		reference = ep3_campfire
	}

	left_portrait = {
		character = root
		animation = thinking
	}

	right_portrait = {
		character = scope:joined_leader
        animation = war_defender
	}

    option = {
        name = loaa_merge_camps_events.2.a
        flavor = loaa_merge_camps_events.2.a.flavor

        camp_officer_grant_effect = {
            EMPLOYER = root
            POS = second
            CANDIDATE = scope:joined_leader
        }

        root = { clear_saved_scope = old_holder }

        reverse_add_opinion = {
            target = scope:joined_leader
            modifier = grateful_opinion
            opinion = 30
        }
        scope:joined_leader = {
            add_character_flag = promised_sic_pos
        }
        stress_impact = {
            generous = minor_stress_impact_loss
            greedy = minor_stress_impact_gain
            humble = minor_stress_impact_loss
            trusting = minor_stress_impact_loss
            paranoid = medium_stress_impact_gain
        }

        switch = {
            trigger = scope:merged_modifier_lvl
            1 = {
                add_character_modifier = {
                    modifier = loaa_camps_merged_modifier_1
                    years = 3
                }
            }
            2 = {
                add_character_modifier = {
                    modifier = loaa_camps_merged_modifier_2
                    years = 3
                }
            }
            3 = {
                add_character_modifier = {
                    modifier = loaa_camps_merged_modifier_3
                    years = 3
                }
            }
        }

    }

    option = {
        name = loaa_merge_camps_events.2.b
        reverse_add_opinion = {
            target = scope:joined_leader
            modifier = grateful_opinion
            opinion = 20
        }
        switch = {
            trigger = scope:merged_modifier_lvl
            1 = {
                add_character_modifier = {
                    modifier = loaa_camps_merged_modifier_1
                    years = 7
                }
            }
            2 = {
                add_character_modifier = {
                    modifier = loaa_camps_merged_modifier_2
                    years = 7
                }
            }
            3 = {
                add_character_modifier = {
                    modifier = loaa_camps_merged_modifier_3
                    years = 7
                }
            }
        }
        stress_impact = {
            generous = minor_stress_impact_loss
            greedy = minor_stress_impact_gain
            callous = minor_stress_impact_gain
        }
    }

    option = {
        name = loaa_merge_camps_events.2.c
        add_prestige = 150
        if = {
            limit = {
                scope:joined_leader = { NOT = { has_trait = just } }
            }
            reverse_add_opinion = {
                target = scope:joined_leader
                modifier = disappointed_opinion
                opinion = -20
            }
        }
        switch = {
            trigger = scope:merged_modifier_lvl
            1 = {
                add_character_modifier = {
                    modifier = loaa_camps_merged_modifier_1
                    years = 5
                }
            }
            2 = {
                add_character_modifier = {
                    modifier = loaa_camps_merged_modifier_2
                    years = 5
                }
            }
            3 = {
                add_character_modifier = {
                    modifier = loaa_camps_merged_modifier_3
                    years = 5
                }
            }
        }
        stress_impact = {
            just = minor_stress_impact_loss
            greedy = minor_stress_impact_loss
            arrogant = minor_stress_impact_loss
        }
    }

    option = {
        name = loaa_merge_camps_events.2.d
        add_prestige = 300
        hidden_effect = {
            every_in_list = {
                list = joined_courtiers
                add_opinion = {
                    target = root
                    modifier = disrespect_opinion
                    opinion = -20
                }
            }
        }
        reverse_add_opinion = {
            target = scope:joined_leader
            modifier = disrespect_opinion
            opinion = -40
        }
        switch = {
            trigger = scope:merged_modifier_lvl
            1 = {
                add_character_modifier = {
                    modifier = loaa_camps_merged_modifier_1
                    years = 7
                }
            }
            2 = {
                add_character_modifier = {
                    modifier = loaa_camps_merged_modifier_2
                    years = 7
                }
            }
            3 = {
                add_character_modifier = {
                    modifier = loaa_camps_merged_modifier_3
                    years = 7
                }
            }
        }
        stress_impact = {
            arrogant = medium_stress_impact_loss
            compassionate = minor_stress_impact_gain
            humble = minor_stress_impact_gain
            greedy = minor_stress_impact_loss
            callous = minor_stress_impact_loss
        }
        scope:joined_leader = {
            add_character_flag = potential_troublemaker
        }
    }

    after = {
        save_scope_value_as = {
            name = checks_counter
            value = 0
        }
        trigger_event = {
            months = 1
            id = loaa_merge_camps_events.4
        }
    }
}

loaa_merge_camps_events.3 = {
    type = character_event
	theme = landless_adventurer
	title = loaa_merge_camps_events.3.t
	desc = loaa_merge_camps_events.3.desc

	override_background = {
		reference = ep3_camp
	}

    trigger = {
        scope:checks_counter <= 36
        scope:joined_leader ?= {
            NOT = {
                has_court_position = second_camp_officer
            }
        }
    }

	left_portrait = {
		character = root
		animation = dismissal
	}

	right_portrait = {
		character = scope:joined_leader
        animation = anger
	}

    immediate = {
        clear_saved_scope = old_holder
        reverse_add_opinion = {
            target = scope:joined_leader
            modifier = broke_promise
            opinion = -60
        }
    }

    option = {
        name = loaa_merge_camps_events.3.a
        stress_impact = {
            arrogant = minor_stress_impact_loss
            stubborn = minor_stress_impact_loss
        }
        progress_towards_rival_effect = {
            REASON = rival_broke_promise
            CHARACTER = scope:joined_leader
            OPINION = 0
        }
        scope:joined_leader = {
            remove_character_flag = promised_sic_pos
            add_character_flag = potential_troublemaker
        }
        hidden_effect = {
            random_list = {
                50 = {
                    scope:joined_leader = { save_scope_as = troublemaker }
                    every_in_list = {
                        list = joined_courtiers
                        limit = {
                            AND = {
                                opinion = {
                                    target = root
                                    value <= 40
                                }
                                opinion = {
                                    target = scope:troublemaker
                                    value >= -20
                                }
                            }
                        }
                        add_to_list = defectors
                    }
                    save_scope_value_as = {
                        name = merge_camp_troubles
                        value = flag:yes
                    }
                    trigger_event = { id = loaa_succession_events.1 days = { 2 12 } }

                    modifier = {
                        scope:joined_leader = {
                            opinion = {
                                target = root
                                value <= -50
                            }
                        }
                        add = 25
                    }
                }
                50 = {
                    modifier = {
                        scope:joined_leader = {
                            opinion = {
                                target = root
                                value >= 50
                            }
                        }
                        add = 25
                    }
                    trigger_event = {
                        id = loaa_merge_camps_events.4
                        months = 1
                    }
                }
            }
        }

    }

    option = {
        name = loaa_merge_camps_events.3.b
        add_prestige = -100
        trigger = {
            NOT = {
                scope:used_3_b ?= flag:yes
            }
        }
        save_scope_value_as = {
            name = used_3_b
            value = flag:yes
        }
        camp_officer_grant_effect = {
            EMPLOYER = root
            POS = second
            CANDIDATE = scope:joined_leader
        }
        stress_impact = {
            arrogant = medium_stress_impact_gain
            stubborn = medium_stress_impact_gain
            arbitrary = minor_stress_impact_loss
        }
        trigger_event = {
            id = loaa_merge_camps_events.4
            months = 1
        }
    }

}

loaa_merge_camps_events.4 = {
    hidden = yes

    trigger = {
        scope:checks_counter  <= 36
        exists = scope:joined_leader
        scope:joined_leader = {
            is_alive = yes
        }
    }

    immediate = {
        save_scope_value_as = {
            name = checks_counter
            value = {
                value = scope:checks_counter
                add = 1
            }
        }
        if = {
            limit = {
                scope:joined_leader ?= {
                    is_courtier_of = root
                    has_character_flag = promised_sic_pos
                    NOT = {
                        has_court_position = second_camp_officer
                    }
                }
            }
            trigger_event = loaa_merge_camps_events.3
        }
        else_if = {
            limit = {
                scope:joined_leader ?= {
                    NOT = { is_courtier_of = root }
                }
            }
            scope:joined_leader = { save_scope_as = troublemaker }
            every_in_list = {
                list = joined_courtiers
                limit = {
                    AND = {
                        opinion = {
                            target = root
                            value <= 40
                        }
                        opinion = {
                            target = scope:troublemaker
                            value >= -20
                        }
                    }
                }
                add_to_list = defectors
            }
            save_scope_value_as = {
                name = merge_camp_troubles
                value = flag:yes
            }
            trigger_event = { id = loaa_succession_events.1 days = { 2 12 } }
        }
        else = {
            trigger_event = {
                id = loaa_merge_camps_events.4
                months = 1
            }
        }
    }

}