mirror of https://github.com/hykilpikonna/AquaDX
[O] Advanced achievement rounding
parent
b13af00061
commit
3bf3241bd7
|
@ -4,7 +4,7 @@
|
|||
import { slide } from "svelte/transition";
|
||||
import { DATA_HOST } from "../libs/config";
|
||||
import { t } from "../libs/i18n";
|
||||
import { type GameName, getMult } from "../libs/scoring";
|
||||
import { type GameName, getMult, roundFloor } from "../libs/scoring";
|
||||
import { coverNotFound } from "../libs/ui";
|
||||
import type { MusicMeta } from "../libs/generalTypes";
|
||||
import { tooltip } from "../libs/ui";
|
||||
|
@ -35,7 +35,7 @@
|
|||
|
||||
<span class="rank-text">{("" + getMult(mapData[3], game)[2]).replace("p", "+")}</span>
|
||||
<span class="rank-num" use:tooltip={(mapData[3] / 10000).toFixed(4)}>
|
||||
{(mapData[3] / 10000).toFixed(1)}%
|
||||
{roundFloor(mapData[3], game, 1)}%
|
||||
</span>
|
||||
</span>
|
||||
{#if game === 'mai2'}
|
||||
|
|
|
@ -66,7 +66,6 @@ const multTable = {
|
|||
]
|
||||
}
|
||||
|
||||
|
||||
export function getMult(achievement: number, game: GameName) {
|
||||
achievement /= 10000
|
||||
const mt = multTable[game]
|
||||
|
@ -75,3 +74,12 @@ export function getMult(achievement: number, game: GameName) {
|
|||
}
|
||||
return [ 0, 0, 0 ]
|
||||
}
|
||||
|
||||
export function roundFloor(achievement: number, game: GameName, digits = 2) {
|
||||
achievement /= 10000
|
||||
// Round, but if the rounded number reaches the next rank, use floor instead
|
||||
const mult = getMult(achievement, game);
|
||||
const rounded = achievement.toFixed(digits);
|
||||
if (getMult(+rounded, game)[2] === mult[2]) return rounded;
|
||||
return (+rounded - Math.pow(10, -digits)).toFixed(digits);
|
||||
}
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
import moment from "moment";
|
||||
import 'chartjs-adapter-moment';
|
||||
import { CARD, DATA, GAME, USER } from "../libs/sdk";
|
||||
import { type GameName, getMult } from "../libs/scoring";
|
||||
import { type GameName, getMult, roundFloor } from "../libs/scoring";
|
||||
import StatusOverlays from "../components/StatusOverlays.svelte";
|
||||
import Icon from "@iconify/svelte";
|
||||
import { GAME_TITLE, t } from "../libs/i18n";
|
||||
|
@ -271,11 +271,13 @@
|
|||
</span>
|
||||
<span class={`rank-${getMult(r.achievement, game)[2].toString()[0]}`}>
|
||||
<span class="rank-text">{("" + getMult(r.achievement, game)[2]).replace("p", "+")}</span>
|
||||
<span class="rank-num">{(r.achievement / 10000).toFixed(2)}%</span>
|
||||
<span class="rank-num" use:tooltip={(r.achievement / 10000).toFixed(4)}>
|
||||
{roundFloor(r.achievement, game, 1)}%
|
||||
</span>
|
||||
</span>
|
||||
{#if game === 'mai2' || game === 'wacca'}
|
||||
<span class:increased={r.afterRating - r.beforeRating > 0} class="dx-change">
|
||||
{(r.afterRating - r.beforeRating).toFixed(0)}
|
||||
{r.afterRating === r.beforeRating ? '-' : (r.afterRating - r.beforeRating).toFixed(0)}
|
||||
</span>
|
||||
{/if}
|
||||
</div>
|
||||
|
|
Loading…
Reference in New Issue