Skip to content

Report remaining maps/mobs and total recorded kills in game and on the website

Idan Cohen requested to merge issue/22-26-world-reporting into genocide

Players can use @remaining [minLevel maxLevel [page]] and @kills; the Home page provides the same remaining-content report with inclusive mob-level filters and pagination. Total recorded kills uses exactly SELECT COALESCE(SUM(killcount), 0) AS total_recorded_kills FROM maps, retaining precise wide values and an empty-result zero.

Reporting subtracts persisted consumption from original monster populations. Missing rows count as zero, NPCs are excluded, linked content keeps each requested map's consumption, and partial/depleted/unknown/anomalous data is handled explicitly. The Java metadata index never creates game maps or monsters. Node independently reads SQL and a matching packaged catalogue; it does not call a new Java API. The old Python entry point is read-only and no longer seeds zero rows. CI exports the catalogue, compares it with Java and packages it into the backend. MRs !24/!36 were inspected and useful extraction/report concepts reused. See docs/world-reporting.md.

Related to #22 (closed) and #26 (closed). Validation:

  • Python/Node/Java contracts pass, including empty and wide totals, missing/partial/depleted populations, linked metadata, unknown levels, anomaly warnings and stable pagination. All 5,313 original Java/Python catalogue entries match exactly.
  • Disposable tmpfs MySQL checks pass for Java player commands and the actual Express/production mysql adapter, including read-only snapshots, no seeded rows, exact totals and 200/400/503 states. Combined server changes pass the existing classless/draft/commit-fault suite too.
  • Four website component tests and the production frontend/backend builds pass. Rendered browser checks cover inclusive filters, pagination, empty/error/retry recovery, desktop and mobile/table scrolling. GitLab CI lint passes without errors or warnings.

Website screenshots below use synthetic records, including a deliberate >double-precision total; SQL evidence uses a separate disposable database. No campaign consumption was reset, seeded or changed. No live gameplay, merge or deployment is claimed. Default base: 76e344abd7e7f5720dd0e634ae2a728e4e8da6cc.

Synthetic website report: desktop

Synthetic website report: mobile

GitLab review CI: pipeline 751 passed. No deployment jobs ran.

Edited by Idan Cohen

Merge request reports