danoniplus 38.3.2 → 39.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.
@@ -5,7 +5,7 @@
5
5
  *
6
6
  * Source by tickle
7
7
  * Created : 2019/11/19
8
- * Revised : 2025/01/08 (v38.3.0)
8
+ * Revised : 2025/02/01 (v39.0.0)
9
9
  *
10
10
  * https://github.com/cwtickle/danoniplus
11
11
  */
@@ -111,6 +111,17 @@ const g_settingPos = {
111
111
  opacity: { heightPos: 9, y: 10, dw: 0, dh: 0 },
112
112
  hitPosition: { heightPos: 10, y: 10, dw: 0, dh: 0 },
113
113
  },
114
+ exSetting: {
115
+ playWindow: { heightPos: 0, y: 0, dw: 0, dh: 0 },
116
+ stepArea: { heightPos: 1, y: 0, dw: 0, dh: 0 },
117
+ frzReturn: { heightPos: 2.5, y: 0, dw: 0, dh: 0 },
118
+ shaking: { heightPos: 3.5, y: 0, dw: 0, dh: 0 },
119
+ effect: { heightPos: 5, y: 0, dw: 0, dh: 0 },
120
+ camoufrage: { heightPos: 6, y: 0, dw: 0, dh: 0 },
121
+ swapping: { heightPos: 7, y: 0, dw: 0, dh: 0 },
122
+ judgRange: { heightPos: 8.5, y: 0, dw: 0, dh: 0 },
123
+ autoRetry: { heightPos: 12.5, y: 0, dw: 0, dh: 0 },
124
+ },
114
125
  };
115
126
 
116
127
  // スプライト(ムービークリップ相当)のルート
@@ -791,6 +802,12 @@ const g_judgPosObj = {
791
802
  ii: 0, shakin: 1, matari: 2, shobon: 3, uwan: 4,
792
803
  kita: 0, sfsf: 1, iknai: 2,
793
804
  };
805
+ const g_judgRanges = {
806
+ 'Normal': [[2, 4, 6, 8, 16], [2, 4, 8]],
807
+ 'Narrow': [[2, 3, 4, 8, 16], [2, 4, 8]],
808
+ 'Hard': [[1, 3, 5, 8, 16], [1, 3, 8]],
809
+ 'ExHard': [[1, 2, 3, 8, 16], [1, 2, 8]],
810
+ };
794
811
 
795
812
  const C_CLR_DUMMY = `#777777`;
796
813
 
@@ -910,8 +927,20 @@ const g_stateObj = {
910
927
  filterLock: C_FLG_OFF,
911
928
  opacity: 100,
912
929
 
930
+ playWindow: `Default`,
931
+ stepArea: `Default`,
932
+ frzReturn: C_FLG_OFF,
933
+ shaking: C_FLG_OFF,
934
+ effect: C_FLG_OFF,
935
+ camoufrage: C_FLG_OFF,
936
+ swapping: C_FLG_OFF,
937
+ judgRange: `Normal`,
938
+ autoRetry: C_FLG_OFF,
939
+
913
940
  rotateEnabled: true,
914
941
  flatStepHeight: C_ARW_WIDTH,
942
+
943
+ layerNum: 2,
915
944
  };
916
945
 
917
946
  const C_VAL_MAXLIFE = 1000;
