# ============================================================
# OPPONENT MODELING & MEMORY TRIGGERS
# ============================================================

# Memory Flags
qyv_ai_memory_aggressive = {
    trigger = {
        is_ai = yes
        is_ruler = yes
        any_character = {
            is_ruler = yes
            is_independent_ruler = yes
            NOT = { is_allied_to = root }
            has_character_flag = qyv_mem_aggressive
        }
    }
}

qyv_ai_memory_diplomatic = {
    trigger = {
        is_ai = yes
        is_ruler = yes
        any_character = {
            is_ruler = yes
            is_independent_ruler = yes
            NOT = { is_allied_to = root }
            has_character_flag = qyv_mem_diplomatic
        }
    }
}

qyv_ai_memory_opportunistic = {
    trigger = {
        is_ai = yes
        is_ruler = yes
        any_character = {
            is_ruler = yes
            is_independent_ruler = yes
            NOT = { is_allied_to = root }
            has_character_flag = qyv_mem_opportunistic
        }
    }
}

qyv_ai_memory_isolationist = {
    trigger = {
        is_ai = yes
        is_ruler = yes
        any_character = {
            is_ruler = yes
            is_independent_ruler = yes
            NOT = { is_allied_to = root }
            has_character_flag = qyv_mem_isolationist
        }
    }
}

qyv_ai_memory_reliable_ally = {
    trigger = {
        is_ai = yes
        is_ruler = yes
        any_character = {
            is_ruler = yes
            is_independent_ruler = yes
            is_allied_to = root
            has_character_flag = qyv_mem_reliable_ally
        }
    }
}

qyv_ai_memory_betrayed = {
    trigger = {
        is_ai = yes
        is_ruler = yes
        any_character = {
            is_ruler = yes
            is_independent_ruler = yes
            has_character_flag = qyv_mem_betrayed
        }
    }
}

# Memory Formation Triggers
qyv_ai_should_remember_aggression = {
    trigger = {
        is_ai = yes
        is_ruler = yes
        any_neighbor_independent_ruler = {
            limit = {
                NOT = { is_allied_to = root }
                OR = {
                    has_attacked = root
                    has_declared_war_on = root
                    has_raided = root
                }
                NOT = { has_character_flag = qyv_mem_aggressive }
            }
            save_scope_as = aggressive_neighbor
        }
    }
}

qyv_ai_should_remember_diplomacy = {
    trigger = {
        is_ai = yes
        is_ruler = yes
        any_neighbor_independent_ruler = {
            limit = {
                NOT = { is_allied_to = root }
                OR = {
                    has_allied_with = root
                    has_honored_alliance = root
                    has_traded_with = root
                }
                NOT = { has_character_flag = qyv_mem_diplomatic }
            }
            save_scope_as = diplomatic_neighbor
        }
    }
}

qyv_ai_should_remember_opportunism = {
    trigger = {
        is_ai = yes
        is_ruler = yes
        any_neighbor_independent_ruler = {
            limit = {
                NOT = { is_allied_to = root }
                OR = {
                    attacked_when_weak = root
                    broke_truce = root
                    broke_alliance = root
                }
                NOT = { has_character_flag = qyv_mem_opportunistic }
            }
            save_scope_as = opportunistic_neighbor
        }
    }
}

qyv_ai_should_remember_isolationism = {
    trigger = {
        is_ai = yes
        is_ruler = yes
        any_neighbor_independent_ruler = {
            limit = {
                NOT = { is_allied_to = root }
                NOT = { has_allied_with = root }
                NOT = { has_traded_with = root }
                NOT = { has_attacked = root }
                NOT = { has_raided = root }
                is_independent_ruler = yes
            }
            save_scope_as = isolationist_neighbor
        }
    }
}

qyv_ai_should_remember_reliable_ally = {
    trigger = {
        is_ai = yes
        is_ruler = yes
        any_ally = {
            limit = {
                has_honored_alliance = root
                has_come_to_defense = root
                NOT = { has_character_flag = qyv_mem_reliable_ally }
            }
            save_scope_as = reliable_ally
        }
    }
}

