danoniplus 26.6.1 → 26.7.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 : 2022/03/06
7
+ * Revised : 2022/04/16
8
8
  *
9
9
  * https://github.com/cwtickle/danoniplus
10
10
  */
11
- const g_version = `Ver 26.6.1`;
12
- const g_revisedDate = `2022/03/06`;
11
+ const g_version = `Ver 26.7.2`;
12
+ const g_revisedDate = `2022/04/16`;
13
13
  const g_alphaVersion = ``;
14
14
 
15
15
  // カスタム用バージョン (danoni_custom.js 等で指定可)
@@ -41,11 +41,11 @@ let g_localVersion2 = ``;
41
41
  */
42
42
  const current = _ => {
43
43
  if (document.currentScript) {
44
- return document.currentScript.src;
44
+ return encodeURI(document.currentScript.src);
45
45
  }
46
46
  const scripts = document.getElementsByTagName(`script`);
47
47
  const targetScript = scripts[scripts.length - 1];
48
- return targetScript.src;
48
+ return encodeURI(targetScript.src);
49
49
  };
50
50
  const g_rootPath = current().match(/(^.*\/)/)[0];
51
51
  const g_remoteFlg = g_rootPath.match(`^https://cwtickle.github.io/danoniplus/`) !== null;
@@ -2003,7 +2003,8 @@ const loadChartFile = async (_scoreId = g_stateObj.scoreId) => {
2003
2003
 
2004
2004
  const dosInput = document.querySelector(`#dos`);
2005
2005
  const divRoot = document.querySelector(`#divRoot`);
2006
- const queryDos = getQueryParamVal(`dos`) !== null ? `dos/${getQueryParamVal('dos')}.txt` : (document.querySelector(`#externalDos`)?.value ?? ``);
2006
+ const queryDos = getQueryParamVal(`dos`) !== null ?
2007
+ `dos/${getQueryParamVal('dos')}.txt` : encodeURI(document.querySelector(`#externalDos`)?.value ?? ``);
2007
2008
 
2008
2009
  if (dosInput === null && queryDos === ``) {
2009
2010
  makeWarningWindow(g_msgInfoObj.E_0023);
@@ -3017,16 +3018,14 @@ const headerConvert = _dosObj => {
3017
3018
  * 曲名(1行)の取得
3018
3019
  * @param {string} _musicName
3019
3020
  */
3020
- const getMusicNameSimple = _musicName => {
3021
- return _musicName.split(`<br>`).join(` `).split(`<nbr>`).join(``).split(`<dbr>`).join(` `);
3022
- };
3021
+ const getMusicNameSimple = _musicName => replaceStr(_musicName, g_escapeStr.musicNameSimple);
3023
3022
 
3024
3023
  /**
3025
3024
  * 曲名(複数行)の取得
3026
3025
  * @param {string} _musicName
3027
3026
  */
3028
3027
  const getMusicNameMultiLine = _musicName => {
3029
- const tmpName = _musicName.split(`<nbr>`).join(`<br>`).split(`<dbr>`).join(`<br>`).split(`<br>`);
3028
+ const tmpName = replaceStr(_musicName, g_escapeStr.musicNameMultiLine).split(`<br>`);
3030
3029
  return tmpName.length === 1 ? [tmpName[0], ``] : tmpName;
3031
3030
  };
3032
3031
 
@@ -6722,17 +6721,7 @@ const scoreConvert = (_dosObj, _scoreId, _preblankFrame, _dummyNo = ``,
6722
6721
  }
6723
6722
 
6724
6723
  // 矢印名からフリーズアロー名への変換
6725
- let frzName = g_keyObj[`chara${_keyCtrlPtn}`][j].replace(`leftdia`, `frzLdia`);
6726
- frzName = frzName.replace(`rightdia`, `frzRdia`);
6727
- frzName = frzName.replace(`left`, `frzLeft`);
6728
- frzName = frzName.replace(`down`, `frzDown`);
6729
- frzName = frzName.replace(`up`, `frzUp`);
6730
- frzName = frzName.replace(`right`, `frzRight`);
6731
- frzName = frzName.replace(`space`, `frzSpace`);
6732
- frzName = frzName.replace(`iyo`, `frzIyo`);
6733
- frzName = frzName.replace(`gor`, `frzGor`);
6734
- frzName = frzName.replace(`oni`, `foni`);
6735
-
6724
+ let frzName = replaceStr(g_keyObj[`chara${_keyCtrlPtn}`][j], g_escapeStr.frzName);
6736
6725
  if (frzName.indexOf(`frz`) === -1 && frzName.indexOf(`foni`) === -1) {
6737
6726
  if ((frzName.startsWith(`s`)) || frzName.startsWith(`t`) ||
6738
6727
  (frzName.startsWith(`a`) && !frzName.startsWith(`arrow`))) {
@@ -8684,22 +8673,10 @@ const MainInit = _ => {
8684
8673
  * @param _j 矢印の位置
8685
8674
  */
8686
8675
  const checkKeyUpFunc = {
8687
-
8688
- frzOFF: (_j) => {
8689
- return g_workObj.keyHitFlg[_j].find(flg => flg);
8690
- },
8691
-
8692
- frzON: (_j) => {
8693
- return true;
8694
- },
8695
-
8696
- dummyFrzOFF: (_j) => {
8697
- return true;
8698
- },
8699
-
8700
- dummyFrzON: (_j) => {
8701
- return true;
8702
- },
8676
+ frzOFF: (_j) => g_workObj.keyHitFlg[_j].find(flg => flg),
8677
+ frzON: (_j) => true,
8678
+ dummyFrzOFF: (_j) => true,
8679
+ dummyFrzON: (_j) => true,
8703
8680
  };
8704
8681
 
8705
8682
  /**
@@ -9780,10 +9757,7 @@ const resultInit = _ => {
9780
9757
  }
9781
9758
 
9782
9759
  const keyCtrlPtn = `${g_keyObj.currentKey}_${g_keyObj.currentPtn}`;
9783
- let transKeyData = ``;
9784
- if (hasVal(g_keyObj[`transKey${keyCtrlPtn}`])) {
9785
- transKeyData = `(` + g_keyObj[`transKey${keyCtrlPtn}`] + `)`;
9786
- }
9760
+ const transKeyData = hasVal(g_keyObj[`transKey${keyCtrlPtn}`]) ? `(` + g_keyObj[`transKey${keyCtrlPtn}`] + `)` : ``;
9787
9761
 
9788
9762
  /**
9789
9763
  * プレイスタイルのカスタム有無
@@ -10027,18 +10001,19 @@ const resultInit = _ => {
10027
10001
  tweetMaxCombo += `-${g_resultObj.fmaxCombo}`;
10028
10002
  }
10029
10003
 
10030
- let tweetResultTmp = g_headerObj.resultFormat.split(`[hashTag]`).join(`${hashTag}`)
10031
- .split(`[musicTitle]`).join(`${musicTitle}`)
10032
- .split(`[keyLabel]`).join(`${tweetDifData}`)
10033
- .split(`[maker]`).join(`${g_headerObj.tuning}`)
10034
- .split(`[rank]`).join(`${rankMark}`)
10035
- .split(`[score]`).join(`${g_resultObj.score}`)
10036
- .split(`[playStyle]`).join(`${playStyleData}`)
10037
- .split(`[arrowJdg]`).join(`${g_resultObj.ii}-${g_resultObj.shakin}-${g_resultObj.matari}-${g_resultObj.shobon}-${g_resultObj.uwan}`)
10038
- .split(`[frzJdg]`).join(tweetFrzJdg)
10039
- .split(`[maxCombo]`).join(tweetMaxCombo)
10040
- .split(`[url]`).join(`${twiturl.toString()}`.replace(/[\t\n]/g, ``));
10041
-
10004
+ let tweetResultTmp = replaceStr(g_headerObj.resultFormat, [
10005
+ [`[hashTag]`, hashTag],
10006
+ [`[musicTitle]`, musicTitle],
10007
+ [`[keyLabel]`, tweetDifData],
10008
+ [`[maker]`, g_headerObj.tuning],
10009
+ [`[rank]`, rankMark],
10010
+ [`[score]`, g_resultObj.score],
10011
+ [`[playStyle]`, playStyleData],
10012
+ [`[arrowJdg]`, `${g_resultObj.ii}-${g_resultObj.shakin}-${g_resultObj.matari}-${g_resultObj.shobon}-${g_resultObj.uwan}`],
10013
+ [`[frzJdg]`, tweetFrzJdg],
10014
+ [`[maxCombo]`, tweetMaxCombo],
10015
+ [`[url]`, g_isLocal ? `` : `${twiturl.toString()}`.replace(/[\t\n]/g, ``)]
10016
+ ]);
10042
10017
  if (g_presetObj.resultVals !== undefined) {
10043
10018
  Object.keys(g_presetObj.resultVals).forEach(key => {
10044
10019
  tweetResultTmp = tweetResultTmp.split(`[${key}]`).join(g_resultObj[g_presetObj.resultVals[key]]);
@@ -5,7 +5,7 @@
5
5
  *
6
6
  * Source by tickle
7
7
  * Created : 2019/11/19
8
- * Revised : 2022/02/23 (v26.3.1)
8
+ * Revised : 2022/04/16 (v26.7.2)
9
9
  *
10
10
  * https://github.com/cwtickle/danoniplus
11
11
  */
@@ -2212,11 +2212,19 @@ const g_keyObj = {
2212
2212
  'Left': [1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0],
2213
2213
  'Right': [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1],
2214
2214
  },
2215
+ assistPos9A_4: {
2216
+ 'Left': [1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0],
2217
+ 'Right': [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1],
2218
+ },
2215
2219
 
2216
2220
  assistPos11i_0: {
2217
2221
  'Left': [1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0],
2218
2222
  'Right': [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1],
2219
2223
  },
2224
+ assistPos11i_1: {
2225
+ 'Left': [1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0],
2226
+ 'Right': [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1],
2227
+ },
2220
2228
 
2221
2229
  assistPos17_0: {
2222
2230
  'Left': [1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0],
@@ -2393,6 +2401,10 @@ const g_dfColorLightObj = {
2393
2401
  ],
2394
2402
  };
2395
2403
 
2404
+ /**
2405
+ * 特殊文字列の置き換えリスト
2406
+ * (置き換え元、置き換え先の組で二次元配列として定義。主にreplaceStr関数で使用)
2407
+ */
2396
2408
  const g_escapeStr = {
2397
2409
  escape: [[`&`, `&amp;`], [`<`, `&lt;`], [`>`, `&gt;`], [`"`, `&quot;`]],
2398
2410
  escapeTag: [
@@ -2407,6 +2419,17 @@ const g_escapeStr = {
2407
2419
  escapeCode: [
2408
2420
  [`<script>`, ``], [`</script>`, ``],
2409
2421
  ],
2422
+ musicNameSimple: [
2423
+ [`<br>`, ` `], [`<nbr>`, ``], [`<dbr>`, ` `],
2424
+ ],
2425
+ musicNameMultiLine: [
2426
+ [`<nbr>`, `<br>`], [`<dbr>`, `<br>`],
2427
+ ],
2428
+ frzName: [
2429
+ [`leftdia`, `frzLdia`], [`rightdia`, `frzRdia`],
2430
+ [`left`, `frzLeft`], [`down`, `frzDown`], [`up`, `frzUp`], [`right`, `frzRight`],
2431
+ [`space`, `frzSpace`], [`iyo`, `frzIyo`], [`gor`, `frzGor`], [`oni`, `foni`],
2432
+ ],
2410
2433
  };
2411
2434
 
2412
2435
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "danoniplus",
3
- "version": "26.6.1",
3
+ "version": "26.7.2",
4
4
  "description": "Dancing☆Onigiri (CW Edition) - Web-based Rhythm Game",
5
5
  "main": "index.js",
6
6
  "scripts": {