danoniplus 51.0.1 → 51.0.2

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 : 2026/09/23
7
+ * Revised : 2026/09/25
8
8
  *
9
9
  * https://github.com/cwtickle/danoniplus
10
10
  */
11
- const g_version = `Ver 51.0.1`;
12
- const g_revisedDate = `2026/09/23`;
11
+ const g_version = `Ver 51.0.2`;
12
+ const g_revisedDate = `2026/09/25`;
13
13
 
14
14
  // カスタム用バージョン (danoni_custom.js 等で指定可)
15
15
  let g_localVersion = ``;
@@ -5,7 +5,7 @@
5
5
  *
6
6
  * Source by tickle
7
7
  * Created : 2019/11/19
8
- * Revised : 2026/09/23 (v51.0.0)
8
+ * Revised : 2026/09/25 (v51.0.2)
9
9
  *
10
10
  * https://github.com/cwtickle/danoniplus
11
11
  */
@@ -1368,7 +1368,13 @@ const g_gaugeDefObj = {
1368
1368
  */
1369
1369
  const g_gaugeSelObj = {};
1370
1370
 
1371
- /** どの名前をどの順で選択肢に出すかだけを持つ。詳細値はg_gaugeDefObjやg_gaugeSelObjを参照 */
1371
+ /**
1372
+ * 譜面ヘッダー由来のゲージ設定をまとめて定義
1373
+ * - 定義方法はg_gaugeSelObjと類似しており、ゲージ名プロパティがない以外はほぼ同じ構造。
1374
+ */
1375
+ const g_gaugeHeaderObj = {};
1376
+
1377
+ /** どの名前をどの順で選択肢に出すかだけを持つ。詳細値はg_gaugeDefObj、g_gaugeHeaderObj, g_gaugeSelObjを参照 */
1372
1378
  const g_gaugeOptionObj = {
1373
1379
  survival: [`Original`, `Heavy`, `NoRecovery`, `SuddenDeath`, `Practice`, `Light`],
1374
1380
  border: [`Normal`, `Hard`, `SuddenDeath`, `Easy`],
@@ -1531,7 +1537,7 @@ const g_settings = {
1531
1537
  settingWindowNum: 0,
1532
1538
 
1533
1539
  preconditions: [`g_rootObj`, `g_headerObj`, `g_keyObj`, `g_scoreObj`, `g_workObj`,
1534
- `g_detailObj`, `g_stateObj`, `g_attrObj`, `g_gaugeDefObj`, `g_gaugeSelObj`, `g_editorTmp`, `g_editorTmp2`],
1540
+ `g_detailObj`, `g_stateObj`, `g_attrObj`, `g_gaugeDefObj`, `g_gaugeHeaderObj`, `g_gaugeSelObj`, `g_editorTmp`, `g_editorTmp2`],
1535
1541
  preconditionNum: 0,
1536
1542
  preconditionNumSub: 0,
1537
1543
  };
@@ -5328,6 +5334,7 @@ const g_root = {
5328
5334
  get g_judgObj() { return g_judgObj },
5329
5335
  get g_judgRanges() { return g_judgRanges },
5330
5336
  get g_gaugeDefObj() { return g_gaugeDefObj },
5337
+ get g_gaugeHeaderObj() { return g_gaugeHeaderObj },
5331
5338
  get g_gaugeSelObj() { return g_gaugeSelObj },
5332
5339
  };
5333
5340
  const getPathVal = _path => _path.split(`.`).reduce((o, k) => o?.[k], g_root);
@@ -5,7 +5,7 @@
5
5
  *
6
6
  * Source by tickle
7
7
  * Created : 2026/09/13
8
- * Revised : 2026/09/23 (v51.0.0)
8
+ * Revised : 2026/09/25 (v51.0.2)
9
9
  *
10
10
  * https://github.com/cwtickle/danoniplus
11
11
  */
@@ -1242,24 +1242,20 @@ const headerConvert = _dosObj => {
1242
1242
  obj.keyLabels = [];
1243
1243
  obj.difLabels = [];
1244
1244
  obj.initSpeeds = [];
1245
- obj.lifeBorders = [];
1246
- obj.lifeRecoverys = [];
1247
- obj.lifeDamages = [];
1248
- obj.lifeInits = [];
1249
1245
  obj.creatorNames = [];
1250
1246
  obj.difficulties = [];
1251
1247
  g_stateObj.scoreId = (g_stateObj.scoreId < difs.length ? g_stateObj.scoreId : 0);
1252
1248
 
1253
- difs.forEach(dif => {
1249
+ difs.forEach((dif, scoreId) => {
1254
1250
  const difDetails = dif.split(`,`);
1255
1251
  const lifeData = (_type) =>
1256
1252
  difDetails[difpos[_type]] || g_presetObj.gauge?.[_type] || g_gaugeDefObj.Original[_type];
1257
1253
 
1258
1254
  // ライフ:ノルマ、回復量、ダメージ量、初期値の設定
1259
- obj.lifeBorders.push(lifeData(`Border`));
1260
- obj.lifeRecoverys.push(lifeData(`Recovery`));
1261
- obj.lifeDamages.push(lifeData(`Damage`));
1262
- obj.lifeInits.push(lifeData(`Init`));
1255
+ g_gaugeHeaderObj[scoreId] = {
1256
+ Border: lifeData(`Border`), Recovery: lifeData(`Recovery`),
1257
+ Damage: lifeData(`Damage`), Init: lifeData(`Init`),
1258
+ };
1263
1259
 
1264
1260
  // キー数
1265
1261
  const keyLabel = difDetails[difpos.Key] || g_keyObj.initKeyLabel;
@@ -1285,10 +1281,7 @@ const headerConvert = _dosObj => {
1285
1281
  obj.keyLabels = [g_keyObj.initKeyLabel];
1286
1282
  obj.difLabels = [`Normal`];
1287
1283
  obj.initSpeeds = [3.5];
1288
- obj.lifeBorders = [`x`];
1289
- obj.lifeRecoverys = [6];
1290
- obj.lifeDamages = [40];
1291
- obj.lifeInits = [25];
1284
+ g_gaugeHeaderObj[0] = { ...g_gaugeDefObj.Original };
1292
1285
  obj.creatorNames = [obj.tuning];
1293
1286
  obj.difficulties = [0];
1294
1287
  }
@@ -2157,7 +2150,7 @@ const getGaugeSetting = (_dosObj, _name, _difLength, { scoreId = 0 } = {}) => {
2157
2150
 
2158
2151
  /**
2159
2152
  * 【参照用】g_gaugeOptionObjの旧プロパティを参照できるようにする関数
2160
- * (initXXX/rcvXXX/dmgXXX/clearXXX、typeXXX/varXXXも参考として)に展開する。
2153
+ * (initXXX/rcvXXX/dmgXXX/clearXXX/typeXXX/varXXX)
2161
2154
  * - カスタムスクリプト側で既存ゲージの既定値を参照するための補助関数。本体からの呼び出しはない。
2162
2155
  */
2163
2156
  const restoreLegacyGaugeReference = () => {
@@ -2175,6 +2168,22 @@ const restoreLegacyGaugeReference = () => {
2175
2168
  });
2176
2169
  };
2177
2170
 
2171
+ /**
2172
+ * 【参照用】g_headerObjの旧プロパティを参照可能にする関数
2173
+ * (lifeBorders/lifeRecoverys/lifeDamages/lifeInits)
2174
+ * - カスタムスクリプト側で既存ゲージの既定値を参照するための補助関数。本体からの呼び出しはない。
2175
+ */
2176
+ const restoreLegacyGaugeHeaderReference = () => {
2177
+ [`Border`, `Recovery`, `Damage`, `Init`].forEach(type => {
2178
+ const legacyType = `life${type}s`;
2179
+ g_headerObj[legacyType] = [];
2180
+
2181
+ for (let j = 0; j < g_headerObj.difLabels.length; j++) {
2182
+ g_headerObj[legacyType].push(g_gaugeHeaderObj[j][type]);
2183
+ }
2184
+ })
2185
+ };
2186
+
2178
2187
  /**
2179
2188
  * 【反映用】カスタムスクリプトが旧形式で作った個別ゲージ設定
2180
2189
  * - g_gaugeOptionObj[`gauge${_name}s`] = { lifeBorders, lifeRecoverys, lifeDamages, lifeInits }
@@ -5,7 +5,7 @@
5
5
  *
6
6
  * Source by tickle
7
7
  * Created : 2026/09/13
8
- * Revised : 2026/09/23 (v51.0.0)
8
+ * Revised : 2026/09/25 (v51.0.2)
9
9
  *
10
10
  * https://github.com/cwtickle/danoniplus
11
11
  */
@@ -1422,7 +1422,7 @@ const setDifficulty = (_chartChangeFlg) => {
1422
1422
  );
1423
1423
 
1424
1424
  // ゲージ設定及びカーソル位置調整
1425
- setGauge(0, !g_canLoadDifInfoFlg);
1425
+ setGauge(0, !g_initialFlg);
1426
1426
 
1427
1427
  // 速度、スクロール、アシスト設定のカーソル位置調整
1428
1428
  if (_chartChangeFlg) {
@@ -2204,7 +2204,7 @@ const setGauge = (() => {
2204
2204
  * @param {boolean} _gaugeInitFlg true時は前回選択していたゲージ名を引き継がず、配列の先頭を強制的に使う
2205
2205
  */
2206
2206
  const resolveGaugeType = (_scrollNum, _gaugeInitFlg) => {
2207
- applyLifeModeSwitch(g_headerObj.lifeBorders[g_stateObj.scoreId]);
2207
+ applyLifeModeSwitch(g_gaugeHeaderObj[g_stateObj.scoreId].Border);
2208
2208
  g_gaugeType = (currentGaugeSel?.__order?.length > 0 ? C_LFE_CUSTOM : g_stateObj.lifeMode);
2209
2209
 
2210
2210
  g_settings.gauges = structuredClone(g_gaugeType === C_LFE_CUSTOM
@@ -2244,10 +2244,12 @@ const setGauge = (() => {
2244
2244
  );
2245
2245
  if (getGaugeRoot(g_stateObj.gauge) !== firstOverridableRoot) return;
2246
2246
  }
2247
- g_stateObj.lifeInit = getGaugeCalc(g_headerObj.lifeInits[g_stateObj.scoreId], g_stateObj.lifeInit);
2248
- g_stateObj.lifeRcv = getGaugeCalc(g_headerObj.lifeRecoverys[g_stateObj.scoreId], g_stateObj.lifeRcv)
2247
+ const header = g_gaugeHeaderObj[g_stateObj.scoreId];
2248
+ applyLifeModeSwitch(header.Border);
2249
+ g_stateObj.lifeInit = getGaugeCalc(header.Init, g_stateObj.lifeInit);
2250
+ g_stateObj.lifeRcv = getGaugeCalc(header.Recovery, g_stateObj.lifeRcv)
2249
2251
  * (hasVal(def.deriveRecoveryFrom) ? 2 : 1);
2250
- g_stateObj.lifeDmg = getGaugeCalc(g_headerObj.lifeDamages[g_stateObj.scoreId], g_stateObj.lifeDmg);
2252
+ g_stateObj.lifeDmg = getGaugeCalc(header.Damage, g_stateObj.lifeDmg);
2251
2253
  };
2252
2254
 
2253
2255
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "danoniplus",
3
- "version": "51.0.1",
3
+ "version": "51.0.2",
4
4
  "description": "Dancing☆Onigiri (CW Edition) - Web-based Rhythm Game",
5
5
  "main": "./js/danoni_main.js",
6
6
  "jsdelivr": "./js/danoni_main.js",