danoniplus 30.6.0 → 31.0.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.
@@ -5,7 +5,7 @@
5
5
  *
6
6
  * Source by tickle
7
7
  * Created : 2019/11/19
8
- * Revised : 2023/03/12 (v30.5.0)
8
+ * Revised : 2023/03/20 (v31.0.0)
9
9
  *
10
10
  * https://github.com/cwtickle/danoniplus
11
11
  */
@@ -32,7 +32,7 @@ const C_LEN_SETLBL_LEFT = 160;
32
32
  const C_LEN_SETLBL_WIDTH = 210;
33
33
  const C_LEN_DIFSELECTOR_WIDTH = 250;
34
34
  const C_LEN_DIFCOVER_WIDTH = 110;
35
- const C_LEN_SETLBL_HEIGHT = 23;
35
+ const C_LEN_SETLBL_HEIGHT = 22;
36
36
  const C_SIZ_SETLBL = 17;
37
37
  const C_LEN_SETDIFLBL_HEIGHT = 25;
38
38
  const C_SIZ_SETDIFLBL = 17;
@@ -83,10 +83,10 @@ const g_windowObj = {
83
83
  divRoot: { margin: `auto`, letterSpacing: `normal` },
84
84
  divBack: { background: `linear-gradient(#000000, #222222)` },
85
85
 
86
- difList: { x: 165, y: 65, w: 280, h: 255, overflow: `auto` },
87
- difCover: { x: 25, y: 65, w: 140, h: 255, overflow: `auto`, opacity: 0.95 },
86
+ difList: { x: 165, y: 60, w: 280, h: 261, overflow: `auto` },
87
+ difCover: { x: 25, y: 60, w: 140, h: 261, overflow: `auto`, opacity: 0.95 },
88
88
 
89
- scoreDetail: { x: 20, y: 90, w: 420, h: 230, visibility: `hidden` },
89
+ scoreDetail: { x: 20, y: 85, w: 420, h: 236, visibility: `hidden` },
90
90
  detailObj: { w: 420, h: 230, visibility: `hidden` },
91
91
 
92
92
  colorPickSprite: { x: 0, y: 90, w: 50, h: 280 },
@@ -558,6 +558,10 @@ const g_settingBtnObj = {
558
558
  }
559
559
  };
560
560
 
561
+ const g_limitObj = {
562
+ adjustment: 30,
563
+ hitPosition: 50,
564
+ };
561
565
  const C_MAX_ADJUSTMENT = 30;
562
566
  const C_MAX_SPEED = 10;
563
567
  const C_MIN_SPEED = 1;
