danoniplus 31.4.1 → 31.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 +31 -20
- package/js/lib/danoni_constants.js +9 -7
- 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 : 2023/04/
|
|
7
|
+
* Revised : 2023/04/16
|
|
8
8
|
*
|
|
9
9
|
* https://github.com/cwtickle/danoniplus
|
|
10
10
|
*/
|
|
11
|
-
const g_version = `Ver 31.
|
|
12
|
-
const g_revisedDate = `2023/04/
|
|
11
|
+
const g_version = `Ver 31.5.0`;
|
|
12
|
+
const g_revisedDate = `2023/04/16`;
|
|
13
13
|
const g_alphaVersion = ``;
|
|
14
14
|
|
|
15
15
|
// カスタム用バージョン (danoni_custom.js 等で指定可)
|
|
@@ -2066,7 +2066,7 @@ const loadLocalStorage = _ => {
|
|
|
2066
2066
|
if (checkStorage) {
|
|
2067
2067
|
g_localStorage = JSON.parse(checkStorage);
|
|
2068
2068
|
|
|
2069
|
-
// Adjustment, Volume, Appearance, Opacity,
|
|
2069
|
+
// Adjustment, Volume, Appearance, Opacity, HitPosition初期値設定
|
|
2070
2070
|
checkLocalParam(`adjustment`, C_TYP_FLOAT, g_settings.adjustmentNum);
|
|
2071
2071
|
checkLocalParam(`volume`, C_TYP_NUMBER, g_settings.volumes.length - 1);
|
|
2072
2072
|
checkLocalParam(`appearance`);
|
|
@@ -3056,9 +3056,7 @@ const headerConvert = _dosObj => {
|
|
|
3056
3056
|
});
|
|
3057
3057
|
}
|
|
3058
3058
|
|
|
3059
|
-
// ローカルストレージに保存済みの
|
|
3060
|
-
g_storeSettings.filter(tmpSetting => hasVal(g_localStorage[tmpSetting])).forEach(setting =>
|
|
3061
|
-
g_stateObj[setting] = g_localStorage[setting]);
|
|
3059
|
+
// ローカルストレージに保存済みのColorType設定からDisplayのColor設定を反映
|
|
3062
3060
|
if (g_localStorage.colorType !== undefined) {
|
|
3063
3061
|
g_colorType = g_localStorage.colorType;
|
|
3064
3062
|
if (obj.colorUse) {
|
|
@@ -7029,6 +7027,20 @@ const applyMirror = (_keyNum, _shuffleGroup, _asymFlg = false) => {
|
|
|
7029
7027
|
applyShuffle(_keyNum, _shuffleGroup, style);
|
|
7030
7028
|
};
|
|
7031
7029
|
|
|
7030
|
+
/**
|
|
7031
|
+
* Turningの適用
|
|
7032
|
+
* @param {number} _keyNum
|
|
7033
|
+
* @param {array} _shuffleGroup
|
|
7034
|
+
*/
|
|
7035
|
+
const applyTurning = (_keyNum, _shuffleGroup) => {
|
|
7036
|
+
const mirrorOrNot = _array => Math.random() >= 0.5 ? _array.reverse() : _array;
|
|
7037
|
+
const style = structuredClone(_shuffleGroup).map(_group => {
|
|
7038
|
+
const startNum = Math.floor(Math.random() * (_group.length - 1)) + 1;
|
|
7039
|
+
return mirrorOrNot(makeDedupliArray(_group.slice(startNum), _group.slice(0, startNum)));
|
|
7040
|
+
});
|
|
7041
|
+
applyShuffle(_keyNum, _shuffleGroup, style);
|
|
7042
|
+
};
|
|
7043
|
+
|
|
7032
7044
|
/**
|
|
7033
7045
|
* Randomの適用
|
|
7034
7046
|
* @param {number} _keyNum
|
|
@@ -7039,9 +7051,7 @@ const applyRandom = (_keyNum, _shuffleGroup) => {
|
|
|
7039
7051
|
const style = structuredClone(_shuffleGroup).map(_group => {
|
|
7040
7052
|
for (let i = _group.length - 1; i > 0; i--) {
|
|
7041
7053
|
const random = Math.floor(Math.random() * (i + 1));
|
|
7042
|
-
|
|
7043
|
-
_group[i] = _group[random];
|
|
7044
|
-
_group[random] = tmp;
|
|
7054
|
+
[_group[i], _group[random]] = [_group[random], _group[i]];
|
|
7045
7055
|
}
|
|
7046
7056
|
return _group;
|
|
7047
7057
|
});
|
|
@@ -8394,20 +8404,21 @@ const getArrowSettings = _ => {
|
|
|
8394
8404
|
g_gameOverFlg = false;
|
|
8395
8405
|
g_finishFlg = true;
|
|
8396
8406
|
|
|
8407
|
+
if (g_stateObj.dataSaveFlg) {
|
|
8408
|
+
// ローカルストレージへAdjustment, HitPosition, Volume設定を保存
|
|
8409
|
+
g_storeSettings.forEach(setting => g_localStorage[setting] = g_stateObj[setting]);
|
|
8410
|
+
localStorage.setItem(g_localStorageUrl, JSON.stringify(g_localStorage));
|
|
8411
|
+
}
|
|
8412
|
+
|
|
8397
8413
|
// リバース、キーコンフィグなどをローカルストレージへ保存(Data Save: ON かつ別キーモードで無い場合)
|
|
8398
8414
|
if (g_stateObj.dataSaveFlg && !hasVal(g_keyObj[`transKey${keyCtrlPtn}`])) {
|
|
8399
8415
|
|
|
8400
8416
|
// 次回キーコンフィグ画面へ戻ったとき、保存済みキーコンフィグ設定が表示されるようにする
|
|
8401
8417
|
g_keyObj.prevKey = `Dummy`;
|
|
8402
8418
|
|
|
8403
|
-
// ローカルストレージへ
|
|
8404
|
-
g_localStorage.adjustment = g_stateObj.adjustment;
|
|
8405
|
-
g_localStorage.hitPosition = g_stateObj.hitPosition;
|
|
8406
|
-
g_localStorage.volume = g_stateObj.volume;
|
|
8419
|
+
// ローカルストレージへcolorType設定を保存
|
|
8407
8420
|
g_localStorage.colorType = g_colorType;
|
|
8408
8421
|
|
|
8409
|
-
g_storeSettings.forEach(setting => g_localStorage[setting] = g_stateObj[setting]);
|
|
8410
|
-
|
|
8411
8422
|
let storageObj = g_localKeyStorage;
|
|
8412
8423
|
let addKey = ``;
|
|
8413
8424
|
|
|
@@ -10542,7 +10553,9 @@ const resultInit = _ => {
|
|
|
10542
10553
|
|
|
10543
10554
|
// ハイスコア差分計算
|
|
10544
10555
|
const assistFlg = (g_autoPlaysBase.includes(g_stateObj.autoPlay) ? `` : `-${g_stateObj.autoPlay}less`);
|
|
10545
|
-
|
|
10556
|
+
const mirrorName = (g_stateObj.shuffle.indexOf(`Mirror`) !== -1 ? `-Mirror` : ``);
|
|
10557
|
+
const transKeyName = (hasVal(g_keyObj[`transKey${keyCtrlPtn}`]) ? `(${g_keyObj[`transKey${keyCtrlPtn}`]})` : ``);
|
|
10558
|
+
let scoreName = `${g_headerObj.keyLabels[g_stateObj.scoreId]}${transKeyName}${getStgDetailName('k-')}${g_headerObj.difLabels[g_stateObj.scoreId]}${assistFlg}${mirrorName}`;
|
|
10546
10559
|
if (g_headerObj.makerView) {
|
|
10547
10560
|
scoreName += `-${g_headerObj.creatorNames[g_stateObj.scoreId]}`;
|
|
10548
10561
|
}
|
|
@@ -10552,9 +10565,7 @@ const resultInit = _ => {
|
|
|
10552
10565
|
maxCombo: 0, fmaxCombo: 0, score: 0,
|
|
10553
10566
|
};
|
|
10554
10567
|
|
|
10555
|
-
const highscoreCondition = (g_stateObj.autoAll === C_FLG_OFF && g_stateObj.shuffle === C_FLG_OFF
|
|
10556
|
-
!hasVal(g_keyObj[`transKey${keyCtrlPtn}`]));
|
|
10557
|
-
|
|
10568
|
+
const highscoreCondition = (g_stateObj.autoAll === C_FLG_OFF && (g_stateObj.shuffle === C_FLG_OFF || mirrorName !== ``));
|
|
10558
10569
|
if (highscoreCondition) {
|
|
10559
10570
|
|
|
10560
10571
|
// ハイスコア差分描画
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Source by tickle
|
|
7
7
|
* Created : 2019/11/19
|
|
8
|
-
* Revised : 2023/04/
|
|
8
|
+
* Revised : 2023/04/16 (v31.5.0)
|
|
9
9
|
*
|
|
10
10
|
* https://github.com/cwtickle/danoniplus
|
|
11
11
|
*/
|
|
@@ -879,7 +879,7 @@ const g_settings = {
|
|
|
879
879
|
scrollNum: 0,
|
|
880
880
|
scrollFlat: [`Flat`, `R-Flat`],
|
|
881
881
|
|
|
882
|
-
shuffles: [C_FLG_OFF, `Mirror`, `Asym-Mirror`, `Random`, `Random+`, `S-Random`, `S-Random+`],
|
|
882
|
+
shuffles: [C_FLG_OFF, `Mirror`, `Asym-Mirror`, `Turning`, `Random`, `Random+`, `S-Random`, `S-Random+`],
|
|
883
883
|
shuffleNum: 0,
|
|
884
884
|
|
|
885
885
|
gauges: [],
|
|
@@ -931,6 +931,7 @@ const g_shuffleFunc = {
|
|
|
931
931
|
'OFF': _ => true,
|
|
932
932
|
'Mirror': (keyNum, shuffleGroup) => applyMirror(keyNum, shuffleGroup),
|
|
933
933
|
'Asym-Mirror': (keyNum, shuffleGroup) => applyMirror(keyNum, shuffleGroup, true),
|
|
934
|
+
'Turning': (keyNum, shuffleGroup) => applyTurning(keyNum, shuffleGroup),
|
|
934
935
|
'Random': (keyNum, shuffleGroup) => applyRandom(keyNum, shuffleGroup),
|
|
935
936
|
'Random+': keyNum => applyRandom(keyNum, [[...Array(keyNum).keys()]]),
|
|
936
937
|
'S-Random': (keyNum, shuffleGroup) => {
|
|
@@ -989,7 +990,7 @@ let g_displays = [`stepZone`, `judgment`, `fastSlow`, `lifeGauge`, `score`, `mus
|
|
|
989
990
|
`speed`, `color`, `lyrics`, `background`, `arrowEffect`, `special`];
|
|
990
991
|
|
|
991
992
|
// ローカルストレージ保存対象
|
|
992
|
-
let g_storeSettings = [`appearance`, `opacity`];
|
|
993
|
+
let g_storeSettings = [`adjustment`, `volume`, `appearance`, `opacity`, `hitPosition`];
|
|
993
994
|
|
|
994
995
|
// 廃棄対象のリスト(過去の登録対象をリスト化。ここに乗せるとローカルストレージから自動消去される)
|
|
995
996
|
let g_storeSettingsEx = [`d_stepzone`, `d_judgment`, `d_fastslow`, `d_lifegauge`,
|
|
@@ -2614,6 +2615,7 @@ const g_lblNameObj = {
|
|
|
2614
2615
|
|
|
2615
2616
|
'u_Mirror': `Mirror`,
|
|
2616
2617
|
'u_Asym-Mirror': `Asym-Mirror`,
|
|
2618
|
+
'u_Turning': `Turning`,
|
|
2617
2619
|
'u_Random': `Random`,
|
|
2618
2620
|
'u_Random+': `Random+`,
|
|
2619
2621
|
'u_S-Random': `S-Random`,
|
|
@@ -2708,7 +2710,7 @@ const g_lang_lblNameObj = {
|
|
|
2708
2710
|
kcNoShuffleDesc: `矢印をクリックでカラーグループを変更`,
|
|
2709
2711
|
sdDesc: `[クリックでON/OFFを切替、灰色でOFF]`,
|
|
2710
2712
|
kcShortcutDesc: `プレイ中ショートカット:「{0}」タイトルバック / 「{1}」リトライ`,
|
|
2711
|
-
transKeyDesc:
|
|
2713
|
+
transKeyDesc: `別キーモードではキーコンフィグ、ColorType等は保存されません`,
|
|
2712
2714
|
sdShortcutDesc: `Hid+/Sud+時ショートカット:「pageUp」カバーを上へ / 「pageDown」下へ`,
|
|
2713
2715
|
|
|
2714
2716
|
s_level: `Level`,
|
|
@@ -2740,7 +2742,7 @@ const g_lang_lblNameObj = {
|
|
|
2740
2742
|
kcNoShuffleDesc: `Click the arrow to change the color group.`,
|
|
2741
2743
|
sdDesc: `[Click to switch, gray to OFF]`,
|
|
2742
2744
|
kcShortcutDesc: `Shortcut during play: "{0}" Return to title / "{1}" Retry the game`,
|
|
2743
|
-
transKeyDesc: `
|
|
2745
|
+
transKeyDesc: `Key config, Color type, etc. are not saved in another key mode`,
|
|
2744
2746
|
sdShortcutDesc: `When "Hidden+" or "Sudden+" select, "pageUp" cover up / "pageDown" cover down`,
|
|
2745
2747
|
|
|
2746
2748
|
s_level: `Level`,
|
|
@@ -2829,7 +2831,7 @@ const g_lang_msgObj = {
|
|
|
2829
2831
|
colorType: `矢印・フリーズアローの配色セットをあらかじめ定義されたリストから選択できます。\nType1~4選択時は色変化が自動でOFFになり、カラーピッカーから好きな色に変更できます。\n[Type0] グラデーション切替, [Type1~4] デフォルトパターン`,
|
|
2830
2832
|
imgType: `矢印・フリーズアローなどのオブジェクトの見た目を変更します。`,
|
|
2831
2833
|
colorGroup: `矢印・フリーズアロー色グループの割り当てパターンを変更します。`,
|
|
2832
|
-
shuffleGroup: `Mirror/Asym-Mirror/Random/S-Random選択時、シャッフルするグループを変更します。\n矢印の上にある同じ数字同士でシャッフルします。`,
|
|
2834
|
+
shuffleGroup: `Mirror/Asym-Mirror/Turning/Random/S-Random選択時、シャッフルするグループを変更します。\n矢印の上にある同じ数字同士でシャッフルします。`,
|
|
2833
2835
|
stepRtnGroup: `矢印などノーツの種類、回転に関するパターンを切り替えます。\nあらかじめ設定されている場合のみ変更可能です。`,
|
|
2834
2836
|
|
|
2835
2837
|
pickArrow: `色番号ごとの矢印色(枠、塗りつぶし)、通常時のフリーズアロー色(枠、帯)を\nカラーピッカーから選んで変更できます。`,
|
|
@@ -2885,7 +2887,7 @@ const g_lang_msgObj = {
|
|
|
2885
2887
|
colorType: `Change the color scheme set for arrows and freeze-arrows from the predefined set.\nWhen Type1 to 4 is selected, color change is automatically turned off and can be changed to any color from the color picker.\n[Type0] Switch the sequences color gradations, [Type1~4] default color scheme`,
|
|
2886
2888
|
imgType: `Change the appearance of sequences.`,
|
|
2887
2889
|
colorGroup: `Change the sequences color group assignment pattern.`,
|
|
2888
|
-
shuffleGroup: `Change the shuffle group when Mirror, Asym-Mirror, Random or S-Random are selected.\nShuffle with the same numbers listed above.`,
|
|
2890
|
+
shuffleGroup: `Change the shuffle group when Mirror, Asym-Mirror, Turning, Random or S-Random are selected.\nShuffle with the same numbers listed above.`,
|
|
2889
2891
|
stepRtnGroup: `Switches the type of notes, such as arrows, and the pattern regarding rotation.\nThis can only be changed if it has been set in advance.`,
|
|
2890
2892
|
|
|
2891
2893
|
pickArrow: `Change the frame or fill of arrow color and the frame or bar of normal freeze-arrow color\nfor each color number from the color picker.`,
|