namespace = qyv_tribute_gift

# Yearly: AI pays tribute to stronger neighbors to prevent war
character_event = {
    id = qyv_tribute.0100
    hidden = yes
    is_triggered_only = no

    trigger = {
        is_ai = yes
        is_ruler = yes
        is_independent_ruler = yes
        NOT = { has_character_flag = qyv_paying_tribute_to_target }
        gold >= 300
        NOT = { in_debt = yes }
        any_neighbor_independent_ruler = {
            limit = {
                military_strength > root.military_strength * 1.3
                NOT = { is_allied_to = root }
                NOT = { has_truce_with = root }
                NOT = { is_vassal_of = root }
                NOT = { is_liege_of = root }
            }
            save_scope_as = threat
        }
        has_game_rule = { qyv_ai_gold_subsidies = normal }
        OR = {
            has_game_rule = { qyv_ai_gold_subsidies = heavy }
        }
    }

    mean_time_to_happen = { months = 12 }

    immediate = {
        if = {
            limit = { exists = scope:threat }
            qyv_send_tribute = yes
        }
    }

    option = { name = "OK" }
}

# Yearly: AI renews tribute payments
character_event = {
    id = qyv_tribute.0200
    hidden = yes
    is_triggered_only = no

    trigger = {
        is_ai = yes
        is_ruler = yes
        has_character_flag = qyv_paying_tribute_to_target
        gold >= 200
        NOT = { in_debt = yes }
    }

    mean_time_to_happen = { months = 12 }

    immediate = {
        qyv_renew_tribute = yes
    }

    option = { name = "OK" }
}

# Quarterly: AI sends diplomatic gifts to hostile neighbors
character_event = {
    id = qyv_tribute.0300
    hidden = yes
    is_triggered_only = no

    trigger = {
        is_ai = yes
        is_ruler = yes
        is_independent_ruler = yes
        gold >= 500
        NOT = { in_debt = yes }
        NOT = { has_character_flag = qyv_paying_tribute_to_target }
        any_neighbor_independent_ruler = {
            limit = {
                NOT = { is_allied_to = root }
                NOT = { has_truce_with = root }
                opinion_of_self < -20
                military_strength > root.military_strength * 1.1
            }
            save_scope_as = gift_target
        }
        has_game_rule = { qyv_ai_gold_subsidies = normal }
        OR = {
            has_game_rule = { qyv_ai_gold_subsidies = heavy }
        }
    }

    mean_time_to_happen = { months = 24 }

    immediate = {
        if = {
            limit = { exists = scope:gift_target }
            qyv_send_diplomatic_gift = yes
        }
    }

    option = { name = "OK" }
}

# AI receives tribute - becomes less aggressive toward payer
character_event = {
    id = qyv_tribute.1000
    hidden = yes
    is_triggered_only = yes

    trigger = {
        is_ai = yes
        is_ruler = yes
        has_character_modifier = qyv_receiving_tribute
    }

    title = qyv_tribute_received_t
    desc  = qyv_tribute_received_d

    option = {
        name = qyv_accept_tribute
        ai_chance = { base = 90 }
        hidden_effect = {
            add_opinion = { target = FROM modifier = qyv_receiving_tribute years = 5 }
        }
    }
    option = {
        name = qyv_decline_tribute
        ai_chance = { base = 10 }
    }
}

# Player decision: Send tribute to stronger AI neighbor
character_event = {
    id = qyv_tribute.2000
    hidden = no
    is_triggered_only = yes

    trigger = {
        is_human = yes
        is_ruler = yes
        is_independent_ruler = yes
        gold >= 200
        NOT = { in_debt = yes }
        any_neighbor_independent_ruler = {
            limit = {
                is_ai = yes
                military_strength > root.military_strength * 1.2
                NOT = { is_allied_to = root }
                NOT = { has_truce_with = root }
            }
            save_scope_as = tribute_target
        }
    }

    title = qyv_tribute_offer_t
    desc  = qyv_tribute_offer_d

    option = {
        name = qyv_send_tribute_250
        ai_chance = { base = 0 }
        effects = {
            scope:tribute_target = { add_gold = 250 }
            root = { add_gold = -250 }
            scope:tribute_target = { add_opinion = { target = root modifier = qyv_receiving_tribute years = 5 } }
            scope:tribute_target = { add_character_modifier = { modifier = qyv_receiving_tribute_from_payer years = 5 } }
            root = { add_character_modifier = { modifier = qyv_paying_tribute years = 5 } }
            root = { set_character_flag = qyv_paying_tribute_to_target }
        }
    }
    option = {
        name = qyv_send_tribute_500
        ai_chance = { base = 0 }
        effects = {
            scope:tribute_target = { add_gold = 500 }
            root = { add_gold = -500 }
            scope:tribute_target = { add_opinion = { target = root modifier = qyv_receiving_tribute years = 10 } }
            scope:tribute_target = { add_character_modifier = { modifier = qyv_receiving_tribute_from_payer years = 10 } }
            root = { add_character_modifier = { modifier = qyv_paying_tribute years = 10 } }
            root = { set_character_flag = qyv_paying_tribute_to_target }
        }
    }
    option = {
        name = qyv_no_tribute
        ai_chance = { base = 100 }
    }
}

