danoniplus 38.1.2 → 38.2.2
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 +0 -2
- package/js/danoni_main.js +42 -41
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
# Dancing☆Onigiri (CW Edition)
|
|
2
2
|
|
|
3
|
-
[](https://www.codefactor.io/repository/github/cwtickle/danoniplus)
|
|
4
|
-
[](https://app.codacy.com/gh/cwtickle/danoniplus/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade)
|
|
5
3
|
[](https://github.com/cwtickle/danoniplus/actions?query=workflow%3ACodeQL)
|
|
6
4
|
[](https://discord.gg/YVWUdUGyMy)
|
|
7
5
|
[](https://github.com/cwtickle/danoniplus/security/policy)
|
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 : 2024/12/
|
|
7
|
+
* Revised : 2024/12/19
|
|
8
8
|
*
|
|
9
9
|
* https://github.com/cwtickle/danoniplus
|
|
10
10
|
*/
|
|
11
|
-
const g_version = `Ver 38.
|
|
12
|
-
const g_revisedDate = `2024/12/
|
|
11
|
+
const g_version = `Ver 38.2.2`;
|
|
12
|
+
const g_revisedDate = `2024/12/19`;
|
|
13
13
|
|
|
14
14
|
// カスタム用バージョン (danoni_custom.js 等で指定可)
|
|
15
15
|
let g_localVersion = ``;
|
|
@@ -8054,40 +8054,36 @@ const applySRandom = (_keyNum, _shuffleGroup, _arrowHeader, _frzHeader) => {
|
|
|
8054
8054
|
// 通常矢印の配置
|
|
8055
8055
|
const allArrows = _group.map(_key => g_scoreObj[`${_arrowHeader}Data`][_key]).flat();
|
|
8056
8056
|
allArrows.sort((_a, _b) => _a - _b);
|
|
8057
|
-
let prev2Num = 0, prevNum = 0;
|
|
8057
|
+
let prev2Num = 0, prevNum = 0, sameFlg = true;
|
|
8058
8058
|
allArrows.forEach(_arrow => {
|
|
8059
8059
|
|
|
8060
8060
|
// 直前の矢印のフレーム数を取得
|
|
8061
|
-
|
|
8062
|
-
|
|
8063
|
-
|
|
8064
|
-
|
|
8065
|
-
|
|
8066
|
-
}
|
|
8061
|
+
sameFlg = true;
|
|
8062
|
+
if (prev2Num !== _arrow && prevNum !== _arrow) {
|
|
8063
|
+
prev2Num = prevNum;
|
|
8064
|
+
prevNum = _arrow;
|
|
8065
|
+
sameFlg = false;
|
|
8066
|
+
}
|
|
8067
|
+
|
|
8068
|
+
const getFreeSpaces = ({ scatterFrame = 0, frzFlg = false, prevFlg = false } = {}) =>
|
|
8069
|
+
_group.filter(_key =>
|
|
8070
|
+
// 通常矢印と重ならない
|
|
8071
|
+
tmpArrowData[_key].find(_other => _arrow >= _other - scatterFrame && _arrow <= _other + scatterFrame) === undefined
|
|
8072
|
+
// フリーズと重ならない
|
|
8073
|
+
&& (!frzFlg || tmpFrzData[_key].find(_freeze => _arrow >= _freeze.begin - scatterFrame && _arrow <= _freeze.end + scatterFrame) === undefined)
|
|
8074
|
+
// 直前の矢印と重ならない
|
|
8075
|
+
&& (!prevFlg || tmpArrowData[_key].find(_other => prev2Num === _other) === undefined)
|
|
8076
|
+
);
|
|
8067
8077
|
|
|
8068
8078
|
// 置ける場所を検索
|
|
8069
|
-
const freeSpacesFlat =
|
|
8070
|
-
|
|
8071
|
-
|
|
8072
|
-
|
|
8073
|
-
&& tmpArrowData[_key].find(_other => _arrow >= _other - scatterFrame && _arrow <= _other + scatterFrame) === undefined
|
|
8074
|
-
// 直前の矢印と重ならない
|
|
8075
|
-
&& tmpArrowData[_key].find(_other => prev2Num === _other) === undefined
|
|
8076
|
-
);
|
|
8077
|
-
const freeSpaces = _group.filter(_key =>
|
|
8078
|
-
// フリーズと重ならない
|
|
8079
|
-
tmpFrzData[_key].find(_freeze => _arrow >= _freeze.begin && _arrow <= _freeze.end) === undefined
|
|
8080
|
-
// 通常矢印と重ならない
|
|
8081
|
-
&& tmpArrowData[_key].find(_other => _arrow === _other) === undefined
|
|
8082
|
-
);
|
|
8083
|
-
const freeSpacesAlt = _group.filter(_key =>
|
|
8084
|
-
// 通常矢印と重ならない
|
|
8085
|
-
tmpArrowData[_key].find(_other => _arrow === _other) === undefined
|
|
8086
|
-
);
|
|
8079
|
+
const freeSpacesFlat = getFreeSpaces({ scatterFrame, frzFlg: true, prevFlg: true });
|
|
8080
|
+
const freeSpaces = getFreeSpaces({ frzFlg: true });
|
|
8081
|
+
const freeSpacesAlt = getFreeSpaces();
|
|
8082
|
+
|
|
8087
8083
|
// ランダムに配置
|
|
8088
8084
|
let currentFreeSpaces = freeSpaces.length > 0 ? freeSpaces : freeSpacesAlt;
|
|
8089
8085
|
if (g_stateObj.shuffle.startsWith(`Scatter`)) {
|
|
8090
|
-
currentFreeSpaces = freeSpacesFlat.length > 0 ? freeSpacesFlat : currentFreeSpaces;
|
|
8086
|
+
currentFreeSpaces = freeSpacesFlat.length > 0 && !sameFlg ? freeSpacesFlat : currentFreeSpaces;
|
|
8091
8087
|
}
|
|
8092
8088
|
const random = Math.floor(Math.random() * currentFreeSpaces.length);
|
|
8093
8089
|
tmpArrowData[currentFreeSpaces[random]].push(_arrow);
|
|
@@ -8278,22 +8274,14 @@ const scoreConvert = (_dosObj, _scoreId, _preblankFrame, _dummyNo = ``,
|
|
|
8278
8274
|
// 矢印番号の組み立て
|
|
8279
8275
|
const colorVals = [];
|
|
8280
8276
|
replaceStr(patternStr[0], g_escapeStr.targetPatternName)?.split(`/`)?.forEach(val => {
|
|
8281
|
-
if (val.
|
|
8282
|
-
// g付きの場合は矢印グループから対象の矢印番号を検索
|
|
8283
|
-
const groupVal = setIntVal(val.slice(1));
|
|
8284
|
-
for (let j = 0; j < keyNum; j++) {
|
|
8285
|
-
if (g_keyObj[`color${_keyCtrlPtn}`][j] === groupVal) {
|
|
8286
|
-
colorVals.push(j);
|
|
8287
|
-
}
|
|
8288
|
-
}
|
|
8289
|
-
} else if (val.indexOf(`...`) > 0) {
|
|
8277
|
+
if (val.indexOf(`...`) > 0) {
|
|
8290
8278
|
// 範囲指定表記の補完 例. 0...3 -> 0/1/2/3
|
|
8291
8279
|
const [valMin, valMax] = [val.split(`...`)[0], val.split(`...`)[1]].map(val => setIntVal(val));
|
|
8292
8280
|
for (let k = valMin; k <= valMax; k++) {
|
|
8293
|
-
colorVals.push(
|
|
8281
|
+
colorVals.push(String(k));
|
|
8294
8282
|
}
|
|
8295
8283
|
} else {
|
|
8296
|
-
colorVals.push(
|
|
8284
|
+
colorVals.push(val);
|
|
8297
8285
|
}
|
|
8298
8286
|
});
|
|
8299
8287
|
|
|
@@ -9211,6 +9199,9 @@ const getFrzLength = (_speedOnFrame, _startFrame, _endFrame) => {
|
|
|
9211
9199
|
|
|
9212
9200
|
/**
|
|
9213
9201
|
* キーパターン(デフォルト)に対応する矢印番号を格納
|
|
9202
|
+
* - 色変化、矢印・フリーズアローモーション、スクロール変化で
|
|
9203
|
+
* 矢印レーンの番号を実際のキーパターンに対応する番号に置き換える際に使用
|
|
9204
|
+
* - 例: [0, 1, 2, 3, 4] -> [4, 0, 1, 2, 3]
|
|
9214
9205
|
*/
|
|
9215
9206
|
const convertReplaceNums = () => {
|
|
9216
9207
|
const tkObj = getKeyInfo();
|
|
@@ -9288,7 +9279,17 @@ const pushColors = (_header, _frame, _val, _colorCd, _allFlg, _pattern = ``) =>
|
|
|
9288
9279
|
allUseTypes.push(`Frz`);
|
|
9289
9280
|
}
|
|
9290
9281
|
// 色変化情報の格納
|
|
9291
|
-
|
|
9282
|
+
if (_val.startsWith('g')) {
|
|
9283
|
+
// g付きの場合は矢印グループから対象の矢印番号を検索
|
|
9284
|
+
const groupVal = setIntVal(_val.slice(1));
|
|
9285
|
+
for (let j = 0; j < tkObj.keyNum; j++) {
|
|
9286
|
+
if (g_keyObj[`color${tkObj.keyCtrlPtn}`][j] === groupVal) {
|
|
9287
|
+
baseHeaders.forEach(baseHeader => pushColor(baseHeader, j + addAll));
|
|
9288
|
+
}
|
|
9289
|
+
}
|
|
9290
|
+
} else {
|
|
9291
|
+
baseHeaders.forEach(baseHeader => pushColor(baseHeader, g_workObj.replaceNums[setIntVal(_val)] + addAll));
|
|
9292
|
+
}
|
|
9292
9293
|
};
|
|
9293
9294
|
|
|
9294
9295
|
/**
|