danoniplus 39.1.0 → 39.2.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/js/danoni_main.js +58 -24
- package/js/lib/danoni_constants.js +10 -16
- 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 : 2025/02/
|
|
7
|
+
* Revised : 2025/02/08
|
|
8
8
|
*
|
|
9
9
|
* https://github.com/cwtickle/danoniplus
|
|
10
10
|
*/
|
|
11
|
-
const g_version = `Ver 39.
|
|
12
|
-
const g_revisedDate = `2025/02/
|
|
11
|
+
const g_version = `Ver 39.2.0`;
|
|
12
|
+
const g_revisedDate = `2025/02/08`;
|
|
13
13
|
|
|
14
14
|
// カスタム用バージョン (danoni_custom.js 等で指定可)
|
|
15
15
|
let g_localVersion = ``;
|
|
@@ -9814,6 +9814,9 @@ const getArrowSettings = () => {
|
|
|
9814
9814
|
g_workObj.drunkXFlg = false;
|
|
9815
9815
|
g_workObj.drunkYFlg = false;
|
|
9816
9816
|
|
|
9817
|
+
// AppearanceFilterの可視範囲設定
|
|
9818
|
+
g_workObj.aprFilterCnt = 0;
|
|
9819
|
+
|
|
9817
9820
|
if (g_stateObj.dataSaveFlg) {
|
|
9818
9821
|
// ローカルストレージへAdjustment, HitPosition, Volume設定を保存
|
|
9819
9822
|
g_storeSettings.forEach(setting => g_localStorage[setting] = g_stateObj[setting]);
|
|
@@ -9977,35 +9980,42 @@ const mainInit = () => {
|
|
|
9977
9980
|
g_keyObj[`div${keyCtrlPtn}`] < g_keyObj[`${g_keyObj.defaultProp}${keyCtrlPtn}`].length);
|
|
9978
9981
|
g_workObj.stepZoneDisp = (g_stateObj.d_stepzone === C_FLG_OFF || g_workObj.flatMode) ? C_DIS_NONE : C_DIS_INHERIT;
|
|
9979
9982
|
|
|
9980
|
-
// Hidden+, Sudden+用のライン、パーセント表示
|
|
9981
|
-
const filterCss = g_stateObj.filterLock === C_FLG_OFF ? g_cssObj.life_Failed : g_cssObj.life_Cleared;
|
|
9982
|
-
[`filterBar0`, `filterBar1`, `borderBar0`, `borderBar1`].forEach(obj =>
|
|
9983
|
-
mainSprite.appendChild(createColorObject2(obj, g_lblPosObj.filterBar, filterCss)));
|
|
9984
|
-
borderBar0.style.top = wUnit(g_posObj.stepDiffY + g_stateObj.hitPosition);
|
|
9985
|
-
borderBar1.style.top = wUnit(g_posObj.stepDiffY + g_posObj.arrowHeight - g_stateObj.hitPosition);
|
|
9986
|
-
|
|
9987
|
-
if (g_appearanceRanges.includes(g_stateObj.appearance)) {
|
|
9988
|
-
mainSprite.appendChild(createDivCss2Label(`filterView`, ``, g_lblPosObj.filterView));
|
|
9989
|
-
if (g_stateObj.d_filterline === C_FLG_ON) {
|
|
9990
|
-
$id(`filterView`).opacity = g_stateObj.opacity / 100;
|
|
9991
|
-
$id(`filterBar0`).opacity = g_stateObj.opacity / 100;
|
|
9992
|
-
$id(`filterBar1`).opacity = g_stateObj.opacity / 100;
|
|
9993
|
-
}
|
|
9994
|
-
}
|
|
9995
|
-
|
|
9996
9983
|
// mainSprite配下に層別のスプライトを作成し、ステップゾーン・矢印本体・フリーズアローヒット部分に分ける
|
|
9997
9984
|
const mainSpriteN = [], stepSprite = [], arrowSprite = [], frzHitSprite = [];
|
|
9998
9985
|
const mainCommonPos = { w: g_headerObj.playingWidth, h: g_posObj.arrowHeight };
|
|
9986
|
+
|
|
9987
|
+
// Hidden+, Sudden+用のライン、パーセント表示
|
|
9988
|
+
const filterCss = g_stateObj.filterLock === C_FLG_OFF ? g_cssObj.life_Failed : g_cssObj.life_Cleared;
|
|
9989
|
+
const doubleFilterFlg = ![`Default`, `Halfway`].includes(g_stateObj.stepArea);
|
|
9990
|
+
|
|
9999
9991
|
for (let j = 0; j < g_stateObj.layerNum; j++) {
|
|
10000
9992
|
const mainSpriteJ = createEmptySprite(mainSprite, `mainSprite${j}`, mainCommonPos);
|
|
10001
9993
|
mainSpriteN.push(mainSpriteJ);
|
|
9994
|
+
mainSpriteJ.appendChild(createColorObject2(`filterBar${j}`, g_lblPosObj.filterBar, filterCss));
|
|
9995
|
+
if (doubleFilterFlg) {
|
|
9996
|
+
mainSpriteJ.appendChild(createColorObject2(`filterBar${j % 2 == 0 ? j + 1 : j - 1}_HS`, g_lblPosObj.filterBar, filterCss));
|
|
9997
|
+
}
|
|
10002
9998
|
addTransform(`mainSprite${j}`, `mainSprite${j}`,
|
|
10003
9999
|
g_keyObj[`layerTrans${keyCtrlPtn}`]?.[0]?.[Math.floor(j / 2) + (j + Number(g_stateObj.reverse === C_FLG_ON)) % 2]);
|
|
10000
|
+
|
|
10004
10001
|
stepSprite.push(createEmptySprite(mainSpriteJ, `stepSprite${j}`, mainCommonPos));
|
|
10005
10002
|
arrowSprite.push(createEmptySprite(mainSpriteJ, `arrowSprite${j}`, Object.assign({ y: g_workObj.hitPosition * (j % 2 === 0 ? 1 : -1) }, mainCommonPos)));
|
|
10006
10003
|
frzHitSprite.push(createEmptySprite(mainSpriteJ, `frzHitSprite${j}`, mainCommonPos));
|
|
10007
10004
|
}
|
|
10008
10005
|
|
|
10006
|
+
if (g_appearanceRanges.includes(g_stateObj.appearance)) {
|
|
10007
|
+
mainSprite.appendChild(createDivCss2Label(`filterView`, ``, g_lblPosObj.filterView));
|
|
10008
|
+
if (g_stateObj.d_filterline === C_FLG_ON) {
|
|
10009
|
+
$id(`filterView`).opacity = g_stateObj.opacity / 100;
|
|
10010
|
+
for (let j = 0; j < g_stateObj.layerNum; j++) {
|
|
10011
|
+
$id(`filterBar${j}`).opacity = g_stateObj.opacity / 100;
|
|
10012
|
+
if (doubleFilterFlg) {
|
|
10013
|
+
$id(`filterBar${j}_HS`).opacity = g_stateObj.opacity / 100;
|
|
10014
|
+
}
|
|
10015
|
+
}
|
|
10016
|
+
}
|
|
10017
|
+
}
|
|
10018
|
+
|
|
10009
10019
|
// ステップゾーン、フリーズアローヒット部分の生成
|
|
10010
10020
|
for (let j = 0; j < keyNum; j++) {
|
|
10011
10021
|
makeStepZone(j, keyCtrlPtn);
|
|
@@ -10039,7 +10049,7 @@ const mainInit = () => {
|
|
|
10039
10049
|
|
|
10040
10050
|
// Appearanceのオプション適用時は一部描画を隠す
|
|
10041
10051
|
changeAppearanceFilter(g_appearanceRanges.includes(g_stateObj.appearance) ?
|
|
10042
|
-
g_hidSudObj.filterPos : g_hidSudObj.filterPosDefault[g_stateObj.appearance]);
|
|
10052
|
+
g_hidSudObj.filterPos : g_hidSudObj.filterPosDefault[g_stateObj.appearance], true);
|
|
10043
10053
|
|
|
10044
10054
|
// 現在の矢印・フリーズアローの速度、個別加算速度の初期化 (速度変化時に直す)
|
|
10045
10055
|
g_workObj.currentSpeed = 2;
|
|
@@ -11319,8 +11329,9 @@ const makeStepZone = (_j, _keyCtrlPtn) => {
|
|
|
11319
11329
|
/**
|
|
11320
11330
|
* アルファマスクの再描画 (Appearance: Hidden+, Sudden+ 用)
|
|
11321
11331
|
* @param {number} _num
|
|
11332
|
+
* @param {boolean} _shiftFlg シフトキーを押したかどうかのフラグ
|
|
11322
11333
|
*/
|
|
11323
|
-
const changeAppearanceFilter = (_num = 10) => {
|
|
11334
|
+
const changeAppearanceFilter = (_num = 10, _shiftFlg = keyIsShift()) => {
|
|
11324
11335
|
const MAX_FILTER_POS = 100;
|
|
11325
11336
|
const topNum = g_hidSudObj[g_stateObj.appearance];
|
|
11326
11337
|
const bottomNum = (g_hidSudObj[g_stateObj.appearance] + 1) % 2;
|
|
@@ -11331,16 +11342,39 @@ const changeAppearanceFilter = (_num = 10) => {
|
|
|
11331
11342
|
const numPlus = (g_stateObj.appearance === `Hid&Sud+` ? _num : 0);
|
|
11332
11343
|
const topShape = `inset(${_num}% 0% ${numPlus}% 0%)`;
|
|
11333
11344
|
const bottomShape = `inset(${numPlus}% 0% ${_num}% 0%)`;
|
|
11345
|
+
const appearPers = [_num, MAX_FILTER_POS - _num];
|
|
11334
11346
|
|
|
11335
11347
|
for (let j = 0; j < g_stateObj.layerNum; j += 2) {
|
|
11336
11348
|
$id(`arrowSprite${topNum + j}`).clipPath = topShape;
|
|
11337
11349
|
$id(`arrowSprite${bottomNum + j}`).clipPath = bottomShape;
|
|
11350
|
+
|
|
11351
|
+
$id(`filterBar${topNum + j}`).top = wUnit(parseFloat($id(`arrowSprite${j}`).top) + g_posObj.arrowHeight * appearPers[topNum] / MAX_FILTER_POS);
|
|
11352
|
+
$id(`filterBar${bottomNum + j}`).top = wUnit(parseFloat($id(`arrowSprite${j + 1}`).top) + g_posObj.arrowHeight * appearPers[bottomNum] / MAX_FILTER_POS);
|
|
11353
|
+
|
|
11354
|
+
if (![`Default`, `Halfway`].includes(g_stateObj.stepArea)) {
|
|
11355
|
+
$id(`filterBar${bottomNum + j}_HS`).top = wUnit(parseFloat($id(`arrowSprite${j}`).top) + g_posObj.arrowHeight * appearPers[bottomNum] / MAX_FILTER_POS);
|
|
11356
|
+
$id(`filterBar${topNum + j}_HS`).top = wUnit(parseFloat($id(`arrowSprite${j + 1}`).top) + g_posObj.arrowHeight * appearPers[topNum] / MAX_FILTER_POS);
|
|
11357
|
+
}
|
|
11358
|
+
|
|
11359
|
+
// 階層が多い場合はShift+pgUp/pgDownで表示する階層グループを切り替え
|
|
11360
|
+
if (_shiftFlg && g_stateObj.d_filterline === C_FLG_ON) {
|
|
11361
|
+
[`${topNum + j}`, `${bottomNum + j}`].forEach(type => {
|
|
11362
|
+
$id(`filterBar${type}`).display = (j === g_workObj.aprFilterCnt ? C_DIS_INHERIT : C_DIS_NONE);
|
|
11363
|
+
|
|
11364
|
+
if (![`Default`, `Halfway`].includes(g_stateObj.stepArea)) {
|
|
11365
|
+
$id(`filterBar${type}_HS`).display = (j === g_workObj.aprFilterCnt ? C_DIS_INHERIT : C_DIS_NONE);
|
|
11366
|
+
}
|
|
11367
|
+
});
|
|
11368
|
+
}
|
|
11369
|
+
}
|
|
11370
|
+
|
|
11371
|
+
if (_shiftFlg) {
|
|
11372
|
+
g_workObj.aprFilterCnt = nextPos(g_workObj.aprFilterCnt, 2, g_stateObj.layerNum);
|
|
11338
11373
|
}
|
|
11339
|
-
|
|
11340
|
-
$id(`filterBar1`).top = wUnit(parseFloat($id(`arrowSprite${bottomNum}`).top) + g_posObj.arrowHeight * (MAX_FILTER_POS - _num) / MAX_FILTER_POS);
|
|
11374
|
+
|
|
11341
11375
|
if (g_appearanceRanges.includes(g_stateObj.appearance)) {
|
|
11342
11376
|
$id(`filterView`).top =
|
|
11343
|
-
$id(`filterBar${g_hidSudObj.std[g_stateObj.appearance][g_stateObj.reverse]}`).top;
|
|
11377
|
+
$id(`filterBar${(g_hidSudObj.std[g_stateObj.appearance][g_stateObj.reverse]) % 2}`).top;
|
|
11344
11378
|
filterView.textContent = `${_num}%`;
|
|
11345
11379
|
|
|
11346
11380
|
if (g_stateObj.appearance !== `Hid&Sud+` && g_workObj.dividePos.every(v => v === g_workObj.dividePos[0])) {
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Source by tickle
|
|
7
7
|
* Created : 2019/11/19
|
|
8
|
-
* Revised : 2025/02/
|
|
8
|
+
* Revised : 2025/02/08 (v39.2.0)
|
|
9
9
|
*
|
|
10
10
|
* https://github.com/cwtickle/danoniplus
|
|
11
11
|
*/
|
|
@@ -1228,25 +1228,19 @@ const g_stepAreaFunc = {
|
|
|
1228
1228
|
});
|
|
1229
1229
|
},
|
|
1230
1230
|
'Mismatched': () => {
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
}
|
|
1235
|
-
});
|
|
1231
|
+
for (let j = 0; j < g_stateObj.layerNum; j++) {
|
|
1232
|
+
addTransform(`mainSprite${j}`, `stepArea`, `rotate(${(j % 2 === 0 ? 1 : -1) * -15}deg)`);
|
|
1233
|
+
}
|
|
1236
1234
|
},
|
|
1237
1235
|
'R-Mismatched': () => {
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
}
|
|
1242
|
-
});
|
|
1236
|
+
for (let j = 0; j < g_stateObj.layerNum; j++) {
|
|
1237
|
+
addTransform(`mainSprite${j}`, `stepArea`, `rotate(${(j % 2 === 0 ? 1 : -1) * 15}deg)`);
|
|
1238
|
+
}
|
|
1243
1239
|
},
|
|
1244
1240
|
'X-Flower': () => {
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
}
|
|
1249
|
-
});
|
|
1241
|
+
for (let j = 0; j < Math.min(g_stateObj.layerNum, 4); j++) {
|
|
1242
|
+
addTransform(`mainSprite${j}`, `stepArea`, `rotate(${(j % 2 === 0 ? 1 : -1) * (j % 4 < 2 ? 1 : -1) * -15}deg)`);
|
|
1243
|
+
}
|
|
1250
1244
|
},
|
|
1251
1245
|
};
|
|
1252
1246
|
|