# AI receives gift - becomes friendlier
character_event = {
    id = qyv_tribute.3000
    hidden = yes
    is_triggered_only = yes

    trigger = {
        is_ai = yes
        is_ruler = yes
        has_character_modifier = qyv_received_diplomatic_gift
    }

    title = qyv_gift_received_t
    desc  = qyv_gift_received_d

    option = {
        name = qyv_accept_gift
        ai_chance = { base = 95 }
        hidden_effect = {
            add_opinion = { target = FROM modifier = qyv_received_diplomatic_gift years = 5 }
        }
    }
}

# On action: AI receiving tribute refuses to attack payer
on_actions = {
    on_ai_consider_declare_war = {
        trigger_if = {
            limit = {
                is_ai = yes
                is_ruler = yes
                is_independent_ruler = yes
                target = { has_character_modifier = qyv_receiving_tribute_from_payer }
            }
            ai_will_do = { base = 0 }
        }
    }

    on_ai_consider_declare_war = {
        trigger_if = {
            limit = {
                is_ai = yes
                is_ruler = yes
                is_independent_ruler = yes
                target = { has_character_modifier = qyv_received_diplomatic_gift }
            }
            ai_will_do = { base = 5 }
        }
    }

    on_ai_consider_declare_war = {
        trigger_if = {
            limit = {
                is_ai = yes
                is_ruler = yes
                is_independent_ruler = yes
                target = { has_character_modifier = qyv_received_gift_recently }
            }
            ai_will_do = { base = 10 }
        }
    }
}
# ============================================================
# DIPLOMACY EXPANSION EVENTS (v1.20.12)
# Hostages, alliances, troop requests, gold reserves,
# genetic optimization, culture/faith unity.
# ============================================================

# --- Hostages ---

# Monthly: AI takes hostages from defeated rivals
character_event = {
    id = qyv_hostage.0100
    hidden = yes
    is_triggered_only = no

    trigger = {
        is_ai = yes
        is_ruler = yes
        is_independent_ruler = yes
        is_at_war = yes
        war = {
            attacker = { is_ruler = root }
            war_score >= 50
        }
        any_war_participant = {
            limit = {
                is_at_war_with = root
                any_family_member = {
                    limit = {
                        is_ruler = no
                        is_child = no
                        is_married = no
                        is_hostage = no
                        age >= 10
                    }
                }
            }
            save_scope_as = defeated_rival
        }
    }

    mean_time_to_happen = { months = 6 }

    immediate = {
        if = {
            limit = { exists = scope:defeated_rival }
            qyv_ai_take_hostage = yes
        }
    }

    option = { name = "OK" }
}

# Monthly: AI gives hostages to stronger neighbors to buy peace
character_event = {
    id = qyv_hostage.0200
    hidden = yes
    is_triggered_only = no

    trigger = {
        is_ai = yes
        is_ruler = yes
        is_independent_ruler = yes
        is_at_war = yes
        war = {
            defender = { is_ruler = root }
            war_score < -30
        }
        any_family_member = {
            limit = {
                is_ruler = no
                is_child = no
                is_married = no
                age >= 10
                NOT = { is_hostage = yes }
            }
        }
    }

    mean_time_to_happen = { months = 6 }

    immediate = {
        qyv_ai_give_hostage = yes
    }

    option = { name = "OK" }
}

# --- Alliances ---

