﻿riseandfall_adventurer_cleanup_se = {
    every_ruler = {
        # Save the current ruler as a character scope so we can call character-only
        # effects (like destroy_title and gold removal) from inside title loops.
        save_scope_as = rf_ruler
        # Destroy any mod-created adventurer titles held by AI rulers once their
        # new-adventurer grace flag is gone, even if the original adventurer died.
        if = {
            limit = {
                is_ai = yes
                is_landed = no
                NOT = { has_character_flag = riseandfall_newadventurer }
            }
            save_scope_as = rf_ruler

                every_held_title = {
                limit = { has_variable = riseandfall_created_adventurer_title }
                save_scope_as = rf_candidate_title
                # Call destroy_title from the ruler character scope (engine-supported pattern)
                scope:rf_ruler = {
                    if = {
                        limit = { exists = scope:rf_candidate_title }
                        destroy_title = scope:rf_candidate_title
                    }
                }
            }
            # Remove adventurer's gold by scoping to rf_ruler and removing their current gold
            scope:rf_ruler = {
                set_variable = { name = adventurer_gold value = gold }
                if = {
                    limit = { var:adventurer_gold > 0 }
                    remove_short_term_gold = var:adventurer_gold
                }
                remove_variable = adventurer_gold
            }
        }

        # Disband legitimist camps for adventurers with no valid claims on independent rulers
        if = {
            limit = {
                has_government = landless_adventurer_government
                NOT = { any_claim = { tier >= tier_kingdom exists = holder holder = { is_independent_ruler = yes } } }
            }
            # Only destroy the primary adventurer title if it was created by this mod
            primary_title = {
                if = {
                    limit = { has_variable = riseandfall_created_adventurer_title }
                    save_scope_as = rf_candidate_title
                    # Call destroy_title from the saved ruler scope, using the saved title scope
                    scope:rf_ruler = {
                        if = {
                            limit = { exists = scope:rf_candidate_title }
                            destroy_title = scope:rf_candidate_title
                        }
                    }
                }
            }

            # Also handle any held titles created by this mod for this ruler: if a held
            # title still carries the mod variable but the holder no longer has the
            # adventurer flags, remove any adventurer gold from the holder and destroy it.
                every_held_title = {
                limit = { has_variable = riseandfall_created_adventurer_title }
                save_scope_as = rf_candidate_title
                # every_held_title switches scope to the title. Use the saved
                # ruler scope (rf_ruler) to remove gold and destroy the title.
                scope:rf_ruler = {
                    if = {
                        limit = { NOT = { has_character_flag = riseandfall_adventurer } NOT = { has_character_flag = riseandfall_newadventurer } }
                        set_variable = { name = adventurer_gold value = gold }
                        if = {
                            limit = { var:adventurer_gold > 0 }
                            remove_short_term_gold = var:adventurer_gold
                        }
                        remove_variable = adventurer_gold
                        if = {
                            limit = { exists = scope:rf_candidate_title }
                            destroy_title = scope:rf_candidate_title
                        }
                    }
                }
            }
        }
    }
}
