danoniplus 37.3.0 → 37.4.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/06/30
7
+ * Revised : 2024/08/14
8
8
  *
9
9
  * https://github.com/cwtickle/danoniplus
10
10
  */
11
- const g_version = `Ver 37.3.0`;
12
- const g_revisedDate = `2024/07/06`;
11
+ const g_version = `Ver 37.4.0`;
12
+ const g_revisedDate = `2024/08/14`;
13
13
 
14
14
  // カスタム用バージョン (danoni_custom.js 等で指定可)
15
15
  let g_localVersion = ``;
@@ -475,8 +475,8 @@ const fuzzyListMatching = (_str, _headerList, _footerList) =>
475
475
  * @param {array} _pairs
476
476
  */
477
477
  const replaceStr = (_str, _pairs) => {
478
- let tmpStr = _str;
479
- _pairs.forEach(pair => tmpStr = tmpStr?.replaceAll(pair[0], pair[1]));
478
+ let tmpStr = _str || ``;
479
+ _pairs.forEach(pair => tmpStr = tmpStr.split(pair[0]).join(pair[1]));
480
480
  return tmpStr;
481
481
  };
482
482
 
@@ -493,11 +493,17 @@ const escapeHtml = (_str, _escapeList = g_escapeStr.escape) => escapeHtmlForEnab
493
493
  */
494
494
  const escapeHtmlForEnabledTag = _str => replaceStr(_str, g_escapeStr.escapeTag);
495
495
 
496
+ /**
497
+ * HTML Entityから元の文字に戻す
498
+ * @param {string} _str
499
+ */
500
+ const unEscapeEmoji = _str => _str?.replace(/&#(.*?);/g, (_, p1) => String.fromCodePoint(`0${p1}`));
501
+
496
502
  /**
497
503
  * エスケープ文字を元の文字に戻す
498
504
  * @param {string} _str
499
505
  */
500
- const unEscapeHtml = _str => replaceStr(_str, g_escapeStr.unEscapeTag);
506
+ const unEscapeHtml = _str => unEscapeEmoji(replaceStr(_str, g_escapeStr.unEscapeTag));
501
507
 
502
508
  /**
503
509
  * 配列の中身を全てエスケープ処理
@@ -2406,7 +2412,7 @@ const storeBaseData = (_scoreId, _scoreObj, _keyCtrlPtn) => {
2406
2412
  g_detailObj.maxDensity[_scoreId] = getMaxValIdxs(densityData, g_limitObj.densityMaxVals).flat();
2407
2413
 
2408
2414
  g_detailObj.arrowCnt[_scoreId] = noteCnt.arrow.concat();
2409
- g_detailObj.frzCnt[_scoreId] = noteCnt.frz.concat();
2415
+ g_detailObj.frzCnt[_scoreId] = noteCnt.frz.map((val, k) => _scoreObj.frzData[k].length % 2 === 0 ? val : val - 0.5);
2410
2416
  g_detailObj.startFrame[_scoreId] = startFrame;
2411
2417
  g_detailObj.playingFrame[_scoreId] = playingFrame;
2412
2418
  g_detailObj.playingFrameWithBlank[_scoreId] = lastFrame - startFrame;
@@ -4977,7 +4983,7 @@ const makeDifInfoLabels = _scoreId => {
4977
4983
  const makeDifInfo = _scoreId => {
4978
4984
 
4979
4985
  const arrowCnts = sumData(g_detailObj.arrowCnt[_scoreId]);
4980
- const frzCnts = sumData(g_detailObj.frzCnt[_scoreId]);
4986
+ const frzCnts = sumData(g_detailObj.frzCnt[_scoreId].map(val => Math.floor(val)));
4981
4987
  const push3CntStr = (g_detailObj.toolDif[_scoreId].push3.length === 0 ? `None` : `(${g_detailObj.toolDif[_scoreId].push3.join(', ')})`);
4982
4988
 
4983
4989
  if (document.getElementById(`lblTooldif`) === null) {
@@ -5011,6 +5017,9 @@ const makeDifInfo = _scoreId => {
5011
5017
  array[j] = (val === minVal ? `<span class="settings_minArrowCnts">${val}</span>` :
5012
5018
  (val === maxVal ? `<span class="settings_maxArrowCnts common_bold">${val}</span>` : val));
5013
5019
  }
5020
+ if (val - Math.floor(val) > 0) {
5021
+ array[j] = `<span class="keyconfig_warning">${val}</span>`;
5022
+ }
5014
5023
  });
5015
5024
  cntlistStr += array.join(`, `) + ` ]`;
5016
5025
  });
@@ -7513,7 +7522,7 @@ const loadingScoreInit = async () => {
7513
7522
  g_allArrow = 0;
7514
7523
  g_allFrz = 0;
7515
7524
  g_scoreObj.arrowData.forEach(data => g_allArrow += data.length);
7516
- g_scoreObj.frzData.forEach(data => g_allFrz += data.length);
7525
+ g_scoreObj.frzData.forEach(data => g_allFrz += Math.floor(data.length / 2) * 2);
7517
7526
 
7518
7527
  // ライフ回復・ダメージ量の計算
7519
7528
  // フリーズ始点でも通常判定させる場合は総矢印数を水増しする
@@ -8496,6 +8505,9 @@ const pushArrows = (_dataObj, _speedOnFrame, _motionOnFrame, _firstArrivalFrame)
8496
8505
 
8497
8506
  const camelHeader = toCapitalize(_header);
8498
8507
  const setcnt = (_frzFlg ? 2 : 1);
8508
+ if (_frzFlg && _data.length % 2 !== 0) {
8509
+ _data.pop();
8510
+ }
8499
8511
 
8500
8512
  const startPoint = [];
8501
8513
  let spdNext = Infinity;
@@ -5,7 +5,7 @@
5
5
  *
6
6
  * Source by tickle
7
7
  * Created : 2019/11/19
8
- * Revised : 2024/06/29 (v37.2.0)
8
+ * Revised : 2024/08/14 (v37.4.0)
9
9
  *
10
10
  * https://github.com/cwtickle/danoniplus
11
11
  */
@@ -1958,12 +1958,15 @@ const g_keyObj = {
1958
1958
  color9B_2_0: [0, 0, 0, 0, 2, 1, 1, 1, 1],
1959
1959
 
1960
1960
  // ColorGroup - 2
1961
+ color9A_0_1: [0, 0, 3, 0, 2, 0, 0, 3, 0],
1961
1962
  color9B_0_1: [4, 3, 1, 0, 2, 0, 1, 3, 4],
1962
1963
  color17_0_1: [0, 1, 0, 1, 0, 1, 0, 1, 2, 3, 4, 3, 4, 3, 4, 3, 4],
1963
1964
 
1965
+ color9B_1_1: [0, 0, 1, 0, 2, 0, 0, 1, 0],
1964
1966
  color17_1_1: [1, 1, 1, 1, 2, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0],
1965
1967
 
1966
1968
  color9A_2_1: [4, 1, 3, 0, 2, 0, 3, 1, 4],
1969
+ color9B_2_1: [0, 0, 1, 0, 2, 0, 0, 1, 0],
1967
1970
 
1968
1971
  // ColorGroup - 3
1969
1972
  color17_0_2: [1, 4, 0, 3, 1, 4, 0, 3, 2, 3, 0, 4, 1, 3, 0, 4, 1],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "danoniplus",
3
- "version": "37.3.0",
3
+ "version": "37.4.0",
4
4
  "description": "Dancing☆Onigiri (CW Edition) - Web-based Rhythm Game",
5
5
  "main": "index.js",
6
6
  "scripts": {