danoniplus 28.2.0 → 28.3.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/css/danoni_main.css +70 -34
- package/js/danoni_main.js +82 -27
- package/js/lib/danoni_constants.js +17 -9
- package/package.json +1 -1
package/css/danoni_main.css
CHANGED
|
@@ -4,29 +4,32 @@
|
|
|
4
4
|
本体cssファイル
|
|
5
5
|
|
|
6
6
|
Created : 2018/10/08
|
|
7
|
-
Revised : 2022/
|
|
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
|
-
|
|
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
|
-
|
|
40
|
+
|
|
41
|
+
input[type="range"]::-moz-range-track {
|
|
38
42
|
height: 0;
|
|
39
43
|
}
|
|
40
|
-
|
|
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
|
-
|
|
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
|
|
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/
|
|
7
|
+
* Revised : 2022/10/13
|
|
8
8
|
*
|
|
9
9
|
* https://github.com/cwtickle/danoniplus
|
|
10
10
|
*/
|
|
11
|
-
const g_version = `Ver 28.
|
|
12
|
-
const g_revisedDate = `2022/10/
|
|
11
|
+
const g_version = `Ver 28.3.0`;
|
|
12
|
+
const g_revisedDate = `2022/10/13`;
|
|
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 =>
|
|
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
|
-
// ローカルストレージに保存済みの
|
|
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
|
-
|
|
5018
|
-
|
|
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 {
|
|
@@ -5315,6 +5324,7 @@ const getKeyCtrl = (_localStorage, _extraKeyName = ``) => {
|
|
|
5315
5324
|
for (let j = 0; j < maxPtn; j++) {
|
|
5316
5325
|
g_keyObj[`${type}${copyPtn}_${j}`] = copyArray2d(g_keyObj[`${type}${basePtn}_${j}`]);
|
|
5317
5326
|
}
|
|
5327
|
+
g_keyObj[`${type}${copyPtn}_0d`] = structuredClone(g_keyObj[`${type}${copyPtn}_0`]);
|
|
5318
5328
|
});
|
|
5319
5329
|
}
|
|
5320
5330
|
};
|
|
@@ -5664,22 +5674,8 @@ const keyConfigInit = (_kcType = g_kcType) => {
|
|
|
5664
5674
|
* @param {number} _k
|
|
5665
5675
|
* @param {string} _cssName
|
|
5666
5676
|
*/
|
|
5667
|
-
const changeKeyConfigColor = (_j, _k, _cssName) =>
|
|
5668
|
-
|
|
5669
|
-
const resetClass = _className => {
|
|
5670
|
-
if (obj.classList.contains(_className)) {
|
|
5671
|
-
obj.classList.remove(_className);
|
|
5672
|
-
}
|
|
5673
|
-
};
|
|
5674
|
-
|
|
5675
|
-
// CSSクラスの除去
|
|
5676
|
-
resetClass(g_cssObj.keyconfig_Changekey);
|
|
5677
|
-
resetClass(g_cssObj.keyconfig_Defaultkey);
|
|
5678
|
-
resetClass(g_cssObj.title_base);
|
|
5679
|
-
|
|
5680
|
-
// 指定されたCSSクラスを適用
|
|
5681
|
-
obj.classList.add(_cssName);
|
|
5682
|
-
};
|
|
5677
|
+
const changeKeyConfigColor = (_j, _k, _cssName) =>
|
|
5678
|
+
changeConfigColor(document.querySelector(`#keycon${_j}_${_k}`), _cssName);
|
|
5683
5679
|
|
|
5684
5680
|
/**
|
|
5685
5681
|
* 一時的に矢印色・シャッフルグループを変更(共通処理)
|
|
@@ -5720,6 +5716,7 @@ const keyConfigInit = (_kcType = g_kcType) => {
|
|
|
5720
5716
|
const tmpShuffle = changeTmpData(`shuffle`, 10, _j, _scrollNum);
|
|
5721
5717
|
document.getElementById(`sArrow${_j}`).textContent = tmpShuffle + 1;
|
|
5722
5718
|
|
|
5719
|
+
changeShuffleConfigColor(keyCtrlPtn, g_keyObj[`shuffle${keyCtrlPtn}_${g_keycons.shuffleGroupNum}`][_j], _j);
|
|
5723
5720
|
adjustScrollPoint(parseFloat($id(`arrow${_j}`).left));
|
|
5724
5721
|
};
|
|
5725
5722
|
|
|
@@ -5816,6 +5813,7 @@ const keyConfigInit = (_kcType = g_kcType) => {
|
|
|
5816
5813
|
|
|
5817
5814
|
/**
|
|
5818
5815
|
* カラー・シャッフルグループ設定の表示
|
|
5816
|
+
* - シャッフルグループではデフォルトからの差異表示もここで行う
|
|
5819
5817
|
* @param {string} _type
|
|
5820
5818
|
*/
|
|
5821
5819
|
const viewGroup = _type => {
|
|
@@ -5825,6 +5823,10 @@ const keyConfigInit = (_kcType = g_kcType) => {
|
|
|
5825
5823
|
document.getElementById(`lnk${toCapitalize(_type)}Group`).textContent = getStgDetailName(num);
|
|
5826
5824
|
}
|
|
5827
5825
|
viewGroupObj[_type](`_${g_keycons[`${_type}GroupNum`]}`);
|
|
5826
|
+
|
|
5827
|
+
if (_type === `shuffle`) {
|
|
5828
|
+
changeShuffleConfigColor(keyCtrlPtn, g_keyObj[`shuffle${keyCtrlPtn}_${g_keycons.shuffleGroupNum}`]);
|
|
5829
|
+
}
|
|
5828
5830
|
}
|
|
5829
5831
|
};
|
|
5830
5832
|
const setGroup = (_type, _scrollNum = 1) => {
|
|
@@ -6063,7 +6065,7 @@ const keyConfigInit = (_kcType = g_kcType) => {
|
|
|
6063
6065
|
keyConfigInit(g_kcType);
|
|
6064
6066
|
};
|
|
6065
6067
|
|
|
6066
|
-
const colorPickSprite = createEmptySprite(divRoot, `colorPickSprite`, g_windowObj.colorPickSprite);
|
|
6068
|
+
const colorPickSprite = createEmptySprite(divRoot, `colorPickSprite`, Object.assign({ title: g_msgObj.pickArrow }, g_windowObj.colorPickSprite));
|
|
6067
6069
|
if ([`Default`, `Type0`].includes(g_colorType)) {
|
|
6068
6070
|
colorPickSprite.style.display = C_DIS_NONE;
|
|
6069
6071
|
}
|
|
@@ -6163,6 +6165,12 @@ const keyConfigInit = (_kcType = g_kcType) => {
|
|
|
6163
6165
|
|
|
6164
6166
|
// キーコンフィグ画面を再呼び出し
|
|
6165
6167
|
keyConfigInit();
|
|
6168
|
+
|
|
6169
|
+
// シャッフルグループのデフォルト値からの差異表示(色付け)
|
|
6170
|
+
// 再描画後で無いと色付けできないため、keyConfigInit() 実行後に処理
|
|
6171
|
+
if (g_headerObj.shuffleUse) {
|
|
6172
|
+
changeShuffleConfigColor(`${g_keyObj.currentKey}_${g_keyObj.currentPtn}`, g_keyObj[`shuffle${g_keyObj.currentKey}_${g_keyObj.currentPtn}_${g_keycons.shuffleGroupNum}`]);
|
|
6173
|
+
}
|
|
6166
6174
|
};
|
|
6167
6175
|
|
|
6168
6176
|
// ユーザカスタムイベント(初期)
|
|
@@ -6333,6 +6341,47 @@ const changeSetColor = _ => {
|
|
|
6333
6341
|
}
|
|
6334
6342
|
};
|
|
6335
6343
|
|
|
6344
|
+
/**
|
|
6345
|
+
* コンフィグの色変更
|
|
6346
|
+
* @param {object} _obj
|
|
6347
|
+
* @param {string} _cssName
|
|
6348
|
+
*/
|
|
6349
|
+
const changeConfigColor = (_obj, _cssName) => {
|
|
6350
|
+
const resetClass = _className => {
|
|
6351
|
+
if (_obj.classList.contains(_className)) {
|
|
6352
|
+
_obj.classList.remove(_className);
|
|
6353
|
+
}
|
|
6354
|
+
};
|
|
6355
|
+
|
|
6356
|
+
// CSSクラスの除去
|
|
6357
|
+
resetClass(g_cssObj.keyconfig_Changekey);
|
|
6358
|
+
resetClass(g_cssObj.keyconfig_Defaultkey);
|
|
6359
|
+
resetClass(g_cssObj.title_base);
|
|
6360
|
+
|
|
6361
|
+
// 指定されたCSSクラスを適用
|
|
6362
|
+
_obj.classList.add(_cssName);
|
|
6363
|
+
};
|
|
6364
|
+
|
|
6365
|
+
/**
|
|
6366
|
+
* シャッフルグループの色変更
|
|
6367
|
+
* - デフォルト値と違う番号になった場合、色付けする
|
|
6368
|
+
* @param {string} _keyCtrlPtn キーコンフィグパターン
|
|
6369
|
+
* @param {array} _vals シャッフルグループ番号(群)
|
|
6370
|
+
* @param {number} _j (-1: 全体に対して色付け, それ以外: 指定箇所のみ色付け)
|
|
6371
|
+
*/
|
|
6372
|
+
const changeShuffleConfigColor = (_keyCtrlPtn, _vals, _j = -1) => {
|
|
6373
|
+
const changeTargetColor = (_val, _k) => {
|
|
6374
|
+
const isEqualShuffleGr = (_val === g_keyObj[`shuffle${_keyCtrlPtn}_0d`][_k]);
|
|
6375
|
+
changeConfigColor(document.getElementById(`sArrow${_k}`), isEqualShuffleGr ? g_cssObj.title_base : g_cssObj.keyconfig_Changekey);
|
|
6376
|
+
};
|
|
6377
|
+
|
|
6378
|
+
if (_j === -1) {
|
|
6379
|
+
_vals.forEach((val, m) => changeTargetColor(val, m));
|
|
6380
|
+
} else {
|
|
6381
|
+
changeTargetColor(_vals, _j);
|
|
6382
|
+
}
|
|
6383
|
+
};
|
|
6384
|
+
|
|
6336
6385
|
/*-----------------------------------------------------------*/
|
|
6337
6386
|
/* Scene : LOADING [strawberry] */
|
|
6338
6387
|
/*-----------------------------------------------------------*/
|
|
@@ -7989,14 +8038,20 @@ const getArrowSettings = _ => {
|
|
|
7989
8038
|
|
|
7990
8039
|
[`color`, `shuffle`].forEach(type => {
|
|
7991
8040
|
const groupNum = g_keycons[`${type}GroupNum`];
|
|
7992
|
-
storageObj[`${type}${
|
|
7993
|
-
g_keyObj[`${type}${g_keyObj.currentKey}_-1_${groupNum}`] = structuredClone(
|
|
7994
|
-
g_keyObj[`${type}${keyCtrlPtn}_${groupNum}`] = structuredClone(
|
|
8041
|
+
storageObj[`${type}${addKey}`] = structuredClone(g_keyObj[`${type}${keyCtrlPtn}_${groupNum}`]);
|
|
8042
|
+
g_keyObj[`${type}${g_keyObj.currentKey}_-1_${groupNum}`] = structuredClone(g_keyObj[`${type}${keyCtrlPtn}_${groupNum}d`]);
|
|
8043
|
+
g_keyObj[`${type}${keyCtrlPtn}_${groupNum}`] = structuredClone(g_keyObj[`${type}${keyCtrlPtn}_${groupNum}d`]);
|
|
8044
|
+
|
|
8045
|
+
// 古いキーデータの削除 (互換用)
|
|
8046
|
+
if (storageObj[`${type}${g_keyObj.currentKey}_-1_-1`] !== undefined) {
|
|
8047
|
+
delete storageObj[`${type}${g_keyObj.currentKey}_-1_-1`];
|
|
8048
|
+
}
|
|
7995
8049
|
});
|
|
7996
8050
|
|
|
7997
8051
|
if (!g_stateObj.extraKeyFlg) {
|
|
7998
8052
|
localStorage.setItem(`danonicw-${g_keyObj.currentKey}k`, JSON.stringify(g_localKeyStorage));
|
|
7999
8053
|
}
|
|
8054
|
+
|
|
8000
8055
|
localStorage.setItem(g_localStorageUrl, JSON.stringify(g_localStorage));
|
|
8001
8056
|
g_canLoadDifInfoFlg = true;
|
|
8002
8057
|
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Source by tickle
|
|
7
7
|
* Created : 2019/11/19
|
|
8
|
-
* Revised : 2022/10/
|
|
8
|
+
* Revised : 2022/10/13 (v28.3.0)
|
|
9
9
|
*
|
|
10
10
|
* https://github.com/cwtickle/danoniplus
|
|
11
11
|
*/
|
|
@@ -238,7 +238,7 @@ const updateWindowSiz = _ => {
|
|
|
238
238
|
x: 0, w: 50, h: 15, siz: 11, align: C_ALIGN_LEFT, background: `#${g_headerObj.baseBrightFlg ? `eeeeee` : `111111`}80`,
|
|
239
239
|
},
|
|
240
240
|
lnkColorCopy: {
|
|
241
|
-
x: 35, y: -5, w: 30, h: 20, siz: 14,
|
|
241
|
+
x: 35, y: -5, w: 30, h: 20, siz: 14, title: g_msgObj.pickColorCopy,
|
|
242
242
|
},
|
|
243
243
|
|
|
244
244
|
btnKcBack: {
|
|
@@ -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
|
-
|
|
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 = {
|
|
@@ -2052,7 +2054,7 @@ const g_keyObj = {
|
|
|
2052
2054
|
// 矢印群の倍率指定
|
|
2053
2055
|
scale: 1,
|
|
2054
2056
|
scale_def: 1,
|
|
2055
|
-
scale17_0: 0.
|
|
2057
|
+
scale17_0: 0.95,
|
|
2056
2058
|
|
|
2057
2059
|
// ショートカットキーコード
|
|
2058
2060
|
keyRetry: 8,
|
|
@@ -2542,7 +2544,7 @@ const g_keyObj = {
|
|
|
2542
2544
|
minWidth11i: 650,
|
|
2543
2545
|
minWidth13: 650,
|
|
2544
2546
|
minWidth16i: 650,
|
|
2545
|
-
minWidth17:
|
|
2547
|
+
minWidth17: 825,
|
|
2546
2548
|
minWidth23: 900,
|
|
2547
2549
|
|
|
2548
2550
|
};
|
|
@@ -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: `別キーモードではハイスコア、キーコンフィグ等は保存されません`,
|
|
@@ -3184,6 +3186,9 @@ const g_lang_msgObj = {
|
|
|
3184
3186
|
imgType: `矢印・フリーズアローなどのオブジェクトの見た目を変更します。`,
|
|
3185
3187
|
colorGroup: `矢印・フリーズアロー色グループの割り当てパターンを変更します。`,
|
|
3186
3188
|
shuffleGroup: `Mirror/Asym-Mirror/Random/S-Random選択時、シャッフルするグループを変更します。\n矢印の上にある同じ数字同士でシャッフルします。`,
|
|
3189
|
+
|
|
3190
|
+
pickArrow: `色番号ごとの矢印色(枠、塗りつぶし)、通常時のフリーズアロー色(枠、帯)を\nカラーピッカーから選んで変更できます。`,
|
|
3191
|
+
pickColorCopy: `このボタンを押すと、フリーズアローの配色を矢印(枠)の色で上書きします。\nヒット時のフリーズアローの色も上書きします。`,
|
|
3187
3192
|
},
|
|
3188
3193
|
|
|
3189
3194
|
En: {
|
|
@@ -3235,6 +3240,9 @@ const g_lang_msgObj = {
|
|
|
3235
3240
|
imgType: `Change the appearance of sequences.`,
|
|
3236
3241
|
colorGroup: `Change the sequences color group assignment pattern.`,
|
|
3237
3242
|
shuffleGroup: `Change the shuffle group when Mirror, Asym-Mirror, Random or S-Random are selected.\nShuffle with the same numbers listed above.`,
|
|
3243
|
+
|
|
3244
|
+
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.`,
|
|
3245
|
+
pickColorCopy: `Pressing this button will override the color scheme of the freeze arrow with the frame color of the arrow. \nIt also overrides the color of the freeze arrow on hit.`,
|
|
3238
3246
|
},
|
|
3239
3247
|
|
|
3240
3248
|
};
|