danoniplus 39.8.19 → 39.8.21
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 +57 -37
- package/package.json +1 -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 39.8.
|
|
12
|
-
const g_revisedDate = `2026/03/
|
|
11
|
+
const g_version = `Ver 39.8.21`;
|
|
12
|
+
const g_revisedDate = `2026/03/26`;
|
|
13
13
|
|
|
14
14
|
// カスタム用バージョン (danoni_custom.js 等で指定可)
|
|
15
15
|
let g_localVersion = ``;
|
|
@@ -7163,7 +7163,9 @@ const keyConfigInit = (_kcType = g_kcType) => {
|
|
|
7163
7163
|
createDescDiv(`kcDesc`, g_lblNameObj.kcDesc.split(`{0}`).join(g_kCd[C_KEY_RETRY])
|
|
7164
7164
|
.split(`{1}:`).join(g_isMac ? `` : `Delete:`)),
|
|
7165
7165
|
|
|
7166
|
-
createDescDiv(`kcShuffleDesc`,
|
|
7166
|
+
createDescDiv(`kcShuffleDesc`,
|
|
7167
|
+
g_headerObj.shuffleUse && g_settings.shuffles.filter(val => val.endsWith(`+`)).length > 0
|
|
7168
|
+
? g_lblNameObj.kcShuffleDesc : g_lblNameObj.kcNoShuffleDesc),
|
|
7167
7169
|
);
|
|
7168
7170
|
|
|
7169
7171
|
// キーの一覧を表示
|
|
@@ -7947,12 +7949,17 @@ const keyConfigInit = (_kcType = g_kcType) => {
|
|
|
7947
7949
|
// また、直前と同じキーを押した場合(BackSpaceを除く)はキー操作を無効にする
|
|
7948
7950
|
const disabledKeys = [240, 242, 243, 244, 91, 29, 28, 27, 259, g_prevKey];
|
|
7949
7951
|
|
|
7952
|
+
if (g_localeObj.val === `Ja`) {
|
|
7953
|
+
disabledKeys.unshift(229);
|
|
7954
|
+
}
|
|
7955
|
+
if (disabledKeys.includes(setKey) || g_kCdN[setKey] === undefined) {
|
|
7956
|
+
makeInfoWindow(g_msgInfoObj.I_0002, `fadeOut0`);
|
|
7957
|
+
return;
|
|
7958
|
+
} else if ((keyIsDown(g_kCdNameObj.metaLKey) || keyIsDown(g_kCdNameObj.metaRKey)) && keyIsShift()) {
|
|
7959
|
+
return;
|
|
7960
|
+
}
|
|
7950
7961
|
if (selectedKc === `TitleBack` || selectedKc === `Retry`) {
|
|
7951
7962
|
// プレイ中ショートカットキー変更
|
|
7952
|
-
if (disabledKeys.includes(setKey) || g_kCdN[setKey] === undefined) {
|
|
7953
|
-
makeInfoWindow(g_msgInfoObj.I_0002, `fadeOut0`);
|
|
7954
|
-
return;
|
|
7955
|
-
}
|
|
7956
7963
|
g_headerObj[`key${selectedKc}`] = setKey;
|
|
7957
7964
|
g_headerObj[`key${selectedKc}Def`] = setKey;
|
|
7958
7965
|
document.getElementById(`sc${selectedKc}`).textContent = getScMsg[selectedKc]();
|
|
@@ -7967,14 +7974,7 @@ const keyConfigInit = (_kcType = g_kcType) => {
|
|
|
7967
7974
|
return;
|
|
7968
7975
|
}
|
|
7969
7976
|
|
|
7970
|
-
if (
|
|
7971
|
-
disabledKeys.unshift(229);
|
|
7972
|
-
}
|
|
7973
|
-
if (disabledKeys.includes(setKey) || g_kCdN[setKey] === undefined) {
|
|
7974
|
-
makeInfoWindow(g_msgInfoObj.I_0002, `fadeOut0`);
|
|
7975
|
-
return;
|
|
7976
|
-
} else if ((setKey === C_KEY_TITLEBACK && g_currentk === 0) ||
|
|
7977
|
-
((keyIsDown(g_kCdNameObj.metaLKey) || keyIsDown(g_kCdNameObj.metaRKey)) && keyIsShift())) {
|
|
7977
|
+
if (setKey === C_KEY_TITLEBACK && g_currentk === 0) {
|
|
7978
7978
|
return;
|
|
7979
7979
|
}
|
|
7980
7980
|
|
|
@@ -10089,6 +10089,47 @@ const getArrowSettings = () => {
|
|
|
10089
10089
|
g_workObj.frzHitShadowColorsAll[j] = ``;
|
|
10090
10090
|
|
|
10091
10091
|
}
|
|
10092
|
+
|
|
10093
|
+
// Swapping設定に応じたステップゾーンの入れ替え
|
|
10094
|
+
if (g_stateObj.swapping.includes(`Mirror`)) {
|
|
10095
|
+
|
|
10096
|
+
let _style = structuredClone(Object.values(g_workObj.shuffleGroupMap));
|
|
10097
|
+
const _styleTrans = _style.flatMap(arr => {
|
|
10098
|
+
// g_workObj.devidePosの値ごとにグループ化する
|
|
10099
|
+
const groups = {};
|
|
10100
|
+
|
|
10101
|
+
arr.forEach(n => {
|
|
10102
|
+
const div = g_workObj.dividePos[n];
|
|
10103
|
+
if (!groups[div]) groups[div] = [];
|
|
10104
|
+
groups[div].push(n);
|
|
10105
|
+
});
|
|
10106
|
+
|
|
10107
|
+
// groups は {0:[...], 1:[...], 2:[...]} のような形になるので
|
|
10108
|
+
// これを配列に変換して返す
|
|
10109
|
+
return Object.values(groups);
|
|
10110
|
+
});
|
|
10111
|
+
const _styleTransDf = structuredClone(Object.values(_styleTrans));
|
|
10112
|
+
if (g_stateObj.swapping === `Mirror`) {
|
|
10113
|
+
_styleTrans.map(_group => _group.reverse());
|
|
10114
|
+
|
|
10115
|
+
} else if (g_stateObj.swapping === `X-Mirror`) {
|
|
10116
|
+
// X-Mirrorの場合、グループの内側だけ入れ替える
|
|
10117
|
+
_styleTrans.forEach((group, i) => {
|
|
10118
|
+
g_settings.swapPattern.forEach(val => {
|
|
10119
|
+
swapGroupNums(_styleTrans, group, i, val);
|
|
10120
|
+
});
|
|
10121
|
+
});
|
|
10122
|
+
}
|
|
10123
|
+
|
|
10124
|
+
// 入れ替えた結果に合わせてX座標位置を入れ替える
|
|
10125
|
+
g_workObj.stepX_df = structuredClone(g_workObj.stepX);
|
|
10126
|
+
_styleTrans.forEach((_group, _i) => {
|
|
10127
|
+
_group.forEach((_val, _j) => {
|
|
10128
|
+
g_workObj.stepX[_group[_j]] = g_workObj.stepX_df[_styleTransDf[_i][_j]];
|
|
10129
|
+
});
|
|
10130
|
+
});
|
|
10131
|
+
}
|
|
10132
|
+
|
|
10092
10133
|
g_workObj.orgFlatFlg = g_workObj.dividePos.every(v => v === g_workObj.dividePos[0]);
|
|
10093
10134
|
if (g_stateObj.stepArea === `X-Flower` || (g_stateObj.stepArea.includes(`Mismatched`) && g_workObj.orgFlatFlg)) {
|
|
10094
10135
|
for (let j = 0; j < keyNum; j++) {
|
|
@@ -10130,27 +10171,6 @@ const getArrowSettings = () => {
|
|
|
10130
10171
|
g_workObj.backX = (g_workObj.nonDefaultSc && g_headerObj.playingLayout ? g_headerObj.scAreaWidth : 0);
|
|
10131
10172
|
g_workObj.playingX = g_headerObj.playingX + g_workObj.backX;
|
|
10132
10173
|
|
|
10133
|
-
// Swapping設定に応じたステップゾーンの入れ替え
|
|
10134
|
-
if (g_stateObj.swapping.includes(`Mirror`)) {
|
|
10135
|
-
|
|
10136
|
-
let _style = structuredClone(Object.values(g_workObj.shuffleGroupMap));
|
|
10137
|
-
if (g_stateObj.swapping === `Mirror`) {
|
|
10138
|
-
_style.map(_group => _group.reverse());
|
|
10139
|
-
|
|
10140
|
-
} else if (g_stateObj.swapping === `X-Mirror`) {
|
|
10141
|
-
// X-Mirrorの場合、グループの内側だけ入れ替える
|
|
10142
|
-
_style.forEach((group, i) => g_settings.swapPattern.forEach(val => swapGroupNums(_style, group, i, val)));
|
|
10143
|
-
}
|
|
10144
|
-
|
|
10145
|
-
// 入れ替えた結果に合わせてX座標位置を入れ替える
|
|
10146
|
-
g_workObj.stepX_df = structuredClone(g_workObj.stepX);
|
|
10147
|
-
_style.forEach((_group, _i) => {
|
|
10148
|
-
_group.forEach((_val, _j) => {
|
|
10149
|
-
g_workObj.stepX[_group[_j]] = g_workObj.stepX_df[g_workObj.shuffleGroupMap[_i][_j]];
|
|
10150
|
-
});
|
|
10151
|
-
});
|
|
10152
|
-
}
|
|
10153
|
-
|
|
10154
10174
|
// FrzReturnの初期化
|
|
10155
10175
|
g_workObj.frzReturnFlg = false;
|
|
10156
10176
|
|