mirror of
https://github.com/PhaseII-eAmusement-Network/PhaseWeb3-Vue.git
synced 2026-03-21 17:54:26 -05:00
This commit is contained in:
parent
bc82f87bc7
commit
d529878d7a
|
|
@ -1,4 +1,4 @@
|
|||
VITE_APP_VERSION="3.0.35"
|
||||
VITE_APP_VERSION="3.0.36"
|
||||
VITE_API_URL="http://localhost:8000/"
|
||||
VITE_API_KEY="your_api_key_should_be_here"
|
||||
VITE_ASSET_PATH="/assets"
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
VITE_APP_VERSION="3.0.35"
|
||||
VITE_APP_VERSION="3.0.36"
|
||||
VITE_API_URL="https://restfulsleep.phaseii.network"
|
||||
VITE_API_KEY="your_api_key_should_be_here"
|
||||
VITE_ASSET_PATH="https://cdn.phaseii.network/file/PhaseII/web-assets"
|
||||
|
|
|
|||
|
|
@ -34,5 +34,6 @@
|
|||
"3.0.32": ["- (Major) Change phase \"Attempt\" to \"Score\"", "- (Bugfix) Fix pop'n music version sorting", "- (Bugfix) Fix Gitadora chart data formatting issues", "- (Bugfix) Filter personal records to songs with scores"],
|
||||
"3.0.33": ["- (Major) Condense all score tables to one parser and format", "- (Major) Add more game metadata", "- (Bugfix) Fix difficulties showing as `NaN`", "- (Beta) Add a developmental device plugin for card effect"],
|
||||
"3.0.34": ["- (Major) Add support for Jubeat titles", "- (Major) Add base BTA support"],
|
||||
"3.0.35": ["- (Bugfix) Fix cursor hover state on news card and profile card", "- (Minor) Update DDR game options", "- (Minor) Update IIDX event settings", "- (Minor) Add IIDX 32 basic QPro settings"]
|
||||
"3.0.35": ["- (Bugfix) Fix cursor hover state on news card and profile card", "- (Minor) Update DDR game options", "- (Minor) Update IIDX event settings", "- (Minor) Add IIDX 32 basic QPro settings"],
|
||||
"3.0.36": ["- (Major) Finish more game metadata (DRS, Museca, Nostalgia, pop'n, jubeat)"]
|
||||
}
|
||||
|
|
@ -1574,7 +1574,19 @@ export const gameData = [
|
|||
500: "A",
|
||||
600: "S",
|
||||
700: "SS",
|
||||
800: "EXC",
|
||||
800: "SSS",
|
||||
900: "EXC",
|
||||
},
|
||||
ratingTable: {
|
||||
0: 100,
|
||||
500000: 200,
|
||||
700000: 300,
|
||||
800000: 400,
|
||||
850000: 500,
|
||||
900000: 600,
|
||||
950000: 700,
|
||||
980000: 800,
|
||||
1000000: 900,
|
||||
},
|
||||
medalTable: {
|
||||
100: "FAILED",
|
||||
|
|
@ -1703,9 +1715,25 @@ export const gameData = [
|
|||
1: "ORANGE",
|
||||
2: "RED",
|
||||
},
|
||||
rankTable: {
|
||||
100: "没 (DEATH)",
|
||||
200: "拙 (POOR)",
|
||||
300: "凡 (MEDIOCRE)",
|
||||
400: "佳 (GOOD)",
|
||||
500: "良 (GREAT)",
|
||||
600: "優 (EXCELLENT)",
|
||||
700: "秀 (SUPERB)",
|
||||
800: "傑 (MASTERPIECE)",
|
||||
900: "傑 (PERFECT)",
|
||||
},
|
||||
medalTable: {
|
||||
100: "FAILED",
|
||||
200: "CLEARED",
|
||||
300: "FULL COMBO",
|
||||
},
|
||||
scoreHeaders: [
|
||||
{ text: "Combos", value: "combo", width: 80 },
|
||||
{ text: "Halo", value: "halo", width: 80 },
|
||||
{ text: "Combos", value: "data.combo", width: 80 },
|
||||
{ text: "Medal", value: "data.clear_type", width: 80 },
|
||||
],
|
||||
versions: [
|
||||
{
|
||||
|
|
@ -1731,8 +1759,8 @@ export const gameData = [
|
|||
3: "REAL",
|
||||
},
|
||||
scoreHeaders: [
|
||||
{ text: "Combos", value: "combo", width: 80 },
|
||||
{ text: "Halo", value: "halo", width: 80 },
|
||||
{ text: "Combos", value: "data.combo", width: 80 },
|
||||
// { text: "Medal", value: "data.clear_flag", width: 80 },
|
||||
],
|
||||
versions: [
|
||||
{
|
||||
|
|
@ -1809,10 +1837,44 @@ export const gameData = [
|
|||
2: "HYPER",
|
||||
3: "EX",
|
||||
},
|
||||
rankTable: {
|
||||
100: "E",
|
||||
200: "D",
|
||||
300: "C",
|
||||
400: "B",
|
||||
500: "A",
|
||||
600: "AA",
|
||||
700: "AAA",
|
||||
800: "S",
|
||||
},
|
||||
ratingTable: {
|
||||
0: 100,
|
||||
50000: 200,
|
||||
62000: 300,
|
||||
72000: 400,
|
||||
82000: 500,
|
||||
90000: 600,
|
||||
95000: 700,
|
||||
98000: 800,
|
||||
},
|
||||
medalTable: {
|
||||
100: "🔴 FAILED",
|
||||
200: "♦️ FAILED",
|
||||
300: "⭐ FAILED",
|
||||
400: "EASY CLEAR",
|
||||
500: "🟢 CLEAR",
|
||||
600: "🔷 CLEAR",
|
||||
700: "🌟 CLEAR",
|
||||
800: "🟡 FULL COMBO",
|
||||
900: "💎 FULL COMBO",
|
||||
1000: "🌠 FULL COMBO",
|
||||
1100: "PERFECT",
|
||||
},
|
||||
scoreHeaders: [
|
||||
{ text: "Combos", value: "combo", width: 80 },
|
||||
{ text: "Halo", value: "halo", width: 80 },
|
||||
{ text: "Combos", value: "data.combo", width: 80 },
|
||||
{ text: "Medal", value: "data.medal", width: 120 },
|
||||
],
|
||||
scoreMultiplier: 10,
|
||||
versions: [
|
||||
{
|
||||
id: 0,
|
||||
|
|
|
|||
|
|
@ -7,7 +7,24 @@ export function shouldRenderChart(difficulty, chartTable, chartKey) {
|
|||
|
||||
export function formatDifficulty(difficulty, difficultyDenom = 1) {
|
||||
if (isNaN(difficulty / difficultyDenom)) {
|
||||
return difficulty;
|
||||
return difficulty.difnum ? difficulty.difnum : difficulty;
|
||||
}
|
||||
return difficulty / difficultyDenom;
|
||||
}
|
||||
|
||||
export function rankFromScore(ratingTable, score) {
|
||||
const thresholds = Object.entries(ratingTable)
|
||||
.map(([k, v]) => [Number(k), v])
|
||||
.sort((a, b) => a[0] - b[0]);
|
||||
|
||||
var result = 100;
|
||||
for (const [threshold, rank] of thresholds) {
|
||||
if (score >= threshold) {
|
||||
result = rank;
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import { formatSortableDate } from "@/constants/date";
|
||||
import { formatDifficulty } from "@/constants/scoreDataFilters";
|
||||
import { formatDifficulty, rankFromScore } from "@/constants/scoreDataFilters";
|
||||
|
||||
export function scoreHeaders(thisGame) {
|
||||
const headers = [
|
||||
|
|
@ -55,19 +55,6 @@ export function formatScoreTable(thisGame, scores) {
|
|||
item.timestamp = formatSortableDate(item.timestamp);
|
||||
}
|
||||
|
||||
if (item.points != undefined) {
|
||||
item.points = item.points
|
||||
.toString()
|
||||
.replace(/\B(?<!\.\d*)(?=(\d{3})+(?!\d))/g, ",");
|
||||
}
|
||||
|
||||
if (item.data?.stats?.score != undefined) {
|
||||
item.exscore = item.points.toString();
|
||||
item.points = item.data?.stats?.score
|
||||
.toString()
|
||||
.replace(/\B(?<!\.\d*)(?=(\d{3})+(?!\d))/g, ",");
|
||||
}
|
||||
|
||||
if (item.song?.chart != undefined && thisGame.chartTable) {
|
||||
item.song.chart = `${thisGame.chartTable[item.song?.chart]} - ${formatDifficulty(
|
||||
item.song.data?.difficulty,
|
||||
|
|
@ -87,6 +74,14 @@ export function formatScoreTable(thisGame, scores) {
|
|||
item.data.medal = thisGame.medalTable[item.data?.clear_status];
|
||||
}
|
||||
|
||||
if (item.data?.clear_type != undefined && thisGame.medalTable) {
|
||||
item.data.clear_type = thisGame.medalTable[item.data?.clear_type];
|
||||
}
|
||||
|
||||
if (!item.data?.rank && thisGame.ratingTable) {
|
||||
item.data.rank = rankFromScore(thisGame.ratingTable, item.points);
|
||||
}
|
||||
|
||||
if (item.data?.rank != undefined && thisGame.rankTable) {
|
||||
item.data.rank = thisGame.rankTable[item.data?.rank];
|
||||
}
|
||||
|
|
@ -137,6 +132,23 @@ export function formatScoreTable(thisGame, scores) {
|
|||
item.data.clear_gauge = `${item.data?.clear_gauge / 10}%`;
|
||||
}
|
||||
|
||||
if (!item.data?.combo) {
|
||||
item.data.combo = 0;
|
||||
}
|
||||
|
||||
if (item.points != undefined) {
|
||||
item.points = item.points
|
||||
.toString()
|
||||
.replace(/\B(?<!\.\d*)(?=(\d{3})+(?!\d))/g, ",");
|
||||
}
|
||||
|
||||
if (item.data?.stats?.score != undefined) {
|
||||
item.exscore = item.points.toString();
|
||||
item.points = item.data?.stats?.score
|
||||
.toString()
|
||||
.replace(/\B(?<!\.\d*)(?=(\d{3})+(?!\d))/g, ",");
|
||||
}
|
||||
|
||||
formattedItems.push(item);
|
||||
}
|
||||
return formattedItems;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user