# Quarterly: AI offers alliances to sensible neighbors
character_event = {
    id = qyv_alliance.0100
    hidden = yes
    is_triggered_only = no

    trigger = {
        is_ai = yes
        is_ruler = yes
        is_independent_ruler = yes
        qyv_ai_is_secure = root
        NOT = { is_at_war = yes }
        any_neighbor_independent_ruler = {
            limit = {
                is_ally = no
                has_truce = no
                is_rival = no
                military_strength < root.military_strength * 3.0
                military_strength > root.military_strength * 0.3
                OR = {
                    same_culture = yes
                    same_faith = yes
                    opinion_of_self >= 0
                }
            }
        }
    }

    mean_time_to_happen = { months = 24 }

    immediate = {
        qyv_ai_offer_alliance = yes
    }

    option = { name = "OK" }
}

# --- Troop Requests ---

# Monthly: small nations ask local powers for troops
character_event = {
    id = qyv_troops.0100
    hidden = yes
    is_triggered_only = no

    trigger = {
        is_ai = yes
        is_ruler = yes
        is_independent_ruler = yes
        qyv_ai_is_struggling = root
        is_at_war = yes
        war = {
            defender = { is_ruler = root }
        }
        any_neighbor_independent_ruler = {
            limit = {
                is_ally = no
                military_strength > root.military_strength * 1.5
                has_truce = no
            }
        }
    }

    mean_time_to_happen = { months = 12 }

    immediate = {
        qyv_ai_request_troops = yes
    }

    option = { name = "OK" }
}

# --- Gold Reserves ---

# Yearly: AI enforces gold reserve floor
character_event = {
    id = qyv_gold.0100
    hidden = yes
    is_triggered_only = no

    trigger = {
        is_ai = yes
        is_ruler = yes
        is_independent_ruler = yes
        gold < 500
        realm_size >= 10
        NOT = { in_debt = yes }
    }

    mean_time_to_happen = { months = 12 }

    immediate = {
        qyv_ai_enforce_gold_reserve = yes
    }

    option = { name = "OK" }
}

# --- Genetic Optimization ---

# Quarterly: AI prioritizes good genetics for heirs
character_event = {
    id = qyv_genetics.0100
    hidden = yes
    is_triggered_only = no

    trigger = {
        is_ai = yes
        is_ruler = yes
        is_independent_ruler = yes
        qyv_ai_is_secure = root
        NOT = { is_at_war = yes }
        has_heir = yes
        heir = { is_child = yes }
        NOT = { has_trait = genius }
        NOT = { has_trait = beautiful }
        NOT = { has_trait = herculean }
        NOT = { has_trait = fecund }
    }

    mean_time_to_happen = { months = 24 }

    immediate = {
        qyv_ai_prioritize_genetics = yes
    }

    option = { name = "OK" }
}

# --- Culture/Faith Unity ---

# Quarterly: AI unites by culture/faith
character_event = {
    id = qyv_unity.0100
    hidden = yes
    is_triggered_only = no

    trigger = {
        is_ai = yes
        is_ruler = yes
        is_independent_ruler = yes
        qyv_ai_is_secure = root
        NOT = { is_at_war = yes }
        any_neighbor_independent_ruler = {
            limit = {
                OR = {
                    same_culture = yes
                    same_faith = yes
                }
                is_ally = no
                has_truce = no
                is_rival = no
                military_strength < root.military_strength * 2.0
            }
        }
    }

    mean_time_to_happen = { months = 24 }

    immediate = {
        qyv_ai_unite_by_culture_faith = yes
    }

    option = { name = "OK" }
}

# --- On Actions ---

# AI receiving tribute refuses to attack payer
on_actions = {
    on_ai_consider_declare_war = {
        trigger_if = {
            limit = {
                is_ai = yes
                is_ruler = yes
                is_independent_ruler = yes
                target = { has_character_flag = qyv_gave_hostage_for_peace }
            }
            ai_will_do = { base = 0 }
        }
    }

    on_ai_consider_declare_war = {
        trigger_if = {
            limit = {
                is_ai = yes
                is_ruler = yes
                is_independent_ruler = yes
                target = { has_character_flag = qyv_offered_alliance }
            }
            ai_will_do = { base = 5 }
        }
    }

    on_ai_consider_declare_war = {
        trigger_if = {
            limit = {
                is_ai = yes
                is_ruler = yes
                is_independent_ruler = yes
                target = { has_character_flag = qyv_gold_reserve_active }
            }
            ai_will_do = { base = 10 }
        }
    }
}
