danoniplus 28.4.0 → 28.5.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 +42 -14
- 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 : 2022/10/
|
|
7
|
+
* Revised : 2022/10/30
|
|
8
8
|
*
|
|
9
9
|
* https://github.com/cwtickle/danoniplus
|
|
10
10
|
*/
|
|
11
|
-
const g_version = `Ver 28.
|
|
12
|
-
const g_revisedDate = `2022/10/
|
|
11
|
+
const g_version = `Ver 28.5.1`;
|
|
12
|
+
const g_revisedDate = `2022/10/30`;
|
|
13
13
|
const g_alphaVersion = ``;
|
|
14
14
|
|
|
15
15
|
// カスタム用バージョン (danoni_custom.js 等で指定可)
|
|
@@ -7420,6 +7420,8 @@ const pushArrows = (_dataObj, _speedOnFrame, _motionOnFrame, _firstArrivalFrame)
|
|
|
7420
7420
|
|
|
7421
7421
|
/** 矢印の移動距離 */
|
|
7422
7422
|
g_workObj.initY = [];
|
|
7423
|
+
/** 矢印の移動距離 (Motion加算分) */
|
|
7424
|
+
g_workObj.initBoostY = [];
|
|
7423
7425
|
/** 矢印がステップゾーンに到達するまでのフレーム数 */
|
|
7424
7426
|
g_workObj.arrivalFrame = [];
|
|
7425
7427
|
/** Motionの適用フレーム数 */
|
|
@@ -7473,6 +7475,7 @@ const pushArrows = (_dataObj, _speedOnFrame, _motionOnFrame, _firstArrivalFrame)
|
|
|
7473
7475
|
g_workObj.initY[frmPrev] = tmpObj.startY;
|
|
7474
7476
|
g_workObj.arrivalFrame[frmPrev] = tmpObj.arrivalFrm;
|
|
7475
7477
|
g_workObj.motionFrame[frmPrev] = tmpObj.motionFrm;
|
|
7478
|
+
g_workObj.initBoostY[frmPrev] = sumData(g_workObj.motionOnFrames.filter((val, j) => j < g_workObj.motionFrame[frmPrev]));
|
|
7476
7479
|
|
|
7477
7480
|
if (_frzFlg) {
|
|
7478
7481
|
g_workObj[`mk${camelHeader}Length`][_j] = [];
|
|
@@ -7500,6 +7503,7 @@ const pushArrows = (_dataObj, _speedOnFrame, _motionOnFrame, _firstArrivalFrame)
|
|
|
7500
7503
|
g_workObj.initY[tmpFrame] = g_workObj.initY[frmPrev];
|
|
7501
7504
|
g_workObj.arrivalFrame[tmpFrame] = g_workObj.arrivalFrame[frmPrev];
|
|
7502
7505
|
g_workObj.motionFrame[tmpFrame] = g_workObj.motionFrame[frmPrev];
|
|
7506
|
+
g_workObj.initBoostY[tmpFrame] = sumData(g_workObj.motionOnFrames.filter((val, j) => j < g_workObj.motionFrame[frmPrev]));
|
|
7503
7507
|
|
|
7504
7508
|
} else {
|
|
7505
7509
|
|
|
@@ -7516,6 +7520,7 @@ const pushArrows = (_dataObj, _speedOnFrame, _motionOnFrame, _firstArrivalFrame)
|
|
|
7516
7520
|
g_workObj.initY[frmPrev] = tmpObj.startY;
|
|
7517
7521
|
g_workObj.arrivalFrame[frmPrev] = tmpObj.arrivalFrm;
|
|
7518
7522
|
g_workObj.motionFrame[frmPrev] = tmpObj.motionFrm;
|
|
7523
|
+
g_workObj.initBoostY[frmPrev] = sumData(g_workObj.motionOnFrames.filter((val, j) => j < g_workObj.motionFrame[frmPrev]));
|
|
7519
7524
|
}
|
|
7520
7525
|
|
|
7521
7526
|
// 出現タイミングを保存
|
|
@@ -8320,7 +8325,7 @@ const mainInit = _ => {
|
|
|
8320
8325
|
|
|
8321
8326
|
// フレーム数
|
|
8322
8327
|
divRoot.appendChild(
|
|
8323
|
-
createDivCss2Label(`lblframe`, g_scoreObj.
|
|
8328
|
+
createDivCss2Label(`lblframe`, g_scoreObj.baseFrame, { x: 0, y: 0, w: 100, h: 30, siz: 20, display: g_workObj.lifegaugeDisp, })
|
|
8324
8329
|
);
|
|
8325
8330
|
|
|
8326
8331
|
// ライフ(数字)部作成
|
|
@@ -8773,7 +8778,12 @@ const mainInit = _ => {
|
|
|
8773
8778
|
judgeMotionFunc.dummyArrowON = (_j, _arrowName, _cnt) => judgeMotionFunc.dummyArrowOFF(_j, _arrowName, _cnt);
|
|
8774
8779
|
|
|
8775
8780
|
/**
|
|
8776
|
-
*
|
|
8781
|
+
* 次矢印・フリーズアローへ判定を移すかチェック
|
|
8782
|
+
*
|
|
8783
|
+
* - 判定対象の矢印/フリーズアローが未判定の状態で、現在の矢印/フリーズアローの判定領域が回復判定内に入った場合、
|
|
8784
|
+
* 自身より前の判定をNG判定とした上で、判定対象の矢印/フリーズアローを強制的に削除
|
|
8785
|
+
* - ただし、判定対象の矢印/フリーズアローがジャスト付近の場合は判定対象を優先する
|
|
8786
|
+
* (フリーズアローの場合、ヒット中の場合も判定対象が優先される)
|
|
8777
8787
|
*
|
|
8778
8788
|
* @param _j 矢印の位置
|
|
8779
8789
|
* @param _k 矢印の表示順
|
|
@@ -8781,22 +8791,39 @@ const mainInit = _ => {
|
|
|
8781
8791
|
*/
|
|
8782
8792
|
const judgeNextFunc = {
|
|
8783
8793
|
|
|
8794
|
+
arrowOFF: (_j, _k, _cnt) => {
|
|
8795
|
+
|
|
8796
|
+
if (g_workObj.judgArrowCnt[_j] === _k - 1 && _cnt <= g_judgObj.arrowJ[g_judgPosObj.shakin]) {
|
|
8797
|
+
const prevArrowName = `arrow${_j}_${g_workObj.judgArrowCnt[_j]}`;
|
|
8798
|
+
|
|
8799
|
+
if (g_attrObj[prevArrowName].cnt < (-1) * g_judgObj.arrowJ[g_judgPosObj.ii]) {
|
|
8800
|
+
|
|
8801
|
+
// 自身より前の矢印が未判定の場合、強制的に枠外判定を行い矢印を削除
|
|
8802
|
+
if (g_attrObj[prevArrowName].cnt >= (-1) * g_judgObj.arrowJ[g_judgPosObj.uwan]) {
|
|
8803
|
+
judgeUwan(g_attrObj[prevArrowName].cnt);
|
|
8804
|
+
judgeObjDelete.arrow(_j, prevArrowName);
|
|
8805
|
+
}
|
|
8806
|
+
}
|
|
8807
|
+
}
|
|
8808
|
+
},
|
|
8809
|
+
|
|
8810
|
+
arrowON: (_j, _k, _cnt) => true,
|
|
8811
|
+
dummyArrowOFF: (_j, _k, _cnt) => true,
|
|
8812
|
+
dummyArrowON: (_j, _k, _cnt) => true,
|
|
8813
|
+
|
|
8784
8814
|
frzOFF: (_j, _k, _cnt) => {
|
|
8785
8815
|
|
|
8786
|
-
|
|
8787
|
-
// ただし、前のフリーズアローが押下中または判定領域がジャスト付近(キター領域)の場合は削除しない
|
|
8788
|
-
// 削除する場合、前のフリーズアローの判定はイクナイ(&ウワァン)扱い
|
|
8789
|
-
if (g_workObj.judgFrzCnt[_j] !== _k && _cnt <= g_judgObj.frzJ[g_judgPosObj.sfsf] + 1) {
|
|
8816
|
+
if (g_workObj.judgFrzCnt[_j] === _k - 1 && _cnt <= g_judgObj.frzJ[g_judgPosObj.sfsf]) {
|
|
8790
8817
|
const prevFrzName = `frz${_j}_${g_workObj.judgFrzCnt[_j]}`;
|
|
8791
8818
|
|
|
8792
8819
|
if (g_attrObj[prevFrzName].isMoving &&
|
|
8793
8820
|
g_attrObj[prevFrzName].cnt < (-1) * g_judgObj.frzJ[g_judgPosObj.kita]) {
|
|
8794
8821
|
|
|
8795
|
-
//
|
|
8822
|
+
// 自身より前のフリーズアローが未判定の場合、強制的に枠外判定を行いフリーズアローを削除
|
|
8796
8823
|
if (g_attrObj[prevFrzName].cnt >= (-1) * g_judgObj.frzJ[g_judgPosObj.iknai]) {
|
|
8797
|
-
judgeIknai(
|
|
8824
|
+
judgeIknai(g_attrObj[prevFrzName].cnt);
|
|
8798
8825
|
if (g_headerObj.frzStartjdgUse) {
|
|
8799
|
-
judgeUwan(
|
|
8826
|
+
judgeUwan(g_attrObj[prevFrzName].cnt);
|
|
8800
8827
|
}
|
|
8801
8828
|
}
|
|
8802
8829
|
judgeObjDelete.frz(_j, prevFrzName);
|
|
@@ -8852,7 +8879,7 @@ const mainInit = _ => {
|
|
|
8852
8879
|
const arrowName = `${_name}${_j}_${_arrowCnt}`;
|
|
8853
8880
|
const firstPosY = C_STEP_Y + g_posObj.reverseStepY * dividePos +
|
|
8854
8881
|
(g_workObj.initY[g_scoreObj.frameNum] * g_workObj.boostSpd +
|
|
8855
|
-
|
|
8882
|
+
g_workObj.initBoostY[g_scoreObj.frameNum] * g_workObj.boostDir) * g_workObj.scrollDir[_j];
|
|
8856
8883
|
|
|
8857
8884
|
const stepRoot = createEmptySprite(arrowSprite[dividePos], arrowName, {
|
|
8858
8885
|
x: g_workObj.stepX[_j], y: firstPosY, w: C_ARW_WIDTH, h: C_ARW_WIDTH,
|
|
@@ -8913,6 +8940,7 @@ const mainInit = _ => {
|
|
|
8913
8940
|
g_attrObj[arrowName].boostCnt--;
|
|
8914
8941
|
}
|
|
8915
8942
|
judgeMotionFunc[`${_name}${g_stateObj.autoAll}`](_j, arrowName, --g_attrObj[arrowName].cnt);
|
|
8943
|
+
judgeNextFunc[`${_name}${g_stateObj.autoAll}`](_j, _k, g_attrObj[arrowName].cnt);
|
|
8916
8944
|
};
|
|
8917
8945
|
|
|
8918
8946
|
/**
|
|
@@ -8929,7 +8957,7 @@ const mainInit = _ => {
|
|
|
8929
8957
|
const frzName = `${_name}${frzNo}`;
|
|
8930
8958
|
const firstPosY = C_STEP_Y + g_posObj.reverseStepY * dividePos +
|
|
8931
8959
|
(g_workObj.initY[g_scoreObj.frameNum] * g_workObj.boostSpd +
|
|
8932
|
-
|
|
8960
|
+
g_workObj.initBoostY[g_scoreObj.frameNum] * g_workObj.boostDir) * g_workObj.scrollDir[_j];
|
|
8933
8961
|
const firstBarLength = g_workObj[`mk${toCapitalize(_name)}Length`][_j][(_arrowCnt - 1) * 2] * g_workObj.boostSpd;
|
|
8934
8962
|
|
|
8935
8963
|
const frzRoot = createEmptySprite(arrowSprite[dividePos], frzName, {
|