danoniplus 45.5.5 → 45.5.6

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