@@ -995,6 +1024,7 @@ const g_settings = {
995
1024
  hitPositionTerms: [50, 10],
996
1025
 
997
1026
  volumes: [0, 0.5, 1, 2, 5, 10, 25, 50, 75, 100],
1027
+ volumeNum: 0,
998
1028
 
999
1029
  appearances: [`Visible`, `Hidden`, `Hidden+`, `Sudden`, `Sudden+`, `Hid&Sud+`],
1000
1030
  appearanceNum: 0,
@@ -1003,6 +1033,7 @@ const g_settings = {
1003
1033
  filterLockNum: 0,
1004
1034
 
1005
1035
  opacitys: [10, 25, 50, 75, 100],
1036
+ opacityNum: 0,
1006
1037
 
1007
1038
  scoreDetailDefs: [`Density`, `Speed`, `ToolDif`, `HighScore`],
1008
1039
  scoreDetails: [],
@@ -1032,6 +1063,36 @@ const g_settings = {
1032
1063
  arrowEffect: 0,
1033
1064
  special: 0,
1034
1065
  },
1066
+
1067
+ playWindows: [`Default`, `Stairs`, `R-Stairs`, `Slope`, `R-Slope`, `Distorted`, `R-Distorted`, `SideScroll`, `R-SideScroll`],
1068
+ playWindowNum: 0,
1069
+
1070
+ stepAreas: [`Default`, `Halfway`, `Mismatched`, `R-Mismatched`, `X-Flower`],
1071
+ stepAreaNum: 0,
1072
+
1073
+ frzReturns: [C_FLG_OFF, `X-Axis`, `Y-Axis`, `Z-Axis`, `Random`, `XY-Axis`, `XZ-Axis`, `YZ-Axis`, `Random+`],
1074
+ frzReturnNum: 0,
1075
+
1076
+ shakings: [C_FLG_OFF, `Horizontal`, `Vertical`, `Drunk`],
1077
+ shakingNum: 0,
1078
+
1079
+ effects: [C_FLG_OFF, `Dizzy`, `Spin`, `Wave`, `Storm`, `Blinking`, `Squids`],
1080
+ effectNum: 0,
1081
+
1082
+ camoufrages: [C_FLG_OFF, `Color`, `Arrow`, `ALL`],
1083
+ camoufrageNum: 0,
1084
+
1085
+ swappings: [C_FLG_OFF, `Mirror`, `X-Mirror`],
1086
+ swappingNum: 0,
1087
+
1088
+ judgRanges: [`Normal`, `Narrow`, `Hard`, `ExHard`],
1089
+ judgRangeNum: 0,
1090
+
1091
+ autoRetrys: [C_FLG_OFF, `Miss`, `Matari(Good)`, `Shakin(Great)`, `Fast/Slow`],
1092
+ autoRetryNum: 0,
1093
+
1094
+ settingWindows: [optionInit, settingsDisplayInit, exSettingInit],
1095
+ settingWindowNum: 0,
1035
1096
  };
1036
1097
 
1037
1098
  g_settings.volumeNum = g_settings.volumes.length - 1;
@@ -1040,10 +1101,11 @@ g_settings.opacityNum = g_settings.opacitys.length - 1;
1040
1101
  /**
1041
1102
  * 設定画面間移動
1042
1103
  */
1043
- const g_jumpSettingWindow = {
1044
- option: () => settingsDisplayInit(),
1045
- difSelector: () => settingsDisplayInit(),
1046
- settingsDisplay: () => optionInit(),
1104
+ const g_moveSettingWindow = (_changePageFlg = true, _direction = 1) => {
1105
+ if (_changePageFlg) {
1106
+ g_settings.settingWindowNum = nextPos(g_settings.settingWindowNum, _direction, g_settings.settingWindows.length);
1107
+ }
1108
+ g_settings.settingWindows[g_settings.settingWindowNum]();
1047
1109
  };
1048
1110
 
1049
1111
  /**
@@ -1089,6 +1151,126 @@ const g_motionFunc = {
1089
1151
  'Fountain': _frms => getFountainTrace(_frms, g_stateObj.speed * 2),
1090
1152
  };
1091
1153
 
1154
+ /**
1155
+ * PlayWindow適用関数
1156
+ */
1157
+ const g_changeStairs = (_rad) => ` rotate(${_rad}deg)`;
1158
+ const g_changeSkew = (_rad) => ` Skew(${_rad}deg, ${_rad}deg) scaleY(0.9)`;
1159
+
1160
+ const g_playWindowFunc = {
1161
+ 'Default': () => ``,
1162
+ 'Stairs': () => g_changeStairs(-8),
1163
+ 'R-Stairs': () => g_changeStairs(8),
1164
+ 'Slope': () => g_changeStairs(-45),
1165
+ 'R-Slope': () => g_changeStairs(45),
1166
+ 'Distorted': () => g_changeSkew(-15),
1167
+ 'R-Distorted': () => g_changeSkew(15),
1168
+ 'SideScroll': () => g_changeStairs(-90),
1169
+ 'R-SideScroll': () => g_changeStairs(90),
1170
+ };
1171
+
1172
+ const g_stepAreaFunc = {
1173
+ 'Default': () => ``,
1174
+ 'Halfway': () => {
1175
+ [`stepSprite`, `arrowSprite`, `frzHitSprite`].forEach(sprite => {
1176
+ $id(`${sprite}0`).top = `${g_headerObj.playingHeight / 2 - g_posObj.stepY + (g_posObj.stepYR - C_ARW_WIDTH) / 2}px`;
1177
+ $id(`${sprite}1`).top = `-${g_headerObj.playingHeight / 2 - g_posObj.stepY + (g_posObj.stepYR - C_ARW_WIDTH) / 2}px`;
1178
+ });
1179
+ },
1180
+ 'Mismatched': () => {
1181
+ [`stepSprite`, `arrowSprite`, `frzHitSprite`].forEach(sprite => {
1182
+ $id(`${sprite}0`).transform = `rotate(-15deg)`;
1183
+ $id(`${sprite}1`).transform = `rotate(15deg)`;
1184
+ });
1185
+ },
1186
+ 'R-Mismatched': () => {
1187
+ [`stepSprite`, `arrowSprite`, `frzHitSprite`].forEach(sprite => {
1188
+ $id(`${sprite}0`).transform = `rotate(15deg)`;
1189
+ $id(`${sprite}1`).transform = `rotate(-15deg)`;
1190
+ });
1191
+ },
1192
+ 'X-Flower': () => {
1193
+ [`stepSprite`, `arrowSprite`, `frzHitSprite`].forEach(sprite => {
1194
+ $id(`${sprite}0`).transform = `rotate(-15deg)`;
1195
+ $id(`${sprite}1`).transform = `rotate(15deg)`;
1196
+ $id(`${sprite}2`).transform = `rotate(15deg)`;
1197
+ $id(`${sprite}3`).transform = `rotate(-15deg)`;
1198
+ });
1199
+ },
1200
+ };
1201
+
1202
+ /**
1203
+ * Shaking適用関数
1204
+ */
1205
+ const g_shakingFunc = {
1206
+ 'OFF': () => true,
1207
+ 'Horizontal': () => $id(`mainSprite`).left = `${(Math.abs((g_scoreObj.baseFrame / 2) % 100 - 50) - 25) / 1}px`,
1208
+ 'Vertical': () => $id(`mainSprite`).top = `${(Math.abs((g_scoreObj.baseFrame / 2) % 100 - 50) - 25) / 2}px`,
1209
+ 'Drunk': () => {
1210
+ if (parseFloat($id(`mainSprite`).left) === 0 && parseFloat($id(`mainSprite`).top) === 0) {
1211
+ g_workObj.drunkXFlg = [true, false][Math.floor(Math.random() * 2)];
1212
+ g_workObj.drunkYFlg = [true, false][Math.floor(Math.random() * 2)];
1213
+ }
1214
+ if (g_workObj.drunkXFlg) {
1215
+ $id(`mainSprite`).left = `${(Math.abs((g_scoreObj.baseFrame / 2) % 100 - 50) - 25) / 1}px`;
1216
+ $id(`infoSprite`).left = $id(`mainSprite`).left;
1217
+ $id(`judgeSprite`).left = $id(`mainSprite`).left;
1218
+ }
1219
+ if (g_workObj.drunkYFlg) {
1220
+ $id(`mainSprite`).top = `${(Math.abs((g_scoreObj.baseFrame / 2) % 100 - 50) - 25) / 2}px`;
1221
+ $id(`infoSprite`).top = $id(`mainSprite`).top;
1222
+ $id(`judgeSprite`).top = $id(`mainSprite`).top;
1223
+ }
1224
+ },
1225
+ };
1226
+
1227
+ /**
1228
+ * FrzReturn適用関数
1229
+ */
1230
+ const g_frzReturnFunc = {
1231
+ 'OFF': () => true,
1232
+ 'X-Axis': () => [`X`],
1233
+ 'Y-Axis': () => [`Y`],
1234
+ 'Z-Axis': () => [`Z`],
1235
+ 'Random': () => [`X`, `Y`, `Z`][Math.floor(Math.random() * 3)],
1236
+ 'XY-Axis': () => [`X`, `Y`],
1237
+ 'XZ-Axis': () => [`X`, `Z`],
1238
+ 'YZ-Axis': () => [`Y`, `Z`],
1239
+ 'Random+': () => {
1240
+ const axis1 = [`X`, `Y`, `Z`][Math.floor(Math.random() * 3)];
1241
+ const axis2 = [`X`, `Y`, `Z`, undefined].filter(val => val !== axis1)[Math.floor(Math.random() * 3)];
1242
+ return [axis1, axis2];
1243
+ },
1244
+ };
1245
+
1246
+ /**
1247
+ * Effect適用関数
1248
+ * @param {string} _arrowEffect
1249
+ * @param {string} _frzEffect
1250
+ * @param {string} _frzArrowEffect
1251
+ */
1252
+ const g_setEffect = (_arrowEffect, _frzEffect = ``, _frzArrowEffect = _arrowEffect) => {
1253
+ const keyNum = g_keyObj[`${g_keyObj.defaultProp}${g_keyObj.currentKey}_${g_keyObj.currentPtn}`].length;
1254
+ for (let j = 0; j < keyNum; j++) {
1255
+ g_workObj.arrowCssMotions[j] = _arrowEffect;
1256
+ if (hasVal(_frzEffect)) {
1257
+ g_workObj.frzCssMotions[j] = _frzEffect;
1258
+ }
1259
+ if (hasVal(_frzArrowEffect)) {
1260
+ g_workObj.frzArrowCssMotions[j] = _frzArrowEffect;
1261
+ }
1262
+ }
1263
+ };
1264
+ const g_effectFunc = {
1265
+ 'OFF': () => true,
1266
+ 'Dizzy': () => g_setEffect(`effects-dizzy`),
1267
+ 'Spin': () => g_setEffect(`effects-spin`),
1268
+ 'Wave': () => g_setEffect(`effects-wave`, `effects-wave`),
1269
+ 'Storm': () => g_setEffect(`effects-storm`, `effects-storm`, ``),
1270
+ 'Blinking': () => g_setEffect(`effects-blinking`, `effects-blinking`, ``),
1271
+ 'Squids': () => g_setEffect(`effects-squids-arrow`, `effects-squids-frz`),
1272
+ };
1273
+
1092
1274
  const g_keycons = {
1093
1275
  configTypes: [`Main`, `Replaced`, `ALL`],
1094
1276
  configTypeNum: 0,
@@ -1130,7 +1312,9 @@ let g_storeSettings = [`adjustment`, `volume`, `appearance`, `opacity`, `hitPosi
1130
1312
  let g_storeSettingsEx = [`d_stepzone`, `d_judgment`, `d_fastslow`, `d_lifegauge`,
1131
1313
  `d_score`, `d_musicinfo`, `d_filterline`];
1132
1314
 
1133
- let g_canDisabledSettings = [`motion`, `scroll`, `reverse`, `shuffle`, `autoPlay`, `gauge`, `excessive`, `appearance`];
1315
+ let g_canDisabledSettings = [`motion`, `scroll`, `reverse`, `shuffle`, `autoPlay`, `gauge`,
1316
+ `excessive`, `appearance`, `playWindow`, `stepArea`, `frzReturn`, `shaking`, `effect`, `camoufrage`,
1317
+ `swapping`, `judgRange`, `autoRetry`];
1134
1318
 
1135
1319
  const g_hidSudFunc = {
1136
1320
  filterPos: _filterPos => `${_filterPos}${g_lblNameObj.percent}`,
@@ -1754,6 +1938,33 @@ const g_shortcutObj = {
1754
1938
  ShiftRight_Tab: { id: `btnBack` },
1755
1939
  Tab: { id: `btnSettings` },
1756
1940
  },
1941
+ exSetting: {
1942
+ ShiftLeft_KeyP: { id: `lnkPlayWindowL` },
1943
+ ShiftLeft_KeyS: { id: `lnkStepAreaL` },
1944
+ ShiftLeft_KeyF: { id: `lnkFrzReturnL` },
1945
+ ShiftLeft_KeyH: { id: `lnkShakingL` },
1946
+ ShiftLeft_KeyE: { id: `lnkEffectL` },
1947
+ ShiftLeft_KeyC: { id: `lnkCamoufrageL` },
1948
+ ShiftLeft_KeyW: { id: `lnkSwappingL` },
1949
+ ShiftLeft_KeyJ: { id: `lnkJudgRangeL` },
1950
+ ShiftLeft_KeyA: { id: `lnkAutoRetryL` },
1951
+
1952
+ KeyP: { id: `lnkPlayWindowR` },
1953
+ KeyS: { id: `lnkStepAreaR` },
1954
+ KeyF: { id: `lnkFrzReturnR` },
1955
+ KeyH: { id: `lnkShakingR` },
1956
+ KeyE: { id: `lnkEffectR` },
1957
+ KeyC: { id: `lnkCamoufrageR` },
1958
+ KeyW: { id: `lnkSwappingR` },
1959
+ KeyJ: { id: `lnkJudgRangeR` },
1960
+ KeyA: { id: `lnkAutoRetryR` },
1961
+
1962
+ KeyZ: { id: `btnSave` },
1963
+ Escape: { id: `btnBack` },
1964
+ Space: { id: `btnKeyConfig` },
1965
+ Enter: { id: `btnPlay` },
1966
+ Tab: { id: `btnexSetting` },
1967
+ },
1757
1968
  keyConfig: {
1758
1969
  Escape: { id: `btnBack` },
1759
1970
  Backspace_Enter: { id: `btnPlay` },
@@ -1786,6 +1997,7 @@ const g_btnWaitFrame = {
1786
1997
  option: { b_frame: 0, s_frame: 0, initial: true },
1787
1998
  difSelector: { b_frame: 0, s_frame: 0 },
1788
1999
  settingsDisplay: { b_frame: 0, s_frame: 0 },
2000
+ exSetting: { b_frame: 0, s_frame: 0 },
1789
2001
  keyConfig: { b_frame: 0, s_frame: 30 },
1790
2002
  loading: { b_frame: 0, s_frame: 0 },
1791
2003
  loadingIos: { b_frame: 0, s_frame: 0 },
@@ -1799,6 +2011,7 @@ const g_btnPatterns = {
1799
2011
  option: { Back: 0, KeyConfig: 0, Play: 0, Display: -5, Save: -10, Graph: -25 },
1800
2012
  difSelector: {},
1801
2013
  settingsDisplay: { Back: 0, KeyConfig: 0, Play: 0, Save: -10, Settings: -5 },
2014
+ exSetting: { Back: 0, KeyConfig: 0, Play: 0, exSetting: -5, Save: -10 },
1802
2015
  loadingIos: { Play: 0 },
1803
2016
  keyConfig: { Back: -3, Play: 0 },
1804
2017
  result: { Back: -5, Copy: -5, Tweet: -5, Gitter: -5, Retry: 0 },
@@ -3042,6 +3255,16 @@ const g_lblNameObj = {
3042
3255
  Opacity: `Opacity`,
3043
3256
  HitPosition: `HitPosition`,
3044
3257
 
3258
+ PlayWindow: `PlayWindow`,
3259
+ StepArea: `StepArea`,
3260
+ FrzReturn: `FrzReturn`,
3261
+ Shaking: `Shaking`,
3262
+ Effect: `Effect`,
3263
+ Camoufrage: `Camoufrage`,
3264
+ Swapping: `Swapping`,
3265
+ JudgRange: `JudgRange`,
3266
+ AutoRetry: `AutoRetry`,
3267
+
3045
3268
  'u_x': `x`,
3046
3269
  'u_%': `%`,
3047
3270
  'u_key': `key`,
@@ -3097,6 +3320,45 @@ const g_lblNameObj = {
3097
3320
  'u_Sudden+': `Sudden+`,
3098
3321
  'u_Hid&Sud+': `Hid&Sud+`,
3099
3322
 
3323
+ 'u_Stairs': `Stairs`,
3324
+ 'u_R-Stairs': `R-Stairs`,
3325
+ 'u_Slope': `Slope`,
3326
+ 'u_R-Slope': `R-Slope`,
3327
+ 'u_Distorted': `Distorted`,
3328
+ 'u_R-Distorted': `R-Distorted`,
3329
+ 'u_SideScroll': `SideScroll`,
3330
+ 'u_R-SideScroll': `R-SideScroll`,
3331
+
3332
+ 'u_X-Axis': `X-Axis`,
3333
+ 'u_Y-Axis': `Y-Axis`,
3334
+ 'u_Z-Axis': `Z-Axis`,
3335
+ 'u_XY-Axis': `XY-Axis`,
3336
+ 'u_XZ-Axis': `XZ-Axis`,
3337
+ 'u_YZ-Axis': `YZ-Axis`,
3338
+
3339
+ 'u_Horizontal': `Horizontal`,
3340
+ 'u_Vertical': `Vertical`,
3341
+ 'u_Drunk': `Drunk`,
3342
+
3343
+ 'u_Dizzy': `Dizzy`,
3344
+ 'u_Spin': `Spin`,
3345
+ 'u_Wave': `Wave`,
3346
+ 'u_Storm': `Storm`,
3347
+ 'u_Blinking': `Blinking`,
3348
+ 'u_Squids': `Squids`,
3349
+
3350
+ 'u_Color': `Color`,
3351
+ 'u_Arrow': `Arrow`,
3352
+
3353
+ 'u_Narrow': `Narrow`,
3354
+ 'u_Hard': `Hard`,
3355
+ 'u_ExHard': `ExHard`,
3356
+
3357
+ 'u_Miss': `Miss`,
3358
+ 'u_Matari(Good)': `Matari(Good)`,
3359
+ 'u_Shakin(Great)': `Shakin(Great)`,
3360
+ 'u_Fast/Slow': `Fast/Slow`,
3361
+
3100
3362
  'u_Speed': `Velocity`,
3101
3363
  'u_Density': `Density`,
3102
3364
  'u_ToolDif': `DifLevel`,
@@ -3289,7 +3551,7 @@ const g_lang_msgObj = {
3289
3551
  graph: `譜面密度や速度変化状況、\n譜面の難易度などの情報を表示します。`,
3290
3552
  dataSave: `ハイスコア、リバース設定、\nキーコンフィグの保存の有無を設定します。`,
3291
3553
  toDisplay: `プレイ画面上のオブジェクトの\n表示・非表示(一部透明度)を設定します。`,
3292
- toSettings: `SETTINGS画面へ戻ります。`,
3554
+ toSettings: `その他の拡張設定を設定します。`,
3293
3555
 
3294
3556
  d_stepzone: `ステップゾーンの表示`,
3295
3557
  d_judgment: `判定キャラクタ・コンボの表示`,
@@ -3305,6 +3567,18 @@ const g_lang_msgObj = {
3305
3567
  d_arroweffect: `矢印・フリーズアローモーションの有効化設定`,
3306
3568
  d_special: `作品固有の特殊演出の有効化設定`,
3307
3569
 
3570
+ playWindow: `ステップゾーン及び矢印の位置を全体的に回転する等の設定です。\n[Stairs/Slope] ステップゾーンを階段状にします\n[Distorted] 画面を歪ませます`,
3571
+ sideScrollMsg: `\n[SideScroll] 横スクロールモードになります\n\nSlope, SideScrollを設定する場合は高さが足りているかを確認してください\nクエリパラメータ ?h=600 などで設定できます`,
3572
+ sideScrollDisable: `\n\nウィンドウの高さの自動拡張が無効のため、Slope, SideScrollは使用できません`,
3573
+ stepArea: `ステップゾーンの位置を変更します。\n[Halfway] ステップゾーンが中央に表示されます\n[Mismatched] スクロールの向きが上下で異なる方向に流れます`,
3574
+ frzReturn: `フリーズアロー到達時及び矢印の回復判定が100の倍数に達するごとに、X/Y/Z軸のいずれかに回転します`,
3575
+ shaking: `ステップゾーン及び矢印を揺らす設定です。\n[Horizontal] 横方向に揺らします\n[Vertical] 縦方向に揺らします\n[Drunk] 画面全体を上下左右ランダムに揺らします。画面酔いに注意してください`,
3576
+ effect: `矢印・フリーズアローにエフェクトをかけます。\n[Dizzy/Spin] 矢印が回転します\n[Wave/Storm] 矢印の軌道が左右に揺れます\n[Blinking] 矢印が点滅します\n[Squids] 矢印が伸び縮みします`,
3577
+ camoufrage: `ステップの見た目が配置は同じでランダムに変わります。`,
3578
+ swapping: `ステップゾーンの位置をグループ単位で入れ替えます。`,
3579
+ judgRange: `判定の許容範囲を設定します。\n[Normal] 通常、[Narrow/Hard] 辛判定、[ExHard] 激辛判定`,
3580
+ autoRetry: `自動リトライの条件を設定します。\n[Miss] ミス時、[Matari] マターリ時、[Shakin] シャキン時、[FS] Fast/Slow発生時`,
3581
+
3308
3582
  lnkSpeedG: `譜面の進行別の速度変化状況を表示`,
3309
3583
  lnkDensityG: `譜面の密度状況を表示`,
3310
3584
  lnkToolDifG: `譜面の難易度、矢印・フリーズアローの分布状況を表示`,
@@ -3359,7 +3633,7 @@ const g_lang_msgObj = {
3359
3633
  graph: `Displays detailed information about the chart, such as chart's density status, sequences' velocity changes, and chart's difficulty.`,
3360
3634
  dataSave: `Set whether to save the high score, reverse setting, and key config.`,
3361
3635
  toDisplay: `Set the display or non-display (partial transparency) of objects on the play screen.`,
3362
- toSettings: `Return to the SETTINGS screen.`,
3636
+ toSettings: `Set other extended settings.`,
3363
3637
 
3364
3638
  d_stepzone: `Display step zone`,
3365
3639
  d_judgment: `Display judgment and combo counts`,
@@ -3375,6 +3649,18 @@ const g_lang_msgObj = {
3375
3649
  d_arroweffect: `Enable sequences' animations`,
3376
3650
  d_special: `Enable setting of special effects to the work`,
3377
3651
 
3652
+ 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.`,
3653
+ 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.`,
3654
+ sideScrollDisable: `\n\nSlope, SideScroll cannot be used because \nautomatic window height expansion is disabled.`,
3655
+ stepArea: `Change the position of the step zone.\n[Halfway] Step zones are centered.\n[Mismatched] Scroll direction flows in different directions up and down.`,
3656
+ 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.`,
3657
+ shaking: `This is the setting to shake the step zone and arrows.\n[Horizontal] Shakes horizontally.\n[Vertical] Shakes vertically.\n[Drunk] Shakes the entire screen randomly up, down, left, and right. Be careful of motion sickness.`,
3658
+ 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.`,
3659
+ camoufrage: `The appearance of the steps changes randomly with the same placement.`,
3660
+ swapping: `Replaces the position of step zones on a group-by-group basis.`,
3661
+ judgRange: `Set the allowable range of judgment.\n[Normal] Normal judgment, [Narrow/Hard] Hard judgment, [ExHard] Very hard judgment`,
3662
+ autoRetry: `Set the conditions for automatic retry.\n[Miss] When missed, [Matari] When good, [Shakin] When great, [FS] When Fast/Slow occurs`,
3663
+
3378
3664
  lnkSpeedG: `Displays the speed change status by progression of the chart.`,
3379
3665
  lnkDensityG: `Displays the density status of the chart.`,
3380
3666
  lnkToolDifG: `Displays the difficulty level of the chart and the distribution of arrows and freeze arrows.`,
@@ -3426,12 +3712,17 @@ const g_customJsObj = {
3426
3712
  option: [],
3427
3713
  difficulty: [],
3428
3714
  settingsDisplay: [],
3715
+ exSetting: [],
3429
3716
  keyconfig: [],
3430
3717
 
3431
3718
  preloading: [],
3432
3719
  loading: [],
3433
3720
  progress: [],
3434
3721
  main: [],
3722
+
3723
+ makeArrow: [],
3724
+ makeFrzArrow: [],
3725
+
3435
3726
  dummyArrow: [],
3436
3727
  dummyFrz: [],
3437
3728
 
@@ -3459,6 +3750,7 @@ const g_skinJsObj = {
3459
3750
  title: [],
3460
3751
  option: [],
3461
3752
  settingsDisplay: [],
3753
+ exSetting: [],
3462
3754
  keyconfig: [],
3463
3755
 
3464
3756
  preloading: [],
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
  /**
3
3
  * Dancing☆Onigiri 設定用jsファイル
4
- * Template Update: 2024/09/04 (v37.5.0)
4
+ * Template Update: 2025/02/01 (v39.0.0)
5
5
  *
6
6
  * このファイルでは、作品全体に対しての初期設定を行うことができます。
7
7
  * 譜面データ側で個別に同様の項目が設定されている場合は、譜面データ側の設定が優先されます。
@@ -246,6 +246,16 @@ g_presetObj.settingUse = {
246
246
  // background: `true`,
247
247
  // arrowEffect: `true`,
248
248
  // special: `true`,
249
+
250
+ // playWindow: `true`,
251
+ // stepArea: `true`,
252
+ // frzReturn : `true`,
253
+ // shaking : `true`,
254
+ // effect : `true`,
255
+ // camoufrage : `true`,
256
+ // swapping : `true`,
257
+ // judgRange : `true`,
258
+ // autoRetry : `true`,
249
259
  };
250
260
 
251
261
  /*
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "danoniplus",
3
- "version": "38.3.2",
3
+ "version": "39.0.0",
4
4
  "description": "Dancing☆Onigiri (CW Edition) - Web-based Rhythm Game",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -5,7 +5,7 @@
5
5
  スキンcssファイル (default)
6
6
 
7
7
  Created : 2019/11/04
8
- Revised : 2024/05/18 (v36.4.1)
8
+ Revised : 2025/02/01 (v39.0.0)
9
9
 
10
10
  https://github.com/cwtickle/danoniplus
11
11
  ------------------------------------------ */
@@ -43,6 +43,15 @@
43
43
  --settings-appearance-x: #cc99ff;
44
44
  --settings-opacity-x: #ee99ff;
45
45
  --settings-hitPosition-x: #ff99ff;
46
+ --settings-playWindow-x: #9999ff;
47
+ --settings-stepArea-x: #6699ff;
48
+ --settings-frzReturn-x: #99ccff;
49
+ --settings-shaking-x: #99ffff;
50
+ --settings-effect-x: #99ffcc;
51
+ --settings-camoufrage-x: #99ff99;
52
+ --settings-swapping-x: #ccff99;
53
+ --settings-judgRange-x: #ffff99;
54
+ --settings-autoRetry-x: #cc99ff;
46
55
 
47
56
  /* 譜面選択部分背景 */
48
57
  --settings-difSelector: #111111;
@@ -5,7 +5,7 @@
5
5
  スキンcssファイル (light)
6
6
 
7
7
  Created : 2019/11/04
8
- Revised : 2024/05/18 (v36.4.1)
8
+ Revised : 2025/02/01 (v39.0.0)
9
9
 
10
10
  https://github.com/cwtickle/danoniplus
11
11
  ------------------------------------------ */
@@ -43,6 +43,15 @@
43
43
  --settings-appearance-x: #9900ff;
44
44
  --settings-opacity-x: #cc00ff;
45
45
  --settings-hitPosition-x: #ff00ff;
46
+ --settings-playWindow-x: #000099;
47
+ --settings-stepArea-x: #222299;
48
+ --settings-frzReturn-x: #003377;
49
+ --settings-shaking-x: #007777;
50
+ --settings-effect-x: #337744;
51
+ --settings-camoufrage-x: #337733;
52
+ --settings-swapping-x: #557733;
53
+ --settings-judgRange-x: #777700;
54
+ --settings-autoRetry-x: #9900ff;
46
55
 
47
56
  /* 譜面選択部分背景 */
48
57
  --settings-difSelector: #eeeeee;
@@ -5,7 +5,7 @@
5
5
  スキンcssファイル (skyblue)
6
6
 
7
7
  Created : 2019/11/04
8
- Revised : 2024/05/18 (v36.4.1)
8
+ Revised : 2025/02/01 (v39.0.0)
9
9
 
10
10
  https://github.com/cwtickle/danoniplus
11
11
  ------------------------------------------ */
@@ -43,6 +43,15 @@
43
43
  --settings-appearance-x: #9900ff;
44
44
  --settings-opacity-x: #cc00ff;
45
45
  --settings-hitPosition-x: #ff00ff;
46
+ --settings-playWindow-x: #000099;
47
+ --settings-stepArea-x: #000099;
48
+ --settings-frzReturn-x: #003399;
49
+ --settings-shaking-x: #003399;
50
+ --settings-effect-x: #006699;
51
+ --settings-camoufrage-x: #009999;
52
+ --settings-swapping-x: #006699;
53
+ --settings-judgRange-x: #003399;
54
+ --settings-autoRetry-x: #000099;
46
55
 
47
56
  /* 譜面選択部分背景 */
48
57
  --settings-difSelector: #ccddee;