danoniplus 32.4.0 → 32.5.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
CHANGED
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Source by tickle
|
|
6
6
|
* Created : 2018/10/08
|
|
7
|
-
* Revised : 2023/06/
|
|
7
|
+
* Revised : 2023/06/24
|
|
8
8
|
*
|
|
9
9
|
* https://github.com/cwtickle/danoniplus
|
|
10
10
|
*/
|
|
11
|
-
const g_version = `Ver 32.
|
|
12
|
-
const g_revisedDate = `2023/06/
|
|
11
|
+
const g_version = `Ver 32.5.0`;
|
|
12
|
+
const g_revisedDate = `2023/06/24`;
|
|
13
13
|
|
|
14
14
|
// カスタム用バージョン (danoni_custom.js 等で指定可)
|
|
15
15
|
let g_localVersion = ``;
|
|
@@ -3012,6 +3012,11 @@ const headerConvert = _dosObj => {
|
|
|
3012
3012
|
// フリーズアローの始点で通常矢印の判定を行うか(dotさんソース方式)
|
|
3013
3013
|
obj.frzStartjdgUse = setBoolVal(_dosObj.frzStartjdgUse ?? g_presetObj.frzStartjdgUse);
|
|
3014
3014
|
|
|
3015
|
+
// 空押し判定を行うか
|
|
3016
|
+
obj.excessiveJdgUse = setBoolVal(_dosObj.excessiveJdgUse ?? g_presetObj.excessiveJdgUse);
|
|
3017
|
+
g_stateObj.excessive = obj.excessiveJdgUse ? C_FLG_ON : C_FLG_OFF;
|
|
3018
|
+
g_settings.excessiveNum = obj.excessiveJdgUse ? 1 : 0;
|
|
3019
|
+
|
|
3015
3020
|
// 譜面名に制作者名を付加するかどうかのフラグ
|
|
3016
3021
|
obj.makerView = setBoolVal(_dosObj.makerView);
|
|
3017
3022
|
|
|
@@ -3103,10 +3108,14 @@ const headerConvert = _dosObj => {
|
|
|
3103
3108
|
obj.resultMotionSet = setBoolVal(_dosObj.resultMotionSet, true);
|
|
3104
3109
|
|
|
3105
3110
|
// 譜面明細の使用可否
|
|
3106
|
-
|
|
3111
|
+
const tmpDetails = _dosObj.scoreDetailUse?.split(`,`).filter(val => hasVal(val) && val !== `false`)
|
|
3112
|
+
.map(val => replaceStr(val, g_settings.scoreDetailTrans));
|
|
3113
|
+
g_settings.scoreDetails = g_settings.scoreDetailDefs.filter(val => tmpDetails?.includes(val) || tmpDetails === undefined);
|
|
3114
|
+
|
|
3107
3115
|
g_stateObj.scoreDetail = g_settings.scoreDetails[0] || ``;
|
|
3108
3116
|
g_settings.scoreDetailCursors = g_settings.scoreDetails.map(val => `lnk${val}G`);
|
|
3109
|
-
g_settings.scoreDetailCursors.push(`
|
|
3117
|
+
g_settings.scoreDetailCursors.push(`btnGraphB`);
|
|
3118
|
+
[`option`, `difSelector`].forEach(page => g_shortcutObj[page].KeyQ.id = g_settings.scoreDetailCursors[0]);
|
|
3110
3119
|
|
|
3111
3120
|
// 判定位置をBackgroundのON/OFFと連動してリセットする設定
|
|
3112
3121
|
obj.jdgPosReset = setBoolVal(_dosObj.jdgPosReset, true);
|
|
@@ -4565,10 +4574,10 @@ const drawSpeedGraph = _scoreId => {
|
|
|
4565
4574
|
const lineX = (speedType === `speed`) ? 125 : 210;
|
|
4566
4575
|
context.beginPath();
|
|
4567
4576
|
context.moveTo(lineX, 215);
|
|
4568
|
-
context.lineTo(lineX +
|
|
4577
|
+
context.lineTo(lineX + 25, 215);
|
|
4569
4578
|
context.stroke();
|
|
4570
4579
|
context.font = `${g_limitObj.difSelectorSiz}px ${getBasicFont()}`;
|
|
4571
|
-
context.fillText(speedType, lineX +
|
|
4580
|
+
context.fillText(g_lblNameObj[`s_${speedType}`], lineX + 30, 218);
|
|
4572
4581
|
|
|
4573
4582
|
updateScoreDetailLabel(`Speed`, `${speedType}S`, speedObj[speedType].cnt, j, g_lblNameObj[`s_${speedType}`]);
|
|
4574
4583
|
updateScoreDetailLabel(`Speed`, `avgD${speedType}`, avgSubX[j] === 1 ? `----` : `${(avgSubX[j]).toFixed(2)}x`, j + 4, g_lblNameObj[`s_avgD${speedType}`]);
|
|
@@ -5031,7 +5040,10 @@ const createOptionWindow = _sprite => {
|
|
|
5031
5040
|
};
|
|
5032
5041
|
|
|
5033
5042
|
if (g_settings.scoreDetails.length > 0) {
|
|
5034
|
-
spriteList.speed
|
|
5043
|
+
multiAppend(spriteList.speed,
|
|
5044
|
+
createCss2Button(`btnGraphB`, ``, _ => true, {
|
|
5045
|
+
x: -25, y: -60, w: 0, h: 0, opacity: 0, resetFunc: _ => setScoreDetail(true),
|
|
5046
|
+
}, g_cssObj.button_Mini),
|
|
5035
5047
|
createCss2Button(`btnGraph`, `i`, _ => true, {
|
|
5036
5048
|
x: -25, y: -60, w: 30, h: 30, siz: g_limitObj.jdgCharaSiz, title: g_msgObj.graph,
|
|
5037
5049
|
resetFunc: _ => setScoreDetail(), cxtFunc: _ => setScoreDetail(),
|
|
@@ -5080,7 +5092,7 @@ const createOptionWindow = _sprite => {
|
|
|
5080
5092
|
/**
|
|
5081
5093
|
* 譜面明細表示/非表示ボタンの処理
|
|
5082
5094
|
*/
|
|
5083
|
-
const setScoreDetail =
|
|
5095
|
+
const setScoreDetail = (_resetFlg = false) => {
|
|
5084
5096
|
if (g_currentPage === `difSelector`) {
|
|
5085
5097
|
resetDifWindow();
|
|
5086
5098
|
g_stateObj.scoreDetailViewFlg = false;
|
|
@@ -5095,7 +5107,9 @@ const createOptionWindow = _sprite => {
|
|
|
5095
5107
|
detailObj.style.visibility = visibles[Number(g_stateObj.scoreDetailViewFlg)];
|
|
5096
5108
|
|
|
5097
5109
|
// Qキーを押したときのカーソル位置を先頭に初期化
|
|
5098
|
-
|
|
5110
|
+
if (_resetFlg) {
|
|
5111
|
+
g_shortcutObj.option.KeyQ.id = g_settings.scoreDetailCursors[0];
|
|
5112
|
+
}
|
|
5099
5113
|
};
|
|
5100
5114
|
|
|
5101
5115
|
// ---------------------------------------------------
|
|
@@ -5160,6 +5174,16 @@ const createOptionWindow = _sprite => {
|
|
|
5160
5174
|
spriteList.gauge.appendChild(makeDisabledLabel(`lnkGauge`, 0, getStgDetailName(g_stateObj.gauge)));
|
|
5161
5175
|
}
|
|
5162
5176
|
|
|
5177
|
+
// 空押し判定設定 (Excessive)
|
|
5178
|
+
if (g_headerObj.excessiveUse) {
|
|
5179
|
+
spriteList.gauge.appendChild(
|
|
5180
|
+
createCss2Button(`lnkExcessive`, g_lblNameObj.Excessive, evt => setExcessive(evt.target),
|
|
5181
|
+
Object.assign(g_lblPosObj.btnExcessive, {
|
|
5182
|
+
title: g_msgObj.excessive, cxtFunc: evt => setExcessive(evt.target),
|
|
5183
|
+
}), g_cssObj.button_Default, g_cssObj[`button_Rev${g_stateObj.excessive}`])
|
|
5184
|
+
);
|
|
5185
|
+
}
|
|
5186
|
+
|
|
5163
5187
|
// ---------------------------------------------------
|
|
5164
5188
|
// タイミング調整 (Adjustment)
|
|
5165
5189
|
// 縦位置: 10.5 短縮ショートカットあり
|
|
@@ -5605,6 +5629,16 @@ const getAccuracy = (_border, _rcv, _dmg, _init, _allCnt) => {
|
|
|
5605
5629
|
return [rateText, allowableCntsText];
|
|
5606
5630
|
};
|
|
5607
5631
|
|
|
5632
|
+
/**
|
|
5633
|
+
* 空押し判定の設定
|
|
5634
|
+
*/
|
|
5635
|
+
const setExcessive = _btn => {
|
|
5636
|
+
g_settings.excessiveNum = (g_settings.excessiveNum + 1) % 2;
|
|
5637
|
+
g_stateObj.excessive = g_settings.excessives[g_settings.excessiveNum];
|
|
5638
|
+
_btn.classList.replace(g_cssObj[`button_Rev${g_settings.excessives[(g_settings.excessiveNum + 1) % 2]}`],
|
|
5639
|
+
g_cssObj[`button_Rev${g_settings.excessives[g_settings.excessiveNum]}`]);
|
|
5640
|
+
};
|
|
5641
|
+
|
|
5608
5642
|
/**
|
|
5609
5643
|
* 保存済みキーコンフィグ取得処理
|
|
5610
5644
|
* @param {object} _localStorage 保存先のローカルストレージ名
|
|
@@ -9236,7 +9270,7 @@ const mainInit = _ => {
|
|
|
9236
9270
|
|
|
9237
9271
|
// 矢印(枠外判定、AutoPlay: OFF)
|
|
9238
9272
|
arrowOFF: (_j, _arrowName, _cnt) => {
|
|
9239
|
-
if (_cnt < (-1) * g_judgObj.arrowJ[g_judgPosObj.
|
|
9273
|
+
if (_cnt < (-1) * g_judgObj.arrowJ[g_judgPosObj.shobon]) {
|
|
9240
9274
|
judgeUwan(_cnt);
|
|
9241
9275
|
judgeObjDelete.arrow(_j, _arrowName);
|
|
9242
9276
|
}
|
|
@@ -10155,18 +10189,27 @@ const judgeArrow = _j => {
|
|
|
10155
10189
|
|
|
10156
10190
|
const judgeTargetArrow = _difFrame => {
|
|
10157
10191
|
const _difCnt = Math.abs(_difFrame);
|
|
10158
|
-
|
|
10159
|
-
const [resultFunc, resultJdg] = checkJudgment(_difCnt);
|
|
10160
|
-
resultFunc(_difFrame);
|
|
10161
|
-
displayDiff(_difFrame);
|
|
10162
|
-
|
|
10192
|
+
const stepHitTargetArrow = _resultJdg => {
|
|
10163
10193
|
const stepDivHit = document.querySelector(`#stepHit${_j}`);
|
|
10164
10194
|
stepDivHit.style.top = `${currentArrow.prevY - parseFloat($id(`stepRoot${_j}`).top) - 15 + g_workObj.hitPosition * g_workObj.scrollDir[_j]}px`;
|
|
10165
10195
|
stepDivHit.style.opacity = 0.75;
|
|
10166
10196
|
stepDivHit.classList.value = ``;
|
|
10167
|
-
stepDivHit.classList.add(g_cssObj[`main_step${
|
|
10197
|
+
stepDivHit.classList.add(g_cssObj[`main_step${_resultJdg}`]);
|
|
10168
10198
|
stepDivHit.setAttribute(`cnt`, C_FRM_HITMOTION);
|
|
10199
|
+
}
|
|
10200
|
+
|
|
10201
|
+
if (g_stateObj.excessive === C_FLG_ON && _difFrame <= g_judgObj.arrowJ[g_judgPosObj.uwan] && _difFrame > g_judgObj.arrowJ[g_judgPosObj.shobon]) {
|
|
10202
|
+
// 空押し判定(有効かつ早押し時のみ)
|
|
10203
|
+
displayDiff(_difFrame);
|
|
10204
|
+
stepHitTargetArrow(`Excessive`);
|
|
10205
|
+
return true;
|
|
10169
10206
|
|
|
10207
|
+
} else if (_difCnt <= g_judgObj.arrowJ[g_judgPosObj.shobon]) {
|
|
10208
|
+
// 通常判定
|
|
10209
|
+
const [resultFunc, resultJdg] = checkJudgment(_difCnt);
|
|
10210
|
+
resultFunc(_difFrame);
|
|
10211
|
+
displayDiff(_difFrame);
|
|
10212
|
+
stepHitTargetArrow(resultJdg);
|
|
10170
10213
|
document.getElementById(arrowName).remove();
|
|
10171
10214
|
g_workObj.judgArrowCnt[_j]++;
|
|
10172
10215
|
return true;
|
|
@@ -10225,7 +10268,11 @@ const displayDiff = (_difFrame, _fjdg = ``, _justFrames = g_headerObj.justFrames
|
|
|
10225
10268
|
let diffJDisp = ``;
|
|
10226
10269
|
g_workObj.diffList.push(_difFrame);
|
|
10227
10270
|
const difCnt = Math.abs(_difFrame);
|
|
10228
|
-
if (_difFrame >
|
|
10271
|
+
if (_difFrame > g_judgObj.arrowJ[g_judgPosObj.shobon]) {
|
|
10272
|
+
diffJDisp = `<span class="common_kita">Excessive</span>`;
|
|
10273
|
+
g_resultObj.excessive++;
|
|
10274
|
+
lifeDamage(true);
|
|
10275
|
+
} else if (_difFrame > _justFrames) {
|
|
10229
10276
|
diffJDisp = `<span class="common_matari">Fast ${difCnt} Frames</span>`;
|
|
10230
10277
|
g_resultObj.fast++;
|
|
10231
10278
|
} else if (_difFrame < _justFrames * (-1)) {
|
|
@@ -10267,8 +10314,12 @@ const lifeRecovery = _ => {
|
|
|
10267
10314
|
}
|
|
10268
10315
|
};
|
|
10269
10316
|
|
|
10270
|
-
|
|
10271
|
-
|
|
10317
|
+
/**
|
|
10318
|
+
* ゲージダメージ処理
|
|
10319
|
+
* @param {boolean} _excessive
|
|
10320
|
+
*/
|
|
10321
|
+
const lifeDamage = (_excessive = false) => {
|
|
10322
|
+
g_workObj.lifeVal -= g_workObj.lifeDmg * (_excessive ? 0.25 : 1);
|
|
10272
10323
|
|
|
10273
10324
|
if (g_workObj.lifeVal <= 0) {
|
|
10274
10325
|
g_workObj.lifeVal = 0;
|
|
@@ -10527,7 +10578,7 @@ const resultInit = _ => {
|
|
|
10527
10578
|
rankMark = g_rankObj.rankMarkF;
|
|
10528
10579
|
rankColor = g_rankObj.rankColorF;
|
|
10529
10580
|
g_resultObj.spState = `failed`;
|
|
10530
|
-
} else if (playingArrows === g_fullArrows && g_stateObj.autoAll === C_FLG_OFF) {
|
|
10581
|
+
} else if (playingArrows === g_fullArrows && g_stateObj.autoAll === C_FLG_OFF && !(g_headerObj.excessiveJdgUse && g_stateObj.excessive === C_FLG_OFF)) {
|
|
10531
10582
|
if (g_resultObj.spState === ``) {
|
|
10532
10583
|
g_resultObj.spState = `cleared`;
|
|
10533
10584
|
}
|
|
@@ -10653,6 +10704,12 @@ const resultInit = _ => {
|
|
|
10653
10704
|
makeCssResultSymbol(`lblAdjS`, 260, g_cssObj.score, 5, `${getDiffFrame(estimatedAdj)}`, C_ALIGN_RIGHT),
|
|
10654
10705
|
);
|
|
10655
10706
|
}
|
|
10707
|
+
if (g_stateObj.excessive === C_FLG_ON) {
|
|
10708
|
+
multiAppend(resultWindow,
|
|
10709
|
+
makeCssResultSymbol(`lblExcessive`, 350, g_cssObj.common_kita, 6, g_lblNameObj.j_excessive),
|
|
10710
|
+
makeCssResultSymbol(`lblExcessiveS`, 260, g_cssObj.score, 7, g_resultObj.excessive, C_ALIGN_RIGHT),
|
|
10711
|
+
);
|
|
10712
|
+
}
|
|
10656
10713
|
}
|
|
10657
10714
|
|
|
10658
10715
|
// ランク描画
|
|
@@ -10779,6 +10836,8 @@ const resultInit = _ => {
|
|
|
10779
10836
|
const twiturl = new URL(g_localStorageUrl);
|
|
10780
10837
|
twiturl.searchParams.append(`scoreId`, g_stateObj.scoreId);
|
|
10781
10838
|
|
|
10839
|
+
const tweetExcessive = (g_stateObj.excessive === C_FLG_ON) ? `(+${g_resultObj.excessive})` : ``;
|
|
10840
|
+
|
|
10782
10841
|
let tweetFrzJdg = ``;
|
|
10783
10842
|
let tweetMaxCombo = `${g_resultObj.maxCombo}`;
|
|
10784
10843
|
if (g_allFrz > 0) {
|
|
@@ -10794,7 +10853,7 @@ const resultInit = _ => {
|
|
|
10794
10853
|
[`[rank]`, rankMark],
|
|
10795
10854
|
[`[score]`, g_resultObj.score],
|
|
10796
10855
|
[`[playStyle]`, playStyleData],
|
|
10797
|
-
[`[arrowJdg]`, `${g_resultObj.ii}-${g_resultObj.shakin}-${g_resultObj.matari}-${g_resultObj.shobon}-${g_resultObj.uwan}`],
|
|
10856
|
+
[`[arrowJdg]`, `${g_resultObj.ii}-${g_resultObj.shakin}-${g_resultObj.matari}-${g_resultObj.shobon}-${g_resultObj.uwan}${tweetExcessive}`],
|
|
10798
10857
|
[`[frzJdg]`, tweetFrzJdg],
|
|
10799
10858
|
[`[maxCombo]`, tweetMaxCombo],
|
|
10800
10859
|
[`[url]`, g_isLocal ? `` : `${twiturl.toString()}`.replace(/[\t\n]/g, ``)]
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Source by tickle
|
|
7
7
|
* Created : 2019/11/19
|
|
8
|
-
* Revised : 2023/06/09 (v32.
|
|
8
|
+
* Revised : 2023/06/09 (v32.5.0)
|
|
9
9
|
*
|
|
10
10
|
* https://github.com/cwtickle/danoniplus
|
|
11
11
|
*/
|
|
@@ -255,6 +255,9 @@ const updateWindowSiz = _ => {
|
|
|
255
255
|
btnReverse: {
|
|
256
256
|
x: 160, y: 0, w: 90, h: 21, siz: g_limitObj.difSelectorSiz, borderStyle: `solid`,
|
|
257
257
|
},
|
|
258
|
+
btnExcessive: {
|
|
259
|
+
x: 5, y: 25, w: 90, h: 21, siz: g_limitObj.difSelectorSiz, borderStyle: `solid`,
|
|
260
|
+
},
|
|
258
261
|
lblGauge2: {
|
|
259
262
|
x: g_limitObj.setLblLeft - 55, y: g_limitObj.setLblHeight,
|
|
260
263
|
w: g_limitObj.setLblWidth + 60, h: g_limitObj.setLblHeight * 2, siz: 11,
|
|
@@ -700,7 +703,7 @@ const C_KEY_TITLEBACK = 46;
|
|
|
700
703
|
|
|
701
704
|
/** 判定系共通オブジェクト */
|
|
702
705
|
const g_judgObj = {
|
|
703
|
-
arrowJ: [2, 4, 6, 8,
|
|
706
|
+
arrowJ: [2, 4, 6, 8, 16],
|
|
704
707
|
frzJ: [2, 4, 8]
|
|
705
708
|
};
|
|
706
709
|
const g_judgPosObj = {
|
|
@@ -731,6 +734,7 @@ const g_resultObj = {
|
|
|
731
734
|
|
|
732
735
|
fast: 0,
|
|
733
736
|
slow: 0,
|
|
737
|
+
excessive: 0,
|
|
734
738
|
|
|
735
739
|
spState: ``,
|
|
736
740
|
};
|
|
@@ -890,6 +894,9 @@ const g_settings = {
|
|
|
890
894
|
gauges: [],
|
|
891
895
|
gaugeNum: 0,
|
|
892
896
|
|
|
897
|
+
excessives: [C_FLG_OFF, C_FLG_ON],
|
|
898
|
+
excessiveNum: 0,
|
|
899
|
+
|
|
893
900
|
autoPlays: [C_FLG_OFF, C_FLG_ALL],
|
|
894
901
|
autoPlayNum: 0,
|
|
895
902
|
|
|
@@ -911,9 +918,11 @@ const g_settings = {
|
|
|
911
918
|
|
|
912
919
|
opacitys: [10, 25, 50, 75, 100],
|
|
913
920
|
|
|
914
|
-
scoreDetailDefs: [`
|
|
921
|
+
scoreDetailDefs: [`Density`, `Speed`, `ToolDif`],
|
|
915
922
|
scoreDetails: [],
|
|
916
923
|
scoreDetailCursors: [],
|
|
924
|
+
|
|
925
|
+
scoreDetailTrans: [[`Velocity`, `Speed`], [`DifLevel`, `ToolDif`]],
|
|
917
926
|
};
|
|
918
927
|
|
|
919
928
|
g_settings.volumeNum = g_settings.volumes.length - 1;
|
|
@@ -1000,7 +1009,7 @@ let g_storeSettings = [`adjustment`, `volume`, `appearance`, `opacity`, `hitPosi
|
|
|
1000
1009
|
let g_storeSettingsEx = [`d_stepzone`, `d_judgment`, `d_fastslow`, `d_lifegauge`,
|
|
1001
1010
|
`d_score`, `d_musicinfo`, `d_filterline`];
|
|
1002
1011
|
|
|
1003
|
-
let g_canDisabledSettings = [`motion`, `scroll`, `shuffle`, `autoPlay`, `gauge`, `appearance`];
|
|
1012
|
+
let g_canDisabledSettings = [`motion`, `scroll`, `shuffle`, `autoPlay`, `gauge`, `excessive`, `appearance`];
|
|
1004
1013
|
|
|
1005
1014
|
const g_hidSudObj = {
|
|
1006
1015
|
filterPos: 10,
|
|
@@ -1395,13 +1404,13 @@ const g_shortcutObj = {
|
|
|
1395
1404
|
KeyV: { id: `lnkVolumeR` },
|
|
1396
1405
|
|
|
1397
1406
|
KeyI: { id: `btnGraph` },
|
|
1398
|
-
Digit1: { id: `
|
|
1399
|
-
Digit2: { id: `
|
|
1407
|
+
Digit1: { id: `lnkDensityG` },
|
|
1408
|
+
Digit2: { id: `lnkSpeedG` },
|
|
1400
1409
|
Digit3: { id: `lnkToolDifG` },
|
|
1401
|
-
Numpad1: { id: `
|
|
1402
|
-
Numpad2: { id: `
|
|
1410
|
+
Numpad1: { id: `lnkDensityG` },
|
|
1411
|
+
Numpad2: { id: `lnkSpeedG` },
|
|
1403
1412
|
Numpad3: { id: `lnkToolDifG` },
|
|
1404
|
-
KeyQ: { id: `
|
|
1413
|
+
KeyQ: { id: `lnkDensityG` },
|
|
1405
1414
|
KeyP: { id: `lnkDifInfo` },
|
|
1406
1415
|
KeyZ: { id: `btnSave` },
|
|
1407
1416
|
|
|
@@ -1423,13 +1432,13 @@ const g_shortcutObj = {
|
|
|
1423
1432
|
ArrowUp: { id: `btnDifU` },
|
|
1424
1433
|
|
|
1425
1434
|
KeyI: { id: `btnGraph` },
|
|
1426
|
-
Digit1: { id: `
|
|
1427
|
-
Digit2: { id: `
|
|
1435
|
+
Digit1: { id: `lnkDensityG` },
|
|
1436
|
+
Digit2: { id: `lnkSpeedG` },
|
|
1428
1437
|
Digit3: { id: `lnkToolDifG` },
|
|
1429
|
-
Numpad1: { id: `
|
|
1430
|
-
Numpad2: { id: `
|
|
1438
|
+
Numpad1: { id: `lnkDensityG` },
|
|
1439
|
+
Numpad2: { id: `lnkSpeedG` },
|
|
1431
1440
|
Numpad3: { id: `lnkToolDifG` },
|
|
1432
|
-
KeyQ: { id: `
|
|
1441
|
+
KeyQ: { id: `lnkDensityG` },
|
|
1433
1442
|
KeyP: { id: `lnkDifInfo` },
|
|
1434
1443
|
|
|
1435
1444
|
Escape: { id: `btnBack` },
|
|
@@ -1575,6 +1584,7 @@ const g_cssObj = {
|
|
|
1575
1584
|
main_stepShakin: `main_stepShakin`,
|
|
1576
1585
|
main_stepMatari: `main_stepMatari`,
|
|
1577
1586
|
main_stepShobon: `main_stepShobon`,
|
|
1587
|
+
main_stepExcessive: `main_stepExcessive`,
|
|
1578
1588
|
|
|
1579
1589
|
main_objStepShadow: `main_objStepShadow`,
|
|
1580
1590
|
main_objShadow: `main_objShadow`,
|
|
@@ -2612,6 +2622,7 @@ const g_lblNameObj = {
|
|
|
2612
2622
|
Shuffle: `Shuffle`,
|
|
2613
2623
|
AutoPlay: `AutoPlay`,
|
|
2614
2624
|
Gauge: `Gauge`,
|
|
2625
|
+
Excessive: `Excessive`,
|
|
2615
2626
|
Adjustment: `Adjustment`,
|
|
2616
2627
|
Fadein: `Fadein`,
|
|
2617
2628
|
Volume: `Volume`,
|
|
@@ -2634,10 +2645,10 @@ const g_lblNameObj = {
|
|
|
2634
2645
|
g_damage: `Damage`,
|
|
2635
2646
|
g_rate: `Accuracy`,
|
|
2636
2647
|
|
|
2637
|
-
s_speed: `
|
|
2648
|
+
s_speed: `Overall`,
|
|
2638
2649
|
s_boost: `Boost`,
|
|
2639
2650
|
s_avg: `Avg.`,
|
|
2640
|
-
s_avgDspeed: `
|
|
2651
|
+
s_avgDspeed: `AvgO)`,
|
|
2641
2652
|
s_avgDboost: `AvgB)`,
|
|
2642
2653
|
|
|
2643
2654
|
s_apm: `APM`,
|
|
@@ -2715,9 +2726,9 @@ const g_lblNameObj = {
|
|
|
2715
2726
|
'u_Sudden+': `Sudden+`,
|
|
2716
2727
|
'u_Hid&Sud+': `Hid&Sud+`,
|
|
2717
2728
|
|
|
2718
|
-
'u_Speed': `
|
|
2729
|
+
'u_Speed': `Velocity`,
|
|
2719
2730
|
'u_Density': `Density`,
|
|
2720
|
-
'u_ToolDif': `
|
|
2731
|
+
'u_ToolDif': `DifLevel`,
|
|
2721
2732
|
|
|
2722
2733
|
'u_Main': `Main`,
|
|
2723
2734
|
'u_Replaced': `Replaced`,
|
|
@@ -2802,6 +2813,7 @@ const g_lang_lblNameObj = {
|
|
|
2802
2813
|
j_iknai: "(・A・)イクナイ",
|
|
2803
2814
|
|
|
2804
2815
|
j_adj: `推定Adj`,
|
|
2816
|
+
j_excessive: `Excessive`,
|
|
2805
2817
|
|
|
2806
2818
|
helpUrl: `https://github.com/cwtickle/danoniplus/wiki/AboutGameSystem`,
|
|
2807
2819
|
securityUrl: `https://github.com/cwtickle/danoniplus/security/policy`,
|
|
@@ -2834,6 +2846,7 @@ const g_lang_lblNameObj = {
|
|
|
2834
2846
|
j_iknai: ":( N.G.",
|
|
2835
2847
|
|
|
2836
2848
|
j_adj: `Est-Adj.`,
|
|
2849
|
+
j_excessive: `Excessive`,
|
|
2837
2850
|
|
|
2838
2851
|
helpUrl: `https://github.com/cwtickle/danoniplus-docs/wiki/AboutGameSystem`,
|
|
2839
2852
|
securityUrl: `https://github.com/cwtickle/danoniplus-docs/wiki/SecurityPolicy`,
|
|
@@ -2870,11 +2883,12 @@ const g_lang_msgObj = {
|
|
|
2870
2883
|
shuffle: `譜面を左右反転したり、ランダムにします。\nランダムにした場合は別譜面扱いとなり、ハイスコアは保存されません。`,
|
|
2871
2884
|
autoPlay: `オートプレイや一部キーを自動で打たせる設定を行います。\nオートプレイ時はハイスコアを保存しません。`,
|
|
2872
2885
|
gauge: `クリア条件を設定します。\n[Start] ゲージ初期値, [Border] クリア条件(ハイフン時は0),\n[Recovery] 回復量, [Damage] ダメージ量, [Accuracy] クリアに必要な正確率(オンマウスで許容ミス数表示)`,
|
|
2886
|
+
excessive: `空押し判定を行うか設定します。`,
|
|
2873
2887
|
adjustment: `曲とのタイミングにズレを感じる場合、\n数値を変えることでフレーム単位のズレを直すことができます。\n外側のボタンは5f刻み、真ん中は1f刻み、内側は0.5f刻みで調整できます。`,
|
|
2874
2888
|
fadein: `譜面を途中から再生します。\n途中から開始した場合はハイスコアを保存しません。`,
|
|
2875
2889
|
volume: `ゲーム内の音量を設定します。`,
|
|
2876
2890
|
|
|
2877
|
-
graph:
|
|
2891
|
+
graph: `譜面密度や速度変化状況、\n譜面の難易度などの情報を表示します。`,
|
|
2878
2892
|
dataSave: `ハイスコア、リバース設定、\nキーコンフィグの保存の有無を設定します。`,
|
|
2879
2893
|
toDisplay: `プレイ画面上のオブジェクトの\n表示・非表示(一部透明度)を設定します。`,
|
|
2880
2894
|
toSettings: `SETTINGS画面へ戻ります。`,
|
|
@@ -2926,11 +2940,12 @@ const g_lang_msgObj = {
|
|
|
2926
2940
|
shuffle: `Flip the chart left and right or make it random.\nIf you make it random, it will be treated as other charts and the high score will not be saved.`,
|
|
2927
2941
|
autoPlay: `Set to auto play and to hit some keys automatically.\nHigh score is not saved during auto play.`,
|
|
2928
2942
|
gauge: `Set the clear condition.\n[Start] initial value, [Border] borderline value (hyphen means zero),\n[Recovery] recovery amount, [Damage] damage amount,\n[Accuracy] accuracy required to clear (mouseover to see the number of allowed mistakes)`,
|
|
2943
|
+
excessive: `Set whether to use excessive miss judgment.`,
|
|
2929
2944
|
adjustment: `If you feel that the timing is out of sync with the music, \nyou can correct the shift in frame units by changing the value.\nThe outer button can be adjusted in 5 frame increments, the middle in 1 frame increments, \nand the inner button in 0.5 frame increments.`,
|
|
2930
2945
|
fadein: `Plays the chart from the middle.\nIf you start in the middle, the high score will not be saved.`,
|
|
2931
2946
|
volume: `Set the in-game volume.`,
|
|
2932
2947
|
|
|
2933
|
-
graph: `Displays detailed information about the chart, such as
|
|
2948
|
+
graph: `Displays detailed information about the chart, such as chart's density status, sequences' velocity changes, and chart's difficulty.`,
|
|
2934
2949
|
dataSave: `Set whether to save the high score, reverse setting, and key config.`,
|
|
2935
2950
|
toDisplay: `Set the display or non-display (partial transparency) of objects on the play screen.`,
|
|
2936
2951
|
toSettings: `Return to the SETTINGS screen.`,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
/**
|
|
3
3
|
* Dancing☆Onigiri 設定用jsファイル
|
|
4
|
-
* Template Update: 2023/
|
|
4
|
+
* Template Update: 2023/06/24 (v32.5.0)
|
|
5
5
|
*
|
|
6
6
|
* このファイルでは、作品全体に対しての初期設定を行うことができます。
|
|
7
7
|
* 譜面データ側で個別に同様の項目が設定されている場合は、譜面データ側の設定が優先されます。
|
|
@@ -113,6 +113,13 @@ g_presetObj.gaugeList = {
|
|
|
113
113
|
};
|
|
114
114
|
*/
|
|
115
115
|
|
|
116
|
+
/**
|
|
117
|
+
空押し判定を行うか
|
|
118
|
+
判定させる場合は `true` を指定
|
|
119
|
+
*/
|
|
120
|
+
g_presetObj.excessiveJdgUse = `false`;
|
|
121
|
+
|
|
122
|
+
|
|
116
123
|
/*
|
|
117
124
|
------------------------------------------------------------------------
|
|
118
125
|
フリーズアロー設定
|
|
@@ -136,7 +143,6 @@ g_presetObj.frzColors = true;
|
|
|
136
143
|
*/
|
|
137
144
|
g_presetObj.frzStartjdgUse = `false`;
|
|
138
145
|
|
|
139
|
-
|
|
140
146
|
/*
|
|
141
147
|
------------------------------------------------------------------------
|
|
142
148
|
デフォルトデザイン・画像設定
|
|
@@ -213,6 +219,7 @@ g_presetObj.settingUse = {
|
|
|
213
219
|
shuffle: `true`,
|
|
214
220
|
autoPlay: `true`,
|
|
215
221
|
gauge: `true`,
|
|
222
|
+
excessive: `true`,
|
|
216
223
|
appearance: `true`,
|
|
217
224
|
|
|
218
225
|
// stepZone: `true`,
|
package/package.json
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
スキンcssファイル (default)
|
|
6
6
|
|
|
7
7
|
Created : 2019/11/04
|
|
8
|
-
Revised : 2023/
|
|
8
|
+
Revised : 2023/06/24 (v32.5.0)
|
|
9
9
|
|
|
10
10
|
https://github.com/cwtickle/danoniplus
|
|
11
11
|
------------------------------------------ */
|
|
@@ -167,6 +167,10 @@
|
|
|
167
167
|
background-color: #ccccff;
|
|
168
168
|
}
|
|
169
169
|
|
|
170
|
+
.main_stepExcessive {
|
|
171
|
+
background-color: #ffff99;
|
|
172
|
+
}
|
|
173
|
+
|
|
170
174
|
.main_objStepShadow {
|
|
171
175
|
background-color: #000000;
|
|
172
176
|
}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
スキンcssファイル (light)
|
|
6
6
|
|
|
7
7
|
Created : 2019/11/04
|
|
8
|
-
Revised : 2023/
|
|
8
|
+
Revised : 2023/06/24 (v32.5.0)
|
|
9
9
|
|
|
10
10
|
https://github.com/cwtickle/danoniplus
|
|
11
11
|
------------------------------------------ */
|
|
@@ -167,6 +167,10 @@
|
|
|
167
167
|
background-color: #0000cc;
|
|
168
168
|
}
|
|
169
169
|
|
|
170
|
+
.main_stepExcessive {
|
|
171
|
+
background-color: #999900;
|
|
172
|
+
}
|
|
173
|
+
|
|
170
174
|
.main_objStepShadow {
|
|
171
175
|
background-color: #eeeeee;
|
|
172
176
|
}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
スキンcssファイル (skyblue)
|
|
6
6
|
|
|
7
7
|
Created : 2019/11/04
|
|
8
|
-
Revised : 2023/
|
|
8
|
+
Revised : 2023/06/24 (v32.5.0)
|
|
9
9
|
|
|
10
10
|
https://github.com/cwtickle/danoniplus
|
|
11
11
|
------------------------------------------ */
|
|
@@ -167,6 +167,10 @@
|
|
|
167
167
|
background-color: #0000cc;
|
|
168
168
|
}
|
|
169
169
|
|
|
170
|
+
.main_stepExcessive {
|
|
171
|
+
background-color: #999900;
|
|
172
|
+
}
|
|
173
|
+
|
|
170
174
|
.main_objStepShadow {
|
|
171
175
|
background-color: #eeeeee;
|
|
172
176
|
}
|