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, "
"));