danoniplus 35.5.0 → 36.1.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/css/danoni_main.css +1 -2
- package/js/danoni_main.js +279 -169
- package/js/lib/danoni_constants.js +23 -3
- package/package.json +1 -1
package/css/danoni_main.css
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
本体cssファイル
|
|
5
5
|
|
|
6
6
|
Created : 2018/10/08
|
|
7
|
-
Revised :
|
|
7
|
+
Revised : 2024/04/18 (v36.1.0)
|
|
8
8
|
|
|
9
9
|
https://github.com/cwtickle/danoniplus
|
|
10
10
|
------------------------------------------ */
|
|
@@ -837,6 +837,5 @@ input[type="color"] {
|
|
|
837
837
|
.result_Cleared,
|
|
838
838
|
.result_Failed {
|
|
839
839
|
background-clip: text;
|
|
840
|
-
-webkit-background-clip: text;
|
|
841
840
|
color: rgba(255, 255, 255, 0.0);
|
|
842
841
|
}
|
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 : 2024/04/
|
|
7
|
+
* Revised : 2024/04/18
|
|
8
8
|
*
|
|
9
9
|
* https://github.com/cwtickle/danoniplus
|
|
10
10
|
*/
|
|
11
|
-
const g_version = `Ver
|
|
12
|
-
const g_revisedDate = `2024/04/
|
|
11
|
+
const g_version = `Ver 36.1.0`;
|
|
12
|
+
const g_revisedDate = `2024/04/18`;
|
|
13
13
|
|
|
14
14
|
// カスタム用バージョン (danoni_custom.js 等で指定可)
|
|
15
15
|
let g_localVersion = ``;
|
|
@@ -247,6 +247,12 @@ const convertStrToVal = _str => {
|
|
|
247
247
|
return convStrs;
|
|
248
248
|
};
|
|
249
249
|
|
|
250
|
+
/**
|
|
251
|
+
* 半角スペース、タブを文字列から除去
|
|
252
|
+
* @param {string} _str
|
|
253
|
+
*/
|
|
254
|
+
const trimStr = _str => _str?.split(`\t`).join(``).trimStart().trimEnd();
|
|
255
|
+
|
|
250
256
|
/*-----------------------------------------------------------*/
|
|
251
257
|
/* 値や配列のチェック・変換 */
|
|
252
258
|
/*-----------------------------------------------------------*/
|
|
@@ -472,7 +478,7 @@ const fuzzyListMatching = (_str, _headerList, _footerList) =>
|
|
|
472
478
|
*/
|
|
473
479
|
const replaceStr = (_str, _pairs) => {
|
|
474
480
|
let tmpStr = _str;
|
|
475
|
-
_pairs.forEach(pair => tmpStr = tmpStr
|
|
481
|
+
_pairs.forEach(pair => tmpStr = tmpStr?.replaceAll(pair[0], pair[1]));
|
|
476
482
|
return tmpStr;
|
|
477
483
|
};
|
|
478
484
|
|
|
@@ -678,27 +684,17 @@ const preloadFile = (_as, _href, _type = ``, _crossOrigin = `anonymous`) => {
|
|
|
678
684
|
g_preloadFiles.all.push(_href);
|
|
679
685
|
g_preloadFiles[_as]?.push(_href) || (g_preloadFiles[_as] = [_href]);
|
|
680
686
|
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
} else {
|
|
689
|
-
// それ以外のブラウザの場合はrel=preloadを利用
|
|
690
|
-
const link = document.createElement(`link`);
|
|
691
|
-
link.rel = `preload`;
|
|
692
|
-
link.as = _as;
|
|
693
|
-
link.href = _href;
|
|
694
|
-
if (_type !== ``) {
|
|
695
|
-
link.type = _type;
|
|
696
|
-
}
|
|
697
|
-
if (!g_isFile) {
|
|
698
|
-
link.crossOrigin = _crossOrigin;
|
|
699
|
-
}
|
|
700
|
-
document.head.appendChild(link);
|
|
687
|
+
const link = document.createElement(`link`);
|
|
688
|
+
link.rel = `preload`;
|
|
689
|
+
link.as = _as;
|
|
690
|
+
link.href = _href;
|
|
691
|
+
if (_type !== ``) {
|
|
692
|
+
link.type = _type;
|
|
701
693
|
}
|
|
694
|
+
if (!g_isFile) {
|
|
695
|
+
link.crossOrigin = _crossOrigin;
|
|
696
|
+
}
|
|
697
|
+
document.head.appendChild(link);
|
|
702
698
|
}
|
|
703
699
|
};
|
|
704
700
|
|
|
@@ -1153,8 +1149,6 @@ const createColorObject2 = (_id,
|
|
|
1153
1149
|
|
|
1154
1150
|
style.maskImage = `url("${g_imgObj[charaStyle]}")`;
|
|
1155
1151
|
style.maskSize = `contain`;
|
|
1156
|
-
style.webkitMaskImage = `url("${g_imgObj[charaStyle]}")`;
|
|
1157
|
-
style.webkitMaskSize = `contain`;
|
|
1158
1152
|
Object.keys(rest).forEach(property => style[property] = rest[property]);
|
|
1159
1153
|
setAttrs(div, { color: rest.background ?? ``, type: charaStyle, cnt: 0, });
|
|
1160
1154
|
|
|
@@ -1587,7 +1581,7 @@ const makeSpriteData = (_data, _calcFrame = _frame => _frame) => {
|
|
|
1587
1581
|
let maxDepth = -1;
|
|
1588
1582
|
|
|
1589
1583
|
splitLF(_data).filter(data => hasVal(data)).forEach(tmpData => {
|
|
1590
|
-
const tmpSpriteData = tmpData.split(`,`);
|
|
1584
|
+
const tmpSpriteData = tmpData.split(`,`).map(val => trimStr(val));
|
|
1591
1585
|
|
|
1592
1586
|
// 深度が"-"の場合はスキップ
|
|
1593
1587
|
if (tmpSpriteData.length <= 1 || tmpSpriteData[1] === `-`) {
|
|
@@ -1671,7 +1665,7 @@ const makeSpriteData = (_data, _calcFrame = _frame => _frame) => {
|
|
|
1671
1665
|
const makeStyleData = (_data, _calcFrame = _frame => _frame) => {
|
|
1672
1666
|
const spriteData = [];
|
|
1673
1667
|
splitLF(_data).filter(data => hasVal(data)).forEach(tmpData => {
|
|
1674
|
-
const tmpSpriteData = tmpData.split(`,`);
|
|
1668
|
+
const tmpSpriteData = tmpData.split(`,`).map(val => trimStr(val));
|
|
1675
1669
|
|
|
1676
1670
|
// カスタムプロパティの名称(--始まり)で無い場合はコメントと見做してスキップ
|
|
1677
1671
|
if (tmpSpriteData.length <= 1 || !tmpSpriteData[1].startsWith(`--`)) {
|
|
@@ -3237,9 +3231,6 @@ const headerConvert = _dosObj => {
|
|
|
3237
3231
|
// 結果画面用のマスク透過設定
|
|
3238
3232
|
obj.maskresultButton = setBoolVal(_dosObj.maskresultButton);
|
|
3239
3233
|
|
|
3240
|
-
// color_dataの過去バージョン互換設定
|
|
3241
|
-
obj.colorDataType = _dosObj.colorDataType ?? ``;
|
|
3242
|
-
|
|
3243
3234
|
// リザルトモーションをDisplay:BackgroundのON/OFFと連動させるかどうかの設定
|
|
3244
3235
|
obj.resultMotionSet = setBoolVal(_dosObj.resultMotionSet, true);
|
|
3245
3236
|
|
|
@@ -4173,7 +4164,6 @@ const titleInit = _ => {
|
|
|
4173
4164
|
font-family:${g_headerObj.titlefonts[0]};
|
|
4174
4165
|
background: ${titlegrds[0]};
|
|
4175
4166
|
background-clip: text;
|
|
4176
|
-
-webkit-background-clip: text;
|
|
4177
4167
|
color: rgba(255,255,255,0.0);
|
|
4178
4168
|
${txtAnimations[0]}
|
|
4179
4169
|
" class="${g_headerObj.titleAnimationClass[0]}">
|
|
@@ -4186,7 +4176,6 @@ const titleInit = _ => {
|
|
|
4186
4176
|
font-family:${g_headerObj.titlefonts[1]};
|
|
4187
4177
|
background: ${titlegrds[1]};
|
|
4188
4178
|
background-clip: text;
|
|
4189
|
-
-webkit-background-clip: text;
|
|
4190
4179
|
color: rgba(255,255,255,0.0);
|
|
4191
4180
|
${txtAnimations[1]}
|
|
4192
4181
|
" class="${g_headerObj.titleAnimationClass[1]}">
|
|
@@ -7318,21 +7307,7 @@ const loadingScoreInit = async () => {
|
|
|
7318
7307
|
// ユーザカスタムイベント
|
|
7319
7308
|
g_customJsObj.loading.forEach(func => func());
|
|
7320
7309
|
|
|
7321
|
-
|
|
7322
|
-
const executeMain = _ => {
|
|
7323
|
-
clearInterval(tempId);
|
|
7324
|
-
mainInit();
|
|
7325
|
-
}
|
|
7326
|
-
if (g_audio.duration !== undefined) {
|
|
7327
|
-
if (g_userAgent.indexOf(`firefox`) !== -1) {
|
|
7328
|
-
if (g_preloadFiles.image.every(v => g_loadObj[v] === true)) {
|
|
7329
|
-
executeMain();
|
|
7330
|
-
}
|
|
7331
|
-
} else {
|
|
7332
|
-
executeMain();
|
|
7333
|
-
}
|
|
7334
|
-
}
|
|
7335
|
-
}, 100);
|
|
7310
|
+
mainInit();
|
|
7336
7311
|
};
|
|
7337
7312
|
|
|
7338
7313
|
/**
|
|
@@ -7649,6 +7624,74 @@ const scoreConvert = (_dosObj, _scoreId, _preblankFrame, _dummyNo = ``,
|
|
|
7649
7624
|
return [];
|
|
7650
7625
|
};
|
|
7651
7626
|
|
|
7627
|
+
/**
|
|
7628
|
+
* 色変化データの分解・格納(新形式)
|
|
7629
|
+
* - 個別・全体色変化を一体で管理するため通常の配列で返却
|
|
7630
|
+
* @param {string} _header
|
|
7631
|
+
* @param {number} _scoreNo
|
|
7632
|
+
* @returns
|
|
7633
|
+
*/
|
|
7634
|
+
const setColor2Data = (_header, _scoreNo) => {
|
|
7635
|
+
const dosColorData = getRefData(_header, `${_scoreNo}_data`);
|
|
7636
|
+
const colorData = {
|
|
7637
|
+
Arrow: [], ArrowShadow: [], Normal: [], NormalBar: [], NormalShadow: [],
|
|
7638
|
+
Hit: [], HitBar: [], HitShadow: [],
|
|
7639
|
+
};
|
|
7640
|
+
|
|
7641
|
+
if (hasVal(dosColorData) && g_stateObj.d_color === C_FLG_ON) {
|
|
7642
|
+
|
|
7643
|
+
splitLF(dosColorData).filter(data => hasVal(data)).forEach(tmpData => {
|
|
7644
|
+
const tmpColorData = tmpData.split(`,`).map(val => trimStr(val));
|
|
7645
|
+
if (!hasVal(tmpColorData[0]) || tmpColorData[1] === `-`) {
|
|
7646
|
+
return;
|
|
7647
|
+
}
|
|
7648
|
+
const frame = calcFrame(setVal(tmpColorData[0], ``, C_TYP_CALC));
|
|
7649
|
+
const colorCd = tmpColorData[2];
|
|
7650
|
+
|
|
7651
|
+
// 色変化対象の取得
|
|
7652
|
+
const pos = tmpColorData[1]?.indexOf(`:`);
|
|
7653
|
+
const patternStr = pos > 0 ? [trimStr(tmpColorData[1].substring(0, pos)), trimStr(tmpColorData[1].substring(pos + 1))]
|
|
7654
|
+
: [tmpColorData[1]];
|
|
7655
|
+
const patterns = replaceStr(trimStr(patternStr[1]), g_escapeStr.colorPatternName)?.split(`/`) || [`Arrow`];
|
|
7656
|
+
|
|
7657
|
+
// 矢印番号の組み立て
|
|
7658
|
+
const colorVals = [];
|
|
7659
|
+
replaceStr(patternStr[0], g_escapeStr.targetPatternName)?.split(`/`)?.forEach(val => {
|
|
7660
|
+
if (val.startsWith('g')) {
|
|
7661
|
+
// g付きの場合は矢印グループから対象の矢印番号を検索
|
|
7662
|
+
const groupVal = setIntVal(val.slice(1));
|
|
7663
|
+
for (let j = 0; j < keyNum; j++) {
|
|
7664
|
+
if (g_keyObj[`color${_keyCtrlPtn}`][j] === groupVal) {
|
|
7665
|
+
colorVals.push(j);
|
|
7666
|
+
}
|
|
7667
|
+
}
|
|
7668
|
+
} else if (val.indexOf(`...`) > 0) {
|
|
7669
|
+
// 範囲指定表記の補完 例. 0...3 -> 0/1/2/3
|
|
7670
|
+
const [valMin, valMax] = [val.split(`...`)[0], val.split(`...`)[1]].map(val => setIntVal(val));
|
|
7671
|
+
for (let k = valMin; k <= valMax; k++) {
|
|
7672
|
+
colorVals.push(setIntVal(k));
|
|
7673
|
+
}
|
|
7674
|
+
} else {
|
|
7675
|
+
colorVals.push(setIntVal(val));
|
|
7676
|
+
}
|
|
7677
|
+
});
|
|
7678
|
+
|
|
7679
|
+
// フレーム数、色番号、カラーコード、全体色変化フラグ、変更対象をセットとして配列化し、色変化対象ごとのプロパティへ追加
|
|
7680
|
+
patterns.forEach(pattern => {
|
|
7681
|
+
try {
|
|
7682
|
+
colorVals.forEach(val => colorData[pattern].push([frame, val, colorCd, hasVal(tmpColorData[3]), pattern]));
|
|
7683
|
+
} catch (error) {
|
|
7684
|
+
makeWarningWindow(g_msgInfoObj.E_0201.split(`{0}`).join(pattern));
|
|
7685
|
+
}
|
|
7686
|
+
});
|
|
7687
|
+
});
|
|
7688
|
+
// 色変化対象ごとにフレーム数をキーにソートしてフラット化
|
|
7689
|
+
Object.keys(colorData).forEach(pattern =>
|
|
7690
|
+
colorData[pattern] = colorData[pattern].sort((_a, _b) => _a[0] - _b[0]).flat());
|
|
7691
|
+
}
|
|
7692
|
+
return colorData;
|
|
7693
|
+
};
|
|
7694
|
+
|
|
7652
7695
|
/**
|
|
7653
7696
|
* 矢印モーションデータの分解・格納(フレーム数, 矢印番号)
|
|
7654
7697
|
* @param {string} _header
|
|
@@ -7802,7 +7845,7 @@ const scoreConvert = (_dosObj, _scoreId, _preblankFrame, _dummyNo = ``,
|
|
|
7802
7845
|
}
|
|
7803
7846
|
|
|
7804
7847
|
tmpArrayData.filter(data => hasVal(data)).forEach(tmpData => {
|
|
7805
|
-
const tmpWordData = tmpData.split(`,`);
|
|
7848
|
+
const tmpWordData = tmpData.split(`,`).map(val => trimStr(val));
|
|
7806
7849
|
for (let k = 0; k < tmpWordData.length; k += 3) {
|
|
7807
7850
|
if (!hasVal(tmpWordData[k])) {
|
|
7808
7851
|
continue;
|
|
@@ -7881,6 +7924,11 @@ const scoreConvert = (_dosObj, _scoreId, _preblankFrame, _dummyNo = ``,
|
|
|
7881
7924
|
obj[`${sprite}DummyData`] = setColorData(sprite, _dummyNo);
|
|
7882
7925
|
}
|
|
7883
7926
|
});
|
|
7927
|
+
// 色変化(新形式)の分解(3~4つで1セット, セット毎の改行区切り)
|
|
7928
|
+
obj.ncolorData = setColor2Data(`ncolor`, scoreIdHeader);
|
|
7929
|
+
if (g_stateObj.dummyId !== ``) {
|
|
7930
|
+
obj.ncolorDummyData = setColor2Data(`ncolor`, _dummyNo);
|
|
7931
|
+
}
|
|
7884
7932
|
|
|
7885
7933
|
if (_scoreAnalyzeFlg) {
|
|
7886
7934
|
return obj;
|
|
@@ -8263,17 +8311,17 @@ const pushArrows = (_dataObj, _speedOnFrame, _motionOnFrame, _firstArrivalFrame)
|
|
|
8263
8311
|
* @param {object} obj _colorFlg: 個別色変化フラグ, _calcFrameFlg: 逆算を無条件で行うかどうかの可否
|
|
8264
8312
|
*/
|
|
8265
8313
|
const calcDataTiming = (_type, _header, _setFunc = _ => true,
|
|
8266
|
-
{ _term = 4, _colorFlg = false, _calcFrameFlg = false } = {}) => {
|
|
8314
|
+
{ _term = 4, _colorFlg = false, _calcFrameFlg = false, _propName = `` } = {}) => {
|
|
8267
8315
|
|
|
8268
8316
|
const camelHeader = _header === `` ? _type : `${_header}${toCapitalize(_type)}`;
|
|
8269
|
-
const baseData = _dataObj[`${camelHeader}Data`];
|
|
8317
|
+
const baseData = hasVal(_propName) ? _dataObj[`${camelHeader}Data`][_propName] : _dataObj[`${camelHeader}Data`];
|
|
8270
8318
|
|
|
8271
8319
|
if (!hasArrayList(baseData, _term)) {
|
|
8272
8320
|
return;
|
|
8273
8321
|
}
|
|
8274
8322
|
const frontData = [];
|
|
8275
8323
|
for (let k = baseData.length - _term; k >= 0; k -= _term) {
|
|
8276
|
-
const calcFrameFlg = (_colorFlg && !
|
|
8324
|
+
const calcFrameFlg = (_colorFlg && !baseData[k + 3]) || _calcFrameFlg;
|
|
8277
8325
|
|
|
8278
8326
|
if (baseData[k] < g_scoreObj.frameNum) {
|
|
8279
8327
|
// フェードイン直前にある色変化・モーションデータ・スクロール反転データを取得して格納
|
|
@@ -8362,7 +8410,13 @@ const pushArrows = (_dataObj, _speedOnFrame, _motionOnFrame, _firstArrivalFrame)
|
|
|
8362
8410
|
};
|
|
8363
8411
|
|
|
8364
8412
|
// 個別・全体色変化、モーションデータ・スクロール反転データのタイミング更新
|
|
8365
|
-
[``, `dummy`].forEach(type =>
|
|
8413
|
+
[``, `dummy`].forEach(type => {
|
|
8414
|
+
calcDataTiming(`color`, type, pushColors, { _colorFlg: true });
|
|
8415
|
+
if (_dataObj[`ncolor${type}Data`] !== undefined) {
|
|
8416
|
+
Object.keys(_dataObj[`ncolor${type}Data`]).forEach(pattern =>
|
|
8417
|
+
calcDataTiming(`ncolor`, type, pushColors, { _term: 5, _colorFlg: true, _propName: pattern }));
|
|
8418
|
+
}
|
|
8419
|
+
});
|
|
8366
8420
|
|
|
8367
8421
|
g_typeLists.arrow.forEach(header =>
|
|
8368
8422
|
calcDataTiming(`cssMotion`, header, pushCssMotions, { _calcFrameFlg: true }));
|
|
@@ -8414,12 +8468,6 @@ const getArrowStartFrame = (_frame, _speedOnFrame, _motionOnFrame) => {
|
|
|
8414
8468
|
return obj;
|
|
8415
8469
|
};
|
|
8416
8470
|
|
|
8417
|
-
/**
|
|
8418
|
-
* 個別色変化におけるフリーズアロー(ヒット時)判定
|
|
8419
|
-
* @param {number} _val
|
|
8420
|
-
*/
|
|
8421
|
-
const isFrzHitColor = _val => (g_headerObj.colorDataType === `` && ((_val >= 40 && _val < 50) || (_val >= 55 && _val < 60) || _val === 61));
|
|
8422
|
-
|
|
8423
8471
|
/**
|
|
8424
8472
|
* 速度を加味したフリーズアローの長さを取得
|
|
8425
8473
|
* @param {object} _speedOnFrame
|
|
@@ -8463,7 +8511,7 @@ const convertReplaceNums = _ => {
|
|
|
8463
8511
|
* @param {string} _colorCd
|
|
8464
8512
|
* @param {string} _allFlg
|
|
8465
8513
|
*/
|
|
8466
|
-
const pushColors = (_header, _frame, _val, _colorCd, _allFlg) => {
|
|
8514
|
+
const pushColors = (_header, _frame, _val, _colorCd, _allFlg, _pattern = ``) => {
|
|
8467
8515
|
|
|
8468
8516
|
const tkObj = getKeyInfo();
|
|
8469
8517
|
const grdFlg = (g_colorType === `Type0` ? !g_headerObj.defaultColorgrd[0] : g_headerObj.defaultColorgrd[0]);
|
|
@@ -8491,62 +8539,93 @@ const pushColors = (_header, _frame, _val, _colorCd, _allFlg) => {
|
|
|
8491
8539
|
g_workObj[`${_baseStr}Cd`][_frame]?.push(colorCd) || (g_workObj[`${_baseStr}Cd`][_frame] = [colorCd]);
|
|
8492
8540
|
};
|
|
8493
8541
|
|
|
8494
|
-
|
|
8495
|
-
|
|
8496
|
-
|
|
8497
|
-
|
|
8498
|
-
|
|
8499
|
-
|
|
8500
|
-
baseHeaders.push(`mk${_header}
|
|
8501
|
-
|
|
8542
|
+
/**
|
|
8543
|
+
* 色変化データ(ncolor_data)の格納処理
|
|
8544
|
+
*/
|
|
8545
|
+
const executePushColors = () => {
|
|
8546
|
+
const baseHeaders = [];
|
|
8547
|
+
if (_pattern.startsWith(`Arrow`)) {
|
|
8548
|
+
baseHeaders.push(`mk${_header}Color${_pattern.slice('Arrow'.length)}`);
|
|
8549
|
+
allUseTypes.push(`Arrow`);
|
|
8550
|
+
|
|
8551
|
+
// フリーズアロー色の追随設定がある場合、対象を追加
|
|
8552
|
+
if (_pattern === `Arrow`) {
|
|
8553
|
+
g_headerObj.frzScopeFromArrowColors.forEach(type =>
|
|
8554
|
+
baseHeaders.push(`mk${_header}FColor${type}`, `mk${_header}FColor${type}Bar`));
|
|
8555
|
+
if (g_headerObj.frzScopeFromArrowColors.length > 0) {
|
|
8556
|
+
allUseTypes.push(`Frz`);
|
|
8557
|
+
}
|
|
8558
|
+
}
|
|
8559
|
+
} else {
|
|
8560
|
+
baseHeaders.push(`mk${_header}FColor${_pattern}`);
|
|
8502
8561
|
allUseTypes.push(`Frz`);
|
|
8503
8562
|
}
|
|
8563
|
+
// 色変化情報の格納
|
|
8564
|
+
baseHeaders.forEach(baseHeader => pushColor(baseHeader, g_workObj.replaceNums[_val] + addAll));
|
|
8565
|
+
};
|
|
8504
8566
|
|
|
8505
|
-
|
|
8506
|
-
|
|
8507
|
-
|
|
8508
|
-
|
|
8509
|
-
|
|
8510
|
-
|
|
8511
|
-
|
|
8512
|
-
|
|
8513
|
-
|
|
8567
|
+
/**
|
|
8568
|
+
* 従来の色変化データ派生(color_data, acolor_data)の格納処理
|
|
8569
|
+
*/
|
|
8570
|
+
const executePushColorsOld = () => {
|
|
8571
|
+
|
|
8572
|
+
if (_val < 30 || _val >= 1000) {
|
|
8573
|
+
const baseHeaders = [`mk${_header}Color`];
|
|
8574
|
+
allUseTypes.push(`Arrow`);
|
|
8575
|
+
|
|
8576
|
+
// フリーズアロー色の追随設定がある場合、対象を追加
|
|
8577
|
+
g_headerObj.frzScopeFromArrowColors.forEach(type =>
|
|
8578
|
+
baseHeaders.push(`mk${_header}FColor${type}`, `mk${_header}FColor${type}Bar`));
|
|
8579
|
+
if (g_headerObj.frzScopeFromArrowColors.length > 0) {
|
|
8580
|
+
allUseTypes.push(`Frz`);
|
|
8581
|
+
}
|
|
8582
|
+
|
|
8583
|
+
// 矢印の色変化 (追随指定時はフリーズアローも色変化)
|
|
8584
|
+
baseHeaders.forEach(baseHeader => {
|
|
8585
|
+
if (_val < 20 || _val >= 1000) {
|
|
8586
|
+
pushColor(baseHeader, g_workObj.replaceNums[_val % 1000] + addAll);
|
|
8587
|
+
} else if (_val >= 20) {
|
|
8588
|
+
const colorNum = _val - 20;
|
|
8589
|
+
for (let j = 0; j < tkObj.keyNum; j++) {
|
|
8590
|
+
if (g_keyObj[`color${tkObj.keyCtrlPtn}`][j] === colorNum) {
|
|
8591
|
+
pushColor(baseHeader, j + addAll);
|
|
8592
|
+
}
|
|
8514
8593
|
}
|
|
8515
8594
|
}
|
|
8516
|
-
}
|
|
8517
|
-
});
|
|
8595
|
+
});
|
|
8518
8596
|
|
|
8519
|
-
} else {
|
|
8520
|
-
const baseHeader = `mk${_header}FColor`;
|
|
8521
|
-
allUseTypes.push(`Frz`);
|
|
8522
|
-
|
|
8523
|
-
// フリーズアローの色変化
|
|
8524
|
-
const tmpVals = [];
|
|
8525
|
-
if (_val < 50) {
|
|
8526
|
-
tmpVals.push(_val % 30);
|
|
8527
|
-
} else if (_val < 60) {
|
|
8528
|
-
tmpVals.push((_val % 50) * 2, (_val % 50) * 2 + 1);
|
|
8529
8597
|
} else {
|
|
8530
|
-
|
|
8531
|
-
|
|
8598
|
+
const baseHeader = `mk${_header}FColor`;
|
|
8599
|
+
allUseTypes.push(`Frz`);
|
|
8600
|
+
|
|
8601
|
+
// フリーズアローの色変化
|
|
8602
|
+
const tmpVals = [];
|
|
8603
|
+
if (_val < 50) {
|
|
8604
|
+
tmpVals.push(_val % 30);
|
|
8605
|
+
} else if (_val < 60) {
|
|
8606
|
+
tmpVals.push((_val % 50) * 2, (_val % 50) * 2 + 1);
|
|
8532
8607
|
} else {
|
|
8533
|
-
|
|
8608
|
+
if (_val === 60) {
|
|
8609
|
+
tmpVals.push(...Array(8).keys());
|
|
8610
|
+
} else {
|
|
8611
|
+
tmpVals.push(...[...Array(8).keys()].map(j => j + 10));
|
|
8612
|
+
}
|
|
8534
8613
|
}
|
|
8535
|
-
|
|
8536
|
-
tmpVals.forEach(targetj => {
|
|
8614
|
+
tmpVals.forEach(targetj => {
|
|
8537
8615
|
|
|
8538
|
-
|
|
8539
|
-
|
|
8540
|
-
|
|
8616
|
+
// targetj=0,2,4,6,8 ⇒ Arrow, 1,3,5,7,9 ⇒ Bar
|
|
8617
|
+
const ctype = (targetj >= 10 ? `Hit` : `Normal`) + (targetj % 2 === 0 ? `` : `Bar`);
|
|
8618
|
+
const colorPos = Math.ceil((targetj % 10 - 1) / 2);
|
|
8541
8619
|
|
|
8542
|
-
|
|
8543
|
-
|
|
8544
|
-
|
|
8545
|
-
|
|
8620
|
+
g_keyObj[`color${tkObj.keyCtrlPtn}`].forEach((cpattern, k) => {
|
|
8621
|
+
if (colorPos === cpattern) {
|
|
8622
|
+
pushColor(baseHeader + ctype, k + addAll);
|
|
8623
|
+
}
|
|
8624
|
+
});
|
|
8546
8625
|
});
|
|
8547
|
-
}
|
|
8548
|
-
}
|
|
8549
|
-
|
|
8626
|
+
}
|
|
8627
|
+
};
|
|
8628
|
+
hasVal(_pattern) ? executePushColors() : executePushColorsOld();
|
|
8550
8629
|
enabledAll(...allUseTypes);
|
|
8551
8630
|
};
|
|
8552
8631
|
|
|
@@ -8661,13 +8740,11 @@ const getArrowSettings = _ => {
|
|
|
8661
8740
|
g_workObj.judgFrzHitCnt = [...Array(keyNum)].fill(1);
|
|
8662
8741
|
g_judgObj.lockFlgs = [...Array(keyNum)].fill(false);
|
|
8663
8742
|
|
|
8664
|
-
// TODO: この部分を矢印塗りつぶし部分についても適用できるように変数を作成
|
|
8665
|
-
|
|
8666
8743
|
// 矢印色管理 (個別・全体)
|
|
8667
8744
|
const eachOrAll = [``, `All`];
|
|
8668
8745
|
eachOrAll.forEach(type => {
|
|
8669
|
-
|
|
8670
|
-
|
|
8746
|
+
[`arrow`, `dummyArrow`].forEach(arrowType =>
|
|
8747
|
+
g_typeLists.arrowColor.forEach(objType => g_workObj[`${arrowType}${objType}Colors${type}`] = []));
|
|
8671
8748
|
|
|
8672
8749
|
[`frz`, `dummyFrz`].forEach(arrowType =>
|
|
8673
8750
|
g_typeLists.frzColor.forEach(frzType => g_workObj[`${arrowType}${frzType}Colors${type}`] = []));
|
|
@@ -8692,16 +8769,18 @@ const getArrowSettings = _ => {
|
|
|
8692
8769
|
g_workObj.dividePos[j] = ((posj <= divideCnt ? 0 : 1) + (scrollDirOptions[j] === 1 ? 0 : 1) + (g_stateObj.reverse === C_FLG_OFF ? 0 : 1)) % 2;
|
|
8693
8770
|
g_workObj.scrollDir[j] = (posj <= divideCnt ? 1 : -1) * scrollDirOptions[j] * (g_stateObj.reverse === C_FLG_OFF ? 1 : -1);
|
|
8694
8771
|
|
|
8695
|
-
// TODO: この部分を矢印塗りつぶし部分についても適用できるように変数を作成
|
|
8696
|
-
|
|
8697
8772
|
eachOrAll.forEach(type => {
|
|
8698
8773
|
g_workObj[`arrowColors${type}`][j] = g_headerObj.setColor[colorj];
|
|
8699
8774
|
g_workObj[`dummyArrowColors${type}`][j] = g_headerObj.setDummyColor[colorj];
|
|
8775
|
+
g_workObj[`arrowShadowColors${type}`][j] = g_headerObj.setShadowColor[colorj] || ``;
|
|
8776
|
+
g_workObj[`dummyArrowShadowColors${type}`][j] = g_headerObj.setDummyColor[colorj] || ``;
|
|
8700
8777
|
|
|
8701
8778
|
g_typeLists.frzColor.forEach((frzType, k) => {
|
|
8702
|
-
g_workObj[`frz${frzType}Colors${type}`][j] = g_headerObj.frzColor[colorj][k]
|
|
8779
|
+
g_workObj[`frz${frzType}Colors${type}`][j] = g_headerObj.frzColor[colorj][k] || ``;
|
|
8703
8780
|
g_workObj[`dummyFrz${frzType}Colors${type}`][j] = g_headerObj.setDummyColor[colorj];
|
|
8704
8781
|
});
|
|
8782
|
+
g_workObj[`frzNormalShadowColors${type}`][j] = g_headerObj.frzShadowColor[colorj][0] || ``;
|
|
8783
|
+
g_workObj[`frzHitShadowColors${type}`][j] = g_headerObj.frzShadowColor[colorj][1] || ``;
|
|
8705
8784
|
});
|
|
8706
8785
|
}
|
|
8707
8786
|
g_workObj.scrollDirDefault = g_workObj.scrollDir.concat();
|
|
@@ -9342,13 +9421,30 @@ const mainInit = _ => {
|
|
|
9342
9421
|
*/
|
|
9343
9422
|
const changeArrowColor = (_j, _k, _name) => {
|
|
9344
9423
|
if (g_workObj[`mk${toCapitalize(_name)}ColorChangeAll`][g_scoreObj.frameNum]) {
|
|
9345
|
-
|
|
9346
|
-
|
|
9424
|
+
|
|
9425
|
+
/**
|
|
9426
|
+
* 全体色の変更処理
|
|
9427
|
+
* - 次の全体色変化対象の色と比較して一致した場合に色を変更
|
|
9428
|
+
* @param {string} _type
|
|
9429
|
+
* @param {element} _baseObj
|
|
9430
|
+
*/
|
|
9431
|
+
const changeColor = (_type, _baseObj) => {
|
|
9432
|
+
const cArrowColor = g_workObj[`${_name}${_type}Colors`][_j];
|
|
9433
|
+
const cArrowColorAll = g_workObj[`${_name}${_type}ColorsAll`][_j];
|
|
9434
|
+
if (_baseObj.getAttribute(`color`) !== cArrowColor && cArrowColorAll === cArrowColor) {
|
|
9435
|
+
_baseObj.style.background = cArrowColorAll;
|
|
9436
|
+
_baseObj.setAttribute(`color`, cArrowColorAll);
|
|
9437
|
+
}
|
|
9438
|
+
};
|
|
9439
|
+
|
|
9440
|
+
// 矢印枠の色変化
|
|
9347
9441
|
const arrowTop = document.getElementById(`${_name}Top${_j}_${_k}`);
|
|
9442
|
+
changeColor(``, arrowTop);
|
|
9348
9443
|
|
|
9349
|
-
|
|
9350
|
-
|
|
9351
|
-
|
|
9444
|
+
// 矢印塗りつぶし部分の色変化
|
|
9445
|
+
if (g_headerObj.setShadowColor[0] !== ``) {
|
|
9446
|
+
const arrowShadow = document.getElementById(`${_name}Shadow${_j}_${_k}`);
|
|
9447
|
+
changeColor(`Shadow`, arrowShadow);
|
|
9352
9448
|
}
|
|
9353
9449
|
}
|
|
9354
9450
|
};
|
|
@@ -9363,30 +9459,39 @@ const mainInit = _ => {
|
|
|
9363
9459
|
const changeFrzColor = (_j, _k, _name, _state) => {
|
|
9364
9460
|
|
|
9365
9461
|
if (g_workObj[`mk${toCapitalize(_name)}ColorChangeAll`][g_scoreObj.frameNum]) {
|
|
9366
|
-
const
|
|
9367
|
-
const
|
|
9368
|
-
const
|
|
9369
|
-
const
|
|
9462
|
+
const frzNo = `${_j}_${_k}`;
|
|
9463
|
+
const frzTop = document.getElementById(`${_name}Top${frzNo}`);
|
|
9464
|
+
const frzBar = document.getElementById(`${_name}Bar${frzNo}`);
|
|
9465
|
+
const frzBtm = document.getElementById(`${_name}Btm${frzNo}`);
|
|
9466
|
+
const frzTopShadow = document.getElementById(`${_name}TopShadow${frzNo}`);
|
|
9467
|
+
const frzBtmShadow = document.getElementById(`${_name}BtmShadow${frzNo}`);
|
|
9370
9468
|
|
|
9371
|
-
|
|
9372
|
-
|
|
9373
|
-
|
|
9374
|
-
|
|
9375
|
-
|
|
9376
|
-
|
|
9469
|
+
/**
|
|
9470
|
+
* 全体色の変更処理
|
|
9471
|
+
* @param {string} _type
|
|
9472
|
+
* @param {element} _baseObj
|
|
9473
|
+
* @param {element} _baseObj2
|
|
9474
|
+
*/
|
|
9475
|
+
const changeColor = (_type, _baseObj, _baseObj2) => {
|
|
9476
|
+
const cFrzColor = g_workObj[`${_name}${_state}${_type}Colors`][_j];
|
|
9477
|
+
const cFrzColorAll = g_workObj[`${_name}${_state}${_type}ColorsAll`][_j];
|
|
9478
|
+
if (_baseObj.getAttribute(`color${_state}`) !== cFrzColor && cFrzColorAll === cFrzColor) {
|
|
9479
|
+
if (_baseObj2 && _state === `Normal`) {
|
|
9480
|
+
_baseObj2.style.background = cFrzColorAll;
|
|
9377
9481
|
}
|
|
9378
|
-
|
|
9379
|
-
|
|
9482
|
+
_baseObj.style.background = cFrzColorAll;
|
|
9483
|
+
_baseObj.setAttribute(`color${_state}`, cFrzColorAll);
|
|
9380
9484
|
}
|
|
9381
|
-
}
|
|
9485
|
+
};
|
|
9486
|
+
|
|
9487
|
+
// 矢印部分の色変化
|
|
9488
|
+
changeColor(``, frzBtm, frzTop);
|
|
9489
|
+
|
|
9382
9490
|
// 帯部分の色変化
|
|
9383
|
-
|
|
9384
|
-
|
|
9385
|
-
|
|
9386
|
-
|
|
9387
|
-
frzBar.setAttribute(`color`, toBarColorCode);
|
|
9388
|
-
}
|
|
9389
|
-
}
|
|
9491
|
+
changeColor(`Bar`, frzBar);
|
|
9492
|
+
|
|
9493
|
+
// 矢印塗りつぶし部分の色変化
|
|
9494
|
+
changeColor(`Shadow`, frzBtmShadow, frzTopShadow);
|
|
9390
9495
|
}
|
|
9391
9496
|
};
|
|
9392
9497
|
|
|
@@ -9610,8 +9715,9 @@ const mainInit = _ => {
|
|
|
9610
9715
|
* @param {number} _arrowCnt 現在の判定矢印順
|
|
9611
9716
|
* @param {string} _name 矢印名
|
|
9612
9717
|
* @param {string} _color 矢印色
|
|
9718
|
+
* @param {string} _shadowColor 矢印塗りつぶし部分の色
|
|
9613
9719
|
*/
|
|
9614
|
-
const makeArrow = (_j, _arrowCnt, _name, _color) => {
|
|
9720
|
+
const makeArrow = (_j, _arrowCnt, _name, _color, _shadowColor) => {
|
|
9615
9721
|
const dividePos = g_workObj.dividePos[_j];
|
|
9616
9722
|
const colorPos = g_keyObj[`color${keyCtrlPtn}`][_j];
|
|
9617
9723
|
|
|
@@ -9630,6 +9736,7 @@ const mainInit = _ => {
|
|
|
9630
9736
|
dir: g_workObj.scrollDir[_j], boostDir: g_workObj.boostDir,
|
|
9631
9737
|
prevY: firstPosY, y: firstPosY,
|
|
9632
9738
|
};
|
|
9739
|
+
g_typeLists.arrowColor.forEach(val => g_attrObj[arrowName][`Arrow${val}`] = g_workObj[`${_name}${val}Colors`][_j]);
|
|
9633
9740
|
arrowSprite[dividePos].appendChild(stepRoot);
|
|
9634
9741
|
|
|
9635
9742
|
if (g_workObj[`${_name}CssMotions`][_j] !== ``) {
|
|
@@ -9644,9 +9751,10 @@ const mainInit = _ => {
|
|
|
9644
9751
|
if (g_headerObj.setShadowColor[colorPos] !== ``) {
|
|
9645
9752
|
// 矢印の塗り部分
|
|
9646
9753
|
const arrShadow = createColorObject2(`${_name}Shadow${_j}_${_arrowCnt}`, {
|
|
9647
|
-
background:
|
|
9754
|
+
background: _shadowColor === `Default` ? _color : _shadowColor,
|
|
9755
|
+
rotate: g_workObj.arrowRtn[_j], styleName: `Shadow`,
|
|
9648
9756
|
});
|
|
9649
|
-
if (
|
|
9757
|
+
if (_shadowColor === `Default`) {
|
|
9650
9758
|
arrShadow.style.opacity = 0.5;
|
|
9651
9759
|
}
|
|
9652
9760
|
stepRoot.appendChild(arrShadow);
|
|
@@ -9690,8 +9798,9 @@ const mainInit = _ => {
|
|
|
9690
9798
|
* @param {string} _name
|
|
9691
9799
|
* @param {string} _normalColor
|
|
9692
9800
|
* @param {string} _barColor
|
|
9801
|
+
* @param {string} _shadowColor
|
|
9693
9802
|
*/
|
|
9694
|
-
const makeFrzArrow = (_j, _arrowCnt, _name, _normalColor, _barColor) => {
|
|
9803
|
+
const makeFrzArrow = (_j, _arrowCnt, _name, _normalColor, _barColor, _shadowColor) => {
|
|
9695
9804
|
const dividePos = g_workObj.dividePos[_j];
|
|
9696
9805
|
const frzNo = `${_j}_${_arrowCnt}`;
|
|
9697
9806
|
const frzName = `${_name}${frzNo}`;
|
|
@@ -9710,19 +9819,14 @@ const mainInit = _ => {
|
|
|
9710
9819
|
boostSpd: g_workObj.boostSpd, dividePos: dividePos, dir: g_workObj.scrollDir[_j], boostDir: g_workObj.boostDir,
|
|
9711
9820
|
y: firstPosY, barY: C_ARW_WIDTH / 2 - firstBarLength * dividePos, btmY: firstBarLength * g_workObj.scrollDir[_j],
|
|
9712
9821
|
};
|
|
9822
|
+
g_typeLists.frzColor.forEach(val => g_attrObj[frzName][val] = g_workObj[`${_name}${val}Colors`][_j]);
|
|
9713
9823
|
arrowSprite[dividePos].appendChild(frzRoot);
|
|
9714
9824
|
|
|
9715
9825
|
if (g_workObj[`${_name}CssMotions`][_j] !== ``) {
|
|
9716
9826
|
frzRoot.classList.add(g_workObj[`${_name}CssMotions`][_j]);
|
|
9717
9827
|
frzRoot.style.animationDuration = `${g_workObj.arrivalFrame[g_scoreObj.frameNum] / g_fps}s`;
|
|
9718
9828
|
}
|
|
9719
|
-
|
|
9720
|
-
const colorPos = g_keyObj[`color${keyCtrlPtn}`][_j];
|
|
9721
|
-
let shadowColor = ``;
|
|
9722
|
-
if (g_headerObj.frzShadowColor[colorPos][0] !== ``) {
|
|
9723
|
-
shadowColor = (g_headerObj.frzShadowColor[colorPos][0] === `Default` ?
|
|
9724
|
-
_normalColor : g_headerObj.frzShadowColor[colorPos][0]);
|
|
9725
|
-
}
|
|
9829
|
+
let shadowColor = _shadowColor === `Default` ? _normalColor : _shadowColor;
|
|
9726
9830
|
|
|
9727
9831
|
// フリーズアローは、下記の順で作成する。
|
|
9728
9832
|
// 後に作成するほど前面に表示される。
|
|
@@ -9886,8 +9990,9 @@ const mainInit = _ => {
|
|
|
9886
9990
|
const headerU = toCapitalize(header);
|
|
9887
9991
|
|
|
9888
9992
|
// 個別・全体色変化 (矢印)
|
|
9889
|
-
|
|
9890
|
-
g_workObj[`mk${headerU}
|
|
9993
|
+
g_typeLists.arrowColor.forEach(ctype =>
|
|
9994
|
+
changeColors(g_workObj[`mk${headerU}Color${ctype}`][currentFrame],
|
|
9995
|
+
g_workObj[`mk${headerU}Color${ctype}Cd`][currentFrame], header, `arrow${ctype}`));
|
|
9891
9996
|
|
|
9892
9997
|
// 個別・全体色変化(フリーズアロー)
|
|
9893
9998
|
g_typeLists.frzColor.forEach(ctype =>
|
|
@@ -9916,19 +10021,21 @@ const mainInit = _ => {
|
|
|
9916
10021
|
|
|
9917
10022
|
// ダミー矢印生成(背面に表示するため先に処理)
|
|
9918
10023
|
g_workObj.mkDummyArrow[currentFrame]?.forEach(data =>
|
|
9919
|
-
makeArrow(data, ++dummyArrowCnts[data], `dummyArrow`, g_workObj.dummyArrowColors[data]));
|
|
10024
|
+
makeArrow(data, ++dummyArrowCnts[data], `dummyArrow`, g_workObj.dummyArrowColors[data], g_workObj.dummyArrowShadowColors[data]));
|
|
9920
10025
|
|
|
9921
10026
|
// 矢印生成
|
|
9922
10027
|
g_workObj.mkArrow[currentFrame]?.forEach(data =>
|
|
9923
|
-
makeArrow(data, ++arrowCnts[data], `arrow`, g_workObj.arrowColors[data]));
|
|
10028
|
+
makeArrow(data, ++arrowCnts[data], `arrow`, g_workObj.arrowColors[data], g_workObj.arrowShadowColors[data]));
|
|
9924
10029
|
|
|
9925
10030
|
// ダミーフリーズアロー生成
|
|
9926
10031
|
g_workObj.mkDummyFrzArrow[currentFrame]?.forEach(data =>
|
|
9927
|
-
makeFrzArrow(data, ++dummyFrzCnts[data], `dummyFrz`, g_workObj.dummyFrzNormalColors[data],
|
|
10032
|
+
makeFrzArrow(data, ++dummyFrzCnts[data], `dummyFrz`, g_workObj.dummyFrzNormalColors[data],
|
|
10033
|
+
_workObj.dummyFrzNormalBarColors[data], g_workObj.dummyFrzNormalShadowColors[data]));
|
|
9928
10034
|
|
|
9929
10035
|
// フリーズアロー生成
|
|
9930
10036
|
g_workObj.mkFrzArrow[currentFrame]?.forEach(data =>
|
|
9931
|
-
makeFrzArrow(data, ++frzCnts[data], `frz`, g_workObj.frzNormalColors[data],
|
|
10037
|
+
makeFrzArrow(data, ++frzCnts[data], `frz`, g_workObj.frzNormalColors[data],
|
|
10038
|
+
g_workObj.frzNormalBarColors[data], g_workObj.frzNormalShadowColors[data]));
|
|
9932
10039
|
|
|
9933
10040
|
// 矢印・フリーズアロー移動&消去
|
|
9934
10041
|
for (let j = 0; j < keyNum; j++) {
|
|
@@ -10148,8 +10255,6 @@ const appearKeyTypes = (_j, _target) => {
|
|
|
10148
10255
|
}
|
|
10149
10256
|
};
|
|
10150
10257
|
|
|
10151
|
-
// TODO: この部分を矢印塗りつぶし部分についても適用できるように関数を見直し
|
|
10152
|
-
|
|
10153
10258
|
/**
|
|
10154
10259
|
* 個別・全体色変化
|
|
10155
10260
|
* @param {array} _mkColor
|
|
@@ -10230,7 +10335,6 @@ const changeHitFrz = (_j, _k, _name, _difFrame = 0) => {
|
|
|
10230
10335
|
const styfrzBtm = $id(`${_name}Btm${frzNo}`);
|
|
10231
10336
|
const styfrzTopShadow = $id(`${_name}TopShadow${frzNo}`);
|
|
10232
10337
|
const styfrzBtmShadow = $id(`${_name}BtmShadow${frzNo}`);
|
|
10233
|
-
const colorPos = g_keyObj[`color${g_keyObj.currentKey}_${g_keyObj.currentPtn}`][_j];
|
|
10234
10338
|
|
|
10235
10339
|
// フリーズアロー位置の修正(ステップゾーン上に来るように)
|
|
10236
10340
|
const delFrzLength = parseFloat($id(`stepRoot${_j}`).top) - currentFrz.y;
|
|
@@ -10248,22 +10352,32 @@ const changeHitFrz = (_j, _k, _name, _difFrame = 0) => {
|
|
|
10248
10352
|
currentFrz.y += delFrzLength;
|
|
10249
10353
|
currentFrz.isMoving = false;
|
|
10250
10354
|
|
|
10355
|
+
/**
|
|
10356
|
+
* フリーズアロー(ヒット時)の色変更
|
|
10357
|
+
* - 生成時以降で全体色変化がある場合はその値へ置き換える
|
|
10358
|
+
* @param {string} _type
|
|
10359
|
+
*/
|
|
10360
|
+
const getColor = (_type) => {
|
|
10361
|
+
const cColor = g_workObj[`${_name}${_type}Colors`][_j];
|
|
10362
|
+
const cColorAll = g_workObj[`${_name}${_type}ColorsAll`][_j];
|
|
10363
|
+
return currentFrz[_type] !== cColor && cColorAll === cColor ? cColorAll : currentFrz[_type];
|
|
10364
|
+
};
|
|
10365
|
+
|
|
10366
|
+
const tmpHitColor = getColor(`Hit`);
|
|
10251
10367
|
styfrzBar.top = wUnit(currentFrz.barY);
|
|
10252
10368
|
styfrzBar.height = wUnit(currentFrz.frzBarLength);
|
|
10253
|
-
styfrzBar.background =
|
|
10369
|
+
styfrzBar.background = getColor(`HitBar`);
|
|
10254
10370
|
styfrzBtm.top = wUnit(currentFrz.btmY);
|
|
10255
|
-
styfrzBtm.background =
|
|
10371
|
+
styfrzBtm.background = tmpHitColor;
|
|
10256
10372
|
styfrzTopShadow.opacity = 0;
|
|
10257
10373
|
styfrzBtmShadow.top = styfrzBtm.top;
|
|
10258
10374
|
if (_name === `frz`) {
|
|
10259
|
-
|
|
10260
|
-
|
|
10261
|
-
g_workObj.frzHitColors[_j] : g_headerObj.frzShadowColor[colorPos][1]);
|
|
10262
|
-
}
|
|
10375
|
+
const tmpShadowColor = getColor(`HitShadow`);
|
|
10376
|
+
styfrzBtmShadow.background = tmpShadowColor === `Default` ? tmpHitColor : tmpShadowColor;
|
|
10263
10377
|
$id(`frzHit${_j}`).opacity = 0.9;
|
|
10264
10378
|
$id(`frzTop${frzNo}`).display = C_DIS_NONE;
|
|
10265
10379
|
if (isNaN(parseFloat(g_workObj.arrowRtn[_j]))) {
|
|
10266
|
-
$id(`frzHitTop${_j}`).background =
|
|
10380
|
+
$id(`frzHitTop${_j}`).background = tmpHitColor;
|
|
10267
10381
|
}
|
|
10268
10382
|
}
|
|
10269
10383
|
|
|
@@ -10281,6 +10395,8 @@ const changeFailedFrz = (_j, _k) => {
|
|
|
10281
10395
|
$id(`frzTop${frzNo}`).display = C_DIS_INHERIT;
|
|
10282
10396
|
$id(`frzTop${frzNo}`).background = `#cccccc`;
|
|
10283
10397
|
$id(`frzTopShadow${frzNo}`).opacity = 1;
|
|
10398
|
+
$id(`frzTopShadow${frzNo}`).background = `#333333`;
|
|
10399
|
+
$id(`frzBtmShadow${frzNo}`).background = `#333333`;
|
|
10284
10400
|
$id(`frzBar${frzNo}`).background = `#999999`;
|
|
10285
10401
|
$id(`frzBar${frzNo}`).opacity = 1;
|
|
10286
10402
|
$id(`frzBtm${frzNo}`).background = `#cccccc`;
|
|
@@ -10289,12 +10405,6 @@ const changeFailedFrz = (_j, _k) => {
|
|
|
10289
10405
|
const hitPos = g_workObj.hitPosition * g_workObj.scrollDir[_j];
|
|
10290
10406
|
$id(`frzTop${frzNo}`).top = wUnit(- hitPos);
|
|
10291
10407
|
$id(`frzTopShadow${frzNo}`).top = wUnit(- hitPos);
|
|
10292
|
-
|
|
10293
|
-
const colorPos = g_keyObj[`color${g_keyObj.currentKey}_${g_keyObj.currentPtn}`][_j];
|
|
10294
|
-
if (g_headerObj.frzShadowColor[colorPos][0] !== ``) {
|
|
10295
|
-
$id(`frzTopShadow${frzNo}`).background = `#333333`;
|
|
10296
|
-
$id(`frzBtmShadow${frzNo}`).background = `#333333`;
|
|
10297
|
-
}
|
|
10298
10408
|
};
|
|
10299
10409
|
|
|
10300
10410
|
/**
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Source by tickle
|
|
7
7
|
* Created : 2019/11/19
|
|
8
|
-
* Revised : 2024/04/
|
|
8
|
+
* Revised : 2024/04/15 (v36.0.0)
|
|
9
9
|
*
|
|
10
10
|
* https://github.com/cwtickle/danoniplus
|
|
11
11
|
*/
|
|
@@ -616,12 +616,15 @@ let g_imgExtensions = [`png`, `gif`, `bmp`, `jpg`, `jpeg`, `svg`];
|
|
|
616
616
|
const g_typeLists = {
|
|
617
617
|
arrow: [`arrow`, `dummyArrow`, `frz`, `dummyFrz`],
|
|
618
618
|
color: [`color`, `acolor`],
|
|
619
|
-
|
|
619
|
+
arrowColor: [``, `Shadow`],
|
|
620
|
+
frzColor: [`Normal`, `NormalBar`, `Hit`, `HitBar`, `NormalShadow`, `HitShadow`],
|
|
620
621
|
dataList: [
|
|
621
622
|
`Arrow`, `FrzArrow`, `FrzLength`,
|
|
622
|
-
`Color`, `ColorCd`, `ScrollchArrow`, `ScrollchStep`, `ScrollchArrowDir`, `ScrollchStepDir`,
|
|
623
|
+
`Color`, `ColorCd`, `ColorShadow`, `ColorShadowCd`, `ScrollchArrow`, `ScrollchStep`, `ScrollchArrowDir`, `ScrollchStepDir`,
|
|
623
624
|
`FColorNormal`, `FColorNormalCd`, `FColorNormalBar`, `FColorNormalBarCd`,
|
|
625
|
+
`FColorNormalShadow`, `FColorNormalShadowCd`,
|
|
624
626
|
`FColorHit`, `FColorHitCd`, `FColorHitBar`, `FColorHitBarCd`,
|
|
627
|
+
`FColorHitShadow`, `FColorHitShadowCd`,
|
|
625
628
|
`ArrowCssMotion`, `ArrowCssMotionName`,
|
|
626
629
|
`FrzCssMotion`, `FrzCssMotionName`,
|
|
627
630
|
`ArrowColorChangeAll`, `FrzColorChangeAll`,
|
|
@@ -675,6 +678,19 @@ const g_escapeStr = {
|
|
|
675
678
|
[`Quote`, `Ja-Colon`], [`BracketLeft`, `Ja-@`], [`BracketRight`, `Ja-[`],
|
|
676
679
|
[`Backslash`, `Ja-]`], [`Equal`, `Ja-^`],
|
|
677
680
|
],
|
|
681
|
+
colorPatternName: [
|
|
682
|
+
[`AR`, `Arrow`], [`AS`, `ArrowShadow`],
|
|
683
|
+
[`NA`, `Normal`], [`NB`, `NormalBar`], [`NS`, `NormalShadow`],
|
|
684
|
+
[`HA`, `Hit`], [`HB`, `HitBar`], [`HS`, `HitShadow`],
|
|
685
|
+
[`FN`, `Normal/NormalBar`], [`FH`, `Hit/HitBar`], [`FS`, `NormalShadow/HitShadow`],
|
|
686
|
+
[`AF`, `Arrow/Normal/NormalBar/Hit/HitBar`],
|
|
687
|
+
[`FrzNormal`, `Normal/NormalBar`], [`FrzHit`, `Hit/HitBar`],
|
|
688
|
+
[`FrzShadow`, `NormalShadow/HitShadow`],
|
|
689
|
+
[`Frz`, `Normal/NormalBar/Hit/HitBar`],
|
|
690
|
+
],
|
|
691
|
+
targetPatternName: [
|
|
692
|
+
[`all`, `g0/g1/g2/g3/g4`],
|
|
693
|
+
],
|
|
678
694
|
};
|
|
679
695
|
|
|
680
696
|
/** 設定・オプション画面用共通 */
|
|
@@ -2740,6 +2756,8 @@ const g_lang_msgInfoObj = {
|
|
|
2740
2756
|
E_0104: `新しいキー:{0}の[keyCtrl]が未定義です。(E-0104)<br>
|
|
2741
2757
|
|keyCtrl{0}=75,79,76,80,187,32/0|`,
|
|
2742
2758
|
|
|
2759
|
+
E_0201: `色変化データで指定した色変化対象が存在しません。[pattern={0}] (E-0201)`,
|
|
2760
|
+
|
|
2743
2761
|
I_0001: `リザルトデータをクリップボードにコピーしました!`,
|
|
2744
2762
|
I_0002: `入力したキーは割り当てできません。他のキーを指定してください。`,
|
|
2745
2763
|
I_0003: `各譜面の明細情報をクリップボードにコピーしました!`,
|
|
@@ -2787,6 +2805,8 @@ const g_lang_msgInfoObj = {
|
|
|
2787
2805
|
E_0104: `New key: {0} [keyCtrl] is not set. (E-0104)<br>
|
|
2788
2806
|
|keyCtrl{0}=75,79,76,80,187,32/0|`,
|
|
2789
2807
|
|
|
2808
|
+
E_0201: `The color change target specified in the color change data does not exist. [pattern={0}] (E-0201)`,
|
|
2809
|
+
|
|
2790
2810
|
I_0001: `Your result data is copied to the clipboard!`,
|
|
2791
2811
|
I_0002: `The specified key cannot be assigned. Please specify another key.`,
|
|
2792
2812
|
I_0003: `Charts information is copied to the clipboard!`,
|