danoniplus 27.7.0 → 28.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.
- package/README.md +14 -4
- package/js/danoni_main.js +42 -25
- package/js/lib/danoni_constants.js +24 -12
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -90,16 +90,26 @@ If you would like to cooperate with the development, please see below. Even if y
|
|
|
90
90
|
## Community / コミュニティ
|
|
91
91
|
- [Dancing☆Onigiri Discordサーバー](https://discord.gg/TegbHFY7zg)
|
|
92
92
|
- [得点報告用Gitter](https://gitter.im/danonicw/freeboard)
|
|
93
|
-
- [Twitter #danoni](https://twitter.com/search?q=%23danoni
|
|
93
|
+
- [Twitter #danoni](https://twitter.com/search?q=%23danoni&src=typed_query&f=live)
|
|
94
94
|
|
|
95
|
-
## Related Tools Repository /
|
|
95
|
+
## Related Tools Repository / 関連リポジトリ・ツール
|
|
96
|
+
### Dancing☆Onigiri
|
|
96
97
|
- [Dancing☆Onigiri エディター(CW Edition 対応)](https://github.com/superkuppabros/danoni-editor) @superkuppabros
|
|
97
98
|
- [ダンおに曲データjs化ツール](https://github.com/suzme/danoni-base64) @suzme
|
|
98
99
|
- [ダンおに矢印色ツール](https://github.com/suzme/danoni-colorpicker) @suzme
|
|
99
|
-
- [Dancing☆Onigiri Chart Reverser](https://github.com/cwtickle/danoniplus-reverser)
|
|
100
|
-
- [Dancing☆Onigiri Chart Converter](https://github.com/cwtickle/danoniplus-converter)
|
|
100
|
+
- [Dancing☆Onigiri Chart Reverser](https://github.com/cwtickle/danoniplus-reverser) @cwtickle
|
|
101
|
+
- [Dancing☆Onigiri Chart Converter](https://github.com/cwtickle/danoniplus-converter) @cwtickle
|
|
101
102
|
- [ダンおにゲージ計算機 (Gauge Calculator)](http://www.omission0.com/other/gauge_calculator/) @goe0
|
|
103
|
+
|
|
104
|
+
### キリズマ
|
|
102
105
|
- [キリズマ譜面データ変換機](https://github.com/suzme/kirizma-converter) @suzme
|
|
106
|
+
- [キリズマ歌詞表示作成ツール](https://github.com/prlg25/kirizma_lyric) @prlg25
|
|
107
|
+
- [キリズマ難易度表](https://github.com/suzme/kirizma) @suzme
|
|
108
|
+
|
|
109
|
+
### Punching◇Panels
|
|
110
|
+
- [Punching◇Panels](https://github.com/cwtickle/punching-panels) @cwtickle
|
|
111
|
+
- [Punching◇Panels エディター](https://github.com/suzme/punpane-editor) @suzme
|
|
112
|
+
- [Punching◇Panels 難易度表](https://github.com/suzme/punpane) @suzme
|
|
103
113
|
|
|
104
114
|
## License / ライセンス
|
|
105
115
|
This software is released under the MIT License, see LICENSE.
|
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/
|
|
7
|
+
* Revised : 2022/08/21
|
|
8
8
|
*
|
|
9
9
|
* https://github.com/cwtickle/danoniplus
|
|
10
10
|
*/
|
|
11
|
-
const g_version = `Ver
|
|
12
|
-
const g_revisedDate = `2022/
|
|
11
|
+
const g_version = `Ver 28.0.0`;
|
|
12
|
+
const g_revisedDate = `2022/08/21`;
|
|
13
13
|
const g_alphaVersion = ``;
|
|
14
14
|
|
|
15
15
|
// カスタム用バージョン (danoni_custom.js 等で指定可)
|
|
@@ -365,7 +365,7 @@ const makeDedupliArray = (_array1, ..._arrays) =>
|
|
|
365
365
|
* @param {array2} _array2d
|
|
366
366
|
* @returns
|
|
367
367
|
*/
|
|
368
|
-
const copyArray2d = _array2d =>
|
|
368
|
+
const copyArray2d = _array2d => structuredClone(_array2d);
|
|
369
369
|
|
|
370
370
|
/**
|
|
371
371
|
* 配列データを合計
|
|
@@ -4224,7 +4224,7 @@ const createOptionWindow = _sprite => {
|
|
|
4224
4224
|
// 速度(Speed)
|
|
4225
4225
|
// 縦位置: 2 短縮ショートカットあり
|
|
4226
4226
|
createGeneralSetting(spriteList.speed, `speed`, {
|
|
4227
|
-
skipTerms:
|
|
4227
|
+
skipTerms: g_settings.speedTerms, hiddenBtn: true, scLabel: g_lblNameObj.sc_speed, roundNum: 5,
|
|
4228
4228
|
unitName: ` ${g_lblNameObj.multi}`,
|
|
4229
4229
|
});
|
|
4230
4230
|
|
|
@@ -4259,45 +4259,59 @@ const createOptionWindow = _sprite => {
|
|
|
4259
4259
|
if (g_headerObj.scoreDetailUse) {
|
|
4260
4260
|
spriteList.speed.appendChild(
|
|
4261
4261
|
createCss2Button(`btnGraph`, `i`, _ => true, {
|
|
4262
|
-
x:
|
|
4262
|
+
x: -25, y: -60, w: 30, h: 30, siz: C_SIZ_JDGCHARA, title: g_msgObj.graph,
|
|
4263
4263
|
resetFunc: _ => setScoreDetail(), cxtFunc: _ => setScoreDetail(),
|
|
4264
4264
|
}, g_cssObj.button_Mini)
|
|
4265
4265
|
);
|
|
4266
4266
|
g_stateObj.scoreDetailViewFlg = false;
|
|
4267
4267
|
const scoreDetail = createEmptySprite(optionsprite, `scoreDetail`, g_windowObj.scoreDetail, g_cssObj.settings_DifSelector);
|
|
4268
|
-
const viewScText = _ => createScText(lnkScoreDetail, `ScoreDetail`, { targetLabel: `lnkScoreDetail`, x: -10 });
|
|
4269
4268
|
|
|
4270
4269
|
/**
|
|
4271
4270
|
* 譜面明細表示の切替
|
|
4272
4271
|
* @param {number} _val
|
|
4273
4272
|
*/
|
|
4274
|
-
const changeScoreDetail = (_val =
|
|
4273
|
+
const changeScoreDetail = (_val = 0) => {
|
|
4274
|
+
if (g_currentPage === `difSelector`) {
|
|
4275
|
+
resetDifWindow();
|
|
4276
|
+
}
|
|
4275
4277
|
g_stateObj.scoreDetailViewFlg = true;
|
|
4276
4278
|
scoreDetail.style.visibility = `visible`;
|
|
4279
|
+
|
|
4280
|
+
// 表示内容を非表示化、ボタン色をデフォルトに戻す
|
|
4277
4281
|
$id(`detail${g_stateObj.scoreDetail}`).visibility = `hidden`;
|
|
4278
|
-
|
|
4279
|
-
|
|
4282
|
+
document.getElementById(`lnk${g_stateObj.scoreDetail}G`).classList.replace(g_cssObj.button_Setting, g_cssObj.button_Default);
|
|
4283
|
+
|
|
4284
|
+
// 選択先を表示、ボタン色を選択中に変更
|
|
4285
|
+
// Qキーを押したときのリンク先を次の明細へ変更
|
|
4286
|
+
g_stateObj.scoreDetail = g_settings.scoreDetails[_val];
|
|
4287
|
+
[`option`, `difSelector`].forEach(page => g_shortcutObj[page].KeyQ.id = g_settings.scoreDetailCursors[(_val + 1) % g_settings.scoreDetailCursors.length]);
|
|
4288
|
+
|
|
4280
4289
|
$id(`detail${g_stateObj.scoreDetail}`).visibility = `visible`;
|
|
4290
|
+
document.getElementById(`lnk${g_stateObj.scoreDetail}G`).classList.replace(g_cssObj.button_Default, g_cssObj.button_Setting);
|
|
4281
4291
|
};
|
|
4282
4292
|
|
|
4283
4293
|
multiAppend(scoreDetail,
|
|
4284
4294
|
createScoreDetail(`Speed`),
|
|
4285
4295
|
createScoreDetail(`Density`),
|
|
4286
4296
|
createScoreDetail(`ToolDif`, false),
|
|
4287
|
-
makeSettingLblCssButton(`lnkScoreDetailB`, `- - -`, 0, _ => changeScoreDetail(-1),
|
|
4288
|
-
g_lblPosObj.lnkScoreDetailB, g_cssObj.button_RevON),
|
|
4289
|
-
makeSettingLblCssButton(`lnkScoreDetail`, `${getStgDetailName(g_stateObj.scoreDetail)}`, 0, _ => changeScoreDetail(),
|
|
4290
|
-
Object.assign(g_lblPosObj.lnkScoreDetail, {
|
|
4291
|
-
cxtFunc: _ => changeScoreDetail(-1),
|
|
4292
|
-
}), g_cssObj.button_RevON),
|
|
4293
4297
|
);
|
|
4294
|
-
|
|
4298
|
+
g_settings.scoreDetails.forEach((sd, j) => {
|
|
4299
|
+
scoreDetail.appendChild(
|
|
4300
|
+
makeDifLblCssButton(`lnk${sd}G`, getStgDetailName(sd), j, _ => changeScoreDetail(j), { w: C_LEN_DIFCOVER_WIDTH, btnStyle: (g_stateObj.scoreDetail === sd ? `Setting` : `Default`) })
|
|
4301
|
+
);
|
|
4302
|
+
createScText(document.getElementById(`lnk${sd}G`), `${sd}G`, { targetLabel: `lnk${sd}G`, x: -10 });
|
|
4303
|
+
});
|
|
4295
4304
|
}
|
|
4296
4305
|
|
|
4297
4306
|
/**
|
|
4298
4307
|
* 譜面明細表示/非表示ボタンの処理
|
|
4299
4308
|
*/
|
|
4300
4309
|
const setScoreDetail = _ => {
|
|
4310
|
+
if (g_currentPage === `difSelector`) {
|
|
4311
|
+
resetDifWindow();
|
|
4312
|
+
g_stateObj.scoreDetailViewFlg = false;
|
|
4313
|
+
g_shortcutObj.difSelector.KeyQ.id = g_settings.scoreDetailCursors[0];
|
|
4314
|
+
}
|
|
4301
4315
|
const scoreDetail = document.querySelector(`#scoreDetail`);
|
|
4302
4316
|
const detailObj = document.querySelector(`#detail${g_stateObj.scoreDetail}`);
|
|
4303
4317
|
const visibles = [`hidden`, `visible`];
|
|
@@ -4305,6 +4319,9 @@ const createOptionWindow = _sprite => {
|
|
|
4305
4319
|
g_stateObj.scoreDetailViewFlg = !g_stateObj.scoreDetailViewFlg;
|
|
4306
4320
|
scoreDetail.style.visibility = visibles[Number(g_stateObj.scoreDetailViewFlg)];
|
|
4307
4321
|
detailObj.style.visibility = visibles[Number(g_stateObj.scoreDetailViewFlg)];
|
|
4322
|
+
|
|
4323
|
+
// Qキーを押したときのカーソル位置を先頭に初期化
|
|
4324
|
+
g_shortcutObj.option.KeyQ.id = g_settings.scoreDetailCursors[0];
|
|
4308
4325
|
};
|
|
4309
4326
|
|
|
4310
4327
|
/**
|
|
@@ -4381,7 +4398,7 @@ const createOptionWindow = _sprite => {
|
|
|
4381
4398
|
context.font = `${C_SIZ_DIFSELECTOR}px ${getBasicFont()}`;
|
|
4382
4399
|
context.fillText(speedType, lineX + 35, 218);
|
|
4383
4400
|
|
|
4384
|
-
updateScoreDetailLabel(`Speed`,
|
|
4401
|
+
updateScoreDetailLabel(`Speed`, `${speedType}S`, speedObj[speedType].cnt, j, g_lblNameObj[`s_${speedType}`]);
|
|
4385
4402
|
});
|
|
4386
4403
|
};
|
|
4387
4404
|
|
|
@@ -4421,10 +4438,10 @@ const createOptionWindow = _sprite => {
|
|
|
4421
4438
|
});
|
|
4422
4439
|
|
|
4423
4440
|
const obj = getScoreBaseData(_scoreId);
|
|
4424
|
-
updateScoreDetailLabel(`Density`,
|
|
4425
|
-
updateScoreDetailLabel(`Density`,
|
|
4426
|
-
updateScoreDetailLabel(`Density`,
|
|
4427
|
-
updateScoreDetailLabel(`Density`,
|
|
4441
|
+
updateScoreDetailLabel(`Density`, `APM`, obj.apm, 0, g_lblNameObj.s_apm);
|
|
4442
|
+
updateScoreDetailLabel(`Density`, `Time`, obj.playingTime, 1, g_lblNameObj.s_time);
|
|
4443
|
+
updateScoreDetailLabel(`Density`, `Arrow`, obj.arrowCnts, 3, g_lblNameObj.s_arrow);
|
|
4444
|
+
updateScoreDetailLabel(`Density`, `Frz`, obj.frzCnts, 4, g_lblNameObj.s_frz);
|
|
4428
4445
|
};
|
|
4429
4446
|
|
|
4430
4447
|
/**
|
|
@@ -4439,7 +4456,7 @@ const createOptionWindow = _sprite => {
|
|
|
4439
4456
|
const baseLabel = (_bLabel, _bLabelname, _bAlign) =>
|
|
4440
4457
|
document.querySelector(`#detail${_name}`).appendChild(
|
|
4441
4458
|
createDivCss2Label(`${_bLabel}`, `${_bLabelname}`, {
|
|
4442
|
-
x: 10, y:
|
|
4459
|
+
x: 10, y: 105 + _pos * 20, w: 100, h: 20, siz: C_SIZ_DIFSELECTOR, align: _bAlign,
|
|
4443
4460
|
})
|
|
4444
4461
|
);
|
|
4445
4462
|
if (document.querySelector(`#data${_label}`) === null) {
|
|
@@ -4544,7 +4561,7 @@ const createOptionWindow = _sprite => {
|
|
|
4544
4561
|
makeDifInfoLabel(`dataArrowInfo`, ``, g_lblPosObj.dataArrowInfo),
|
|
4545
4562
|
makeDifInfoLabel(`lblArrowInfo2`, ``, g_lblPosObj.lblArrowInfo2),
|
|
4546
4563
|
makeDifInfoLabel(`dataArrowInfo2`, ``, g_lblPosObj.dataArrowInfo2),
|
|
4547
|
-
|
|
4564
|
+
makeDifLblCssButton(`lnkDifInfo`, g_lblNameObj.s_print, 8, _ => {
|
|
4548
4565
|
copyTextToClipboard(
|
|
4549
4566
|
`****** ${g_lblNameObj.s_printTitle} [${g_version}] ******\r\n\r\n`
|
|
4550
4567
|
+ `\t${g_lblNameObj.s_printHeader}\r\n\r\n${printData}`, g_msgInfoObj.I_0003
|
|
@@ -4814,7 +4831,7 @@ const createOptionWindow = _sprite => {
|
|
|
4814
4831
|
// タイミング調整 (Adjustment)
|
|
4815
4832
|
// 縦位置: 10 短縮ショートカットあり
|
|
4816
4833
|
createGeneralSetting(spriteList.adjustment, `adjustment`, {
|
|
4817
|
-
skipTerms:
|
|
4834
|
+
skipTerms: g_settings.adjustmentTerms, hiddenBtn: true, scLabel: g_lblNameObj.sc_adjustment, roundNum: 5,
|
|
4818
4835
|
unitName: g_lblNameObj.frame,
|
|
4819
4836
|
});
|
|
4820
4837
|
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Source by tickle
|
|
7
7
|
* Created : 2019/11/19
|
|
8
|
-
* Revised : 2022/
|
|
8
|
+
* Revised : 2022/08/21 (v28.0.0)
|
|
9
9
|
*
|
|
10
10
|
* https://github.com/cwtickle/danoniplus
|
|
11
11
|
*/
|
|
@@ -171,13 +171,6 @@ const updateWindowSiz = _ => {
|
|
|
171
171
|
},
|
|
172
172
|
|
|
173
173
|
/** 設定: 譜面明細子画面 */
|
|
174
|
-
lnkScoreDetailB: {
|
|
175
|
-
x: 10, w: 100, visibility: `hidden`,
|
|
176
|
-
},
|
|
177
|
-
lnkScoreDetail: {
|
|
178
|
-
x: 10, w: 100, borderStyle: `solid`,
|
|
179
|
-
},
|
|
180
|
-
|
|
181
174
|
lblTooldif: {
|
|
182
175
|
y: 5, w: 250, siz: C_SIZ_JDGCNTS,
|
|
183
176
|
},
|
|
@@ -207,7 +200,7 @@ const updateWindowSiz = _ => {
|
|
|
207
200
|
x: 140, y: 70, w: 275, h: 150, overflow: `auto`,
|
|
208
201
|
},
|
|
209
202
|
lnkDifInfo: {
|
|
210
|
-
|
|
203
|
+
w: C_LEN_DIFCOVER_WIDTH, borderStyle: `solid`,
|
|
211
204
|
},
|
|
212
205
|
|
|
213
206
|
/** ディスプレイ画面 */
|
|
@@ -750,6 +743,7 @@ let g_appearanceRanges = [`Hidden+`, `Sudden+`, `Hid&Sud+`];
|
|
|
750
743
|
const g_settings = {
|
|
751
744
|
speeds: [...Array((C_MAX_SPEED - C_MIN_SPEED) * 20 + 1).keys()].map(i => C_MIN_SPEED + i / 20),
|
|
752
745
|
speedNum: 0,
|
|
746
|
+
speedTerms: [20, 5, 1],
|
|
753
747
|
|
|
754
748
|
motions: [C_FLG_OFF, `Boost`, `Brake`],
|
|
755
749
|
motionNum: 0,
|
|
@@ -771,6 +765,7 @@ const g_settings = {
|
|
|
771
765
|
|
|
772
766
|
adjustments: [...Array(C_MAX_ADJUSTMENT * 20 + 1).keys()].map(i => (i - C_MAX_ADJUSTMENT * 10) / 10),
|
|
773
767
|
adjustmentNum: C_MAX_ADJUSTMENT * 10,
|
|
768
|
+
adjustmentTerms: (g_isFile ? [50, 10, 1] : [50, 10, 5]),
|
|
774
769
|
|
|
775
770
|
volumes: [0, 0.5, 1, 2, 5, 10, 25, 50, 75, 100],
|
|
776
771
|
|
|
@@ -783,11 +778,13 @@ const g_settings = {
|
|
|
783
778
|
opacitys: [10, 25, 50, 75, 100],
|
|
784
779
|
|
|
785
780
|
scoreDetails: [`Speed`, `Density`, `ToolDif`],
|
|
786
|
-
|
|
781
|
+
scoreDetailCursors: [],
|
|
787
782
|
};
|
|
788
783
|
|
|
789
784
|
g_settings.volumeNum = g_settings.volumes.length - 1;
|
|
790
785
|
g_settings.opacityNum = g_settings.opacitys.length - 1;
|
|
786
|
+
g_settings.scoreDetailCursors = g_settings.scoreDetails.map(val => `lnk${val}G`);
|
|
787
|
+
g_settings.scoreDetailCursors.push(`btnGraph`);
|
|
791
788
|
|
|
792
789
|
/**
|
|
793
790
|
* 設定画面間移動
|
|
@@ -1192,8 +1189,13 @@ const g_shortcutObj = {
|
|
|
1192
1189
|
KeyV: { id: `lnkVolumeR` },
|
|
1193
1190
|
|
|
1194
1191
|
KeyI: { id: `btnGraph` },
|
|
1195
|
-
|
|
1196
|
-
|
|
1192
|
+
Digit1: { id: `lnkSpeedG` },
|
|
1193
|
+
Digit2: { id: `lnkDensityG` },
|
|
1194
|
+
Digit3: { id: `lnkToolDifG` },
|
|
1195
|
+
Numpad1: { id: `lnkSpeedG` },
|
|
1196
|
+
Numpad2: { id: `lnkDensityG` },
|
|
1197
|
+
Numpad3: { id: `lnkToolDifG` },
|
|
1198
|
+
KeyQ: { id: `lnkSpeedG` },
|
|
1197
1199
|
KeyP: { id: `lnkDifInfo` },
|
|
1198
1200
|
KeyZ: { id: `btnSave` },
|
|
1199
1201
|
|
|
@@ -1212,6 +1214,16 @@ const g_shortcutObj = {
|
|
|
1212
1214
|
ArrowDown: { id: `btnDifD` },
|
|
1213
1215
|
ArrowUp: { id: `btnDifU` },
|
|
1214
1216
|
|
|
1217
|
+
KeyI: { id: `btnGraph` },
|
|
1218
|
+
Digit1: { id: `lnkSpeedG` },
|
|
1219
|
+
Digit2: { id: `lnkDensityG` },
|
|
1220
|
+
Digit3: { id: `lnkToolDifG` },
|
|
1221
|
+
Numpad1: { id: `lnkSpeedG` },
|
|
1222
|
+
Numpad2: { id: `lnkDensityG` },
|
|
1223
|
+
Numpad3: { id: `lnkToolDifG` },
|
|
1224
|
+
KeyQ: { id: `lnkSpeedG` },
|
|
1225
|
+
KeyP: { id: `lnkDifInfo` },
|
|
1226
|
+
|
|
1215
1227
|
Escape: { id: `btnBack` },
|
|
1216
1228
|
Space: { id: `btnKeyConfig` },
|
|
1217
1229
|
Enter: { id: `lnkDifficulty` },
|