danoniplus 43.0.1 → 43.1.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.
- package/js/danoni_main.js +10 -6
- package/js/lib/danoni_constants.js +69 -24
- 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 : 2025/09/
|
|
7
|
+
* Revised : 2025/09/21
|
|
8
8
|
*
|
|
9
9
|
* https://github.com/cwtickle/danoniplus
|
|
10
10
|
*/
|
|
11
|
-
const g_version = `Ver 43.
|
|
12
|
-
const g_revisedDate = `2025/09/
|
|
11
|
+
const g_version = `Ver 43.1.1`;
|
|
12
|
+
const g_revisedDate = `2025/09/21`;
|
|
13
13
|
|
|
14
14
|
// カスタム用バージョン (danoni_custom.js 等で指定可)
|
|
15
15
|
let g_localVersion = ``;
|
|
@@ -11289,12 +11289,16 @@ const getArrowSettings = () => {
|
|
|
11289
11289
|
|
|
11290
11290
|
// StepArea(Default, Halfway以外)によるレイヤー移動
|
|
11291
11291
|
// ずらした位置に表示するため、レイヤーを倍化して倍化した先に割り当てる
|
|
11292
|
-
|
|
11292
|
+
const assignLayer = _func => {
|
|
11293
11293
|
for (let j = 0; j < keyNum; j++) {
|
|
11294
|
-
g_workObj.dividePos[j] = (
|
|
11295
|
-
g_stateObj.layerNumDf + g_workObj.dividePos[j];
|
|
11294
|
+
g_workObj.dividePos[j] = (_func(j) ? 0 : 1) * g_stateObj.layerNumDf + g_workObj.dividePos[j];
|
|
11296
11295
|
}
|
|
11297
11296
|
}
|
|
11297
|
+
if (g_stateObj.stepArea === `X-Flower` || (g_stateObj.stepArea.includes(`Mismatched`) && g_workObj.orgFlatFlg)) {
|
|
11298
|
+
assignLayer(j => g_workObj.stepX[j] < (g_headerObj.playingWidth - C_ARW_WIDTH) / 2);
|
|
11299
|
+
} else if (g_stateObj.stepArea === `Alt-Crossing`) {
|
|
11300
|
+
assignLayer(j => Math.round(g_keyObj[`pos${keyCtrlPtn}`][j]) % 2 === 0);
|
|
11301
|
+
}
|
|
11298
11302
|
if (g_stateObj.stepArea === `2Step`) {
|
|
11299
11303
|
for (let j = 0; j < keyNum; j++) {
|
|
11300
11304
|
if (g_workObj.orgFlatFlg && g_workObj.stepX[j] >= (g_headerObj.playingWidth - C_ARW_WIDTH) / 2) {
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Source by tickle
|
|
7
7
|
* Created : 2019/11/19
|
|
8
|
-
* Revised : 2025/09/
|
|
8
|
+
* Revised : 2025/09/21 (v43.1.1)
|
|
9
9
|
*
|
|
10
10
|
* https://github.com/cwtickle/danoniplus
|
|
11
11
|
*/
|
|
@@ -1250,14 +1250,14 @@ const g_settings = {
|
|
|
1250
1250
|
playWindows: [`Default`, `Stairs`, `R-Stairs`, `Slope`, `R-Slope`, `Distorted`, `R-Distorted`, `SideScroll`, `R-SideScroll`],
|
|
1251
1251
|
playWindowNum: 0,
|
|
1252
1252
|
|
|
1253
|
-
stepAreas: [`Default`, `Halfway`, `2Step`, `Mismatched`, `R-Mismatched`, `X-Flower`],
|
|
1254
|
-
stepAreaLayers: [`2Step`, `Mismatched`, `R-Mismatched`, `X-Flower`],
|
|
1253
|
+
stepAreas: [`Default`, `Halfway`, `2Step`, `Mismatched`, `R-Mismatched`, `X-Flower`, `Alt-Crossing`],
|
|
1254
|
+
stepAreaLayers: [`2Step`, `Mismatched`, `R-Mismatched`, `X-Flower`, `Alt-Crossing`],
|
|
1255
1255
|
stepAreaNum: 0,
|
|
1256
1256
|
|
|
1257
1257
|
frzReturns: [C_FLG_OFF, `X-Axis`, `Y-Axis`, `Z-Axis`, `Random`, `XY-Axis`, `XZ-Axis`, `YZ-Axis`, `Random+`],
|
|
1258
1258
|
frzReturnNum: 0,
|
|
1259
1259
|
|
|
1260
|
-
shakings: [C_FLG_OFF, `Horizontal`, `Vertical`, `Drunk`],
|
|
1260
|
+
shakings: [C_FLG_OFF, `Horizontal`, `Vertical`, `X-Horizontal`, `X-Vertical`, `Drunk`, `S-Drunk`],
|
|
1261
1261
|
shakingNum: 0,
|
|
1262
1262
|
|
|
1263
1263
|
effects: [C_FLG_OFF, `Dizzy`, `Spin`, `Wave`, `Storm`, `Blinking`, `Squids`],
|
|
@@ -1506,14 +1506,8 @@ const g_shuffleFunc = new Map([
|
|
|
1506
1506
|
applySRandom(keyNum, [[...Array(keyNum).keys()]], `arrow`, `frz`);
|
|
1507
1507
|
applySRandom(keyNum, [[...Array(keyNum).keys()]], `dummyArrow`, `dummyFrz`);
|
|
1508
1508
|
}],
|
|
1509
|
-
['Scatter', (keyNum, shuffleGroup) =>
|
|
1510
|
-
|
|
1511
|
-
applySRandom(keyNum, shuffleGroup, `dummyArrow`, `dummyFrz`);
|
|
1512
|
-
}],
|
|
1513
|
-
['Scatter+', keyNum => {
|
|
1514
|
-
applySRandom(keyNum, [[...Array(keyNum).keys()]], `arrow`, `frz`);
|
|
1515
|
-
applySRandom(keyNum, [[...Array(keyNum).keys()]], `dummyArrow`, `dummyFrz`);
|
|
1516
|
-
}],
|
|
1509
|
+
['Scatter', (keyNum, shuffleGroup) => g_shuffleFunc.get(`S-Random`)(keyNum, shuffleGroup)],
|
|
1510
|
+
['Scatter+', keyNum => g_shuffleFunc.get(`S-Random+`)(keyNum)],
|
|
1517
1511
|
]);
|
|
1518
1512
|
|
|
1519
1513
|
/**
|
|
@@ -1547,8 +1541,12 @@ const g_playWindowFunc = new Map([
|
|
|
1547
1541
|
['R-SideScroll', () => g_changeStairs(90)],
|
|
1548
1542
|
]);
|
|
1549
1543
|
|
|
1544
|
+
/**
|
|
1545
|
+
* StepArea適用関数
|
|
1546
|
+
*/
|
|
1550
1547
|
const g_arrowGroupSprite = [`stepSprite`, `arrowSprite`, `frzHitSprite`];
|
|
1551
1548
|
const halfwayOffset = _j => (_j % 2 === 0 ? 1 : -1) * (g_headerObj.playingHeight / 2 - g_posObj.stepY + (g_posObj.stepYR - C_ARW_WIDTH) / 2);
|
|
1549
|
+
const getDirFromLayer = _j => (_j % 2 === 0 ? 1 : -1) * (_j < g_stateObj.layerNumDf ? 1 : -1);
|
|
1552
1550
|
const g_stepAreaFunc = new Map([
|
|
1553
1551
|
['Default', () => ``],
|
|
1554
1552
|
['Halfway', () => {
|
|
@@ -1560,7 +1558,7 @@ const g_stepAreaFunc = new Map([
|
|
|
1560
1558
|
}],
|
|
1561
1559
|
['Mismatched', () => {
|
|
1562
1560
|
for (let j = 0; j < g_stateObj.layerNum; j++) {
|
|
1563
|
-
addTransform(`mainSprite${j}`, `stepArea`, `rotate(${(j
|
|
1561
|
+
addTransform(`mainSprite${j}`, `stepArea`, `rotate(${getDirFromLayer(j) * -15}deg)`);
|
|
1564
1562
|
}
|
|
1565
1563
|
if (g_workObj.orgFlatFlg) {
|
|
1566
1564
|
g_arrowGroupSprite.forEach(sprite => {
|
|
@@ -1572,7 +1570,7 @@ const g_stepAreaFunc = new Map([
|
|
|
1572
1570
|
}],
|
|
1573
1571
|
['R-Mismatched', () => {
|
|
1574
1572
|
for (let j = 0; j < g_stateObj.layerNum; j++) {
|
|
1575
|
-
addTransform(`mainSprite${j}`, `stepArea`, `rotate(${(j
|
|
1573
|
+
addTransform(`mainSprite${j}`, `stepArea`, `rotate(${getDirFromLayer(j) * 15}deg)`);
|
|
1576
1574
|
}
|
|
1577
1575
|
if (g_workObj.orgFlatFlg) {
|
|
1578
1576
|
g_arrowGroupSprite.forEach(sprite => {
|
|
@@ -1591,7 +1589,13 @@ const g_stepAreaFunc = new Map([
|
|
|
1591
1589
|
}],
|
|
1592
1590
|
['X-Flower', () => {
|
|
1593
1591
|
for (let j = 0; j < g_stateObj.layerNum; j++) {
|
|
1594
|
-
addTransform(`mainSprite${j}`, `stepArea`, `rotate(${(j
|
|
1592
|
+
addTransform(`mainSprite${j}`, `stepArea`, `rotate(${getDirFromLayer(j) * -15}deg)`);
|
|
1593
|
+
}
|
|
1594
|
+
}],
|
|
1595
|
+
['Alt-Crossing', () => {
|
|
1596
|
+
for (let j = 0; j < g_stateObj.layerNum; j++) {
|
|
1597
|
+
addTransform(`mainSprite${j}`, `stepArea`, `rotate(${getDirFromLayer(j) * -10}deg) ` +
|
|
1598
|
+
`translateX(${getDirFromLayer(j) * 20}px)`);
|
|
1595
1599
|
}
|
|
1596
1600
|
}],
|
|
1597
1601
|
]);
|
|
@@ -1599,28 +1603,50 @@ const g_stepAreaFunc = new Map([
|
|
|
1599
1603
|
/**
|
|
1600
1604
|
* Shaking適用関数
|
|
1601
1605
|
*/
|
|
1606
|
+
const getShakingDist = () => (Math.abs((g_scoreObj.baseFrame / 2) % 100 - 50) - 25);
|
|
1602
1607
|
const g_shakingFunc = new Map([
|
|
1603
1608
|
['OFF', () => true],
|
|
1604
|
-
['Horizontal', () => addX(`mainSprite`, `shaking`, (
|
|
1605
|
-
['Vertical', () => addY(`mainSprite`, `shaking`, (
|
|
1609
|
+
['Horizontal', () => addX(`mainSprite`, `shaking`, getShakingDist())],
|
|
1610
|
+
['Vertical', () => addY(`mainSprite`, `shaking`, getShakingDist() / 2)],
|
|
1611
|
+
['X-Horizontal', () => {
|
|
1612
|
+
for (let j = 0; j < g_stateObj.layerNum; j++) {
|
|
1613
|
+
addX(`mainSprite${j}`, `shaking`, getDirFromLayer(j) * (4 / 3) * getShakingDist());
|
|
1614
|
+
}
|
|
1615
|
+
}],
|
|
1616
|
+
['X-Vertical', () => {
|
|
1617
|
+
for (let j = 0; j < g_stateObj.layerNum; j++) {
|
|
1618
|
+
addY(`mainSprite${j}`, `shaking`, getDirFromLayer(j) * getShakingDist());
|
|
1619
|
+
}
|
|
1620
|
+
}],
|
|
1606
1621
|
['Drunk', () => {
|
|
1607
|
-
|
|
1622
|
+
const shakeX = g_posXs.mainSprite?.get(`shaking`) ?? 0;
|
|
1623
|
+
const shakeY = g_posYs.mainSprite?.get(`shaking`) ?? 0;
|
|
1624
|
+
if (shakeX === 0 && shakeY === 0) {
|
|
1608
1625
|
g_workObj.drunkXFlg = Math.random() < 0.5;
|
|
1609
1626
|
g_workObj.drunkYFlg = Math.random() < 0.5;
|
|
1610
1627
|
}
|
|
1611
1628
|
if (g_workObj.drunkXFlg) {
|
|
1612
|
-
const deltaX = (
|
|
1629
|
+
const deltaX = getShakingDist();
|
|
1613
1630
|
addX(`mainSprite`, `shaking`, deltaX);
|
|
1614
1631
|
addX(`infoSprite`, `shaking`, deltaX);
|
|
1615
1632
|
addX(`judgeSprite`, `shaking`, deltaX);
|
|
1616
1633
|
}
|
|
1617
1634
|
if (g_workObj.drunkYFlg) {
|
|
1618
|
-
const deltaY = (
|
|
1635
|
+
const deltaY = getShakingDist() / 2;
|
|
1619
1636
|
addY(`mainSprite`, `shaking`, deltaY);
|
|
1620
1637
|
addY(`infoSprite`, `shaking`, deltaY);
|
|
1621
1638
|
addY(`judgeSprite`, `shaking`, deltaY);
|
|
1622
1639
|
}
|
|
1623
1640
|
}],
|
|
1641
|
+
['S-Drunk', () => {
|
|
1642
|
+
g_shakingFunc.get(`Drunk`)();
|
|
1643
|
+
if (g_workObj.drunkXFlg) {
|
|
1644
|
+
g_shakingFunc.get(`X-Vertical`)();
|
|
1645
|
+
}
|
|
1646
|
+
if (g_workObj.drunkYFlg) {
|
|
1647
|
+
g_shakingFunc.get(`X-Horizontal`)();
|
|
1648
|
+
}
|
|
1649
|
+
}],
|
|
1624
1650
|
]);
|
|
1625
1651
|
|
|
1626
1652
|
/**
|
|
@@ -3990,6 +4016,13 @@ const g_lblNameObj = {
|
|
|
3990
4016
|
'u_SideScroll': `SideScroll`,
|
|
3991
4017
|
'u_R-SideScroll': `R-SideScroll`,
|
|
3992
4018
|
|
|
4019
|
+
'u_Halfway': `Halfway`,
|
|
4020
|
+
'u_2Step': `2Step`,
|
|
4021
|
+
'u_Mismatched': `Mismatched`,
|
|
4022
|
+
'u_R-Mismatched': `R-Mismatched`,
|
|
4023
|
+
'u_X-Flower': `X-Flower`,
|
|
4024
|
+
'u_Alt-Crossing': `Alt-Crossing`,
|
|
4025
|
+
|
|
3993
4026
|
'u_X-Axis': `X-Axis`,
|
|
3994
4027
|
'u_Y-Axis': `Y-Axis`,
|
|
3995
4028
|
'u_Z-Axis': `Z-Axis`,
|
|
@@ -3999,7 +4032,10 @@ const g_lblNameObj = {
|
|
|
3999
4032
|
|
|
4000
4033
|
'u_Horizontal': `Horizontal`,
|
|
4001
4034
|
'u_Vertical': `Vertical`,
|
|
4035
|
+
'u_X-Horizontal': `X-Horizontal`,
|
|
4036
|
+
'u_X-Vertical': `X-Vertical`,
|
|
4002
4037
|
'u_Drunk': `Drunk`,
|
|
4038
|
+
'u_S-Drunk': `S-Drunk`,
|
|
4003
4039
|
|
|
4004
4040
|
'u_Dizzy': `Dizzy`,
|
|
4005
4041
|
'u_Spin': `Spin`,
|
|
@@ -4242,9 +4278,13 @@ const g_lang_msgObj = {
|
|
|
4242
4278
|
playWindow: `ステップゾーン及び矢印の位置を全体的に回転する等の設定です。\n[Stairs/Slope] ステップゾーンを階段状にします\n[Distorted] 画面を歪ませます`,
|
|
4243
4279
|
sideScrollMsg: `\n[SideScroll] 横スクロールモードになります\n\nSlope, SideScrollを設定する場合は高さが足りているかを確認してください\nクエリパラメータ ?h=600 などで設定できます`,
|
|
4244
4280
|
sideScrollDisable: `\n\nウィンドウの高さの自動拡張が無効のため、Slope, SideScrollは使用できません`,
|
|
4245
|
-
stepArea: `ステップゾーンの位置を変更します。\n[Halfway] ステップゾーンが中央に表示されます\n[
|
|
4281
|
+
stepArea: `ステップゾーンの位置を変更します。\n[Halfway] ステップゾーンが中央に表示されます\n[2Step] ステップゾーンが2段に分かれて流れてきます\n` +
|
|
4282
|
+
`[Mismatched/R-Mismatched] スクロールの向きが上下で異なる方向に流れます\n` +
|
|
4283
|
+
`[X-Flower] レーンが花びらのように広がります\n[Alt-Crossing] レーンが交互に違う方向から流れます`,
|
|
4246
4284
|
frzReturn: `フリーズアロー到達時及び矢印の回復判定が100の倍数に達するごとに、X/Y/Z軸のいずれかに回転します`,
|
|
4247
|
-
shaking: `ステップゾーン及び矢印を揺らす設定です。\n[Horizontal] 横方向に揺らします\n[Vertical] 縦方向に揺らします\n
|
|
4285
|
+
shaking: `ステップゾーン及び矢印を揺らす設定です。\n[Horizontal] 横方向に揺らします\n[Vertical] 縦方向に揺らします\n` +
|
|
4286
|
+
`[X-Horizontal] レイヤーごとに左右交互の向きで横に揺らします\n[X-Vertical] レイヤーごとに上下交互の向きで縦に揺らします\n[Drunk] 画面全体を上下左右ランダムに揺らします。画面酔いに注意してください\n` +
|
|
4287
|
+
`[S-Drunk] 画面全体を上下左右ランダムに揺らし、さらにレイヤーごとに上下左右に揺らします`,
|
|
4248
4288
|
effect: `矢印・フリーズアローにエフェクトをかけます。\n[Dizzy/Spin] 矢印が回転します\n[Wave/Storm] 矢印の軌道が左右に揺れます\n[Blinking] 矢印が点滅します\n[Squids] 矢印が伸び縮みします`,
|
|
4249
4289
|
camoufrage: `ステップの見た目が配置は同じでランダムに変わります。`,
|
|
4250
4290
|
swapping: `ステップゾーンの位置をグループ単位で入れ替えます。`,
|
|
@@ -4332,9 +4372,14 @@ const g_lang_msgObj = {
|
|
|
4332
4372
|
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.`,
|
|
4333
4373
|
sideScrollMsg: `\n[SideScroll] It becomes a side scroll mode.\n\nWhen setting Slope or SideScroll, please make sure that the height is\nsufficient. Can be set with query parameter ?h=600, etc.`,
|
|
4334
4374
|
sideScrollDisable: `\n\nSlope, SideScroll cannot be used because \nautomatic window height expansion is disabled.`,
|
|
4335
|
-
stepArea: `Change the position of the step zone.\n[Halfway] Step zones are centered.\n[
|
|
4375
|
+
stepArea: `Change the position of the step zone.\n[Halfway] Step zones are centered.\n[2Step] Step zones are divided into two layers.\n` +
|
|
4376
|
+
`[Mismatched/R-Mismatched] Scroll direction flows in different directions up and down.\n` +
|
|
4377
|
+
`[X-Flower] Lanes spread out like flower petals.\n[Alt-Crossing] Lanes flow from different directions alternately.`,
|
|
4336
4378
|
frzReturn: `When the Freeze Arrow is reached, and every time the arrow's recovery judgment \nreaches a multiple of 100, it will rotate on either the X, Y, or Z axis.`,
|
|
4337
|
-
shaking: `This
|
|
4379
|
+
shaking: `This sets shaking for the step zone and arrows.\n[Horizontal] Shakes horizontally.\n[Vertical] Shakes vertically.\n` +
|
|
4380
|
+
`[X-Horizontal] Per-layer shaking with alternating left/right direction by layer.\n[X-Vertical] Per-layer shaking with alternating up/down direction by layer.\n` +
|
|
4381
|
+
`[Drunk] Shakes the entire screen randomly in all directions (may cause motion sickness).\n` +
|
|
4382
|
+
`[S-Drunk] Shakes the entire screen randomly in all directions, and also shakes each layer randomly in all directions.`,
|
|
4338
4383
|
effect: `Applies effects to the arrows and freeze arrows.\n[Dizzy/Spin] Arrows rotate.\n[Wave/Storm] Swing from left to right.\n[Blinking] Arrows blink.\n[Squids] Arrows stretch and shrink.`,
|
|
4339
4384
|
camoufrage: `The appearance of the steps changes randomly with the same placement.`,
|
|
4340
4385
|
swapping: `Replaces the position of step zones on a group-by-group basis.`,
|