danoniplus 37.4.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.
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/08/14
7
+ * Revised : 2024/09/11
8
8
  *
9
9
  * https://github.com/cwtickle/danoniplus
10
10
  */
11
- const g_version = `Ver 37.4.0`;
12
- const g_revisedDate = `2024/08/14`;
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) {
@@ -5797,7 +5809,7 @@ const makeDisabledLabel = (_id, _heightPos, _defaultStr) =>
5797
5809
  * @param {string} _extraKeyName 特殊キー名(通常キーは省略)
5798
5810
  */
5799
5811
  const getKeyReverse = (_localStorage, _extraKeyName = ``) => {
5800
- if (_localStorage[`reverse${_extraKeyName}`] !== undefined) {
5812
+ if (_localStorage[`reverse${_extraKeyName}`] !== undefined && g_headerObj.reverseUse) {
5801
5813
  g_stateObj.reverse = _localStorage[`reverse${_extraKeyName}`] ?? C_FLG_OFF;
5802
5814
  g_settings.reverseNum = roundZero(g_settings.reverses.findIndex(reverse => reverse === g_stateObj.reverse));
5803
5815
  } else {
@@ -5814,7 +5826,7 @@ const setReverseDefault = _ => {
5814
5826
  };
5815
5827
 
5816
5828
  const setReverse = _btn => {
5817
- if (!g_settings.scrolls.includes(`Reverse`)) {
5829
+ if (!g_settings.scrolls.includes(`Reverse`) && g_headerObj.reverseUse) {
5818
5830
  g_settings.reverseNum = (g_settings.reverseNum + 1) % 2;
5819
5831
  g_stateObj.reverse = g_settings.reverses[g_settings.reverseNum];
5820
5832
  setReverseView(_btn);
@@ -5824,7 +5836,7 @@ const setReverse = _btn => {
5824
5836
  const setReverseView = _btn => {
5825
5837
  _btn.classList.replace(g_cssObj[`button_Rev${g_settings.reverses[(g_settings.reverseNum + 1) % 2]}`],
5826
5838
  g_cssObj[`button_Rev${g_settings.reverses[g_settings.reverseNum]}`]);
5827
- if (!g_settings.scrolls.includes(`Reverse`)) {
5839
+ if (!g_settings.scrolls.includes(`Reverse`) && g_headerObj.reverseUse) {
5828
5840
  _btn.textContent = `${g_lblNameObj.Reverse}:${getStgDetailName(g_stateObj.reverse)}`;
5829
5841
  } else {
5830
5842
  _btn.textContent = `X`;
@@ -9141,7 +9153,9 @@ const getArrowSettings = _ => {
9141
9153
  storageObj = g_localStorage;
9142
9154
  addKey = g_keyObj.currentKey;
9143
9155
  }
9144
- storageObj[`reverse${addKey}`] = g_stateObj.reverse;
9156
+ if (g_headerObj.reverseUse) {
9157
+ storageObj[`reverse${addKey}`] = g_stateObj.reverse;
9158
+ }
9145
9159
  storageObj[`keyCtrl${addKey}`] = setKeyCtrl(g_localKeyStorage, keyNum, keyCtrlPtn);
9146
9160
  if (g_keyObj.currentPtn !== -1) {
9147
9161
  storageObj[`keyCtrlPtn${addKey}`] = g_keyObj.currentPtn;
@@ -11194,8 +11208,10 @@ const resultInit = _ => {
11194
11208
  const withOptions = (_flg, _defaultSet, _displayText = _flg) =>
11195
11209
  (_flg !== _defaultSet ? getStgDetailName(_displayText) : ``);
11196
11210
 
11211
+ // 譜面名の組み立て処理 (Ex: 9Akey / Normal-Leftless (maker) [X-Mirror])
11212
+ const keyUnitName = getStgDetailName(getKeyUnitName(g_keyObj.currentKey));
11197
11213
  const difDatas = [
11198
- `${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]}`,
11199
11215
  `${withOptions(g_autoPlaysBase.includes(g_stateObj.autoPlay), true, `-${getStgDetailName(g_stateObj.autoPlay)}${getStgDetailName('less')}`)}`,
11200
11216
  `${withOptions(g_headerObj.makerView, false, `(${g_headerObj.creatorNames[g_stateObj.scoreId]})`)}`,
11201
11217
  `${withOptions(g_stateObj.shuffle, C_FLG_OFF, `[${shuffleName}]`)}`
@@ -11203,6 +11219,7 @@ const resultInit = _ => {
11203
11219
  let difData = difDatas.filter(value => value !== ``).join(` `);
11204
11220
  const difDataForImage = difDatas.filter((value, j) => value !== `` && j !== 2).join(` `);
11205
11221
 
11222
+ // 設定の組み立て処理 (Ex: 4x, Brake, Reverse, Sudden+, NoRecovery)
11206
11223
  let playStyleData = [
11207
11224
  `${g_stateObj.speed}${g_lblNameObj.multi}`,
11208
11225
  `${withOptions(g_stateObj.motion, C_FLG_OFF)}`,
@@ -11212,6 +11229,7 @@ const resultInit = _ => {
11212
11229
  `${withOptions(g_stateObj.gauge, g_settings.gauges[0])}`
11213
11230
  ].filter(value => value !== ``).join(`, `);
11214
11231
 
11232
+ // Display設定の組み立て処理 (Ex: Step : FlatBar, Judge, Life : OFF)
11215
11233
  let displayData = [
11216
11234
  withOptions(g_stateObj.d_stepzone, C_FLG_ON, g_lblNameObj.rd_StepZone +
11217
11235
  `${g_stateObj.d_stepzone === C_FLG_OFF ? `` : ` : ${g_stateObj.d_stepzone}`}`),
@@ -11449,7 +11467,8 @@ const resultInit = _ => {
11449
11467
  // X (Twitter)用リザルト
11450
11468
  // スコアを上塗りする可能性があるため、カスタムイベント後に配置
11451
11469
  const hashTag = (hasVal(g_headerObj.hashTag) ? ` ${g_headerObj.hashTag}` : ``);
11452
- 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}`;
11453
11472
  if (g_stateObj.shuffle !== `OFF`) {
11454
11473
  tweetDifData += `:${shuffleName}`;
11455
11474
  }
@@ -5,7 +5,7 @@
5
5
  *
6
6
  * Source by tickle
7
7
  * Created : 2019/11/19
8
- * Revised : 2024/08/14 (v37.4.0)
8
+ * Revised : 2024/09/04 (v37.5.0)
9
9
  *
10
10
  * https://github.com/cwtickle/danoniplus
11
11
  */
@@ -1084,7 +1084,7 @@ let g_storeSettings = [`adjustment`, `volume`, `appearance`, `opacity`, `hitPosi
1084
1084
  let g_storeSettingsEx = [`d_stepzone`, `d_judgment`, `d_fastslow`, `d_lifegauge`,
1085
1085
  `d_score`, `d_musicinfo`, `d_filterline`];
1086
1086
 
1087
- let g_canDisabledSettings = [`motion`, `scroll`, `shuffle`, `autoPlay`, `gauge`, `excessive`, `appearance`];
1087
+ let g_canDisabledSettings = [`motion`, `scroll`, `reverse`, `shuffle`, `autoPlay`, `gauge`, `excessive`, `appearance`];
1088
1088
 
1089
1089
  const g_hidSudFunc = {
1090
1090
  filterPos: _filterPos => `${_filterPos}${g_lblNameObj.percent}`,
@@ -1960,6 +1960,7 @@ const g_keyObj = {
1960
1960
  // ColorGroup - 2
1961
1961
  color9A_0_1: [0, 0, 3, 0, 2, 0, 0, 3, 0],
1962
1962
  color9B_0_1: [4, 3, 1, 0, 2, 0, 1, 3, 4],
1963
+ color13_0_1: [4, 4, 3, 4, 0, 0, 3, 0, 2, 0, 0, 3, 0],
1963
1964
  color17_0_1: [0, 1, 0, 1, 0, 1, 0, 1, 2, 3, 4, 3, 4, 3, 4, 3, 4],
1964
1965
 
1965
1966
  color9B_1_1: [0, 0, 1, 0, 2, 0, 0, 1, 0],
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
  /**
3
3
  * Dancing☆Onigiri 設定用jsファイル
4
- * Template Update: 2024/01/28 (v35.0.0)
4
+ * Template Update: 2024/09/04 (v37.5.0)
5
5
  *
6
6
  * このファイルでは、作品全体に対しての初期設定を行うことができます。
7
7
  * 譜面データ側で個別に同様の項目が設定されている場合は、譜面データ側の設定が優先されます。
@@ -226,6 +226,7 @@ g_presetObj.customDesignUse = {
226
226
  g_presetObj.settingUse = {
227
227
  motion: `true`,
228
228
  scroll: `true`,
229
+ // reverse: `true`,
229
230
  shuffle: `true`,
230
231
  autoPlay: `true`,
231
232
  gauge: `true`,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "danoniplus",
3
- "version": "37.4.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": {