danoniplus 50.5.3 → 51.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/js/danoni_main.js +9 -4
- package/js/lib/danoni_constants.js +50 -23
- package/js/lib/dataLoader.js +15 -7
- package/js/lib/dosConverter.js +155 -177
- package/js/lib/keyconfig.js +40 -39
- package/js/lib/mainWindow.js +49 -22
- package/js/lib/result.js +25 -13
- package/js/lib/settings.js +261 -173
- package/js/lib/title.js +56 -36
- package/js/template/danoni_custom.js +2 -2
- package/package.json +1 -1
package/js/lib/keyconfig.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Source by tickle
|
|
7
7
|
* Created : 2026/09/13
|
|
8
|
-
* Revised : 2026/09/
|
|
8
|
+
* Revised : 2026/09/23 (v51.0.0)
|
|
9
9
|
*
|
|
10
10
|
* https://github.com/cwtickle/danoniplus
|
|
11
11
|
*/
|
|
@@ -884,9 +884,10 @@ const keyConfigInit = (_kcType = g_kcType, _initFlg = false) => {
|
|
|
884
884
|
|
|
885
885
|
// キーパターンの変更
|
|
886
886
|
g_keyObj.currentPtn = searchPattern(g_keyObj.currentPtn, _sign, g_headerObj.transKeyUse, _skipFlg);
|
|
887
|
+
const keyCtrlPtn = `${g_keyObj.currentKey}_${g_keyObj.currentPtn}`;
|
|
887
888
|
|
|
888
889
|
// カラーグループ、シャッフルグループの再設定
|
|
889
|
-
g_keycons.groups.forEach(type => resetGroupList(type,
|
|
890
|
+
g_keycons.groups.forEach(type => resetGroupList(type, keyCtrlPtn));
|
|
890
891
|
|
|
891
892
|
// 曲中ショートカットキーの切り替え
|
|
892
893
|
setPlayingShortcut();
|
|
@@ -897,7 +898,7 @@ const keyConfigInit = (_kcType = g_kcType, _initFlg = false) => {
|
|
|
897
898
|
// シャッフルグループのデフォルト値からの差異表示(色付け)
|
|
898
899
|
// 再描画後で無いと色付けできないため、keyConfigInit() 実行後に処理
|
|
899
900
|
if (g_headerObj.shuffleUse) {
|
|
900
|
-
changeShuffleConfigColor(
|
|
901
|
+
changeShuffleConfigColor(keyCtrlPtn, g_keyObj[`shuffle${keyCtrlPtn}_${g_keycons.shuffleGroupNum}`]);
|
|
901
902
|
}
|
|
902
903
|
};
|
|
903
904
|
|
|
@@ -936,8 +937,8 @@ const keyConfigInit = (_kcType = g_kcType, _initFlg = false) => {
|
|
|
936
937
|
}
|
|
937
938
|
}, g_cssObj.button_Back),
|
|
938
939
|
|
|
939
|
-
createDivCss2Label(`lblPattern`, `${g_lblNameObj.KeyPattern}: ${g_keyObj.currentPtn === -1
|
|
940
|
-
'Self' : g_keyObj.currentPtn + 1}${lblTransKey}`, g_lblPosObj.lblPattern),
|
|
940
|
+
createDivCss2Label(`lblPattern`, `${g_lblNameObj.KeyPattern}: ${g_keyObj.currentPtn === -1
|
|
941
|
+
? 'Self' : g_keyObj.currentPtn + 1}${lblTransKey}`, g_lblPosObj.lblPattern),
|
|
941
942
|
|
|
942
943
|
// パターン変更ボタン描画(右回り)
|
|
943
944
|
createCss2Button(`btnPtnChangeR`, `>`, () => true, {
|
|
@@ -1337,11 +1338,16 @@ const keyconfigKeyboardPreview = (() => {
|
|
|
1337
1338
|
// MAIN_ROWS と行インデックスを揃えて配置する。空行はスキップされる。
|
|
1338
1339
|
const NAV_ROWS = [
|
|
1339
1340
|
{ keys: [{ code: `PrintScreen`, label: `Print\nScreen` }, { code: `ScrollLock`, label: `Scroll\nLock` }, { code: `Pause` }] },
|
|
1340
|
-
|
|
1341
|
-
{ keys: [{ code: `
|
|
1342
|
-
|
|
1343
|
-
{ keys: [{ code:
|
|
1344
|
-
|
|
1341
|
+
// Insert Home PgUp
|
|
1342
|
+
{ keys: [{ code: `Insert` }, { code: `Home` }, { code: `PageUp`, label: `Page\nUp` }] },
|
|
1343
|
+
// Delete End PgDn
|
|
1344
|
+
{ keys: [{ code: `Delete` }, { code: `End` }, { code: `PageDown`, label: `Page\nDown` }] },
|
|
1345
|
+
// ASDF行:空
|
|
1346
|
+
{ keys: [] },
|
|
1347
|
+
// ↑
|
|
1348
|
+
{ keys: [{ code: `` }, { code: `ArrowUp` }, { code: `` }] },
|
|
1349
|
+
// ← ↓ →
|
|
1350
|
+
{ keys: [{ code: `ArrowLeft` }, { code: `ArrowDown` }, { code: `ArrowRight` }] },
|
|
1345
1351
|
];
|
|
1346
1352
|
|
|
1347
1353
|
// テンキー(MAIN_ROWS と行インデックスを揃えて配置。1行目は空行で Fn行に揃える)
|
|
@@ -1353,11 +1359,16 @@ const keyconfigKeyboardPreview = (() => {
|
|
|
1353
1359
|
// [ T0 ][T.] [TEnter] ← T0 は横2u、TEnter は縦2u
|
|
1354
1360
|
const NUM_ROWS = [
|
|
1355
1361
|
{ keys: [] },
|
|
1356
|
-
|
|
1357
|
-
{ keys: [{ code: `
|
|
1358
|
-
|
|
1359
|
-
{ keys: [{ code: `
|
|
1360
|
-
|
|
1362
|
+
// NumLk T/ T* T-
|
|
1363
|
+
{ keys: [{ code: `NumLock`, label: `Num\nLock` }, { code: `NumpadDivide` }, { code: `NumpadMultiply` }, { code: `NumpadSubtract` }] },
|
|
1364
|
+
// T7 T8 T9 T+(縦2u)
|
|
1365
|
+
{ keys: [{ code: `Numpad7` }, { code: `Numpad8` }, { code: `Numpad9` }, { code: `NumpadAdd`, h: 2 }] },
|
|
1366
|
+
// T4 T5 T6
|
|
1367
|
+
{ keys: [{ code: `Numpad4` }, { code: `Numpad5` }, { code: `Numpad6` }] },
|
|
1368
|
+
// T1 T2 T3 TEnter(縦2u)
|
|
1369
|
+
{ keys: [{ code: `Numpad1` }, { code: `Numpad2` }, { code: `Numpad3` }, { code: `NumpadEnter`, h: 2 }] },
|
|
1370
|
+
// T0(横2u) T.
|
|
1371
|
+
{ keys: [{ code: `Numpad0`, w: 2 }, { code: `NumpadDecimal` }] },
|
|
1361
1372
|
];
|
|
1362
1373
|
|
|
1363
1374
|
// -------------------------------------------------------------------------
|
|
@@ -1471,17 +1482,6 @@ const keyconfigKeyboardPreview = (() => {
|
|
|
1471
1482
|
const kg = () => Math.max(1, Math.round(BASE_KEY_GAP * _state.scale));
|
|
1472
1483
|
const kr = () => Math.max(2, Math.round(4 * _state.scale));
|
|
1473
1484
|
|
|
1474
|
-
/**
|
|
1475
|
-
* Canvasの共通初期化処理
|
|
1476
|
-
* @param {HTMLCanvasElement} canvas
|
|
1477
|
-
* @returns {CanvasRenderingContext2D|null}
|
|
1478
|
-
*/
|
|
1479
|
-
const setupCanvasContext = (canvas) => {
|
|
1480
|
-
if (!canvas) return null;
|
|
1481
|
-
canvas.style.top = wUnit(40);
|
|
1482
|
-
return applyCanvasSize(canvas, _state.cvsW, _state.cvsH);
|
|
1483
|
-
};
|
|
1484
|
-
|
|
1485
1485
|
/**
|
|
1486
1486
|
* 円角矩形を描画する
|
|
1487
1487
|
* @param {CanvasRenderingContext2D} ctx
|
|
@@ -1616,8 +1616,7 @@ const keyconfigKeyboardPreview = (() => {
|
|
|
1616
1616
|
* init 時に呼ぶ。
|
|
1617
1617
|
*/
|
|
1618
1618
|
const drawBase = () => {
|
|
1619
|
-
const ctx =
|
|
1620
|
-
if (!ctx) return;
|
|
1619
|
+
const ctx = _state.canvasBase.getContext(`2d`);
|
|
1621
1620
|
|
|
1622
1621
|
ctx.clearRect(0, 0, _state.cvsW, _state.cvsH);
|
|
1623
1622
|
setCtxProp(ctx, `fillStyle`, C_COLOR.bgFill);
|
|
@@ -1672,8 +1671,7 @@ const keyconfigKeyboardPreview = (() => {
|
|
|
1672
1671
|
* 同一キーにメインと代替が重なる場合はメインを優先する。
|
|
1673
1672
|
*/
|
|
1674
1673
|
const drawMap = () => {
|
|
1675
|
-
const ctx =
|
|
1676
|
-
if (!ctx) return;
|
|
1674
|
+
const ctx = _state.canvasMap.getContext(`2d`);
|
|
1677
1675
|
|
|
1678
1676
|
ctx.clearRect(0, 0, _state.cvsW, _state.cvsH);
|
|
1679
1677
|
|
|
@@ -1721,15 +1719,18 @@ const keyconfigKeyboardPreview = (() => {
|
|
|
1721
1719
|
pointerEvents: C_DIS_AUTO, background: `#00000080`, display: C_DIS_NONE, overflow: `hidden`,
|
|
1722
1720
|
});
|
|
1723
1721
|
|
|
1724
|
-
|
|
1725
|
-
|
|
1726
|
-
|
|
1727
|
-
|
|
1728
|
-
|
|
1729
|
-
const
|
|
1730
|
-
|
|
1731
|
-
|
|
1732
|
-
|
|
1722
|
+
/**
|
|
1723
|
+
* プレビュー用canvasを生成しareaDivに追加、_stateに登録する
|
|
1724
|
+
* @param {string} _id
|
|
1725
|
+
* @param {string} _stateKey `_state`に格納するキー名(canvasBase/canvasMap)
|
|
1726
|
+
*/
|
|
1727
|
+
const addPreviewCanvas = (_id, _stateKey) => {
|
|
1728
|
+
const cvs = createCanvas(_id, { y: 40, w: _state.cvsW, h: _state.cvsH });
|
|
1729
|
+
areaDiv.appendChild(cvs);
|
|
1730
|
+
_state[_stateKey] = cvs;
|
|
1731
|
+
};
|
|
1732
|
+
addPreviewCanvas(C_CANVAS_BASE_ID, `canvasBase`);
|
|
1733
|
+
addPreviewCanvas(C_CANVAS_MAP_ID, `canvasMap`);
|
|
1733
1734
|
|
|
1734
1735
|
drawBase();
|
|
1735
1736
|
};
|
package/js/lib/mainWindow.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Source by tickle
|
|
7
7
|
* Created : 2026/09/13
|
|
8
|
-
* Revised :
|
|
8
|
+
* Revised : 2026/09/23 (v51.0.0)
|
|
9
9
|
*
|
|
10
10
|
* https://github.com/cwtickle/danoniplus
|
|
11
11
|
*/
|
|
@@ -43,16 +43,20 @@ const mainInit = () => {
|
|
|
43
43
|
mainSprite.style.transformOrigin = `center 55%`;
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
-
addTransform(`mainSprite`, `root`,
|
|
47
|
-
|
|
46
|
+
addTransform(`mainSprite`, `root`,
|
|
47
|
+
`scale(${g_workObj.scale})`, g_transPriority.scale);
|
|
48
|
+
addTransform(`mainSprite`, `main`,
|
|
49
|
+
`translateX(${wUnit(g_workObj.playingX)}) translateY(${wUnit(g_posObj.stepY - C_STEP_Y + g_headerObj.playingY)})`, g_transPriority.base);
|
|
48
50
|
|
|
49
51
|
// 曲情報・判定カウント用スプライトを作成(メインスプライトより上位)
|
|
50
52
|
const infoSprite = createEmptySprite(divRoot, `infoSprite`, mainCommonPos);
|
|
51
|
-
addTransform(`infoSprite`, `main`,
|
|
53
|
+
addTransform(`infoSprite`, `main`,
|
|
54
|
+
`translateX(${wUnit(g_workObj.playingX)}) translateY(${wUnit(g_headerObj.playingY)})`, g_transPriority.base);
|
|
52
55
|
|
|
53
56
|
// 判定系スプライトを作成(メインスプライトより上位)
|
|
54
57
|
const judgeSprite = createEmptySprite(divRoot, `judgeSprite`, mainCommonPos);
|
|
55
|
-
addTransform(`judgeSprite`, `main`,
|
|
58
|
+
addTransform(`judgeSprite`, `main`,
|
|
59
|
+
`translateX(${wUnit(g_workObj.playingX)}) translateY(${wUnit(g_headerObj.playingY)})`, g_transPriority.base);
|
|
56
60
|
const tkObj = getKeyInfo();
|
|
57
61
|
const [keyCtrlPtn, keyNum] = [tkObj.keyCtrlPtn, tkObj.keyNum];
|
|
58
62
|
|
|
@@ -251,7 +255,8 @@ const mainInit = () => {
|
|
|
251
255
|
const makerView = g_headerObj.makerView ? ` (${g_headerObj.creatorNames[g_stateObj.scoreId]})` : ``;
|
|
252
256
|
const transKeyName = getTransKeyName();
|
|
253
257
|
const autoAll = g_stateObj.autoAll === C_FLG_ON ? ` > AutoPlay` : ``;
|
|
254
|
-
let difName = `[${getKeyName(g_headerObj.keyLabels[g_stateObj.scoreId])}${transKeyName} /
|
|
258
|
+
let difName = `[${getKeyName(g_headerObj.keyLabels[g_stateObj.scoreId])}${transKeyName} / ` +
|
|
259
|
+
`${g_headerObj.difLabels[g_stateObj.scoreId]}${assistFlg}${shuffleName}${makerView}${autoAll}]`;
|
|
255
260
|
let creditName = `${musicTitle} / ${artistName}`;
|
|
256
261
|
if (checkMusicSiz(creditName, g_limitObj.musicTitleSiz) < 12) {
|
|
257
262
|
creditName = `${musicTitle}`;
|
|
@@ -402,8 +407,13 @@ const mainInit = () => {
|
|
|
402
407
|
MCombo: [`combo`, 5], Kita: [`kita`, 7], Iknai: [`iknai`, 8], FCombo: [`combo`, 9],
|
|
403
408
|
};
|
|
404
409
|
Object.keys(jdgMainScoreObj).forEach(jdgScore =>
|
|
405
|
-
infoSprite.appendChild(
|
|
406
|
-
|
|
410
|
+
infoSprite.appendChild(
|
|
411
|
+
makeCounterSymbol(`lbl${jdgScore}`,
|
|
412
|
+
g_headerObj.playingWidth - 110 + (g_workObj.nonDefaultSc ? g_headerObj.scAreaWidth : 0),
|
|
413
|
+
g_cssObj[`common_${jdgMainScoreObj[jdgScore][0]}`], jdgMainScoreObj[jdgScore][1] + 1, 0, g_workObj.scoreDisp
|
|
414
|
+
)
|
|
415
|
+
)
|
|
416
|
+
);
|
|
407
417
|
|
|
408
418
|
// パーフェクト演出
|
|
409
419
|
judgeSprite.appendChild(createDivCss2Label(`finishView`, ``, g_lblPosObj.finishView, g_cssObj.common_kita));
|
|
@@ -1296,21 +1306,29 @@ const mainInit = () => {
|
|
|
1296
1306
|
|
|
1297
1307
|
// ダミー矢印生成(背面に表示するため先に処理)
|
|
1298
1308
|
g_workObj.mkDummyArrow?.[currentFrame]?.forEach(data =>
|
|
1299
|
-
makeArrow(data, ++dummyArrowCnts[data.pos], `dummyArrow`,
|
|
1309
|
+
makeArrow(data, ++dummyArrowCnts[data.pos], `dummyArrow`,
|
|
1310
|
+
g_workObj.dummyArrowColors[data.pos],
|
|
1311
|
+
g_workObj.dummyArrowShadowColors[data.pos]));
|
|
1300
1312
|
|
|
1301
1313
|
// 矢印生成
|
|
1302
1314
|
g_workObj.mkArrow[currentFrame]?.forEach(data =>
|
|
1303
|
-
makeArrow(data, ++arrowCnts[data.pos], `arrow`,
|
|
1315
|
+
makeArrow(data, ++arrowCnts[data.pos], `arrow`,
|
|
1316
|
+
g_workObj.arrowColors[data.pos],
|
|
1317
|
+
g_workObj.arrowShadowColors[data.pos]));
|
|
1304
1318
|
|
|
1305
1319
|
// ダミーフリーズアロー生成
|
|
1306
1320
|
g_workObj.mkDummyFrzArrow?.[currentFrame]?.forEach(data =>
|
|
1307
|
-
makeFrzArrow(data, ++dummyFrzCnts[data.pos], `dummyFrz`,
|
|
1308
|
-
g_workObj.
|
|
1321
|
+
makeFrzArrow(data, ++dummyFrzCnts[data.pos], `dummyFrz`,
|
|
1322
|
+
g_workObj.dummyFrzNormalColors[data.pos],
|
|
1323
|
+
g_workObj.dummyFrzNormalBarColors[data.pos],
|
|
1324
|
+
g_workObj.dummyFrzNormalShadowColors[data.pos]));
|
|
1309
1325
|
|
|
1310
1326
|
// フリーズアロー生成
|
|
1311
1327
|
g_workObj.mkFrzArrow[currentFrame]?.forEach(data =>
|
|
1312
|
-
makeFrzArrow(data, ++frzCnts[data.pos], `frz`,
|
|
1313
|
-
g_workObj.
|
|
1328
|
+
makeFrzArrow(data, ++frzCnts[data.pos], `frz`,
|
|
1329
|
+
g_workObj.frzNormalColors[data.pos],
|
|
1330
|
+
g_workObj.frzNormalBarColors[data.pos],
|
|
1331
|
+
g_workObj.frzNormalShadowColors[data.pos]));
|
|
1314
1332
|
|
|
1315
1333
|
// 矢印・フリーズアロー移動&消去
|
|
1316
1334
|
for (let j = 0; j < keyNum; j++) {
|
|
@@ -1828,20 +1846,25 @@ const changeAppearanceFilter = (_num = 10) => {
|
|
|
1828
1846
|
$id(`arrowSprite${topNum + j}`).clipPath = topShape;
|
|
1829
1847
|
$id(`arrowSprite${bottomNum + j}`).clipPath = bottomShape;
|
|
1830
1848
|
|
|
1831
|
-
addTransform(`filterBar${topNum + j}`, `appearance`,
|
|
1832
|
-
|
|
1849
|
+
addTransform(`filterBar${topNum + j}`, `appearance`,
|
|
1850
|
+
`translateY(${wUnit(parseFloat($id(`arrowSprite${j}`).top) + topDist)})`, g_transPriority.layer);
|
|
1851
|
+
addTransform(`filterBar${bottomNum + j}`, `appearance`,
|
|
1852
|
+
`translateY(${wUnit(parseFloat($id(`arrowSprite${j + 1}`).top) + bottomDist)})`, g_transPriority.layer);
|
|
1833
1853
|
|
|
1834
1854
|
if (doubleFilterFlg) {
|
|
1835
|
-
addTransform(`filterBar${bottomNum + j}_HS`, `appearance`,
|
|
1836
|
-
|
|
1855
|
+
addTransform(`filterBar${bottomNum + j}_HS`, `appearance`,
|
|
1856
|
+
`translateY(${wUnit(parseFloat($id(`arrowSprite${j}`).top) + bottomDist)})`, g_transPriority.layer);
|
|
1857
|
+
addTransform(`filterBar${topNum + j}_HS`, `appearance`,
|
|
1858
|
+
`translateY(${wUnit(parseFloat($id(`arrowSprite${j + 1}`).top) + topDist)})`, g_transPriority.layer);
|
|
1837
1859
|
}
|
|
1838
1860
|
}
|
|
1839
1861
|
|
|
1840
1862
|
// フィルターバーのパーセント表示(フィルターバーが複数表示されるなど複雑なため、最初の階層グループの位置に追従)
|
|
1841
1863
|
if (g_appearanceRanges.includes(g_stateObj.appearance)) {
|
|
1842
1864
|
const currentBarNum = g_hidSudObj.std[g_stateObj.appearance][g_stateObj.reverse];
|
|
1843
|
-
addTransform(`filterView`, `appearance`,
|
|
1844
|
-
(currentBarNum % 2
|
|
1865
|
+
addTransform(`filterView`, `appearance`,
|
|
1866
|
+
`translateY(${wUnit(parseFloat($id(`arrowSprite${currentBarNum % 2}`).top) +
|
|
1867
|
+
(currentBarNum % 2 === 0 ? bottomDist : topDist))})`, g_transPriority.layer);
|
|
1845
1868
|
filterView.textContent = `${_num}%`;
|
|
1846
1869
|
g_hidSudObj.filterPos = _num;
|
|
1847
1870
|
}
|
|
@@ -2267,14 +2290,18 @@ const judgeArrow = _j => {
|
|
|
2267
2290
|
const _difCnt = Math.abs(_difFrame);
|
|
2268
2291
|
const stepHitTargetArrow = _resultJdg => {
|
|
2269
2292
|
const stepDivHit = document.getElementById(`stepHit${_j}`);
|
|
2270
|
-
stepDivHit.style.top = wUnit(
|
|
2293
|
+
stepDivHit.style.top = wUnit(
|
|
2294
|
+
currentArrow.prevY - parseFloat($id(`stepRoot${_j}`).top) - 15 + g_workObj.hitPosition * g_workObj.scrollDir[_j]
|
|
2295
|
+
);
|
|
2271
2296
|
stepDivHit.style.opacity = 0.75;
|
|
2272
2297
|
stepDivHit.classList.value = ``;
|
|
2273
2298
|
stepDivHit.classList.add(g_cssObj[`main_step${_resultJdg}`]);
|
|
2274
2299
|
stepDivHit.setAttribute(`cnt`, C_FRM_HITMOTION);
|
|
2275
2300
|
};
|
|
2276
2301
|
|
|
2277
|
-
if (g_stateObj.excessive === C_FLG_ON &&
|
|
2302
|
+
if (g_stateObj.excessive === C_FLG_ON &&
|
|
2303
|
+
_difFrame <= g_judgObj.arrowJ[g_judgPosObj.uwan] &&
|
|
2304
|
+
_difFrame > g_judgObj.arrowJ[g_judgPosObj.shobon]) {
|
|
2278
2305
|
// 空押し判定(有効かつ早押し時のみ)
|
|
2279
2306
|
displayDiff(_difFrame);
|
|
2280
2307
|
stepHitTargetArrow(`Excessive`);
|
package/js/lib/result.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Source by tickle
|
|
7
7
|
* Created : 2026/09/13
|
|
8
|
-
* Revised : 2026/09/
|
|
8
|
+
* Revised : 2026/09/23 (v51.0.0)
|
|
9
9
|
*
|
|
10
10
|
* https://github.com/cwtickle/danoniplus
|
|
11
11
|
*/
|
|
@@ -174,8 +174,10 @@ const resultInit = () => {
|
|
|
174
174
|
// キャラクタ、スコア描画
|
|
175
175
|
Object.keys(jdgScoreObj).forEach(score =>
|
|
176
176
|
multiAppend(resultWindow,
|
|
177
|
-
makeCssResultSymbol(`lbl${jdgScoreObj[score].id}`, 0,
|
|
178
|
-
|
|
177
|
+
makeCssResultSymbol(`lbl${jdgScoreObj[score].id}`, 0,
|
|
178
|
+
g_cssObj[`common_${jdgScoreObj[score].color}`], jdgScoreObj[score].pos, jdgScoreObj[score].label),
|
|
179
|
+
makeCssResultSymbol(`lbl${jdgScoreObj[score].id}S`, 50,
|
|
180
|
+
g_cssObj.common_score, jdgScoreObj[score].pos, g_resultObj[score], C_ALIGN_RIGHT),
|
|
179
181
|
));
|
|
180
182
|
if (g_stateObj.autoAll === C_FLG_OFF) {
|
|
181
183
|
const [lblPosX, dataPosX] = [350, 260];
|
|
@@ -249,9 +251,12 @@ const resultInit = () => {
|
|
|
249
251
|
// ハイスコア差分描画
|
|
250
252
|
Object.keys(jdgScoreObj).filter(score => score !== `score`).forEach(score =>
|
|
251
253
|
multiAppend(resultWindow,
|
|
252
|
-
makeCssResultSymbol(`lbl${jdgScoreObj[score].id}L1`, C_RLT_BRACKET_L,
|
|
253
|
-
|
|
254
|
-
makeCssResultSymbol(`lbl${jdgScoreObj[score].id}
|
|
254
|
+
makeCssResultSymbol(`lbl${jdgScoreObj[score].id}L1`, C_RLT_BRACKET_L,
|
|
255
|
+
g_cssObj.result_scoreHiBlanket, jdgScoreObj[score].pos, `(+`),
|
|
256
|
+
makeCssResultSymbol(`lbl${jdgScoreObj[score].id}LS`, C_RLT_HIDIF_X,
|
|
257
|
+
g_cssObj.result_scoreHi, jdgScoreObj[score].pos, 0, C_ALIGN_RIGHT),
|
|
258
|
+
makeCssResultSymbol(`lbl${jdgScoreObj[score].id}L2`, C_RLT_BRACKET_R,
|
|
259
|
+
g_cssObj.result_scoreHiBlanket, jdgScoreObj[score].pos, `)`),
|
|
255
260
|
));
|
|
256
261
|
|
|
257
262
|
} else {
|
|
@@ -261,7 +266,8 @@ const resultInit = () => {
|
|
|
261
266
|
}
|
|
262
267
|
|
|
263
268
|
// ゲージ推移グラフの描画
|
|
264
|
-
const gaugeTransitionWindow = createEmptySprite(divRoot, `gaugeTransitionWindow`,
|
|
269
|
+
const gaugeTransitionWindow = createEmptySprite(divRoot, `gaugeTransitionWindow`,
|
|
270
|
+
g_windowObj.gaugeTransition, g_cssObj.result_PlayDataWindow);
|
|
265
271
|
for (let j = 0; j < 2; j++) {
|
|
266
272
|
gaugeTransitionWindow.appendChild(
|
|
267
273
|
createCanvas(`graphGaugeTransition${j > 0 ? j + 1 : ``}`, {
|
|
@@ -327,7 +333,8 @@ const resultInit = () => {
|
|
|
327
333
|
context.lineWidth = 2;
|
|
328
334
|
|
|
329
335
|
let preX, preY;
|
|
330
|
-
const borderY = (g_limitObj.gaugeTransitionHeight - 2) - g_workObj.lifeBorder *
|
|
336
|
+
const borderY = (g_limitObj.gaugeTransitionHeight - 2) - g_workObj.lifeBorder *
|
|
337
|
+
(g_limitObj.gaugeTransitionHeight - 2) / g_headerObj.maxLifeVal + 1;
|
|
331
338
|
|
|
332
339
|
for (let i = 0; i < frame.length; i++) {
|
|
333
340
|
const x = frame[i] * g_limitObj.gaugeTransitionWidth / playingFrame;
|
|
@@ -509,11 +516,14 @@ const resultInit = () => {
|
|
|
509
516
|
const jdgScore = jdgScoreObj[score];
|
|
510
517
|
if (score === `score`) {
|
|
511
518
|
multiAppend(resultWindow,
|
|
512
|
-
makeCssResultSymbol(`lbl${jdgScore.id}L1`, C_RLT_BRACKET_L,
|
|
519
|
+
makeCssResultSymbol(`lbl${jdgScore.id}L1`, C_RLT_BRACKET_L,
|
|
520
|
+
`${highscoreDfObj.score > 0 ? g_cssObj.result_scoreHiPlus : g_cssObj.result_scoreHiBlanket}`,
|
|
513
521
|
jdgScore.pos, `(${highscoreDfObj[score] >= 0 ? "+" : "-"}`),
|
|
514
|
-
makeCssResultSymbol(`lbl${jdgScore.id}LS`, C_RLT_HIDIF_X,
|
|
522
|
+
makeCssResultSymbol(`lbl${jdgScore.id}LS`, C_RLT_HIDIF_X,
|
|
523
|
+
`${highscoreDfObj.score > 0 ? g_cssObj.result_scoreHiPlus : g_cssObj.result_scoreHi}`,
|
|
515
524
|
jdgScore.pos, Math.abs(highscoreDfObj[score]), C_ALIGN_RIGHT),
|
|
516
|
-
makeCssResultSymbol(`lbl${jdgScore.id}L2`, C_RLT_BRACKET_R,
|
|
525
|
+
makeCssResultSymbol(`lbl${jdgScore.id}L2`, C_RLT_BRACKET_R,
|
|
526
|
+
`${highscoreDfObj.score > 0 ? g_cssObj.result_scoreHiPlus : g_cssObj.result_scoreHiBlanket}`,
|
|
517
527
|
jdgScore.pos, `)`),
|
|
518
528
|
);
|
|
519
529
|
} else {
|
|
@@ -529,7 +539,8 @@ const resultInit = () => {
|
|
|
529
539
|
const hashTag = (hasVal(g_headerObj.hashTag) ? ` ${g_headerObj.hashTag}` : ``);
|
|
530
540
|
const keyUnitName = getStgDetailName(getKeyUnitName(g_keyObj.currentKey));
|
|
531
541
|
const keyUnitAbbName = keyUnitName.slice(0, 1) || ``;
|
|
532
|
-
let tweetDifData = `${getKeyName(g_headerObj.keyLabels[g_stateObj.scoreId])}${transKeyName}
|
|
542
|
+
let tweetDifData = `${getKeyName(g_headerObj.keyLabels[g_stateObj.scoreId])}${transKeyName}` +
|
|
543
|
+
`${getStgDetailName(keyUnitAbbName + '-')}${g_headerObj.difLabels[g_stateObj.scoreId]}${assistFlg}`;
|
|
533
544
|
if (g_stateObj.shuffle !== `OFF`) {
|
|
534
545
|
tweetDifData += `:${shuffleName}`;
|
|
535
546
|
}
|
|
@@ -591,7 +602,8 @@ const resultInit = () => {
|
|
|
591
602
|
{ x: 280, dy: -15, hy: 0, siz: 20, color: `#999999`, align: C_ALIGN_CENTER });
|
|
592
603
|
drawText(unEscapeHtml(mTitleForView[0]), { hy: 1 });
|
|
593
604
|
drawText(unEscapeHtml(mTitleForView[1]), { hy: 2 });
|
|
594
|
-
drawText(`${getEmojiForCanvas(g_emojiObj.memo)} ${unEscapeHtml(g_headerObj.tuning)} /
|
|
605
|
+
drawText(`${getEmojiForCanvas(g_emojiObj.memo)} ${unEscapeHtml(g_headerObj.tuning)} / ` +
|
|
606
|
+
`${getEmojiForCanvas(g_emojiObj.musical)} ${unEscapeHtml(artistName)}`,
|
|
595
607
|
{ hy: mTitleForView[1] !== `` ? 3 : 2, siz: 12 });
|
|
596
608
|
drawText(unEscapeHtml(settingData.difDataForImage), { hy: 4, siz: getFontSize2(settingData.difDataForImage, flapWidth) });
|
|
597
609
|
|