danoniplus 30.3.0 → 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 +62 -59
- package/js/lib/danoni_constants.js +12 -34
- 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
|
/**
|
|
@@ -3563,7 +3570,7 @@ const keysConvert = (_dosObj, { keyExtraList = _dosObj.keyExtraList.split(`,`) }
|
|
|
3563
3570
|
Object.assign(g_keyObj[pairName], g_keyObj[`${_pairName}${tmpParams[k]}`]);
|
|
3564
3571
|
} else {
|
|
3565
3572
|
if (_defaultName !== ``) {
|
|
3566
|
-
g_keyObj[pairName][_defaultName] = [...Array(g_keyObj[`
|
|
3573
|
+
g_keyObj[pairName][_defaultName] = [...Array(g_keyObj[`chara${_key}_${k + dfPtn}`].length)].fill(_defaultVal);
|
|
3567
3574
|
}
|
|
3568
3575
|
tmpParams[k].split(`/`).forEach(pairs => {
|
|
3569
3576
|
const tmpParamPair = pairs.split(`::`);
|
|
@@ -3576,13 +3583,13 @@ 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)
|
|
3583
3590
|
if (setBoolVal(_dosObj[`append${newKey}`])) {
|
|
3584
3591
|
for (let j = 0; ; j++) {
|
|
3585
|
-
if (g_keyObj[`
|
|
3592
|
+
if (g_keyObj[`chara${newKey}_${j}`] === undefined) {
|
|
3586
3593
|
break;
|
|
3587
3594
|
}
|
|
3588
3595
|
g_keyObj.dfPtnNum++;
|
|
@@ -3596,28 +3603,20 @@ 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);
|
|
3613
|
-
if (_dosObj[`pos${newKey}`] === undefined) {
|
|
3614
|
-
for (let k = 0; k < tmpMinPatterns; k++) {
|
|
3615
|
-
const ptnName = `${newKey}_${k + dfPtnNum}`;
|
|
3616
|
-
if (g_keyObj[`color${ptnName}`] !== undefined) {
|
|
3617
|
-
g_keyObj[`pos${ptnName}`] = [...Array(g_keyObj[`color${ptnName}`].length).keys()].map(i => i);
|
|
3618
|
-
}
|
|
3619
|
-
}
|
|
3620
|
-
}
|
|
3621
3620
|
|
|
3622
3621
|
// 各キーの区切り位置 (divX_Y)
|
|
3623
3622
|
if (_dosObj[`div${newKey}`] !== undefined) {
|
|
@@ -3629,7 +3628,7 @@ const keysConvert = (_dosObj, { keyExtraList = _dosObj.keyExtraList.split(`,`) }
|
|
|
3629
3628
|
if (g_keyObj[`div${tmpDivPtn[0]}`] !== undefined) {
|
|
3630
3629
|
// 既定キーパターンが指定された場合、存在すればその値を適用
|
|
3631
3630
|
g_keyObj[`div${ptnName}`] = g_keyObj[`div${tmpDivPtn[0]}`];
|
|
3632
|
-
g_keyObj[`divMax${ptnName}`] = setVal(g_keyObj[`divMax${tmpDivPtn[0]}`],
|
|
3631
|
+
g_keyObj[`divMax${ptnName}`] = setVal(g_keyObj[`divMax${tmpDivPtn[0]}`], undefined, C_TYP_FLOAT);
|
|
3633
3632
|
} else if (!hasVal(tmpDivPtn[0]) && setIntVal(g_keyObj[`div${ptnName}`], -1) !== -1) {
|
|
3634
3633
|
// カスタムキー側のdivXが未定義だが、すでに初期設定で定義済みの場合はスキップ
|
|
3635
3634
|
continue;
|
|
@@ -3640,13 +3639,9 @@ const keysConvert = (_dosObj, { keyExtraList = _dosObj.keyExtraList.split(`,`) }
|
|
|
3640
3639
|
}
|
|
3641
3640
|
}
|
|
3642
3641
|
}
|
|
3643
|
-
// divX_Yが未指定の場合は
|
|
3644
|
-
for (let k = 0; k <
|
|
3645
|
-
|
|
3646
|
-
if (g_keyObj[`div${ptnName}`] === undefined) {
|
|
3647
|
-
g_keyObj[`div${ptnName}`] = Math.max(...g_keyObj[`pos${ptnName}`]) + 1;
|
|
3648
|
-
g_keyObj[`divMax${ptnName}`] = g_keyObj[`div${ptnName}`];
|
|
3649
|
-
}
|
|
3642
|
+
// posX_Y, divX_Y, divMaxX_Yが未指定の場合はcharaX_Yを元に適用
|
|
3643
|
+
for (let k = 0; k < g_keyObj.minPatterns; k++) {
|
|
3644
|
+
setKeyDfVal(`${newKey}_${k + dfPtnNum}`);
|
|
3650
3645
|
}
|
|
3651
3646
|
|
|
3652
3647
|
// ステップゾーン間隔 (blankX_Y)
|
|
@@ -3666,14 +3661,6 @@ const keysConvert = (_dosObj, { keyExtraList = _dosObj.keyExtraList.split(`,`) }
|
|
|
3666
3661
|
|
|
3667
3662
|
// シャッフルグループ (shuffleX_Y)
|
|
3668
3663
|
newKeyTripleParam(newKey, `shuffle`);
|
|
3669
|
-
if (g_keyObj[`shuffle${newKey}_${dfPtnNum}_0`] === undefined) {
|
|
3670
|
-
// 特に指定が無い場合はcolorX_Yの配列長で決定
|
|
3671
|
-
for (let k = 0; k < tmpMinPatterns; k++) {
|
|
3672
|
-
const ptnName = `${newKey}_${k + dfPtnNum}`;
|
|
3673
|
-
g_keyObj[`shuffle${ptnName}_0`] = [...Array(g_keyObj[`color${ptnName}`].length)].fill(0);
|
|
3674
|
-
g_keyObj[`shuffle${ptnName}`] = structuredClone(g_keyObj[`shuffle${ptnName}_0`]);
|
|
3675
|
-
}
|
|
3676
|
-
}
|
|
3677
3664
|
|
|
3678
3665
|
// キーグループ (keyGroupX_Y)
|
|
3679
3666
|
newKeyMultiParam(newKey, `keyGroup`, toSplitArrayStr);
|
|
@@ -3690,6 +3677,22 @@ const keysConvert = (_dosObj, { keyExtraList = _dosObj.keyExtraList.split(`,`) }
|
|
|
3690
3677
|
return keyExtraList;
|
|
3691
3678
|
};
|
|
3692
3679
|
|
|
3680
|
+
/**
|
|
3681
|
+
* キーパターンのデフォルト値設定
|
|
3682
|
+
* @param {string} _ptnName
|
|
3683
|
+
*/
|
|
3684
|
+
const setKeyDfVal = _ptnName => {
|
|
3685
|
+
if (g_keyObj[`pos${_ptnName}`] === undefined) {
|
|
3686
|
+
g_keyObj[`pos${_ptnName}`] = [...Array(g_keyObj[`chara${_ptnName}`].length).keys()].map(i => i);
|
|
3687
|
+
}
|
|
3688
|
+
if (g_keyObj[`div${_ptnName}`] === undefined) {
|
|
3689
|
+
g_keyObj[`div${_ptnName}`] = Math.max(...g_keyObj[`pos${_ptnName}`]) + 1;
|
|
3690
|
+
}
|
|
3691
|
+
if (g_keyObj[`divMax${_ptnName}`] === undefined) {
|
|
3692
|
+
g_keyObj[`divMax${_ptnName}`] = Math.max(...g_keyObj[`pos${_ptnName}`]) + 1;
|
|
3693
|
+
}
|
|
3694
|
+
};
|
|
3695
|
+
|
|
3693
3696
|
/*-----------------------------------------------------------*/
|
|
3694
3697
|
/* Scene : TITLE [melon] */
|
|
3695
3698
|
/*-----------------------------------------------------------*/
|
|
@@ -10514,7 +10517,7 @@ const resultInit = _ => {
|
|
|
10514
10517
|
|
|
10515
10518
|
// Gitterへのリンク
|
|
10516
10519
|
createCss2Button(`btnGitter`, g_lblNameObj.b_gitter, _ => true, Object.assign(g_lblPosObj.btnRsGitter, {
|
|
10517
|
-
resetFunc: _ => openLink(`https://gitter.im
|
|
10520
|
+
resetFunc: _ => openLink(`https://app.gitter.im/#/room/#danonicw_freeboard:gitter.im`),
|
|
10518
10521
|
}), g_cssObj.button_Default),
|
|
10519
10522
|
|
|
10520
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
|
*/
|
|
@@ -1583,7 +1583,6 @@ const g_keyObj = {
|
|
|
1583
1583
|
|
|
1584
1584
|
// シャッフルグループ(パターン3)
|
|
1585
1585
|
shuffle15A_0_2: [0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 3, 2, 2, 2],
|
|
1586
|
-
shuffle15B_0_2: [0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 3, 2, 2, 2],
|
|
1587
1586
|
|
|
1588
1587
|
// 基本パターン (矢印回転、AAキャラクタ)
|
|
1589
1588
|
// - AAキャラクタの場合、キャラクタ名を指定
|
|
@@ -1622,63 +1621,32 @@ const g_keyObj = {
|
|
|
1622
1621
|
stepRtn8_2: [`onigiri`, 0, 30, 60, 90, 120, 150, 180],
|
|
1623
1622
|
|
|
1624
1623
|
// 各キーの区切り位置
|
|
1625
|
-
div5_0: 5,
|
|
1626
|
-
div7_0: 7,
|
|
1627
|
-
div7i_0: 7,
|
|
1628
|
-
div8_0: 8,
|
|
1629
|
-
div9A_0: 9,
|
|
1630
|
-
div9B_0: 9,
|
|
1631
1624
|
div9i_0: 6,
|
|
1632
1625
|
div11_0: 6,
|
|
1633
1626
|
div11L_0: 6,
|
|
1634
1627
|
div11W_0: 6,
|
|
1635
|
-
div11i_0: 11,
|
|
1636
1628
|
div12_0: 5,
|
|
1637
1629
|
div13_0: 8,
|
|
1638
1630
|
div14_0: 7,
|
|
1639
1631
|
div14i_0: 8,
|
|
1640
1632
|
div15A_0: 8,
|
|
1641
1633
|
div16i_0: 8,
|
|
1642
|
-
div17_0: 17,
|
|
1643
1634
|
div23_0: 12,
|
|
1644
1635
|
|
|
1645
|
-
div5_1: 5,
|
|
1646
|
-
div8_1: 8,
|
|
1647
|
-
div9i_1: 9,
|
|
1648
1636
|
div17_1: 9,
|
|
1649
1637
|
|
|
1650
|
-
div5_2: 5,
|
|
1651
|
-
div8_2: 8,
|
|
1652
|
-
|
|
1653
1638
|
// 各キーの位置関係
|
|
1654
|
-
pos5_0: [0, 1, 2, 3, 4],
|
|
1655
|
-
pos7_0: [0, 1, 2, 3, 4, 5, 6],
|
|
1656
|
-
pos7i_0: [0, 1, 2, 3, 4, 5, 6],
|
|
1657
|
-
pos8_0: [0, 1, 2, 3, 4, 5, 6, 7],
|
|
1658
|
-
pos9A_0: [0, 1, 2, 3, 4, 5, 6, 7, 8],
|
|
1659
|
-
pos9B_0: [0, 1, 2, 3, 4, 5, 6, 7, 8],
|
|
1660
1639
|
pos9i_0: [2, 3, 4, 5, 6, 7, 8, 9, 10],
|
|
1661
1640
|
pos11_0: [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
|
|
1662
1641
|
pos11L_0: [0, 1, 2, 3, 6, 7, 8, 9, 10, 11, 12],
|
|
1663
1642
|
pos11W_0: [0, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12],
|
|
1664
|
-
pos11i_0: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
|
|
1665
1643
|
pos12_0: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
|
|
1666
1644
|
pos13_0: [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16],
|
|
1667
1645
|
pos14_0: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],
|
|
1668
|
-
pos14i_0: [0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14
|
|
1669
|
-
pos15A_0: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],
|
|
1646
|
+
pos14i_0: [0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14],
|
|
1670
1647
|
pos16i_0: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16],
|
|
1671
|
-
pos17_0: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16],
|
|
1672
1648
|
pos23_0: [0, 1, 2, 3, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26],
|
|
1673
1649
|
|
|
1674
|
-
pos5_1: [0, 1, 2, 3, 4],
|
|
1675
|
-
pos8_1: [0, 1, 2, 3, 4, 5, 6, 7],
|
|
1676
|
-
pos9i_1: [0, 1, 2, 3, 4, 5, 6, 7, 8],
|
|
1677
|
-
pos17_1: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16],
|
|
1678
|
-
|
|
1679
|
-
pos5_2: [0, 1, 2, 3, 4],
|
|
1680
|
-
pos8_2: [0, 1, 2, 3, 4, 5, 6, 7],
|
|
1681
|
-
|
|
1682
1650
|
// 基本パターン (キーコンフィグ)
|
|
1683
1651
|
// - 順番はchara, stepRtnと対応している。
|
|
1684
1652
|
// - 多次元配列内はステップに対応するキーコードを示す。カンマ区切りで複数指定できる。
|
|
@@ -1885,6 +1853,7 @@ const g_keyObj = {
|
|
|
1885
1853
|
scrollDir12_0: {
|
|
1886
1854
|
'---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
|
1887
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],
|
|
1888
1857
|
},
|
|
1889
1858
|
scrollDir13_0: {
|
|
1890
1859
|
'---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
|
@@ -1917,6 +1886,9 @@ const g_keyObj = {
|
|
|
1917
1886
|
scrollDir23_0: {
|
|
1918
1887
|
'---': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
|
1919
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],
|
|
1920
1892
|
},
|
|
1921
1893
|
|
|
1922
1894
|
// プレイアシスト設定
|
|
@@ -1968,6 +1940,11 @@ const g_keyObj = {
|
|
|
1968
1940
|
|
|
1969
1941
|
};
|
|
1970
1942
|
|
|
1943
|
+
// posX_Y, divX_Y, divMaxX_Yが未定義のときに0からの連番で補完する処理 (charaX_Yが定義されていることが前提)
|
|
1944
|
+
Object.keys(g_keyObj).filter(val => val.startsWith(`chara`)).forEach(charaPtn => {
|
|
1945
|
+
setKeyDfVal(charaPtn.slice(`chara`.length));
|
|
1946
|
+
});
|
|
1947
|
+
|
|
1971
1948
|
// キーパターンのコピーリスト
|
|
1972
1949
|
// ・コピー先:コピー元の順に指定する
|
|
1973
1950
|
// ・上から順に処理する
|
|
@@ -2049,6 +2026,7 @@ Object.keys(g_copyKeyPtn).forEach(keyPtnTo => {
|
|
|
2049
2026
|
copyKeyPtn(`assistPos`);
|
|
2050
2027
|
|
|
2051
2028
|
copyKeyPtnVal(`div`);
|
|
2029
|
+
copyKeyPtnVal(`divMax`);
|
|
2052
2030
|
copyKeyPtnVal(`blank`);
|
|
2053
2031
|
copyKeyPtnVal(`scale`);
|
|
2054
2032
|
copyKeyPtnVal(`keyRetry`);
|