﻿yearly_global_pulse = {
    on_actions = {
        riseandfall_yearly_adventurer
        riseandfall_yearly_adventurer_press_claims_scan
        riseandfall_yearly_remove_adventurer_gold_mod
        riseandfall_marry_male_target
        riseandfall_marry_female_target
        riseandfall_yearly_adventurer_cleanup_on_action
        riseandfall_yearly_adventurer_remove_variable
        riseandfall_apply_vassal_limit
        riseandfall_remove_vassal_limit
    }
}

random_yearly_everyone_pulse = {
    on_actions = {
        riseandfall_yearly_adventurer_press_claims
    }
}

quarterly_playable_pulse = {
    on_actions = {
        riseandfall_quarterly_adventurer_income
    }
}

on_siege_completion = {
    on_actions = {
        riseandfall_adventurer_siege_completion
    }
}


#---------------------------------------------------

riseandfall_yearly_adventurer = {
    trigger = {
        has_game_rule = riseandfall_adventurer_creator_enabled
    }
    effect = {
        every_living_character = {
            limit = { 
                any_claim = { count > 0 }
                is_landed = no
                # character-scoped check: compare the character's highest held title tier
                highest_held_title_tier < tier_barony
            }
            riseandfall_check_dynasty_for_adventurers_se = yes
        }
    }
}

riseandfall_yearly_adventurer_remove_variable = {
    trigger = {
        has_game_rule = riseandfall_adventurer_creator_enabled
    }
    effect = {
        every_ruler = {
            riseandfall_yearly_adventurer_remove_variable_se = yes
        }
    }
}

riseandfall_yearly_adventurer_press_claims = {
    trigger = {
        is_ai = yes
        has_character_flag = riseandfall_newadventurer
        has_government = landless_adventurer_government
        is_landed = no
        is_at_war = no
        is_imprisoned = no
    }
    effect = {
        save_scope_as = independent_adventurer
        riseandfall_adventurer_press_claims_se = yes
    }
}

riseandfall_yearly_adventurer_press_claims_scan = {
    trigger = {
        has_game_rule = riseandfall_adventurer_creator_enabled
    }
    effect = {
        every_ruler = {
            limit = {
                is_ai = yes
                has_character_flag = riseandfall_newadventurer
                has_government = landless_adventurer_government
                is_landed = no
                is_at_war = no
                is_imprisoned = no
            }
            save_scope_as = independent_adventurer
            riseandfall_adventurer_press_claims_se = yes
        }
    }
}

# Helper on_action: iterate adventurers and pay quarterly income
riseandfall_quarterly_adventurer_income = {
    effect = {
        every_ruler = {
            limit = {
                has_character_modifier = riseandfall_adventurer_gold_mod
                has_government = landless_adventurer_government
                is_landed = no
                is_imprisoned = no
            }
            riseandfall_adventurer_quarterly_income_se = yes
        }
    }
}


# Find every character with the adventurer gold modifier and run the removal check
riseandfall_yearly_remove_adventurer_gold_mod = {
    effect = {
        every_ruler = {
            limit = {
                has_character_modifier = riseandfall_adventurer_gold_mod
                NOT = { has_government = landless_adventurer_government }
            }

            riseandfall_remove_adventurer_gold_mod_if_not_landless_se = yes
        }
    }
}

# On_action that runs yearly to marry male landless adventurers (creates female spouse)
riseandfall_marry_male_target = {
    effect = {
        every_independent_ruler = {
            limit = {
                has_realm_law = camp_purpose_legitimists
                NOT = { has_trait_with_flag = can_not_marry }
                can_marry_trigger = yes
                is_imprisoned = no
                is_male = yes
                is_adult = yes
                is_married = no
                is_betrothed = no
            }
            save_scope_as = independent_ruler
            # Defer character-level checks to the scripted effect for performance.
            riseandfall_marry_male_target_se = yes
        }
    }
}


# On_action that runs yearly to marry female landless adventurers (creates male spouse)
riseandfall_marry_female_target = {
    effect = {
        every_independent_ruler = {
            limit = {
                has_realm_law = camp_purpose_legitimists
                NOT = { has_trait_with_flag = can_not_marry }
                can_marry_trigger = yes
                is_imprisoned = no
                is_female = yes
                is_adult = yes
                is_married = no
                is_betrothed = no
            }
            save_scope_as = independent_ruler
            riseandfall_marry_female_target_se = yes
        }
    }
}


# Monthly cleanup: run the adventurer cleanup scripted effect (previously in a separate file)
riseandfall_yearly_adventurer_cleanup_on_action = {
    trigger = {
        has_game_rule = riseandfall_adventurer_cleanup
    }
    effect = {
            riseandfall_adventurer_cleanup_se = yes
        }
    }

riseandfall_adventurer_siege_completion = {
    effect = {
        # on_siege_completion: root is the victorious occupant; barony is the
        # fortified title that completed its siege.
        scope:barony = { save_scope_as = rf_captured_barony }
        save_scope_as = rf_sieger
        riseandfall_on_siege_completion_se = yes
    }
}
