danoniplus 31.4.1 → 31.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.
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/04/15
7
+ * Revised : 2023/04/16
8
8
  *
9
9
  * https://github.com/cwtickle/danoniplus
10
10
  */
11
- const g_version = `Ver 31.4.1`;
12
- const g_revisedDate = `2023/04/15`;
11
+ const g_version = `Ver 31.5.0`;
12
+ const g_revisedDate = `2023/04/16`;
13
13
  const g_alphaVersion = ``;
14
14
 
15
15
  // カスタム用バージョン (danoni_custom.js 等で指定可)
@@ -2066,7 +2066,7 @@ const loadLocalStorage = _ => {
2066
2066
  if (checkStorage) {
2067
2067
  g_localStorage = JSON.parse(checkStorage);
2068
2068
 
2069
- // Adjustment, Volume, Appearance, Opacity, hitPosition初期値設定
2069
+ // Adjustment, Volume, Appearance, Opacity, HitPosition初期値設定
2070
2070
  checkLocalParam(`adjustment`, C_TYP_FLOAT, g_settings.adjustmentNum);
2071
2071
  checkLocalParam(`volume`, C_TYP_NUMBER, g_settings.volumes.length - 1);
2072
2072
  checkLocalParam(`appearance`);
@@ -3056,9 +3056,7 @@ const headerConvert = _dosObj => {
3056
3056
  });
3057
3057
  }
3058
3058
 
