danoniplus 45.1.0 → 45.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 +60 -30
- package/js/lib/danoni_constants.js +18 -17
- 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 : 2026/02/
|
|
7
|
+
* Revised : 2026/02/27
|
|
8
8
|
*
|
|
9
9
|
* https://github.com/cwtickle/danoniplus
|
|
10
10
|
*/
|
|
11
|
-
const g_version = `Ver 45.
|
|
12
|
-
const g_revisedDate = `2026/02/
|
|
11
|
+
const g_version = `Ver 45.2.0`;
|
|
12
|
+
const g_revisedDate = `2026/02/27`;
|
|
13
13
|
|
|
14
14
|
// カスタム用バージョン (danoni_custom.js 等で指定可)
|
|
15
15
|
let g_localVersion = ``;
|
|
@@ -1692,7 +1692,7 @@ const createMultipleSprite = (_baseName, _num, { x = 0, priority = g_transPriori
|
|
|
1692
1692
|
for (let j = 0; j <= _num; j++) {
|
|
1693
1693
|
createEmptySprite(sprite, `${_baseName}${j}`);
|
|
1694
1694
|
}
|
|
1695
|
-
|
|
1695
|
+
addTransform(_baseName, `root`, `translateX(${x}px)`, priority);
|
|
1696
1696
|
return sprite;
|
|
1697
1697
|
};
|
|
1698
1698
|
|
|
@@ -5010,6 +5010,12 @@ const keysConvert = (_dosObj, { keyExtraList = _dosObj.keyExtraList?.split(`,`)
|
|
|
5010
5010
|
// キーの最小横幅 (minWidthX)
|
|
5011
5011
|
g_keyObj[`minWidth${newKey}`] = _dosObj[`minWidth${newKey}`] ?? g_keyObj[`minWidth${newKey}`] ?? g_keyObj.minWidthDefault;
|
|
5012
5012
|
|
|
5013
|
+
// 移動ロック (movLockX)
|
|
5014
|
+
g_keyObj[`movLock${newKey}`] = setBoolVal(_dosObj[`movLock${newKey}`] ?? g_keyObj[`movLock${newKey}`], false);
|
|
5015
|
+
|
|
5016
|
+
// 位置マニュアル化 (initManualX)
|
|
5017
|
+
g_keyObj[`initManual${newKey}`] = setBoolVal(_dosObj[`initManual${newKey}`] ?? g_keyObj[`initManual${newKey}`], false);
|
|
5018
|
+
|
|
5013
5019
|
// キーコンフィグ (keyCtrlX_Y)
|
|
5014
5020
|
g_keyObj.minPatterns = newKeyMultiParam(newKey, `keyCtrl`, toKeyCtrlArray, {
|
|
5015
5021
|
errCd: `E_0104`, baseCopyFlg: true,
|
|
@@ -11954,6 +11960,13 @@ const getArrowSettings = () => {
|
|
|
11954
11960
|
// AppearanceFilterの可視範囲設定
|
|
11955
11961
|
g_workObj.aprFilterCnt = 0;
|
|
11956
11962
|
|
|
11963
|
+
// 位置をマニュアルで設定する際は矢印の初期位置をゼロにする
|
|
11964
|
+
if (g_keyObj[`initManual${g_keyObj.currentKey}`] !== undefined && g_keyObj[`initManual${g_keyObj.currentKey}`]) {
|
|
11965
|
+
g_workObj.stepX = fillArray(g_workObj.stepX.length, 0);
|
|
11966
|
+
}
|
|
11967
|
+
g_workObj.movLockEnabled = g_keyObj[`movLock${g_keyObj.currentKey}`] === true ? `movLock` : `default`;
|
|
11968
|
+
g_workObj.initManualEnabled = g_keyObj[`initManual${g_keyObj.currentKey}`] === true ? `manual` : `auto`;
|
|
11969
|
+
|
|
11957
11970
|
if (g_stateObj.dataSaveFlg) {
|
|
11958
11971
|
// ローカルストレージへAdjustment, HitPosition, Volume設定を保存
|
|
11959
11972
|
// 変更が確定した時点で表示用のキャッシュを解放
|
|
@@ -12085,15 +12098,15 @@ const mainInit = () => {
|
|
|
12085
12098
|
}
|
|
12086
12099
|
|
|
12087
12100
|
addTransform(`mainSprite`, `root`, `scale(${g_workObj.scale})`, g_transPriority.scale);
|
|
12088
|
-
|
|
12101
|
+
addTransform(`mainSprite`, `main`, `translateX(${g_workObj.playingX}px) translateY(${g_posObj.stepY - C_STEP_Y + g_headerObj.playingY}px)`, g_transPriority.base);
|
|
12089
12102
|
|
|
12090
12103
|
// 曲情報・判定カウント用スプライトを作成(メインスプライトより上位)
|
|
12091
12104
|
const infoSprite = createEmptySprite(divRoot, `infoSprite`, mainCommonPos);
|
|
12092
|
-
|
|
12105
|
+
addTransform(`infoSprite`, `main`, `translateX(${g_workObj.playingX}px) translateY(${g_headerObj.playingY}px)`, g_transPriority.base);
|
|
12093
12106
|
|
|
12094
12107
|
// 判定系スプライトを作成(メインスプライトより上位)
|
|
12095
12108
|
const judgeSprite = createEmptySprite(divRoot, `judgeSprite`, mainCommonPos);
|
|
12096
|
-
|
|
12109
|
+
addTransform(`judgeSprite`, `main`, `translateX(${g_workObj.playingX}px) translateY(${g_headerObj.playingY}px)`, g_transPriority.base);
|
|
12097
12110
|
const tkObj = getKeyInfo();
|
|
12098
12111
|
const [keyCtrlPtn, keyNum] = [tkObj.keyCtrlPtn, tkObj.keyNum];
|
|
12099
12112
|
|
|
@@ -12208,11 +12221,6 @@ const mainInit = () => {
|
|
|
12208
12221
|
changeAppearanceBar(g_appearanceRanges.includes(g_stateObj.appearance)
|
|
12209
12222
|
? g_hidSudObj.filterPos : g_hidSudObj.filterPosDefault[g_stateObj.appearance], 0);
|
|
12210
12223
|
|
|
12211
|
-
// Shaking初期化
|
|
12212
|
-
if (g_stateObj.shaking !== C_FLG_OFF) {
|
|
12213
|
-
addXY(`mainSprite`, `shaking`, 0, 0, { priority: g_transPriority.shaking });
|
|
12214
|
-
}
|
|
12215
|
-
|
|
12216
12224
|
// 現在の矢印・フリーズアローの速度、個別加算速度の初期化 (速度変化時に直す)
|
|
12217
12225
|
g_workObj.currentSpeed = 2;
|
|
12218
12226
|
g_workObj.boostSpd = 1;
|
|
@@ -12886,9 +12894,9 @@ const mainInit = () => {
|
|
|
12886
12894
|
const colorPos = g_keyObj[`color${keyCtrlPtn}`][_j];
|
|
12887
12895
|
|
|
12888
12896
|
const arrowName = `${_name}${_j}_${_arrowCnt}`;
|
|
12889
|
-
const
|
|
12890
|
-
|
|
12891
|
-
|
|
12897
|
+
const stepY = C_STEP_Y + g_posObj.reverseStepY * dividePos;
|
|
12898
|
+
const firstPosY = stepY + (_attrs.initY * g_workObj.boostSpd +
|
|
12899
|
+
_attrs.initBoostY * g_workObj.boostDir) * g_workObj.scrollDir[_j];
|
|
12892
12900
|
|
|
12893
12901
|
const arrowRoot = createEmptySprite(arrowSprite[g_workObj.dividePos[_j]], arrowName, {
|
|
12894
12902
|
x: g_workObj.stepX[_j], y: 0, w: C_ARW_WIDTH, h: C_ARW_WIDTH,
|
|
@@ -12914,7 +12922,7 @@ const mainInit = () => {
|
|
|
12914
12922
|
// 現フレーム時の位置
|
|
12915
12923
|
y: firstPosY,
|
|
12916
12924
|
};
|
|
12917
|
-
|
|
12925
|
+
setArrowY.get(`${g_workObj.movLockEnabled}_${g_workObj.initManualEnabled}`)(arrowName, firstPosY, stepY);
|
|
12918
12926
|
|
|
12919
12927
|
// 矢印色の設定
|
|
12920
12928
|
// - 枠/塗りつぶし色: g_attrObj[arrowName].Arrow / ArrowShadow
|
|
@@ -12970,7 +12978,7 @@ const mainInit = () => {
|
|
|
12970
12978
|
currentArrow.prevY = currentArrow.y;
|
|
12971
12979
|
currentArrow.y -= (g_workObj.currentSpeed * currentArrow.boostSpd +
|
|
12972
12980
|
(g_workObj.motionOnFrames[boostCnt] || 0) * currentArrow.boostDir) * currentArrow.dir;
|
|
12973
|
-
|
|
12981
|
+
movArrowY.get(g_workObj.movLockEnabled)(arrowName, currentArrow.y);
|
|
12974
12982
|
g_motionAlphaFunc.get(g_stateObj.motion)(arrowName, currentArrow);
|
|
12975
12983
|
currentArrow.boostCnt--;
|
|
12976
12984
|
}
|
|
@@ -12994,9 +13002,9 @@ const mainInit = () => {
|
|
|
12994
13002
|
const dividePos = g_workObj.dividePos[_j] % 2;
|
|
12995
13003
|
const frzNo = `${_j}_${_arrowCnt}`;
|
|
12996
13004
|
const frzName = `${_name}${frzNo}`;
|
|
12997
|
-
const
|
|
12998
|
-
|
|
12999
|
-
|
|
13005
|
+
const stepY = C_STEP_Y + g_posObj.reverseStepY * dividePos;
|
|
13006
|
+
const firstPosY = stepY + (_attrs.initY * g_workObj.boostSpd +
|
|
13007
|
+
_attrs.initBoostY * g_workObj.boostDir) * g_workObj.scrollDir[_j];
|
|
13000
13008
|
const firstBarLength = g_workObj[`mk${toCapitalize(_name)}Length`][_j][(_arrowCnt - 1) * 2] * g_workObj.boostSpd;
|
|
13001
13009
|
|
|
13002
13010
|
const frzRoot = createEmptySprite(arrowSprite[g_workObj.dividePos[_j]], frzName, {
|
|
@@ -13033,7 +13041,7 @@ const mainInit = () => {
|
|
|
13033
13041
|
// フリーズアロー(対矢印)の相対位置
|
|
13034
13042
|
btmY: firstBarLength * g_workObj.scrollDir[_j],
|
|
13035
13043
|
};
|
|
13036
|
-
|
|
13044
|
+
setArrowY.get(`${g_workObj.movLockEnabled}_${g_workObj.initManualEnabled}`)(frzName, firstPosY, stepY);
|
|
13037
13045
|
|
|
13038
13046
|
// フリーズアロー色の設定
|
|
13039
13047
|
// - 通常時 (矢印枠/矢印塗りつぶし/帯): g_attrObj[frzName].Normal / NormalShadow / NormalBar
|
|
@@ -13127,7 +13135,7 @@ const mainInit = () => {
|
|
|
13127
13135
|
if (g_workObj.currentSpeed !== 0) {
|
|
13128
13136
|
currentFrz.prevY = currentFrz.y;
|
|
13129
13137
|
currentFrz.y -= movY + (g_workObj.motionOnFrames[currentFrz.boostCnt] || 0) * currentFrz.dir * currentFrz.boostDir;
|
|
13130
|
-
|
|
13138
|
+
movArrowY.get(g_workObj.movLockEnabled)(frzName, currentFrz.y);
|
|
13131
13139
|
g_motionAlphaFunc.get(g_stateObj.motion)(frzName, currentFrz);
|
|
13132
13140
|
currentFrz.boostCnt--;
|
|
13133
13141
|
}
|
|
@@ -13167,7 +13175,7 @@ const mainInit = () => {
|
|
|
13167
13175
|
currentFrz.frzBarLength -= movY * currentFrz.dir;
|
|
13168
13176
|
if (currentFrz.frzBarLength > 0) {
|
|
13169
13177
|
currentFrz.y -= movY;
|
|
13170
|
-
|
|
13178
|
+
movArrowY.get(g_workObj.movLockEnabled)(frzName, currentFrz.y);
|
|
13171
13179
|
} else {
|
|
13172
13180
|
judgeObjDelete[_name](_j, frzName);
|
|
13173
13181
|
}
|
|
@@ -13432,6 +13440,28 @@ const mainInit = () => {
|
|
|
13432
13440
|
g_timeoutEvtId = setTimeout(flowTimeline, 1000 / g_fps);
|
|
13433
13441
|
};
|
|
13434
13442
|
|
|
13443
|
+
/**
|
|
13444
|
+
* 矢印・フリーズアローの初期位置
|
|
13445
|
+
* - movLock_manual: スクロールなし/初期位置マニュアル
|
|
13446
|
+
* - movLock_auto: スクロールなし/初期位置自動
|
|
13447
|
+
* - default_manual: スクロールあり/初期位置マニュアル(設定上ありえないがdefault_autoと同じにしておく)
|
|
13448
|
+
* - default_auto: スクロールあり/初期位置自動
|
|
13449
|
+
*/
|
|
13450
|
+
const setArrowY = new Map([
|
|
13451
|
+
[`movLock_manual`, (_name, _startY, _stepY) => { }],
|
|
13452
|
+
[`movLock_auto`, (_name, _startY, _stepY) => addTransform(_name, `root`, `translateY(${wUnit(_stepY)})`)],
|
|
13453
|
+
[`default_manual`, (_name, _startY, _stepY) => addTransform(_name, `root`, `translateY(${wUnit(_startY)})`)],
|
|
13454
|
+
[`default_auto`, (_name, _startY, _stepY) => addTransform(_name, `root`, `translateY(${wUnit(_startY)})`)],
|
|
13455
|
+
]);
|
|
13456
|
+
|
|
13457
|
+
/**
|
|
13458
|
+
* 矢印・フリーズアローの移動処理
|
|
13459
|
+
*/
|
|
13460
|
+
const movArrowY = new Map([
|
|
13461
|
+
[`movLock`, (_name, _y) => { }],
|
|
13462
|
+
[`default`, (_name, _y) => addTransform(_name, `root`, `translateY(${wUnit(_y)})`)],
|
|
13463
|
+
]);
|
|
13464
|
+
|
|
13435
13465
|
/**
|
|
13436
13466
|
* ステップゾーン、フリーズアローヒット部分の生成
|
|
13437
13467
|
* @param {number} _j
|
|
@@ -13580,20 +13610,20 @@ const changeAppearanceFilter = (_num = 10) => {
|
|
|
13580
13610
|
$id(`arrowSprite${topNum + j}`).clipPath = topShape;
|
|
13581
13611
|
$id(`arrowSprite${bottomNum + j}`).clipPath = bottomShape;
|
|
13582
13612
|
|
|
13583
|
-
|
|
13584
|
-
|
|
13613
|
+
addTransform(`filterBar${topNum + j}`, `appearance`, `translateY(${parseFloat($id(`arrowSprite${j}`).top) + topDist}px)`, g_transPriority.layer);
|
|
13614
|
+
addTransform(`filterBar${bottomNum + j}`, `appearance`, `translateY(${parseFloat($id(`arrowSprite${j + 1}`).top) + bottomDist}px)`, g_transPriority.layer);
|
|
13585
13615
|
|
|
13586
13616
|
if (![`Default`, `Halfway`].includes(g_stateObj.stepArea)) {
|
|
13587
|
-
|
|
13588
|
-
|
|
13617
|
+
addTransform(`filterBar${bottomNum + j}_HS`, `appearance`, `translateY(${parseFloat($id(`arrowSprite${j}`).top) + bottomDist}px)`, g_transPriority.layer);
|
|
13618
|
+
addTransform(`filterBar${topNum + j}_HS`, `appearance`, `translateY(${parseFloat($id(`arrowSprite${j + 1}`).top) + topDist}px)`, g_transPriority.layer);
|
|
13589
13619
|
}
|
|
13590
13620
|
}
|
|
13591
13621
|
|
|
13592
13622
|
// フィルターバーのパーセント表示(フィルターバーが複数表示されるなど複雑なため、最初の階層グループの位置に追従)
|
|
13593
13623
|
if (g_appearanceRanges.includes(g_stateObj.appearance)) {
|
|
13594
13624
|
const currentBarNum = g_hidSudObj.std[g_stateObj.appearance][g_stateObj.reverse];
|
|
13595
|
-
|
|
13596
|
-
(currentBarNum % 2 === 0 ? bottomDist : topDist)
|
|
13625
|
+
addTransform(`filterView`, `appearance`, `translateY(${parseFloat($id(`arrowSprite${currentBarNum % 2}`).top) +
|
|
13626
|
+
(currentBarNum % 2 === 0 ? bottomDist : topDist)}px)`, g_transPriority.layer);
|
|
13597
13627
|
filterView.textContent = `${_num}%`;
|
|
13598
13628
|
g_hidSudObj.filterPos = _num;
|
|
13599
13629
|
}
|
|
@@ -13848,7 +13878,7 @@ const changeHitFrz = (_j, _k, _name, _difFrame = 0) => {
|
|
|
13848
13878
|
currentFrz.btmY -= delFrzLength + delFrzMotionLength + hitPos;
|
|
13849
13879
|
currentFrz.y += delFrzLength;
|
|
13850
13880
|
currentFrz.isMoving = false;
|
|
13851
|
-
|
|
13881
|
+
movArrowY.get(g_workObj.movLockEnabled)(frzName, currentFrz.y);
|
|
13852
13882
|
|
|
13853
13883
|
/**
|
|
13854
13884
|
* フリーズアロー(ヒット時)の色変更
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Source by tickle
|
|
7
7
|
* Created : 2019/11/19
|
|
8
|
-
* Revised : 2026/02/
|
|
8
|
+
* Revised : 2026/02/27 (v45.1.1)
|
|
9
9
|
*
|
|
10
10
|
* https://github.com/cwtickle/danoniplus
|
|
11
11
|
*/
|
|
@@ -1727,7 +1727,7 @@ const g_stepAreaFunc = new Map([
|
|
|
1727
1727
|
['Halfway', () => {
|
|
1728
1728
|
g_arrowGroupSprite.forEach(sprite => {
|
|
1729
1729
|
for (let j = 0; j < g_stateObj.layerNum; j++) {
|
|
1730
|
-
|
|
1730
|
+
addTransform(`${sprite}${j}`, `stepArea`, `translateY(${halfwayOffset(j)}px)`, g_transPriority.stepArea);
|
|
1731
1731
|
}
|
|
1732
1732
|
});
|
|
1733
1733
|
}],
|
|
@@ -1738,7 +1738,7 @@ const g_stepAreaFunc = new Map([
|
|
|
1738
1738
|
if (g_workObj.orgFlatFlg) {
|
|
1739
1739
|
g_arrowGroupSprite.forEach(sprite => {
|
|
1740
1740
|
for (let j = g_stateObj.layerNumDf; j < g_stateObj.layerNum; j++) {
|
|
1741
|
-
|
|
1741
|
+
addTransform(`${sprite}${j}`, `stepArea`, `translateY(${halfwayOffset(j)}px)`, g_transPriority.stepArea);
|
|
1742
1742
|
}
|
|
1743
1743
|
});
|
|
1744
1744
|
}
|
|
@@ -1750,7 +1750,7 @@ const g_stepAreaFunc = new Map([
|
|
|
1750
1750
|
if (g_workObj.orgFlatFlg) {
|
|
1751
1751
|
g_arrowGroupSprite.forEach(sprite => {
|
|
1752
1752
|
for (let j = 0; j < g_stateObj.layerNumDf; j++) {
|
|
1753
|
-
|
|
1753
|
+
addTransform(`${sprite}${j}`, `stepArea`, `translateY(${halfwayOffset(j)}px)`, g_transPriority.stepArea);
|
|
1754
1754
|
}
|
|
1755
1755
|
});
|
|
1756
1756
|
}
|
|
@@ -1758,7 +1758,7 @@ const g_stepAreaFunc = new Map([
|
|
|
1758
1758
|
['2Step', () => {
|
|
1759
1759
|
g_arrowGroupSprite.forEach(sprite => {
|
|
1760
1760
|
for (let j = g_stateObj.layerNumDf; j < g_stateObj.layerNum; j++) {
|
|
1761
|
-
|
|
1761
|
+
addTransform(`${sprite}${j}`, `stepArea`, `translateY(${halfwayOffset(j)}px)`, g_transPriority.stepArea);
|
|
1762
1762
|
}
|
|
1763
1763
|
});
|
|
1764
1764
|
}],
|
|
@@ -1781,36 +1781,37 @@ const g_stepAreaFunc = new Map([
|
|
|
1781
1781
|
const getShakingDist = () => (Math.abs((g_scoreObj.baseFrame / 2) % 100 - 50) - 25);
|
|
1782
1782
|
const g_shakingFunc = new Map([
|
|
1783
1783
|
['OFF', () => true],
|
|
1784
|
-
['Horizontal', () =>
|
|
1785
|
-
['Vertical', () =>
|
|
1784
|
+
['Horizontal', () => addTransform(`mainSprite`, `shakingX`, `translateX(${getShakingDist()}px)`, g_transPriority.shaking)],
|
|
1785
|
+
['Vertical', () => addTransform(`mainSprite`, `shakingY`, `translateY(${getShakingDist() / 2}px)`, g_transPriority.shaking)],
|
|
1786
1786
|
['X-Horizontal', () => {
|
|
1787
1787
|
for (let j = 0; j < g_stateObj.layerNum; j++) {
|
|
1788
|
-
|
|
1788
|
+
addTransform(`mainSprite${j}`, `shakingX`, `translateX(${getDirFromLayer(j) * (4 / 3) * getShakingDist()}px)`, g_transPriority.shaking);
|
|
1789
1789
|
}
|
|
1790
1790
|
}],
|
|
1791
1791
|
['X-Vertical', () => {
|
|
1792
1792
|
for (let j = 0; j < g_stateObj.layerNum; j++) {
|
|
1793
|
-
|
|
1793
|
+
addTransform(`mainSprite${j}`, `shakingY`, `translateY(${getDirFromLayer(j) * getShakingDist()}px)`, g_transPriority.shaking);
|
|
1794
1794
|
}
|
|
1795
1795
|
}],
|
|
1796
1796
|
['Drunk', () => {
|
|
1797
|
-
|
|
1798
|
-
const
|
|
1797
|
+
// Drunkは揺れの軸が途中で変わるため、基準位置取得のためにmainSpriteのみaddX, addYを使用
|
|
1798
|
+
const shakeX = g_posXs.mainSprite?.get(`shakingX`) ?? 0;
|
|
1799
|
+
const shakeY = g_posYs.mainSprite?.get(`shakingY`) ?? 0;
|
|
1799
1800
|
if (shakeX === 0 && shakeY === 0) {
|
|
1800
1801
|
g_workObj.drunkXFlg = Math.random() < 0.5;
|
|
1801
1802
|
g_workObj.drunkYFlg = Math.random() < 0.5;
|
|
1802
1803
|
}
|
|
1803
1804
|
if (g_workObj.drunkXFlg) {
|
|
1804
1805
|
const deltaX = getShakingDist();
|
|
1805
|
-
addX(`mainSprite`, `
|
|
1806
|
-
|
|
1807
|
-
|
|
1806
|
+
addX(`mainSprite`, `shakingX`, deltaX, { priority: g_transPriority.shaking });
|
|
1807
|
+
addTransform(`infoSprite`, `shakingX`, `translateX(${deltaX}px)`, g_transPriority.shaking);
|
|
1808
|
+
addTransform(`judgeSprite`, `shakingX`, `translateX(${deltaX}px)`, g_transPriority.shaking);
|
|
1808
1809
|
}
|
|
1809
1810
|
if (g_workObj.drunkYFlg) {
|
|
1810
1811
|
const deltaY = getShakingDist() / 2;
|
|
1811
|
-
addY(`mainSprite`, `
|
|
1812
|
-
|
|
1813
|
-
|
|
1812
|
+
addY(`mainSprite`, `shakingY`, deltaY, { priority: g_transPriority.shaking });
|
|
1813
|
+
addTransform(`infoSprite`, `shakingY`, `translateY(${deltaY}px)`, g_transPriority.shaking);
|
|
1814
|
+
addTransform(`judgeSprite`, `shakingY`, `translateY(${deltaY}px)`, g_transPriority.shaking);
|
|
1814
1815
|
}
|
|
1815
1816
|
}],
|
|
1816
1817
|
['S-Drunk', () => {
|