danoniplus 45.5.4 → 45.5.6
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 +43 -24
- package/js/lib/danoni_constants.js +3 -3
- 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/20
|
|
8
8
|
*
|
|
9
9
|
* https://github.com/cwtickle/danoniplus
|
|
10
10
|
*/
|
|
11
|
-
const g_version = `Ver 45.5.
|
|
12
|
-
const g_revisedDate = `2026/03/
|
|
11
|
+
const g_version = `Ver 45.5.6`;
|
|
12
|
+
const g_revisedDate = `2026/03/20`;
|
|
13
13
|
|
|
14
14
|
// カスタム用バージョン (danoni_custom.js 等で指定可)
|
|
15
15
|
let g_localVersion = ``;
|
|
@@ -11863,6 +11863,46 @@ const getArrowSettings = () => {
|
|
|
11863
11863
|
g_workObj.orgFlatFlg = g_workObj.dividePos.every(v => v % 2 === g_workObj.dividePos[0] % 2);
|
|
11864
11864
|
g_stateObj.layerNumDf = Math.max(g_stateObj.layerNumDf, Math.ceil((Math.max(...g_workObj.dividePos) + 1) / 2) * 2);
|
|
11865
11865
|
|
|
11866
|
+
// Swapping設定に応じたステップゾーンの入れ替え
|
|
11867
|
+
if (g_stateObj.swapping.includes(`Mirror`)) {
|
|
11868
|
+
|
|
11869
|
+
let _style = structuredClone(Object.values(g_workObj.shuffleGroupMap));
|
|
11870
|
+
const _styleTrans = _style.flatMap(arr => {
|
|
11871
|
+
// g_workObj.devidePosの値ごとにグループ化する
|
|
11872
|
+
const groups = {};
|
|
11873
|
+
|
|
11874
|
+
arr.forEach(n => {
|
|
11875
|
+
const div = g_workObj.dividePos[n];
|
|
11876
|
+
if (!groups[div]) groups[div] = [];
|
|
11877
|
+
groups[div].push(n);
|
|
11878
|
+
});
|
|
11879
|
+
|
|
11880
|
+
// groups は {0:[...], 1:[...], 2:[...]} のような形になるので
|
|
11881
|
+
// これを配列に変換して返す
|
|
11882
|
+
return Object.values(groups);
|
|
11883
|
+
});
|
|
11884
|
+
const _styleTransDf = structuredClone(Object.values(_styleTrans));
|
|
11885
|
+
if (g_stateObj.swapping === `Mirror`) {
|
|
11886
|
+
_styleTrans.map(_group => _group.reverse());
|
|
11887
|
+
|
|
11888
|
+
} else if (g_stateObj.swapping === `X-Mirror`) {
|
|
11889
|
+
// X-Mirrorの場合、グループの内側だけ入れ替える
|
|
11890
|
+
_styleTrans.forEach((group, i) => {
|
|
11891
|
+
g_settings.swapPattern.forEach(val => {
|
|
11892
|
+
swapGroupNums(_styleTrans, group, i, val);
|
|
11893
|
+
});
|
|
11894
|
+
});
|
|
11895
|
+
}
|
|
11896
|
+
|
|
11897
|
+
// 入れ替えた結果に合わせてX座標位置を入れ替える
|
|
11898
|
+
g_workObj.stepX_df = structuredClone(g_workObj.stepX);
|
|
11899
|
+
_styleTrans.forEach((_group, _i) => {
|
|
11900
|
+
_group.forEach((_val, _j) => {
|
|
11901
|
+
g_workObj.stepX[_group[_j]] = g_workObj.stepX_df[_styleTransDf[_i][_j]];
|
|
11902
|
+
});
|
|
11903
|
+
});
|
|
11904
|
+
}
|
|
11905
|
+
|
|
11866
11906
|
// StepArea(Default, Halfway以外)によるレイヤー移動
|
|
11867
11907
|
// ずらした位置に表示するため、レイヤーを倍化して倍化した先に割り当てる
|
|
11868
11908
|
const assignLayer = _func => {
|
|
@@ -11946,27 +11986,6 @@ const getArrowSettings = () => {
|
|
|
11946
11986
|
g_workObj.backX = (g_workObj.nonDefaultSc && g_headerObj.playingLayout ? g_headerObj.scAreaWidth : 0);
|
|
11947
11987
|
g_workObj.playingX = g_headerObj.playingX + g_workObj.backX;
|
|
11948
11988
|
|
|
11949
|
-
// Swapping設定に応じたステップゾーンの入れ替え
|
|
11950
|
-
if (g_stateObj.swapping.includes(`Mirror`)) {
|
|
11951
|
-
|
|
11952
|
-
let _style = structuredClone(Object.values(g_workObj.shuffleGroupMap));
|
|
11953
|
-
if (g_stateObj.swapping === `Mirror`) {
|
|
11954
|
-
_style.map(_group => _group.reverse());
|
|
11955
|
-
|
|
11956
|
-
} else if (g_stateObj.swapping === `X-Mirror`) {
|
|
11957
|
-
// X-Mirrorの場合、グループの内側だけ入れ替える
|
|
11958
|
-
_style.forEach((group, i) => g_settings.swapPattern.forEach(val => swapGroupNums(_style, group, i, val)));
|
|
11959
|
-
}
|
|
11960
|
-
|
|
11961
|
-
// 入れ替えた結果に合わせてX座標位置を入れ替える
|
|
11962
|
-
g_workObj.stepX_df = structuredClone(g_workObj.stepX);
|
|
11963
|
-
_style.forEach((_group, _i) => {
|
|
11964
|
-
_group.forEach((_val, _j) => {
|
|
11965
|
-
g_workObj.stepX[_group[_j]] = g_workObj.stepX_df[g_workObj.shuffleGroupMap[_i][_j]];
|
|
11966
|
-
});
|
|
11967
|
-
});
|
|
11968
|
-
}
|
|
11969
|
-
|
|
11970
11989
|
// FrzReturnの初期化
|
|
11971
11990
|
g_workObj.frzReturnFlg = false;
|
|
11972
11991
|
g_workObj.frzReturnSeq = g_frzReturnSeqFunc.get(g_stateObj.frzReturnType)();
|
|
@@ -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 (v45.5.5)
|
|
9
9
|
*
|
|
10
10
|
* https://github.com/cwtickle/danoniplus
|
|
11
11
|
*/
|
|
@@ -4739,7 +4739,7 @@ const g_lang_msgObj = {
|
|
|
4739
4739
|
scroll: `各レーンのスクロール方向をパターンに沿って設定します。\nReverse:ONでスクロール方向を反転します。`,
|
|
4740
4740
|
shuffle: `譜面を左右反転したり、ランダムにします。\nランダムにした場合は別譜面扱いとなり、ハイスコアは保存されません。`,
|
|
4741
4741
|
autoPlay: `オートプレイや一部キーを自動で打たせる設定を行います。\nオートプレイ時はハイスコアを保存しません。`,
|
|
4742
|
-
gauge: `クリア条件を設定します。\n[Start] ゲージ初期値, [Border] クリア条件(ハイフン時は0),\n[Recovery] 回復量, [Damage] ダメージ量, [Accuracy]
|
|
4742
|
+
gauge: `クリア条件を設定します。\n[Start] ゲージ初期値, [Border] クリア条件(ハイフン時は0),\n[Recovery] 回復量, [Damage] ダメージ量, [Accuracy] クリアに必要な正確率、許容ミス数`,
|
|
4743
4743
|
excessive: `空押し判定を行うか設定します。`,
|
|
4744
4744
|
adjustment: `曲とのタイミングにズレを感じる場合、\n数値を変えることでフレーム単位のズレを直すことができます。\n外側のボタンは5f刻み、真ん中は1f刻み、内側は0.5f刻みで調整できます。`,
|
|
4745
4745
|
fadein: `譜面を途中から再生します。\n途中から開始した場合はハイスコアを保存しません。`,
|
|
@@ -4835,7 +4835,7 @@ const g_lang_msgObj = {
|
|
|
4835
4835
|
scroll: `Set the scroll direction for each lane according to the pattern.\nIf "Reverse:ON" sets, reverse the scroll direction.`,
|
|
4836
4836
|
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.`,
|
|
4837
4837
|
autoPlay: `Set to auto play and to hit some keys automatically.\nHigh score is not saved during auto play.`,
|
|
4838
|
-
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
|
|
4838
|
+
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`,
|
|
4839
4839
|
excessive: `Set whether to use excessive miss judgment.`,
|
|
4840
4840
|
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.`,
|
|
4841
4841
|
fadein: `Plays the chart from the middle.\nIf you start in the middle, the high score will not be saved.`,
|