3059
- // ローカルストレージに保存済みのAppearance, Opacity設定・ColorType設定を戻す
3060
- g_storeSettings.filter(tmpSetting => hasVal(g_localStorage[tmpSetting])).forEach(setting =>
3061
- g_stateObj[setting] = g_localStorage[setting]);
3059
+ // ローカルストレージに保存済みのColorType設定からDisplayのColor設定を反映
3062
3060
  if (g_localStorage.colorType !== undefined) {
3063
3061
  g_colorType = g_localStorage.colorType;
3064
3062
  if (obj.colorUse) {
@@ -7029,6 +7027,20 @@ const applyMirror = (_keyNum, _shuffleGroup, _asymFlg = false) => {
7029
7027
  applyShuffle(_keyNum, _shuffleGroup, style);
7030
7028
  };
7031
7029
 
7030
+ /**
7031
+ * Turningの適用
7032
+ * @param {number} _keyNum
7033
+ * @param {array} _shuffleGroup
7034
+ */
7035
+ const applyTurning = (_keyNum, _shuffleGroup) => {
7036
+ const mirrorOrNot = _array => Math.random() >= 0.5 ? _array.reverse() : _array;
7037
+ const style = structuredClone(_shuffleGroup).map(_group => {
7038
+ const startNum = Math.floor(Math.random() * (_group.length - 1)) + 1;
7039
+ return mirrorOrNot(makeDedupliArray(_group.slice(startNum), _group.slice(0, startNum)));
7040
+ });
7041
+ applyShuffle(_keyNum, _shuffleGroup, style);
7042
+ };
7043
+
7032
7044
  /**
7033
7045
  * Randomの適用
7034
7046
  * @param {number} _keyNum
@@ -7039,9 +7051,7 @@ const applyRandom = (_keyNum, _shuffleGroup) => {
7039
7051
  const style = structuredClone(_shuffleGroup).map(_group => {
7040
7052
  for (let i = _group.length - 1; i > 0; i--) {
7041
7053
  const random = Math.floor(Math.random() * (i + 1));
7042
- const tmp = _group[i];
7043
- _group[i] = _group[random];
7044
- _group[random] = tmp;
7054
+ [_group[i], _group[random]] = [_group[random], _group[i]];
7045
7055
  }
7046
7056
  return _group;
7047
7057
  });
@@ -8394,20 +8404,21 @@ const getArrowSettings = _ => {
8394
8404
  g_gameOverFlg = false;
8395
8405
  g_finishFlg = true;
8396
8406
 
8407
+ if (g_stateObj.dataSaveFlg) {
8408
+ // ローカルストレージへAdjustment, HitPosition, Volume設定を保存
8409
+ g_storeSettings.forEach(setting => g_localStorage[setting] = g_stateObj[setting]);
8410
+ localStorage.setItem(g_localStorageUrl, JSON.stringify(g_localStorage));
8411
+ }
8412
+
8397
8413
  // リバース、キーコンフィグなどをローカルストレージへ保存(Data Save: ON かつ別キーモードで無い場合)
8398
8414
  if (g_stateObj.dataSaveFlg && !hasVal(g_keyObj[`transKey${keyCtrlPtn}`])) {
8399
8415
 
8400
8416
  // 次回キーコンフィグ画面へ戻ったとき、保存済みキーコンフィグ設定が表示されるようにする
8401
8417
  g_keyObj.prevKey = `Dummy`;
8402
8418
 
8403
- // ローカルストレージへAdjustment, hitPosition, Volume, colorType設定を保存
8404
- g_localStorage.adjustment = g_stateObj.adjustment;
8405
- g_localStorage.hitPosition = g_stateObj.hitPosition;
8406
- g_localStorage.volume = g_stateObj.volume;
8419
+ // ローカルストレージへcolorType設定を保存
8407
8420
  g_localStorage.colorType = g_colorType;
8408
8421
 
8409
- g_storeSettings.forEach(setting => g_localStorage[setting] = g_stateObj[setting]);
8410
-
8411
8422
  let storageObj = g_localKeyStorage;
8412
8423
  let addKey = ``;
8413
8424
 
@@ -10542,7 +10553,9 @@ const resultInit = _ => {
10542
10553
 
10543
10554
  // ハイスコア差分計算
10544
10555
  const assistFlg = (g_autoPlaysBase.includes(g_stateObj.autoPlay) ? `` : `-${g_stateObj.autoPlay}less`);
10545
- let scoreName = `${g_headerObj.keyLabels[g_stateObj.scoreId]}${getStgDetailName('k-')}${g_headerObj.difLabels[g_stateObj.scoreId]}${assistFlg}`;
10556
+ const mirrorName = (g_stateObj.shuffle.indexOf(`Mirror`) !== -1 ? `-Mirror` : ``);
10557
+ const transKeyName = (hasVal(g_keyObj[`transKey${keyCtrlPtn}`]) ? `(${g_keyObj[`transKey${keyCtrlPtn}`]})` : ``);
10558
+ let scoreName = `${g_headerObj.keyLabels[g_stateObj.scoreId]}${transKeyName}${getStgDetailName('k-')}${g_headerObj.difLabels[g_stateObj.scoreId]}${assistFlg}${mirrorName}`;
10546
10559
  if (g_headerObj.makerView) {
10547
10560
  scoreName += `-${g_headerObj.creatorNames[g_stateObj.scoreId]}`;
10548
10561
  }
@@ -10552,9 +10565,7 @@ const resultInit = _ => {
10552
10565
  maxCombo: 0, fmaxCombo: 0, score: 0,
10553
10566
  };
10554
10567
 
10555
- const highscoreCondition = (g_stateObj.autoAll === C_FLG_OFF && g_stateObj.shuffle === C_FLG_OFF &&
10556
- !hasVal(g_keyObj[`transKey${keyCtrlPtn}`]));
10557
-
10568
+ const highscoreCondition = (g_stateObj.autoAll === C_FLG_OFF && (g_stateObj.shuffle === C_FLG_OFF || mirrorName !== ``));
10558
10569
  if (highscoreCondition) {
10559
10570
 
10560
10571
  // ハイスコア差分描画
@@ -5,7 +5,7 @@
5
5
  *
6
6
  * Source by tickle
7
7
  * Created : 2019/11/19
8
- * Revised : 2023/04/08 (v31.4.0)
8
+ * Revised : 2023/04/16 (v31.5.0)
9
9
  *
10
10
  * https://github.com/cwtickle/danoniplus
11
11
  */
@@ -879,7 +879,7 @@ const g_settings = {
879
879
  scrollNum: 0,
880
880
  scrollFlat: [`Flat`, `R-Flat`],
881
881
 
882
- shuffles: [C_FLG_OFF, `Mirror`, `Asym-Mirror`, `Random`, `Random+`, `S-Random`, `S-Random+`],
882
+ shuffles: [C_FLG_OFF, `Mirror`, `Asym-Mirror`, `Turning`, `Random`, `Random+`, `S-Random`, `S-Random+`],
883
883
  shuffleNum: 0,
884
884
 
885
885
  gauges: [],
@@ -931,6 +931,7 @@ const g_shuffleFunc = {
931
931
  'OFF': _ => true,
932
932
  'Mirror': (keyNum, shuffleGroup) => applyMirror(keyNum, shuffleGroup),
933
933
  'Asym-Mirror': (keyNum, shuffleGroup) => applyMirror(keyNum, shuffleGroup, true),
934
+ 'Turning': (keyNum, shuffleGroup) => applyTurning(keyNum, shuffleGroup),
934
935
  'Random': (keyNum, shuffleGroup) => applyRandom(keyNum, shuffleGroup),
935
936
  'Random+': keyNum => applyRandom(keyNum, [[...Array(keyNum).keys()]]),
936
937
  'S-Random': (keyNum, shuffleGroup) => {
@@ -989,7 +990,7 @@ let g_displays = [`stepZone`, `judgment`, `fastSlow`, `lifeGauge`, `score`, `mus
989
990
  `speed`, `color`, `lyrics`, `background`, `arrowEffect`, `special`];
990
991
 
991
992
  // ローカルストレージ保存対象
992
- let g_storeSettings = [`appearance`, `opacity`];
993
+ let g_storeSettings = [`adjustment`, `volume`, `appearance`, `opacity`, `hitPosition`];
993
994
 
994
995
  // 廃棄対象のリスト(過去の登録対象をリスト化。ここに乗せるとローカルストレージから自動消去される)
995
996
  let g_storeSettingsEx = [`d_stepzone`, `d_judgment`, `d_fastslow`, `d_lifegauge`,
@@ -2614,6 +2615,7 @@ const g_lblNameObj = {
2614
2615
 
2615
2616
  'u_Mirror': `Mirror`,
2616
2617
  'u_Asym-Mirror': `Asym-Mirror`,
2618
+ 'u_Turning': `Turning`,
2617
2619
  'u_Random': `Random`,
2618
2620
  'u_Random+': `Random+`,
2619
2621
  'u_S-Random': `S-Random`,
@@ -2708,7 +2710,7 @@ const g_lang_lblNameObj = {
2708
2710
  kcNoShuffleDesc: `矢印をクリックでカラーグループを変更`,
2709
2711
  sdDesc: `[クリックでON/OFFを切替、灰色でOFF]`,
2710
2712
  kcShortcutDesc: `プレイ中ショートカット:「{0}」タイトルバック / 「{1}」リトライ`,
2711
- transKeyDesc: `別キーモードではハイスコア、キーコンフィグ等は保存されません`,
2713
+ transKeyDesc: `別キーモードではキーコンフィグ、ColorType等は保存されません`,
2712
2714
  sdShortcutDesc: `Hid+/Sud+時ショートカット:「pageUp」カバーを上へ / 「pageDown」下へ`,
2713
2715
 
2714
2716
  s_level: `Level`,
@@ -2740,7 +2742,7 @@ const g_lang_lblNameObj = {
2740
2742
  kcNoShuffleDesc: `Click the arrow to change the color group.`,
2741
2743
  sdDesc: `[Click to switch, gray to OFF]`,
2742
2744
  kcShortcutDesc: `Shortcut during play: "{0}" Return to title / "{1}" Retry the game`,
2743
- transKeyDesc: `High score, key config, etc. are not saved in another key mode`,
2745
+ transKeyDesc: `Key config, Color type, etc. are not saved in another key mode`,
2744
2746
  sdShortcutDesc: `When "Hidden+" or "Sudden+" select, "pageUp" cover up / "pageDown" cover down`,
2745
2747
 
2746
2748
  s_level: `Level`,
@@ -2829,7 +2831,7 @@ const g_lang_msgObj = {
2829
2831
  colorType: `矢印・フリーズアローの配色セットをあらかじめ定義されたリストから選択できます。\nType1~4選択時は色変化が自動でOFFになり、カラーピッカーから好きな色に変更できます。\n[Type0] グラデーション切替, [Type1~4] デフォルトパターン`,
2830
2832
  imgType: `矢印・フリーズアローなどのオブジェクトの見た目を変更します。`,
2831
2833
  colorGroup: `矢印・フリーズアロー色グループの割り当てパターンを変更します。`,
2832
- shuffleGroup: `Mirror/Asym-Mirror/Random/S-Random選択時、シャッフルするグループを変更します。\n矢印の上にある同じ数字同士でシャッフルします。`,
2834
+ shuffleGroup: `Mirror/Asym-Mirror/Turning/Random/S-Random選択時、シャッフルするグループを変更します。\n矢印の上にある同じ数字同士でシャッフルします。`,
2833
2835
  stepRtnGroup: `矢印などノーツの種類、回転に関するパターンを切り替えます。\nあらかじめ設定されている場合のみ変更可能です。`,
2834
2836
 
2835
2837
  pickArrow: `色番号ごとの矢印色(枠、塗りつぶし)、通常時のフリーズアロー色(枠、帯)を\nカラーピッカーから選んで変更できます。`,
@@ -2885,7 +2887,7 @@ const g_lang_msgObj = {
2885
2887
  colorType: `Change the color scheme set for arrows and freeze-arrows from the predefined set.\nWhen Type1 to 4 is selected, color change is automatically turned off and can be changed to any color from the color picker.\n[Type0] Switch the sequences color gradations, [Type1~4] default color scheme`,
2886
2888
  imgType: `Change the appearance of sequences.`,
2887
2889
  colorGroup: `Change the sequences color group assignment pattern.`,
2888
- shuffleGroup: `Change the shuffle group when Mirror, Asym-Mirror, Random or S-Random are selected.\nShuffle with the same numbers listed above.`,
2890
+ shuffleGroup: `Change the shuffle group when Mirror, Asym-Mirror, Turning, Random or S-Random are selected.\nShuffle with the same numbers listed above.`,
2889
2891
  stepRtnGroup: `Switches the type of notes, such as arrows, and the pattern regarding rotation.\nThis can only be changed if it has been set in advance.`,
2890
2892
 
2891
2893
  pickArrow: `Change the frame or fill of arrow color and the frame or bar of normal freeze-arrow color\nfor each color number from the color picker.`,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "danoniplus",
3
- "version": "31.4.1",
3
+ "version": "31.5.0",
4
4
  "description": "Dancing☆Onigiri (CW Edition) - Web-based Rhythm Game",
5
5
  "main": "index.js",
6
6
  "scripts": {