qyv_ai_should_remember_betrayal = {
    trigger = {
        is_ai = yes
        is_ruler = yes
        any_character = {
            is_ruler = yes
            is_independent_ruler = yes
            OR = {
                broke_alliance_with = root
                broke_truce_with = root
                attacked_when_allied = root
            }
            NOT = { has_character_flag = qyv_mem_betrayed }
            save_scope_as = betrayer
        }
    }
}

qyv_ai_should_remember_broken_truce = {
    trigger = {
        is_ai = yes
        is_ruler = yes
        any_character = {
            is_ruler = yes
            is_independent_ruler = yes
            has_truce_with = root
            has_broken_truce_with = root
            NOT = { has_character_flag = qyv_mem_betrayed }
            save_scope_as = truce_breaker
        }
    }
}

# Strategy Adjustment Based on Memory
qyv_ai_adjust_vs_aggressive = {
    trigger = {
        is_ai = yes
        is_ruler = yes
        qyv_ai_memory_aggressive = root
        any_character = {
            is_ruler = yes
            is_independent_ruler = yes
            has_character_flag = qyv_mem_aggressive
            military_strength > root.military_strength * 0.8
        }
    }
}

qyv_ai_adjust_vs_diplomatic = {
    trigger = {
        is_ai = yes
        is_ruler = yes
        qyv_ai_memory_diplomatic = root
        any_character = {
            is_ruler = yes
            is_independent_ruler = yes
            has_character_flag = qyv_mem_diplomatic
        }
    }
}

qyv_ai_adjust_vs_opportunistic = {
    trigger = {
        is_ai = yes
        is_ruler = yes
        qyv_ai_memory_opportunistic = root
        any_character = {
            is_ruler = yes
            is_independent_ruler = yes
            has_character_flag = qyv_mem_opportunistic
            military_strength > root.military_strength * 0.7
        }
    }
}

qyv_ai_adjust_vs_isolationist = {
    trigger = {
        is_ai = yes
        is_ruler = yes
        qyv_ai_memory_isolationist = root
        any_character = {
            is_ruler = yes
            is_independent_ruler = yes
            has_character_flag = qyv_mem_isolationist
        }
    }
}

qyv_ai_adjust_vs_reliable_ally = {
    trigger = {
        is_ai = yes
        is_ruler = yes
        qyv_ai_memory_reliable_ally = root
        any_character = {
            is_ruler = yes
            is_independent_ruler = yes
            has_character_flag = qyv_mem_reliable_ally
        }
    }
}

qyv_ai_adjust_vs_betrayed = {
    trigger = {
        is_ai = yes
        is_ruler = yes
        qyv_ai_memory_betrayed = root
        any_character = {
            is_ruler = yes
            is_independent_ruler = yes
            has_character_flag = qyv_mem_betrayed
        }
    }
}

# Trust Modifiers
qyv_ai_low_trust = {
    trigger = {
        is_ai = yes
        is_ruler = yes
        qyv_ai_memory_betrayed = root
        any_character = {
            is_ruler = yes
            is_independent_ruler = yes
            has_character_flag = qyv_mem_betrayed
        }
    }
}

qyv_ai_high_trust = {
    trigger = {
        is_ai = yes
        is_ruler = yes
        qyv_ai_memory_reliable_ally = root
        any_character = {
            is_ruler = yes
            is_independent_ruler = yes
            has_character_flag = qyv_mem_reliable_ally
        }
    }
}

# Succession Tracking
qyv_ai_should_track_succession = {
    trigger = {
        is_ai = yes
        is_ruler = yes
        any_neighbor_independent_ruler = {
            limit = {
                age >= 60
                OR = { health < 3 has_heir = { is_child = yes } }
            }
            save_scope_as = succession_risk
        }
    }
}