refactor: 重构复活配置逻辑,移除独立复活编辑器

调整复活配置实现方式,将复活功能并入dead触发组,通过overrides配置复活相关参数,删除原ReviveEditor组件,更新前端常量与页面展示逻辑
This commit is contained in:
panFD
2026-09-03 22:44:56 +08:00
parent b0038e74c8
commit 7f81634dd1
4 changed files with 14 additions and 69 deletions

View File

@@ -88,12 +88,9 @@
<!-- 大招 -->
<div class="panel">
<h3>大招 skills[1](与 revive 互斥)</h3>
<template v-if="current.revive.length === 0">
<SkillEditor v-if="ultSkill" :skill="ultSkill" :options="ultSkillOptions" :is-ult="true" />
<el-button v-else size="small" type="primary" @click="addUltSkill">+ 添加大招</el-button>
</template>
<el-alert v-else type="info" :closable="false">已配置 revive,大招不可用</el-alert>
<h3>大招 skills[1]</h3>
<SkillEditor v-if="ultSkill" :skill="ultSkill" :options="ultSkillOptions" :is-ult="true" />
<el-button v-else size="small" type="primary" @click="addUltSkill">+ 添加大招</el-button>
</div>
<!-- 触发技能 -->
@@ -113,10 +110,12 @@
<FieldEditor :model="current.field" :field-options="fieldOptions" />
</div>
<!-- 复活 -->
<!-- 复活已纳入 dead 触发组,通过 dead 编辑器的 overrides 配置 revive_hp / revive_count -->
<div class="panel">
<h3>复活 revive(与大招互斥)</h3>
<ReviveEditor :model="current.revive" :revive-options="reviveOptions" />
<h3>复活配置(dead 触发组内)</h3>
<el-alert type="info" :closable="false" show-icon style="margin-bottom: 10px">
复活已纳入 dead 触发组:在 dead 中添加技能(如 6501),并在 overrides 中配置 revive_hp(回血比例%)和 revive_count(次数上限)。
</el-alert>
</div>
<!-- 额外加成 -->
@@ -152,7 +151,6 @@ import {
import SkillEditor from './components/SkillEditor.vue'
import TriggerGroupEditor from './components/TriggerGroupEditor.vue'
import FieldEditor from './components/FieldEditor.vue'
import ReviveEditor from './components/ReviveEditor.vue'
import BonusEditor from './components/BonusEditor.vue'
const heroes = ref([])
@@ -165,6 +163,7 @@ const current = computed(() => heroes.value[activeIdx.value])
const skillMap = computed(() => meta.value?.SkillSet || {})
const allSkills = computed(() => Object.values(skillMap.value).sort((a, b) => a.uuid - b.uuid))
const fieldOptions = computed(() => Object.values(meta.value?.FieldSkillSet || {}).sort((a, b) => a.uuid - b.uuid))
// 复活已纳入 dead 触发组,通过 dead 编辑器的 overrides 配置 revive_hp / revive_count
const reviveOptions = computed(() => allSkills.value.filter((s) => s.uuid >= 6500 && s.uuid < 6600))
const roleBase = computed(() => {

View File

@@ -1,47 +0,0 @@
<template>
<div>
<el-alert type="warning" :closable="false" show-icon style="margin-bottom: 10px">
revive 与 skills[1](大招)互斥;配置 revive 时按 lv1/lv8/lv16 三档成长。
</el-alert>
<div v-for="(r, idx) in model" :key="idx" class="skill-block">
<div class="head">
<span>复活档位 lv {{ r.lv }}</span>
<el-button type="danger" size="small" text @click="model.splice(idx, 1)">删除档位</el-button>
</div>
<div class="form-grid">
<el-form-item label="等级 lv">
<el-input-number v-model="r.lv" :min="1" :max="20" :controls="false" style="width: 100%" />
</el-form-item>
<el-form-item label="复活技能 s_uuid">
<el-select v-model="r.s_uuid" filterable>
<el-option v-for="s in reviveOptions" :key="s.uuid" :label="`${s.uuid} ${s.name}`" :value="s.uuid" />
</el-select>
</el-form-item>
<el-form-item label="r_num 次数">
<el-input-number v-model="r.r_num" :min="1" :controls="false" style="width: 100%" />
</el-form-item>
<el-form-item label="upr 复活血量百分比">
<el-input-number v-model="r.upr" :min="0" :max="100" :controls="false" style="width: 100%" />
</el-form-item>
<el-form-item label="名称(仅第1档)" v-if="idx === 0">
<el-input v-model="r.name" placeholder="默认:凤凰涅槃" />
</el-form-item>
<el-form-item label="描述" class="grid-span">
<el-input v-model="r.desc" type="textarea" :rows="2" />
</el-form-item>
</div>
</div>
<el-button size="small" type="primary" @click="model.push({ lv: 1, s_uuid: 6501, r_num: 1, upr: 30, name: '', desc: '' })">+ 添加复活档位</el-button>
</div>
</template>
<script setup>
defineProps({
model: { type: Array, required: true },
reviveOptions: { type: Array, default: () => [] },
})
</script>
<style scoped>
.grid-span { grid-column: 1 / -1; }
</style>

View File

@@ -73,7 +73,7 @@ export function defaultHero() {
fstart: {},
dead: {},
field: [], // [{lv,uuids:[{uuid,value,name}],desc}]
revive: [], // [{lv,s_uuid,r_num,upr,name,desc}]
// revive 已纳入 dead 触发组,通过 overrides.revive_hp / revive_count 配置
ap_bonus: [],
hp_bonus: [],
def_bonus: [],
@@ -115,4 +115,6 @@ export const OVERRIDE_KEYS = [
{ key: 'summon_count', label: 'summon_count 召唤数' },
{ key: 'num', label: 'num 额外释放次数' },
{ key: 'call_hero', label: 'call_hero 召唤英雄id' },
{ key: 'revive_hp', label: 'revive_hp 复活回血比例(%)' },
{ key: 'revive_count', label: 'revive_count 复活次数上限' },
]