danoniplus 46.2.0 → 46.2.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/README.md CHANGED
@@ -1,8 +1,9 @@
1
1
  # Dancing☆Onigiri (CW Edition)
2
2
 
3
3
  [![CodeQL](https://github.com/cwtickle/danoniplus/workflows/CodeQL/badge.svg)](https://github.com/cwtickle/danoniplus/actions?query=workflow%3ACodeQL)
4
- ![CodeRabbit Pull Request Reviews](https://img.shields.io/coderabbit/prs/github/cwtickle/danoniplus?utm_source=oss&utm_medium=github&utm_campaign=cwtickle%2Fdanoniplus&labelColor=171717&color=FF570A&link=https%3A%2F%2Fcoderabbit.ai&label=CodeRabbit+Reviews)
5
- [![Discord](https://img.shields.io/discord/698460971231870977?style=flat&logo=discord&logoColor=%23ffffff&label=Discord&labelColor=%236666ff&color=%23000066)](https://discord.gg/YVWUdUGyMy)
4
+ ![CodeRabbit Pull Request Reviews](https://img.shields.io/coderabbit/prs/github/cwtickle/danoniplus?utm_source=oss&utm_medium=github&utm_campaign=cwtickle%2Fdanoniplus&labelColor=171717&color=FF570A&link=https%3A%2F%2Fcoderabbit.ai&label=CodeRabbit+Reviews&logo=coderabbit)
5
+ [![Discord](https://img.shields.io/discord/698460971231870977?style=flat&logo=discord&logoColor=%23ffffff&label=Discord&labelColor=%236666ff&color=%23000066)](https://discord.gg/YVWUdUGyMy)
6
+ [![DeepWiki](https://img.shields.io/badge/DeepWiki-cwtickle%2Fdanoniplus-blue.svg?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAyCAYAAAAnWDnqAAAAAXNSR0IArs4c6QAAA05JREFUaEPtmUtyEzEQhtWTQyQLHNak2AB7ZnyXZMEjXMGeK/AIi+QuHrMnbChYY7MIh8g01fJoopFb0uhhEqqcbWTp06/uv1saEDv4O3n3dV60RfP947Mm9/SQc0ICFQgzfc4CYZoTPAswgSJCCUJUnAAoRHOAUOcATwbmVLWdGoH//PB8mnKqScAhsD0kYP3j/Yt5LPQe2KvcXmGvRHcDnpxfL2zOYJ1mFwrryWTz0advv1Ut4CJgf5uhDuDj5eUcAUoahrdY/56ebRWeraTjMt/00Sh3UDtjgHtQNHwcRGOC98BJEAEymycmYcWwOprTgcB6VZ5JK5TAJ+fXGLBm3FDAmn6oPPjR4rKCAoJCal2eAiQp2x0vxTPB3ALO2CRkwmDy5WohzBDwSEFKRwPbknEggCPB/imwrycgxX2NzoMCHhPkDwqYMr9tRcP5qNrMZHkVnOjRMWwLCcr8ohBVb1OMjxLwGCvjTikrsBOiA6fNyCrm8V1rP93iVPpwaE+gO0SsWmPiXB+jikdf6SizrT5qKasx5j8ABbHpFTx+vFXp9EnYQmLx02h1QTTrl6eDqxLnGjporxl3NL3agEvXdT0WmEost648sQOYAeJS9Q7bfUVoMGnjo4AZdUMQku50McDcMWcBPvr0SzbTAFDfvJqwLzgxwATnCgnp4wDl6Aa+Ax283gghmj+vj7feE2KBBRMW3FzOpLOADl0Isb5587h/U4gGvkt5v60Z1VLG8BhYjbzRwyQZemwAd6cCR5/XFWLYZRIMpX39AR0tjaGGiGzLVyhse5C9RKC6ai42ppWPKiBagOvaYk8lO7DajerabOZP46Lby5wKjw1HCRx7p9sVMOWGzb/vA1hwiWc6jm3MvQDTogQkiqIhJV0nBQBTU+3okKCFDy9WwferkHjtxib7t3xIUQtHxnIwtx4mpg26/HfwVNVDb4oI9RHmx5WGelRVlrtiw43zboCLaxv46AZeB3IlTkwouebTr1y2NjSpHz68WNFjHvupy3q8TFn3Hos2IAk4Ju5dCo8B3wP7VPr/FGaKiG+T+v+TQqIrOqMTL1VdWV1DdmcbO8KXBz6esmYWYKPwDL5b5FA1a0hwapHiom0r/cKaoqr+27/XcrS5UwSMbQAAAABJRU5ErkJggg==)](https://deepwiki.com/cwtickle/danoniplus)
6
7
  [![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/cwtickle/danoniplus?sort=semver)](https://github.com/cwtickle/danoniplus/security/policy)
7
8
  [![GitHub All Releases](https://img.shields.io/github/downloads/cwtickle/danoniplus/total?color=%23ff3399&label=downloads%20%28recently%29)](https://github.com/cwtickle/danoniplus/releases)
8
9
  [![GitHub](https://img.shields.io/github/license/cwtickle/danoniplus)](https://github.com/cwtickle/danoniplus/blob/develop/LICENSE)
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/19
7
+ * Revised : 2026/03/20
8
8
  *
9
9
  * https://github.com/cwtickle/danoniplus
10
10
  */
11
- const g_version = `Ver 46.2.0`;
12
- const g_revisedDate = `2026/03/19`;
11
+ const g_version = `Ver 46.2.1`;
12
+ const g_revisedDate = `2026/03/20`;
13
13
 
14
14
  // カスタム用バージョン (danoni_custom.js 等で指定可)
15
15
  let g_localVersion = ``;
@@ -11947,6 +11947,56 @@ const getArrowSettings = () => {
11947
11947
  g_workObj.orgFlatFlg = g_workObj.dividePos.every(v => v % 2 === g_workObj.dividePos[0] % 2);
11948
11948
  g_stateObj.layerNumDf = Math.max(g_stateObj.layerNumDf, Math.ceil((Math.max(...g_workObj.dividePos) + 1) / 2) * 2);
11949
11949
 
11950
+ // Swapping設定に応じたステップゾーンの入れ替え
11951
+ // Mirror+のみ事前にオリジナルの位置を設定済みのためスキップする
11952
+ if (g_workObj.stepX_df.length === 0) {
11953
+ g_workObj.stepX_df = structuredClone(g_workObj.stepX);
11954
+ }
11955
+ if (g_stateObj.swapping.endsWith(`Mirror`)) {
11956
+
11957
+ // Swappingにおけるグループ単位での入れ替えでは、上下でステップゾーンが分かれている場合は分離してシャッフルする
11958
+ let _style = structuredClone(Object.values(g_workObj.shuffleGroupMap));
11959
+ const _styleTrans = _style.flatMap(arr => {
11960
+ // g_workObj.devidePosの値ごとにグループ化する
11961
+ const groups = {};
11962
+
11963
+ arr.forEach(n => {
11964
+ const div = g_workObj.dividePos[n];
11965
+ if (!groups[div]) groups[div] = [];
11966
+ groups[div].push(n);
11967
+ });
11968
+
11969
+ // groups は {0:[...], 1:[...], 2:[...]} のような形になるので
11970
+ // これを配列に変換して返す
11971
+ return Object.values(groups);
11972
+ });
11973
+ const _styleTransDf = structuredClone(Object.values(_styleTrans));
11974
+
11975
+ if (g_stateObj.swapping === `Mirror`) {
11976
+ _styleTrans.map(_group => _group.reverse());
11977
+
11978
+ } else if (g_stateObj.swapping === `X-Mirror`) {
11979
+ // X-Mirrorの場合、グループの内側だけ入れ替える
11980
+ _styleTrans.forEach((group, i) => {
11981
+ g_settings.swapPattern.forEach(val => {
11982
+ swapGroupNums(_styleTrans, group, i, val);
11983
+ });
11984
+ });
11985
+ }
11986
+ // オリジナルと同一の場合、設定をOFFに戻す
11987
+ if (JSON.stringify(_styleTransDf) === JSON.stringify(_styleTrans)) {
11988
+ g_stateObj.swapping = C_FLG_OFF;
11989
+ g_settings.swappingNum = 0;
11990
+ }
11991
+
11992
+ // 入れ替えた結果に合わせてX座標位置を入れ替える
11993
+ _styleTrans.forEach((_group, _i) => {
11994
+ _group.forEach((_val, _j) => {
11995
+ g_workObj.stepX[_group[_j]] = g_workObj.stepX_df[_styleTransDf[_i][_j]];
11996
+ });
11997
+ });
11998
+ }
11999
+
11950
12000
  // StepArea(Default, Halfway以外)によるレイヤー移動
11951
12001
  // ずらした位置に表示するため、レイヤーを倍化して倍化した先に割り当てる
11952
12002
  const assignLayer = _func => {
@@ -12030,50 +12080,6 @@ const getArrowSettings = () => {
12030
12080
  g_workObj.backX = (g_workObj.nonDefaultSc && g_headerObj.playingLayout ? g_headerObj.scAreaWidth : 0);
12031
12081
  g_workObj.playingX = g_headerObj.playingX + g_workObj.backX;
12032
12082
 
12033
- // Swapping設定に応じたステップゾーンの入れ替え
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`)) {
12039
-
12040
- // Swappingにおけるグループ単位での入れ替えでは、上下でステップゾーンが分かれている場合は分離してシャッフルする
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
-
12052
- if (g_stateObj.swapping === `Mirror`) {
12053
- _styleTrans.map(_group => _group.reverse());
12054
-
12055
- } else if (g_stateObj.swapping === `X-Mirror`) {
12056
- // X-Mirrorの場合、グループの内側だけ入れ替える
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;
12067
- }
12068
-
12069
- // 入れ替えた結果に合わせてX座標位置を入れ替える
12070
- _styleTrans.forEach((_group, _i) => {
12071
- _group.forEach((_val, _j) => {
12072
- g_workObj.stepX[_group[_j]] = g_workObj.stepX_df[_styleTransDf[_i][_j]];
12073
- });
12074
- });
12075
- }
12076
-
12077
12083
  // FrzReturnの初期化
12078
12084
  g_workObj.frzReturnFlg = false;
12079
12085
  g_workObj.frzReturnSeq = g_frzReturnSeqFunc.get(g_stateObj.frzReturnType)();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "danoniplus",
3
- "version": "46.2.0",
3
+ "version": "46.2.1",
4
4
  "description": "Dancing☆Onigiri (CW Edition) - Web-based Rhythm Game",
5
5
  "main": "./js/danoni_main.js",
6
6
  "scripts": {