danoniplus 34.4.2 → 34.5.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.
@@ -4,7 +4,7 @@
4
4
  本体cssファイル
5
5
 
6
6
  Created : 2018/10/08
7
- Revised : 2023/08/20 (v33.2.0)
7
+ Revised : 2023/11/05 (v34.5.0)
8
8
 
9
9
  https://github.com/cwtickle/danoniplus
10
10
  ------------------------------------------ */
@@ -475,6 +475,15 @@ input[type="color"] {
475
475
  color: var(--settings-lifeVal-x, #ff9966);
476
476
  }
477
477
 
478
+ /* 設定画面:レーンごとの矢印数 */
479
+ .settings_maxArrowCnts {
480
+ color: var(--settings-maxArrowCnts-x, var(--common-uwan));
481
+ }
482
+
483
+ .settings_minArrowCnts {
484
+ color: var(--settings-maxArrowCnts-x, var(--common-ii));
485
+ }
486
+
478
487
  /* キーコンフィグ */
479
488
  .keyconfig_warning {
480
489
  color: var(--keyconfig-warning-x, #ffff99);
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 : 2023/11/03
7
+ * Revised : 2023/11/05
8
8
  *
9
9
  * https://github.com/cwtickle/danoniplus
10
10
  */
11
- const g_version = `Ver 34.4.2`;
12
- const g_revisedDate = `2023/11/03`;
11
+ const g_version = `Ver 34.5.0`;
12
+ const g_revisedDate = `2023/11/05`;
13
13
 
14
14
  // カスタム用バージョン (danoni_custom.js 等で指定可)
15
15
  let g_localVersion = ``;
@@ -431,13 +431,12 @@ const padArray = (_array, _baseArray) => {
431
431
  * @param {number} _num
432
432
  */
433
433
  const getMaxValIdxs = (_array, _num = 1) => {
434
- const getMaxVal = (_a, _b) => Math.max(_a, _b);
435
434
  let baseArray = _array.concat();
436
435
  const maxIdxs = [];
437
436
 
438
437
  for (let j = 0; j < _num; j++) {
439
438
  maxIdxs[j] = [];
440
- const maxVal = baseArray.reduce((a, b) => getMaxVal(a, b));
439
+ const maxVal = baseArray.reduce((a, b) => Math.max(a, b));
441
440
  _array.map((val, idx) => {
442
441
  if (val === maxVal) {
443
442
  maxIdxs[j].push(idx);
@@ -2588,7 +2587,7 @@ const calcLevel = _scoreObj => {
2588
2587
  // 3つ押し数
2589
2588
  push3cnt: push3Cnt,
2590
2589
  // 3つ押しリスト
2591
- push3: push3List,
2590
+ push3: makeDedupliArray(push3List),
2592
2591
  };
2593
2592
  };
2594
2593
 
@@ -3050,8 +3049,11 @@ const headerConvert = _dosObj => {
3050
3049
 
3051
3050
  // 初期表示する部分キーの設定
3052
3051
  obj.keyGroupOrder = [];
3053
- _dosObj.keyGroupOrder?.split(`$`).filter(val => val !== ``)
3054
- .forEach((val, j) => obj.keyGroupOrder[j] = val.split(`,`));
3052
+ _dosObj.keyGroupOrder?.split(`$`).forEach((val, j) => {
3053
+ if (val !== ``) {
3054
+ obj.keyGroupOrder[j] = val.split(`,`);
3055
+ }
3056
+ });
3055
3057
 
3056
3058
  // 最終演出表示有無(noneで無効化)
3057
3059
  obj.finishView = _dosObj.finishView ?? ``;
@@ -4886,7 +4888,7 @@ const makeDifInfo = _scoreId => {
4886
4888
 
4887
4889
  const arrowCnts = sumData(g_detailObj.arrowCnt[_scoreId]);
4888
4890
  const frzCnts = sumData(g_detailObj.frzCnt[_scoreId]);
4889
- const push3CntStr = (g_detailObj.toolDif[_scoreId].push3.length === 0 ? `None` : `(${g_detailObj.toolDif[_scoreId].push3})`);
4891
+ const push3CntStr = (g_detailObj.toolDif[_scoreId].push3.length === 0 ? `None` : `(${g_detailObj.toolDif[_scoreId].push3.join(', ')})`);
4890
4892
 
4891
4893
  if (document.getElementById(`lblTooldif`) === null) {
4892
4894
  makeDifInfoLabels(_scoreId);
@@ -4894,12 +4896,40 @@ const makeDifInfo = _scoreId => {
4894
4896
  dataTooldif.textContent = g_detailObj.toolDif[_scoreId].tool;
4895
4897
  dataDouji.textContent = g_detailObj.toolDif[_scoreId].douji;
4896
4898
  dataTate.textContent = g_detailObj.toolDif[_scoreId].tate;
4897
- lblArrowInfo2.innerHTML = g_lblNameObj.s_linecnts.split(`{0}`).join(g_detailObj.toolDif[_scoreId].push3cnt);
4899
+ lblArrowInfo2.innerHTML = g_lblNameObj.s_linecnts.split(`{0}`)
4900
+ .join(`${makeDedupliArray(g_detailObj.toolDif[_scoreId].push3).length} /cnt:${g_detailObj.toolDif[_scoreId].push3cnt}`);
4898
4901
  dataArrowInfo.innerHTML = `${arrowCnts + frzCnts * (g_headerObj.frzStartjdgUse ? 2 : 1)}
4899
4902
  <span style="font-size:${wUnit(g_limitObj.difSelectorSiz)};">(${arrowCnts} + ${frzCnts}${g_headerObj.frzStartjdgUse ? ' <span class="common_bold">x 2</span>' : ''})</span>`;
4900
- dataArrowInfo2.innerHTML = `<br>(${g_detailObj.arrowCnt[_scoreId]})<br><br>
4901
- (${g_detailObj.frzCnt[_scoreId]})<br><br>
4902
- ${push3CntStr}`.split(`,`).join(`/`);
4903
+
4904
+ const makeArrowCntsView = (_cntlist) => {
4905
+ const targetKey = g_headerObj.keyLabels[_scoreId];
4906
+ const cntlist = [
4907
+ _cntlist.filter((val, j) =>
4908
+ g_keyObj[`pos${targetKey}_0`][j] < g_keyObj[`div${targetKey}_0`]),
4909
+ _cntlist.filter((val, j) =>
4910
+ g_keyObj[`pos${targetKey}_0`][j] >= g_keyObj[`div${targetKey}_0`])
4911
+ ];
4912
+
4913
+ let cntlistStr = ``;
4914
+ cntlist.filter(array => array.length > 0).forEach(array => {
4915
+ const maxVal = array.reduce((a, b) => Math.max(a, b));
4916
+ const minVal = array.reduce((a, b) => Math.min(a, b));
4917
+
4918
+ cntlistStr += `[ `;
4919
+ array.forEach((val, j) => {
4920
+ if (maxVal !== minVal) {
4921
+ array[j] = (val === minVal ? `<span class="settings_minArrowCnts">${val}</span>` :
4922
+ (val === maxVal ? `<span class="settings_maxArrowCnts common_bold">${val}</span>` : val));
4923
+ }
4924
+ });
4925
+ cntlistStr += array.join(`, `) + ` ]`;
4926
+ });
4927
+
4928
+ return cntlistStr;
4929
+ }
4930
+
4931
+ dataArrowInfo2.innerHTML = `<br>${makeArrowCntsView(g_detailObj.arrowCnt[_scoreId])}<br><br>
4932
+ ${makeArrowCntsView(g_detailObj.frzCnt[_scoreId])}<br><br>${push3CntStr}`;
4903
4933
  };
4904
4934
 
4905
4935
  /**
@@ -5,7 +5,7 @@
5
5
  *
6
6
  * Source by tickle
7
7
  * Created : 2019/11/19
8
- * Revised : 2023/10/31 (v34.4.1)
8
+ * Revised : 2023/11/05 (v34.5.0)
9
9
  *
10
10
  * https://github.com/cwtickle/danoniplus
11
11
  */
@@ -176,9 +176,6 @@ const g_windowObj = {
176
176
  divRoot: { margin: `auto`, letterSpacing: `normal` },
177
177
  divBack: { background: `linear-gradient(#000000, #222222)` },
178
178
 
179
- scoreDetail: { x: 20, y: 85, w: 420, h: 236, visibility: `hidden` },
180
- detailObj: { w: 420, h: 230, visibility: `hidden` },
181
-
182
179
  colorPickSprite: { x: 0, y: 90, w: 50, h: 280 },
183
180
  };
184
181
 
@@ -191,6 +188,8 @@ const updateWindowSiz = _ => {
191
188
  difList: { x: 165, y: 60, w: 280, h: 261 + g_sHeight - 500, overflow: `auto` },
192
189
  difCover: { x: 25, y: 60, w: 140, h: 261 + g_sHeight - 500, overflow: `auto`, opacity: 0.95 },
193
190
  displaySprite: { x: 25, y: 30, w: (g_sWidth - 450) / 2, h: g_limitObj.setLblHeight * 5 },
191
+ scoreDetail: { x: 20, y: 85, w: (g_sWidth - 500) / 2 + 420, h: 236, visibility: `hidden` },
192
+ detailObj: { w: (g_sWidth - 500) / 2 + 420, h: 230, visibility: `hidden` },
194
193
  keyconSprite: { y: 88, h: g_sHeight, overflow: `auto` },
195
194
  loader: { y: g_sHeight - 10, h: 10, backgroundColor: `#333333` },
196
195
  playDataWindow: { x: g_sWidth / 2 - 225, y: 70, w: 450, h: 110 },
@@ -293,7 +292,7 @@ const updateWindowSiz = _ => {
293
292
  x: 130, y: 70, w: 200, h: 90,
294
293
  },
295
294
  dataArrowInfo2: {
296
- x: 140, y: 70, w: 275, h: 150, overflow: `auto`,
295
+ x: 140, y: 70, w: (g_sWidth - 500) / 2 + 275, h: 150, overflow: `auto`,
297
296
  },
298
297
  lnkDifInfo: {
299
298
  w: g_limitObj.difCoverWidth, borderStyle: `solid`,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "danoniplus",
3
- "version": "34.4.2",
3
+ "version": "34.5.0",
4
4
  "description": "Dancing☆Onigiri (CW Edition) - Web-based Rhythm Game",
5
5
  "main": "index.js",
6
6
  "scripts": {