danoniplus 37.5.0 → 37.6.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.
Files changed (2) hide show
  1. package/js/danoni_main.js +27 -10
  2. 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 : 2024/09/04
7
+ * Revised : 2024/09/11
8
8
  *
9
9
  * https://github.com/cwtickle/danoniplus
10
10
  */
11
- const g_version = `Ver 37.5.0`;
12
- const g_revisedDate = `2024/09/04`;
11
+ const g_version = `Ver 37.6.0`;
12
+ const g_revisedDate = `2024/09/11`;
13
13
 
14
14
  // カスタム用バージョン (danoni_custom.js 等で指定可)
15
15
  let g_localVersion = ``;
@@ -3661,8 +3661,16 @@ const getGaugeSetting = (_dosObj, _name, _difLength, { scoreId = 0 } = {}) => {
3661
3661
  /**
3662
3662
  * キー名の取得
3663
3663
  * @param {string} _key
3664
+ * @returns {string} キー名
3664
3665
  */
3665
- const getKeyName = _key => hasVal(g_keyObj[`keyName${_key}`]) ? g_keyObj[`keyName${_key}`] : _key;
3666
+ const getKeyName = _key => unEscapeHtml(escapeHtml(g_keyObj[`keyName${_key}`]?.[0] ?? _key));
3667
+
3668
+ /**
3669
+ * キー単位名の取得
3670
+ * @param {string} _key
3671
+ * @returns {string} キー単位名(デフォルト: key)
3672
+ */
3673
+ const getKeyUnitName = _key => unEscapeHtml(escapeHtml(g_keyObj[`keyName${_key}`]?.[1] ?? `key`));
3666
3674
 
3667
3675
  /**
3668
3676
  * KeyBoardEvent.code の値をCW Edition用のキーコードに変換
@@ -3956,7 +3964,7 @@ const keysConvert = (_dosObj, { keyExtraList = _dosObj.keyExtraList?.split(`,`)
3956
3964
  const dfPtnNum = g_keyObj.dfPtnNum;
3957
3965
 
3958
3966
  // キーの名前 (keyNameX)
3959
- g_keyObj[`keyName${newKey}`] = _dosObj[`keyName${newKey}`] ?? newKey;
3967
+ g_keyObj[`keyName${newKey}`] = _dosObj[`keyName${newKey}`]?.split(`,`) ?? [newKey, `key`];
3960
3968
 
3961
3969
  // キーの最小横幅 (minWidthX)
3962
3970
  g_keyObj[`minWidth${newKey}`] = _dosObj[`minWidth${newKey}`] ?? g_keyObj[`minWidth${newKey}`] ?? g_keyObj.minWidthDefault;
@@ -4619,7 +4627,10 @@ const makeDifList = (_difList, _targetKey = ``) => {
4619
4627
  x: 0, y: 27, w: g_limitObj.difCoverWidth, h: 16, siz: 12, fontWeight: `bold`,
4620
4628
  }));
4621
4629
  }
4622
- lblDifCnt.innerHTML = `${_targetKey === '' ? 'ALL' : _targetKey + 'k'}: ${curk === -1 ? '-' : curk + 1} / ${k}`;
4630
+ // フィルタなし> ALL: 1/ 5, フィルタあり> 7k: 1/ 1 のように現在位置と(フィルタされた)譜面数を表示
4631
+ // 現在位置が不確定の場合は、7k: -/ 1 のように現在位置を「-」で表示
4632
+ const keyUnitAbbName = getStgDetailName(getKeyUnitName(_targetKey)).slice(0, 1) || ``;
4633
+ lblDifCnt.innerHTML = `${_targetKey === '' ? 'ALL' : getKeyName(_targetKey) + keyUnitAbbName}: ${curk === -1 ? '-' : curk + 1} / ${k}`;
4623
4634
  _difList.scrollTop = Math.max(pos * g_limitObj.setLblHeight - parseInt(_difList.style.height), 0);
4624
4635
  };
4625
4636
 
@@ -4676,7 +4687,7 @@ const createDifWindow = (_key = ``) => {
4676
4687
  let pos = 0;
4677
4688
  g_headerObj.viewKeyLists.forEach((targetKey, m) => {
4678
4689
  difFilter.appendChild(
4679
- makeDifLblCssButton(`keyFilter${m}`, `${getKeyName(targetKey)} ${getStgDetailName('key')}`, m, _ => {
4690
+ makeDifLblCssButton(`keyFilter${m}`, `${getKeyName(targetKey)} ${getStgDetailName(getKeyUnitName(targetKey))}`, m, _ => {
4680
4691
  resetDifWindow();
4681
4692
  g_stateObj.filterKeys = targetKey;
4682
4693
  createDifWindow(targetKey);
@@ -5295,7 +5306,8 @@ const setDifficulty = (_initFlg) => {
5295
5306
 
5296
5307
  // 譜面名設定 (Difficulty)
5297
5308
  const difWidth = parseFloat(lnkDifficulty.style.width);
5298
- const difNames = [`${getKeyName(g_keyObj.currentKey)} ${getStgDetailName('key')} / ${g_headerObj.difLabels[g_stateObj.scoreId]}`];
5309
+ const keyUnitName = getStgDetailName(getKeyUnitName(g_keyObj.currentKey));
5310
+ const difNames = [`${getKeyName(g_keyObj.currentKey)} ${keyUnitName} / ${g_headerObj.difLabels[g_stateObj.scoreId]}`];
5299
5311
  lnkDifficulty.style.fontSize = wUnit(getFontSize(difNames[0], difWidth, getBasicFont(), g_limitObj.setLblSiz));
5300
5312
 
5301
5313
  if (g_headerObj.makerView) {
@@ -11196,8 +11208,10 @@ const resultInit = _ => {
11196
11208
  const withOptions = (_flg, _defaultSet, _displayText = _flg) =>
11197
11209
  (_flg !== _defaultSet ? getStgDetailName(_displayText) : ``);
11198
11210
 
11211
+ // 譜面名の組み立て処理 (Ex: 9Akey / Normal-Leftless (maker) [X-Mirror])
11212
+ const keyUnitName = getStgDetailName(getKeyUnitName(g_keyObj.currentKey));
11199
11213
  const difDatas = [
11200
- `${getKeyName(g_headerObj.keyLabels[g_stateObj.scoreId])}${transKeyName} ${getStgDetailName('key')} / ${g_headerObj.difLabels[g_stateObj.scoreId]}`,
11214
+ `${getKeyName(g_headerObj.keyLabels[g_stateObj.scoreId])}${transKeyName} ${keyUnitName} / ${g_headerObj.difLabels[g_stateObj.scoreId]}`,
11201
11215
  `${withOptions(g_autoPlaysBase.includes(g_stateObj.autoPlay), true, `-${getStgDetailName(g_stateObj.autoPlay)}${getStgDetailName('less')}`)}`,
11202
11216
  `${withOptions(g_headerObj.makerView, false, `(${g_headerObj.creatorNames[g_stateObj.scoreId]})`)}`,
11203
11217
  `${withOptions(g_stateObj.shuffle, C_FLG_OFF, `[${shuffleName}]`)}`
@@ -11205,6 +11219,7 @@ const resultInit = _ => {
11205
11219
  let difData = difDatas.filter(value => value !== ``).join(` `);
11206
11220
  const difDataForImage = difDatas.filter((value, j) => value !== `` && j !== 2).join(` `);
11207
11221
 
11222
+ // 設定の組み立て処理 (Ex: 4x, Brake, Reverse, Sudden+, NoRecovery)
11208
11223
  let playStyleData = [
11209
11224
  `${g_stateObj.speed}${g_lblNameObj.multi}`,
11210
11225
  `${withOptions(g_stateObj.motion, C_FLG_OFF)}`,
@@ -11214,6 +11229,7 @@ const resultInit = _ => {
11214
11229
  `${withOptions(g_stateObj.gauge, g_settings.gauges[0])}`
11215
11230
  ].filter(value => value !== ``).join(`, `);
11216
11231
 
11232
+ // Display設定の組み立て処理 (Ex: Step : FlatBar, Judge, Life : OFF)
11217
11233
  let displayData = [
11218
11234
  withOptions(g_stateObj.d_stepzone, C_FLG_ON, g_lblNameObj.rd_StepZone +
11219
11235
  `${g_stateObj.d_stepzone === C_FLG_OFF ? `` : ` : ${g_stateObj.d_stepzone}`}`),
@@ -11451,7 +11467,8 @@ const resultInit = _ => {
11451
11467
  // X (Twitter)用リザルト
11452
11468
  // スコアを上塗りする可能性があるため、カスタムイベント後に配置
11453
11469
  const hashTag = (hasVal(g_headerObj.hashTag) ? ` ${g_headerObj.hashTag}` : ``);
11454
- let tweetDifData = `${getKeyName(g_headerObj.keyLabels[g_stateObj.scoreId])}${transKeyName}${getStgDetailName('k-')}${g_headerObj.difLabels[g_stateObj.scoreId]}${assistFlg}`;
11470
+ const keyUnitAbbName = keyUnitName.slice(0, 1) || ``;
11471
+ let tweetDifData = `${getKeyName(g_headerObj.keyLabels[g_stateObj.scoreId])}${transKeyName}${getStgDetailName(keyUnitAbbName + '-')}${g_headerObj.difLabels[g_stateObj.scoreId]}${assistFlg}`;
11455
11472
  if (g_stateObj.shuffle !== `OFF`) {
11456
11473
  tweetDifData += `:${shuffleName}`;
11457
11474
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "danoniplus",
3
- "version": "37.5.0",
3
+ "version": "37.6.0",
4
4
  "description": "Dancing☆Onigiri (CW Edition) - Web-based Rhythm Game",
5
5
  "main": "index.js",
6
6
  "scripts": {