@@ -669,6 +673,7 @@ const g_stateObj = {
669
673
  autoAll: C_FLG_OFF,
670
674
  gauge: `Normal`,
671
675
  adjustment: 0,
676
+ hitPosition: 0,
672
677
  fadein: 0,
673
678
  volume: 100,
674
679
  lifeRcv: 2,
@@ -773,10 +778,14 @@ const g_settings = {
773
778
  autoPlays: [C_FLG_OFF, C_FLG_ALL],
774
779
  autoPlayNum: 0,
775
780
 
776
- adjustments: [...Array(C_MAX_ADJUSTMENT * 20 + 1).keys()].map(i => (i - C_MAX_ADJUSTMENT * 10) / 10),
777
- adjustmentNum: C_MAX_ADJUSTMENT * 10,
781
+ adjustments: [...Array(g_limitObj.adjustment * 20 + 1).keys()].map(i => (i - g_limitObj.adjustment * 10) / 10),
782
+ adjustmentNum: g_limitObj.adjustment * 10,
778
783
  adjustmentTerms: [50, 10, 5],
779
784
 
785
+ hitPositions: [...Array(g_limitObj.hitPosition * 20 + 1).keys()].map(i => (i - g_limitObj.hitPosition * 10) / 10),
786
+ hitPositionNum: g_limitObj.hitPosition * 10,
787
+ hitPositionTerms: [50, 10],
788
+
780
789
  volumes: [0, 0.5, 1, 2, 5, 10, 25, 50, 75, 100],
781
790
 
782
791
  appearances: [`Visible`, `Hidden`, `Hidden+`, `Sudden`, `Sudden+`, `Hid&Sud+`],
@@ -853,9 +862,13 @@ const g_keycons = {
853
862
 
854
863
  shuffleGroups: [0],
855
864
  shuffleGroupNum: 0,
865
+
866
+ stepRtnGroups: [0],
867
+ stepRtnGroupNum: 0,
868
+
856
869
  groupSelf: `S`,
857
870
 
858
- groups: [`color`, `shuffle`],
871
+ groups: [`color`, `shuffle`, `stepRtn`],
859
872
 
860
873
  cursorNumList: [],
861
874
  cursorNum: 0,
@@ -1274,6 +1287,11 @@ const g_shortcutObj = {
1274
1287
  ShiftLeft_KeyO: { id: `lnkOpacityL` },
1275
1288
  KeyO: { id: `lnkOpacityR` },
1276
1289
 
1290
+ ShiftLeft_KeyB: { id: `lnkHitPositionR` },
1291
+ KeyB: { id: `lnkHitPositionRR` },
1292
+ ShiftLeft_KeyT: { id: `lnkHitPositionL` },
1293
+ KeyT: { id: `lnkHitPositionLL` },
1294
+
1277
1295
  Digit1: { id: `lnkstepZone` },
1278
1296
  Digit2: { id: `lnkjudgment` },
1279
1297
  Digit3: { id: `lnkfastSlow` },
@@ -1376,6 +1394,7 @@ const g_cssObj = {
1376
1394
  settings_Disabled: `settings_Disabled`,
1377
1395
  settings_FadeinBar: `settings_FadeinBar`,
1378
1396
  settings_Shuffle: `settings_Shuffle`,
1397
+ settings_Adjustment: `settings_Adjustment`,
1379
1398
 
1380
1399
  keyconfig_warning: `keyconfig_warning`,
1381
1400
  keyconfig_ConfigType: `keyconfig_ConfigType`,
@@ -1510,7 +1529,8 @@ const g_keyObj = {
1510
1529
  chara5_2: [`left`, `down`, `space`, `up`, `right`],
1511
1530
  chara8_2: [`sleft`, `left`, `leftdia`, `down`, `space`, `up`, `rightdia`, `right`],
1512
1531
 
1513
- // カラーパターン(パターン1)
1532
+ // ColorGroup - 1
1533
+ // - 同じ数字が同じグループになります
1514
1534
  color5_0_0: [0, 0, 0, 0, 2],
1515
1535
  color7_0_0: [0, 1, 0, 2, 0, 1, 0],
1516
1536
  color7i_0_0: [2, 2, 2, 0, 0, 0, 0],
@@ -1543,14 +1563,23 @@ const g_keyObj = {
1543
1563
  color9A_2_0: [3, 0, 3, 0, 2, 0, 3, 0, 3],
1544
1564
  color9B_2_0: [0, 0, 0, 0, 2, 1, 1, 1, 1],
1545
1565
 
1546
- // カラーパターン(パターン2)
1566
+ // ColorGroup - 2
1547
1567
  color9B_0_1: [4, 3, 1, 0, 2, 0, 1, 3, 4],
1548
- color9A_2_1: [4, 1, 3, 0, 2, 0, 3, 1, 4],
1549
1568
  color17_0_1: [1, 0, 1, 0, 1, 0, 1, 0, 2, 0, 1, 0, 1, 0, 1, 0, 1],
1550
1569
 
1551
1570
  color17_1_1: [1, 1, 1, 1, 2, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0],
1552
1571
 
1553
- // シャッフルグループ(パターン1)
1572
+ color9A_2_1: [4, 1, 3, 0, 2, 0, 3, 1, 4],
1573
+
1574
+ // ColorGroup - 3
1575
+ color17_0_2: [1, 4, 0, 3, 1, 4, 0, 3, 2, 3, 0, 4, 1, 3, 0, 4, 1],
1576
+ color17_1_2: [1, 0, 1, 0, 2, 0, 1, 0, 1, 3, 4, 3, 4, 4, 3, 4, 3],
1577
+
1578
+ // ColorGroup - 4
1579
+ color17_0_3: [1, 1, 0, 0, 1, 1, 0, 0, 2, 0, 0, 1, 1, 0, 0, 1, 1],
1580
+ color17_1_3: [1, 0, 1, 0, 2, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1],
1581
+
1582
+ // ShuffleGroup - 1
1554
1583
  // - Mirror, Random, S-Random使用時、同じグループ同士で入れ替えます
1555
1584
  // - 同じ数字が同じグループになります
1556
1585
  shuffle5_0_0: [0, 0, 0, 0, 1],
@@ -1581,7 +1610,7 @@ const g_keyObj = {
1581
1610
  shuffle5_2_0: [0, 0, 1, 0, 0],
1582
1611
  shuffle8_2_0: [1, 0, 0, 0, 0, 0, 0, 0],
1583
1612
 
1584
- // シャッフルグループ(パターン2)
1613
+ // ShuffleGroup - 2
1585
1614
  shuffle9A_0_1: [0, 0, 0, 0, 1, 0, 0, 0, 0],
1586
1615
  shuffle11_0_1: [0, 0, 0, 0, 1, 1, 1, 2, 3, 3, 3],
1587
1616
  shuffle11L_0_1: [0, 0, 0, 0, 1, 1, 1, 2, 3, 3, 3],
@@ -1591,44 +1620,50 @@ const g_keyObj = {
1591
1620
 
1592
1621
  shuffle17_1_1: [0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
1593
1622
 
1594
- // シャッフルグループ(パターン3)
1623
+ // ShuffleGroup - 3
1595
1624
  shuffle15A_0_2: [0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 3, 2, 2, 2],
1625
+ shuffle17_0_2: [0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 2, 0, 2, 0, 2, 0],
1626
+ shuffle17_1_2: [0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2],
1596
1627
 
1597
- // 基本パターン (矢印回転、AAキャラクタ)
1628
+ // ShapeGroup - 1 (矢印回転、AAキャラクタ)
1598
1629
  // - AAキャラクタの場合、キャラクタ名を指定
1599
- stepRtn5_0: [0, -90, 90, 180, `onigiri`],
1600
- stepRtn7_0: [0, -45, -90, `onigiri`, 90, 135, 180],
1601
- stepRtn7i_0: [`giko`, `onigiri`, `iyo`, 0, -90, 90, 180],
1602
- stepRtn8_0: [0, -45, -90, `onigiri`, 90, 135, 180, `onigiri`],
1603
- stepRtn9A_0: [0, -90, 90, 180, `onigiri`, 0, -90, 90, 180],
1604
- stepRtn9B_0: [45, 0, -45, -90, `onigiri`, 90, 135, 180, 225],
1605
- stepRtn9i_0: [0, -90, 90, 180, `monar`, `giko`, `c`, `morara`, `onigiri`],
1606
- stepRtn11_0: [0, -90, 90, 180, 0, -45, -90, `onigiri`, 90, 135, 180],
1607
- stepRtn11L_0: [0, -90, 90, 180, 0, -45, -90, `onigiri`, 90, 135, 180],
1608
- stepRtn11W_0: [`giko`, 135, 45, `iyo`, 0, -45, -90, `onigiri`, 90, 135, 180],
1609
- stepRtn11i_0: [0, -90, `giko`, 90, 180, `onigiri`, 0, -90, `iyo`, 90, 180],
1610
- stepRtn12_0: [0, -90, 90, 180, `onigiri`, 0, 30, 60, 90, 120, 150, 180],
1611
- stepRtn13_0: [0, -90, 90, 180, 0, -90, 90, 180, `onigiri`, 0, -90, 90, 180],
1612
- stepRtn14_0: [45, 0, -90, 90, 180, 135, `onigiri`, 0, 30, 60, 90, 120, 150, 180],
1613
- stepRtn14i_0: [`giko`, `onigiri`, `iyo`, 0, -90, 90, 180, 0, -45, -90, `onigiri`, 90, 135, 180],
1614
- stepRtn15A_0: [0, -90, 90, 180, 0, -90, 90, 180, 0, -45, -90, `onigiri`, 90, 135, 180],
1615
- stepRtn16i_0: [`giko`, `onigiri`, `iyo`, 0, -90, 90, 180, 45, 0, -45, -90, `onigiri`, 90, 135, 180, 225],
1616
- stepRtn17_0: [0, -22.5, -45, -67.5, -90, -112.5, -135, -157.5, `onigiri`,
1617
- 22.5, 45, 67.5, 90, 112.5, 135, 157.5, 180],
1618
- stepRtn23_0: [0, -90, 90, 180, 0, -90, 90, 180, 0, 30, 60, 90, 120, 150, 180, `onigiri`, 0, 30, 60, 90, 120, 150, 180],
1619
-
1620
- // 変則パターン (矢印回転、AAキャラクタ)
1621
- // - 末尾の番号をカウントアップさせることで実現できる。keyCtrlと合わせること
1622
- // - 配列の数は、通常パターンと同数で無くてはいけない(keyCtrlも同様)
1623
- stepRtn5_1: [`onigiri`, 0, -90, 90, 180],
1624
- stepRtn8_1: [`onigiri`, 0, -45, -90, `onigiri`, 90, 135, 180],
1625
- stepRtn9i_1: [`monar`, `giko`, `c`, `morara`, `onigiri`, 0, -90, 90, 180],
1626
- stepRtn11i_1: [0, -135, `giko`, 45, 180, `onigiri`, 0, -135, `iyo`, 45, 180],
1627
- stepRtn17_1: [0, -45, -90, -135, `onigiri`, 45, 90, 135, 180,
1630
+ stepRtn5_0_0: [0, -90, 90, 180, `onigiri`],
1631
+ stepRtn7_0_0: [0, -45, -90, `onigiri`, 90, 135, 180],
1632
+ stepRtn7i_0_0: [`giko`, `onigiri`, `iyo`, 0, -90, 90, 180],
1633
+ stepRtn8_0_0: [0, -45, -90, `onigiri`, 90, 135, 180, `onigiri`],
1634
+ stepRtn9A_0_0: [0, -90, 90, 180, `onigiri`, 0, -90, 90, 180],
1635
+ stepRtn9B_0_0: [45, 0, -45, -90, `onigiri`, 90, 135, 180, 225],
1636
+ stepRtn9i_0_0: [0, -90, 90, 180, `monar`, `giko`, `c`, `morara`, `onigiri`],
1637
+ stepRtn11_0_0: [0, -90, 90, 180, 0, -45, -90, `onigiri`, 90, 135, 180],
1638
+ stepRtn11L_0_0: [0, -90, 90, 180, 0, -45, -90, `onigiri`, 90, 135, 180],
1639
+ stepRtn11W_0_0: [`giko`, 135, 45, `iyo`, 0, -45, -90, `onigiri`, 90, 135, 180],
1640
+ stepRtn11i_0_0: [0, -90, `giko`, 90, 180, `onigiri`, 0, -90, `iyo`, 90, 180],
1641
+ stepRtn12_0_0: [0, -90, 90, 180, `onigiri`, 0, 30, 60, 90, 120, 150, 180],
1642
+ stepRtn13_0_0: [0, -90, 90, 180, 0, -90, 90, 180, `onigiri`, 0, -90, 90, 180],
1643
+ stepRtn14_0_0: [45, 0, -90, 90, 180, 135, `onigiri`, 0, 30, 60, 90, 120, 150, 180],
1644
+ stepRtn14i_0_0: [`giko`, `onigiri`, `iyo`, 0, -90, 90, 180, 0, -45, -90, `onigiri`, 90, 135, 180],
1645
+ stepRtn15A_0_0: [0, -90, 90, 180, 0, -90, 90, 180, 0, -45, -90, `onigiri`, 90, 135, 180],
1646
+ stepRtn16i_0_0: [`giko`, `onigiri`, `iyo`, 0, -90, 90, 180, 45, 0, -45, -90, `onigiri`, 90, 135, 180, 225],
1647
+ stepRtn17_0_0: [0, -22.5, -45, -67.5, -90, -112.5, -135, -157.5, `onigiri`, 22.5, 45, 67.5, 90, 112.5, 135, 157.5, 180],
1648
+ stepRtn23_0_0: [0, -90, 90, 180, 0, -90, 90, 180, 0, 30, 60, 90, 120, 150, 180, `onigiri`, 0, 30, 60, 90, 120, 150, 180],
1649
+
1650
+ stepRtn5_1_0: [`onigiri`, 0, -90, 90, 180],
1651
+ stepRtn8_1_0: [`onigiri`, 0, -45, -90, `onigiri`, 90, 135, 180],
1652
+ stepRtn9i_1_0: [`monar`, `giko`, `c`, `morara`, `onigiri`, 0, -90, 90, 180],
1653
+ stepRtn17_1_0: [0, -45, -90, -135, `onigiri`, 45, 90, 135, 180,
1628
1654
  -22.5, -67.5, -112.5, -157.5, 22.5, 67.5, 112.5, 157.5],
1655
+ stepRtn17_1_1: [45, 0, -45, -90, `onigiri`, 90, 135, 180, 225,
1656
+ 45, 0, -45, -90, 90, 135, 180, 225],
1629
1657
 
1630
- stepRtn5_2: [0, -90, `onigiri`, 90, 180],
1631
- stepRtn8_2: [`onigiri`, 0, 30, 60, 90, 120, 150, 180],
1658
+ stepRtn5_2_0: [0, -90, `onigiri`, 90, 180],
1659
+ stepRtn8_2_0: [`onigiri`, 0, 30, 60, 90, 120, 150, 180],
1660
+
1661
+ // ShapeGroup - 2 (矢印回転、AAキャラクタ)
1662
+ stepRtn11i_0_1: [0, -135, `giko`, 45, 180, `onigiri`, 0, -135, `iyo`, 45, 180],
1663
+ stepRtn17_0_1: [-30, 0, 30, 60, 90, 120, 150, 180, `onigiri`, 0, 30, 60, 90, 120, 150, 180, 210],
1664
+
1665
+ // ShapeGroup - 3 (矢印回転、AAキャラクタ)
1666
+ stepRtn17_0_2: [45, 45, 0, 0, -45, -45, -90, -90, `onigiri`, 90, 90, 135, 135, 180, 180, 225, 225],
1632
1667
 
1633
1668
  // 各キーの区切り位置
1634
1669
  div9i_0: 6,
@@ -1969,11 +2004,9 @@ const g_copyKeyPtn = {
1969
2004
  '7_5': `8_4`,
1970
2005
  '7_6': `8_5`,
1971
2006
 
1972
- '11i_1': `11i_0`,
1973
2007
  '9A_1': `9A_0`,
1974
2008
  '9A_2': `9B_0`,
1975
2009
  '9A_3': `11i_0`,
1976
- '9A_4': `11i_1`,
1977
2010
  '9B_1': `9A_0`,
1978
2011
  '9B_2': `9A_1`,
1979
2012
 
@@ -2007,7 +2040,7 @@ const g_copyKeyPtn = {
2007
2040
  // キーパターンのコピー処理
2008
2041
  // ただし、すでに定義済みの場合は定義済みのものを優先する
2009
2042
  Object.keys(g_copyKeyPtn).forEach(keyPtnTo => {
2010
- let colorGr = 0, shuffleGr = 0;
2043
+ let colorGr = 0, shuffleGr = 0, stepRtnGr = 0;
2011
2044
  const keyPtnFrom = g_copyKeyPtn[keyPtnTo];
2012
2045
  const copyKeyPtn = (_name, _from = keyPtnFrom, _to = keyPtnTo) => {
2013
2046
  if (g_keyObj[`${_name}${_to}`] === undefined) {
@@ -2028,8 +2061,11 @@ Object.keys(g_copyKeyPtn).forEach(keyPtnTo => {
2028
2061
  copyKeyPtn(`shuffle`, `${keyPtnFrom}_${shuffleGr}`, `${keyPtnTo}_${shuffleGr}`);
2029
2062
  shuffleGr++;
2030
2063
  }
2064
+ while (g_keyObj[`stepRtn${keyPtnFrom}_${stepRtnGr}`] !== undefined) {
2065
+ copyKeyPtn(`stepRtn`, `${keyPtnFrom}_${stepRtnGr}`, `${keyPtnTo}_${stepRtnGr}`);
2066
+ stepRtnGr++;
2067
+ }
2031
2068
  copyKeyPtn(`chara`);
2032
- copyKeyPtn(`stepRtn`);
2033
2069
  copyKeyPtn(`pos`);
2034
2070
  copyKeyPtn(`keyCtrl`);
2035
2071
  copyKeyPtn(`scrollDir`);
@@ -2054,10 +2090,10 @@ Object.keys(g_copyKeyPtn).forEach(keyPtnTo => {
2054
2090
  const keyCtrlName = Object.keys(g_keyObj).filter(val => val.startsWith(`keyCtrl`));
2055
2091
  keyCtrlName.forEach(property => {
2056
2092
  g_keyObj[property].forEach((list, j) => g_keyObj[property][j] = makeBaseArray(g_keyObj[property][j], g_keyObj.minKeyCtrlNum, 0));
2057
- g_keyObj[`${property}d`] = copyArray2d(g_keyObj[property]);
2093
+ g_keyObj[`${property}d`] = structuredClone(g_keyObj[property]);
2058
2094
  });
2059
2095
 
2060
- // shuffleX_Y, colorX_Yについてデフォルト配列を作成
2096
+ // shuffleX_Y, colorX_Y, stepRtnX_Yについてデフォルト配列を作成
2061
2097
  g_keycons.groups.forEach(type => {
2062
2098
  const tmpName = Object.keys(g_keyObj).filter(val => val.startsWith(type) && val.endsWith(`_0`));
2063
2099
  tmpName.forEach(property => g_keyObj[`${property.slice(0, -2)}`] = g_keyObj[property].concat());
@@ -2428,11 +2464,13 @@ const g_lblNameObj = {
2428
2464
  multi: `x`,
2429
2465
  frame: `f`,
2430
2466
  percent: `%`,
2467
+ pixel: `px`,
2431
2468
  filterLock: `Lock`,
2432
2469
 
2433
2470
  sc_speed: `←→`,
2434
2471
  sc_scroll: `R/<br>↑↓`,
2435
2472
  sc_adjustment: `- +`,
2473
+ sc_hitPosition: `T B`,
2436
2474
  sc_keyConfigPlay: g_isMac ? `Del+Enter` : `BS+Enter`,
2437
2475
 
2438
2476
  g_start: `Start`,
@@ -2463,6 +2501,7 @@ const g_lblNameObj = {
2463
2501
 
2464
2502
  Appearance: `Appearance`,
2465
2503
  Opacity: `Opacity`,
2504
+ HitPosition: `HitPosition`,
2466
2505
 
2467
2506
  'u_x': `x`,
2468
2507
  'u_%': `%`,
@@ -2534,6 +2573,7 @@ const g_lblNameObj = {
2534
2573
  ImgType: `ImgType`,
2535
2574
  ColorGroup: `ColorGr.`,
2536
2575
  ShuffleGroup: `ShuffleGr.`,
2576
+ StepRtnGroup: `ShapeGr.`,
2537
2577
  KeyPattern: `KeyPattern`,
2538
2578
 
2539
2579
  j_maxCombo: `MaxCombo`,
@@ -2669,7 +2709,7 @@ const g_lang_msgObj = {
2669
2709
  shuffle: `譜面を左右反転したり、ランダムにします。\nランダムにした場合は別譜面扱いとなり、ハイスコアは保存されません。`,
2670
2710
  autoPlay: `オートプレイや一部キーを自動で打たせる設定を行います。\nオートプレイ時はハイスコアを保存しません。`,
2671
2711
  gauge: `クリア条件を設定します。\n[Start] ゲージ初期値, [Border] クリア条件(ハイフン時は0),\n[Recovery] 回復量, [Damage] ダメージ量`,
2672
- adjustment: `タイミングにズレを感じる場合、\n数値を変えることでフレーム単位のズレを直すことができます。\n外側のボタンは5f刻み、真ん中は1f刻み、内側は0.5f刻みで調整できます。`,
2712
+ adjustment: `曲とのタイミングにズレを感じる場合、\n数値を変えることでフレーム単位のズレを直すことができます。\n外側のボタンは5f刻み、真ん中は1f刻み、内側は0.5f刻みで調整できます。`,
2673
2713
  fadein: `譜面を途中から再生します。\n途中から開始した場合はハイスコアを保存しません。`,
2674
2714
  volume: `ゲーム内の音量を設定します。`,
2675
2715
 
@@ -2694,6 +2734,7 @@ const g_lang_msgObj = {
2694
2734
 
2695
2735
  appearance: `流れる矢印の見え方を制御します。`,
2696
2736
  opacity: `判定キャラクタ、コンボ数、Fast/Slow、Hidden+/Sudden+の\n境界線表示の透明度を設定します。`,
2737
+ hitPosition: `判定位置にズレを感じる場合、\n数値を変えることで判定の中央位置を1px単位(プラス:手前, マイナス:奥側)で調整することができます。\n早押し・遅押し傾向にある場合に使用します。`,
2697
2738
 
2698
2739
  configType: `キーコンフィグ対象を切り替えます。\n[Main] メインキーのみ, [Replaced] 代替キーのみ, [ALL] 全て`,
2699
2740
  colorType: `矢印色の配色パターンを変更します。\nType1~4選択時は色変化が自動でOFFになります。\n[Type0] グラデーション切替, [Type1~4] デフォルトパターン`,
@@ -2723,7 +2764,7 @@ const g_lang_msgObj = {
2723
2764
  shuffle: `Flip the chart left and right or make it random.\nIf you make it random, it will be treated as other charts and the high score will not be saved.`,
2724
2765
  autoPlay: `Set to auto play and to hit some keys automatically.\nHigh score is not saved during auto play.`,
2725
2766
  gauge: `Set the clear condition.\n[Start] initial value, [Border] borderline value (hyphen means zero),\n[Recovery] recovery amount, [Damage] damage amount`,
2726
- adjustment: `If you feel a shift in timing, \nyou can correct the shift in frame units by changing the value.\nThe outer button can be adjusted in 5 frame increments, the middle in 1 frame increments, \nand the inner button in 0.5 frame increments.`,
2767
+ adjustment: `If you feel that the timing is out of sync with the music, \nyou can correct the shift in frame units by changing the value.\nThe outer button can be adjusted in 5 frame increments, the middle in 1 frame increments, \nand the inner button in 0.5 frame increments.`,
2727
2768
  fadein: `Plays the chart from the middle.\nIf you start in the middle, the high score will not be saved.`,
2728
2769
  volume: `Set the in-game volume.`,
2729
2770
 
@@ -2748,6 +2789,7 @@ const g_lang_msgObj = {
2748
2789
 
2749
2790
  appearance: `Controls how the flowing sequences look.`,
2750
2791
  opacity: `Set the transparency of some objects such as judgment, combo counts, fast and slow`,
2792
+ hitPosition: `If you feel a discrepancy in the judgment position, \nyou can adjust the center position of the judgment in 1px increments \n (plus: in front, minus: at the back) by changing the numerical value. \nUse this function when there is a tendency to push too fast or too slow.`,
2751
2793
 
2752
2794
  configType: `Switch the key config target.\n[Main] main keys only, [Replaced] alternate keys only, [ALL] all keys`,
2753
2795
  colorType: `Change the color scheme of the sequences color.\nWhen Type 1 to 4 are selected, the color change is automatically turned off.\n[Type0] Switch the sequences color gradations, [Type1~4] default color scheme`,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "danoniplus",
3
- "version": "30.6.0",
3
+ "version": "31.0.0",
4
4
  "description": "Dancing☆Onigiri (CW Edition) - Web-based Rhythm Game",
5
5
  "main": "index.js",
6
6
  "scripts": {