danoniplus 39.8.19 → 39.8.20

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.
Files changed (2) hide show
  1. package/js/danoni_main.js +44 -24
  2. 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/12
7
+ * Revised : 2026/03/20
8
8
  *
9
9
  * https://github.com/cwtickle/danoniplus
10
10
  */
11
- const g_version = `Ver 39.8.19`;
12
- const g_revisedDate = `2026/03/12`;
11
+ const g_version = `Ver 39.8.20`;
12
+ const g_revisedDate = `2026/03/20`;
13
13
 
14
14
  // カスタム用バージョン (danoni_custom.js 等で指定可)
15
15
  let g_localVersion = ``;
@@ -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
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "danoniplus",
3
- "version": "39.8.19",
3
+ "version": "39.8.20",
4
4
  "description": "Dancing☆Onigiri (CW Edition) - Web-based Rhythm Game",
5
5
  "main": "index.js",
6
6
  "scripts": {