danoniplus 30.3.1 → 30.4.0
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/README.md +3 -3
- package/js/danoni_main.js +41 -42
- package/js/lib/danoni_constants.js +5 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://codeclimate.com/github/cwtickle/danoniplus/maintainability)
|
|
4
4
|
[](https://github.com/cwtickle/danoniplus/actions?query=workflow%3ACodeQL)
|
|
5
|
-
[](https://gitlab.com/cwtickle/danonicw/-/issues)
|
|
6
6
|
[](https://github.com/cwtickle/danoniplus/security/policy)
|
|
7
7
|
[](https://github.com/cwtickle/danoniplus/releases)
|
|
8
8
|
[](https://github.com/cwtickle/danoniplus/blob/develop/LICENSE)
|
|
@@ -89,12 +89,12 @@ If you would like to cooperate with the development, please see below. Even if y
|
|
|
89
89
|
|
|
90
90
|
開発にご協力いただける方は、下記をご覧ください。GitHubアカウントの無い方でも協力できます!
|
|
91
91
|
- [How to Contribute / 貢献の仕方](https://github.com/cwtickle/danoniplus/blob/develop/.github/CONTRIBUTING.md)
|
|
92
|
-
- [
|
|
92
|
+
- [GitLab community for requests and bug reports / 要望・不具合報告(GitLab Issues)](https://gitlab.com/cwtickle/danonicw/-/issues)
|
|
93
93
|
- [Contributors / コントリビューター](https://github.com/cwtickle/danoniplus/blob/develop/CONTRIBUTORS.md)
|
|
94
94
|
|
|
95
95
|
## Community / コミュニティ
|
|
96
96
|
- [Dancing☆Onigiri Discord server](https://discord.gg/TegbHFY7zg)
|
|
97
|
-
- [Gitter for score reporting / 得点報告(Gitter)](https://gitter.im
|
|
97
|
+
- [Gitter for score reporting / 得点報告(Gitter)](https://app.gitter.im/#/room/#danonicw_freeboard:gitter.im)
|
|
98
98
|
- [Twitter #danoni](https://twitter.com/search?q=%23danoni&src=typed_query&f=live)
|
|
99
99
|
|
|
100
100
|
## Related Tools Repository / 関連リポジトリ・ツール
|
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/03/
|
|
7
|
+
* Revised : 2023/03/10
|
|
8
8
|
*
|
|
9
9
|
* https://github.com/cwtickle/danoniplus
|
|
10
10
|
*/
|
|
11
|
-
const g_version = `Ver 30.
|
|
12
|
-
const g_revisedDate = `2023/03/
|
|
11
|
+
const g_version = `Ver 30.4.0`;
|
|
12
|
+
const g_revisedDate = `2023/03/10`;
|
|
13
13
|
const g_alphaVersion = ``;
|
|
14
14
|
|
|
15
15
|
// カスタム用バージョン (danoni_custom.js 等で指定可)
|
|
@@ -3483,43 +3483,50 @@ const keysConvert = (_dosObj, { keyExtraList = _dosObj.keyExtraList.split(`,`) }
|
|
|
3483
3483
|
* 新キー用複合パラメータ(特殊)
|
|
3484
3484
|
* @param {string} _key キー数
|
|
3485
3485
|
* @param {string} _name 名前
|
|
3486
|
-
* @param {object} _obj errCd エラーコード
|
|
3487
|
-
* @returns 最小パターン数
|
|
3488
3486
|
*/
|
|
3489
|
-
const newKeyTripleParam = (_key, _name
|
|
3490
|
-
let tmpMinPatterns = 1;
|
|
3487
|
+
const newKeyTripleParam = (_key, _name) => {
|
|
3491
3488
|
const keyheader = _name + _key;
|
|
3492
3489
|
const dfPtn = setIntVal(g_keyObj.dfPtnNum);
|
|
3493
3490
|
|
|
3494
3491
|
if (hasVal(_dosObj[keyheader])) {
|
|
3495
3492
|
const tmpArray = splitLF2(_dosObj[keyheader]);
|
|
3496
|
-
|
|
3497
|
-
for (let k = 0; k < tmpMinPatterns; k++) {
|
|
3493
|
+
for (let k = 0; k < tmpArray.length; k++) {
|
|
3498
3494
|
if (existParam(tmpArray[k], `${keyheader}_${k + dfPtn}`)) {
|
|
3499
3495
|
continue;
|
|
3500
3496
|
}
|
|
3501
|
-
if (g_keyObj[`${_name}${tmpArray[k]}_0`] !== undefined) {
|
|
3502
3497
|
|
|
3503
|
-
|
|
3504
|
-
|
|
3505
|
-
while (g_keyObj[`${_name}${tmpArray[k]}_${m}`] !== undefined) {
|
|
3506
|
-
g_keyObj[`${keyheader}_${k + dfPtn}_${m}`] = structuredClone(g_keyObj[`${_name}${tmpArray[k]}_${m}`]);
|
|
3507
|
-
m++;
|
|
3508
|
-
}
|
|
3509
|
-
} else {
|
|
3498
|
+
let ptnCnt = 0;
|
|
3499
|
+
tmpArray[k].split(`/`).forEach(list => {
|
|
3510
3500
|
|
|
3511
|
-
|
|
3512
|
-
|
|
3513
|
-
g_keyObj[`${keyheader}_${k + dfPtn}_${
|
|
3514
|
-
|
|
3515
|
-
|
|
3501
|
+
if (list === ``) {
|
|
3502
|
+
// 空指定の場合は一律同じグループへ割り当て
|
|
3503
|
+
g_keyObj[`${keyheader}_${k + dfPtn}_${ptnCnt}`] = [...Array(g_keyObj[`chara${_key}_${k + dfPtn}`].length)].fill(0);
|
|
3504
|
+
|
|
3505
|
+
} else if (g_keyObj[`${_name}${list}_0`] !== undefined) {
|
|
3506
|
+
// 他のキーパターン (例: |shuffle8i=8_0| ) を指定した場合、該当があれば既存パターンからコピー
|
|
3507
|
+
let m = 0;
|
|
3508
|
+
while (g_keyObj[`${_name}${list}_${m}`] !== undefined) {
|
|
3509
|
+
g_keyObj[`${keyheader}_${k + dfPtn}_${ptnCnt}`] = structuredClone(g_keyObj[`${_name}${list}_${m}`]);
|
|
3510
|
+
m++;
|
|
3511
|
+
ptnCnt++;
|
|
3512
|
+
}
|
|
3513
|
+
} else {
|
|
3514
|
+
// 通常の指定方法 (例: |shuffle8i=1,1,1,2,0,0,0,0/1,1,1,1,0,0,0,0| )の場合の取り込み
|
|
3515
|
+
g_keyObj[`${keyheader}_${k + dfPtn}_${ptnCnt}`] = list.split(`,`).map(n => parseInt(n, 10));
|
|
3516
|
+
ptnCnt++;
|
|
3517
|
+
}
|
|
3518
|
+
});
|
|
3516
3519
|
g_keyObj[`${keyheader}_${k + dfPtn}`] = structuredClone(g_keyObj[`${keyheader}_${k + dfPtn}_0`]);
|
|
3517
3520
|
}
|
|
3518
3521
|
|
|
3519
|
-
} else if (
|
|
3520
|
-
|
|
3522
|
+
} else if (g_keyObj[`${keyheader}_${dfPtn}_0`] === undefined) {
|
|
3523
|
+
// 特に指定が無い場合はcharaX_Yの配列長で決定
|
|
3524
|
+
for (let k = 0; k < g_keyObj.minPatterns; k++) {
|
|
3525
|
+
const ptnName = `${_key}_${k + dfPtn}`;
|
|
3526
|
+
g_keyObj[`${_name}${ptnName}_0`] = [...Array(g_keyObj[`chara${ptnName}`].length)].fill(0);
|
|
3527
|
+
g_keyObj[`${_name}${ptnName}`] = structuredClone(g_keyObj[`${_name}${ptnName}_0`]);
|
|
3528
|
+
}
|
|
3521
3529
|
}
|
|
3522
|
-
return tmpMinPatterns;
|
|
3523
3530
|
};
|
|
3524
3531
|
|
|
3525
3532
|
/**
|
|
@@ -3576,7 +3583,7 @@ const keysConvert = (_dosObj, { keyExtraList = _dosObj.keyExtraList.split(`,`) }
|
|
|
3576
3583
|
|
|
3577
3584
|
// 対象キー毎に処理
|
|
3578
3585
|
keyExtraList.forEach(newKey => {
|
|
3579
|
-
|
|
3586
|
+
g_keyObj.minPatterns = 1;
|
|
3580
3587
|
g_keyObj.dfPtnNum = 0;
|
|
3581
3588
|
|
|
3582
3589
|
// キーパターンの追記 (appendX)
|
|
@@ -3596,17 +3603,17 @@ const keysConvert = (_dosObj, { keyExtraList = _dosObj.keyExtraList.split(`,`) }
|
|
|
3596
3603
|
// キーの最小横幅 (minWidthX)
|
|
3597
3604
|
g_keyObj[`minWidth${newKey}`] = _dosObj[`minWidth${newKey}`] ?? g_keyObj[`minWidth${newKey}`] ?? g_keyObj.minWidthDefault;
|
|
3598
3605
|
|
|
3599
|
-
// 矢印色パターン (colorX_Y)
|
|
3600
|
-
tmpMinPatterns = newKeyTripleParam(newKey, `color`, { errCd: `E_0101` });
|
|
3601
|
-
|
|
3602
3606
|
// 読込変数の接頭辞 (charaX_Y)
|
|
3603
|
-
|
|
3607
|
+
g_keyObj.minPatterns = newKeyMultiParam(newKey, `chara`, toString, { errCd: `E_0102` });
|
|
3608
|
+
|
|
3609
|
+
// 矢印色パターン (colorX_Y)
|
|
3610
|
+
newKeyTripleParam(newKey, `color`);
|
|
3604
3611
|
|
|
3605
3612
|
// 矢印の回転量指定、キャラクタパターン (stepRtnX_Y)
|
|
3606
|
-
|
|
3613
|
+
newKeyMultiParam(newKey, `stepRtn`, toStringOrNumber, { errCd: `E_0103` });
|
|
3607
3614
|
|
|
3608
3615
|
// キーコンフィグ (keyCtrlX_Y)
|
|
3609
|
-
|
|
3616
|
+
newKeyMultiParam(newKey, `keyCtrl`, toSplitArray, { errCd: `E_0104`, baseCopyFlg: true });
|
|
3610
3617
|
|
|
3611
3618
|
// ステップゾーン位置 (posX_Y)
|
|
3612
3619
|
newKeyMultiParam(newKey, `pos`, toFloat);
|
|
@@ -3633,7 +3640,7 @@ const keysConvert = (_dosObj, { keyExtraList = _dosObj.keyExtraList.split(`,`) }
|
|
|
3633
3640
|
}
|
|
3634
3641
|
}
|
|
3635
3642
|
// posX_Y, divX_Y, divMaxX_Yが未指定の場合はcharaX_Yを元に適用
|
|
3636
|
-
for (let k = 0; k <
|
|
3643
|
+
for (let k = 0; k < g_keyObj.minPatterns; k++) {
|
|
3637
3644
|
setKeyDfVal(`${newKey}_${k + dfPtnNum}`);
|
|
3638
3645
|
}
|
|
3639
3646
|
|
|
@@ -3654,14 +3661,6 @@ const keysConvert = (_dosObj, { keyExtraList = _dosObj.keyExtraList.split(`,`) }
|
|
|
3654
3661
|
|
|
3655
3662
|
// シャッフルグループ (shuffleX_Y)
|
|
3656
3663
|
newKeyTripleParam(newKey, `shuffle`);
|
|
3657
|
-
if (g_keyObj[`shuffle${newKey}_${dfPtnNum}_0`] === undefined) {
|
|
3658
|
-
// 特に指定が無い場合はcolorX_Yの配列長で決定
|
|
3659
|
-
for (let k = 0; k < tmpMinPatterns; k++) {
|
|
3660
|
-
const ptnName = `${newKey}_${k + dfPtnNum}`;
|
|
3661
|
-
g_keyObj[`shuffle${ptnName}_0`] = [...Array(g_keyObj[`chara${ptnName}`].length)].fill(0);
|
|
3662
|
-
g_keyObj[`shuffle${ptnName}`] = structuredClone(g_keyObj[`shuffle${ptnName}_0`]);
|
|
3663
|
-
}
|
|
3664
|
-
}
|
|
3665
3664
|
|
|
3666
3665
|
// キーグループ (keyGroupX_Y)
|
|
3667
3666
|
newKeyMultiParam(newKey, `keyGroup`, toSplitArrayStr);
|
|
@@ -10518,7 +10517,7 @@ const resultInit = _ => {
|
|
|
10518
10517
|
|
|
10519
10518
|
// Gitterへのリンク
|
|
10520
10519
|
createCss2Button(`btnGitter`, g_lblNameObj.b_gitter, _ => true, Object.assign(g_lblPosObj.btnRsGitter, {
|
|
10521
|
-
resetFunc: _ => openLink(`https://gitter.im
|
|
10520
|
+
resetFunc: _ => openLink(`https://app.gitter.im/#/room/#danonicw_freeboard:gitter.im`),
|
|
10522
10521
|
}), g_cssObj.button_Default),
|
|
10523
10522
|
|
|
10524
10523
|
// リトライ
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Source by tickle
|
|
7
7
|
* Created : 2019/11/19
|
|
8
|
-
* Revised : 2023/03/
|
|
8
|
+
* Revised : 2023/03/10 (v30.4.0)
|
|
9
9
|
*
|
|
10
10
|
* https://github.com/cwtickle/danoniplus
|
|
11
11
|
*/
|
|
@@ -1853,6 +1853,7 @@ const g_keyObj = {
|
|
|
1853
1853
|
scrollDir12_0: {
|
|
1854
1854
|
'---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
|
1855
1855
|
'Flat': [1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1],
|
|
1856
|
+
'Twist': [1, 1, 1, 1, -1, -1, 1, 1, 1, 1, 1, -1],
|
|
1856
1857
|
},
|
|
1857
1858
|
scrollDir13_0: {
|
|
1858
1859
|
'---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
|
@@ -1885,6 +1886,9 @@ const g_keyObj = {
|
|
|
1885
1886
|
scrollDir23_0: {
|
|
1886
1887
|
'---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
|
1887
1888
|
'Flat': [1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
|
|
1889
|
+
'Cross': [-1, -1, -1, -1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1],
|
|
1890
|
+
'Twist': [1, 1, 1, 1, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, -1, -1, -1, 1, 1, 1, 1, 1, -1],
|
|
1891
|
+
'Asymmetry': [-1, -1, -1, -1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, 1, -1, -1, 1, 1, 1, 1, 1, -1],
|
|
1888
1892
|
},
|
|
1889
1893
|
|
|
1890
1894
|
// プレイアシスト設定
|