danoniplus 37.2.1 → 37.3.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 +53 -26
- 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 37.
|
|
12
|
-
const g_revisedDate = `2024/06
|
|
11
|
+
const g_version = `Ver 37.3.0`;
|
|
12
|
+
const g_revisedDate = `2024/07/06`;
|
|
13
13
|
|
|
14
14
|
// カスタム用バージョン (danoni_custom.js 等で指定可)
|
|
15
15
|
let g_localVersion = ``;
|
|
@@ -8463,9 +8463,24 @@ const pushArrows = (_dataObj, _speedOnFrame, _motionOnFrame, _firstArrivalFrame)
|
|
|
8463
8463
|
/** Motionの適用フレーム数 */
|
|
8464
8464
|
g_workObj.motionFrame = [];
|
|
8465
8465
|
|
|
8466
|
-
const setNotes = (_j, _k, _data, _startPoint, _header, _frzFlg = false) => {
|
|
8466
|
+
const setNotes = (_j, _k, _data, _startPoint, _header, _frzFlg = false, { initY, initBoostY, arrivalFrame, motionFrame } = {}) => {
|
|
8467
8467
|
if (_startPoint >= 0) {
|
|
8468
|
-
|
|
8468
|
+
const arrowAttrs = { pos: _j, initY, initBoostY, arrivalFrame, motionFrame };
|
|
8469
|
+
if (g_workObj[`mk${_header}Arrow`][_startPoint] === undefined) {
|
|
8470
|
+
g_workObj[`mk${_header}Arrow`][_startPoint] = [arrowAttrs];
|
|
8471
|
+
} else {
|
|
8472
|
+
let insertFlg = false;
|
|
8473
|
+
for (let m = 0; m < g_workObj[`mk${_header}Arrow`][_startPoint].length; m++) {
|
|
8474
|
+
if (arrowAttrs.arrivalFrame < g_workObj[`mk${_header}Arrow`][_startPoint][m].arrivalFrame) {
|
|
8475
|
+
g_workObj[`mk${_header}Arrow`][_startPoint].splice(m, 0, arrowAttrs);
|
|
8476
|
+
insertFlg = true;
|
|
8477
|
+
break;
|
|
8478
|
+
}
|
|
8479
|
+
}
|
|
8480
|
+
if (!insertFlg) {
|
|
8481
|
+
g_workObj[`mk${_header}Arrow`][_startPoint].push(arrowAttrs);
|
|
8482
|
+
}
|
|
8483
|
+
}
|
|
8469
8484
|
if (_frzFlg) {
|
|
8470
8485
|
g_workObj[`mk${_header}Length`][_j][_k] = getFrzLength(_speedOnFrame, _data[_k], _data[_k + 1]);
|
|
8471
8486
|
}
|
|
@@ -8502,7 +8517,8 @@ const pushArrows = (_dataObj, _speedOnFrame, _motionOnFrame, _firstArrivalFrame)
|
|
|
8502
8517
|
if (_frzFlg) {
|
|
8503
8518
|
g_workObj[`mk${camelHeader}Length`][_j] = [];
|
|
8504
8519
|
}
|
|
8505
|
-
setNotes(_j, lastk, _data, startPoint[lastk], camelHeader, _frzFlg
|
|
8520
|
+
setNotes(_j, lastk, _data, startPoint[lastk], camelHeader, _frzFlg,
|
|
8521
|
+
{ initY: tmpObj.startY, initBoostY: g_workObj.initBoostY[frmPrev], arrivalFrame: tmpObj.arrivalFrm, motionFrame: tmpObj.motionFrm });
|
|
8506
8522
|
|
|
8507
8523
|
// 矢印は1つずつ、フリーズアローは2つで1セット
|
|
8508
8524
|
for (let k = lastk - setcnt; k >= 0; k -= setcnt) {
|
|
@@ -8546,7 +8562,9 @@ const pushArrows = (_dataObj, _speedOnFrame, _motionOnFrame, _firstArrivalFrame)
|
|
|
8546
8562
|
}
|
|
8547
8563
|
|
|
8548
8564
|
// 出現タイミングを保存
|
|
8549
|
-
setNotes(_j, k, _data, startPoint[k], camelHeader, _frzFlg
|
|
8565
|
+
setNotes(_j, k, _data, startPoint[k], camelHeader, _frzFlg,
|
|
8566
|
+
{ initY: tmpObj.startY, initBoostY: g_workObj.initBoostY[frmPrev], arrivalFrame: tmpObj.arrivalFrm, motionFrame: tmpObj.motionFrm }
|
|
8567
|
+
);
|
|
8550
8568
|
}
|
|
8551
8569
|
};
|
|
8552
8570
|
|
|
@@ -8994,6 +9012,11 @@ const getArrowSettings = _ => {
|
|
|
8994
9012
|
g_keyCopyLists.simpleDef.forEach(header => updateKeyInfo(header, keyCtrlPtn));
|
|
8995
9013
|
g_headerObj.tuning = g_headerObj.creatorNames[g_stateObj.scoreId];
|
|
8996
9014
|
|
|
9015
|
+
delete g_workObj.initY;
|
|
9016
|
+
delete g_workObj.initBoostY;
|
|
9017
|
+
delete g_workObj.arrivalFrame;
|
|
9018
|
+
delete g_workObj.motionFrame;
|
|
9019
|
+
|
|
8997
9020
|
g_workObj.stepX = [];
|
|
8998
9021
|
g_workObj.scrollDir = [];
|
|
8999
9022
|
g_workObj.scrollDirDefault = [];
|
|
@@ -10002,27 +10025,30 @@ const mainInit = _ => {
|
|
|
10002
10025
|
|
|
10003
10026
|
/**
|
|
10004
10027
|
* 矢印生成
|
|
10005
|
-
* @param {number}
|
|
10028
|
+
* @param {number} _attrs 矢印個別の属性
|
|
10029
|
+
* (pos: 矢印種類, arrivalFrame: 到達フレーム数, initY: 初期表示位置,
|
|
10030
|
+
* initBoostY: Motion有効時の初期表示位置加算, motionFrame: アニメーション有効フレーム数)
|
|
10006
10031
|
* @param {number} _arrowCnt 現在の判定矢印順
|
|
10007
10032
|
* @param {string} _name 矢印名
|
|
10008
10033
|
* @param {string} _color 矢印色
|
|
10009
10034
|
* @param {string} _shadowColor 矢印塗りつぶし部分の色
|
|
10010
10035
|
*/
|
|
10011
|
-
const makeArrow = (
|
|
10036
|
+
const makeArrow = (_attrs, _arrowCnt, _name, _color, _shadowColor) => {
|
|
10037
|
+
const _j = _attrs.pos;
|
|
10012
10038
|
const dividePos = g_workObj.dividePos[_j];
|
|
10013
10039
|
const colorPos = g_keyObj[`color${keyCtrlPtn}`][_j];
|
|
10014
10040
|
|
|
10015
10041
|
const arrowName = `${_name}${_j}_${_arrowCnt}`;
|
|
10016
10042
|
const firstPosY = C_STEP_Y + g_posObj.reverseStepY * dividePos +
|
|
10017
|
-
(
|
|
10018
|
-
|
|
10043
|
+
(_attrs.initY * g_workObj.boostSpd +
|
|
10044
|
+
_attrs.initBoostY * g_workObj.boostDir) * g_workObj.scrollDir[_j];
|
|
10019
10045
|
|
|
10020
10046
|
const stepRoot = createEmptySprite(arrowSprite[dividePos], arrowName, {
|
|
10021
10047
|
x: g_workObj.stepX[_j], y: firstPosY, w: C_ARW_WIDTH, h: C_ARW_WIDTH,
|
|
10022
10048
|
});
|
|
10023
10049
|
g_attrObj[arrowName] = {
|
|
10024
|
-
cnt:
|
|
10025
|
-
boostCnt:
|
|
10050
|
+
cnt: _attrs.arrivalFrame + 1,
|
|
10051
|
+
boostCnt: _attrs.motionFrame,
|
|
10026
10052
|
boostSpd: g_workObj.boostSpd, dividePos: dividePos,
|
|
10027
10053
|
dir: g_workObj.scrollDir[_j], boostDir: g_workObj.boostDir,
|
|
10028
10054
|
prevY: firstPosY, y: firstPosY,
|
|
@@ -10032,7 +10058,7 @@ const mainInit = _ => {
|
|
|
10032
10058
|
|
|
10033
10059
|
if (g_workObj[`${_name}CssMotions`][_j] !== ``) {
|
|
10034
10060
|
stepRoot.classList.add(g_workObj[`${_name}CssMotions`][_j]);
|
|
10035
|
-
stepRoot.style.animationDuration = `${
|
|
10061
|
+
stepRoot.style.animationDuration = `${_attrs.arrivalFrame / g_fps}s`;
|
|
10036
10062
|
}
|
|
10037
10063
|
|
|
10038
10064
|
// 内側塗りつぶし矢印は、下記の順で作成する。
|
|
@@ -10084,28 +10110,29 @@ const mainInit = _ => {
|
|
|
10084
10110
|
|
|
10085
10111
|
/**
|
|
10086
10112
|
* フリーズアロー生成
|
|
10087
|
-
* @param {number}
|
|
10113
|
+
* @param {number} _attrs
|
|
10088
10114
|
* @param {number} _arrowCnt
|
|
10089
10115
|
* @param {string} _name
|
|
10090
10116
|
* @param {string} _normalColor
|
|
10091
10117
|
* @param {string} _barColor
|
|
10092
10118
|
* @param {string} _shadowColor
|
|
10093
10119
|
*/
|
|
10094
|
-
const makeFrzArrow = (
|
|
10120
|
+
const makeFrzArrow = (_attrs, _arrowCnt, _name, _normalColor, _barColor, _shadowColor) => {
|
|
10121
|
+
const _j = _attrs.pos;
|
|
10095
10122
|
const dividePos = g_workObj.dividePos[_j];
|
|
10096
10123
|
const frzNo = `${_j}_${_arrowCnt}`;
|
|
10097
10124
|
const frzName = `${_name}${frzNo}`;
|
|
10098
10125
|
const firstPosY = C_STEP_Y + g_posObj.reverseStepY * dividePos +
|
|
10099
|
-
(
|
|
10100
|
-
|
|
10126
|
+
(_attrs.initY * g_workObj.boostSpd +
|
|
10127
|
+
_attrs.initBoostY * g_workObj.boostDir) * g_workObj.scrollDir[_j];
|
|
10101
10128
|
const firstBarLength = g_workObj[`mk${toCapitalize(_name)}Length`][_j][(_arrowCnt - 1) * 2] * g_workObj.boostSpd;
|
|
10102
10129
|
|
|
10103
10130
|
const frzRoot = createEmptySprite(arrowSprite[dividePos], frzName, {
|
|
10104
10131
|
x: g_workObj.stepX[_j], y: firstPosY, w: C_ARW_WIDTH, h: C_ARW_WIDTH + firstBarLength,
|
|
10105
10132
|
});
|
|
10106
10133
|
g_attrObj[frzName] = {
|
|
10107
|
-
cnt:
|
|
10108
|
-
boostCnt:
|
|
10134
|
+
cnt: _attrs.arrivalFrame + 1,
|
|
10135
|
+
boostCnt: _attrs.motionFrame,
|
|
10109
10136
|
judgEndFlg: false, isMoving: true, frzBarLength: firstBarLength, keyUpFrame: 0,
|
|
10110
10137
|
boostSpd: g_workObj.boostSpd, dividePos: dividePos, dir: g_workObj.scrollDir[_j], boostDir: g_workObj.boostDir,
|
|
10111
10138
|
y: firstPosY, barY: C_ARW_WIDTH / 2 - firstBarLength * dividePos, btmY: firstBarLength * g_workObj.scrollDir[_j],
|
|
@@ -10115,7 +10142,7 @@ const mainInit = _ => {
|
|
|
10115
10142
|
|
|
10116
10143
|
if (g_workObj[`${_name}CssMotions`][_j] !== ``) {
|
|
10117
10144
|
frzRoot.classList.add(g_workObj[`${_name}CssMotions`][_j]);
|
|
10118
|
-
frzRoot.style.animationDuration = `${
|
|
10145
|
+
frzRoot.style.animationDuration = `${_attrs.arrivalFrame / g_fps}s`;
|
|
10119
10146
|
}
|
|
10120
10147
|
let shadowColor = _shadowColor === `Default` ? _normalColor : _shadowColor;
|
|
10121
10148
|
|
|
@@ -10312,21 +10339,21 @@ const mainInit = _ => {
|
|
|
10312
10339
|
|
|
10313
10340
|
// ダミー矢印生成(背面に表示するため先に処理)
|
|
10314
10341
|
g_workObj.mkDummyArrow[currentFrame]?.forEach(data =>
|
|
10315
|
-
makeArrow(data, ++dummyArrowCnts[data], `dummyArrow`, g_workObj.dummyArrowColors[data], g_workObj.dummyArrowShadowColors[data]));
|
|
10342
|
+
makeArrow(data, ++dummyArrowCnts[data.pos], `dummyArrow`, g_workObj.dummyArrowColors[data.pos], g_workObj.dummyArrowShadowColors[data.pos]));
|
|
10316
10343
|
|
|
10317
10344
|
// 矢印生成
|
|
10318
10345
|
g_workObj.mkArrow[currentFrame]?.forEach(data =>
|
|
10319
|
-
makeArrow(data, ++arrowCnts[data], `arrow`, g_workObj.arrowColors[data], g_workObj.arrowShadowColors[data]));
|
|
10346
|
+
makeArrow(data, ++arrowCnts[data.pos], `arrow`, g_workObj.arrowColors[data.pos], g_workObj.arrowShadowColors[data.pos]));
|
|
10320
10347
|
|
|
10321
10348
|
// ダミーフリーズアロー生成
|
|
10322
10349
|
g_workObj.mkDummyFrzArrow[currentFrame]?.forEach(data =>
|
|
10323
|
-
makeFrzArrow(data, ++dummyFrzCnts[data], `dummyFrz`, g_workObj.dummyFrzNormalColors[data],
|
|
10324
|
-
g_workObj.dummyFrzNormalBarColors[data], g_workObj.dummyFrzNormalShadowColors[data]));
|
|
10350
|
+
makeFrzArrow(data, ++dummyFrzCnts[data.pos], `dummyFrz`, g_workObj.dummyFrzNormalColors[data.pos],
|
|
10351
|
+
g_workObj.dummyFrzNormalBarColors[data.pos], g_workObj.dummyFrzNormalShadowColors[data.pos]));
|
|
10325
10352
|
|
|
10326
10353
|
// フリーズアロー生成
|
|
10327
10354
|
g_workObj.mkFrzArrow[currentFrame]?.forEach(data =>
|
|
10328
|
-
makeFrzArrow(data, ++frzCnts[data], `frz`, g_workObj.frzNormalColors[data],
|
|
10329
|
-
g_workObj.frzNormalBarColors[data], g_workObj.frzNormalShadowColors[data]));
|
|
10355
|
+
makeFrzArrow(data, ++frzCnts[data.pos], `frz`, g_workObj.frzNormalColors[data.pos],
|
|
10356
|
+
g_workObj.frzNormalBarColors[data.pos], g_workObj.frzNormalShadowColors[data.pos]));
|
|
10330
10357
|
|
|
10331
10358
|
// 矢印・フリーズアロー移動&消去
|
|
10332
10359
|
for (let j = 0; j < keyNum; j++) {
|