﻿# UI prices and ranking values are cached on row characters when the Exchange is rebuilt.
# Buy sort modes: 1 ask low-high, 2 ask high-low, 3 total stats, 4 Dip, 5 Mar, 6 Ste, 7 Int, 8 Lea, 9 Pro.
domcom_csr_ui_total_stats_value = {
    value = diplomacy
    add = martial
    add = stewardship
    add = intrigue
    add = learning
    add = prowess
}

domcom_csr_ui_buy_order_value = {
    value = 0
    if = {
        limit = { has_variable = domcom_csr_ui_market_player var:domcom_csr_ui_market_player = { var:domcom_csr_ui_buy_sort = 1 } }
        if = { limit = { has_variable = domcom_csr_ui_ask_price } value = var:domcom_csr_ui_ask_price }
        multiply = -1
    }
    else_if = {
        limit = { has_variable = domcom_csr_ui_market_player var:domcom_csr_ui_market_player = { var:domcom_csr_ui_buy_sort = 2 } }
        if = { limit = { has_variable = domcom_csr_ui_ask_price } value = var:domcom_csr_ui_ask_price }
    }
    else_if = { limit = { has_variable = domcom_csr_ui_market_player var:domcom_csr_ui_market_player = { var:domcom_csr_ui_buy_sort = 3 } } value = domcom_csr_ui_total_stats_value }
    else_if = { limit = { has_variable = domcom_csr_ui_market_player var:domcom_csr_ui_market_player = { var:domcom_csr_ui_buy_sort = 4 } } value = diplomacy }
    else_if = { limit = { has_variable = domcom_csr_ui_market_player var:domcom_csr_ui_market_player = { var:domcom_csr_ui_buy_sort = 5 } } value = martial }
    else_if = { limit = { has_variable = domcom_csr_ui_market_player var:domcom_csr_ui_market_player = { var:domcom_csr_ui_buy_sort = 6 } } value = stewardship }
    else_if = { limit = { has_variable = domcom_csr_ui_market_player var:domcom_csr_ui_market_player = { var:domcom_csr_ui_buy_sort = 7 } } value = intrigue }
    else_if = { limit = { has_variable = domcom_csr_ui_market_player var:domcom_csr_ui_market_player = { var:domcom_csr_ui_buy_sort = 8 } } value = learning }
    else = { value = prowess }
}

# Marriage subject list sort modes: 1 Total, 2 Dip, 3 Mar, 4 Ste, 5 Int, 6 Lea, 7 Pro.
# This ranks the player's unmarried adult slaves before a subject is selected.
domcom_csr_ui_marriage_slave_order_value = {
    value = 0
    if = { limit = { has_variable = domcom_csr_ui_market_player var:domcom_csr_ui_market_player = { var:domcom_csr_ui_marriage_slave_sort = 1 } } value = domcom_csr_ui_total_stats_value }
    else_if = { limit = { has_variable = domcom_csr_ui_market_player var:domcom_csr_ui_market_player = { var:domcom_csr_ui_marriage_slave_sort = 2 } } value = diplomacy }
    else_if = { limit = { has_variable = domcom_csr_ui_market_player var:domcom_csr_ui_market_player = { var:domcom_csr_ui_marriage_slave_sort = 3 } } value = martial }
    else_if = { limit = { has_variable = domcom_csr_ui_market_player var:domcom_csr_ui_market_player = { var:domcom_csr_ui_marriage_slave_sort = 4 } } value = stewardship }
    else_if = { limit = { has_variable = domcom_csr_ui_market_player var:domcom_csr_ui_market_player = { var:domcom_csr_ui_marriage_slave_sort = 5 } } value = intrigue }
    else_if = { limit = { has_variable = domcom_csr_ui_market_player var:domcom_csr_ui_market_player = { var:domcom_csr_ui_marriage_slave_sort = 6 } } value = learning }
    else = { value = prowess }
}

# Owned-slave list sort modes: 1 Total, 2 Dip, 3 Mar, 4 Ste, 5 Int, 6 Lea, 7 Pro.
domcom_csr_ui_owned_order_value = {
    value = 0
    if = { limit = { has_variable = domcom_csr_ui_market_player var:domcom_csr_ui_market_player = { var:domcom_csr_ui_owned_sort = 1 } } value = domcom_csr_ui_total_stats_value }
    else_if = { limit = { has_variable = domcom_csr_ui_market_player var:domcom_csr_ui_market_player = { var:domcom_csr_ui_owned_sort = 2 } } value = diplomacy }
    else_if = { limit = { has_variable = domcom_csr_ui_market_player var:domcom_csr_ui_market_player = { var:domcom_csr_ui_owned_sort = 3 } } value = martial }
    else_if = { limit = { has_variable = domcom_csr_ui_market_player var:domcom_csr_ui_market_player = { var:domcom_csr_ui_owned_sort = 4 } } value = stewardship }
    else_if = { limit = { has_variable = domcom_csr_ui_market_player var:domcom_csr_ui_market_player = { var:domcom_csr_ui_owned_sort = 5 } } value = intrigue }
    else_if = { limit = { has_variable = domcom_csr_ui_market_player var:domcom_csr_ui_market_player = { var:domcom_csr_ui_owned_sort = 6 } } value = learning }
    else = { value = prowess }
}

