danoniplus 45.2.1 → 45.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 +72 -37
- package/js/lib/danoni_constants.js +50 -37
- 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/03/02
|
|
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.3.1`;
|
|
12
|
+
const g_revisedDate = `2026/03/02`;
|
|
13
13
|
|
|
14
14
|
// カスタム用バージョン (danoni_custom.js 等で指定可)
|
|
15
15
|
let g_localVersion = ``;
|
|
@@ -2786,7 +2786,10 @@ const initialControl = async () => {
|
|
|
2786
2786
|
titleInit(true);
|
|
2787
2787
|
|
|
2788
2788
|
// 未使用のg_keyObjプロパティを削除
|
|
2789
|
-
const keyProp = g_keyCopyLists.simple.concat(
|
|
2789
|
+
const keyProp = g_keyCopyLists.simple.concat(
|
|
2790
|
+
g_keyCopyLists.multiple,
|
|
2791
|
+
`keyCtrl`, `keyName`, `minWidth`, `movLock`, `initManual`, `ptchara`
|
|
2792
|
+
);
|
|
2790
2793
|
const delKeyPropList = [`ptchara7`, `dfPtnNum`, `minKeyCtrlNum`, `minPatterns`];
|
|
2791
2794
|
Object.keys(g_keyObj).forEach(key => {
|
|
2792
2795
|
const type = keyProp.find(prop => key.startsWith(prop)) || ``;
|
|
@@ -10491,8 +10494,10 @@ const scoreConvert = (_dosObj, _scoreId, _preblankFrame, _dummyNo = ``,
|
|
|
10491
10494
|
const arrowNum = parseFloat(tmpcssMotionData[1]);
|
|
10492
10495
|
const styleUp = (tmpcssMotionData[2] === `none` ? `` : tmpcssMotionData[2]);
|
|
10493
10496
|
const styleDown = (tmpcssMotionData[3] === `none` ? `` : setVal(tmpcssMotionData[3], styleUp));
|
|
10497
|
+
const movLock = setBoolVal(tmpcssMotionData[4] === `movLock`, false);
|
|
10498
|
+
const initManual = setBoolVal(tmpcssMotionData[5] === `initManual`, false);
|
|
10494
10499
|
|
|
10495
|
-
cssMotionData.push([frame, arrowNum, styleUp, styleDown]);
|
|
10500
|
+
cssMotionData.push([frame, arrowNum, styleUp, styleDown, movLock, initManual]);
|
|
10496
10501
|
});
|
|
10497
10502
|
|
|
10498
10503
|
// 個別のモーションデータが存在する場合、Effect設定を自動リセット
|
|
@@ -11220,13 +11225,13 @@ const pushArrows = (_dataObj, _speedOnFrame, _firstArrivalFrame) => {
|
|
|
11220
11225
|
* @param {string} _type
|
|
11221
11226
|
* @param {string} _header
|
|
11222
11227
|
* @param {function} _setFunc 後続実行関数
|
|
11223
|
-
* @param {number} object._term 1セット当たりのデータ数
|
|
11228
|
+
* @param {number} object._term 1セット当たりのデータ数(デフォルトは後続実行関数の引数の数-1, デフォルト引数・オブジェクト引数除く)
|
|
11224
11229
|
* @param {boolean} object._colorFlg 個別色変化フラグ
|
|
11225
11230
|
* @param {boolean} object._calcFrameFlg 逆算を無条件で行うかどうかの可否
|
|
11226
11231
|
* @param {string} object._propName 色変化種類 (Arrow, ArrowShadow, FrzNormal, FrzNormalBar, ...)
|
|
11227
11232
|
*/
|
|
11228
11233
|
const calcDataTiming = (_type, _header, _setFunc = () => true,
|
|
11229
|
-
{ _term =
|
|
11234
|
+
{ _term = _setFunc.length - 1, _colorFlg = false, _calcFrameFlg = false, _propName = `` } = {}) => {
|
|
11230
11235
|
|
|
11231
11236
|
const camelHeader = _header === `` ? _type : `${_header}${toCapitalize(_type)}`;
|
|
11232
11237
|
const baseData = hasVal(_propName) ? _dataObj[`${camelHeader}Data`][_propName] : _dataObj[`${camelHeader}Data`];
|
|
@@ -11327,7 +11332,7 @@ const pushArrows = (_dataObj, _speedOnFrame, _firstArrivalFrame) => {
|
|
|
11327
11332
|
|
|
11328
11333
|
// 個別・全体色変化、モーションデータ・スクロール反転データのタイミング更新
|
|
11329
11334
|
[``, `dummy`].forEach(type => {
|
|
11330
|
-
calcDataTiming(`color`, type, pushColors, { _colorFlg: true });
|
|
11335
|
+
calcDataTiming(`color`, type, pushColors, { _term: 4, _colorFlg: true });
|
|
11331
11336
|
if (_dataObj[`ncolor${type}Data`] !== undefined) {
|
|
11332
11337
|
Object.keys(_dataObj[`ncolor${type}Data`]).forEach(pattern =>
|
|
11333
11338
|
calcDataTiming(`ncolor`, type, pushColors, { _term: 5, _colorFlg: true, _propName: pattern }));
|
|
@@ -11337,7 +11342,7 @@ const pushArrows = (_dataObj, _speedOnFrame, _firstArrivalFrame) => {
|
|
|
11337
11342
|
g_typeLists.arrow.forEach(header =>
|
|
11338
11343
|
calcDataTiming(`cssMotion`, header, pushCssMotions, { _calcFrameFlg: true }));
|
|
11339
11344
|
|
|
11340
|
-
calcDataTiming(`scrollch`, ``, pushScrollchs, {
|
|
11345
|
+
calcDataTiming(`scrollch`, ``, pushScrollchs, { _calcFrameFlg: true });
|
|
11341
11346
|
|
|
11342
11347
|
g_fadeinStockList.forEach(type =>
|
|
11343
11348
|
_dataObj[`${type}Data`] = calcAnimationData(type, _dataObj[`${type}Data`]));
|
|
@@ -11567,8 +11572,10 @@ const pushColors = (_header, _frame, _val, _colorCd, _allFlg, _pattern = ``) =>
|
|
|
11567
11572
|
* @param {number} _val
|
|
11568
11573
|
* @param {string} _styleName
|
|
11569
11574
|
* @param {string} _styleNameRev
|
|
11575
|
+
* @param {boolean|undefined} _movLock
|
|
11576
|
+
* @param {boolean|undefined} _initManual
|
|
11570
11577
|
*/
|
|
11571
|
-
const pushCssMotions = (_header, _frame, _val, _styleName, _styleNameRev) => {
|
|
11578
|
+
const pushCssMotions = (_header, _frame, _val, _styleName, _styleNameRev, _movLock, _initManual) => {
|
|
11572
11579
|
|
|
11573
11580
|
const camelHeader = toCapitalize(_header);
|
|
11574
11581
|
const tkObj = getKeyInfo();
|
|
@@ -11577,11 +11584,15 @@ const pushCssMotions = (_header, _frame, _val, _styleName, _styleNameRev) => {
|
|
|
11577
11584
|
if (g_workObj[`mk${camelHeader}CssMotion`][_frame] === undefined) {
|
|
11578
11585
|
g_workObj[`mk${camelHeader}CssMotion`][_frame] = [];
|
|
11579
11586
|
g_workObj[`mk${camelHeader}CssMotionName`][_frame] = [];
|
|
11587
|
+
g_workObj[`mk${camelHeader}MovLock`][_frame] = [];
|
|
11588
|
+
g_workObj[`mk${camelHeader}InitManual`][_frame] = [];
|
|
11580
11589
|
}
|
|
11581
11590
|
if (_val < 20 || _val >= 1000) {
|
|
11582
11591
|
const realVal = g_workObj.replaceNums[_val % 1000];
|
|
11583
11592
|
g_workObj[`mk${camelHeader}CssMotion`][_frame].push(realVal);
|
|
11584
11593
|
g_workObj[`mk${camelHeader}CssMotionName`][_frame].push(_styleName, _styleNameRev);
|
|
11594
|
+
g_workObj[`mk${camelHeader}MovLock`][_frame].push(_movLock);
|
|
11595
|
+
g_workObj[`mk${camelHeader}InitManual`][_frame].push(_initManual);
|
|
11585
11596
|
|
|
11586
11597
|
} else {
|
|
11587
11598
|
const colorNum = _val - 20;
|
|
@@ -11589,6 +11600,8 @@ const pushCssMotions = (_header, _frame, _val, _styleName, _styleNameRev) => {
|
|
|
11589
11600
|
if (g_keyObj[`color${tkObj.keyCtrlPtn}`][j] === colorNum) {
|
|
11590
11601
|
g_workObj[`mk${camelHeader}CssMotion`][_frame].push(j);
|
|
11591
11602
|
g_workObj[`mk${camelHeader}CssMotionName`][_frame].push(_styleName, _styleNameRev);
|
|
11603
|
+
g_workObj[`mk${camelHeader}MovLock`][_frame].push(_movLock);
|
|
11604
|
+
g_workObj[`mk${camelHeader}InitManual`][_frame].push(_initManual);
|
|
11592
11605
|
}
|
|
11593
11606
|
}
|
|
11594
11607
|
}
|
|
@@ -11723,7 +11736,11 @@ const getArrowSettings = () => {
|
|
|
11723
11736
|
});
|
|
11724
11737
|
|
|
11725
11738
|
// モーション管理
|
|
11726
|
-
g_typeLists.arrow.forEach(type =>
|
|
11739
|
+
g_typeLists.arrow.forEach(type => {
|
|
11740
|
+
g_workObj[`${type}CssMotions`] = fillArray(keyNum, ``);
|
|
11741
|
+
g_workObj[`${type}MovLock`] = fillArray(keyNum, ``);
|
|
11742
|
+
g_workObj[`${type}InitManual`] = fillArray(keyNum, ``);
|
|
11743
|
+
});
|
|
11727
11744
|
g_workObj.frzArrowCssMotions = fillArray(keyNum, ``);
|
|
11728
11745
|
g_workObj.dummyFrzArrowCssMotions = fillArray(keyNum, ``);
|
|
11729
11746
|
|
|
@@ -11960,12 +11977,10 @@ const getArrowSettings = () => {
|
|
|
11960
11977
|
// AppearanceFilterの可視範囲設定
|
|
11961
11978
|
g_workObj.aprFilterCnt = 0;
|
|
11962
11979
|
|
|
11963
|
-
//
|
|
11964
|
-
|
|
11965
|
-
|
|
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`;
|
|
11980
|
+
// キー別の移動ロック制御、初期位置のマニュアル可否設定の初期値
|
|
11981
|
+
// 矢印・フリーズアローモーションよりも優先される
|
|
11982
|
+
g_workObj.movLockEnabled = g_keyObj[`movLock${g_keyObj.currentKey}`] === true;
|
|
11983
|
+
g_workObj.initManualEnabled = g_keyObj[`initManual${g_keyObj.currentKey}`] === true;
|
|
11969
11984
|
|
|
11970
11985
|
if (g_stateObj.dataSaveFlg) {
|
|
11971
11986
|
// ローカルストレージへAdjustment, HitPosition, Volume設定を保存
|
|
@@ -12899,7 +12914,7 @@ const mainInit = () => {
|
|
|
12899
12914
|
_attrs.initBoostY * g_workObj.boostDir) * g_workObj.scrollDir[_j];
|
|
12900
12915
|
|
|
12901
12916
|
const arrowRoot = createEmptySprite(arrowSprite[g_workObj.dividePos[_j]], arrowName, {
|
|
12902
|
-
x:
|
|
12917
|
+
x: 0, y: 0, w: C_ARW_WIDTH, h: C_ARW_WIDTH,
|
|
12903
12918
|
});
|
|
12904
12919
|
/**
|
|
12905
12920
|
* 矢印毎の属性情報
|
|
@@ -12921,8 +12936,9 @@ const mainInit = () => {
|
|
|
12921
12936
|
prevY: firstPosY,
|
|
12922
12937
|
// 現フレーム時の位置
|
|
12923
12938
|
y: firstPosY,
|
|
12939
|
+
// 移動ロックフラグ(矢印モーション設定後に再設定)
|
|
12940
|
+
movLockFlg: false,
|
|
12924
12941
|
};
|
|
12925
|
-
setArrowY.get(`${g_workObj.movLockEnabled}_${g_workObj.initManualEnabled}`)(arrowName, firstPosY, stepY);
|
|
12926
12942
|
|
|
12927
12943
|
// 矢印色の設定
|
|
12928
12944
|
// - 枠/塗りつぶし色: g_attrObj[arrowName].Arrow / ArrowShadow
|
|
@@ -12934,6 +12950,13 @@ const mainInit = () => {
|
|
|
12934
12950
|
arrowSubRoot.classList.add(g_workObj[`${_name}CssMotions`][_j]);
|
|
12935
12951
|
arrowSubRoot.style.animationDuration = `${_attrs.arrivalFrame / g_fps}s`;
|
|
12936
12952
|
}
|
|
12953
|
+
g_attrObj[arrowName].movLockFlg = g_workObj[`${_name}MovLock`][_j] || g_workObj.movLockEnabled;
|
|
12954
|
+
const initManualFlg = g_workObj[`${_name}InitManual`][_j] || g_workObj.initManualEnabled;
|
|
12955
|
+
const setArrowYCondition = `${String(g_attrObj[arrowName].movLockFlg)}_${String(initManualFlg)}`;
|
|
12956
|
+
setArrowY.get(setArrowYCondition)(arrowName, firstPosY, stepY);
|
|
12957
|
+
if (!initManualFlg) {
|
|
12958
|
+
addTransform(arrowName, `rootX`, `translateX(${g_workObj.stepX[_j]}px)`);
|
|
12959
|
+
}
|
|
12937
12960
|
|
|
12938
12961
|
/**
|
|
12939
12962
|
* 矢印オブジェクトの生成
|
|
@@ -12978,7 +13001,7 @@ const mainInit = () => {
|
|
|
12978
13001
|
currentArrow.prevY = currentArrow.y;
|
|
12979
13002
|
currentArrow.y -= (g_workObj.currentSpeed * currentArrow.boostSpd +
|
|
12980
13003
|
(g_workObj.motionOnFrames[boostCnt] || 0) * currentArrow.boostDir) * currentArrow.dir;
|
|
12981
|
-
movArrowY.get(
|
|
13004
|
+
movArrowY.get(currentArrow.movLockFlg)(arrowName, currentArrow.y);
|
|
12982
13005
|
g_motionAlphaFunc.get(g_stateObj.motion)(arrowName, currentArrow);
|
|
12983
13006
|
currentArrow.boostCnt--;
|
|
12984
13007
|
}
|
|
@@ -13008,7 +13031,7 @@ const mainInit = () => {
|
|
|
13008
13031
|
const firstBarLength = g_workObj[`mk${toCapitalize(_name)}Length`][_j][(_arrowCnt - 1) * 2] * g_workObj.boostSpd;
|
|
13009
13032
|
|
|
13010
13033
|
const frzRoot = createEmptySprite(arrowSprite[g_workObj.dividePos[_j]], frzName, {
|
|
13011
|
-
x:
|
|
13034
|
+
x: 0, y: 0, w: C_ARW_WIDTH, h: C_ARW_WIDTH + firstBarLength,
|
|
13012
13035
|
});
|
|
13013
13036
|
/**
|
|
13014
13037
|
* フリーズアロー毎の属性情報
|
|
@@ -13040,8 +13063,9 @@ const mainInit = () => {
|
|
|
13040
13063
|
barY: C_ARW_WIDTH / 2 - firstBarLength * dividePos,
|
|
13041
13064
|
// フリーズアロー(対矢印)の相対位置
|
|
13042
13065
|
btmY: firstBarLength * g_workObj.scrollDir[_j],
|
|
13066
|
+
// 移動ロックフラグ(矢印モーション設定後に再設定)
|
|
13067
|
+
movLockFlg: false,
|
|
13043
13068
|
};
|
|
13044
|
-
setArrowY.get(`${g_workObj.movLockEnabled}_${g_workObj.initManualEnabled}`)(frzName, firstPosY, stepY);
|
|
13045
13069
|
|
|
13046
13070
|
// フリーズアロー色の設定
|
|
13047
13071
|
// - 通常時 (矢印枠/矢印塗りつぶし/帯): g_attrObj[frzName].Normal / NormalShadow / NormalBar
|
|
@@ -13110,6 +13134,14 @@ const mainInit = () => {
|
|
|
13110
13134
|
obj.style.animationDuration = `${_attrs.arrivalFrame / g_fps}s`;
|
|
13111
13135
|
});
|
|
13112
13136
|
}
|
|
13137
|
+
g_attrObj[frzName].movLockFlg = g_workObj[`${_name}MovLock`][_j] || g_workObj.movLockEnabled;
|
|
13138
|
+
const initManualFlg = g_workObj[`${_name}InitManual`][_j] || g_workObj.initManualEnabled;
|
|
13139
|
+
const setArrowYCondition = `${String(g_attrObj[frzName].movLockFlg)}_${String(initManualFlg)}`;
|
|
13140
|
+
setArrowY.get(setArrowYCondition)(frzName, firstPosY, stepY);
|
|
13141
|
+
if (!initManualFlg) {
|
|
13142
|
+
addTransform(frzName, `rootX`, `translateX(${g_workObj.stepX[_j]}px)`);
|
|
13143
|
+
}
|
|
13144
|
+
|
|
13113
13145
|
g_customJsObj.makeFrzArrow.forEach(func => func(_attrs, frzName, _name, _arrowCnt));
|
|
13114
13146
|
};
|
|
13115
13147
|
|
|
@@ -13135,7 +13167,7 @@ const mainInit = () => {
|
|
|
13135
13167
|
if (g_workObj.currentSpeed !== 0) {
|
|
13136
13168
|
currentFrz.prevY = currentFrz.y;
|
|
13137
13169
|
currentFrz.y -= movY + (g_workObj.motionOnFrames[currentFrz.boostCnt] || 0) * currentFrz.dir * currentFrz.boostDir;
|
|
13138
|
-
movArrowY.get(
|
|
13170
|
+
movArrowY.get(currentFrz.movLockFlg)(frzName, currentFrz.y);
|
|
13139
13171
|
g_motionAlphaFunc.get(g_stateObj.motion)(frzName, currentFrz);
|
|
13140
13172
|
currentFrz.boostCnt--;
|
|
13141
13173
|
}
|
|
@@ -13175,7 +13207,7 @@ const mainInit = () => {
|
|
|
13175
13207
|
currentFrz.frzBarLength -= movY * currentFrz.dir;
|
|
13176
13208
|
if (currentFrz.frzBarLength > 0) {
|
|
13177
13209
|
currentFrz.y -= movY;
|
|
13178
|
-
movArrowY.get(
|
|
13210
|
+
movArrowY.get(currentFrz.movLockFlg)(frzName, currentFrz.y);
|
|
13179
13211
|
} else {
|
|
13180
13212
|
judgeObjDelete[_name](_j, frzName);
|
|
13181
13213
|
}
|
|
@@ -13442,24 +13474,24 @@ const mainInit = () => {
|
|
|
13442
13474
|
|
|
13443
13475
|
/**
|
|
13444
13476
|
* 矢印・フリーズアローの初期位置
|
|
13445
|
-
* -
|
|
13446
|
-
* -
|
|
13447
|
-
* -
|
|
13448
|
-
* -
|
|
13477
|
+
* - true_true: スクロールなし/初期位置マニュアル
|
|
13478
|
+
* - true_false: スクロールなし/初期位置自動
|
|
13479
|
+
* - false_true: スクロールあり/初期位置マニュアル
|
|
13480
|
+
* - false_false: スクロールあり/初期位置自動
|
|
13449
13481
|
*/
|
|
13450
13482
|
const setArrowY = new Map([
|
|
13451
|
-
[`
|
|
13452
|
-
[`
|
|
13453
|
-
[`
|
|
13454
|
-
[`
|
|
13483
|
+
[`true_true`, (_name, _startY, _stepY) => { }],
|
|
13484
|
+
[`true_false`, (_name, _startY, _stepY) => addTransform(_name, `root`, `translateY(${wUnit(_stepY)})`)],
|
|
13485
|
+
[`false_true`, (_name, _startY, _stepY) => addTransform(_name, `root`, `translateY(${wUnit(_startY)})`)],
|
|
13486
|
+
[`false_false`, (_name, _startY, _stepY) => addTransform(_name, `root`, `translateY(${wUnit(_startY)})`)],
|
|
13455
13487
|
]);
|
|
13456
13488
|
|
|
13457
13489
|
/**
|
|
13458
13490
|
* 矢印・フリーズアローの移動処理
|
|
13459
13491
|
*/
|
|
13460
13492
|
const movArrowY = new Map([
|
|
13461
|
-
[
|
|
13462
|
-
[
|
|
13493
|
+
[true, (_name, _y) => { }],
|
|
13494
|
+
[false, (_name, _y) => addTransform(_name, `root`, `translateY(${wUnit(_y)})`)],
|
|
13463
13495
|
]);
|
|
13464
13496
|
|
|
13465
13497
|
/**
|
|
@@ -13777,9 +13809,12 @@ const changeColors = (_mkColor, _mkColorCd, _header, _name) => {
|
|
|
13777
13809
|
*/
|
|
13778
13810
|
const changeCssMotions = (_header, _name, _frameNum) => {
|
|
13779
13811
|
const camelHeader = _header === `` ? _name : `${_header}${toCapitalize(_name)}`;
|
|
13780
|
-
g_workObj[`mk${toCapitalize(camelHeader)}CssMotion`]?.[_frameNum]?.forEach((targetj, j) =>
|
|
13812
|
+
g_workObj[`mk${toCapitalize(camelHeader)}CssMotion`]?.[_frameNum]?.forEach((targetj, j) => {
|
|
13781
13813
|
g_workObj[`${camelHeader}CssMotions`][targetj] =
|
|
13782
|
-
|
|
13814
|
+
g_workObj[`mk${toCapitalize(camelHeader)}CssMotionName`][_frameNum][2 * j + (g_workObj.dividePos[targetj] % 2)]
|
|
13815
|
+
g_workObj[`${camelHeader}MovLock`][targetj] = g_workObj[`mk${toCapitalize(camelHeader)}MovLock`][_frameNum][j];
|
|
13816
|
+
g_workObj[`${camelHeader}InitManual`][targetj] = g_workObj[`mk${toCapitalize(camelHeader)}InitManual`][_frameNum][j];
|
|
13817
|
+
});
|
|
13783
13818
|
};
|
|
13784
13819
|
|
|
13785
13820
|
/**
|
|
@@ -13878,7 +13913,7 @@ const changeHitFrz = (_j, _k, _name, _difFrame = 0) => {
|
|
|
13878
13913
|
currentFrz.btmY -= delFrzLength + delFrzMotionLength + hitPos;
|
|
13879
13914
|
currentFrz.y += delFrzLength;
|
|
13880
13915
|
currentFrz.isMoving = false;
|
|
13881
|
-
movArrowY.get(
|
|
13916
|
+
movArrowY.get(currentFrz.movLockFlg)(frzName, currentFrz.y);
|
|
13882
13917
|
|
|
13883
13918
|
/**
|
|
13884
13919
|
* フリーズアロー(ヒット時)の色変更
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Source by tickle
|
|
7
7
|
* Created : 2019/11/19
|
|
8
|
-
* Revised : 2026/02
|
|
8
|
+
* Revised : 2026/03/02 (v45.3.1)
|
|
9
9
|
*
|
|
10
10
|
* https://github.com/cwtickle/danoniplus
|
|
11
11
|
*/
|
|
@@ -847,8 +847,8 @@ const g_typeLists = {
|
|
|
847
847
|
`FColorNormalShadow`, `FColorNormalShadowCd`,
|
|
848
848
|
`FColorHit`, `FColorHitCd`, `FColorHitBar`, `FColorHitBarCd`,
|
|
849
849
|
`FColorHitShadow`, `FColorHitShadowCd`,
|
|
850
|
-
`ArrowCssMotion`, `ArrowCssMotionName`,
|
|
851
|
-
`FrzCssMotion`, `FrzCssMotionName`,
|
|
850
|
+
`ArrowCssMotion`, `ArrowCssMotionName`, `ArrowMovLock`, `ArrowInitManual`,
|
|
851
|
+
`FrzCssMotion`, `FrzCssMotionName`, `FrzMovLock`, `FrzInitManual`,
|
|
852
852
|
`ArrowColorChangeAll`, `FrzColorChangeAll`,
|
|
853
853
|
],
|
|
854
854
|
};
|
|
@@ -1781,46 +1781,58 @@ 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
|
-
|
|
1784
|
+
['Horizontal', () => {
|
|
1785
|
+
if (g_scoreObj.baseFrame % 2 === 0)
|
|
1786
|
+
addTransform(`mainSprite`, `shakingX`, `translateX(${getShakingDist()}px)`, g_transPriority.shaking)
|
|
1787
|
+
}],
|
|
1788
|
+
['Vertical', () => {
|
|
1789
|
+
if (g_scoreObj.baseFrame % 2 === 0)
|
|
1790
|
+
addTransform(`mainSprite`, `shakingY`, `translateY(${getShakingDist() / 2}px)`, g_transPriority.shaking)
|
|
1791
|
+
}],
|
|
1786
1792
|
['X-Horizontal', () => {
|
|
1787
|
-
|
|
1788
|
-
|
|
1789
|
-
|
|
1793
|
+
if (g_scoreObj.baseFrame % 2 === 0)
|
|
1794
|
+
for (let j = 0; j < g_stateObj.layerNum; j++) {
|
|
1795
|
+
addTransform(`mainSprite${j}`, `shakingX`, `translateX(${getDirFromLayer(j) * (4 / 3) * getShakingDist()}px)`, g_transPriority.shaking);
|
|
1796
|
+
}
|
|
1790
1797
|
}],
|
|
1791
1798
|
['X-Vertical', () => {
|
|
1792
|
-
|
|
1793
|
-
|
|
1794
|
-
|
|
1799
|
+
if (g_scoreObj.baseFrame % 2 === 0)
|
|
1800
|
+
for (let j = 0; j < g_stateObj.layerNum; j++) {
|
|
1801
|
+
addTransform(`mainSprite${j}`, `shakingY`, `translateY(${getDirFromLayer(j) * getShakingDist()}px)`, g_transPriority.shaking);
|
|
1802
|
+
}
|
|
1795
1803
|
}],
|
|
1796
1804
|
['Drunk', () => {
|
|
1797
|
-
|
|
1798
|
-
|
|
1799
|
-
|
|
1800
|
-
|
|
1801
|
-
|
|
1802
|
-
|
|
1803
|
-
|
|
1804
|
-
|
|
1805
|
-
|
|
1806
|
-
|
|
1807
|
-
|
|
1808
|
-
|
|
1809
|
-
|
|
1810
|
-
|
|
1811
|
-
|
|
1812
|
-
|
|
1813
|
-
|
|
1814
|
-
|
|
1805
|
+
if (g_scoreObj.baseFrame % 2 === 0) {
|
|
1806
|
+
// Drunkは揺れの軸が途中で変わるため、基準位置取得のためにmainSpriteのみaddX, addYを使用
|
|
1807
|
+
const shakeX = g_posXs.mainSprite?.get(`shakingX`) ?? 0;
|
|
1808
|
+
const shakeY = g_posYs.mainSprite?.get(`shakingY`) ?? 0;
|
|
1809
|
+
if (shakeX === 0 && shakeY === 0) {
|
|
1810
|
+
g_workObj.drunkXFlg = Math.random() < 0.5;
|
|
1811
|
+
g_workObj.drunkYFlg = Math.random() < 0.5;
|
|
1812
|
+
}
|
|
1813
|
+
if (g_workObj.drunkXFlg) {
|
|
1814
|
+
const deltaX = getShakingDist();
|
|
1815
|
+
addX(`mainSprite`, `shakingX`, deltaX, { priority: g_transPriority.shaking });
|
|
1816
|
+
addTransform(`infoSprite`, `shakingX`, `translateX(${deltaX}px)`, g_transPriority.shaking);
|
|
1817
|
+
addTransform(`judgeSprite`, `shakingX`, `translateX(${deltaX}px)`, g_transPriority.shaking);
|
|
1818
|
+
}
|
|
1819
|
+
if (g_workObj.drunkYFlg) {
|
|
1820
|
+
const deltaY = getShakingDist() / 2;
|
|
1821
|
+
addY(`mainSprite`, `shakingY`, deltaY, { priority: g_transPriority.shaking });
|
|
1822
|
+
addTransform(`infoSprite`, `shakingY`, `translateY(${deltaY}px)`, g_transPriority.shaking);
|
|
1823
|
+
addTransform(`judgeSprite`, `shakingY`, `translateY(${deltaY}px)`, g_transPriority.shaking);
|
|
1824
|
+
}
|
|
1815
1825
|
}
|
|
1816
1826
|
}],
|
|
1817
1827
|
['S-Drunk', () => {
|
|
1818
|
-
|
|
1819
|
-
|
|
1820
|
-
|
|
1821
|
-
|
|
1822
|
-
|
|
1823
|
-
|
|
1828
|
+
if (g_scoreObj.baseFrame % 2 === 0) {
|
|
1829
|
+
g_shakingFunc.get(`Drunk`)();
|
|
1830
|
+
if (g_workObj.drunkXFlg) {
|
|
1831
|
+
g_shakingFunc.get(`X-Vertical`)();
|
|
1832
|
+
}
|
|
1833
|
+
if (g_workObj.drunkYFlg) {
|
|
1834
|
+
g_shakingFunc.get(`X-Horizontal`)();
|
|
1835
|
+
}
|
|
1824
1836
|
}
|
|
1825
1837
|
}],
|
|
1826
1838
|
]);
|
|
@@ -3799,9 +3811,10 @@ const g_dataMinObj = {
|
|
|
3799
3811
|
*/
|
|
3800
3812
|
const g_dataSetObj = {
|
|
3801
3813
|
2: [`speedData`, `boostData`],
|
|
3802
|
-
4: [`colorData
|
|
3803
|
-
`dummyArrowCssMotionData`, `dummyFrzCssMotionData`],
|
|
3814
|
+
4: [`colorData`],
|
|
3804
3815
|
5: [`ncolorData`, `scrollchData`],
|
|
3816
|
+
6: [`arrowCssMotionData`, `frzCssMotionData`,
|
|
3817
|
+
`dummyArrowCssMotionData`, `dummyFrzCssMotionData`],
|
|
3805
3818
|
}
|
|
3806
3819
|
|
|
3807
3820
|
const g_dfColorObj = {
|