danoniplus 26.1.2 → 26.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/README.md CHANGED
@@ -83,9 +83,9 @@ but the details are different from the conventional ones. See below for details.
83
83
  ## How to Contribute / 開発者の方へ
84
84
  開発にご協力いただける方は、下記をご覧ください。GitHubアカウントの無い方でも協力できます!
85
85
  If you would like to cooperate with the development, please see below. Even if you don't have a GitHub account, you can cooperate!
86
- - [貢献の仕方 / How to Contribute](https://github.com/cwtickle/blob/develop/.github/CONTRIBUTING.md)
86
+ - [貢献の仕方 / How to Contribute](https://github.com/cwtickle/danoniplus/blob/develop/.github/CONTRIBUTING.md)
87
87
  - [要望・不具合報告用Gitter](https://gitter.im/danonicw/community)
88
- - [コントリビューター / Contributors](https://github.com/cwtickle/blob/develop/CONTRIBUTORS.md)
88
+ - [コントリビューター / Contributors](https://github.com/cwtickle/danoniplus/blob/develop/CONTRIBUTORS.md)
89
89
 
90
90
  ## Community / コミュニティ
91
91
  - [Dancing☆Onigiri Discordサーバー](https://discord.gg/TegbHFY7zg)
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 : 2022/02/16
7
+ * Revised : 2022/02/20
8
8
  *
9
9
  * https://github.com/cwtickle/danoniplus
10
10
  */
11
- const g_version = `Ver 26.1.2`;
12
- const g_revisedDate = `2022/02/16`;
11
+ const g_version = `Ver 26.2.0`;
12
+ const g_revisedDate = `2022/02/20`;
13
13
  const g_alphaVersion = ``;
14
14
 
15
15
  // カスタム用バージョン (danoni_custom.js 等で指定可)
@@ -241,11 +241,11 @@ const hasArrayList = (_data, _length = 1) => _data !== undefined && _data.length
241
241
  /**
242
242
  * 重複を排除した配列の生成
243
243
  * @param {array} _array1
244
- * @param {array} _array2
244
+ * @param {...any} _arrays
245
245
  * @returns
246
246
  */
247
- const makeDedupliArray = (_array1, _array2) =>
248
- Array.from((new Set([..._array1, ..._array2])).values());
247
+ const makeDedupliArray = (_array1, ..._arrays) =>
248
+ Array.from((new Set([..._array1, ..._arrays.flat()])).values());
249
249
 
250
250
  /**
251
251
  * 部分一致検索(リストのいずれかに合致、大小文字問わず)
@@ -1508,7 +1508,14 @@ function initAfterDosLoaded() {
1508
1508
 
1509
1509
  // 譜面ヘッダー、特殊キー情報の読込
1510
1510
  Object.assign(g_headerObj, headerConvert(g_rootObj));
1511
- keysConvert(g_rootObj);
1511
+ if (typeof g_presetKeysData === C_TYP_STRING) {
1512
+ keysConvert(dosConvert(g_presetKeysData));
1513
+ g_headerObj.undefinedKeyLists = g_headerObj.undefinedKeyLists.filter(key => g_keyObj[`chara${key}_0`] === undefined);
1514
+ }
1515
+ g_headerObj.keyExtraList = keysConvert(g_rootObj, {
1516
+ keyExtraList: (g_rootObj.keyExtraList !== undefined ?
1517
+ makeDedupliArray(g_rootObj.keyExtraList.split(`,`), g_headerObj.undefinedKeyLists) : g_headerObj.undefinedKeyLists),
1518
+ });
1512
1519
 
1513
1520
  // キー数情報を初期化
1514
1521
  g_keyObj.currentKey = g_headerObj.keyLabels[g_stateObj.scoreId];
@@ -3067,8 +3074,9 @@ function headerConvert(_dosObj) {
3067
3074
  obj.lifeInits = [25];
3068
3075
  obj.creatorNames = [obj.tuning];
3069
3076
  }
3070
- const keyLists = obj.keyLabels.filter((x, j, self) => self.indexOf(x) === j);
3077
+ const keyLists = makeDedupliArray(obj.keyLabels);
3071
3078
  obj.keyLists = keyLists.sort((a, b) => parseInt(a) - parseInt(b));
3079
+ obj.undefinedKeyLists = obj.keyLists.filter(key => g_keyObj[`chara${key}_0`] === undefined);
3072
3080
 
3073
3081
  // 譜面変更セレクターの利用有無
3074
3082
  obj.difSelectorUse = (setVal(_dosObj.difSelectorUse, obj.keyLabels.length > 5, C_TYP_BOOLEAN));
@@ -3798,12 +3806,11 @@ const getKeyName = _key => hasVal(g_keyObj[`keyName${_key}`]) ? g_keyObj[`keyNam
3798
3806
  * 一時的な追加キーの設定
3799
3807
  * @param {object} _dosObj
3800
3808
  */
3801
- function keysConvert(_dosObj) {
3809
+ function keysConvert(_dosObj, { keyExtraList = _dosObj.keyExtraList.split(`,`) } = {}) {
3802
3810
 
3803
- if (_dosObj.keyExtraList === undefined) {
3804
- return;
3811
+ if (keyExtraList === undefined) {
3812
+ return [];
3805
3813
  }
3806
- const keyExtraList = _dosObj.keyExtraList.split(`,`);
3807
3814
 
3808
3815
  const existParam = (_data, _paramName) => !hasVal(_data) && g_keyObj[_paramName] !== undefined;
3809
3816
  const toString = _str => _str;
@@ -3996,6 +4003,8 @@ function keysConvert(_dosObj) {
3996
4003
  // |assist(newKey)=Onigiri::0,0,0,0,0,1/AA::0,0,0,1,1,1$...|
3997
4004
  newKeyPairParam(newKey, `assist`, `assistPos`);
3998
4005
  });
4006
+
4007
+ return keyExtraList;
3999
4008
  }
4000
4009
 
4001
4010
 
@@ -4981,8 +4990,6 @@ function createOptionWindow(_sprite) {
4981
4990
  // ---------------------------------------------------
4982
4991
  // 1. キーコンフィグ設定 (KeyConfig)
4983
4992
 
4984
- // 特殊キーフラグ
4985
- g_stateObj.extraKeyFlg = false;
4986
4993
 
4987
4994
  g_keyObj.currentKey = g_headerObj.keyLabels[g_stateObj.scoreId];
4988
4995
  const isNotSameKey = (g_keyObj.prevKey !== g_keyObj.currentKey);
@@ -4990,15 +4997,8 @@ function createOptionWindow(_sprite) {
4990
4997
  if (g_headerObj.dummyScoreNos !== undefined) {
4991
4998
  g_stateObj.dummyId = setVal(g_headerObj.dummyScoreNos[g_stateObj.scoreId], ``, C_TYP_NUMBER);
4992
4999
  }
4993
-
4994
- if (g_rootObj.keyExtraList !== undefined) {
4995
- g_rootObj.keyExtraList.split(`,`).some(extraKey => {
4996
- if (g_keyObj.currentKey === extraKey) {
4997
- g_stateObj.extraKeyFlg = true;
4998
- return true;
4999
- }
5000
- });
5001
- }
5000
+ // 特殊キーフラグ
5001
+ g_stateObj.extraKeyFlg = g_headerObj.keyExtraList.includes(g_keyObj.currentKey);
5002
5002
 
5003
5003
  // ---------------------------------------------------
5004
5004
  // 2. 初期化設定
@@ -5236,8 +5236,8 @@ function createLblSetting(_settingName, _adjY = 0, _settingLabel = _settingName)
5236
5236
  * @param {string} _name
5237
5237
  */
5238
5238
  function getStgDetailName(_name) {
5239
- return g_lblNameObj[`u_${_name}`] === undefined || typeof g_lblRenames !== C_TYP_OBJECT || !g_lblRenames[g_currentPage] ?
5240
- _name : g_lblNameObj[`u_${_name}`];
5239
+ return g_lblNameObj[`u_${_name}`] !== undefined && (typeof g_lblRenames !== C_TYP_OBJECT ||
5240
+ (typeof g_lblRenames === C_TYP_OBJECT && g_lblRenames[g_currentPage])) ? g_lblNameObj[`u_${_name}`] : _name;
5241
5241
  }
5242
5242
 
5243
5243
  /**
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
  /**
3
3
  * Dancing☆Onigiri 設定用jsファイル
4
- * Template Update: 2022/01/26 (v25.5.1)
4
+ * Template Update: 2022/02/20 (v26.2.0)
5
5
  *
6
6
  * このファイルでは、作品全体に対しての初期設定を行うことができます。
7
7
  * 譜面データ側で個別に同様の項目が設定されている場合は、譜面データ側の設定が優先されます。
@@ -260,4 +260,36 @@ const g_presetStockForceDelList = {
260
260
  word: [],
261
261
  back: [],
262
262
  mask: [],
263
- };
263
+ };
264
+
265
+ /**
266
+ * 特殊キー定義(共通)
267
+ * 指定方法は作品別に特殊キーを定義する方法と同じ(ただし、keyExtraList必須)
268
+ *
269
+ * 定義方法は下記を参照のこと
270
+ * https://github.com/cwtickle/danoniplus/wiki/keys
271
+ * https://github.com/cwtickle/danoniplus/wiki/tips-0004-extrakeys
272
+ */
273
+ /*
274
+ const g_presetKeysData = `
275
+
276
+ |keyExtraList=6,9v|
277
+ |color6=0,1,0,1,0,2$2,0,1,0,1,0|
278
+ |chara6=left,leftdia,down,rightdia,right,space$space,left,leftdia,down,rightdia,right|
279
+ |div6=6$6|
280
+ |stepRtn6=0,45,-90,135,180,onigiri$onigiri,0,45,-90,135,180|
281
+ |keyCtrl6=75/0,79/0,76/0,80/0,187/0,32/0$32/0,75/0,79/0,76/0,80/0,187/0|
282
+ |shuffle6=1,1,1,1,1,0$0,1,1,1,1,1|
283
+
284
+ |chara9v=9B_0$9B_0|
285
+ |color9v=1,0,1,0,2,0,1,0,1$9B_0|
286
+ |div9v=9$9|
287
+ |keyCtrl9v=52/0,82/0,70/0,86/0,32/0,78/0,74/0,73/0,57/0$9B_0|
288
+ |pos9v=0,1,2,3,4,5,6,7,8$0,1,2,3,4,5,6,7,8|
289
+ |scroll9v=---::1,1,-1,-1,-1,-1,-1,1,1/flat::1,1,1,1,1,1,1,1,1$9B_0|
290
+ |shuffle9v=9B_0$9B_0|
291
+ |stepRtn9v=90,120,150,180,onigiri,0,30,60,90$9B_0|
292
+ |transKey9v=$9B|
293
+
294
+ `;
295
+ */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "danoniplus",
3
- "version": "26.1.2",
3
+ "version": "26.2.0",
4
4
  "description": "Dancing☆Onigiri (CW Edition) - Web-based Rhythm Game",
5
5
  "main": "index.js",
6
6
  "scripts": {