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.
Files changed (2) hide show
  1. package/js/danoni_main.js +56 -37
  2. 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/15
7
+ * Revised : 2026/03/26
8
8
  *
9
9
  * https://github.com/cwtickle/danoniplus
10
10
  */
11
- const g_version = `Ver 44.5.10`;
12
- const g_revisedDate = `2026/03/15`;
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`, g_headerObj.shuffleUse ? g_lblNameObj.kcShuffleDesc : g_lblNameObj.kcNoShuffleDesc),
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 (g_localeObj.val === `Ja`) {
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.10",
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
  },