danoniplus 30.2.1 → 30.2.3

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.
@@ -81,7 +81,7 @@ onigiri,0,-90,90,180,giko,onigiri,iyo,0,-90,90,180,0,-90,90,180,0,-90,90,180,gik
81
81
  5,5,5,5,5,7i,7i,7i,7i,7i,7i,7i,7i,7i,11,11,11,11,11L,11L,11L,11L,11W,11W,11W,11W,12,12,12,12,12,12,12,12,12,12,12,12,11/11L/11W,11/11L/11W,11/11L/11W,11/11L/11W,11/11L/11W,11/11L/11W,11/11L/11W
82
82
  |
83
83
 
84
- |divTr=7$7$7$12,19|
84
+ |divTr=7$7$7$12|
85
85
  |keyCtrlTr=
86
86
  37/0,40/0,38/0,39/0,32/0,90/0,88/0,67/0,37/0,40/0,38/0,39/0,37/0,40/0,38/0,39/0,87/0,69/0,51/52,82/0,49/50,84/0,89/0,48/189,85/0,73/0,56/57/0,79/0,83/0,68/0,70/0,32/0,74/0,75/0,76/0,32/0,78/0,74/0,77/0,75/0,188/0,76/0,190/0
87
87
  32/0,37/0,40/0,38/0,39/0,90/0,88/0,67/0,37/0,40/0,38/0,39/0,37/0,40/0,38/0,39/0,87/0,69/0,51/52,82/0,49/50,84/0,89/0,48/189,85/0,73/0,56/57/0,79/0,83/0,68/0,70/0,32/0,74/0,75/0,76/0,32/0,78/0,74/0,77/0,75/0,188/0,76/0,190/0
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 : 2023/02/18
7
+ * Revised : 2023/02/26
8
8
  *
9
9
  * https://github.com/cwtickle/danoniplus
10
10
  */
11
- const g_version = `Ver 30.2.1`;
12
- const g_revisedDate = `2023/02/18`;
11
+ const g_version = `Ver 30.2.3`;
12
+ const g_revisedDate = `2023/02/26`;
13
13
  const g_alphaVersion = ``;
14
14
 
15
15
  // カスタム用バージョン (danoni_custom.js 等で指定可)
@@ -3634,6 +3634,12 @@ const keysConvert = (_dosObj, { keyExtraList = _dosObj.keyExtraList.split(`,`) }
3634
3634
  g_keyObj[`divMax${ptnName}`] = setVal(tmpDivPtn[1], -1, C_TYP_FLOAT);
3635
3635
  }
3636
3636
  }
3637
+ } else if (g_keyObj[`chara${newKey}_0`] !== undefined) {
3638
+ // 特に指定が無い場合はcharaX_Yの配列長で決定
3639
+ for (let k = 0; k < tmpMinPatterns; k++) {
3640
+ const ptnName = `${newKey}_${k + dfPtnNum}`;
3641
+ g_keyObj[`div${ptnName}`] = g_keyObj[`chara${newKey}_0`].length;
3642
+ }
3637
3643
  }
3638
3644
 
3639
3645
  // ステップゾーン位置 (posX_Y)
@@ -3641,8 +3647,7 @@ const keysConvert = (_dosObj, { keyExtraList = _dosObj.keyExtraList.split(`,`) }
3641
3647
  loopFunc: (k, keyheader) => {
3642
3648
  const ptnName = `${newKey}_${k + dfPtnNum}`;
3643
3649
  if (g_keyObj[`divMax${ptnName}`] === undefined || g_keyObj[`divMax${ptnName}`] === -1) {
3644
- const posLength = g_keyObj[`${keyheader}_${k + dfPtnNum}`].length;
3645
- g_keyObj[`divMax${ptnName}`] = g_keyObj[`${keyheader}_${k + dfPtnNum}`][posLength - 1] + 1;
3650
+ g_keyObj[`divMax${ptnName}`] = Math.max(...g_keyObj[`${keyheader}_${k + dfPtnNum}`]) + 1;
3646
3651
  }
3647
3652
  }
3648
3653
  });
