danoniplus 44.5.10 → 44.5.12
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 +56 -37
- package/package.json +2 -1
package/js/danoni_main.js
CHANGED
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Source by tickle
|
|
6
6
|
* Created : 2018/10/08
|
|
7
|
-
* Revised : 2026/03/
|
|
7
|
+
* Revised : 2026/03/26
|
|
8
8
|
*
|
|
9
9
|
* https://github.com/cwtickle/danoniplus
|
|
10
10
|
*/
|
|
11
|
-
const g_version = `Ver 44.5.
|
|
12
|
-
const g_revisedDate = `2026/03/
|
|
11
|
+
const g_version = `Ver 44.5.12`;
|
|
12
|
+
const g_revisedDate = `2026/03/26`;
|
|
13
13
|
|
|
14
14
|
// カスタム用バージョン (danoni_custom.js 等で指定可)
|
|
15
15
|
let g_localVersion = ``;
|
|
@@ -8769,7 +8769,9 @@ const keyConfigInit = (_kcType = g_kcType) => {
|
|
|
8769
8769
|
createDescDiv(`kcDesc`, g_lblNameObj.kcDesc.split(`{0}`).join(g_kCd[C_KEY_RETRY])
|
|
8770
8770
|
.split(`{1}:`).join(g_isMac ? `` : `Delete:`)),
|
|
8771
8771
|
|
|
8772
|
-
createDescDiv(`kcShuffleDesc`,
|
|
8772
|
+
createDescDiv(`kcShuffleDesc`,
|
|
8773
|
+
g_headerObj.shuffleUse && g_settings.shuffles.filter(val => val.endsWith(`+`)).length > 0
|
|
8774
|
+
? g_lblNameObj.kcShuffleDesc : g_lblNameObj.kcNoShuffleDesc),
|
|
8773
8775
|
);
|
|
8774
8776
|
|
|
8775
8777
|
// キーの一覧を表示
|
|
@@ -9555,12 +9557,17 @@ const keyConfigInit = (_kcType = g_kcType) => {
|
|
|
9555
9557
|
// また、直前と同じキーを押した場合(BackSpaceを除く)はキー操作を無効にする
|
|
9556
9558
|
const disabledKeys = [240, 242, 243, 244, 91, 29, 28, 27, 259, g_prevKey];
|
|
9557
9559
|
|
|
9560
|
+
if (g_localeObj.val === `Ja`) {
|
|
9561
|
+
disabledKeys.unshift(229);
|
|
9562
|
+
}
|
|
9563
|
+
if (disabledKeys.includes(setKey) || g_kCdN[setKey] === undefined) {
|
|
9564
|
+
makeInfoWindow(g_msgInfoObj.I_0002, `fadeOut0`);
|
|
9565
|
+
return;
|
|
9566
|
+
} else if ((keyIsDown(g_kCdNameObj.metaLKey) || keyIsDown(g_kCdNameObj.metaRKey)) && keyIsShift()) {
|
|
9567
|
+
return;
|
|
9568
|
+
}
|
|
9558
9569
|
if (selectedKc === `TitleBack` || selectedKc === `Retry`) {
|
|
9559
9570
|
// プレイ中ショートカットキー変更
|
|
9560
|
-
if (disabledKeys.includes(setKey) || g_kCdN[setKey] === undefined) {
|
|
9561
|
-
makeInfoWindow(g_msgInfoObj.I_0002, `fadeOut0`);
|
|
9562
|
-
return;
|
|
9563
|
-
}
|
|
9564
9571
|
g_headerObj[`key${selectedKc}`] = setKey;
|
|
9565
9572
|
g_headerObj[`key${selectedKc}Def`] = setKey;
|
|
9566
9573
|
document.getElementById(`sc${selectedKc}`).textContent = getScMsg[selectedKc]();
|
|
@@ -9575,14 +9582,7 @@ const keyConfigInit = (_kcType = g_kcType) => {
|
|
|
9575
9582
|
return;
|
|
9576
9583
|
}
|
|
9577
9584
|
|
|
9578
|
-
if (
|
|
9579
|
-
disabledKeys.unshift(229);
|
|
9580
|
-
}
|
|
9581
|
-
if (disabledKeys.includes(setKey) || g_kCdN[setKey] === undefined) {
|
|
9582
|
-
makeInfoWindow(g_msgInfoObj.I_0002, `fadeOut0`);
|
|
9583
|
-
return;
|
|
9584
|
-
} else if ((setKey === C_KEY_TITLEBACK && g_currentk === 0) ||
|
|
9585
|
-
((keyIsDown(g_kCdNameObj.metaLKey) || keyIsDown(g_kCdNameObj.metaRKey)) && keyIsShift())) {
|
|
9585
|
+
if (setKey === C_KEY_TITLEBACK && g_currentk === 0) {
|
|
9586
9586
|
return;
|
|
9587
9587
|
}
|
|
9588
9588
|
|
|
@@ -11775,6 +11775,46 @@ const getArrowSettings = () => {
|
|
|
11775
11775
|
g_workObj.orgFlatFlg = g_workObj.dividePos.every(v => v % 2 === g_workObj.dividePos[0] % 2);
|
|
11776
11776
|
g_stateObj.layerNumDf = Math.max(g_stateObj.layerNumDf, Math.ceil((Math.max(...g_workObj.dividePos) + 1) / 2) * 2);
|
|
11777
11777
|
|
|
11778
|
+
// Swapping設定に応じたステップゾーンの入れ替え
|
|
11779
|
+
if (g_stateObj.swapping.includes(`Mirror`)) {
|
|
11780
|
+
|
|
11781
|
+
let _style = structuredClone(Object.values(g_workObj.shuffleGroupMap));
|
|
11782
|
+
const _styleTrans = _style.flatMap(arr => {
|
|
11783
|
+
// g_workObj.devidePosの値ごとにグループ化する
|
|
11784
|
+
const groups = {};
|
|
11785
|
+
|
|
11786
|
+
arr.forEach(n => {
|
|
11787
|
+
const div = g_workObj.dividePos[n];
|
|
11788
|
+
if (!groups[div]) groups[div] = [];
|
|
11789
|
+
groups[div].push(n);
|
|
11790
|
+
});
|
|
11791
|
+
|
|
11792
|
+
// groups は {0:[...], 1:[...], 2:[...]} のような形になるので
|
|
11793
|
+
// これを配列に変換して返す
|
|
11794
|
+
return Object.values(groups);
|
|
11795
|
+
});
|
|
11796
|
+
const _styleTransDf = structuredClone(Object.values(_styleTrans));
|
|
11797
|
+
if (g_stateObj.swapping === `Mirror`) {
|
|
11798
|
+
_styleTrans.map(_group => _group.reverse());
|
|
11799
|
+
|
|
11800
|
+
} else if (g_stateObj.swapping === `X-Mirror`) {
|
|
11801
|
+
// X-Mirrorの場合、グループの内側だけ入れ替える
|
|
11802
|
+
_styleTrans.forEach((group, i) => {
|
|
11803
|
+
g_settings.swapPattern.forEach(val => {
|
|
11804
|
+
swapGroupNums(_styleTrans, group, i, val);
|
|
11805
|
+
});
|
|
11806
|
+
});
|
|
11807
|
+
}
|
|
11808
|
+
|
|
11809
|
+
// 入れ替えた結果に合わせてX座標位置を入れ替える
|
|
11810
|
+
g_workObj.stepX_df = structuredClone(g_workObj.stepX);
|
|
11811
|
+
_styleTrans.forEach((_group, _i) => {
|
|
11812
|
+
_group.forEach((_val, _j) => {
|
|
11813
|
+
g_workObj.stepX[_group[_j]] = g_workObj.stepX_df[_styleTransDf[_i][_j]];
|
|
11814
|
+
});
|
|
11815
|
+
});
|
|
11816
|
+
}
|
|
11817
|
+
|
|
11778
11818
|
// StepArea(Default, Halfway以外)によるレイヤー移動
|
|
11779
11819
|
// ずらした位置に表示するため、レイヤーを倍化して倍化した先に割り当てる
|
|
11780
11820
|
const assignLayer = _func => {
|
|
@@ -11858,27 +11898,6 @@ const getArrowSettings = () => {
|
|
|
11858
11898
|
g_workObj.backX = (g_workObj.nonDefaultSc && g_headerObj.playingLayout ? g_headerObj.scAreaWidth : 0);
|
|
11859
11899
|
g_workObj.playingX = g_headerObj.playingX + g_workObj.backX;
|
|
11860
11900
|
|
|
11861
|
-
// Swapping設定に応じたステップゾーンの入れ替え
|
|
11862
|
-
if (g_stateObj.swapping.includes(`Mirror`)) {
|
|
11863
|
-
|
|
11864
|
-
let _style = structuredClone(Object.values(g_workObj.shuffleGroupMap));
|
|
11865
|
-
if (g_stateObj.swapping === `Mirror`) {
|
|
11866
|
-
_style.map(_group => _group.reverse());
|
|
11867
|
-
|
|
11868
|
-
} else if (g_stateObj.swapping === `X-Mirror`) {
|
|
11869
|
-
// X-Mirrorの場合、グループの内側だけ入れ替える
|
|
11870
|
-
_style.forEach((group, i) => g_settings.swapPattern.forEach(val => swapGroupNums(_style, group, i, val)));
|
|
11871
|
-
}
|
|
11872
|
-
|
|
11873
|
-
// 入れ替えた結果に合わせてX座標位置を入れ替える
|
|
11874
|
-
g_workObj.stepX_df = structuredClone(g_workObj.stepX);
|
|
11875
|
-
_style.forEach((_group, _i) => {
|
|
11876
|
-
_group.forEach((_val, _j) => {
|
|
11877
|
-
g_workObj.stepX[_group[_j]] = g_workObj.stepX_df[g_workObj.shuffleGroupMap[_i][_j]];
|
|
11878
|
-
});
|
|
11879
|
-
});
|
|
11880
|
-
}
|
|
11881
|
-
|
|
11882
11901
|
// FrzReturnの初期化
|
|
11883
11902
|
g_workObj.frzReturnFlg = false;
|
|
11884
11903
|
|
package/package.json
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "danoniplus",
|
|
3
|
-
"version": "44.5.
|
|
3
|
+
"version": "44.5.12",
|
|
4
4
|
"description": "Dancing☆Onigiri (CW Edition) - Web-based Rhythm Game",
|
|
5
5
|
"main": "./js/danoni_main.js",
|
|
6
|
+
"jsdelivr": "./js/danoni_main.js",
|
|
6
7
|
"scripts": {
|
|
7
8
|
"test": "echo \"Error: no test specified\" && exit 1"
|
|
8
9
|
},
|