domcom_csr_ui_sell_order_value = {
    value = 0
    if = { limit = { has_variable = domcom_csr_ui_bid_price } value = var:domcom_csr_ui_bid_price }
    if = { limit = { has_variable = domcom_csr_ui_market_player var:domcom_csr_ui_market_player = { var:domcom_csr_ui_sell_sort = 2 } } multiply = -1 }
}

# Bulk selling must always choose the highest executable bid, regardless of the current Sell-tab sort.
domcom_csr_bulk_bid_order_value = {
    value = 0
    if = { limit = { has_variable = domcom_csr_ui_bid_price } value = var:domcom_csr_ui_bid_price }
}

domcom_csr_ui_effective_bid_value = {
    value = carnx_slave_bid_price_value
    max = scope:buyer.short_term_gold
    min = 0
}

# Marriage partner sort modes: 1 Best Children, 2 Apex, 3 Total, 4 Dip, 5 Mar, 6 Ste, 7 Int, 8 Lea, 9 Pro.
# Best Children deliberately reuses DDM's full genetic/child-quality score. The preparation effect saves
# scope:ddm_match_subject as the selected slave and scope:ddm_match_actor as the owner before sorting.
domcom_csr_marriage_child_fit_value = {
    value = ddm_match_child_score_value
}

domcom_csr_marriage_apex_fit_value = {
    value = domcom_csr_ui_total_stats_value
    add = { value = fertility multiply = 100 }
    if = { limit = { domcom_has_strategic_genetics_trigger = yes } add = 5000 }
    if = { limit = { has_trait = intellect_good_3 } add = 500 }
    if = { limit = { has_trait = physique_good_3 } add = 350 }
    if = { limit = { has_trait = beauty_good_3 } add = 250 }
    if = { limit = { has_trait = pure_blooded } add = 500 }
    if = { limit = { has_trait = fecund } add = 300 }
}

domcom_csr_ui_marriage_order_value = {
    value = 0
    if = { limit = { has_variable = domcom_csr_ui_market_player var:domcom_csr_ui_market_player = { var:domcom_csr_ui_marriage_sort = 1 } } value = domcom_csr_marriage_child_fit_value }
    else_if = { limit = { has_variable = domcom_csr_ui_market_player var:domcom_csr_ui_market_player = { var:domcom_csr_ui_marriage_sort = 2 } } value = domcom_csr_marriage_apex_fit_value }
    else_if = { limit = { has_variable = domcom_csr_ui_market_player var:domcom_csr_ui_market_player = { var:domcom_csr_ui_marriage_sort = 3 } } value = domcom_csr_ui_total_stats_value }
    else_if = { limit = { has_variable = domcom_csr_ui_market_player var:domcom_csr_ui_market_player = { var:domcom_csr_ui_marriage_sort = 4 } } value = diplomacy }
    else_if = { limit = { has_variable = domcom_csr_ui_market_player var:domcom_csr_ui_market_player = { var:domcom_csr_ui_marriage_sort = 5 } } value = martial }
    else_if = { limit = { has_variable = domcom_csr_ui_market_player var:domcom_csr_ui_market_player = { var:domcom_csr_ui_marriage_sort = 6 } } value = stewardship }
    else_if = { limit = { has_variable = domcom_csr_ui_market_player var:domcom_csr_ui_market_player = { var:domcom_csr_ui_marriage_sort = 7 } } value = intrigue }
    else_if = { limit = { has_variable = domcom_csr_ui_market_player var:domcom_csr_ui_market_player = { var:domcom_csr_ui_marriage_sort = 8 } } value = learning }
    else = { value = prowess }
}

# 2.6.7 — Workforce ranking. These mirror CSR's own aptitude emphasis without duplicating its legality checks.
domcom_csr_workforce_captain_fit_value = {
    value = martial
    multiply = 2
    add = { value = prowess multiply = 2 }
}

domcom_csr_workforce_eunuch_fit_value = {
    value = stewardship
    multiply = 2
    add = { value = intrigue multiply = 2 }
}

domcom_csr_workforce_concubine_fit_value = {
    value = diplomacy
    multiply = 2
}
