danoniplus 30.3.0 → 30.3.1
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/js/danoni_main.js +26 -22
- package/js/lib/danoni_constants.js +8 -34
- 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 : 2023/03/
|
|
7
|
+
* Revised : 2023/03/04
|
|
8
8
|
*
|
|
9
9
|
* https://github.com/cwtickle/danoniplus
|
|
10
10
|
*/
|
|
11
|
-
const g_version = `Ver 30.3.
|
|
12
|
-
const g_revisedDate = `2023/03/
|
|
11
|
+
const g_version = `Ver 30.3.1`;
|
|
12
|
+
const g_revisedDate = `2023/03/04`;
|
|
13
13
|
const g_alphaVersion = ``;
|
|
14
14
|
|
|
15
15
|
// カスタム用バージョン (danoni_custom.js 等で指定可)
|
|
@@ -3511,7 +3511,7 @@ const keysConvert = (_dosObj, { keyExtraList = _dosObj.keyExtraList.split(`,`) }
|
|
|
3511
3511
|
// 通常の指定方法 (例: |shuffle8i=1,1,1,2,0,0,0,0/1,1,1,1,0,0,0,0| )の場合の取り込み
|
|
3512
3512
|
tmpArray[k].split(`/`).forEach((list, m) =>
|
|
3513
3513
|
g_keyObj[`${keyheader}_${k + dfPtn}_${m}`] = (list === `` ?
|
|
3514
|
-
[...Array(g_keyObj[`
|
|
3514
|
+
[...Array(g_keyObj[`chara${_key}_${k + dfPtn}`].length)].fill(0) : list.split(`,`).map(n => parseInt(n, 10))));
|
|
3515
3515
|
}
|
|
3516
3516
|
g_keyObj[`${keyheader}_${k + dfPtn}`] = structuredClone(g_keyObj[`${keyheader}_${k + dfPtn}_0`]);
|
|
3517
3517
|
}
|
|
@@ -3563,7 +3563,7 @@ const keysConvert = (_dosObj, { keyExtraList = _dosObj.keyExtraList.split(`,`) }
|
|
|
3563
3563
|
Object.assign(g_keyObj[pairName], g_keyObj[`${_pairName}${tmpParams[k]}`]);
|
|
3564
3564
|
} else {
|
|
3565
3565
|
if (_defaultName !== ``) {
|
|
3566
|
-
g_keyObj[pairName][_defaultName] = [...Array(g_keyObj[`
|
|
3566
|
+
g_keyObj[pairName][_defaultName] = [...Array(g_keyObj[`chara${_key}_${k + dfPtn}`].length)].fill(_defaultVal);
|
|
3567
3567
|
}
|
|
3568
3568
|
tmpParams[k].split(`/`).forEach(pairs => {
|
|
3569
3569
|
const tmpParamPair = pairs.split(`::`);
|
|
@@ -3582,7 +3582,7 @@ const keysConvert = (_dosObj, { keyExtraList = _dosObj.keyExtraList.split(`,`) }
|
|
|
3582
3582
|
// キーパターンの追記 (appendX)
|
|
3583
3583
|
if (setBoolVal(_dosObj[`append${newKey}`])) {
|
|
3584
3584
|
for (let j = 0; ; j++) {
|
|
3585
|
-
if (g_keyObj[`
|
|
3585
|
+
if (g_keyObj[`chara${newKey}_${j}`] === undefined) {
|
|
3586
3586
|
break;
|
|
3587
3587
|
}
|
|
3588
3588
|
g_keyObj.dfPtnNum++;
|
|
@@ -3610,14 +3610,6 @@ const keysConvert = (_dosObj, { keyExtraList = _dosObj.keyExtraList.split(`,`) }
|
|
|
3610
3610
|
|
|
3611
3611
|
// ステップゾーン位置 (posX_Y)
|
|
3612
3612
|
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
3613
|
|
|
3622
3614
|
// 各キーの区切り位置 (divX_Y)
|
|
3623
3615
|
if (_dosObj[`div${newKey}`] !== undefined) {
|
|
@@ -3629,7 +3621,7 @@ const keysConvert = (_dosObj, { keyExtraList = _dosObj.keyExtraList.split(`,`) }
|
|
|
3629
3621
|
if (g_keyObj[`div${tmpDivPtn[0]}`] !== undefined) {
|
|
3630
3622
|
// 既定キーパターンが指定された場合、存在すればその値を適用
|
|
3631
3623
|
g_keyObj[`div${ptnName}`] = g_keyObj[`div${tmpDivPtn[0]}`];
|
|
3632
|
-
g_keyObj[`divMax${ptnName}`] = setVal(g_keyObj[`divMax${tmpDivPtn[0]}`],
|
|
3624
|
+
g_keyObj[`divMax${ptnName}`] = setVal(g_keyObj[`divMax${tmpDivPtn[0]}`], undefined, C_TYP_FLOAT);
|
|
3633
3625
|
} else if (!hasVal(tmpDivPtn[0]) && setIntVal(g_keyObj[`div${ptnName}`], -1) !== -1) {
|
|
3634
3626
|
// カスタムキー側のdivXが未定義だが、すでに初期設定で定義済みの場合はスキップ
|
|
3635
3627
|
continue;
|
|
@@ -3640,13 +3632,9 @@ const keysConvert = (_dosObj, { keyExtraList = _dosObj.keyExtraList.split(`,`) }
|
|
|
3640
3632
|
}
|
|
3641
3633
|
}
|
|
3642
3634
|
}
|
|
3643
|
-
// divX_Yが未指定の場合は
|
|
3635
|
+
// posX_Y, divX_Y, divMaxX_Yが未指定の場合はcharaX_Yを元に適用
|
|
3644
3636
|
for (let k = 0; k < tmpMinPatterns; 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
|
-
}
|
|
3637
|
+
setKeyDfVal(`${newKey}_${k + dfPtnNum}`);
|
|
3650
3638
|
}
|
|
3651
3639
|
|
|
3652
3640
|
// ステップゾーン間隔 (blankX_Y)
|
|
@@ -3670,7 +3658,7 @@ const keysConvert = (_dosObj, { keyExtraList = _dosObj.keyExtraList.split(`,`) }
|
|
|
3670
3658
|
// 特に指定が無い場合はcolorX_Yの配列長で決定
|
|
3671
3659
|
for (let k = 0; k < tmpMinPatterns; k++) {
|
|
3672
3660
|
const ptnName = `${newKey}_${k + dfPtnNum}`;
|
|
3673
|
-
g_keyObj[`shuffle${ptnName}_0`] = [...Array(g_keyObj[`
|
|
3661
|
+
g_keyObj[`shuffle${ptnName}_0`] = [...Array(g_keyObj[`chara${ptnName}`].length)].fill(0);
|
|
3674
3662
|
g_keyObj[`shuffle${ptnName}`] = structuredClone(g_keyObj[`shuffle${ptnName}_0`]);
|
|
3675
3663
|
}
|
|
3676
3664
|
}
|
|
@@ -3690,6 +3678,22 @@ const keysConvert = (_dosObj, { keyExtraList = _dosObj.keyExtraList.split(`,`) }
|
|
|
3690
3678
|
return keyExtraList;
|
|
3691
3679
|
};
|
|
3692
3680
|
|
|
3681
|
+
/**
|
|
3682
|
+
* キーパターンのデフォルト値設定
|
|
3683
|
+
* @param {string} _ptnName
|
|
3684
|
+
*/
|
|
3685
|
+
const setKeyDfVal = _ptnName => {
|
|
3686
|
+
if (g_keyObj[`pos${_ptnName}`] === undefined) {
|
|
3687
|
+
g_keyObj[`pos${_ptnName}`] = [...Array(g_keyObj[`chara${_ptnName}`].length).keys()].map(i => i);
|
|
3688
|
+
}
|
|
3689
|
+
if (g_keyObj[`div${_ptnName}`] === undefined) {
|
|
3690
|
+
g_keyObj[`div${_ptnName}`] = Math.max(...g_keyObj[`pos${_ptnName}`]) + 1;
|
|
3691
|
+
}
|
|
3692
|
+
if (g_keyObj[`divMax${_ptnName}`] === undefined) {
|
|
3693
|
+
g_keyObj[`divMax${_ptnName}`] = Math.max(...g_keyObj[`pos${_ptnName}`]) + 1;
|
|
3694
|
+
}
|
|
3695
|
+
};
|
|
3696
|
+
|
|
3693
3697
|
/*-----------------------------------------------------------*/
|
|
3694
3698
|
/* Scene : TITLE [melon] */
|
|
3695
3699
|
/*-----------------------------------------------------------*/
|
|
@@ -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/04 (v30.3.1)
|
|
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
|
// - 多次元配列内はステップに対応するキーコードを示す。カンマ区切りで複数指定できる。
|
|
@@ -1968,6 +1936,11 @@ const g_keyObj = {
|
|
|
1968
1936
|
|
|
1969
1937
|
};
|
|
1970
1938
|
|
|
1939
|
+
// posX_Y, divX_Y, divMaxX_Yが未定義のときに0からの連番で補完する処理 (charaX_Yが定義されていることが前提)
|
|
1940
|
+
Object.keys(g_keyObj).filter(val => val.startsWith(`chara`)).forEach(charaPtn => {
|
|
1941
|
+
setKeyDfVal(charaPtn.slice(`chara`.length));
|
|
1942
|
+
});
|
|
1943
|
+
|
|
1971
1944
|
// キーパターンのコピーリスト
|
|
1972
1945
|
// ・コピー先:コピー元の順に指定する
|
|
1973
1946
|
// ・上から順に処理する
|
|
@@ -2049,6 +2022,7 @@ Object.keys(g_copyKeyPtn).forEach(keyPtnTo => {
|
|
|
2049
2022
|
copyKeyPtn(`assistPos`);
|
|
2050
2023
|
|
|
2051
2024
|
copyKeyPtnVal(`div`);
|
|
2025
|
+
copyKeyPtnVal(`divMax`);
|
|
2052
2026
|
copyKeyPtnVal(`blank`);
|
|
2053
2027
|
copyKeyPtnVal(`scale`);
|
|
2054
2028
|
copyKeyPtnVal(`keyRetry`);
|