danoniplus 43.0.1 → 43.2.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 +72 -14
- 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/
|
|
7
|
+
* Revised : 2025/12/28
|
|
8
8
|
*
|
|
9
9
|
* https://github.com/cwtickle/danoniplus
|
|
10
10
|
*/
|
|
11
|
-
const g_version = `Ver 43.0
|
|
12
|
-
const g_revisedDate = `2025/
|
|
11
|
+
const g_version = `Ver 43.2.0`;
|
|
12
|
+
const g_revisedDate = `2025/12/28`;
|
|
13
13
|
|
|
14
14
|
// カスタム用バージョン (danoni_custom.js 等で指定可)
|
|
15
15
|
let g_localVersion = ``;
|
|
@@ -2697,7 +2697,7 @@ const initialControl = async () => {
|
|
|
2697
2697
|
|
|
2698
2698
|
// 未使用のg_keyObjプロパティを削除
|
|
2699
2699
|
const keyProp = g_keyCopyLists.simple.concat(g_keyCopyLists.multiple, `keyCtrl`, `keyName`, `minWidth`, `ptchara`);
|
|
2700
|
-
const delKeyPropList = [`ptchara7`, `
|
|
2700
|
+
const delKeyPropList = [`ptchara7`, `dfPtnNum`, `minKeyCtrlNum`, `minPatterns`];
|
|
2701
2701
|
Object.keys(g_keyObj).forEach(key => {
|
|
2702
2702
|
const type = keyProp.find(prop => key.startsWith(prop)) || ``;
|
|
2703
2703
|
if (type !== ``) {
|
|
@@ -4592,6 +4592,23 @@ const getKeyUnitName = _key => unEscapeHtml(escapeHtml(g_keyObj[`keyName${_key}`
|
|
|
4592
4592
|
const getTransKeyName = (_spaceFlg = false) => hasVal(g_keyObj[`transKey${g_keyObj.currentKey}_${g_keyObj.currentPtn}`])
|
|
4593
4593
|
? (_spaceFlg ? ` ` : ``) + `(${g_keyObj[`transKey${g_keyObj.currentKey}_${g_keyObj.currentPtn}`]})` : ``;
|
|
4594
4594
|
|
|
4595
|
+
/**
|
|
4596
|
+
* ハイスコア定義を行う際のストレージキー名の取得
|
|
4597
|
+
* @param {string} _key
|
|
4598
|
+
* @param {string} _transName
|
|
4599
|
+
* @param {string} _assistFlg
|
|
4600
|
+
* @param {string} _mirrorName
|
|
4601
|
+
* @param {string} _scoreId
|
|
4602
|
+
* @returns {string}
|
|
4603
|
+
*/
|
|
4604
|
+
const getStorageKeyName = (_key, _transName, _assistFlg, _mirrorName, _scoreId) => {
|
|
4605
|
+
let scoreName = `${_key}${_transName}${getStgDetailName('k-')}${g_headerObj.difLabels[_scoreId]}${_assistFlg}${_mirrorName}`;
|
|
4606
|
+
if (g_headerObj.makerView) {
|
|
4607
|
+
scoreName += `-${g_headerObj.creatorNames[_scoreId]}`;
|
|
4608
|
+
}
|
|
4609
|
+
return scoreName;
|
|
4610
|
+
};
|
|
4611
|
+
|
|
4595
4612
|
/**
|
|
4596
4613
|
* KeyBoardEvent.code の値をCW Edition用のキーコードに変換
|
|
4597
4614
|
* 簡略指定ができるように、以下の記述を許容
|
|
@@ -6861,9 +6878,24 @@ const makeHighScore = _scoreId => {
|
|
|
6861
6878
|
const assistFlg = (g_autoPlaysBase.includes(g_stateObj.autoPlay) ? `` : `-${getStgDetailName(g_stateObj.autoPlay)}${getStgDetailName('less')}`);
|
|
6862
6879
|
const mirrorName = (g_stateObj.shuffle === C_FLG_OFF ? `` : `-${g_stateObj.shuffle}`);
|
|
6863
6880
|
const transKeyName = getTransKeyName();
|
|
6864
|
-
let scoreName =
|
|
6865
|
-
|
|
6866
|
-
|
|
6881
|
+
let scoreName = getStorageKeyName(g_headerObj.keyLabels[_scoreId], transKeyName, assistFlg, mirrorName, _scoreId);
|
|
6882
|
+
|
|
6883
|
+
if (!hasVal(g_localStorage.highscores?.[scoreName])) {
|
|
6884
|
+
|
|
6885
|
+
// 古いキー定義の情報を検索
|
|
6886
|
+
const relatedKeys = Object.entries(g_keyObj.keyTransPattern)
|
|
6887
|
+
.filter(([key, value]) => value === g_headerObj.keyLabels[_scoreId])
|
|
6888
|
+
.map(([key]) => key);
|
|
6889
|
+
|
|
6890
|
+
// 古いキー定義のハイスコアがいる場合は、現行キー定義として表示
|
|
6891
|
+
for (const legacyKey of relatedKeys) {
|
|
6892
|
+
let tmpScoreName = getStorageKeyName(legacyKey, transKeyName, assistFlg, mirrorName, _scoreId);
|
|
6893
|
+
const src = g_localStorage.highscores?.[tmpScoreName];
|
|
6894
|
+
if (hasVal(src)) {
|
|
6895
|
+
g_localStorage.highscores[scoreName] = structuredClone(src);
|
|
6896
|
+
break;
|
|
6897
|
+
}
|
|
6898
|
+
}
|
|
6867
6899
|
}
|
|
6868
6900
|
|
|
6869
6901
|
const createScoreLabel = (_id, _text, { xPos = 0, yPos = 0, dx = 0, w = 150, h = 17, colorName = _id, align = C_ALIGN_LEFT, overflow = `visible` } = {}) =>
|
|
@@ -11289,12 +11321,16 @@ const getArrowSettings = () => {
|
|
|
11289
11321
|
|
|
11290
11322
|
// StepArea(Default, Halfway以外)によるレイヤー移動
|
|
11291
11323
|
// ずらした位置に表示するため、レイヤーを倍化して倍化した先に割り当てる
|
|
11292
|
-
|
|
11324
|
+
const assignLayer = _func => {
|
|
11293
11325
|
for (let j = 0; j < keyNum; j++) {
|
|
11294
|
-
g_workObj.dividePos[j] = (
|
|
11295
|
-
g_stateObj.layerNumDf + g_workObj.dividePos[j];
|
|
11326
|
+
g_workObj.dividePos[j] = (_func(j) ? 0 : 1) * g_stateObj.layerNumDf + g_workObj.dividePos[j];
|
|
11296
11327
|
}
|
|
11297
11328
|
}
|
|
11329
|
+
if (g_stateObj.stepArea === `X-Flower` || (g_stateObj.stepArea.includes(`Mismatched`) && g_workObj.orgFlatFlg)) {
|
|
11330
|
+
assignLayer(j => g_workObj.stepX[j] < (g_headerObj.playingWidth - C_ARW_WIDTH) / 2);
|
|
11331
|
+
} else if (g_stateObj.stepArea === `Alt-Crossing`) {
|
|
11332
|
+
assignLayer(j => Math.round(g_keyObj[`pos${keyCtrlPtn}`][j]) % 2 === 0);
|
|
11333
|
+
}
|
|
11298
11334
|
if (g_stateObj.stepArea === `2Step`) {
|
|
11299
11335
|
for (let j = 0; j < keyNum; j++) {
|
|
11300
11336
|
if (g_workObj.orgFlatFlg && g_workObj.stepX[j] >= (g_headerObj.playingWidth - C_ARW_WIDTH) / 2) {
|
|
@@ -14000,10 +14036,8 @@ const resultInit = () => {
|
|
|
14000
14036
|
// ハイスコア差分計算
|
|
14001
14037
|
const assistFlg = (g_autoPlaysBase.includes(g_stateObj.autoPlay) ? `` : `-${g_stateObj.autoPlay}less`);
|
|
14002
14038
|
const mirrorName = (g_stateObj.shuffle.indexOf(`Mirror`) !== -1 ? `-${g_stateObj.shuffle}` : ``);
|
|
14003
|
-
let scoreName =
|
|
14004
|
-
|
|
14005
|
-
scoreName += `-${g_headerObj.creatorNames[g_stateObj.scoreId]}`;
|
|
14006
|
-
}
|
|
14039
|
+
let scoreName = getStorageKeyName(g_headerObj.keyLabels[g_stateObj.scoreId], transKeyName, assistFlg, mirrorName, g_stateObj.scoreId);
|
|
14040
|
+
|
|
14007
14041
|
const highscoreDfObj = {
|
|
14008
14042
|
ii: 0, shakin: 0, matari: 0, shobon: 0, uwan: 0,
|
|
14009
14043
|
kita: 0, iknai: 0,
|
|
@@ -14034,6 +14068,30 @@ const resultInit = () => {
|
|
|
14034
14068
|
|
|
14035
14069
|
if (highscoreCondition) {
|
|
14036
14070
|
|
|
14071
|
+
// 古いキー定義の情報を検索
|
|
14072
|
+
const relatedKeys = Object.entries(g_keyObj.keyTransPattern)
|
|
14073
|
+
.filter(([key, value]) => value === g_headerObj.keyLabels[g_stateObj.scoreId])
|
|
14074
|
+
.map(([key]) => key);
|
|
14075
|
+
|
|
14076
|
+
// 古いキー定義のスコアデータを現行キー定義に移行
|
|
14077
|
+
for (const legacyKey of relatedKeys) {
|
|
14078
|
+
let tmpScoreName = getStorageKeyName(
|
|
14079
|
+
legacyKey, transKeyName, assistFlg, mirrorName, g_stateObj.scoreId
|
|
14080
|
+
);
|
|
14081
|
+
const src = g_localStorage.highscores?.[tmpScoreName];
|
|
14082
|
+
if (!hasVal(src)) {
|
|
14083
|
+
continue;
|
|
14084
|
+
}
|
|
14085
|
+
|
|
14086
|
+
// 現行キー定義にスコアデータが存在しない場合、移行元のスコアデータをコピー
|
|
14087
|
+
if (!hasVal(g_localStorage.highscores?.[scoreName])) {
|
|
14088
|
+
g_localStorage.highscores[scoreName] = structuredClone(src);
|
|
14089
|
+
}
|
|
14090
|
+
|
|
14091
|
+
// 古いキー定義は見つかった最初の1件のみ移行し、以降は削除
|
|
14092
|
+
delete g_localStorage.highscores[tmpScoreName];
|
|
14093
|
+
}
|
|
14094
|
+
|
|
14037
14095
|
Object.keys(jdgScoreObj).filter(judge => judge !== ``)
|
|
14038
14096
|
.forEach(judge => highscoreDfObj[judge] = g_resultObj[judge] -
|
|
14039
14097
|
(scoreName in g_localStorage.highscores ? g_localStorage.highscores[scoreName][judge] : 0));
|
|
@@ -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.`,
|