danoniplus 42.4.0 → 42.5.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/js/danoni_main.js CHANGED
@@ -4,12 +4,12 @@
4
4
  *
5
5
  * Source by tickle
6
6
  * Created : 2018/10/08
7
- * Revised : 2025/08/21
7
+ * Revised : 2025/08/25
8
8
  *
9
9
  * https://github.com/cwtickle/danoniplus
10
10
  */
11
- const g_version = `Ver 42.4.0`;
12
- const g_revisedDate = `2025/08/21`;
11
+ const g_version = `Ver 42.5.1`;
12
+ const g_revisedDate = `2025/08/25`;
13
13
 
14
14
  // カスタム用バージョン (danoni_custom.js 等で指定可)
15
15
  let g_localVersion = ``;
@@ -3012,8 +3012,19 @@ const resetColorSetting = _scoreId => {
3012
3012
  // 初期矢印・フリーズアロー色の再定義
3013
3013
  if (g_stateObj.scoreLockFlg) {
3014
3014
  Object.assign(g_rootObj, copySetColor(g_rootObj, _scoreId));
3015
+
3016
+ // 分割先のファイルで初期色が未定義の場合はデフォルト値を適用
3017
+ [``, `Shadow`].forEach(pattern =>
3018
+ [`set`, `frz`].forEach(arrow => {
3019
+ // frzShadowColorStrのみ、空で構成された初期配列があるためその条件を追加して除外条件とする
3020
+ if (!hasVal(g_rootObj[`${arrow}${pattern}Color${_scoreId + 1}`])
3021
+ && g_headerObj[`${arrow}${pattern}ColorStr`]?.flat()?.some(val => hasVal(val))) {
3022
+ g_rootObj[`${arrow}${pattern}Color`] = g_headerObj[`${arrow}${pattern}ColorStr`].join(`,`);
3023
+ }
3024
+ })
3025
+ );
3015
3026
  }
3016
- Object.assign(g_headerObj, resetBaseColorList(g_headerObj, g_rootObj, { scoreId: _scoreId }));
3027
+ Object.assign(g_headerObj, resetBaseColorList(g_headerObj, g_rootObj, { scoreId: _scoreId, scoreLockFlg: false }));
3017
3028
  };
3018
3029
 
3019
3030
  /**
@@ -3034,12 +3045,14 @@ const resetGaugeSetting = _scoreId => {
3034
3045
  */
3035
3046
  const copySetColor = (_baseObj, _scoreId) => {
3036
3047
  const obj = {};
3048
+ // Todo: dosIdを引数にして、dosIdと一致するscoreIdを算出
3049
+ // 算出したscoreIdすべてに対して下記処理を実行
3037
3050
  const srcIdHeader = setScoreIdHeader(_scoreId, g_stateObj.scoreLockFlg, true);
3038
3051
  const targetIdHeader = setScoreIdHeader(_scoreId, false, true);
3039
3052
  [``, `Shadow`].forEach(pattern =>
3040
- [`set`, `frz`].filter(arrow => hasVal(_baseObj[`${arrow}${pattern}Color`]))
3053
+ [`set`, `frz`].filter(arrow => hasVal(_baseObj[`${arrow}${pattern}Color${srcIdHeader}`] || _baseObj[`${arrow}${pattern}Color`]))
3041
3054
  .forEach(arrow => obj[`${arrow}${pattern}Color${targetIdHeader}`] =
3042
- (_baseObj[`${arrow}${pattern}Color${srcIdHeader}`] ?? _baseObj[`${arrow}${pattern}Color`]).concat()));
3055
+ _baseObj[`${arrow}${pattern}Color${srcIdHeader}`] || _baseObj[`${arrow}${pattern}Color`]));
3043
3056
  return obj;
3044
3057
  };
3045
3058
 
