diff --git a/UPDATES.md b/UPDATES.md index 98eda07..f4dabf3 100644 --- a/UPDATES.md +++ b/UPDATES.md @@ -1,5 +1,13 @@ --- -updatedAt: 2026-09-06T22:30:18+09:00 +updatedAt: 2026-09-07T00:16:12+09:00 +--- + +## 2026년 9월 7일 + +### 배치 분석의 인게임 1노트 점수 표시 + +`NEW` 배치 분석에서 기본 1노트 점수와 가창 보너스를 합산한 인게임 1노트 점수를 함께 확인할 수 있습니다. 일반 PERFECT·스킬/콤보 보너스 제외 기준이며, 가창 보너스 덮어쓰기 값도 즉시 반영합니다. + --- ## 2026년 9월 6일 diff --git a/src/routes/analysis/+page.svelte b/src/routes/analysis/+page.svelte index 91daab7..f5e4902 100644 --- a/src/routes/analysis/+page.svelte +++ b/src/routes/analysis/+page.svelte @@ -16,7 +16,7 @@ import PresetManager from '$lib/components/PresetManager.svelte'; import ScoreTimelineChart from '$lib/components/ScoreTimelineChart.svelte'; import SongPicker from '$lib/components/SongPicker.svelte'; - import { calculateBoardEffects, calculateExactScore, calculateUnitPower, countOptimizationCandidates, memoryParameterPermil, optimizeBoardConnectionCards, optimizeExactOrderAndCooldowns, perfectNoteScoreFromPower, toOptimizerCard } from '$lib/engine/index.ts'; + import { calculateBoardEffects, calculateExactScore, calculateUnitPower, countOptimizationCandidates, finalNoteScore, memoryParameterPermil, optimizeBoardConnectionCards, optimizeExactOrderAndCooldowns, perfectNoteScoreFromPower, toOptimizerCard } from '$lib/engine/index.ts'; import type { CooldownReduction, EffectiveSkillWindow, ExactOptimizationResult, ExactSongChart, OptimizableConnectionCard, OptimizationProgress, ScoreAchievementProbabilities, SkillWindow } from '$lib/engine/index.ts'; import { USER_DATA_STORAGE_KEY } from '$lib/storage/browser-storage'; import { createScoreOptimizerWorker } from '$lib/workers/create-score-optimizer-worker.ts'; @@ -168,6 +168,7 @@ })(); $: overallPower = unitPower.overallPower; $: perfectNoteScore = perfectNoteScoreFromPower(overallPower, selectedChart?.scoreRatio ?? null); + $: inGamePerfectNoteScore = finalNoteScore(perfectNoteScore, boardEffects.directSongScoreBonusPercent); $: scoreCalibrationLabel = selectedChart?.scoreCalibrationSource === 'formula-v1' ? '곡별 공식' : selectedChart?.scoreCalibrationSource === 'measured' ? '실측값' : '추정값'; $: timelineDuration = selectedChart?.durationSeconds ?? 0; $: displayedEffectiveActiveWindows = mergeEffectiveActiveWindows(result?.effectiveActiveWindows ?? []); @@ -883,7 +884,16 @@ updateSongScoreBonusOverride(event.currentTarget)}>
인게임 1노트는 일반 PERFECT 기준으로 가창 보너스를 반영한 점수입니다. 스킬·콤보 보너스는 제외하며, 기본점수의 소수점을 유지해 보너스를 적용한 뒤 올림합니다.