danoniplus 43.4.0 → 43.6.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 +150 -31
- package/js/lib/danoni_constants.js +42 -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/23
|
|
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.6.0`;
|
|
12
|
+
const g_revisedDate = `2026/01/23`;
|
|
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`];
|
|
@@ -6658,6 +6654,7 @@ const drawSpeedGraph = _scoreId => {
|
|
|
6658
6654
|
boost: { frame: [0], speed: [1], cnt: 0, strokeColor: g_graphColorObj.boost }
|
|
6659
6655
|
};
|
|
6660
6656
|
|
|
6657
|
+
const tmpSpeedPoint = [0];
|
|
6661
6658
|
Object.keys(speedObj).forEach(speedType => {
|
|
6662
6659
|
const frame = speedObj[speedType].frame;
|
|
6663
6660
|
const speed = speedObj[speedType].speed;
|
|
@@ -6667,22 +6664,28 @@ const drawSpeedGraph = _scoreId => {
|
|
|
6667
6664
|
if (speedData[i] >= startFrame) {
|
|
6668
6665
|
frame.push(speedData[i] - startFrame);
|
|
6669
6666
|
speed.push(speedData[i + 1]);
|
|
6667
|
+
tmpSpeedPoint.push(speedData[i] - startFrame);
|
|
6670
6668
|
}
|
|
6671
6669
|
speedObj[speedType].cnt++;
|
|
6672
6670
|
}
|
|
6673
6671
|
frame.push(playingFrame);
|
|
6674
6672
|
speed.push(speed.at(-1));
|
|
6673
|
+
tmpSpeedPoint.push(playingFrame);
|
|
6675
6674
|
});
|
|
6675
|
+
const speedPoints = makeDedupliArray(tmpSpeedPoint).sort((a, b) => a - b);
|
|
6676
|
+
let speedPointIdx = 0;
|
|
6676
6677
|
|
|
6677
6678
|
const canvas = document.getElementById(`graphSpeed`);
|
|
6678
6679
|
const context = canvas.getContext(`2d`);
|
|
6679
6680
|
const [_a, _b] = [-75, 100];
|
|
6680
6681
|
const [_min, _max] = [-0.2, 2.2];
|
|
6681
|
-
|
|
6682
|
+
const lineX = [0, 150], lineY = 208;
|
|
6682
6683
|
|
|
6683
6684
|
const avgX = [0, 0];
|
|
6684
6685
|
const avgSubX = [0, 0];
|
|
6685
|
-
|
|
6686
|
+
context.clearRect(0, 0, canvas.width, canvas.height);
|
|
6687
|
+
drawBaseLine(context, { _fixed: 1, _mark: `x`, _a, _b, _min, _max });
|
|
6688
|
+
|
|
6686
6689
|
Object.keys(speedObj).forEach((speedType, j) => {
|
|
6687
6690
|
const frame = speedObj[speedType].frame;
|
|
6688
6691
|
const speed = speedObj[speedType].speed;
|
|
@@ -6699,11 +6702,13 @@ const drawSpeedGraph = _scoreId => {
|
|
|
6699
6702
|
context.lineTo(x, y);
|
|
6700
6703
|
preY = y;
|
|
6701
6704
|
|
|
6702
|
-
const
|
|
6703
|
-
|
|
6704
|
-
|
|
6705
|
+
const prevFrame = (i > 0 ? frame[i - 1] : 0); // frame[] は startFrame 相対。初回は 0 起点
|
|
6706
|
+
const deltaFrame = frame[i] - prevFrame;
|
|
6707
|
+
const prevSpeed = (i > 0 ? speed[i - 1] : 1);
|
|
6708
|
+
avgX[j] += deltaFrame * prevSpeed;
|
|
6709
|
+
if (prevSpeed !== 1) {
|
|
6705
6710
|
avgSubFrame += deltaFrame;
|
|
6706
|
-
avgSubX[j] += deltaFrame *
|
|
6711
|
+
avgSubX[j] += deltaFrame * prevSpeed;
|
|
6707
6712
|
}
|
|
6708
6713
|
}
|
|
6709
6714
|
avgX[j] /= playingFrame;
|
|
@@ -6728,6 +6733,91 @@ const drawSpeedGraph = _scoreId => {
|
|
|
6728
6733
|
updateScoreDetailLabel(`Speed`, `${speedType}S`, speedObj[speedType].cnt, j, g_lblNameObj[`s_${speedType}`]);
|
|
6729
6734
|
});
|
|
6730
6735
|
updateScoreDetailLabel(`Speed`, `avgS`, `${(avgX[0] * avgX[1]).toFixed(2)}x`, 2, g_lblNameObj.s_avg);
|
|
6736
|
+
|
|
6737
|
+
/**
|
|
6738
|
+
* 速度ポインタ位置の変更
|
|
6739
|
+
* @param {number} _num
|
|
6740
|
+
*/
|
|
6741
|
+
const changeSpdCursor = (_num = 1) => {
|
|
6742
|
+
speedPointIdx = nextPos(speedPointIdx, _num, speedPoints.length);
|
|
6743
|
+
movePointer(speedPoints[speedPointIdx]);
|
|
6744
|
+
}
|
|
6745
|
+
|
|
6746
|
+
/**
|
|
6747
|
+
* 速度ポインタの移動
|
|
6748
|
+
* @param {number} _frame
|
|
6749
|
+
*/
|
|
6750
|
+
const movePointer = _frame => {
|
|
6751
|
+
const canvasP = document.getElementById(`graphSpeed2`);
|
|
6752
|
+
const contextP = canvasP.getContext(`2d`);
|
|
6753
|
+
contextP.clearRect(0, 0, canvas.width, canvas.height);
|
|
6754
|
+
|
|
6755
|
+
const offsetX = _frame * (g_limitObj.graphWidth - 30) / playingFrame + 30;
|
|
6756
|
+
const speed = { speed: 0, boost: 0 };
|
|
6757
|
+
|
|
6758
|
+
Object.keys(speedObj).forEach(speedType => {
|
|
6759
|
+
const speedFrames = speedObj[speedType].frame.concat(Infinity);
|
|
6760
|
+
const speedIndex = speedObj[speedType].frame.findIndex((frame, i) => frame <= _frame && _frame < speedFrames[i + 1]);
|
|
6761
|
+
speed[speedType] = speedObj[speedType].speed[speedIndex];
|
|
6762
|
+
const y = (Math.min(Math.max(speed[speedType], _min - 0.05), _max + 0.05) - 1) * _a + _b;
|
|
6763
|
+
|
|
6764
|
+
contextP.beginPath();
|
|
6765
|
+
contextP.fillStyle = g_graphColorObj[speedType];
|
|
6766
|
+
contextP.arc(offsetX, y, 5, 0, 360);
|
|
6767
|
+
contextP.closePath();
|
|
6768
|
+
contextP.fill();
|
|
6769
|
+
});
|
|
6770
|
+
calculateTotalSpeed(speed.speed, speed.boost, _frame);
|
|
6771
|
+
};
|
|
6772
|
+
|
|
6773
|
+
// 速度計算用ラベルの再作成
|
|
6774
|
+
deleteDiv(detailSpeed, `lblSpdHeader`);
|
|
6775
|
+
deleteDiv(detailSpeed, `lblSpdBase`);
|
|
6776
|
+
deleteDiv(detailSpeed, `lblSpdOverall`);
|
|
6777
|
+
deleteDiv(detailSpeed, `lblSpdBoost`);
|
|
6778
|
+
deleteDiv(detailSpeed, `lblSpdTotal`);
|
|
6779
|
+
deleteDiv(detailSpeed, `lblSpdFrame`);
|
|
6780
|
+
deleteDiv(detailSpeed, `btnSpdCursorL`);
|
|
6781
|
+
deleteDiv(detailSpeed, `btnSpdCursorR`);
|
|
6782
|
+
|
|
6783
|
+
multiAppend(detailSpeed,
|
|
6784
|
+
createDivCss2Label(`lblSpdHeader`, `TotalSpeed`, g_lblPosObj.lblSpdHeader),
|
|
6785
|
+
createDivCss2Label(`lblSpdBase`, ``, g_lblPosObj.lblSpdBase),
|
|
6786
|
+
createDivCss2Label(`lblSpdOverall`, ``, g_lblPosObj.lblSpdOverall),
|
|
6787
|
+
createDivCss2Label(`lblSpdBoost`, ``, g_lblPosObj.lblSpdBoost),
|
|
6788
|
+
createDivCss2Label(`lblSpdTotal`, ``, g_lblPosObj.lblSpdTotal),
|
|
6789
|
+
createDivCss2Label(`lblSpdFrame`, ``, g_lblPosObj.lblSpdFrame),
|
|
6790
|
+
createCss2Button(`btnSpdCursorL`, `<`, () => changeSpdCursor(-1),
|
|
6791
|
+
g_lblPosObj.btnSpdCursorL, g_cssObj.button_Mini),
|
|
6792
|
+
createCss2Button(`btnSpdCursorR`, `>`, () => changeSpdCursor(),
|
|
6793
|
+
g_lblPosObj.btnSpdCursorR, g_cssObj.button_Mini),
|
|
6794
|
+
);
|
|
6795
|
+
movePointer(0);
|
|
6796
|
+
};
|
|
6797
|
+
|
|
6798
|
+
/**
|
|
6799
|
+
* 合計速度の表示更新
|
|
6800
|
+
* @param {number} _speed
|
|
6801
|
+
* @param {number} _boost
|
|
6802
|
+
* @param {number} _frame
|
|
6803
|
+
*/
|
|
6804
|
+
const calculateTotalSpeed = (_speed = null, _boost = null, _frame = 0) => {
|
|
6805
|
+
if (document.getElementById(`lblSpdOverall`) === null) {
|
|
6806
|
+
return;
|
|
6807
|
+
}
|
|
6808
|
+
let speed, boost;
|
|
6809
|
+
if (_speed !== null && _boost !== null) {
|
|
6810
|
+
speed = _speed;
|
|
6811
|
+
boost = _boost;
|
|
6812
|
+
lblSpdOverall.textContent = `x${_speed.toFixed(2)}`;
|
|
6813
|
+
lblSpdBoost.textContent = `x${_boost.toFixed(2)}`;
|
|
6814
|
+
} else {
|
|
6815
|
+
speed = Number(lblSpdOverall.textContent.slice(1));
|
|
6816
|
+
boost = Number(lblSpdBoost.textContent.slice(1));
|
|
6817
|
+
}
|
|
6818
|
+
lblSpdBase.textContent = `${g_stateObj.speed.toFixed(2)}`;
|
|
6819
|
+
lblSpdTotal.textContent = `=${(g_stateObj.speed * speed * boost).toFixed(2)}`;
|
|
6820
|
+
lblSpdFrame.textContent = `[${transFrameToTimer(_frame + g_detailObj.startFrame[g_stateObj.scoreId])}]`;
|
|
6731
6821
|
};
|
|
6732
6822
|
|
|
6733
6823
|
/**
|
|
@@ -7357,7 +7447,7 @@ const createOptionWindow = _sprite => {
|
|
|
7357
7447
|
// 縦位置: 2 短縮ショートカットあり
|
|
7358
7448
|
createGeneralSetting(spriteList.speed, `speed`, {
|
|
7359
7449
|
skipTerms: g_settings.speedTerms, hiddenBtn: true, scLabel: g_lblNameObj.sc_speed, roundNum: 5,
|
|
7360
|
-
unitName: ` ${g_lblNameObj.multi}`,
|
|
7450
|
+
unitName: ` ${g_lblNameObj.multi}`, addRFunc: () => calculateTotalSpeed(),
|
|
7361
7451
|
});
|
|
7362
7452
|
if (g_headerObj.baseSpeed !== 1) {
|
|
7363
7453
|
divRoot.appendChild(
|
|
@@ -7371,24 +7461,26 @@ const createOptionWindow = _sprite => {
|
|
|
7371
7461
|
* @param {boolean} _graphUseFlg
|
|
7372
7462
|
* @returns {HTMLDivElement}
|
|
7373
7463
|
*/
|
|
7374
|
-
const createScoreDetail = (_name, _graphUseFlg = true) => {
|
|
7464
|
+
const createScoreDetail = (_name, _graphUseFlg = true, _graphNum = 1) => {
|
|
7375
7465
|
const detailObj = createEmptySprite(scoreDetail, `detail${_name}`, g_windowObj.detailObj);
|
|
7376
7466
|
|
|
7377
7467
|
if (_graphUseFlg) {
|
|
7378
|
-
|
|
7379
|
-
|
|
7380
|
-
|
|
7468
|
+
for (let j = 0; j < _graphNum; j++) {
|
|
7469
|
+
const graphObj = document.createElement(`canvas`);
|
|
7470
|
+
const textBaseObj = document.getElementById(`lnkDifficulty`);
|
|
7471
|
+
const bkColor = window.getComputedStyle(textBaseObj, ``).backgroundColor;
|
|
7381
7472
|
|
|
7382
|
-
|
|
7383
|
-
|
|
7384
|
-
|
|
7385
|
-
|
|
7386
|
-
|
|
7387
|
-
|
|
7388
|
-
|
|
7389
|
-
|
|
7473
|
+
graphObj.id = `graph${_name}${j > 0 ? j + 1 : ``}`;
|
|
7474
|
+
graphObj.width = g_limitObj.graphWidth;
|
|
7475
|
+
graphObj.height = g_limitObj.graphHeight;
|
|
7476
|
+
graphObj.style.left = wUnit(125);
|
|
7477
|
+
graphObj.style.top = wUnit(0);
|
|
7478
|
+
graphObj.style.position = `absolute`;
|
|
7479
|
+
graphObj.style.background = j === 0 ? bkColor : `#ffffff00`;
|
|
7480
|
+
graphObj.style.border = `dotted ${wUnit(2)}`;
|
|
7390
7481
|
|
|
7391
|
-
|
|
7482
|
+
detailObj.appendChild(graphObj);
|
|
7483
|
+
}
|
|
7392
7484
|
}
|
|
7393
7485
|
|
|
7394
7486
|
return detailObj;
|
|
@@ -7432,7 +7524,7 @@ const createOptionWindow = _sprite => {
|
|
|
7432
7524
|
};
|
|
7433
7525
|
|
|
7434
7526
|
multiAppend(scoreDetail,
|
|
7435
|
-
createScoreDetail(`Speed
|
|
7527
|
+
createScoreDetail(`Speed`, true, 2),
|
|
7436
7528
|
createScoreDetail(`Density`),
|
|
7437
7529
|
createScoreDetail(`ToolDif`, false),
|
|
7438
7530
|
createScoreDetail(`HighScore`, false),
|
|
@@ -8408,8 +8500,6 @@ const exSettingInit = () => {
|
|
|
8408
8500
|
const spriteList = setSpriteList(g_settingPos.exSetting);
|
|
8409
8501
|
|
|
8410
8502
|
createGeneralSetting(spriteList.playWindow, `playWindow`);
|
|
8411
|
-
lblPlayWindow.title += g_headerObj.heightLockFlg ? g_msgObj.sideScrollDisable : g_msgObj.sideScrollMsg;
|
|
8412
|
-
|
|
8413
8503
|
createGeneralSetting(spriteList.stepArea, `stepArea`);
|
|
8414
8504
|
createGeneralSetting(spriteList.frzReturn, `frzReturn`);
|
|
8415
8505
|
createGeneralSetting(spriteList.shaking, `shaking`);
|
|
@@ -11337,6 +11427,7 @@ const getArrowSettings = () => {
|
|
|
11337
11427
|
g_workObj.scrollDir = [];
|
|
11338
11428
|
g_workObj.scrollDirDefault = [];
|
|
11339
11429
|
g_workObj.dividePos = [];
|
|
11430
|
+
g_workObj.scale = g_keyObj.scale;
|
|
11340
11431
|
g_workObj.stepRtn = structuredClone(g_keyObj[`stepRtn${keyCtrlPtn}`]);
|
|
11341
11432
|
g_workObj.stepHitRtn = structuredClone(g_keyObj[`stepRtn${keyCtrlPtn}`]);
|
|
11342
11433
|
g_workObj.arrowRtn = structuredClone(g_keyObj[`stepRtn${keyCtrlPtn}`]);
|
|
@@ -11344,6 +11435,34 @@ const getArrowSettings = () => {
|
|
|
11344
11435
|
g_workObj.diffList = [];
|
|
11345
11436
|
g_workObj.mainEndTime = 0;
|
|
11346
11437
|
|
|
11438
|
+
const rotateBy = (val, delta) => {
|
|
11439
|
+
// numeric
|
|
11440
|
+
const n = Number(val);
|
|
11441
|
+
if (Number.isFinite(n)) return n + delta;
|
|
11442
|
+
|
|
11443
|
+
// "type:deg"
|
|
11444
|
+
const [type, degStr = `0`] = String(val).split(`:`);
|
|
11445
|
+
const deg = Number(degStr);
|
|
11446
|
+
return Number.isFinite(deg) ? `${type}:${deg + delta}` : val;
|
|
11447
|
+
};
|
|
11448
|
+
const changeStepRtn = (_name, _angle) =>
|
|
11449
|
+
g_workObj[_name] = g_workObj[_name].map(v => rotateBy(v, _angle));
|
|
11450
|
+
|
|
11451
|
+
if (g_stateObj.playWindow.endsWith(`SideScroll`)) {
|
|
11452
|
+
if (g_stateObj.rotateEnabled) {
|
|
11453
|
+
const sign = g_stateObj.playWindow === `SideScroll` ? 1 : -1;
|
|
11454
|
+
changeStepRtn(`stepRtn`, 90 * sign);
|
|
11455
|
+
changeStepRtn(`stepHitRtn`, 90 * sign);
|
|
11456
|
+
changeStepRtn(`arrowRtn`, 90 * sign);
|
|
11457
|
+
}
|
|
11458
|
+
const div = g_keyObj[`div${keyCtrlPtn}`];
|
|
11459
|
+
const divMax = g_keyObj[`divMax${keyCtrlPtn}`] ?? posMax;
|
|
11460
|
+
const denom = (Math.max(div, divMax - div) + 1) * g_keyObj.blank;
|
|
11461
|
+
if (Number.isFinite(denom) && denom > 0) {
|
|
11462
|
+
g_workObj.scale *= Math.min(g_sHeight / denom, 1);
|
|
11463
|
+
}
|
|
11464
|
+
}
|
|
11465
|
+
|
|
11347
11466
|
g_workObj.keyGroupMaps = tkObj.keyGroupMaps;
|
|
11348
11467
|
g_workObj.keyGroupList = tkObj.keyGroupList;
|
|
11349
11468
|
|
|
@@ -11733,7 +11852,7 @@ const mainInit = () => {
|
|
|
11733
11852
|
|
|
11734
11853
|
// ステップゾーン、矢印のメインスプライトを作成
|
|
11735
11854
|
const mainSprite = createEmptySprite(divRoot, `mainSprite`, mainCommonPos);
|
|
11736
|
-
addTransform(`mainSprite`, `root`, `scale(${
|
|
11855
|
+
addTransform(`mainSprite`, `root`, `scale(${g_workObj.scale})`);
|
|
11737
11856
|
addXY(`mainSprite`, `root`, g_workObj.playingX, g_posObj.stepY - C_STEP_Y + g_headerObj.playingY);
|
|
11738
11857
|
|
|
11739
11858
|
// 曲情報・判定カウント用スプライトを作成(メインスプライトより上位)
|
|
@@ -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/23 (v43.6.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 = {
|
|
@@ -436,6 +440,33 @@ const updateWindowSiz = () => {
|
|
|
436
440
|
lblHRank: {
|
|
437
441
|
x: 290, y: 145, w: 120, h: 20, siz: 50, align: C_ALIGN_CENTER,
|
|
438
442
|
},
|
|
443
|
+
lblSpdHeader: {
|
|
444
|
+
x: 5, y: 180, w: 100, h: 20, siz: g_limitObj.difSelectorSiz, align: C_ALIGN_LEFT,
|
|
445
|
+
},
|
|
446
|
+
lblSpdBase: {
|
|
447
|
+
x: 0, y: 200, w: 40, h: 20, siz: 11.5, fontWeight: `bold`,
|
|
448
|
+
},
|
|
449
|
+
lblSpdOverall: {
|
|
450
|
+
x: 40, y: 200, w: 40, h: 20, siz: 11.5,
|
|
451
|
+
color: g_graphColorObj.speedChara, fontWeight: `bold`,
|
|
452
|
+
},
|
|
453
|
+
lblSpdBoost: {
|
|
454
|
+
x: 80, y: 200, w: 40, h: 20, siz: 11.5,
|
|
455
|
+
color: g_graphColorObj.boostChara, fontWeight: `bold`,
|
|
456
|
+
},
|
|
457
|
+
lblSpdTotal: {
|
|
458
|
+
x: 5, y: 215, w: 100, h: 20, siz: g_limitObj.difSelectorSiz,
|
|
459
|
+
align: C_ALIGN_LEFT, fontWeight: `bold`,
|
|
460
|
+
},
|
|
461
|
+
lblSpdFrame: {
|
|
462
|
+
x: 70, y: 218, w: 50, h: 20, siz: 12, fontWeight: `bold`,
|
|
463
|
+
},
|
|
464
|
+
btnSpdCursorL: {
|
|
465
|
+
x: 85, y: 180, w: 15, h: 20, siz: 12,
|
|
466
|
+
},
|
|
467
|
+
btnSpdCursorR: {
|
|
468
|
+
x: 100, y: 180, w: 15, h: 20, siz: 12,
|
|
469
|
+
},
|
|
439
470
|
|
|
440
471
|
/** ディスプレイ画面 */
|
|
441
472
|
scMsg: {
|
|
@@ -906,7 +937,9 @@ const g_graphColorObj = {
|
|
|
906
937
|
default3Push: `#555555cc`,
|
|
907
938
|
|
|
908
939
|
speed: `#cc3333`,
|
|
940
|
+
speedChara: `#cc6666`,
|
|
909
941
|
boost: `#999900`,
|
|
942
|
+
boostChara: `#999966`,
|
|
910
943
|
|
|
911
944
|
clear: `#33cc33`,
|
|
912
945
|
failed: `#cc3333`,
|
|
@@ -1543,8 +1576,8 @@ const g_playWindowFunc = new Map([
|
|
|
1543
1576
|
['Default', () => ``],
|
|
1544
1577
|
['Stairs', () => g_changeStairs(-8)],
|
|
1545
1578
|
['R-Stairs', () => g_changeStairs(8)],
|
|
1546
|
-
['Slope', () => g_changeStairs(-
|
|
1547
|
-
['R-Slope', () => g_changeStairs(
|
|
1579
|
+
['Slope', () => g_changeStairs(-g_slopeAngle())],
|
|
1580
|
+
['R-Slope', () => g_changeStairs(g_slopeAngle())],
|
|
1548
1581
|
['Distorted', () => g_changeSkew(-15)],
|
|
1549
1582
|
['R-Distorted', () => g_changeSkew(15)],
|
|
1550
1583
|
['SideScroll', () => g_changeStairs(-90)],
|
|
@@ -2289,6 +2322,8 @@ const g_shortcutObj = {
|
|
|
2289
2322
|
ControlLeft_KeyC: { id: `` },
|
|
2290
2323
|
ControlRight_KeyC: { id: `` },
|
|
2291
2324
|
KeyC: { id: `lnkHighScore`, reset: true },
|
|
2325
|
+
Comma: { id: `btnSpdCursorL` },
|
|
2326
|
+
Period: { id: `btnSpdCursorR` },
|
|
2292
2327
|
|
|
2293
2328
|
Escape: { id: `btnBack` },
|
|
2294
2329
|
Space: { id: `btnKeyConfig` },
|
|
@@ -4288,9 +4323,8 @@ const g_lang_msgObj = {
|
|
|
4288
4323
|
d_arroweffect: `矢印・フリーズアローモーションの有効化設定`,
|
|
4289
4324
|
d_special: `作品固有の特殊演出の有効化設定`,
|
|
4290
4325
|
|
|
4291
|
-
playWindow: `ステップゾーン及び矢印の位置を全体的に回転する等の設定です。\n[Stairs/Slope] ステップゾーンを階段状にします\n[Distorted]
|
|
4292
|
-
|
|
4293
|
-
sideScrollDisable: `\n\nウィンドウの高さの自動拡張が無効のため、Slope, SideScrollは使用できません`,
|
|
4326
|
+
playWindow: `ステップゾーン及び矢印の位置を全体的に回転する等の設定です。\n[Stairs/Slope] ステップゾーンを階段状にします\n[Distorted] 画面を歪ませます\n` +
|
|
4327
|
+
`[SideScroll] 横スクロールモードになります`,
|
|
4294
4328
|
stepArea: `ステップゾーンの位置を変更します。\n[Halfway] ステップゾーンが中央に表示されます\n[2Step] ステップゾーンが2段に分かれて流れてきます\n` +
|
|
4295
4329
|
`[Mismatched/R-Mismatched] スクロールの向きが上下で異なる方向に流れます\n` +
|
|
4296
4330
|
`[X-Flower] レーンが花びらのように広がります\n[Alt-Crossing] レーンが交互に違う方向から流れます`,
|
|
@@ -4382,9 +4416,8 @@ const g_lang_msgObj = {
|
|
|
4382
4416
|
d_arroweffect: `Enable sequences' animations`,
|
|
4383
4417
|
d_special: `Enable setting of special effects to the work`,
|
|
4384
4418
|
|
|
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.`,
|
|
4419
|
+
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` +
|
|
4420
|
+
`[SideScroll] It becomes a side scroll mode.`,
|
|
4388
4421
|
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
4422
|
`[Mismatched/R-Mismatched] Scroll direction flows in different directions up and down.\n` +
|
|
4390
4423
|
`[X-Flower] Lanes spread out like flower petals.\n[Alt-Crossing] Lanes flow from different directions alternately.`,
|