danoniplus 46.0.1 → 46.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 +83 -27
- package/js/lib/danoni_constants.js +7 -6
- 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/03/
|
|
7
|
+
* Revised : 2026/03/19
|
|
8
8
|
*
|
|
9
9
|
* https://github.com/cwtickle/danoniplus
|
|
10
10
|
*/
|
|
11
|
-
const g_version = `Ver 46.0
|
|
12
|
-
const g_revisedDate = `2026/03/
|
|
11
|
+
const g_version = `Ver 46.2.0`;
|
|
12
|
+
const g_revisedDate = `2026/03/19`;
|
|
13
13
|
|
|
14
14
|
// カスタム用バージョン (danoni_custom.js 等で指定可)
|
|
15
15
|
let g_localVersion = ``;
|
|
@@ -4682,6 +4682,24 @@ const getKeyName = _key => unEscapeHtml(escapeHtml(g_keyObj[`keyName${_key}`]?.[
|
|
|
4682
4682
|
*/
|
|
4683
4683
|
const getKeyUnitName = _key => unEscapeHtml(escapeHtml(g_keyObj[`keyName${_key}`]?.[1] ?? `key`));
|
|
4684
4684
|
|
|
4685
|
+
/**
|
|
4686
|
+
* シャッフル名の取得
|
|
4687
|
+
* @returns {string}
|
|
4688
|
+
*/
|
|
4689
|
+
const getShuffleName = () => {
|
|
4690
|
+
const orgShuffleFlg = getOrgShuffleFlg();
|
|
4691
|
+
return `${getStgDetailName(g_stateObj.shuffle)}${!orgShuffleFlg && !g_stateObj.shuffle.endsWith(`+`) ? getStgDetailName('(S)') : ''}`;
|
|
4692
|
+
};
|
|
4693
|
+
|
|
4694
|
+
/**
|
|
4695
|
+
* シャッフルカスタムフラグの取得
|
|
4696
|
+
* @returns {boolean}
|
|
4697
|
+
*/
|
|
4698
|
+
const getOrgShuffleFlg = () => {
|
|
4699
|
+
const keyCtrlPtn = `${g_keyObj.currentKey}_${g_keyObj.currentPtn}`;
|
|
4700
|
+
return g_keyObj[`shuffle${keyCtrlPtn}`].filter((shuffleGr, j) => shuffleGr !== g_keyObj[`shuffle${keyCtrlPtn}_0d`][j]).length === 0;
|
|
4701
|
+
};
|
|
4702
|
+
|
|
4685
4703
|
/**
|
|
4686
4704
|
* 別キーモード時の表示名の取得
|
|
4687
4705
|
* @param {boolean} _spaceFlg
|
|
@@ -6553,10 +6571,8 @@ const visibleSettingSummary = _visible => {
|
|
|
6553
6571
|
|
|
6554
6572
|
const updateSettingSummary = () => {
|
|
6555
6573
|
if (document.getElementById(`settingSumSprite`) === null) return;
|
|
6556
|
-
const
|
|
6557
|
-
const
|
|
6558
|
-
const shuffleName = `${getStgDetailName(g_stateObj.shuffle)}${!orgShuffleFlg && !g_stateObj.shuffle.endsWith(`+`) ? getStgDetailName('(S)') : ''}`;
|
|
6559
|
-
const settingData = getSelectedSettingList(shuffleName);
|
|
6574
|
+
const orgShuffleFlg = getOrgShuffleFlg();
|
|
6575
|
+
const settingData = getSelectedSettingList(orgShuffleFlg);
|
|
6560
6576
|
const estimatedHighscoreCondition = g_stateObj.dataSaveFlg && (g_stateObj.autoPlay !== C_FLG_ALL && g_headerObj.playbackRate === 1 && g_stateObj.fadein < 10 &&
|
|
6561
6577
|
(g_stateObj.shuffle === C_FLG_OFF || (g_stateObj.shuffle.endsWith(`Mirror`) && orgShuffleFlg)));
|
|
6562
6578
|
|
|
@@ -8767,11 +8783,14 @@ const exSettingInit = () => {
|
|
|
8767
8783
|
* 拡張設定込みの標準設定
|
|
8768
8784
|
* @param {any[]} _spriteList
|
|
8769
8785
|
* @param {string} _name
|
|
8770
|
-
* @param {{ defaultList?: string[], displayName?: string }} [options={}]
|
|
8786
|
+
* @param {{ defaultList?: string[], displayName?: string, func?: function, funcEx?: function }} [options={}]
|
|
8771
8787
|
* @param {string[]} [options.defaultList=[C_FLG_OFF]] 拡張設定未使用の設定リスト
|
|
8772
8788
|
* @param {string} [options.displayName='exSetting']
|
|
8789
|
+
* @param {function} [options.func=()=>true] 通常ボタン用追加関数
|
|
8790
|
+
* @param {function} [options.funcEx=()=>true] 拡張ボタン用追加関数
|
|
8773
8791
|
*/
|
|
8774
|
-
const createGeneralSettingEx = (_spriteList, _name, { defaultList = [C_FLG_OFF], displayName = `exSetting
|
|
8792
|
+
const createGeneralSettingEx = (_spriteList, _name, { defaultList = [C_FLG_OFF], displayName = `exSetting`,
|
|
8793
|
+
func = () => true, funcEx = () => true } = {}) => {
|
|
8775
8794
|
if (_spriteList?.[_name] === undefined) return;
|
|
8776
8795
|
|
|
8777
8796
|
/**
|
|
@@ -8799,11 +8818,13 @@ const createGeneralSettingEx = (_spriteList, _name, { defaultList = [C_FLG_OFF],
|
|
|
8799
8818
|
createCss2Button(`lnk${toCapitalize(_name)}Type`, getStgDetailName(g_stateObj[`${_name}Type`]),
|
|
8800
8819
|
() => {
|
|
8801
8820
|
setSetting(1, `${_name}Type`, { maxSiz: g_limitObj.difSelectorSiz });
|
|
8821
|
+
funcEx();
|
|
8802
8822
|
createExpandedScView(_name);
|
|
8803
8823
|
},
|
|
8804
8824
|
Object.assign({
|
|
8805
8825
|
cxtFunc: () => {
|
|
8806
8826
|
setSetting(-1, `${_name}Type`, { maxSiz: g_limitObj.difSelectorSiz });
|
|
8827
|
+
funcEx();
|
|
8807
8828
|
createExpandedScView(_name);
|
|
8808
8829
|
},
|
|
8809
8830
|
title: g_msgObj[`${_name}Type`] ?? ``,
|
|
@@ -8830,6 +8851,7 @@ const createGeneralSettingEx = (_spriteList, _name, { defaultList = [C_FLG_OFF],
|
|
|
8830
8851
|
if (typeEnabled) {
|
|
8831
8852
|
setExpandedBtnSiz();
|
|
8832
8853
|
}
|
|
8854
|
+
func();
|
|
8833
8855
|
},
|
|
8834
8856
|
});
|
|
8835
8857
|
if (typeEnabled) {
|
|
@@ -10246,7 +10268,11 @@ const applyMirror = (_keyNum, _shuffleGroup, _swapFlg = false) => {
|
|
|
10246
10268
|
const mirStyle = structuredClone(style);
|
|
10247
10269
|
|
|
10248
10270
|
if (_swapFlg) {
|
|
10249
|
-
style.forEach((group, i) =>
|
|
10271
|
+
style.forEach((group, i) => {
|
|
10272
|
+
g_settings.swapPattern.forEach(val => {
|
|
10273
|
+
swapGroupNums(style, group, i, val);
|
|
10274
|
+
});
|
|
10275
|
+
});
|
|
10250
10276
|
let swapUseFlg = false;
|
|
10251
10277
|
style.forEach((_group, j) => {
|
|
10252
10278
|
_group.forEach((val, k) => {
|
|
@@ -11785,6 +11811,7 @@ const getArrowSettings = () => {
|
|
|
11785
11811
|
// 各種初期化
|
|
11786
11812
|
// g_workObj.frzArrowInitRtnはフリーズアロー(初期表示)としての利用に限定
|
|
11787
11813
|
g_workObj.stepX = [];
|
|
11814
|
+
g_workObj.stepX_df = [];
|
|
11788
11815
|
g_workObj.scrollDir = [];
|
|
11789
11816
|
g_workObj.scrollDirDefault = [];
|
|
11790
11817
|
g_workObj.dividePos = [];
|
|
@@ -11877,7 +11904,12 @@ const getArrowSettings = () => {
|
|
|
11877
11904
|
|
|
11878
11905
|
const posj = g_keyObj[`pos${keyCtrlPtn}`][j];
|
|
11879
11906
|
const colorj = g_keyObj[`color${keyCtrlPtn}`][j];
|
|
11880
|
-
|
|
11907
|
+
let stdPos = posj - ((posj > divideCnt ? posMax : 0) + divideCnt) / 2;
|
|
11908
|
+
|
|
11909
|
+
if (g_stateObj.swapping === `Mirror+`) {
|
|
11910
|
+
g_workObj.stepX_df[j] = g_keyObj.blank * stdPos + (g_headerObj.playingWidth - C_ARW_WIDTH) / 2;
|
|
11911
|
+
stdPos = -stdPos;
|
|
11912
|
+
}
|
|
11881
11913
|
|
|
11882
11914
|
g_workObj.stepX[j] = g_keyObj.blank * stdPos + (g_headerObj.playingWidth - C_ARW_WIDTH) / 2;
|
|
11883
11915
|
const baseLayer = g_keyObj[`layerGroup${keyCtrlPtn}`]?.[j] || 0;
|
|
@@ -11999,22 +12031,45 @@ const getArrowSettings = () => {
|
|
|
11999
12031
|
g_workObj.playingX = g_headerObj.playingX + g_workObj.backX;
|
|
12000
12032
|
|
|
12001
12033
|
// Swapping設定に応じたステップゾーンの入れ替え
|
|
12002
|
-
|
|
12034
|
+
// Mirror+のみ事前にオリジナルの位置を設定済みのためスキップする
|
|
12035
|
+
if (g_workObj.stepX_df.length === 0) {
|
|
12036
|
+
g_workObj.stepX_df = structuredClone(g_workObj.stepX);
|
|
12037
|
+
}
|
|
12038
|
+
if (g_stateObj.swapping.endsWith(`Mirror`)) {
|
|
12003
12039
|
|
|
12040
|
+
// Swappingにおけるグループ単位での入れ替えでは、上下でステップゾーンが分かれている場合は分離してシャッフルする
|
|
12004
12041
|
let _style = structuredClone(Object.values(g_workObj.shuffleGroupMap));
|
|
12042
|
+
const _styleTrans = _style.flatMap(arr => {
|
|
12043
|
+
const small = arr.filter(n => g_keyObj[`pos${keyCtrlPtn}`][n] < g_keyObj[`div${keyCtrlPtn}`]);
|
|
12044
|
+
const large = arr.filter(n => g_keyObj[`pos${keyCtrlPtn}`][n] >= g_keyObj[`div${keyCtrlPtn}`]);
|
|
12045
|
+
return [
|
|
12046
|
+
...(small.length ? [small] : []),
|
|
12047
|
+
...(large.length ? [large] : [])
|
|
12048
|
+
];
|
|
12049
|
+
});
|
|
12050
|
+
const _styleTransDf = structuredClone(Object.values(_styleTrans));
|
|
12051
|
+
|
|
12005
12052
|
if (g_stateObj.swapping === `Mirror`) {
|
|
12006
|
-
|
|
12053
|
+
_styleTrans.map(_group => _group.reverse());
|
|
12007
12054
|
|
|
12008
12055
|
} else if (g_stateObj.swapping === `X-Mirror`) {
|
|
12009
12056
|
// X-Mirrorの場合、グループの内側だけ入れ替える
|
|
12010
|
-
|
|
12057
|
+
_styleTrans.forEach((group, i) => {
|
|
12058
|
+
g_settings.swapPattern.forEach(val => {
|
|
12059
|
+
swapGroupNums(_styleTrans, group, i, val);
|
|
12060
|
+
});
|
|
12061
|
+
});
|
|
12062
|
+
}
|
|
12063
|
+
// オリジナルと同一の場合、設定をOFFに戻す
|
|
12064
|
+
if (JSON.stringify(_styleTransDf) === JSON.stringify(_styleTrans)) {
|
|
12065
|
+
g_stateObj.swapping = C_FLG_OFF;
|
|
12066
|
+
g_settings.swappingNum = 0;
|
|
12011
12067
|
}
|
|
12012
12068
|
|
|
12013
12069
|
// 入れ替えた結果に合わせてX座標位置を入れ替える
|
|
12014
|
-
|
|
12015
|
-
_style.forEach((_group, _i) => {
|
|
12070
|
+
_styleTrans.forEach((_group, _i) => {
|
|
12016
12071
|
_group.forEach((_val, _j) => {
|
|
12017
|
-
g_workObj.stepX[_group[_j]] = g_workObj.stepX_df[
|
|
12072
|
+
g_workObj.stepX[_group[_j]] = g_workObj.stepX_df[_styleTransDf[_i][_j]];
|
|
12018
12073
|
});
|
|
12019
12074
|
});
|
|
12020
12075
|
}
|
|
@@ -12427,7 +12482,7 @@ const mainInit = () => {
|
|
|
12427
12482
|
const musicTitle = (g_headerObj.musicTitles[g_headerObj.musicNos[g_stateObj.scoreId]] || g_headerObj.musicTitle) + playbackView;
|
|
12428
12483
|
const artistName = g_headerObj.artistNames[g_headerObj.musicNos[g_stateObj.scoreId]] || g_headerObj.artistName;
|
|
12429
12484
|
const assistFlg = (g_autoPlaysBase.includes(g_stateObj.autoPlay) ? `` : `-${getStgDetailName(g_stateObj.autoPlay)}${getStgDetailName('less')}`);
|
|
12430
|
-
const shuffleName = (g_stateObj.shuffle !== C_FLG_OFF ? `: ${
|
|
12485
|
+
const shuffleName = (g_stateObj.shuffle !== C_FLG_OFF ? `: ${getShuffleName()}` : ``);
|
|
12431
12486
|
|
|
12432
12487
|
// 曲名・アーティスト名、譜面名のサイズ調整
|
|
12433
12488
|
const checkMusicSiz = (_text, _siz) => getFontSize2(_text, g_headerObj.playingWidth - g_headerObj.customViewWidth - 125, { maxSiz: _siz });
|
|
@@ -13656,7 +13711,8 @@ const makeStepZone = (_j, _keyCtrlPtn) => {
|
|
|
13656
13711
|
// 本体
|
|
13657
13712
|
createColorObject2(`step${_j}`, {
|
|
13658
13713
|
rotate: g_workObj.stepRtn[_j], styleName: `Step`, display: g_workObj.stepZoneDisp,
|
|
13659
|
-
}, g_cssObj.
|
|
13714
|
+
}, g_cssObj[`main_step${g_workObj.stepX[_j] === g_workObj.stepX_df[_j] ? 'Default'
|
|
13715
|
+
: g_stateObj.swapping === 'Mirror+' ? 'Shobon' : 'Matari'}`]),
|
|
13660
13716
|
|
|
13661
13717
|
// 空押し
|
|
13662
13718
|
createColorObject2(`stepDiv${_j}`, {
|
|
@@ -14610,11 +14666,10 @@ const resultInit = () => {
|
|
|
14610
14666
|
mTitleForView[j] = g_headerObj.musicTitlesForView[g_headerObj.musicNos[g_stateObj.scoreId]][j] + (j === 1 ? playbackView : ``));
|
|
14611
14667
|
}
|
|
14612
14668
|
|
|
14613
|
-
const keyCtrlPtn = `${g_keyObj.currentKey}_${g_keyObj.currentPtn}`;
|
|
14614
14669
|
const transKeyName = getTransKeyName();
|
|
14615
|
-
const orgShuffleFlg =
|
|
14616
|
-
const shuffleName =
|
|
14617
|
-
const settingData = getSelectedSettingList(
|
|
14670
|
+
const orgShuffleFlg = getOrgShuffleFlg();
|
|
14671
|
+
const shuffleName = getShuffleName();
|
|
14672
|
+
const settingData = getSelectedSettingList(orgShuffleFlg);
|
|
14618
14673
|
|
|
14619
14674
|
const [lblRX, dataRX] = [20, 60];
|
|
14620
14675
|
multiAppend(playDataWindow,
|
|
@@ -15297,10 +15352,10 @@ const resultInit = () => {
|
|
|
15297
15352
|
|
|
15298
15353
|
/**
|
|
15299
15354
|
* 選択した設定の情報を取得
|
|
15300
|
-
* @param {
|
|
15355
|
+
* @param {boolean} _orgShuffleFlg
|
|
15301
15356
|
* @returns {object}
|
|
15302
15357
|
*/
|
|
15303
|
-
const getSelectedSettingList = (
|
|
15358
|
+
const getSelectedSettingList = (_orgShuffleFlg) => {
|
|
15304
15359
|
|
|
15305
15360
|
const transKeyName = getTransKeyName();
|
|
15306
15361
|
/**
|
|
@@ -15323,7 +15378,7 @@ const getSelectedSettingList = (_shuffleName) => {
|
|
|
15323
15378
|
`${getKeyName(g_headerObj.keyLabels[g_stateObj.scoreId])}${transKeyName} ${keyUnitName} / ${g_headerObj.difLabels[g_stateObj.scoreId]}`,
|
|
15324
15379
|
`${withOptions(g_autoPlaysBase.includes(g_stateObj.autoPlay), true, `-${getStgDetailName(g_stateObj.autoPlay)}${getStgDetailName('less')}`)}`,
|
|
15325
15380
|
`${withOptions(g_headerObj.makerView, false, `(${g_headerObj.creatorNames[g_stateObj.scoreId]})`)}`,
|
|
15326
|
-
`${withOptions(g_stateObj.shuffle, C_FLG_OFF, `[${
|
|
15381
|
+
`${withOptions(g_stateObj.shuffle, C_FLG_OFF, `[${getShuffleName()}]`)}`
|
|
15327
15382
|
];
|
|
15328
15383
|
let difData = difDatas.filter(value => value !== ``).join(` `);
|
|
15329
15384
|
const difDataForImage = difDatas.filter((value, j) => value !== `` && j !== 2).join(` `);
|
|
@@ -15349,7 +15404,8 @@ const getSelectedSettingList = (_shuffleName) => {
|
|
|
15349
15404
|
withOptions(g_stateObj.camoufrageType, C_FLG_HYPHEN,
|
|
15350
15405
|
`${g_stateObj.camoufrage !== C_FLG_OFF ? '' : 'Cmf:'}${getStgDetailName(g_stateObj.camoufrageType)}`)
|
|
15351
15406
|
].filter(value => value !== ``).join(`+`),
|
|
15352
|
-
withOptions(g_stateObj.swapping, C_FLG_OFF,
|
|
15407
|
+
withOptions(g_stateObj.swapping, C_FLG_OFF,
|
|
15408
|
+
`Swap:${getStgDetailName(g_stateObj.swapping)}${!_orgShuffleFlg && !g_stateObj.swapping.endsWith(`+`) ? getStgDetailName(`(S)`) : ``}`),
|
|
15353
15409
|
withOptions(g_stateObj.judgRange, `Normal`, `Judg:${getStgDetailName(g_stateObj.judgRange)}`),
|
|
15354
15410
|
].filter(value => value !== ``).join(`, `);
|
|
15355
15411
|
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Source by tickle
|
|
7
7
|
* Created : 2019/11/19
|
|
8
|
-
* Revised : 2026/03/
|
|
8
|
+
* Revised : 2026/03/15 (v46.1.0)
|
|
9
9
|
*
|
|
10
10
|
* https://github.com/cwtickle/danoniplus
|
|
11
11
|
*/
|
|
@@ -1367,7 +1367,7 @@ const g_settings = {
|
|
|
1367
1367
|
camoufrageTypes: [C_FLG_HYPHEN, `FrzArrow`],
|
|
1368
1368
|
camoufrageTypeNum: 0,
|
|
1369
1369
|
|
|
1370
|
-
swappings: [C_FLG_OFF, `Mirror`, `X-Mirror`],
|
|
1370
|
+
swappings: [C_FLG_OFF, `Mirror`, `X-Mirror`, `Mirror+`],
|
|
1371
1371
|
swappingNum: 0,
|
|
1372
1372
|
|
|
1373
1373
|
judgRanges: [`Normal`, `Narrow`, `Hard`, `ExHard`],
|
|
@@ -4461,6 +4461,7 @@ const g_lblNameObj = {
|
|
|
4461
4461
|
'u_Random+': `Random+`,
|
|
4462
4462
|
'u_S-Random': `S-Random`,
|
|
4463
4463
|
'u_S-Random+': `S-Random+`,
|
|
4464
|
+
'u_Mirror+': `Mirror+`,
|
|
4464
4465
|
'u_(S)': `(S)`,
|
|
4465
4466
|
|
|
4466
4467
|
'u_ALL': `ALL`,
|
|
@@ -4749,7 +4750,7 @@ const g_lang_msgObj = {
|
|
|
4749
4750
|
scroll: `各レーンのスクロール方向をパターンに沿って設定します。\nReverse:ONでスクロール方向を反転します。`,
|
|
4750
4751
|
shuffle: `譜面を左右反転したり、ランダムにします。\nランダムにした場合は別譜面扱いとなり、ハイスコアは保存されません。`,
|
|
4751
4752
|
autoPlay: `オートプレイや一部キーを自動で打たせる設定を行います。\nオートプレイ時はハイスコアを保存しません。`,
|
|
4752
|
-
gauge: `クリア条件を設定します。\n[Start] ゲージ初期値, [Border] クリア条件(ハイフン時は0),\n[Recovery] 回復量, [Damage] ダメージ量, [Accuracy]
|
|
4753
|
+
gauge: `クリア条件を設定します。\n[Start] ゲージ初期値, [Border] クリア条件(ハイフン時は0),\n[Recovery] 回復量, [Damage] ダメージ量, [Accuracy] クリアに必要な正確率、許容ミス数`,
|
|
4753
4754
|
excessive: `空押し判定を行うか設定します。`,
|
|
4754
4755
|
adjustment: `曲とのタイミングにズレを感じる場合、\n数値を変えることでフレーム単位のズレを直すことができます。\n外側のボタンは5f刻み、真ん中は1f刻み、内側は0.5f刻みで調整できます。`,
|
|
4755
4756
|
fadein: `譜面を途中から再生します。\n途中から開始した場合はハイスコアを保存しません。`,
|
|
@@ -4789,7 +4790,7 @@ const g_lang_msgObj = {
|
|
|
4789
4790
|
effect: `矢印・フリーズアローにエフェクトをかけます。\n[Dizzy/Spin] 矢印が回転します\n[Wave/Storm] 矢印の軌道が左右に揺れます\n[Blinking] 矢印が点滅します\n[Squids] 矢印が伸び縮みします`,
|
|
4790
4791
|
camoufrage: `ステップの見た目が配置は同じでランダムに変わります。`,
|
|
4791
4792
|
camoufrageType: `[FrzArrow] フリーズアローの帯部分を初期表示のみ非表示にし、矢印のみで表示します(ヒット/失敗時は帯を再表示)`,
|
|
4792
|
-
swapping:
|
|
4793
|
+
swapping: `ステップゾーンの位置を入れ替える設定です。\n[Mirror] ステップゾーンの位置をグループ単位で入れ替えます。\n[X-Mirror] ステップゾーンの中央部分のみグループ単位で入れ替えます。\n[Mirror+] ステップゾーンの位置をグループに関係なく全体的に反転します。`,
|
|
4793
4794
|
judgRange: `判定の許容範囲を設定します。\n[Normal] 通常、[Narrow/Hard] 辛判定、[ExHard] 激辛判定`,
|
|
4794
4795
|
autoRetry: `自動リトライの条件を設定します。\n[Miss] ミス時、[Matari] マターリ時、[Shakin] シャキン時、[FS] Fast/Slow発生時`,
|
|
4795
4796
|
|
|
@@ -4846,7 +4847,7 @@ const g_lang_msgObj = {
|
|
|
4846
4847
|
scroll: `Set the scroll direction for each lane according to the pattern.\nIf "Reverse:ON" sets, reverse the scroll direction.`,
|
|
4847
4848
|
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.`,
|
|
4848
4849
|
autoPlay: `Set to auto play and to hit some keys automatically.\nHigh score is not saved during auto play.`,
|
|
4849
|
-
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
|
|
4850
|
+
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 and the number of allowed mistakes`,
|
|
4850
4851
|
excessive: `Set whether to use excessive miss judgment.`,
|
|
4851
4852
|
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.`,
|
|
4852
4853
|
fadein: `Plays the chart from the middle.\nIf you start in the middle, the high score will not be saved.`,
|
|
@@ -4887,7 +4888,7 @@ const g_lang_msgObj = {
|
|
|
4887
4888
|
effect: `Applies effects to the arrows and freeze arrows.\n[Dizzy/Spin] Arrows rotate.\n[Wave/Storm] Swing from left to right.\n[Blinking] Arrows blink.\n[Squids] Arrows stretch and shrink.`,
|
|
4888
4889
|
camoufrage: `The appearance of the steps changes randomly with the same placement.`,
|
|
4889
4890
|
camoufrageType: `[FrzArrow] Initially hides freeze-arrow bars and displays only the arrow portion (bars reappear on hit/failure)`,
|
|
4890
|
-
swapping: `
|
|
4891
|
+
swapping: `This setting allows you to swap the positions of the step zones.\n[Mirror] Swaps the positions of step zones within each shuffle group. \n[X-Mirror] Swaps only the central portion of step zones within each shuffle group.\n[Mirror+] Flips the position of all step zones, regardless of shuffle groups. `,
|
|
4891
4892
|
judgRange: `Set the allowable range of judgment.\n[Normal] Normal judgment, [Narrow/Hard] Hard judgment, [ExHard] Very hard judgment`,
|
|
4892
4893
|
autoRetry: `Set the conditions for automatic retry.\n[Miss] When missed, [Matari] When good, [Shakin] When great, [FS] When Fast/Slow occurs`,
|
|
4893
4894
|
|