danoniplus 43.4.0 → 43.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 +33 -10
- package/js/lib/danoni_constants.js +11 -9
- package/package.json +1 -1
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 : 2026/01/
|
|
7
|
+
* Revised : 2026/01/12
|
|
8
8
|
*
|
|
9
9
|
* https://github.com/cwtickle/danoniplus
|
|
10
10
|
*/
|
|
11
|
-
const g_version = `Ver 43.
|
|
12
|
-
const g_revisedDate = `2026/01/
|
|
11
|
+
const g_version = `Ver 43.5.0`;
|
|
12
|
+
const g_revisedDate = `2026/01/12`;
|
|
13
13
|
|
|
14
14
|
// カスタム用バージョン (danoni_custom.js 等で指定可)
|
|
15
15
|
let g_localVersion = ``;
|
|
@@ -3551,10 +3551,6 @@ const headerConvert = _dosObj => {
|
|
|
3551
3551
|
setIntVal(getQueryParamVal(`h`), g_sHeight), g_sHeight);
|
|
3552
3552
|
$id(`canvas-frame`).height = wUnit(g_sHeight);
|
|
3553
3553
|
}
|
|
3554
|
-
if (!(_dosObj.heightVariable || g_presetObj.heightVariable || false)) {
|
|
3555
|
-
obj.heightLockFlg = true;
|
|
3556
|
-
g_settings.playWindows = g_settings.playWindows.filter(val => !val.endsWith(`Slope`) && !val.endsWith(`SideScroll`));
|
|
3557
|
-
}
|
|
3558
3554
|
|
|
3559
3555
|
// 曲名
|
|
3560
3556
|
obj.musicTitles = [`musicName`];
|
|
@@ -8408,8 +8404,6 @@ const exSettingInit = () => {
|
|
|
8408
8404
|
const spriteList = setSpriteList(g_settingPos.exSetting);
|
|
8409
8405
|
|
|
8410
8406
|
createGeneralSetting(spriteList.playWindow, `playWindow`);
|
|
8411
|
-
lblPlayWindow.title += g_headerObj.heightLockFlg ? g_msgObj.sideScrollDisable : g_msgObj.sideScrollMsg;
|
|
8412
|
-
|
|
8413
8407
|
createGeneralSetting(spriteList.stepArea, `stepArea`);
|
|
8414
8408
|
createGeneralSetting(spriteList.frzReturn, `frzReturn`);
|
|
8415
8409
|
createGeneralSetting(spriteList.shaking, `shaking`);
|
|
@@ -11337,6 +11331,7 @@ const getArrowSettings = () => {
|
|
|
11337
11331
|
g_workObj.scrollDir = [];
|
|
11338
11332
|
g_workObj.scrollDirDefault = [];
|
|
11339
11333
|
g_workObj.dividePos = [];
|
|
11334
|
+
g_workObj.scale = g_keyObj.scale;
|
|
11340
11335
|
g_workObj.stepRtn = structuredClone(g_keyObj[`stepRtn${keyCtrlPtn}`]);
|
|
11341
11336
|
g_workObj.stepHitRtn = structuredClone(g_keyObj[`stepRtn${keyCtrlPtn}`]);
|
|
11342
11337
|
g_workObj.arrowRtn = structuredClone(g_keyObj[`stepRtn${keyCtrlPtn}`]);
|
|
@@ -11344,6 +11339,34 @@ const getArrowSettings = () => {
|
|
|
11344
11339
|
g_workObj.diffList = [];
|
|
11345
11340
|
g_workObj.mainEndTime = 0;
|
|
11346
11341
|
|
|
11342
|
+
const rotateBy = (val, delta) => {
|
|
11343
|
+
// numeric
|
|
11344
|
+
const n = Number(val);
|
|
11345
|
+
if (Number.isFinite(n)) return n + delta;
|
|
11346
|
+
|
|
11347
|
+
// "type:deg"
|
|
11348
|
+
const [type, degStr = `0`] = String(val).split(`:`);
|
|
11349
|
+
const deg = Number(degStr);
|
|
11350
|
+
return Number.isFinite(deg) ? `${type}:${deg + delta}` : val;
|
|
11351
|
+
};
|
|
11352
|
+
const changeStepRtn = (_name, _angle) =>
|
|
11353
|
+
g_workObj[_name] = g_workObj[_name].map(v => rotateBy(v, _angle));
|
|
11354
|
+
|
|
11355
|
+
if (g_stateObj.playWindow.endsWith(`SideScroll`)) {
|
|
11356
|
+
if (g_stateObj.rotateEnabled) {
|
|
11357
|
+
const sign = g_stateObj.playWindow === `SideScroll` ? 1 : -1;
|
|
11358
|
+
changeStepRtn(`stepRtn`, 90 * sign);
|
|
11359
|
+
changeStepRtn(`stepHitRtn`, 90 * sign);
|
|
11360
|
+
changeStepRtn(`arrowRtn`, 90 * sign);
|
|
11361
|
+
}
|
|
11362
|
+
const div = g_keyObj[`div${keyCtrlPtn}`];
|
|
11363
|
+
const divMax = g_keyObj[`divMax${keyCtrlPtn}`] ?? posMax;
|
|
11364
|
+
const denom = (Math.max(div, divMax - div) + 1) * g_keyObj.blank;
|
|
11365
|
+
if (Number.isFinite(denom) && denom > 0) {
|
|
11366
|
+
g_workObj.scale *= Math.min(g_sHeight / denom, 1);
|
|
11367
|
+
}
|
|
11368
|
+
}
|
|
11369
|
+
|
|
11347
11370
|
g_workObj.keyGroupMaps = tkObj.keyGroupMaps;
|
|
11348
11371
|
g_workObj.keyGroupList = tkObj.keyGroupList;
|
|
11349
11372
|
|
|
@@ -11733,7 +11756,7 @@ const mainInit = () => {
|
|
|
11733
11756
|
|
|
11734
11757
|
// ステップゾーン、矢印のメインスプライトを作成
|
|
11735
11758
|
const mainSprite = createEmptySprite(divRoot, `mainSprite`, mainCommonPos);
|
|
11736
|
-
addTransform(`mainSprite`, `root`, `scale(${
|
|
11759
|
+
addTransform(`mainSprite`, `root`, `scale(${g_workObj.scale})`);
|
|
11737
11760
|
addXY(`mainSprite`, `root`, g_workObj.playingX, g_posObj.stepY - C_STEP_Y + g_headerObj.playingY);
|
|
11738
11761
|
|
|
11739
11762
|
// 曲情報・判定カウント用スプライトを作成(メインスプライトより上位)
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Source by tickle
|
|
7
7
|
* Created : 2019/11/19
|
|
8
|
-
* Revised : 2026/01/
|
|
8
|
+
* Revised : 2026/01/12 (v43.5.0)
|
|
9
9
|
*
|
|
10
10
|
* https://github.com/cwtickle/danoniplus
|
|
11
11
|
*/
|
|
@@ -165,6 +165,10 @@ $id(`canvas-frame`).margin = C_DIS_AUTO;
|
|
|
165
165
|
|
|
166
166
|
const g_btnWidth = (_multi = 1) => Math.min(g_sWidth, g_limitObj.btnBaseWidth) * _multi;
|
|
167
167
|
const g_btnX = (_multi = 0) => g_btnWidth(_multi) + Math.max((g_sWidth - g_limitObj.btnBaseWidth) / 2, 0);
|
|
168
|
+
const g_slopeAngle = () => (Math.atan2(
|
|
169
|
+
g_sHeight,
|
|
170
|
+
g_keyObj[`minWidth${g_headerObj.keyLabels[g_stateObj.scoreId]}`] || g_keyObj.minWidthDefault
|
|
171
|
+
) * 180) / Math.PI * 2 - 40;
|
|
168
172
|
|
|
169
173
|
// 固定ウィンドウサイズ
|
|
170
174
|
const g_windowObj = {
|
|
@@ -1543,8 +1547,8 @@ const g_playWindowFunc = new Map([
|
|
|
1543
1547
|
['Default', () => ``],
|
|
1544
1548
|
['Stairs', () => g_changeStairs(-8)],
|
|
1545
1549
|
['R-Stairs', () => g_changeStairs(8)],
|
|
1546
|
-
['Slope', () => g_changeStairs(-
|
|
1547
|
-
['R-Slope', () => g_changeStairs(
|
|
1550
|
+
['Slope', () => g_changeStairs(-g_slopeAngle())],
|
|
1551
|
+
['R-Slope', () => g_changeStairs(g_slopeAngle())],
|
|
1548
1552
|
['Distorted', () => g_changeSkew(-15)],
|
|
1549
1553
|
['R-Distorted', () => g_changeSkew(15)],
|
|
1550
1554
|
['SideScroll', () => g_changeStairs(-90)],
|
|
@@ -4288,9 +4292,8 @@ const g_lang_msgObj = {
|
|
|
4288
4292
|
d_arroweffect: `矢印・フリーズアローモーションの有効化設定`,
|
|
4289
4293
|
d_special: `作品固有の特殊演出の有効化設定`,
|
|
4290
4294
|
|
|
4291
|
-
playWindow: `ステップゾーン及び矢印の位置を全体的に回転する等の設定です。\n[Stairs/Slope] ステップゾーンを階段状にします\n[Distorted]
|
|
4292
|
-
|
|
4293
|
-
sideScrollDisable: `\n\nウィンドウの高さの自動拡張が無効のため、Slope, SideScrollは使用できません`,
|
|
4295
|
+
playWindow: `ステップゾーン及び矢印の位置を全体的に回転する等の設定です。\n[Stairs/Slope] ステップゾーンを階段状にします\n[Distorted] 画面を歪ませます\n` +
|
|
4296
|
+
`[SideScroll] 横スクロールモードになります`,
|
|
4294
4297
|
stepArea: `ステップゾーンの位置を変更します。\n[Halfway] ステップゾーンが中央に表示されます\n[2Step] ステップゾーンが2段に分かれて流れてきます\n` +
|
|
4295
4298
|
`[Mismatched/R-Mismatched] スクロールの向きが上下で異なる方向に流れます\n` +
|
|
4296
4299
|
`[X-Flower] レーンが花びらのように広がります\n[Alt-Crossing] レーンが交互に違う方向から流れます`,
|
|
@@ -4382,9 +4385,8 @@ const g_lang_msgObj = {
|
|
|
4382
4385
|
d_arroweffect: `Enable sequences' animations`,
|
|
4383
4386
|
d_special: `Enable setting of special effects to the work`,
|
|
4384
4387
|
|
|
4385
|
-
playWindow: `This is the setting for overall rotation of the step zone and arrow position, etc.\n[Stairs/Slope] The step zone is in a staircase shape.\n[Distorted] Distorts the screen
|
|
4386
|
-
|
|
4387
|
-
sideScrollDisable: `\n\nSlope, SideScroll cannot be used because \nautomatic window height expansion is disabled.`,
|
|
4388
|
+
playWindow: `This is the setting for overall rotation of the step zone and arrow position, etc.\n[Stairs/Slope] The step zone is in a staircase shape.\n[Distorted] Distorts the screen.\n` +
|
|
4389
|
+
`[SideScroll] It becomes a side scroll mode.`,
|
|
4388
4390
|
stepArea: `Change the position of the step zone.\n[Halfway] Step zones are centered.\n[2Step] Step zones are divided into two layers.\n` +
|
|
4389
4391
|
`[Mismatched/R-Mismatched] Scroll direction flows in different directions up and down.\n` +
|
|
4390
4392
|
`[X-Flower] Lanes spread out like flower petals.\n[Alt-Crossing] Lanes flow from different directions alternately.`,
|