dev
This commit is contained in:
@@ -81,8 +81,9 @@ async def get_skill_info(
|
||||
if detail and len(detail) > 0:
|
||||
skill_info['levelInfo'].update(detail[0])
|
||||
skill_info['levelInfo']['detail'] = skill_info['levelInfo'].get('optionDesc', '')
|
||||
for key in skill_info['levelInfo']['optionValue'].keys():
|
||||
skill_info['levelInfo']['detail'] = skill_info['levelInfo']['detail'].replace(f'{{{key}}}', str(skill_info['levelInfo']['optionValue'][key]))
|
||||
if skill_info['levelInfo']['optionValue'] is not None:
|
||||
for key in skill_info['levelInfo']['optionValue'].keys():
|
||||
skill_info['levelInfo']['detail'] = skill_info['levelInfo']['detail'].replace(f'{{{key}}}', str(skill_info['levelInfo']['optionValue'][key]))
|
||||
del skill_info['levelInfo']['rows']
|
||||
skill_info['attribute'] = {}
|
||||
skill_info['attribute'].update(skill_info['levelInfo'])
|
||||
|
||||
@@ -173,6 +173,7 @@ def 勋章计算(装备等级, 品质, 强化等级):
|
||||
'玄机弓': (1.108, 1.09),
|
||||
'强攻弩': (1.12, 1.09),
|
||||
'妖影弓': (1.095, 1.1),
|
||||
'嵌合弓': (1.1, 1.085),
|
||||
}
|
||||
|
||||
|
||||
@@ -348,7 +349,7 @@ def 精通计算(装备等级, 品质, 强化等级, 部位, 甲类,属性='',ca
|
||||
'圣职者(男)': (4.7, 4.8, 4, 4.5, 6.5, 6.5, 4.5, 6.5),
|
||||
'圣职者(女)': (4.7, 4.8, 4, 4.5, 6.5, 6.5, 4.5, 6.5),
|
||||
# todo
|
||||
'弓箭手': (4.6, 4.6, 4.4, 4.4, 7, 7, 5, 5),
|
||||
'弓箭手': (4.6, 4.6, 4.4, 4.4, 6.5, 6.5, 5.5, 5.5),
|
||||
}
|
||||
|
||||
# 力量 体力 智力 精神
|
||||
@@ -373,6 +374,7 @@ def 精通计算(装备等级, 品质, 强化等级, 部位, 甲类,属性='',ca
|
||||
'枪炮师-神枪手(女)': (5.5, 5.5, 3.5, 3.5),
|
||||
'机械师-神枪手(女)': (3.5, 3.5, 5.5, 5.5),
|
||||
'弹药专家-神枪手(女)': (4.7, 4.3, 4.7, 4.3),
|
||||
'协战师-神枪手(女)': (3.5, 5.5, 3.5, 5.5),
|
||||
'漫游枪手-神枪手(男)': (5.5, 5.5, 3.5, 3.5),
|
||||
'枪炮师-神枪手(男)': (5.5, 5.5, 3.5, 3.5),
|
||||
'机械师-神枪手(男)': (3.5, 3.5, 5.5, 5.5),
|
||||
@@ -421,6 +423,7 @@ def 精通计算(装备等级, 品质, 强化等级, 部位, 甲类,属性='',ca
|
||||
'旅人-弓箭手': (5.5, 5.5, 3.5, 3.5),
|
||||
'猎人-弓箭手': (5.5, 5.5, 3.5, 3.5),
|
||||
'妖护使-弓箭手': (5.5, 5.5, 3.5, 3.5),
|
||||
'奇美拉-弓箭手': (5.5, 5.5, 3.5, 3.5),
|
||||
}
|
||||
|
||||
# 火抗 冰抗 光抗 暗抗
|
||||
@@ -446,6 +449,7 @@ def 精通计算(装备等级, 品质, 强化等级, 部位, 甲类,属性='',ca
|
||||
'枪炮师-神枪手(女)': (23, 23, 23, 23),
|
||||
'机械师-神枪手(女)': (23, 23, 23, 23),
|
||||
'弹药专家-神枪手(女)': (23, 23, 23, 23),
|
||||
'协战师-神枪手(女)': (23, 23, 23, 23),
|
||||
'漫游枪手-神枪手(男)': (23, 23, 23, 23),
|
||||
'枪炮师-神枪手(男)': (23, 23, 23, 23),
|
||||
'机械师-神枪手(男)': (23, 23, 23, 23),
|
||||
@@ -494,6 +498,7 @@ def 精通计算(装备等级, 品质, 强化等级, 部位, 甲类,属性='',ca
|
||||
'旅人-弓箭手': (23, 23, 23, 23),
|
||||
'猎人-弓箭手': (23, 23, 23, 23),
|
||||
'妖护使-弓箭手': (23, 23, 23, 23),
|
||||
'奇美拉-弓箭手': (23, 23, 23, 23),
|
||||
}
|
||||
|
||||
# 出血 中毒 灼伤 感电 冰冻 减速 眩晕 诅咒 失明 石化 睡眠 混乱 束缚
|
||||
@@ -516,6 +521,7 @@ def 精通计算(装备等级, 品质, 强化等级, 部位, 甲类,属性='',ca
|
||||
'源能专家-枪剑士': (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
|
||||
'漫游枪手-神枪手(女)': (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
|
||||
'枪炮师-神枪手(女)': (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
|
||||
'协战师-神枪手(女)': (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
|
||||
'机械师-神枪手(女)': (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
|
||||
'弹药专家-神枪手(女)': (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
|
||||
'漫游枪手-神枪手(男)': (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
|
||||
@@ -566,6 +572,7 @@ def 精通计算(装备等级, 品质, 强化等级, 部位, 甲类,属性='',ca
|
||||
'旅人-弓箭手': (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
|
||||
'猎人-弓箭手': (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
|
||||
'妖护使-弓箭手': (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
|
||||
'奇美拉-弓箭手': (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
|
||||
}
|
||||
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -198,7 +198,7 @@ adv = [
|
||||
{'id': 1, 'name': 'traveler', 'title': '聆风·旅人', 'open': False},
|
||||
{'id': 2, 'name': 'hunter', 'title': '聆风·猎人', 'open': False},
|
||||
{'id': 3, 'name': 'vigilante', 'title': '聆风·妖护使', 'open': False},
|
||||
{'id': 4, 'name': 'chimera', 'title': '聆风·奇美拉', 'open': False, 'class': 'GF.archer.chimera'},
|
||||
{'id': 4, 'name': 'chimera', 'title': '聆风·奇美拉', 'open': True, 'class': 'GF.archer.chimera'},
|
||||
],
|
||||
},
|
||||
{
|
||||
|
||||
@@ -57,14 +57,18 @@ export default defineComponent({
|
||||
],
|
||||
)
|
||||
|
||||
const desc = computed(() => skillInfo.value?.descDetail.split('\n').filter((item) => !!item))
|
||||
const desc = computed(() => skillInfo.value?.descDetail.split('\n'))
|
||||
|
||||
const detail = computed(() => {
|
||||
const items = skillInfo.value?.attribute.optionDesc.split('\n').filter((item) => !!item)
|
||||
const items = skillInfo.value?.attribute.optionDesc?.split('\n').filter((item) => !!item) ?? []
|
||||
const details = items?.map((a) => {
|
||||
const beforeReplace = a.match(/^(.+?\s*:\s*[^\{]+)(\{value\d+\}.*)$/)
|
||||
if(beforeReplace) {
|
||||
a = `${beforeReplace[1]}<span class="skill_info_value">${beforeReplace[2]}</span>`
|
||||
}
|
||||
const matches = a.match(/{([^}]+)}/g)
|
||||
if (matches) {
|
||||
matches.forEach((match, index) => {
|
||||
matches.forEach((match) => {
|
||||
const key = match.replace(/[{}]/g, '')
|
||||
// Only access if key matches the expected pattern
|
||||
if (/^value.+/.test(key)) {
|
||||
@@ -72,7 +76,7 @@ export default defineComponent({
|
||||
if (value) {
|
||||
a = a.replace(
|
||||
match,
|
||||
`<span style="${index == 0 ? 'margin-left:auto;' : ''};padding:0px 2px;color:#4AA256">${value}</span>`,
|
||||
`<span style="padding:0px 2px;color:#4AA256">${value}</span>`,
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -98,16 +102,16 @@ export default defineComponent({
|
||||
)}
|
||||
</div>
|
||||
<div class="title">技能描述</div>
|
||||
<div class="h-auto max-h-200px">
|
||||
<div class="h-auto max-h-250px">
|
||||
<div class="h-full overflow-y-auto bg-#161816 p-2px">
|
||||
{desc.value?.map((item) => (
|
||||
<span style="white-space: pre-wrap;text-indent:20px;">{item}</span>
|
||||
{desc.value?.map((item) => item.startsWith("[") ? (<div class="min-h-10px">{item}</div>) :(
|
||||
<div class="min-h-10px" style="text-indent:20px;">{item}</div>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
<div class="title">技能属性</div>
|
||||
<div class="flex-1">
|
||||
<div class="overflow-y-auto h-full flex flex-col gap-2px">
|
||||
<div class="flex-1 overflow-y-auto">
|
||||
<div class=" flex flex-col gap-2px">
|
||||
{detail.value?.map((item) => (
|
||||
<div class="flex justify-between item items-center" v-html={item}></div>
|
||||
))}
|
||||
@@ -119,14 +123,14 @@ export default defineComponent({
|
||||
const renderSkillVp = () => (
|
||||
<>
|
||||
<div class="h-auto">
|
||||
<div class="h-full overflow-y-auto flex flex-col gap-5px">
|
||||
<div class="h-full flex flex-col gap-5px">
|
||||
{skillInfo.value?.evolution?.map((item) => (
|
||||
<>
|
||||
<div class="flex flex-col gap-2px">
|
||||
<div class="skill_vp_title">{item.name}</div>
|
||||
<div class="title">技能描述</div>
|
||||
<div class="h-auto max-h-200px">
|
||||
<div class="h-full overflow-y-auto bg-#161816 p-2px" style="white-space: pre-wrap;">
|
||||
<div class="h-full bg-#161816 p-2px" style="white-space: pre-wrap;">
|
||||
{item.descDetail}
|
||||
</div>
|
||||
</div>
|
||||
@@ -140,7 +144,7 @@ export default defineComponent({
|
||||
|
||||
onMounted(() => {
|
||||
watchEffect(() => {
|
||||
skillInfo.value?.evolution?.length == 0 && (curTab.value = 0)
|
||||
(skillInfo.value?.evolution?.length ?? 0) == 0 && (curTab.value = 0)
|
||||
})
|
||||
})
|
||||
|
||||
@@ -151,14 +155,14 @@ export default defineComponent({
|
||||
<div class="relative">
|
||||
<CalcTabs v-model={curTab.value}>
|
||||
<CalcTab class="flex-1 flex justify-center" value={0}>
|
||||
原技能描述
|
||||
技能信息
|
||||
</CalcTab>
|
||||
<CalcTab
|
||||
class="flex-1 flex justify-center"
|
||||
value={1}
|
||||
disabled={!skillInfo.value?.evolution?.length}
|
||||
>
|
||||
技能进化描述
|
||||
技能进化
|
||||
</CalcTab>
|
||||
</CalcTabs>
|
||||
</div>
|
||||
|
||||
@@ -86,3 +86,13 @@
|
||||
color:#4AA256;
|
||||
}
|
||||
}
|
||||
|
||||
.skill_info_value{
|
||||
white-space: nowrap;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-left:auto;
|
||||
display: flex;
|
||||
margin-top: auto;
|
||||
color:#4AA256;
|
||||
}
|
||||
|
||||
@@ -166,7 +166,7 @@ export default defineComponent({
|
||||
const renderSkillAction = (skill: ISkill) => (
|
||||
<>
|
||||
<>
|
||||
<div class="absolute skill-active w-88px h-78px translate-x--50% left-16px top--1px">
|
||||
<div class="absolute skill-active w-88px h-78px translate-x--50% left-16px top--1px z-5">
|
||||
<div class="flex justify-between items-center px-5px relative top-54px">
|
||||
<CalcButton
|
||||
icon="min"
|
||||
@@ -235,7 +235,7 @@ export default defineComponent({
|
||||
|
||||
return () => (
|
||||
<>
|
||||
<div onClick={() => (activeSkill.value = -1)}>
|
||||
<div onClick={() => (activeSkill.value = -1)} class="pb-40px">
|
||||
{((getSkill(0, 15, -1) ?? []) as ISkill[]).length > 0 && (
|
||||
<>
|
||||
<div class="skill-tree-line flex items-center gap-10px px-10px">
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bg-#101012 flex-1 max-w-250px h-full" v-if="curCurrentSkill.skillId">
|
||||
<div class="bg-#101012 w-250px h-full overflow-x-auto" v-if="curCurrentSkill.skillId && curCurrentSkill.level > 0">
|
||||
<SkillDetail
|
||||
:skillId="curCurrentSkill.skillId"
|
||||
:level="curCurrentSkill.level"
|
||||
|
||||
Reference in New Issue
Block a user