From 54f309030e51630152a52d7555b29c75f505be56 Mon Sep 17 00:00:00 2001 From: Martin Michelsen Date: Wed, 8 Oct 2025 21:37:30 -0700 Subject: [PATCH] fix exact rate hint in drop tables --- src/RareItemSet.cc | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/RareItemSet.cc b/src/RareItemSet.cc index d6ef60e8..1e6d9ad1 100644 --- a/src/RareItemSet.cc +++ b/src/RareItemSet.cc @@ -704,9 +704,12 @@ string RareItemSet::serialize_html( auto frac = phosg::reduce_fraction(spec.probability, 0x100000000); + std::string exact_token = std::format("Exact rate: {} / {}", frac.first, frac.second); if (common_item_set && type_def && type_def->rt_index != 0xFF) { auto table = common_item_set->get_table(episode, mode, difficulty, section_id); - frac.first *= table->enemy_type_drop_probs.at(type_def->rt_index); + uint8_t dar = table->enemy_type_drop_probs.at(type_def->rt_index); + exact_token += std::format(" (DAR: {}%)", dar); + frac.first *= dar; frac.second *= 100; frac = phosg::reduce_fraction(frac.first, frac.second); } @@ -736,9 +739,7 @@ string RareItemSet::serialize_html( string denom_token = (floor(denom) == denom) ? std::format("1 / {:.0f}", denom) : std::format("1 / {:.02f}", denom); - tokens.emplace_back(std::format( - "{}", - frac.first, frac.second, denom_token)); + tokens.emplace_back(std::format("{}", exact_token, denom_token)); } if (!blocks.empty()) { blocks.emplace_back(phosg::join(tokens, "
"));