@@ -3672,6 +3677,14 @@ const keysConvert = (_dosObj, { keyExtraList = _dosObj.keyExtraList.split(`,`) }
3672
3677
 
3673
3678
  // シャッフルグループ (shuffleX_Y)
3674
3679
  newKeyTripleParam(newKey, `shuffle`);
3680
+ if (g_keyObj[`shuffle${newKey}_${dfPtnNum}_0`] === undefined) {
3681
+ // 特に指定が無い場合はcolorX_Yの配列長で決定
3682
+ for (let k = 0; k < tmpMinPatterns; k++) {
3683
+ const ptnName = `${newKey}_${k + dfPtnNum}`;
3684
+ g_keyObj[`shuffle${ptnName}_0`] = [...Array(g_keyObj[`color${ptnName}`].length)].fill(0);
3685
+ g_keyObj[`shuffle${ptnName}`] = structuredClone(g_keyObj[`shuffle${ptnName}_0`]);
3686
+ }
3687
+ }
3675
3688
 
3676
3689
  // キーグループ (keyGroupX_Y)
3677
3690
  newKeyMultiParam(newKey, `keyGroup`, toSplitArrayStr);
@@ -6422,9 +6435,9 @@ const getKeyInfo = _ => {
6422
6435
  const keyCtrlPtn = `${g_keyObj.currentKey}_${g_keyObj.currentPtn}`;
6423
6436
  const keyNum = g_keyObj[`chara${keyCtrlPtn}`].length;
6424
6437
  const posMax = (g_keyObj[`divMax${keyCtrlPtn}`] !== undefined ?
6425
- g_keyObj[`divMax${keyCtrlPtn}`] : g_keyObj[`pos${keyCtrlPtn}`][keyNum - 1] + 1);
6438
+ g_keyObj[`divMax${keyCtrlPtn}`] : Math.max(...g_keyObj[`pos${keyCtrlPtn}`]) + 1);
6426
6439
  const divideCnt = g_keyObj[`div${keyCtrlPtn}`] - 1;
6427
- const keyGroupMaps = setVal(g_keyObj[`keyGroup${keyCtrlPtn}`], [...Array(keyNum)].fill([0]), C_TYP_STRING);
6440
+ const keyGroupMaps = setVal(g_keyObj[`keyGroup${keyCtrlPtn}`], [...Array(keyNum)].fill([`0`]), C_TYP_STRING);
6428
6441
  const keyGroupList = makeDedupliArray(keyGroupMaps.flat()).sort((a, b) => parseInt(a) - parseInt(b));
6429
6442
 
6430
6443
  return {
@@ -7393,14 +7406,12 @@ const scoreConvert = (_dosObj, _scoreId, _preblankFrame, _dummyNo = ``,
7393
7406
  }
7394
7407
 
7395
7408
  // キー変化定義
7396
- obj.keychFrames = [];
7409
+ obj.keychFrames = [0];
7410
+ obj.keychTarget = [`0`];
7397
7411
  if (hasVal(_dosObj[`keych${setScoreIdHeader(g_stateObj.scoreId, g_stateObj.scoreLockFlg)}_data`])) {
7398
7412
  const keychdata = splitLF2(_dosObj[`keych${setScoreIdHeader(g_stateObj.scoreId, g_stateObj.scoreLockFlg)}_data`], `,`);
7399
- obj.keychFrames = keychdata.filter((val, j) => j % 2 === 0);
7400
- obj.keychTarget = keychdata.filter((val, j) => j % 2 === 1);
7401
- } else {
7402
- obj.keychFrames = [0];
7403
- obj.keychTarget = [0];
7413
+ obj.keychFrames.push(...keychdata.filter((val, j) => j % 2 === 0));
7414
+ obj.keychTarget.push(...keychdata.filter((val, j) => j % 2 === 1));
7404
7415
  }
7405
7416
 
7406
7417
  return obj;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "danoniplus",
3
- "version": "30.2.1",
3
+ "version": "30.2.3",
4
4
  "description": "Dancing☆Onigiri (CW Edition) - Web-based Rhythm Game",
5
5
  "main": "index.js",
6
6
  "scripts": {