feat: release version 1.0.7
This commit is contained in:
@@ -323,7 +323,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 10,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 120%"
|
||||
"effect": "스코어 서포트 효과 120% 스킬 발동률이 40% UP"
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
@@ -332,7 +332,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 10,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 145%"
|
||||
"effect": "스코어 서포트 효과 145% 스킬 발동률이 50% UP"
|
||||
}
|
||||
],
|
||||
"connect": [
|
||||
@@ -484,7 +484,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 10,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 120%"
|
||||
"effect": "스코어 서포트 효과 120% 스킬 발동률이 40% UP"
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
@@ -493,7 +493,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 10,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 145%"
|
||||
"effect": "스코어 서포트 효과 145% 스킬 발동률이 50% UP"
|
||||
}
|
||||
],
|
||||
"connect": [
|
||||
@@ -750,7 +750,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 10,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 120%"
|
||||
"effect": "스코어 서포트 효과 120% 스킬 발동률이 40% UP"
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
@@ -759,7 +759,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 10,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 145%"
|
||||
"effect": "스코어 서포트 효과 145% 스킬 발동률이 50% UP"
|
||||
}
|
||||
],
|
||||
"connect": [
|
||||
@@ -1008,7 +1008,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 10,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 120%"
|
||||
"effect": "스코어 서포트 효과 120% 스킬 발동률이 40% UP"
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
@@ -1017,7 +1017,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 10,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 145%"
|
||||
"effect": "스코어 서포트 효과 145% 스킬 발동률이 50% UP"
|
||||
}
|
||||
],
|
||||
"connect": [
|
||||
@@ -1927,7 +1927,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 12,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 100%"
|
||||
"effect": "스코어 서포트 효과 100% 스킬 발동률이 35% UP"
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
@@ -1936,7 +1936,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 12,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 120%"
|
||||
"effect": "스코어 서포트 효과 120% 스킬 발동률이 40% UP"
|
||||
}
|
||||
],
|
||||
"connect": [
|
||||
@@ -2749,7 +2749,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 10,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 120%"
|
||||
"effect": "스코어 서포트 효과 120% 스킬 발동률이 40% UP"
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
@@ -2758,7 +2758,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 10,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 145%"
|
||||
"effect": "스코어 서포트 효과 145% 스킬 발동률이 50% UP"
|
||||
}
|
||||
],
|
||||
"connect": [
|
||||
@@ -2894,7 +2894,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 12,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 100%"
|
||||
"effect": "스코어 서포트 효과 100% 스킬 발동률이 35% UP"
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
@@ -2903,7 +2903,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 12,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 120%"
|
||||
"effect": "스코어 서포트 효과 120% 스킬 발동률이 40% UP"
|
||||
}
|
||||
],
|
||||
"connect": [
|
||||
@@ -3393,7 +3393,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 12,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 100%"
|
||||
"effect": "스코어 서포트 효과 100% 스킬 발동률이 35% UP"
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
@@ -3402,7 +3402,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 12,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 120%"
|
||||
"effect": "스코어 서포트 효과 120% 스킬 발동률이 40% UP"
|
||||
}
|
||||
],
|
||||
"connect": [
|
||||
@@ -3659,7 +3659,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 11,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 110%"
|
||||
"effect": "스코어 서포트 효과 110% 스킬 발동률이 35% UP"
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
@@ -3668,7 +3668,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 11,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 130%"
|
||||
"effect": "스코어 서포트 효과 130% 스킬 발동률이 45% UP"
|
||||
}
|
||||
],
|
||||
"connect": [
|
||||
@@ -3796,7 +3796,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 10,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 120%"
|
||||
"effect": "스코어 서포트 효과 120% 스킬 발동률이 40% UP"
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
@@ -3805,7 +3805,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 10,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 145%"
|
||||
"effect": "스코어 서포트 효과 145% 스킬 발동률이 50% UP"
|
||||
}
|
||||
],
|
||||
"connect": [
|
||||
@@ -4199,7 +4199,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 12,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 100%"
|
||||
"effect": "스코어 서포트 효과 100% 스킬 발동률이 35% UP"
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
@@ -4208,7 +4208,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 12,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 120%"
|
||||
"effect": "스코어 서포트 효과 120% 스킬 발동률이 40% UP"
|
||||
}
|
||||
],
|
||||
"connect": [
|
||||
@@ -4602,7 +4602,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 10,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 120%"
|
||||
"effect": "스코어 서포트 효과 120% 스킬 발동률이 40% UP"
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
@@ -4611,7 +4611,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 10,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 145%"
|
||||
"effect": "스코어 서포트 효과 145% 스킬 발동률이 50% UP"
|
||||
}
|
||||
],
|
||||
"connect": [
|
||||
@@ -5448,7 +5448,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 12,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 100%"
|
||||
"effect": "스코어 서포트 효과 100% 스킬 발동률이 35% UP"
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
@@ -5457,7 +5457,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 12,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 120%"
|
||||
"effect": "스코어 서포트 효과 120% 스킬 발동률이 40% UP"
|
||||
}
|
||||
],
|
||||
"connect": [
|
||||
@@ -6769,7 +6769,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 12,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 100%"
|
||||
"effect": "스코어 서포트 효과 100% 스킬 발동률이 35% UP"
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
@@ -6778,7 +6778,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 12,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 120%"
|
||||
"effect": "스코어 서포트 효과 120% 스킬 발동률이 40% UP"
|
||||
}
|
||||
],
|
||||
"connect": [
|
||||
@@ -7857,7 +7857,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 10,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 120%"
|
||||
"effect": "스코어 서포트 효과 120% 스킬 발동률이 40% UP"
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
@@ -7866,7 +7866,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 10,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 145%"
|
||||
"effect": "스코어 서포트 효과 145% 스킬 발동률이 50% UP"
|
||||
}
|
||||
],
|
||||
"connect": [
|
||||
@@ -7978,7 +7978,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 10,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 120%"
|
||||
"effect": "스코어 서포트 효과 120% 스킬 발동률이 40% UP"
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
@@ -7987,7 +7987,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 10,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 145%"
|
||||
"effect": "스코어 서포트 효과 145% 스킬 발동률이 50% UP"
|
||||
}
|
||||
],
|
||||
"connect": [
|
||||
@@ -8308,7 +8308,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 10,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 120%"
|
||||
"effect": "스코어 서포트 효과 120% 스킬 발동률이 40% UP"
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
@@ -8317,7 +8317,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 10,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 145%"
|
||||
"effect": "스코어 서포트 효과 145% 스킬 발동률이 50% UP"
|
||||
}
|
||||
],
|
||||
"connect": [
|
||||
@@ -9009,7 +9009,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 10,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 120%"
|
||||
"effect": "스코어 서포트 효과 120% 스킬 발동률이 40% UP"
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
@@ -9018,7 +9018,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 10,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 145%"
|
||||
"effect": "스코어 서포트 효과 145% 스킬 발동률이 50% UP"
|
||||
}
|
||||
],
|
||||
"connect": [
|
||||
@@ -9170,7 +9170,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 10,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 120%"
|
||||
"effect": "스코어 서포트 효과 120% 스킬 발동률이 40% UP"
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
@@ -9179,7 +9179,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 10,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 145%"
|
||||
"effect": "스코어 서포트 효과 145% 스킬 발동률이 50% UP"
|
||||
}
|
||||
],
|
||||
"connect": [
|
||||
@@ -16033,7 +16033,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 8,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 45%"
|
||||
"effect": "스코어 서포트 효과 45% GOOD 이상이 PERFECT가 된다"
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
@@ -16042,7 +16042,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 8,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 70%"
|
||||
"effect": "스코어 서포트 효과 70% GOOD 이상이 PERFECT가 된다"
|
||||
}
|
||||
],
|
||||
"connect": [],
|
||||
@@ -16270,7 +16270,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 8,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 45%"
|
||||
"effect": "스코어 서포트 효과 45% GOOD 이상이 PERFECT가 된다"
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
@@ -16279,7 +16279,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 8,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 70%"
|
||||
"effect": "스코어 서포트 효과 70% GOOD 이상이 PERFECT가 된다"
|
||||
}
|
||||
],
|
||||
"connect": [],
|
||||
@@ -16507,7 +16507,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 10,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 40%"
|
||||
"effect": "스코어 서포트 효과 40% 라이프가 300 회복"
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
@@ -16516,7 +16516,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 10,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 55%"
|
||||
"effect": "스코어 서포트 효과 55% 라이프가 400 회복"
|
||||
}
|
||||
],
|
||||
"connect": [],
|
||||
@@ -16586,7 +16586,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 8,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 45%"
|
||||
"effect": "스코어 서포트 효과 45% GOOD 이상이 PERFECT가 된다"
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
@@ -16595,7 +16595,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 8,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 70%"
|
||||
"effect": "스코어 서포트 효과 70% GOOD 이상이 PERFECT가 된다"
|
||||
}
|
||||
],
|
||||
"connect": [],
|
||||
@@ -16665,7 +16665,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 10,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 40%"
|
||||
"effect": "스코어 서포트 효과 40% 라이프가 300 회복"
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
@@ -16674,7 +16674,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 10,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 55%"
|
||||
"effect": "스코어 서포트 효과 55% 라이프가 400 회복"
|
||||
}
|
||||
],
|
||||
"connect": [],
|
||||
@@ -16902,7 +16902,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 8,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 45%"
|
||||
"effect": "스코어 서포트 효과 45% GOOD 이상이 PERFECT가 된다"
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
@@ -16911,7 +16911,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 9,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 60%"
|
||||
"effect": "스코어 서포트 효과 60% GOOD 이상이 PERFECT가 된다"
|
||||
}
|
||||
],
|
||||
"connect": [],
|
||||
@@ -16981,7 +16981,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 8,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 50%"
|
||||
"effect": "스코어 서포트 효과 50% 라이프가 300 회복"
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
@@ -16990,7 +16990,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 8,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 70%"
|
||||
"effect": "스코어 서포트 효과 70% 라이프가 400 회복"
|
||||
}
|
||||
],
|
||||
"connect": [],
|
||||
@@ -17060,7 +17060,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 7,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 55%"
|
||||
"effect": "스코어 서포트 효과 55% GOOD 이상이 PERFECT가 된다"
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
@@ -17069,7 +17069,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 7,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 80%"
|
||||
"effect": "스코어 서포트 효과 80% GOOD 이상이 PERFECT가 된다"
|
||||
}
|
||||
],
|
||||
"connect": [],
|
||||
@@ -17139,7 +17139,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 7,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 55%"
|
||||
"effect": "스코어 서포트 효과 55% GOOD 이상이 PERFECT가 된다"
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
@@ -17148,7 +17148,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 7,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 80%"
|
||||
"effect": "스코어 서포트 효과 80% GOOD 이상이 PERFECT가 된다"
|
||||
}
|
||||
],
|
||||
"connect": [],
|
||||
@@ -17218,7 +17218,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 8,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 50%"
|
||||
"effect": "스코어 서포트 효과 50% 라이프가 300 회복"
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
@@ -17227,7 +17227,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 8,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 70%"
|
||||
"effect": "스코어 서포트 효과 70% 라이프가 400 회복"
|
||||
}
|
||||
],
|
||||
"connect": [],
|
||||
@@ -17376,7 +17376,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 8,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 45%"
|
||||
"effect": "스코어 서포트 효과 45% GOOD 이상이 PERFECT가 된다"
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
@@ -17385,7 +17385,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 9,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 60%"
|
||||
"effect": "스코어 서포트 효과 60% GOOD 이상이 PERFECT가 된다"
|
||||
}
|
||||
],
|
||||
"connect": [],
|
||||
@@ -17534,7 +17534,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 8,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 50%"
|
||||
"effect": "스코어 서포트 효과 50% 라이프가 300 회복"
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
@@ -17543,7 +17543,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 8,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 70%"
|
||||
"effect": "스코어 서포트 효과 70% 라이프가 400 회복"
|
||||
}
|
||||
],
|
||||
"connect": [],
|
||||
@@ -17613,7 +17613,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 8,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 50%"
|
||||
"effect": "스코어 서포트 효과 50% 라이프가 300 회복"
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
@@ -17622,7 +17622,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 8,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 70%"
|
||||
"effect": "스코어 서포트 효과 70% 라이프가 400 회복"
|
||||
}
|
||||
],
|
||||
"connect": [],
|
||||
@@ -17850,7 +17850,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 8,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 45%"
|
||||
"effect": "스코어 서포트 효과 45% GOOD 이상이 PERFECT가 된다"
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
@@ -17859,7 +17859,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 8,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 70%"
|
||||
"effect": "스코어 서포트 효과 70% GOOD 이상이 PERFECT가 된다"
|
||||
}
|
||||
],
|
||||
"connect": [],
|
||||
@@ -17929,7 +17929,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 7,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 55%"
|
||||
"effect": "스코어 서포트 효과 55% GOOD 이상이 PERFECT가 된다"
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
@@ -17938,7 +17938,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 7,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 80%"
|
||||
"effect": "스코어 서포트 효과 80% GOOD 이상이 PERFECT가 된다"
|
||||
}
|
||||
],
|
||||
"connect": [],
|
||||
@@ -18245,7 +18245,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 8,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 45%"
|
||||
"effect": "스코어 서포트 효과 45% GOOD 이상이 PERFECT가 된다"
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
@@ -18254,7 +18254,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 8,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 70%"
|
||||
"effect": "스코어 서포트 효과 70% GOOD 이상이 PERFECT가 된다"
|
||||
}
|
||||
],
|
||||
"connect": [],
|
||||
@@ -18403,7 +18403,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 7,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 55%"
|
||||
"effect": "스코어 서포트 효과 55% GOOD 이상이 PERFECT가 된다"
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
@@ -18412,7 +18412,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 7,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 80%"
|
||||
"effect": "스코어 서포트 효과 80% GOOD 이상이 PERFECT가 된다"
|
||||
}
|
||||
],
|
||||
"connect": [],
|
||||
@@ -18561,7 +18561,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 7,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 55%"
|
||||
"effect": "스코어 서포트 효과 55% GOOD 이상이 PERFECT가 된다"
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
@@ -18570,7 +18570,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 7,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 80%"
|
||||
"effect": "스코어 서포트 효과 80% GOOD 이상이 PERFECT가 된다"
|
||||
}
|
||||
],
|
||||
"connect": [],
|
||||
@@ -18798,7 +18798,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 8,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 50%"
|
||||
"effect": "스코어 서포트 효과 50% 라이프가 300 회복"
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
@@ -18807,7 +18807,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 8,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 70%"
|
||||
"effect": "스코어 서포트 효과 70% 라이프가 400 회복"
|
||||
}
|
||||
],
|
||||
"connect": [],
|
||||
@@ -18956,7 +18956,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 10,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 40%"
|
||||
"effect": "스코어 서포트 효과 40% 라이프가 300 회복"
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
@@ -18965,7 +18965,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 10,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 55%"
|
||||
"effect": "스코어 서포트 효과 55% 라이프가 400 회복"
|
||||
}
|
||||
],
|
||||
"connect": [],
|
||||
@@ -19114,7 +19114,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 10,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 40%"
|
||||
"effect": "스코어 서포트 효과 40% 라이프가 300 회복"
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
@@ -19123,7 +19123,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 10,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 55%"
|
||||
"effect": "스코어 서포트 효과 55% 라이프가 400 회복"
|
||||
}
|
||||
],
|
||||
"connect": [],
|
||||
@@ -19193,7 +19193,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 10,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 40%"
|
||||
"effect": "스코어 서포트 효과 40% 라이프가 300 회복"
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
@@ -19202,7 +19202,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 10,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 55%"
|
||||
"effect": "스코어 서포트 효과 55% 라이프가 400 회복"
|
||||
}
|
||||
],
|
||||
"connect": [],
|
||||
@@ -19272,7 +19272,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 8,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 45%"
|
||||
"effect": "스코어 서포트 효과 45% GOOD 이상이 PERFECT가 된다"
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
@@ -19281,7 +19281,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 8,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 70%"
|
||||
"effect": "스코어 서포트 효과 70% GOOD 이상이 PERFECT가 된다"
|
||||
}
|
||||
],
|
||||
"connect": [],
|
||||
@@ -19430,7 +19430,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 7,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 55%"
|
||||
"effect": "스코어 서포트 효과 55% GOOD 이상이 PERFECT가 된다"
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
@@ -19439,7 +19439,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 7,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 80%"
|
||||
"effect": "스코어 서포트 효과 80% GOOD 이상이 PERFECT가 된다"
|
||||
}
|
||||
],
|
||||
"connect": [],
|
||||
@@ -19509,7 +19509,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 8,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 50%"
|
||||
"effect": "스코어 서포트 효과 50% 라이프가 300 회복"
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
@@ -19518,7 +19518,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 8,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 70%"
|
||||
"effect": "스코어 서포트 효과 70% 라이프가 400 회복"
|
||||
}
|
||||
],
|
||||
"connect": [],
|
||||
@@ -19588,7 +19588,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 10,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 40%"
|
||||
"effect": "스코어 서포트 효과 40% 라이프가 300 회복"
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
@@ -19597,7 +19597,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 10,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 55%"
|
||||
"effect": "스코어 서포트 효과 55% 라이프가 400 회복"
|
||||
}
|
||||
],
|
||||
"connect": [],
|
||||
@@ -19667,7 +19667,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 8,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 50%"
|
||||
"effect": "스코어 서포트 효과 50% 라이프가 300 회복"
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
@@ -19676,7 +19676,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 8,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 70%"
|
||||
"effect": "스코어 서포트 효과 70% 라이프가 400 회복"
|
||||
}
|
||||
],
|
||||
"connect": [],
|
||||
@@ -19825,7 +19825,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 8,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 50%"
|
||||
"effect": "스코어 서포트 효과 50% 라이프가 300 회복"
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
@@ -19834,7 +19834,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 8,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 70%"
|
||||
"effect": "스코어 서포트 효과 70% 라이프가 400 회복"
|
||||
}
|
||||
],
|
||||
"connect": [],
|
||||
@@ -20141,7 +20141,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 8,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 50%"
|
||||
"effect": "스코어 서포트 효과 50% 라이프가 300 회복"
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
@@ -20150,7 +20150,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 8,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 70%"
|
||||
"effect": "스코어 서포트 효과 70% 라이프가 400 회복"
|
||||
}
|
||||
],
|
||||
"connect": [],
|
||||
@@ -20220,7 +20220,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 10,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 40%"
|
||||
"effect": "스코어 서포트 효과 40% 라이프가 300 회복"
|
||||
},
|
||||
{
|
||||
"level": 2,
|
||||
@@ -20229,7 +20229,7 @@
|
||||
"probabilityPercent": null,
|
||||
"durationSeconds": 10,
|
||||
"condition": "",
|
||||
"effect": "스코어 서포트 효과 55%"
|
||||
"effect": "스코어 서포트 효과 55% 라이프가 400 회복"
|
||||
}
|
||||
],
|
||||
"connect": [],
|
||||
|
||||
+1356
-604
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,56 @@
|
||||
export type SongSort = 'title' | 'difficulty-asc' | 'difficulty-desc';
|
||||
|
||||
export type SongChartSummary = {
|
||||
songId: string;
|
||||
title: string;
|
||||
difficulty: string;
|
||||
difficultyLevel?: number | null;
|
||||
scoreCalibrationSource?: 'measured' | 'local-estimated-v1' | string;
|
||||
};
|
||||
|
||||
export type SongOption = {
|
||||
id: string;
|
||||
title: string;
|
||||
difficultyLevel: number | null;
|
||||
};
|
||||
|
||||
const englishTitleCollator = new Intl.Collator('en', {
|
||||
sensitivity: 'base',
|
||||
numeric: true
|
||||
});
|
||||
|
||||
function normalizedSearch(value: string): string {
|
||||
return value.normalize('NFKD').toLocaleLowerCase('en').replace(/[^a-z0-9]+/g, ' ').trim();
|
||||
}
|
||||
|
||||
export function songOptions(
|
||||
charts: readonly SongChartSummary[],
|
||||
difficulty: string,
|
||||
query = '',
|
||||
sort: SongSort = 'title'
|
||||
): SongOption[] {
|
||||
const levelBySongId = new Map(charts
|
||||
.filter((chart) => chart.difficulty === difficulty)
|
||||
.map((chart) => [chart.songId, chart.difficultyLevel ?? null]));
|
||||
const options = Array.from(new Map(charts.map((chart) => [chart.songId, {
|
||||
id: chart.songId,
|
||||
title: chart.title,
|
||||
difficultyLevel: levelBySongId.get(chart.songId) ?? null
|
||||
}])).values());
|
||||
const search = normalizedSearch(query);
|
||||
const filtered = search
|
||||
? options.filter((song) => normalizedSearch(`${song.title} ${song.id}`).includes(search))
|
||||
: options;
|
||||
const titleOrder = (left: SongOption, right: SongOption) =>
|
||||
englishTitleCollator.compare(left.title, right.title) || left.id.localeCompare(right.id);
|
||||
|
||||
return filtered.sort((left, right) => {
|
||||
if (sort === 'title') return titleOrder(left, right);
|
||||
if (left.difficultyLevel === null) return right.difficultyLevel === null ? titleOrder(left, right) : 1;
|
||||
if (right.difficultyLevel === null) return -1;
|
||||
const leftLevel = left.difficultyLevel;
|
||||
const rightLevel = right.difficultyLevel;
|
||||
const levelOrder = sort === 'difficulty-desc' ? rightLevel - leftLevel : leftLevel - rightLevel;
|
||||
return levelOrder || titleOrder(left, right);
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user