* build(client): add 'lintfix' target matching the server
* docs(lr2hook): suggest lr2_chainload instead of BokutachiLauncher.exe
BokutachiLauncher.exe is no longer a part of BokutachiHook.
* refactor(server/lr2hook): G-ATTACK, P-ATTACK and HAZARD are not HARD
* feat(server/lr2hook): parse extendedJudgements
* feat(server/lr2hook): use fast-slow and early/late judgements
* test(server/lr2hook): make clear that in this test notesPlayed != notesTotal
* feat(server/lr2hook): calculate BP by hand when exiting chart early
* feat(server/lr2hook): parse rseed
* feat(server/lr2hook): parse extendedHpGraphs
* feat(server/lr2hook): parse unixTimestamp
* feat(server/lr2hook): use unixTimestamp as score play time
Especially useful as BokutachiHook now retries sending scores after some
time on connections errors.
* feat(common/bms+server/lr2hook+docs): add gaugeHistory{Easy,Groove,Hard}
Could also save graphs for unimplemented gauges, not done here as I
don't know if they are ever going to be implemented while they take some
decent space.
* feat(client/bms): support several gauges
Ugly IIFE inside IIFE is work-around for eslint bug `Expected a 'break'
statement before 'case'`.
* sdvx: add ac MAXXIVE CLEAR lamp
* seperate USC lamps from SDVX for tests
* Add maxxive in converter for api-cg/sdvx
* feat: add migration
* fix: pre-empt service support
* lint(fix)
* fix: my typescript tooling stopped working
* fix: test
---------
Co-authored-by: blobdash <fruityenloops@gmail.com>
Co-authored-by: zkldi <20380519+zkldi@users.noreply.github.com>
* [chunithm] split lamp into combo lamp and clear lamp
* ignore nonsense lint
* fix myt converter tests
* fix chunitachi batch manual
* mfw edited wrong file
* fix(migration): only migrate lamp-related showcases
* remove chart lamp showcases
* remove unused imports
* fix: limit re-pb to chunithm scores, migrate chart lamp showcases to comboLamp
* fix migration of comboLamp progress
* fix: updateMany with multi: true
* fix: when updating references, ensure only known IDs are in
* fix(client): make red stand out more
* fix(client): lamp sorting
* feat(server): validate clear and combo lamps based on judgements
* fix(server): validate combo lamps based on score boundary
* fix: reword validation errors to stay consistent
* fix: correct explanation
* fix: how was I this stupid?
* fix: update blacklisted scores too
* fix: bulk write all the updates
* fix: bulkWrite harder
* fix: i probably need sleep
* all of game-settings to bulkWrite
* fix folder lamp goal nonsense
* maybe fix colors
* fix: name PB merges
* chore: properly test PB merge
* mfw reversed
* fix(SessionRaiseBreakdown): lamp name
* rename to noteLamp
* why is eslint even complaining here?
* rename the enums
* fix tests
* tweak colors of lamps
* [chunithm] Update to CHUNITHM VERSE
* fix: change naiveRating to 50 songs
* fix: unfuck duplicate charts caused by later options modifying earlier options
* feat: new rating classes for verse
* fix(bot): chunithm min scores is 50
* add charts to VERSE Omnimix
* add search aliases for new songs
* disable verse intl for now
* fix: floating-point profile rating calculation
* fix: add chunithm and make the test clearer
* fix: add rating formatters
The implicit formatter is FloorToNDP(). Ugh.
* feat: support exScore, fast, slow, maxCombo as optional metrics for DDR
* chore: lint-fix in common
* fix: remove exScore from calculated metrics for DDR
* fix: use clearer logic for number|null
---------
Co-authored-by: zkldi <20380519+zkldi@users.noreply.github.com>
* chore,fix: upgrade ongeki seeds
The dataset is up to date up until March 27th, 2024.
A single chart is missing:
https://wikiwiki.jp/gameongeki/怒槌~光吉猛修一部謎~
Added maxPlatScore and inGameID.
Added alt (romaji) song titles.
Removed the wikiwiki scraper because it's no longer relevant.
Restored the score column that relied on maxPlatScore.
Fixed the client crashing when you click Lamps Only in a geki session.
Removed Act 2.
* fix: missing fields in the test chart
* chore: get rid of isUnranked
* fix: clarify the track ID range
* feat: get rid of isHot and isLatest in code
* feat: remove hot/latest from seeds
* feat: migrate away from them too
* fix: 21
* fix: again
* fix: again
* fix: again
* feat: initial ongeki support
* feat: initial ongeki seeds
* chore: link to a basic score exporter
* fix: unhardcode the colSpan of score dropdowns
Fixes ongeki and doesn't break chunithm
* fix: make bellCount optional to match judgements and damage
* docs: add a page for Ongeki
* feat: ongeki seeder
* feat: implement isHot
Also restore Arcaea to test.conf.json5 (it was a mistake)
* fix: add isHot to the seeder
* fix: proper handling of re:masters
Also change non-full-bell from an empty string to "NONE", for clarity
* docs: document the re:master fix
* feat: update rg-stats to 0.5.5
enables ongeki calcs
* chore: lockfile
* fix: get rid of scales as they're unused
* fix: update name->NAME
* minrelevantvalue should be one of the values?
* fix: add property that must be there?
* fix: jesus christ the tests are loud
* better docs on mrv
* fix: remove platdelta, make platscore optional
* fix: grade B tests oh my god
* fix: rating check
* fix: pb merge check
* fix: pb merge check #2
* fix: use nowrap in all lamp cells
* fix: tidy up platcell
* fix: all of these MUST be part of scoreID
* fix: remove unused code
* feat: remove note counts & isHot
* chore: bump rg-stats
---------
Co-authored-by: zkldi <20380519+zkldi@users.noreply.github.com>