danoniplus 45.5.5 → 45.5.7
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 45.5.
|
|
12
|
-
const g_revisedDate = `2026/03/
|
|
11
|
+
const g_version = `Ver 45.5.7`;
|
|
12
|
+
const g_revisedDate = `2026/03/26`;
|
|
13
13
|
|
|
14
14
|
// カスタム用バージョン (danoni_custom.js 等で指定可)
|
|
15
15
|
let g_localVersion = ``;
|
|
@@ -8843,7 +8843,9 @@ const keyConfigInit = (_kcType = g_kcType) => {
|
|
|
8843
8843
|
createDescDiv(`kcDesc`, g_lblNameObj.kcDesc.split(`{0}`).join(g_kCd[C_KEY_RETRY])
|
|
8844
8844
|
.split(`{1}:`).join(g_isMac ? `` : `Delete:`)),
|
|
8845
8845
|
|
|
8846
|
-
createDescDiv(`kcShuffleDesc`,
|
|
8846
|
+
createDescDiv(`kcShuffleDesc`,
|
|
8847
|
+
g_headerObj.shuffleUse && g_settings.shuffles.filter(val => val.endsWith(`+`)).length > 0
|
|
8848
|
+
? g_lblNameObj.kcShuffleDesc : g_lblNameObj.kcNoShuffleDesc),
|
|
8847
8849
|
);
|
|
8848
8850
|
|
|
8849
8851
|
// キーの一覧を表示
|
|
@@ -9629,12 +9631,17 @@ const keyConfigInit = (_kcType = g_kcType) => {
|
|
|
9629
9631
|
// また、直前と同じキーを押した場合(BackSpaceを除く)はキー操作を無効にする
|
|
9630
9632
|
const disabledKeys = [240, 242, 243, 244, 91, 29, 28, 27, 259, g_prevKey];
|
|
9631
9633
|
|
|
9634
|
+
if (g_localeObj.val === `Ja`) {
|
|
9635
|
+
disabledKeys.unshift(229);
|
|
9636
|
+
}
|
|
9637
|
+
if (disabledKeys.includes(setKey) || g_kCdN[setKey] === undefined) {
|
|
9638
|
+
makeInfoWindow(g_msgInfoObj.I_0002, `fadeOut0`);
|
|
9639
|
+
return;
|
|
9640
|
+
} else if ((keyIsDown(g_kCdNameObj.metaLKey) || keyIsDown(g_kCdNameObj.metaRKey)) && keyIsShift()) {
|
|
9641
|
+
return;
|
|
9642
|
+
}
|
|
9632
9643
|
if (selectedKc === `TitleBack` || selectedKc === `Retry`) {
|
|
9633
9644
|
// プレイ中ショートカットキー変更
|
|
9634
|
-
if (disabledKeys.includes(setKey) || g_kCdN[setKey] === undefined) {
|
|
9635
|
-
makeInfoWindow(g_msgInfoObj.I_0002, `fadeOut0`);
|
|
9636
|
-
return;
|
|
9637
|
-
}
|
|
9638
9645
|
g_headerObj[`key${selectedKc}`] = setKey;
|
|
9639
9646
|
g_headerObj[`key${selectedKc}Def`] = setKey;
|
|
9640
9647
|
document.getElementById(`sc${selectedKc}`).textContent = getScMsg[selectedKc]();
|
|
@@ -9649,14 +9656,7 @@ const keyConfigInit = (_kcType = g_kcType) => {
|
|
|
9649
9656
|
return;
|
|
9650
9657
|
}
|
|
9651
9658
|
|
|
9652
|
-
if (
|
|
9653
|
-
disabledKeys.unshift(229);
|
|
9654
|
-
}
|
|
9655
|
-
if (disabledKeys.includes(setKey) || g_kCdN[setKey] === undefined) {
|
|
9656
|
-
makeInfoWindow(g_msgInfoObj.I_0002, `fadeOut0`);
|
|
9657
|
-
return;
|
|
9658
|
-
} else if ((setKey === C_KEY_TITLEBACK && g_currentk === 0) ||
|
|
9659
|
-
((keyIsDown(g_kCdNameObj.metaLKey) || keyIsDown(g_kCdNameObj.metaRKey)) && keyIsShift())) {
|
|
9659
|
+
if (setKey === C_KEY_TITLEBACK && g_currentk === 0) {
|
|
9660
9660
|
return;
|
|
9661
9661
|
}
|
|
9662
9662
|
|
|
@@ -11863,6 +11863,46 @@ const getArrowSettings = () => {
|
|
|
11863
11863
|
g_workObj.orgFlatFlg = g_workObj.dividePos.every(v => v % 2 === g_workObj.dividePos[0] % 2);
|
|
11864
11864
|
g_stateObj.layerNumDf = Math.max(g_stateObj.layerNumDf, Math.ceil((Math.max(...g_workObj.dividePos) + 1) / 2) * 2);
|
|
11865
11865
|
|
|
11866
|
+
// Swapping設定に応じたステップゾーンの入れ替え
|
|
11867
|
+
if (g_stateObj.swapping.includes(`Mirror`)) {
|
|
11868
|
+
|
|
11869
|
+
let _style = structuredClone(Object.values(g_workObj.shuffleGroupMap));
|
|
11870
|
+
const _styleTrans = _style.flatMap(arr => {
|
|
11871
|
+
// g_workObj.devidePosの値ごとにグループ化する
|
|
11872
|
+
const groups = {};
|
|
11873
|
+
|
|
11874
|
+
arr.forEach(n => {
|
|
11875
|
+
const div = g_workObj.dividePos[n];
|
|
11876
|
+
if (!groups[div]) groups[div] = [];
|
|
11877
|
+
groups[div].push(n);
|
|
11878
|
+
});
|
|
11879
|
+
|
|
11880
|
+
// groups は {0:[...], 1:[...], 2:[...]} のような形になるので
|
|
11881
|
+
// これを配列に変換して返す
|
|
11882
|
+
return Object.values(groups);
|
|
11883
|
+
});
|
|
11884
|
+
const _styleTransDf = structuredClone(Object.values(_styleTrans));
|
|
11885
|
+
if (g_stateObj.swapping === `Mirror`) {
|
|
11886
|
+
_styleTrans.map(_group => _group.reverse());
|
|
11887
|
+
|
|
11888
|
+
} else if (g_stateObj.swapping === `X-Mirror`) {
|
|
11889
|
+
// X-Mirrorの場合、グループの内側だけ入れ替える
|
|
11890
|
+
_styleTrans.forEach((group, i) => {
|
|
11891
|
+
g_settings.swapPattern.forEach(val => {
|
|
11892
|
+
swapGroupNums(_styleTrans, group, i, val);
|
|
11893
|
+
});
|
|
11894
|
+
});
|
|
11895
|
+
}
|
|
11896
|
+
|
|
11897
|
+
// 入れ替えた結果に合わせてX座標位置を入れ替える
|
|
11898
|
+
g_workObj.stepX_df = structuredClone(g_workObj.stepX);
|
|
11899
|
+
_styleTrans.forEach((_group, _i) => {
|
|
11900
|
+
_group.forEach((_val, _j) => {
|
|
11901
|
+
g_workObj.stepX[_group[_j]] = g_workObj.stepX_df[_styleTransDf[_i][_j]];
|
|
11902
|
+
});
|
|
11903
|
+
});
|
|
11904
|
+
}
|
|
11905
|
+
|
|
11866
11906
|
// StepArea(Default, Halfway以外)によるレイヤー移動
|
|
11867
11907
|
// ずらした位置に表示するため、レイヤーを倍化して倍化した先に割り当てる
|
|
11868
11908
|
const assignLayer = _func => {
|
|
@@ -11946,27 +11986,6 @@ const getArrowSettings = () => {
|
|
|
11946
11986
|
g_workObj.backX = (g_workObj.nonDefaultSc && g_headerObj.playingLayout ? g_headerObj.scAreaWidth : 0);
|
|
11947
11987
|
g_workObj.playingX = g_headerObj.playingX + g_workObj.backX;
|
|
11948
11988
|
|
|
11949
|
-
// Swapping設定に応じたステップゾーンの入れ替え
|
|
11950
|
-
if (g_stateObj.swapping.includes(`Mirror`)) {
|
|
11951
|
-
|
|
11952
|
-
let _style = structuredClone(Object.values(g_workObj.shuffleGroupMap));
|
|
11953
|
-
if (g_stateObj.swapping === `Mirror`) {
|
|
11954
|
-
_style.map(_group => _group.reverse());
|
|
11955
|
-
|
|
11956
|
-
} else if (g_stateObj.swapping === `X-Mirror`) {
|
|
11957
|
-
// X-Mirrorの場合、グループの内側だけ入れ替える
|
|
11958
|
-
_style.forEach((group, i) => g_settings.swapPattern.forEach(val => swapGroupNums(_style, group, i, val)));
|
|
11959
|
-
}
|
|
11960
|
-
|
|
11961
|
-
// 入れ替えた結果に合わせてX座標位置を入れ替える
|
|
11962
|
-
g_workObj.stepX_df = structuredClone(g_workObj.stepX);
|
|
11963
|
-
_style.forEach((_group, _i) => {
|
|
11964
|
-
_group.forEach((_val, _j) => {
|
|
11965
|
-
g_workObj.stepX[_group[_j]] = g_workObj.stepX_df[g_workObj.shuffleGroupMap[_i][_j]];
|
|
11966
|
-
});
|
|
11967
|
-
});
|
|
11968
|
-
}
|
|
11969
|
-
|
|
11970
11989
|
// FrzReturnの初期化
|
|
11971
11990
|
g_workObj.frzReturnFlg = false;
|
|
11972
11991
|
g_workObj.frzReturnSeq = g_frzReturnSeqFunc.get(g_stateObj.frzReturnType)();
|
package/package.json
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "danoniplus",
|
|
3
|
-
"version": "45.5.
|
|
3
|
+
"version": "45.5.7",
|
|
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
|
},
|