danoniplus 28.2.0 → 28.2.1

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,29 +4,32 @@
4
4
  本体cssファイル
5
5
 
6
6
  Created : 2018/10/08
7
- Revised : 2022/03/27 (v27.2.0)
7
+ Revised : 2022/10/05 (v28.2.1)
8
8
 
9
9
  https://github.com/cwtickle/danoniplus
10
10
  ------------------------------------------ */
11
11
 
12
12
  #canvas-frame {
13
- height:500px;
13
+ height: 500px;
14
14
  position: relative;
15
15
  overflow: hidden;
16
+ white-space: nowrap;
16
17
  }
18
+
17
19
  #canvas-frame canvas {
18
20
  position: absolute;
19
- left:0;
21
+ left: 0;
20
22
  overflow: hidden;
21
23
  }
22
24
 
23
- input[type=range] {
25
+ input[type="range"] {
24
26
  -webkit-appearance: none;
25
27
  background: transparent;
26
28
  height: 20px;
27
29
  width: 205px;
28
30
  }
29
- input[type=range]::-webkit-slider-thumb {
31
+
32
+ input[type="range"]::-webkit-slider-thumb {
30
33
  -webkit-appearance: none;
31
34
  background: #606060;
32
35
  height: 20px;
@@ -34,10 +37,12 @@ input[type=range]::-webkit-slider-thumb {
34
37
  opacity: 0.5;
35
38
  border-radius: 50%;
36
39
  }
37
- input[type=range]::-moz-range-track{
40
+
41
+ input[type="range"]::-moz-range-track {
38
42
  height: 0;
39
43
  }
40
- input[type=range]::-moz-range-thumb{
44
+
45
+ input[type="range"]::-moz-range-thumb {
41
46
  background: #606060;
42
47
  height: 20px;
43
48
  width: 20px;
@@ -45,24 +50,27 @@ input[type=range]::-moz-range-thumb{
45
50
  border: none;
46
51
  border-radius: 50%;
47
52
  }
48
- input[type=range]:focus {
53
+
54
+ input[type="range"]:focus {
49
55
  outline: 0;
50
56
  }
51
57
 
52
- input[type=color] {
53
- width:25px;
54
- height:25px;
55
- border:none;
58
+ input[type="color"] {
59
+ width: 25px;
60
+ height: 25px;
61
+ border: none;
62
+ padding: 1px;
56
63
  }
57
64
 
58
65
  /* 左から右へ */
59
66
  @keyframes leftToRight {
60
67
  0% {
61
- opacity: 0;/* 透明 */
68
+ opacity: 0;
62
69
  transform: translateX(-50px);
63
70
  }
71
+
64
72
  100% {
65
- opacity: 1;/* 不透明 */
73
+ opacity: 1;
66
74
  transform: translateX(0);
67
75
  }
68
76
  }
@@ -70,11 +78,12 @@ input[type=color] {
70
78
  /* 上から下へ */
71
79
  @keyframes upToDown {
72
80
  0% {
73
- opacity: 0;/* 透明 */
81
+ opacity: 0;
74
82
  transform: translateY(-50px);
75
83
  }
84
+
76
85
  100% {
77
- opacity: 1;/* 不透明 */
86
+ opacity: 1;
78
87
  transform: translateY(0);
79
88
  }
80
89
  }
@@ -82,19 +91,22 @@ input[type=color] {
82
91
  /* 左から右へ移動し、フェードアウト(結果画面で使用) */
83
92
  @keyframes leftToRightFade {
84
93
  0% {
85
- opacity: 0;/* 透明 */
94
+ opacity: 0;
86
95
  transform: translateX(-30px);
87
96
  }
97
+
88
98
  30% {
89
- opacity: 1;/* 不透明 */
99
+ opacity: 1;
90
100
  transform: translateX(0);
91
101
  }
102
+
92
103
  60% {
93
- opacity: 1;/* 不透明 */
104
+ opacity: 1;
94
105
  transform: translateX(0);
95
106
  }
107
+
96
108
  100% {
97
- opacity: 0;/* 透明 */
109
+ opacity: 0;
98
110
  transform: translateX(30px);
99
111
  }
100
112
  }
@@ -102,19 +114,22 @@ input[type=color] {
102
114
  /* 上から下へ移動し、フェードアウト(結果画面で使用) */
103
115
  @keyframes upToDownFade {
104
116
  0% {
105
- opacity: 0;/* 透明 */
117
+ opacity: 0;
106
118
  transform: translateY(-30px);
107
119
  }
120
+
108
121
  30% {
109
- opacity: 1;/* 不透明 */
122
+ opacity: 1;
110
123
  transform: translateY(0);
111
124
  }
125
+
112
126
  80% {
113
- opacity: 1;/* 不透明 */
127
+ opacity: 1;
114
128
  transform: translateY(0);
115
129
  }
130
+
116
131
  100% {
117
- opacity: 0;/* 透明 */
132
+ opacity: 0;
118
133
  transform: translateY(10px);
119
134
  }
120
135
  }
@@ -122,25 +137,27 @@ input[type=color] {
122
137
  /* 徐々に表示(結果画面で使用) */
123
138
  @keyframes slowlyAppearing {
124
139
  0% {
125
- opacity: 0.5;/* 透明 */
140
+ opacity: 0.5;
126
141
  }
142
+
127
143
  80% {
128
- opacity: 0.5;/* 透明 */
144
+ opacity: 0.5;
129
145
  }
146
+
130
147
  100% {
131
- opacity: 1;/* 不透明 */
148
+ opacity: 1;
132
149
  }
133
150
  }
134
151
 
135
152
  /* 文字拡大から元のサイズへ戻る */
136
153
  @keyframes fromBig {
137
154
  0% {
138
- opacity: 0;/* 透明 */
155
+ opacity: 0;
139
156
  transform: scale(1.5, 1.5);
140
-
141
157
  }
158
+
142
159
  100% {
143
- opacity: 1;/* 不透明 */
160
+ opacity: 1;
144
161
  transform: scale(1, 1);
145
162
  }
146
163
  }
@@ -148,11 +165,12 @@ input[type=color] {
148
165
  /* 徐々に表示(Y方向) */
149
166
  @keyframes smallToNormalY {
150
167
  0% {
151
- opacity: 0;/* 透明 */
168
+ opacity: 0;
152
169
  transform: scale(1, 0);
153
170
  }
171
+
154
172
  100% {
155
- opacity: 1;/* 不透明 */
173
+ opacity: 1;
156
174
  transform: scale(1, 1);
157
175
  }
158
176
  }
@@ -162,6 +180,7 @@ input[type=color] {
162
180
  0% {
163
181
  transform: rotateX(0deg);
164
182
  }
183
+
165
184
  100% {
166
185
  transform: rotateX(360deg);
167
186
  }
@@ -172,6 +191,7 @@ input[type=color] {
172
191
  0% {
173
192
  transform: rotateY(0deg);
174
193
  }
194
+
175
195
  100% {
176
196
  transform: rotateY(360deg);
177
197
  }
@@ -182,6 +202,7 @@ input[type=color] {
182
202
  0% {
183
203
  transform: rotateZ(0deg);
184
204
  }
205
+
185
206
  100% {
186
207
  transform: rotateZ(360deg);
187
208
  }
@@ -192,6 +213,7 @@ input[type=color] {
192
213
  0% {
193
214
  filter: blur(8px);
194
215
  }
216
+
195
217
  100% {
196
218
  filter: blur(0);
197
219
  }
@@ -202,12 +224,15 @@ input[type=color] {
202
224
  0% {
203
225
  filter: brightness(0.0);
204
226
  }
227
+
205
228
  30% {
206
229
  filter: brightness(2.0);
207
230
  }
231
+
208
232
  70% {
209
233
  filter: brightness(0.0);
210
234
  }
235
+
211
236
  100% {
212
237
  filter: brightness(1.0);
213
238
  }
@@ -218,6 +243,7 @@ input[type=color] {
218
243
  0% {
219
244
  opacity: 0;
220
245
  }
246
+
221
247
  100% {
222
248
  opacity: 1;
223
249
  }
@@ -227,6 +253,7 @@ input[type=color] {
227
253
  0% {
228
254
  opacity: 0;
229
255
  }
256
+
230
257
  100% {
231
258
  opacity: 1;
232
259
  }
@@ -237,6 +264,7 @@ input[type=color] {
237
264
  0% {
238
265
  opacity: 1;
239
266
  }
267
+
240
268
  100% {
241
269
  opacity: 0;
242
270
  }
@@ -246,6 +274,7 @@ input[type=color] {
246
274
  0% {
247
275
  opacity: 1;
248
276
  }
277
+
249
278
  100% {
250
279
  opacity: 0;
251
280
  }
@@ -254,29 +283,35 @@ input[type=color] {
254
283
  .toRight {
255
284
  animation-name: leftToRight;
256
285
  }
286
+
257
287
  .toSpin {
258
288
  animation-name: spinY;
259
289
  }
260
290
 
261
291
  /* 設定画面:ゲージ設定詳細 */
262
292
  .settings_gaugeVal {
263
- font-size:12px;
293
+ font-size: 12px;
264
294
  }
295
+
265
296
  .settings_gaugeDivCover {
266
297
  border: 1px #666666 solid;
267
298
  width: 280px;
268
299
  }
300
+
269
301
  .settings_gaugeDivTable {
270
302
  display: table;
271
303
  width: 279px;
272
304
  }
305
+
273
306
  .settings_gaugeDivTableCol {
274
307
  display: table-cell;
275
308
  border-collapse: collapse;
276
309
  }
310
+
277
311
  .settings_gaugeStart {
278
312
  width: 85px;
279
313
  }
314
+
280
315
  .settings_gaugeEtc {
281
316
  width: 65px;
282
317
  }
@@ -296,6 +331,7 @@ input[type=color] {
296
331
  justify-content: center;
297
332
  cursor: default;
298
333
  }
334
+
299
335
  .button_common:hover {
300
336
  cursor: pointer;
301
337
  }
@@ -306,6 +342,6 @@ input[type=color] {
306
342
  }
307
343
 
308
344
  /* 警告ウィンドウ */
309
- #lblWarning > p {
345
+ #lblWarning>p {
310
346
  margin: 15px 5px;
311
347
  }
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/10/04
7
+ * Revised : 2022/10/05
8
8
  *
9
9
  * https://github.com/cwtickle/danoniplus
10
10
  */
11
- const g_version = `Ver 28.2.0`;
12
- const g_revisedDate = `2022/10/04`;
11
+ const g_version = `Ver 28.2.1`;
12
+ const g_revisedDate = `2022/10/05`;
13
13
  const g_alphaVersion = ``;
14
14
 
15
15
  // カスタム用バージョン (danoni_custom.js 等で指定可)
@@ -1814,7 +1814,7 @@ const initialControl = async () => {
1814
1814
  // デフォルトのカラー・シャッフルグループ設定を退避
1815
1815
  [`color`, `shuffle`].forEach(type => {
1816
1816
  const tmpName = Object.keys(g_keyObj).filter(val => val.startsWith(type));
1817
- tmpName.forEach(property => g_dfKeyObj[property] = structuredClone(g_keyObj[property]));
1817
+ tmpName.forEach(property => g_keyObj[`${property}d`] = structuredClone(g_keyObj[property]));
1818
1818
  });
1819
1819
 
1820
1820
  // 自動横幅拡張設定
@@ -1824,6 +1824,7 @@ const initialControl = async () => {
1824
1824
 
1825
1825
  g_sWidth = Math.max(...widthList);
1826
1826
  $id(`canvas-frame`).width = `${g_sWidth}px`;
1827
+ $id(`divRoot`).width = `${g_sWidth}px`;
1827
1828
  }
1828
1829
  if (g_headerObj.playingWidth === `default`) {
1829
1830
  g_headerObj.playingWidth = g_sWidth;
@@ -1956,6 +1957,13 @@ const loadLocalStorage = _ => {
1956
1957
  g_localStorage.highscores = {};
1957
1958
  }
1958
1959
 
1960
+ // 廃棄済みリストからデータを消去
1961
+ g_storeSettingsEx.forEach(val => {
1962
+ if (g_localStorage[val] !== undefined) {
1963
+ delete g_localStorage[val];
1964
+ }
1965
+ });
1966
+
1959
1967
  } else {
1960
1968
  g_localStorage = {
1961
1969
  adjustment: 0,
@@ -2907,7 +2915,7 @@ const headerConvert = _dosObj => {
2907
2915
  });
2908
2916
  }
2909
2917
 
2910
- // ローカルストレージに保存済みのDisplay設定・ColorType設定を戻す
2918
+ // ローカルストレージに保存済みのAppearance, Opacity設定・ColorType設定を戻す
2911
2919
  g_storeSettings.filter(tmpSetting => hasVal(g_localStorage[tmpSetting])).forEach(setting =>
2912
2920
  g_stateObj[setting] = g_localStorage[setting]);
2913
2921
  if (g_localStorage.colorType !== undefined) {
@@ -5014,8 +5022,9 @@ const createOptionWindow = _sprite => {
5014
5022
  [`color`, `shuffle`].forEach(type => {
5015
5023
  resetGroupList(type, keyCtrlPtn);
5016
5024
  if (g_keyObj.currentPtn === -1) {
5017
- if (storageObj[`${type}${g_keyObj.currentKey}_-1_-1`] !== undefined) {
5018
- g_keyObj[`${type}${g_keyObj.currentKey}_-1`] = structuredClone(storageObj[`${type}${g_keyObj.currentKey}_-1_-1`]);
5025
+ const storageKeyName = storageObj[`${type}${addKey}`] || storageObj[`${type}${g_keyObj.currentKey}_-1_-1`];
5026
+ if (storageKeyName !== undefined) {
5027
+ g_keyObj[`${type}${g_keyObj.currentKey}_-1`] = structuredClone(storageKeyName);
5019
5028
  }
5020
5029
  g_keyObj[`${type}${g_keyObj.currentKey}_-1_-1`] = structuredClone(g_keyObj[`${type}${g_keyObj.currentKey}_-1`]);
5021
5030
  } else {
@@ -7989,14 +7998,20 @@ const getArrowSettings = _ => {
7989
7998
 
7990
7999
  [`color`, `shuffle`].forEach(type => {
7991
8000
  const groupNum = g_keycons[`${type}GroupNum`];
7992
- storageObj[`${type}${g_keyObj.currentKey}_-1_-1`] = structuredClone(g_keyObj[`${type}${keyCtrlPtn}_${groupNum}`]);
7993
- g_keyObj[`${type}${g_keyObj.currentKey}_-1_${groupNum}`] = structuredClone(g_dfKeyObj[`${type}${keyCtrlPtn}_${groupNum}`]);
7994
- g_keyObj[`${type}${keyCtrlPtn}_${groupNum}`] = structuredClone(g_dfKeyObj[`${type}${keyCtrlPtn}_${groupNum}`]);
8001
+ storageObj[`${type}${addKey}`] = structuredClone(g_keyObj[`${type}${keyCtrlPtn}_${groupNum}`]);
8002
+ g_keyObj[`${type}${g_keyObj.currentKey}_-1_${groupNum}`] = structuredClone(g_keyObj[`${type}${keyCtrlPtn}_${groupNum}d`]);
8003
+ g_keyObj[`${type}${keyCtrlPtn}_${groupNum}`] = structuredClone(g_keyObj[`${type}${keyCtrlPtn}_${groupNum}d`]);
8004
+
8005
+ // 古いキーデータの削除 (互換用)
8006
+ if (storageObj[`${type}${g_keyObj.currentKey}_-1_-1`] !== undefined) {
8007
+ delete storageObj[`${type}${g_keyObj.currentKey}_-1_-1`];
8008
+ }
7995
8009
  });
7996
8010
 
7997
8011
  if (!g_stateObj.extraKeyFlg) {
7998
8012
  localStorage.setItem(`danonicw-${g_keyObj.currentKey}k`, JSON.stringify(g_localKeyStorage));
7999
8013
  }
8014
+
8000
8015
  localStorage.setItem(g_localStorageUrl, JSON.stringify(g_localStorage));
8001
8016
  g_canLoadDifInfoFlg = true;
8002
8017
 
@@ -5,7 +5,7 @@
5
5
  *
6
6
  * Source by tickle
7
7
  * Created : 2019/11/19
8
- * Revised : 2022/10/02 (v28.1.0)
8
+ * Revised : 2022/10/05 (v28.2.1)
9
9
  *
10
10
  * https://github.com/cwtickle/danoniplus
11
11
  */
@@ -837,7 +837,11 @@ const g_keycons = {
837
837
  let g_displays = [`stepZone`, `judgment`, `fastSlow`, `lifeGauge`, `score`, `musicInfo`, `filterLine`,
838
838
  `speed`, `color`, `lyrics`, `background`, `arrowEffect`, `special`];
839
839
 
840
- let g_storeSettings = [`appearance`, `opacity`, `d_stepzone`, `d_judgment`, `d_fastslow`, `d_lifegauge`,
840
+ // ローカルストレージ保存対象
841
+ let g_storeSettings = [`appearance`, `opacity`];
842
+
843
+ // 廃棄対象のリスト(過去の登録対象をリスト化。ここに乗せるとローカルストレージから自動消去される)
844
+ let g_storeSettingsEx = [`d_stepzone`, `d_judgment`, `d_fastslow`, `d_lifegauge`,
841
845
  `d_score`, `d_musicinfo`, `d_filterline`];
842
846
 
843
847
  let g_canDisabledSettings = [`motion`, `scroll`, `shuffle`, `autoPlay`, `gauge`, `appearance`];
@@ -1418,8 +1422,6 @@ const g_cssObj = {
1418
1422
  flex_centering: `flex_centering`,
1419
1423
  };
1420
1424
 
1421
- const g_dfKeyObj = {};
1422
-
1423
1425
  // キー別の設定(一旦ここで定義)
1424
1426
  // ステップゾーンの位置関係は自動化を想定
1425
1427
  const g_keyObj = {
@@ -2924,7 +2926,7 @@ const g_lblNameObj = {
2924
2926
  filterLock: `Lock`,
2925
2927
 
2926
2928
  sc_speed: `←→`,
2927
- sc_scroll: `R/↑↓`,
2929
+ sc_scroll: `R/<br>↑↓`,
2928
2930
  sc_adjustment: `- +`,
2929
2931
  sc_keyConfigPlay: g_isMac ? `Del+Enter` : `BS+Enter`,
2930
2932
 
@@ -3067,7 +3069,7 @@ const g_lblNameObj = {
3067
3069
  const g_lang_lblNameObj = {
3068
3070
  Ja: {
3069
3071
  kcDesc: `[{0}:スキップ / {1}:(代替キーのみ)キー無効化]`,
3070
- kcShuffleDesc: `番号をクリックでシャッフルグループ、矢印をクリックでカラーグループを一時的に変更`,
3072
+ kcShuffleDesc: `番号をクリックでシャッフルグループ、矢印をクリックでカラーグループを変更`,
3071
3073
  sdDesc: `[クリックでON/OFFを切替、灰色でOFF]`,
3072
3074
  kcShortcutDesc: `プレイ中ショートカット:「{0}」タイトルバック / 「{1}」リトライ`,
3073
3075
  transKeyDesc: `別キーモードではハイスコア、キーコンフィグ等は保存されません`,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "danoniplus",
3
- "version": "28.2.0",
3
+ "version": "28.2.1",
4
4
  "description": "Dancing☆Onigiri (CW Edition) - Web-based Rhythm Game",
5
5
  "main": "index.js",
6
6
  "scripts": {