@@ -4253,12 +4266,13 @@ const addGaugeFulls = _obj => _obj.map(key => g_gaugeOptionObj.customFulls[key]
4253
4266
  * @param {object} _baseObj
4254
4267
  * @param {object} _dosObj
4255
4268
  * @param {string} [object.scoreId='']
4269
+ * @param {boolean} [object.scoreLockFlg=g_stateObj.scoreLockFlg]
4256
4270
  * @returns {object} ※Object.assign(obj, resetBaseColorList(...))の形で呼び出しが必要
4257
4271
  */
4258
- const resetBaseColorList = (_baseObj, _dosObj, { scoreId = `` } = {}) => {
4272
+ const resetBaseColorList = (_baseObj, _dosObj, { scoreId = ``, scoreLockFlg = g_stateObj.scoreLockFlg } = {}) => {
4259
4273
 
4260
4274
  const obj = {};
4261
- const idHeader = setScoreIdHeader(scoreId, g_stateObj.scoreLockFlg, scoreId !== ``);
4275
+ const idHeader = setScoreIdHeader(scoreId, scoreLockFlg, scoreId !== ``);
4262
4276
  const getRefData = (_header, _dataName) => {
4263
4277
  const data = _dosObj[`${_header}${_dataName}`];
4264
4278
  return data?.startsWith(_header) ? _dosObj[data] : data;
@@ -11199,20 +11213,33 @@ const getArrowSettings = () => {
11199
11213
  g_workObj.dividePos[j] = baseLayer * 2 + ((posj <= divideCnt ? 0 : 1) + (scrollDirOptions[j] === 1 ? 0 : 1) + (g_stateObj.reverse === C_FLG_OFF ? 0 : 1)) % 2;
11200
11214
  g_workObj.scrollDir[j] = (posj <= divideCnt ? 1 : -1) * scrollDirOptions[j] * (g_stateObj.reverse === C_FLG_OFF ? 1 : -1);
11201
11215
 
11202
- eachOrAll.forEach(type => {
11203
- g_workObj[`arrowColors${type}`][j] = g_headerObj.setColor[colorj];
11204
- g_workObj[`dummyArrowColors${type}`][j] = g_headerObj.setDummyColor[colorj];
11205
- g_workObj[`arrowShadowColors${type}`][j] = g_headerObj.setShadowColor[colorj] || ``;
11206
- g_workObj[`dummyArrowShadowColors${type}`][j] = g_headerObj.setDummyColor[colorj] || ``;
11207
-
11208
- g_typeLists.frzColor.forEach((frzType, k) => {
11209
- g_workObj[`frz${frzType}Colors${type}`][j] = g_headerObj.frzColor[colorj][k] || ``;
11210
- g_workObj[`dummyFrz${frzType}Colors${type}`][j] =
11211
- frzType.includes(`Shadow`) ? `` : g_headerObj.setDummyColor[colorj] || ``;
11212
- });
11213
- g_workObj[`frzNormalShadowColors${type}`][j] = g_headerObj.frzShadowColor[colorj][0] || ``;
11214
- g_workObj[`frzHitShadowColors${type}`][j] = g_headerObj.frzShadowColor[colorj][1] || ``;
11216
+ // 個別色設定
11217
+ g_workObj.arrowColors[j] = g_headerObj.setColor[colorj];
11218
+ g_workObj.dummyArrowColors[j] = g_headerObj.setDummyColor[colorj];
11219
+ g_workObj.arrowShadowColors[j] = g_headerObj.setShadowColor[colorj] || ``;
11220
+ g_workObj.dummyArrowShadowColors[j] = g_headerObj.setDummyColor[colorj] || ``;
11221
+
11222
+ g_typeLists.frzColor.forEach((frzType, k) => {
11223
+ g_workObj[`frz${frzType}Colors`][j] = g_headerObj.frzColor[colorj][k] || ``;
11224
+ g_workObj[`dummyFrz${frzType}Colors`][j] =
11225
+ frzType.includes(`Shadow`) ? `` : g_headerObj.setDummyColor[colorj] || ``;
11215
11226
  });
11227
+ g_workObj.frzNormalShadowColors[j] = g_headerObj.frzShadowColor[colorj][0] || ``;
11228
+ g_workObj.frzHitShadowColors[j] = g_headerObj.frzShadowColor[colorj][1] || ``;
11229
+
11230
+ // 全体色設定
11231
+ g_workObj.arrowColorsAll[j] = ``;
11232
+ g_workObj.dummyArrowColorsAll[j] = ``;
11233
+ g_workObj.arrowShadowColorsAll[j] = ``;
11234
+ g_workObj.dummyArrowShadowColorsAll[j] = ``;
11235
+
11236
+ g_typeLists.frzColor.forEach((frzType, k) => {
11237
+ g_workObj[`frz${frzType}ColorsAll`][j] = ``;
11238
+ g_workObj[`dummyFrz${frzType}ColorsAll`][j] = ``;
11239
+ });
11240
+ g_workObj.frzNormalShadowColorsAll[j] = ``;
11241
+ g_workObj.frzHitShadowColorsAll[j] = ``;
11242
+
11216
11243
  }
11217
11244
  g_workObj.orgFlatFlg = g_workObj.dividePos.every(v => v % 2 === g_workObj.dividePos[0] % 2);
11218
11245
  g_stateObj.layerNumDf = Math.max(g_stateObj.layerNumDf, Math.ceil((Math.max(...g_workObj.dividePos) + 1) / 2) * 2);
@@ -5,7 +5,7 @@
5
5
  *
6
6
  * Source by tickle
7
7
  * Created : 2019/11/19
8
- * Revised : 2025/06/26 (v42.3.0)
8
+ * Revised : 2025/08/22 (v42.5.0)
9
9
  *
10
10
  * https://github.com/cwtickle/danoniplus
11
11
  */
@@ -3695,7 +3695,7 @@ const g_checkStr = {
3695
3695
 
3696
3696
  // 譜面分割あり、譜面番号固定時のみ譜面データを一時クリアする際の条件
3697
3697
  resetDosHeader: [`gauge`],
3698
- resetDosFooter: [`_data`, `_change`, `Color`, `customGauge`],
3698
+ resetDosFooter: [`_data`, `_change`, `Color`, `Color1`, `customGauge`],
3699
3699
  };
3700
3700
 
3701
3701
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "danoniplus",
3
- "version": "42.4.0",
3
+ "version": "42.5.1",
4
4
  "description": "Dancing☆Onigiri (CW Edition) - Web-based Rhythm Game",
5
5
  "main": "./js/danoni_main.js",
6
6
  "scripts": {