danoniplus 39.3.0 → 39.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/js/danoni_main.js +56 -38
- package/js/lib/danoni_constants.js +201 -140
- package/package.json +1 -1
package/js/danoni_main.js
CHANGED
|
@@ -8,8 +8,8 @@
|
|
|
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.4.0`;
|
|
12
|
+
const g_revisedDate = `2025/02/10`;
|
|
13
13
|
|
|
14
14
|
// カスタム用バージョン (danoni_custom.js 等で指定可)
|
|
15
15
|
let g_localVersion = ``;
|
|
@@ -7986,7 +7986,7 @@ const loadingScoreInit = async () => {
|
|
|
7986
7986
|
g_workObj.shuffleGroupMap[_val]?.push(_i) || (g_workObj.shuffleGroupMap[_val] = [_i]));
|
|
7987
7987
|
|
|
7988
7988
|
// Mirror,Random,S-Randomの適用
|
|
7989
|
-
g_shuffleFunc
|
|
7989
|
+
g_shuffleFunc.get(g_stateObj.shuffle)(keyNum, Object.values(g_workObj.shuffleGroupMap));
|
|
7990
7990
|
|
|
7991
7991
|
// アシスト用の配列があれば、ダミーデータで上書き
|
|
7992
7992
|
if (typeof g_keyObj[`assistPos${keyCtrlPtn}`] === C_TYP_OBJECT &&
|
|
@@ -8921,7 +8921,7 @@ const setSpeedOnFrame = (_speedData, _lastFrame) => {
|
|
|
8921
8921
|
* Motionオプション適用時の矢印別の速度設定
|
|
8922
8922
|
* - 矢印が表示される最大フレーム数を 縦ピクセル数×20 と定義。
|
|
8923
8923
|
*/
|
|
8924
|
-
const setMotionOnFrame = () => g_motionFunc
|
|
8924
|
+
const setMotionOnFrame = () => g_motionFunc.get(g_stateObj.motion)(fillArray(g_headerObj.playingHeight * 20 + 1));
|
|
8925
8925
|
|
|
8926
8926
|
/**
|
|
8927
8927
|
* Boost用の適用関数
|
|
@@ -9948,27 +9948,31 @@ const mainInit = () => {
|
|
|
9948
9948
|
g_workObj.fadeOutNo = fillArray(wordMaxLen);
|
|
9949
9949
|
g_workObj.lastFadeFrame = fillArray(wordMaxLen);
|
|
9950
9950
|
g_workObj.wordFadeFrame = fillArray(wordMaxLen);
|
|
9951
|
+
const mainCommonPos = { w: g_headerObj.playingWidth, h: g_posObj.arrowHeight };
|
|
9951
9952
|
|
|
9952
9953
|
// 背景スプライトを作成
|
|
9953
|
-
createMultipleSprite(`backSprite`, g_scoreObj.backMaxDepth
|
|
9954
|
+
createMultipleSprite(`backSprite`, g_scoreObj.backMaxDepth);
|
|
9955
|
+
addX(`backSprite`, `root`, g_workObj.backX);
|
|
9954
9956
|
|
|
9955
9957
|
// ステップゾーン、矢印のメインスプライトを作成
|
|
9956
|
-
const mainSprite = createEmptySprite(divRoot, `mainSprite`,
|
|
9957
|
-
x: g_workObj.playingX, y: g_posObj.stepY - C_STEP_Y + g_headerObj.playingY, w: g_headerObj.playingWidth, h: g_headerObj.playingHeight,
|
|
9958
|
-
});
|
|
9958
|
+
const mainSprite = createEmptySprite(divRoot, `mainSprite`, mainCommonPos);
|
|
9959
9959
|
addTransform(`mainSprite`, `root`, `scale(${g_keyObj.scale})`);
|
|
9960
|
+
addXY(`mainSprite`, `root`, g_workObj.playingX, g_posObj.stepY - C_STEP_Y + g_headerObj.playingY);
|
|
9960
9961
|
|
|
9961
9962
|
// 曲情報・判定カウント用スプライトを作成(メインスプライトより上位)
|
|
9962
|
-
const infoSprite = createEmptySprite(divRoot, `infoSprite`,
|
|
9963
|
+
const infoSprite = createEmptySprite(divRoot, `infoSprite`, mainCommonPos);
|
|
9964
|
+
addXY(`infoSprite`, `root`, g_workObj.playingX, g_headerObj.playingY);
|
|
9963
9965
|
|
|
9964
9966
|
// 判定系スプライトを作成(メインスプライトより上位)
|
|
9965
|
-
const judgeSprite = createEmptySprite(divRoot, `judgeSprite`,
|
|
9967
|
+
const judgeSprite = createEmptySprite(divRoot, `judgeSprite`, mainCommonPos);
|
|
9968
|
+
addXY(`judgeSprite`, `root`, g_workObj.playingX, g_headerObj.playingY);
|
|
9966
9969
|
|
|
9967
9970
|
const tkObj = getKeyInfo();
|
|
9968
9971
|
const [keyCtrlPtn, keyNum] = [tkObj.keyCtrlPtn, tkObj.keyNum];
|
|
9969
9972
|
|
|
9970
9973
|
// マスクスプライトを作成 (最上位)
|
|
9971
|
-
createMultipleSprite(`maskSprite`, g_scoreObj.maskMaxDepth
|
|
9974
|
+
createMultipleSprite(`maskSprite`, g_scoreObj.maskMaxDepth);
|
|
9975
|
+
addX(`maskSprite`, `root`, g_workObj.backX);
|
|
9972
9976
|
|
|
9973
9977
|
// カラー・モーションを適用するオブジェクトの種類
|
|
9974
9978
|
const objList = (g_stateObj.dummyId === `` ? [``] : [`dummy`, ``]);
|
|
@@ -9999,7 +10003,6 @@ const mainInit = () => {
|
|
|
9999
10003
|
|
|
10000
10004
|
// mainSprite配下に層別のスプライトを作成し、ステップゾーン・矢印本体・フリーズアローヒット部分に分ける
|
|
10001
10005
|
const mainSpriteN = [], stepSprite = [], arrowSprite = [], frzHitSprite = [];
|
|
10002
|
-
const mainCommonPos = { w: g_headerObj.playingWidth, h: g_posObj.arrowHeight };
|
|
10003
10006
|
|
|
10004
10007
|
// Hidden+, Sudden+用のライン、パーセント表示
|
|
10005
10008
|
const filterCss = g_stateObj.filterLock === C_FLG_OFF ? g_cssObj.life_Failed : g_cssObj.life_Cleared;
|
|
@@ -10062,12 +10065,23 @@ const mainInit = () => {
|
|
|
10062
10065
|
}
|
|
10063
10066
|
|
|
10064
10067
|
// StepArea処理
|
|
10065
|
-
g_stepAreaFunc
|
|
10068
|
+
g_stepAreaFunc.get(g_stateObj.stepArea)();
|
|
10069
|
+
|
|
10070
|
+
// mainSpriteのtransform追加処理
|
|
10071
|
+
addTransform(`mainSprite`, `playWindow`, g_playWindowFunc.get(g_stateObj.playWindow)());
|
|
10072
|
+
|
|
10073
|
+
// EffectのArrowEffect追加処理
|
|
10074
|
+
g_effectFunc.get(g_stateObj.effect)();
|
|
10066
10075
|
|
|
10067
10076
|
// Appearanceのオプション適用時は一部描画を隠す
|
|
10068
10077
|
changeAppearanceFilter(g_appearanceRanges.includes(g_stateObj.appearance) ?
|
|
10069
10078
|
g_hidSudObj.filterPos : g_hidSudObj.filterPosDefault[g_stateObj.appearance], true);
|
|
10070
10079
|
|
|
10080
|
+
// Shaking初期化
|
|
10081
|
+
if (g_stateObj.shaking !== C_FLG_OFF) {
|
|
10082
|
+
addXY(`mainSprite`, `shaking`, 0, 0);
|
|
10083
|
+
}
|
|
10084
|
+
|
|
10071
10085
|
// 現在の矢印・フリーズアローの速度、個別加算速度の初期化 (速度変化時に直す)
|
|
10072
10086
|
g_workObj.currentSpeed = 2;
|
|
10073
10087
|
g_workObj.boostSpd = 1;
|
|
@@ -10326,12 +10340,6 @@ const mainInit = () => {
|
|
|
10326
10340
|
// ユーザカスタムイベント(初期)
|
|
10327
10341
|
g_customJsObj.main.forEach(func => func());
|
|
10328
10342
|
|
|
10329
|
-
// mainSpriteのtransform追加処理
|
|
10330
|
-
addTransform(`mainSprite`, `playWindow`, g_playWindowFunc[g_stateObj.playWindow]());
|
|
10331
|
-
|
|
10332
|
-
// EffectのArrowEffect追加処理
|
|
10333
|
-
g_effectFunc[g_stateObj.effect]();
|
|
10334
|
-
|
|
10335
10343
|
/**
|
|
10336
10344
|
* キーを押したときの処理
|
|
10337
10345
|
*/
|
|
@@ -11055,7 +11063,7 @@ const mainInit = () => {
|
|
|
11055
11063
|
}
|
|
11056
11064
|
|
|
11057
11065
|
// 画面揺れの設定
|
|
11058
|
-
g_shakingFunc
|
|
11066
|
+
g_shakingFunc.get(g_stateObj.shaking)();
|
|
11059
11067
|
|
|
11060
11068
|
// ユーザカスタムイベント(フレーム毎)
|
|
11061
11069
|
g_customJsObj.mainEnterFrame.forEach(func => func());
|
|
@@ -11356,30 +11364,36 @@ const changeAppearanceFilter = (_num = 10, _shiftFlg = keyIsShift()) => {
|
|
|
11356
11364
|
_num = MAX_FILTER_POS / 2;
|
|
11357
11365
|
}
|
|
11358
11366
|
|
|
11367
|
+
// アルファマスクの位置設定
|
|
11359
11368
|
const numPlus = (g_stateObj.appearance === `Hid&Sud+` ? _num : 0);
|
|
11360
11369
|
const topShape = `inset(${_num}% 0% ${numPlus}% 0%)`;
|
|
11361
11370
|
const bottomShape = `inset(${numPlus}% 0% ${_num}% 0%)`;
|
|
11371
|
+
|
|
11372
|
+
// フィルターバーの位置設定
|
|
11362
11373
|
const appearPers = [_num, MAX_FILTER_POS - _num];
|
|
11374
|
+
const topDist = g_posObj.arrowHeight * appearPers[topNum] / MAX_FILTER_POS;
|
|
11375
|
+
const bottomDist = g_posObj.arrowHeight * appearPers[bottomNum] / MAX_FILTER_POS;
|
|
11363
11376
|
|
|
11364
11377
|
for (let j = 0; j < g_stateObj.layerNum; j += 2) {
|
|
11365
11378
|
$id(`arrowSprite${topNum + j}`).clipPath = topShape;
|
|
11366
11379
|
$id(`arrowSprite${bottomNum + j}`).clipPath = bottomShape;
|
|
11367
11380
|
|
|
11368
|
-
$id(`filterBar${topNum + j}`).top = wUnit(parseFloat($id(`arrowSprite${j}`).top) +
|
|
11369
|
-
$id(`filterBar${bottomNum + j}`).top = wUnit(parseFloat($id(`arrowSprite${j + 1}`).top) +
|
|
11381
|
+
$id(`filterBar${topNum + j}`).top = wUnit(parseFloat($id(`arrowSprite${j}`).top) + topDist);
|
|
11382
|
+
$id(`filterBar${bottomNum + j}`).top = wUnit(parseFloat($id(`arrowSprite${j + 1}`).top) + bottomDist);
|
|
11370
11383
|
|
|
11371
11384
|
if (![`Default`, `Halfway`].includes(g_stateObj.stepArea)) {
|
|
11372
|
-
$id(`filterBar${bottomNum + j}_HS`).top = wUnit(parseFloat($id(`arrowSprite${j}`).top) +
|
|
11373
|
-
$id(`filterBar${topNum + j}_HS`).top = wUnit(parseFloat($id(`arrowSprite${j + 1}`).top) +
|
|
11385
|
+
$id(`filterBar${bottomNum + j}_HS`).top = wUnit(parseFloat($id(`arrowSprite${j}`).top) + bottomDist);
|
|
11386
|
+
$id(`filterBar${topNum + j}_HS`).top = wUnit(parseFloat($id(`arrowSprite${j + 1}`).top) + topDist);
|
|
11374
11387
|
}
|
|
11375
11388
|
|
|
11376
11389
|
// 階層が多い場合はShift+pgUp/pgDownで表示する階層グループを切り替え
|
|
11377
11390
|
if (_shiftFlg && g_stateObj.d_filterline === C_FLG_ON) {
|
|
11378
11391
|
[`${topNum + j}`, `${bottomNum + j}`].forEach(type => {
|
|
11379
|
-
|
|
11392
|
+
const displayState = (j === g_workObj.aprFilterCnt ? C_DIS_INHERIT : C_DIS_NONE);
|
|
11393
|
+
$id(`filterBar${type}`).display = displayState;
|
|
11380
11394
|
|
|
11381
11395
|
if (![`Default`, `Halfway`].includes(g_stateObj.stepArea)) {
|
|
11382
|
-
$id(`filterBar${type}_HS`).display =
|
|
11396
|
+
$id(`filterBar${type}_HS`).display = displayState;
|
|
11383
11397
|
}
|
|
11384
11398
|
});
|
|
11385
11399
|
}
|
|
@@ -11394,6 +11408,7 @@ const changeAppearanceFilter = (_num = 10, _shiftFlg = keyIsShift()) => {
|
|
|
11394
11408
|
$id(`filterBar${(g_hidSudObj.std[g_stateObj.appearance][g_stateObj.reverse]) % 2}`).top;
|
|
11395
11409
|
filterView.textContent = `${_num}%`;
|
|
11396
11410
|
|
|
11411
|
+
// スクロールが1種類でHidden+/Sudden+の場合、対面のフィルターバーは不要なため非表示にする
|
|
11397
11412
|
if (g_stateObj.appearance !== `Hid&Sud+` && g_workObj.dividePos.every(v => v === g_workObj.dividePos[0])) {
|
|
11398
11413
|
$id(`filterBar${(g_hidSudObj.std[g_stateObj.appearance][g_stateObj.reverse] + 1) % 2}`).display = C_DIS_NONE;
|
|
11399
11414
|
}
|
|
@@ -11470,10 +11485,14 @@ const changeReturn = (_rad, _axis) => {
|
|
|
11470
11485
|
|
|
11471
11486
|
/**
|
|
11472
11487
|
* AutoRetryの設定
|
|
11473
|
-
* @param {
|
|
11488
|
+
* @param {string} _retryCondition リトライ基準となるAutoRetry名
|
|
11474
11489
|
*/
|
|
11475
|
-
const quickRetry = (
|
|
11476
|
-
|
|
11490
|
+
const quickRetry = (_retryCondition) => {
|
|
11491
|
+
const retryNum = g_settings.autoRetrys.findIndex(val => val === _retryCondition);
|
|
11492
|
+
if (retryNum < 0) {
|
|
11493
|
+
return;
|
|
11494
|
+
}
|
|
11495
|
+
if (g_settings.autoRetryNum >= retryNum && !g_workObj.autoRetryFlg) {
|
|
11477
11496
|
g_workObj.autoRetryFlg = true;
|
|
11478
11497
|
setTimeout(() => {
|
|
11479
11498
|
g_audio.pause();
|
|
@@ -11578,7 +11597,6 @@ const changeHitFrz = (_j, _k, _name, _difFrame = 0) => {
|
|
|
11578
11597
|
const styfrzBtmRoot = $id(`${_name}BtmRoot${frzNo}`);
|
|
11579
11598
|
const styfrzBtm = $id(`${_name}Btm${frzNo}`);
|
|
11580
11599
|
const styfrzTopRoot = $id(`${_name}TopRoot${frzNo}`);
|
|
11581
|
-
const styfrzTop = $id(`${_name}Top${frzNo}`);
|
|
11582
11600
|
const styfrzBtmShadow = $id(`${_name}BtmShadow${frzNo}`);
|
|
11583
11601
|
|
|
11584
11602
|
// フリーズアロー位置の修正(ステップゾーン上に来るように)
|
|
@@ -11629,7 +11647,7 @@ const changeHitFrz = (_j, _k, _name, _difFrame = 0) => {
|
|
|
11629
11647
|
// FrzReturnの設定
|
|
11630
11648
|
if (g_stateObj.frzReturn !== C_FLG_OFF) {
|
|
11631
11649
|
if (!g_workObj.frzReturnFlg) {
|
|
11632
|
-
changeReturn(4, g_frzReturnFunc
|
|
11650
|
+
changeReturn(4, g_frzReturnFunc.get(g_stateObj.frzReturn)());
|
|
11633
11651
|
}
|
|
11634
11652
|
}
|
|
11635
11653
|
g_customJsObj[`judg_${_name}Hit`].forEach(func => func(_difFrame));
|
|
@@ -11654,7 +11672,7 @@ const changeFailedFrz = (_j, _k) => {
|
|
|
11654
11672
|
// FrzReturnの設定
|
|
11655
11673
|
if (g_stateObj.frzReturn !== C_FLG_OFF) {
|
|
11656
11674
|
if (!g_workObj.frzReturnFlg) {
|
|
11657
|
-
changeReturn(4, g_frzReturnFunc
|
|
11675
|
+
changeReturn(4, g_frzReturnFunc.get(g_stateObj.frzReturn)());
|
|
11658
11676
|
}
|
|
11659
11677
|
}
|
|
11660
11678
|
};
|
|
@@ -11776,11 +11794,11 @@ const displayDiff = (_difFrame, _fjdg = ``, _justFrames = g_headerObj.justFrames
|
|
|
11776
11794
|
} else if (_difFrame > _justFrames) {
|
|
11777
11795
|
diffJDisp = `<span class="common_diffFast">Fast ${difCnt} Frames</span>`;
|
|
11778
11796
|
g_resultObj.fast++;
|
|
11779
|
-
quickRetry(
|
|
11797
|
+
quickRetry(`Fast/Slow`);
|
|
11780
11798
|
} else if (_difFrame < _justFrames * (-1)) {
|
|
11781
11799
|
diffJDisp = `<span class="common_diffSlow">Slow ${difCnt} Frames</span>`;
|
|
11782
11800
|
g_resultObj.slow++;
|
|
11783
|
-
quickRetry(
|
|
11801
|
+
quickRetry(`Fast/Slow`);
|
|
11784
11802
|
}
|
|
11785
11803
|
document.getElementById(`diff${_fjdg}J`).innerHTML = diffJDisp;
|
|
11786
11804
|
};
|
|
@@ -11826,7 +11844,7 @@ const lifeRecovery = () => {
|
|
|
11826
11844
|
*/
|
|
11827
11845
|
const lifeDamage = (_excessive = false) => {
|
|
11828
11846
|
g_workObj.lifeVal -= g_workObj.lifeDmg * (_excessive ? 0.25 : 1);
|
|
11829
|
-
quickRetry(
|
|
11847
|
+
quickRetry(`Miss`);
|
|
11830
11848
|
|
|
11831
11849
|
if (g_workObj.lifeVal <= 0) {
|
|
11832
11850
|
g_workObj.lifeVal = 0;
|
|
@@ -11874,11 +11892,11 @@ const judgeRecovery = (_name, _difFrame) => {
|
|
|
11874
11892
|
|
|
11875
11893
|
if (g_stateObj.freezeReturn !== C_FLG_OFF) {
|
|
11876
11894
|
if ((g_resultObj.ii + g_resultObj.shakin) % 100 === 0 && !g_workObj.frzReturnFlg) {
|
|
11877
|
-
changeReturn(1, g_frzReturnFunc
|
|
11895
|
+
changeReturn(1, g_frzReturnFunc.get(g_stateObj.frzReturn)());
|
|
11878
11896
|
}
|
|
11879
11897
|
}
|
|
11880
11898
|
if (_name === `shakin`) {
|
|
11881
|
-
quickRetry(
|
|
11899
|
+
quickRetry(`Shakin(Great)`);
|
|
11882
11900
|
}
|
|
11883
11901
|
g_customJsObj[`judg_${_name}`].forEach(func => func(_difFrame));
|
|
11884
11902
|
};
|
|
@@ -11917,7 +11935,7 @@ const judgeMatari = _difFrame => {
|
|
|
11917
11935
|
changeJudgeCharacter(`matari`, g_lblNameObj.j_matari);
|
|
11918
11936
|
comboJ.textContent = ``;
|
|
11919
11937
|
finishViewing();
|
|
11920
|
-
quickRetry(
|
|
11938
|
+
quickRetry(`Matari(Good)`);
|
|
11921
11939
|
|
|
11922
11940
|
g_customJsObj.judg_matari.forEach(func => func(_difFrame));
|
|
11923
11941
|
};
|
|
@@ -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/10 (v39.4.0)
|
|
9
9
|
*
|
|
10
10
|
* https://github.com/cwtickle/danoniplus
|
|
11
11
|
*/
|
|
@@ -1113,7 +1113,8 @@ const g_moveSettingWindow = (_changePageFlg = true, _direction = 1) => {
|
|
|
1113
1113
|
* transform, 座標管理
|
|
1114
1114
|
*/
|
|
1115
1115
|
const g_transforms = {};
|
|
1116
|
-
const
|
|
1116
|
+
const g_posXs = {};
|
|
1117
|
+
const g_posYs = {};
|
|
1117
1118
|
|
|
1118
1119
|
/**
|
|
1119
1120
|
* idごとのtransformを追加・変更
|
|
@@ -1124,12 +1125,10 @@ const g_posXYs = {};
|
|
|
1124
1125
|
*/
|
|
1125
1126
|
const addTransform = (_id, _transformId, _transform) => {
|
|
1126
1127
|
if (g_transforms[_id] === undefined) {
|
|
1127
|
-
g_transforms[_id] =
|
|
1128
|
+
g_transforms[_id] = new Map();
|
|
1128
1129
|
}
|
|
1129
|
-
g_transforms[_id]
|
|
1130
|
-
|
|
1131
|
-
Object.keys(g_transforms[_id]).forEach(transformId => _transforms.push(g_transforms[_id][transformId]));
|
|
1132
|
-
$id(_id).transform = _transforms.join(` `);
|
|
1130
|
+
g_transforms[_id].set(_transformId, _transform);
|
|
1131
|
+
$id(_id).transform = Array.from(g_transforms[_id].values()).join(` `);
|
|
1133
1132
|
};
|
|
1134
1133
|
|
|
1135
1134
|
/**
|
|
@@ -1145,22 +1144,77 @@ const addTempTransform = (_id, _transform) => {
|
|
|
1145
1144
|
* transformの初期化
|
|
1146
1145
|
*/
|
|
1147
1146
|
const resetTransform = () => {
|
|
1148
|
-
Object.keys(g_transforms).forEach(_id => g_transforms[_id]
|
|
1147
|
+
Object.keys(g_transforms).forEach(_id => delete g_transforms[_id]);
|
|
1149
1148
|
};
|
|
1150
1149
|
|
|
1151
1150
|
/**
|
|
1152
|
-
*
|
|
1151
|
+
* id, transformIdに合致するtransform情報の取得
|
|
1152
|
+
* @param {string} _id
|
|
1153
|
+
* @param {string} _transformId
|
|
1154
|
+
* @returns {string}
|
|
1155
|
+
*/
|
|
1156
|
+
const getTransform = (_id, _transformId) => {
|
|
1157
|
+
return g_transforms[_id]?.[_transformId] || ``;
|
|
1158
|
+
};
|
|
1159
|
+
|
|
1160
|
+
/**
|
|
1161
|
+
* 座標加算処理 (X座標)
|
|
1153
1162
|
* @param {string} _id
|
|
1154
1163
|
* @param {string} _typeId
|
|
1164
|
+
* @param {number} [_x=0]
|
|
1165
|
+
* @param {boolean} [_overwrite=false]
|
|
1155
1166
|
*/
|
|
1156
|
-
const
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1167
|
+
const addX = (_id, _typeId, _x = 0, _overwrite = false) => {
|
|
1168
|
+
if (_overwrite) {
|
|
1169
|
+
delete g_posXs?.[_id];
|
|
1170
|
+
}
|
|
1171
|
+
if (g_posXs[_id] === undefined) {
|
|
1172
|
+
g_posXs[_id] = new Map();
|
|
1173
|
+
}
|
|
1174
|
+
if (g_posXs[_id].get(_typeId) !== _x) {
|
|
1175
|
+
g_posXs[_id].set(_typeId, _x);
|
|
1176
|
+
$id(_id).left = `${sumData(Array.from(g_posXs[_id].values()))}px`;
|
|
1177
|
+
}
|
|
1178
|
+
};
|
|
1179
|
+
|
|
1180
|
+
/**
|
|
1181
|
+
* 座標加算処理 (Y座標)
|
|
1182
|
+
* @param {string} _id
|
|
1183
|
+
* @param {string} _typeId
|
|
1184
|
+
* @param {number} [_y=0]
|
|
1185
|
+
* @param {boolean} [_overwrite=false]
|
|
1186
|
+
*/
|
|
1187
|
+
const addY = (_id, _typeId, _y = 0, _overwrite = false) => {
|
|
1188
|
+
if (_overwrite) {
|
|
1189
|
+
delete g_posYs?.[_id];
|
|
1190
|
+
}
|
|
1191
|
+
if (g_posYs[_id] === undefined) {
|
|
1192
|
+
g_posYs[_id] = new Map();
|
|
1193
|
+
}
|
|
1194
|
+
if (g_posYs[_id].get(_typeId) !== _y) {
|
|
1195
|
+
g_posYs[_id].set(_typeId, _y);
|
|
1196
|
+
$id(_id).top = `${sumData(Array.from(g_posYs[_id].values()))}px`;
|
|
1197
|
+
}
|
|
1198
|
+
};
|
|
1199
|
+
|
|
1200
|
+
/**
|
|
1201
|
+
* 座標リセット処理(X座標)
|
|
1202
|
+
* @param {string} _id
|
|
1203
|
+
* @param {string} _typeId
|
|
1204
|
+
*/
|
|
1205
|
+
const delX = (_id, _typeId) => {
|
|
1206
|
+
g_posXs[_id]?.delete(_typeId);
|
|
1207
|
+
$id(_id).left = `${sumData(Array.from(g_posXs[_id].values()))}px`;
|
|
1208
|
+
};
|
|
1209
|
+
|
|
1210
|
+
/**
|
|
1211
|
+
* 座標リセット処理(Y座標)
|
|
1212
|
+
* @param {string} _id
|
|
1213
|
+
* @param {string} _typeId
|
|
1214
|
+
*/
|
|
1215
|
+
const delY = (_id, _typeId) => {
|
|
1216
|
+
g_posYs[_id]?.delete(_typeId);
|
|
1217
|
+
$id(_id).top = `${sumData(Array.from(g_posYs[_id].values()))}px`;
|
|
1164
1218
|
};
|
|
1165
1219
|
|
|
1166
1220
|
/**
|
|
@@ -1172,14 +1226,8 @@ const calcXY = (_id, _typeId) => {
|
|
|
1172
1226
|
* @param {boolean} [_overwrite=false]
|
|
1173
1227
|
*/
|
|
1174
1228
|
const addXY = (_id, _typeId, _x = 0, _y = 0, _overwrite = false) => {
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
}
|
|
1178
|
-
if (g_posXYs[_id] === undefined) {
|
|
1179
|
-
g_posXYs[_id] = {};
|
|
1180
|
-
}
|
|
1181
|
-
g_posXYs[_id][_typeId] = [_x, _y];
|
|
1182
|
-
calcXY(_id, _typeId);
|
|
1229
|
+
addX(_id, _typeId, _x, _overwrite);
|
|
1230
|
+
addY(_id, _typeId, _y, _overwrite);
|
|
1183
1231
|
};
|
|
1184
1232
|
|
|
1185
1233
|
/**
|
|
@@ -1188,25 +1236,16 @@ const addXY = (_id, _typeId, _x = 0, _y = 0, _overwrite = false) => {
|
|
|
1188
1236
|
* @param {string} _typeId
|
|
1189
1237
|
*/
|
|
1190
1238
|
const delXY = (_id, _typeId) => {
|
|
1191
|
-
|
|
1192
|
-
|
|
1239
|
+
delX(_id, _typeId);
|
|
1240
|
+
delY(_id, _typeId);
|
|
1193
1241
|
};
|
|
1194
1242
|
|
|
1195
1243
|
/**
|
|
1196
1244
|
* 座標位置情報の初期化
|
|
1197
1245
|
*/
|
|
1198
1246
|
const resetXY = () => {
|
|
1199
|
-
Object.keys(
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
/**
|
|
1203
|
-
* id, transformIdに合致するtransform情報の取得
|
|
1204
|
-
* @param {string} _id
|
|
1205
|
-
* @param {string} _transformId
|
|
1206
|
-
* @returns
|
|
1207
|
-
*/
|
|
1208
|
-
const getTransform = (_id, _transformId) => {
|
|
1209
|
-
return g_transforms[_id]?.[_transformId] || ``;
|
|
1247
|
+
Object.keys(g_posXs).forEach(_id => delete g_posXs[_id]);
|
|
1248
|
+
Object.keys(g_posYs).forEach(_id => delete g_posYs[_id]);
|
|
1210
1249
|
};
|
|
1211
1250
|
|
|
1212
1251
|
/**
|
|
@@ -1214,43 +1253,43 @@ const getTransform = (_id, _transformId) => {
|
|
|
1214
1253
|
* @param {number} keyNum
|
|
1215
1254
|
* @param {array} shuffleGroup
|
|
1216
1255
|
*/
|
|
1217
|
-
const g_shuffleFunc =
|
|
1218
|
-
'OFF'
|
|
1219
|
-
'Mirror'
|
|
1220
|
-
'X-Mirror'
|
|
1221
|
-
'Turning'
|
|
1222
|
-
'Random'
|
|
1223
|
-
'Random+'
|
|
1224
|
-
'S-Random'
|
|
1256
|
+
const g_shuffleFunc = new Map([
|
|
1257
|
+
['OFF', () => true],
|
|
1258
|
+
['Mirror', (keyNum, shuffleGroup) => applyMirror(keyNum, shuffleGroup)],
|
|
1259
|
+
['X-Mirror', (keyNum, shuffleGroup) => applyMirror(keyNum, shuffleGroup, true)],
|
|
1260
|
+
['Turning', (keyNum, shuffleGroup) => applyTurning(keyNum, shuffleGroup)],
|
|
1261
|
+
['Random', (keyNum, shuffleGroup) => applyRandom(keyNum, shuffleGroup)],
|
|
1262
|
+
['Random+', keyNum => applyRandom(keyNum, [[...Array(keyNum).keys()]])],
|
|
1263
|
+
['S-Random', (keyNum, shuffleGroup) => {
|
|
1225
1264
|
applySRandom(keyNum, shuffleGroup, `arrow`, `frz`);
|
|
1226
1265
|
applySRandom(keyNum, shuffleGroup, `dummyArrow`, `dummyFrz`);
|
|
1227
|
-
},
|
|
1228
|
-
'S-Random+'
|
|
1266
|
+
}],
|
|
1267
|
+
['S-Random+', keyNum => {
|
|
1229
1268
|
applySRandom(keyNum, [[...Array(keyNum).keys()]], `arrow`, `frz`);
|
|
1230
1269
|
applySRandom(keyNum, [[...Array(keyNum).keys()]], `dummyArrow`, `dummyFrz`);
|
|
1231
|
-
},
|
|
1232
|
-
'Scatter'
|
|
1270
|
+
}],
|
|
1271
|
+
['Scatter', (keyNum, shuffleGroup) => {
|
|
1233
1272
|
applySRandom(keyNum, shuffleGroup, `arrow`, `frz`);
|
|
1234
1273
|
applySRandom(keyNum, shuffleGroup, `dummyArrow`, `dummyFrz`);
|
|
1235
|
-
},
|
|
1236
|
-
'Scatter+'
|
|
1274
|
+
}],
|
|
1275
|
+
['Scatter+', keyNum => {
|
|
1237
1276
|
applySRandom(keyNum, [[...Array(keyNum).keys()]], `arrow`, `frz`);
|
|
1238
1277
|
applySRandom(keyNum, [[...Array(keyNum).keys()]], `dummyArrow`, `dummyFrz`);
|
|
1239
|
-
},
|
|
1240
|
-
|
|
1278
|
+
}],
|
|
1279
|
+
]);
|
|
1241
1280
|
|
|
1242
1281
|
/**
|
|
1243
1282
|
* モーション適用関数
|
|
1244
1283
|
* @param {array} frms フレーム別の速度設定用配列。配列の15がステップゾーン上、0~14は矢印の枠外管理用
|
|
1245
1284
|
*/
|
|
1246
|
-
const g_motionFunc =
|
|
1247
|
-
'OFF'
|
|
1248
|
-
'Boost'
|
|
1249
|
-
'Hi-Boost'
|
|
1250
|
-
'Brake'
|
|
1251
|
-
'Compress'
|
|
1252
|
-
'Fountain'
|
|
1253
|
-
|
|
1285
|
+
const g_motionFunc = new Map([
|
|
1286
|
+
['OFF', _frms => _frms],
|
|
1287
|
+
['Boost', _frms => getBoostTrace(_frms, 3)],
|
|
1288
|
+
['Hi-Boost', _frms => getBoostTrace(_frms, g_stateObj.speed * 2)],
|
|
1289
|
+
['Brake', _frms => getBrakeTrace(_frms)],
|
|
1290
|
+
['Compress', _frms => getBoostTrace(_frms, g_stateObj.speed * 5 / 8, -1)],
|
|
1291
|
+
['Fountain', _frms => getFountainTrace(_frms, g_stateObj.speed * 2)],
|
|
1292
|
+
]);
|
|
1254
1293
|
|
|
1255
1294
|
/**
|
|
1256
1295
|
* PlayWindow適用関数
|
|
@@ -1258,109 +1297,131 @@ const g_motionFunc = {
|
|
|
1258
1297
|
const g_changeStairs = (_rad) => `rotate(${_rad}deg)`;
|
|
1259
1298
|
const g_changeSkew = (_rad) => `Skew(${_rad}deg, ${_rad}deg) scaleY(0.9)`;
|
|
1260
1299
|
|
|
1261
|
-
const g_playWindowFunc =
|
|
1262
|
-
'Default'
|
|
1263
|
-
'Stairs'
|
|
1264
|
-
'R-Stairs'
|
|
1265
|
-
'Slope'
|
|
1266
|
-
'R-Slope'
|
|
1267
|
-
'Distorted'
|
|
1268
|
-
'R-Distorted'
|
|
1269
|
-
'SideScroll'
|
|
1270
|
-
'R-SideScroll'
|
|
1271
|
-
|
|
1300
|
+
const g_playWindowFunc = new Map([
|
|
1301
|
+
['Default', () => ``],
|
|
1302
|
+
['Stairs', () => g_changeStairs(-8)],
|
|
1303
|
+
['R-Stairs', () => g_changeStairs(8)],
|
|
1304
|
+
['Slope', () => g_changeStairs(-45)],
|
|
1305
|
+
['R-Slope', () => g_changeStairs(45)],
|
|
1306
|
+
['Distorted', () => g_changeSkew(-15)],
|
|
1307
|
+
['R-Distorted', () => g_changeSkew(15)],
|
|
1308
|
+
['SideScroll', () => g_changeStairs(-90)],
|
|
1309
|
+
['R-SideScroll', () => g_changeStairs(90)],
|
|
1310
|
+
]);
|
|
1272
1311
|
|
|
1273
1312
|
const g_arrowGroupSprite = [`stepSprite`, `arrowSprite`, `frzHitSprite`];
|
|
1274
|
-
const
|
|
1275
|
-
|
|
1276
|
-
'
|
|
1313
|
+
const halfwayOffset = _j => (_j % 2 === 0 ? 1 : -1) * (g_headerObj.playingHeight / 2 - g_posObj.stepY + (g_posObj.stepYR - C_ARW_WIDTH) / 2);
|
|
1314
|
+
const g_stepAreaFunc = new Map([
|
|
1315
|
+
['Default', () => ``],
|
|
1316
|
+
['Halfway', () => {
|
|
1277
1317
|
g_arrowGroupSprite.forEach(sprite => {
|
|
1278
1318
|
for (let j = 0; j < g_stateObj.layerNum; j++) {
|
|
1279
|
-
|
|
1319
|
+
addY(`${sprite}${j}`, `stepArea`, halfwayOffset(j));
|
|
1280
1320
|
}
|
|
1281
1321
|
});
|
|
1282
|
-
},
|
|
1283
|
-
'Mismatched'
|
|
1322
|
+
}],
|
|
1323
|
+
['Mismatched', () => {
|
|
1284
1324
|
for (let j = 0; j < g_stateObj.layerNum; j++) {
|
|
1285
1325
|
addTransform(`mainSprite${j}`, `stepArea`, `rotate(${(j % 2 === 0 ? 1 : -1) * -15}deg)`);
|
|
1286
1326
|
}
|
|
1287
1327
|
if (g_workObj.orgFlatFlg) {
|
|
1288
1328
|
g_arrowGroupSprite.forEach(sprite => {
|
|
1289
1329
|
for (let j = 2; j < Math.min(g_stateObj.layerNum, 4); j++) {
|
|
1290
|
-
|
|
1330
|
+
addY(`${sprite}${j}`, `stepArea`, halfwayOffset(j));
|
|
1291
1331
|
}
|
|
1292
1332
|
});
|
|
1293
1333
|
}
|
|
1294
|
-
},
|
|
1295
|
-
'R-Mismatched'
|
|
1334
|
+
}],
|
|
1335
|
+
['R-Mismatched', () => {
|
|
1296
1336
|
for (let j = 0; j < g_stateObj.layerNum; j++) {
|
|
1297
1337
|
addTransform(`mainSprite${j}`, `stepArea`, `rotate(${(j % 2 === 0 ? 1 : -1) * 15}deg)`);
|
|
1298
1338
|
}
|
|
1299
1339
|
if (g_workObj.orgFlatFlg) {
|
|
1300
1340
|
g_arrowGroupSprite.forEach(sprite => {
|
|
1301
1341
|
for (let j = 0; j < Math.min(g_stateObj.layerNum, 2); j++) {
|
|
1302
|
-
|
|
1342
|
+
addY(`${sprite}${j}`, `stepArea`, halfwayOffset(j));
|
|
1303
1343
|
}
|
|
1304
1344
|
});
|
|
1305
1345
|
}
|
|
1306
|
-
},
|
|
1307
|
-
'2Step'
|
|
1346
|
+
}],
|
|
1347
|
+
['2Step', () => {
|
|
1308
1348
|
g_arrowGroupSprite.forEach(sprite => {
|
|
1309
1349
|
for (let j = Math.min(g_stateObj.layerNum, 4) / 2; j < Math.min(g_stateObj.layerNum, 4); j++) {
|
|
1310
|
-
|
|
1350
|
+
addY(`${sprite}${j}`, `stepArea`, halfwayOffset(j));
|
|
1311
1351
|
}
|
|
1312
1352
|
});
|
|
1313
|
-
},
|
|
1314
|
-
'X-Flower'
|
|
1353
|
+
}],
|
|
1354
|
+
['X-Flower', () => {
|
|
1315
1355
|
for (let j = 0; j < Math.min(g_stateObj.layerNum, 4); j++) {
|
|
1316
1356
|
addTransform(`mainSprite${j}`, `stepArea`, `rotate(${(j % 2 === 0 ? 1 : -1) * (j % 4 < 2 ? 1 : -1) * -15}deg)`);
|
|
1317
1357
|
}
|
|
1318
|
-
},
|
|
1319
|
-
|
|
1358
|
+
}],
|
|
1359
|
+
]);
|
|
1320
1360
|
|
|
1321
1361
|
/**
|
|
1322
1362
|
* Shaking適用関数
|
|
1323
1363
|
*/
|
|
1324
|
-
const g_shakingFunc =
|
|
1325
|
-
'OFF'
|
|
1326
|
-
'Horizontal'
|
|
1327
|
-
'Vertical'
|
|
1328
|
-
'Drunk'
|
|
1329
|
-
if (
|
|
1330
|
-
g_workObj.drunkXFlg =
|
|
1331
|
-
g_workObj.drunkYFlg =
|
|
1364
|
+
const g_shakingFunc = new Map([
|
|
1365
|
+
['OFF', () => true],
|
|
1366
|
+
['Horizontal', () => addX(`mainSprite`, `shaking`, (Math.abs((g_scoreObj.baseFrame / 2) % 100 - 50) - 25) / 1)],
|
|
1367
|
+
['Vertical', () => addY(`mainSprite`, `shaking`, (Math.abs((g_scoreObj.baseFrame / 2) % 100 - 50) - 25) / 2)],
|
|
1368
|
+
['Drunk', () => {
|
|
1369
|
+
if (g_posXs.mainSprite.get(`shaking`) === 0 && g_posYs.mainSprite.get(`shaking`) === 0) {
|
|
1370
|
+
g_workObj.drunkXFlg = Math.random() < 0.5;
|
|
1371
|
+
g_workObj.drunkYFlg = Math.random() < 0.5;
|
|
1332
1372
|
}
|
|
1333
1373
|
if (g_workObj.drunkXFlg) {
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1374
|
+
const deltaX = (Math.abs((g_scoreObj.baseFrame / 2) % 100 - 50) - 25) / 1;
|
|
1375
|
+
addX(`mainSprite`, `shaking`, deltaX);
|
|
1376
|
+
addX(`infoSprite`, `shaking`, deltaX);
|
|
1377
|
+
addX(`judgeSprite`, `shaking`, deltaX);
|
|
1337
1378
|
}
|
|
1338
1379
|
if (g_workObj.drunkYFlg) {
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1380
|
+
const deltaY = (Math.abs((g_scoreObj.baseFrame / 2) % 100 - 50) - 25) / 2;
|
|
1381
|
+
addY(`mainSprite`, `shaking`, deltaY);
|
|
1382
|
+
addY(`infoSprite`, `shaking`, deltaY);
|
|
1383
|
+
addY(`judgeSprite`, `shaking`, deltaY);
|
|
1342
1384
|
}
|
|
1343
|
-
},
|
|
1385
|
+
}],
|
|
1386
|
+
]);
|
|
1387
|
+
|
|
1388
|
+
/**
|
|
1389
|
+
* ランダムな軸を返す補助関数
|
|
1390
|
+
* @returns {string} 軸
|
|
1391
|
+
*/
|
|
1392
|
+
const g_getRandomAxis = () => {
|
|
1393
|
+
const axes = [`X`, `Y`, `Z`];
|
|
1394
|
+
return axes[Math.floor(Math.random() * axes.length)];
|
|
1395
|
+
};
|
|
1396
|
+
|
|
1397
|
+
/**
|
|
1398
|
+
* 最初に選んだ軸を除く、次の軸を返す補助関数
|
|
1399
|
+
* @param {string} _primaryAxis
|
|
1400
|
+
* @returns {string} 軸
|
|
1401
|
+
*/
|
|
1402
|
+
const g_getSecondaryAxis = (_primaryAxis) => {
|
|
1403
|
+
const remainingAxes = [`X`, `Y`, `Z`, undefined].filter(val => val !== _primaryAxis);
|
|
1404
|
+
return remainingAxes[Math.floor(Math.random() * remainingAxes.length)];
|
|
1344
1405
|
};
|
|
1345
1406
|
|
|
1346
1407
|
/**
|
|
1347
1408
|
* FrzReturn適用関数
|
|
1348
1409
|
*/
|
|
1349
|
-
const g_frzReturnFunc =
|
|
1350
|
-
'OFF'
|
|
1351
|
-
'X-Axis'
|
|
1352
|
-
'Y-Axis'
|
|
1353
|
-
'Z-Axis'
|
|
1354
|
-
'Random'
|
|
1355
|
-
'XY-Axis'
|
|
1356
|
-
'XZ-Axis'
|
|
1357
|
-
'YZ-Axis'
|
|
1358
|
-
'Random+'
|
|
1359
|
-
const axis1 =
|
|
1360
|
-
const axis2 =
|
|
1410
|
+
const g_frzReturnFunc = new Map([
|
|
1411
|
+
['OFF', () => true],
|
|
1412
|
+
['X-Axis', () => [`X`]],
|
|
1413
|
+
['Y-Axis', () => [`Y`]],
|
|
1414
|
+
['Z-Axis', () => [`Z`]],
|
|
1415
|
+
['Random', () => g_getRandomAxis()],
|
|
1416
|
+
['XY-Axis', () => [`X`, `Y`]],
|
|
1417
|
+
['XZ-Axis', () => [`X`, `Z`]],
|
|
1418
|
+
['YZ-Axis', () => [`Y`, `Z`]],
|
|
1419
|
+
['Random+', () => {
|
|
1420
|
+
const axis1 = g_getRandomAxis();
|
|
1421
|
+
const axis2 = g_getSecondaryAxis(axis1);
|
|
1361
1422
|
return [axis1, axis2];
|
|
1362
|
-
},
|
|
1363
|
-
|
|
1423
|
+
}],
|
|
1424
|
+
]);
|
|
1364
1425
|
|
|
1365
1426
|
/**
|
|
1366
1427
|
* Effect適用関数
|
|
@@ -1380,15 +1441,15 @@ const g_setEffect = (_arrowEffect, _frzEffect = ``, _frzArrowEffect = _arrowEffe
|
|
|
1380
1441
|
}
|
|
1381
1442
|
}
|
|
1382
1443
|
};
|
|
1383
|
-
const g_effectFunc =
|
|
1384
|
-
'OFF'
|
|
1385
|
-
'Dizzy'
|
|
1386
|
-
'Spin'
|
|
1387
|
-
'Wave'
|
|
1388
|
-
'Storm'
|
|
1389
|
-
'Blinking'
|
|
1390
|
-
'Squids'
|
|
1391
|
-
|
|
1444
|
+
const g_effectFunc = new Map([
|
|
1445
|
+
['OFF', () => true],
|
|
1446
|
+
['Dizzy', () => g_setEffect(`effects-dizzy`)],
|
|
1447
|
+
['Spin', () => g_setEffect(`effects-spin`)],
|
|
1448
|
+
['Wave', () => g_setEffect(`effects-wave`, `effects-wave`)],
|
|
1449
|
+
['Storm', () => g_setEffect(`effects-storm`, `effects-storm`, ``)],
|
|
1450
|
+
['Blinking', () => g_setEffect(`effects-blinking`, `effects-blinking`, ``)],
|
|
1451
|
+
['Squids', () => g_setEffect(`effects-squids-arrow`, `effects-squids-frz`)],
|
|
1452
|
+
]);
|
|
1392
1453
|
|
|
1393
1454
|
const g_keycons = {
|
|
1394
1455
|
configTypes: [`Main`, `Replaced`, `ALL`],
|
|
@@ -1435,12 +1496,12 @@ let g_canDisabledSettings = [`motion`, `scroll`, `reverse`, `shuffle`, `autoPlay
|
|
|
1435
1496
|
`excessive`, `appearance`, `playWindow`, `stepArea`, `frzReturn`, `shaking`, `effect`, `camoufrage`,
|
|
1436
1497
|
`swapping`, `judgRange`, `autoRetry`];
|
|
1437
1498
|
|
|
1438
|
-
const g_hidSudFunc =
|
|
1439
|
-
filterPos
|
|
1440
|
-
range
|
|
1441
|
-
hidden
|
|
1442
|
-
sudden
|
|
1443
|
-
|
|
1499
|
+
const g_hidSudFunc = new Map([
|
|
1500
|
+
['filterPos', _filterPos => `${_filterPos}${g_lblNameObj.percent}`],
|
|
1501
|
+
['range', () => `${Math.round(g_posObj.arrowHeight - g_posObj.stepY)}px`],
|
|
1502
|
+
['hidden', _filterPos => `${Math.min(Math.round(g_posObj.arrowHeight * (100 - _filterPos) / 100), g_posObj.arrowHeight - g_posObj.stepY)}`],
|
|
1503
|
+
['sudden', _filterPos => `${Math.max(Math.round(g_posObj.arrowHeight * (100 - _filterPos) / 100) - g_posObj.stepY, 0)}`],
|
|
1504
|
+
]);
|
|
1444
1505
|
|
|
1445
1506
|
const g_hidSudObj = {
|
|
1446
1507
|
filterPos: 10,
|
|
@@ -1474,12 +1535,12 @@ const g_hidSudObj = {
|
|
|
1474
1535
|
},
|
|
1475
1536
|
distH: {
|
|
1476
1537
|
'Visible': () => ``,
|
|
1477
|
-
'Hidden': () => `${g_hidSudFunc.filterPos(50)} (${g_hidSudFunc.hidden(50)} / ${g_hidSudFunc.range()})`,
|
|
1478
|
-
'Hidden+': (_filterPos) => `${g_hidSudFunc.filterPos(_filterPos)} (${g_hidSudFunc.hidden(_filterPos)} / ${g_hidSudFunc.range()})`,
|
|
1479
|
-
'Sudden': () => `${g_hidSudFunc.filterPos(40)} (${g_hidSudFunc.sudden(40)} / ${g_hidSudFunc.range()})`,
|
|
1480
|
-
'Sudden+': (_filterPos) => `${g_hidSudFunc.filterPos(_filterPos)} (${g_hidSudFunc.sudden(_filterPos)} / ${g_hidSudFunc.range()})`,
|
|
1481
|
-
'Hid&Sud+': (_filterPos) => `${g_hidSudFunc.filterPos(_filterPos)} (${Math.max(g_hidSudFunc.sudden(_filterPos)
|
|
1482
|
-
- (g_posObj.arrowHeight - g_posObj.stepY - g_hidSudFunc.hidden(_filterPos)), 0)} / ${g_hidSudFunc.range()})`,
|
|
1538
|
+
'Hidden': () => `${g_hidSudFunc.get(`filterPos`)(50)} (${g_hidSudFunc.get(`hidden`)(50)} / ${g_hidSudFunc.get(`range`)()})`,
|
|
1539
|
+
'Hidden+': (_filterPos) => `${g_hidSudFunc.get(`filterPos`)(_filterPos)} (${g_hidSudFunc.get(`hidden`)(_filterPos)} / ${g_hidSudFunc.get(`range`)()})`,
|
|
1540
|
+
'Sudden': () => `${g_hidSudFunc.get(`filterPos`)(40)} (${g_hidSudFunc.get(`sudden`)(40)} / ${g_hidSudFunc.get(`range`)()})`,
|
|
1541
|
+
'Sudden+': (_filterPos) => `${g_hidSudFunc.get(`filterPos`)(_filterPos)} (${g_hidSudFunc.get(`sudden`)(_filterPos)} / ${g_hidSudFunc.get(`range`)()})`,
|
|
1542
|
+
'Hid&Sud+': (_filterPos) => `${g_hidSudFunc.get(`filterPos`)(_filterPos)} (${Math.max(g_hidSudFunc.get(`sudden`)(_filterPos)
|
|
1543
|
+
- (g_posObj.arrowHeight - g_posObj.stepY - g_hidSudFunc.get(`hidden`)(_filterPos)), 0)} / ${g_hidSudFunc.get(`range`)()})`,
|
|
1483
1544
|
},
|
|
1484
1545
|
};
|
|
1485
1546
|
|