refactor(skill): 优化技能文本展示逻辑,移除冗余的技能名前缀

1.  调整英雄技能描述文本,移除技能描述中重复的前置动作描述,统一文本风格
2.  重构技能文本生成代码,删除组内多技能时自动添加技能名前缀的逻辑,简化显示逻辑
3.  清理冗余的空行与注释,优化代码结构
4.  调整部分英雄技能的冷却时间配置,修正格式细节
This commit is contained in:
pan
2026-09-04 14:25:31 +08:00
parent db26865e03
commit 7bb3dcf6db
4 changed files with 55 additions and 93 deletions

View File

@@ -196,8 +196,6 @@ export function buildHeroSkillDesc(heroUuid: number, showName: boolean = true, s
if (!grouped) continue; if (!grouped) continue;
const items = resolveTriggerByLv(grouped, lv); const items = resolveTriggerByLv(grouped, lv);
if (items.length === 0) continue; if (items.length === 0) continue;
// 组内多个技能时,各效果片段带自身技能名区分
const headOf = (s_uuid: number) => (items.length > 1 ? skillNameRich(getGroupedTriggerName(grouped, s_uuid)) : "");
const parts: string[] = []; const parts: string[] = [];
for (const item of items) { for (const item of items) {
const base = SkillSet[item.s_uuid]; const base = SkillSet[item.s_uuid];
@@ -215,7 +213,7 @@ export function buildHeroSkillDesc(heroUuid: number, showName: boolean = true, s
const trig = type === SkillTriggerType.Atking || type === SkillTriggerType.Atked const trig = type === SkillTriggerType.Atking || type === SkillTriggerType.Atked
? `${SkillTriggerName[type]}${valueRich(item.t_num)}次` ? `${SkillTriggerName[type]}${valueRich(item.t_num)}次`
: SkillTriggerName[type]; : SkillTriggerName[type];
parts.push(`${headOf(item.s_uuid)}${trig}, ${text}`); parts.push(`${trig}, ${text}`);
} }
// dead 组内的复活效果(revive_hp / revive_count)并入同一行 // dead 组内的复活效果(revive_hp / revive_count)并入同一行
if (type === SkillTriggerType.Dead) { if (type === SkillTriggerType.Dead) {
@@ -224,7 +222,7 @@ export function buildHeroSkillDesc(heroUuid: number, showName: boolean = true, s
const reviveCount = item.overrides?.revive_count ?? 0; const reviveCount = item.overrides?.revive_count ?? 0;
if (reviveHp === undefined || reviveCount <= 0) continue; if (reviveHp === undefined || reviveCount <= 0) continue;
const text = `每回合可复活${valueRich(reviveCount)}次, 死亡后以${valueRich(`${Math.round(reviveHp)}%`)}生命原地重生`; const text = `每回合可复活${valueRich(reviveCount)}次, 死亡后以${valueRich(`${Math.round(reviveHp)}%`)}生命原地重生`;
parts.push(`${headOf(item.s_uuid)}${SkillTriggerName[SkillTriggerType.Dead]}, ${text}`); parts.push(`${SkillTriggerName[SkillTriggerType.Dead]}, ${text}`);
} }
} }
if (parts.length === 0) continue; if (parts.length === 0) continue;
@@ -233,18 +231,15 @@ export function buildHeroSkillDesc(heroUuid: number, showName: boolean = true, s
} }
// ---- 驻场光环(field):整组视为一个技能,组内多词条合并为一行 ---- // ---- 驻场光环(field):整组视为一个技能,组内多词条合并为一行 ----
const fieldItems = resolveFieldByLv(hero.field, lv);
const fieldParts: string[] = []; const fieldParts: string[] = [];
for (const entry of fieldItems) { for (const entry of resolveFieldByLv(hero.field, lv)) {
const fs = FieldSkillSet[entry.uuid]; const fs = FieldSkillSet[entry.uuid];
const desc = fs ? FieldDescSet[fs.type] : undefined; const desc = fs ? FieldDescSet[fs.type] : undefined;
if (!fs || !desc) continue; if (!fs || !desc) continue;
const val = desc.fmt === FieldValueFmt.Percent const val = desc.fmt === FieldValueFmt.Percent
? `+${Math.round(entry.value * 100)}%` ? `+${Math.round(entry.value * 100)}%`
: desc.fmt === FieldValueFmt.IntMinus ? `-${entry.value}` : `+${entry.value}`; : desc.fmt === FieldValueFmt.IntMinus ? `-${entry.value}` : `+${entry.value}`;
// 组内多个词条时带各自词条名区分 fieldParts.push(`${desc.verb}${valueRich(val)}`);
const head = fieldItems.length > 1 ? skillNameRich(entry.name ?? fs.name) : "";
fieldParts.push(`${head}${desc.verb}${valueRich(val)}`);
} }
if (fieldParts.length > 0) { if (fieldParts.length > 0) {
// 组名取组内首个自定义名(getFieldGroupName) // 组名取组内首个自定义名(getFieldGroupName)
@@ -580,12 +575,6 @@ export function buildHeroSkillTierLines(heroUuid: number, skillUuid: number, slo
function collectFieldGroupTierLines(hero: heroInfo): HeroSkillTierLine[] { function collectFieldGroupTierLines(hero: heroInfo): HeroSkillTierLine[] {
const tiers = [...(hero.field ?? [])].sort((a, b) => a.lv - b.lv); const tiers = [...(hero.field ?? [])].sort((a, b) => a.lv - b.lv);
if (tiers.length === 0) return []; if (tiers.length === 0) return [];
// 组内词条数 >1 时每行带词条名区分
const uuidSet = new Set<number>();
for (const t of tiers) {
for (const u of t.uuids) uuidSet.add(u.uuid);
}
const multi = uuidSet.size > 1;
const lines: HeroSkillTierLine[] = []; const lines: HeroSkillTierLine[] = [];
let prev: FieldEntry[] = []; let prev: FieldEntry[] = [];
@@ -595,14 +584,13 @@ function collectFieldGroupTierLines(hero: heroInfo): HeroSkillTierLine[] {
const fs = FieldSkillSet[entry.uuid]; const fs = FieldSkillSet[entry.uuid];
const descCfg = fs ? FieldDescSet[fs.type] : undefined; const descCfg = fs ? FieldDescSet[fs.type] : undefined;
if (!fs || !descCfg) continue; if (!fs || !descCfg) continue;
const head = multi ? `${entry.name ?? fs.name}: ` : "";
const before = prev.find(p => p.uuid === entry.uuid); const before = prev.find(p => p.uuid === entry.uuid);
if (!before) { if (!before) {
// 新词条:完整效果(动词 + 数值高亮) // 新词条:完整效果(动词 + 数值高亮)
parts.push(`${head}${descCfg.verb}${buildFieldValueRich(entry.uuid, entry.value)}`); parts.push(`${descCfg.verb}${buildFieldValueRich(entry.uuid, entry.value)}`);
} else if (before.value !== entry.value) { } else if (before.value !== entry.value) {
// 已有词条:数值由旧值提升至新值 // 已有词条:数值由旧值提升至新值
parts.push(`${head}${descCfg.verb}${buildFieldValueRich(entry.uuid, before.value)}提升至${buildFieldValueRich(entry.uuid, entry.value)}`); parts.push(`${descCfg.verb}${buildFieldValueRich(entry.uuid, before.value)}提升至${buildFieldValueRich(entry.uuid, entry.value)}`);
} }
} }
lines.push({ sLv: i + 1, heroLv: e.lv, text: e.desc ?? parts.join("\n") }); lines.push({ sLv: i + 1, heroLv: e.lv, text: e.desc ?? parts.join("\n") });
@@ -638,7 +626,7 @@ function mergeTierLinesByHeroLv(groups: HeroSkillTierLine[][]): HeroSkillTierLin
* *
* 每个触发槽位(atking/dead/fstart/atked/call/field)整组视为一个技能: * 每个触发槽位(atking/dead/fstart/atked/call/field)整组视为一个技能:
* 组内各 s_uuid 分别生成分档行后按解锁英雄等级阈值合并(同阈值文本换行拼接), * 组内各 s_uuid 分别生成分档行后按解锁英雄等级阈值合并(同阈值文本换行拼接),
* 组内多个技能时每行带各自技能名区分;驻场光环按词条维度合并。 * 说明内只保留组名与效果文本,不再显示组内子技能名;驻场光环按词条维度合并。
* 每档附带解锁英雄等级,调用方对比 smc.getHeroOuterLv 判定激活状态。 * 每档附带解锁英雄等级,调用方对比 smc.getHeroOuterLv 判定激活状态。
* *
* @param heroUuid 英雄 uuid(HeroInfo key) * @param heroUuid 英雄 uuid(HeroInfo key)
@@ -652,20 +640,11 @@ export function buildHeroGroupTierLines(heroUuid: number, slot: SkillTriggerType
const grouped = hero[slot] as TriggerGrouped | undefined; const grouped = hero[slot] as TriggerGrouped | undefined;
if (!grouped) return []; if (!grouped) return [];
const keys = Object.keys(grouped).map(Number);
const lineGroups: HeroSkillTierLine[][] = []; const lineGroups: HeroSkillTierLine[][] = [];
for (const sUuid of keys) { for (const sUuid of Object.keys(grouped).map(Number)) {
const hit = collectTriggerTiers(hero, slot, sUuid); const hit = collectTriggerTiers(hero, slot, sUuid);
if (!hit) continue; if (!hit) continue;
const lines = buildTierLines(hit.tiers, hit.label); lineGroups.push(buildTierLines(hit.tiers, hit.label));
// 组内多个技能时每行带各自技能名区分
if (keys.length > 1) {
const name = getGroupedTriggerName(grouped, sUuid);
for (const line of lines) {
line.text = `${skillNameRich(name)}${line.text}`;
}
}
lineGroups.push(lines);
} }
return mergeTierLinesByHeroLv(lineGroups); return mergeTierLinesByHeroLv(lineGroups);
} }

View File

@@ -533,7 +533,6 @@ export const FieldSkillSet: Record<number, FieldSkillConfig> = {
// 风怒机制已停用: 7008 风怒光环已移除 // 风怒机制已停用: 7008 风怒光环已移除
// 7008: { uuid: 7008, name: "风怒光环", icon: "Stat_CriticalComboChance", type: FieldSkillType.HeroWindFury, info: "英雄风怒概率提升" }, // 7008: { uuid: 7008, name: "风怒光环", icon: "Stat_CriticalComboChance", type: FieldSkillType.HeroWindFury, info: "英雄风怒概率提升" },
7009: { uuid: 7009, name: "穿刺光环", icon: "Stat_Tripleshot", type: FieldSkillType.HeroPuncture, info: "英雄穿刺概率提升" }, 7009: { uuid: 7009, name: "穿刺光环", icon: "Stat_Tripleshot", type: FieldSkillType.HeroPuncture, info: "英雄穿刺概率提升" },
7014: { uuid: 7014, name: "召唤强化", icon: "Stat_UnitSummonIncrease_02", type: FieldSkillType.SummonCount, info: "召唤触发技能次数提升" }, 7014: { uuid: 7014, name: "召唤强化", icon: "Stat_UnitSummonIncrease_02", type: FieldSkillType.SummonCount, info: "召唤触发技能次数提升" },
7015: { uuid: 7015, name: "死亡强化", icon: "Stat_PoisonChanceIncrease", type: FieldSkillType.DeadCount, info: "死亡触发技能次数提升" }, 7015: { uuid: 7015, name: "死亡强化", icon: "Stat_PoisonChanceIncrease", type: FieldSkillType.DeadCount, info: "死亡触发技能次数提升" },
7016: { uuid: 7016, name: "开场强化", icon: "Stat_AttackRangeIncrease_01", type: FieldSkillType.StartCount, info: "战斗开始触发技能次数提升" }, 7016: { uuid: 7016, name: "开场强化", icon: "Stat_AttackRangeIncrease_01", type: FieldSkillType.StartCount, info: "战斗开始触发技能次数提升" },

View File

@@ -487,23 +487,21 @@ export const HeroInfo: Record<number, heroInfo> = {
5001: { 5001: {
uuid: 5001, name: "叠甲骑士", path: "hk1", fac: FacSet.HERO, rarity: 1, lv: 1, type: HType.Melee, grow_type: HGrowType.Tank, role: HRole.Tank, hp: HERO_ROLE_BASE[HRole.Tank].hp + 20, ap: HERO_ROLE_BASE[HRole.Tank].ap, def: HERO_ROLE_BASE[HRole.Tank].def + 10, uuid: 5001, name: "叠甲骑士", path: "hk1", fac: FacSet.HERO, rarity: 1, lv: 1, type: HType.Melee, grow_type: HGrowType.Tank, role: HRole.Tank, hp: HERO_ROLE_BASE[HRole.Tank].hp + 20, ap: HERO_ROLE_BASE[HRole.Tank].ap, def: HERO_ROLE_BASE[HRole.Tank].def + 10,
skills: { skills: {
6004: { 6004: { uuid: 6004, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0, overrides: {"ap":100}, desc: "挥剑对{target}造成攻击力{ap}%伤害",
uuid: 6004, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0, overrides: { "ap": 100 }, desc: "挥剑对{target}造成攻击力{ap}%伤害",
lv_entries: [ lv_entries: [
{ lv: 2, s_lv: SkillLv.Lv2, overrides: { "ap": 120 } }, { lv: 2, s_lv: SkillLv.Lv2, overrides: {"ap":120} },
], ],
}, },
6301: { 6301: { uuid: 6301, name: "魔法盾", lv: 1, cd: 8, ccd: 0, overrides: {"ap":30,"summon_count":1}, desc: "{target}获得生命最大值{ap}%的护盾",
uuid: 6301, name: "魔法盾", lv: 1, cd: 6, ccd: 0, overrides: { "ap": 30, "summon_count": 1 }, desc: "{target}获得生命最大值{ap}%的护盾",
lv_entries: [ lv_entries: [
{ lv: 8, s_lv: SkillLv.Lv2, overrides: { "ap": 60, "summon_count": 1 } }, { lv: 8, s_lv: SkillLv.Lv2, overrides: {"ap":60,"summon_count":1} },
{ lv: 16, s_lv: SkillLv.Lv3, overrides: { "ap": 120, "summon_count": 2 } }, { lv: 16, s_lv: SkillLv.Lv3, overrides: {"ap":120,"summon_count":2} },
], ],
}, },
}, },
atked: { atked: {
6301: [ 6301: [
{ lv: 4, s_lv: SkillLv.Lv1, name: "全体圣盾", t_num: 3, overrides: { "TGroup": null, "ap": 10, "summon_count": 1 }, desc: "全队获得本英雄生命最大值{ap}%的护盾" }, { lv: 4, s_lv: SkillLv.Lv1, name: "全体圣盾", t_num: 3, overrides: {"TGroup":null,"ap":10,"summon_count":1}, desc: "全队获得本英雄生命最大值{ap}%的护盾" },
], ],
}, },
info: "", info: "",
@@ -512,23 +510,21 @@ export const HeroInfo: Record<number, heroInfo> = {
5002: { 5002: {
uuid: 5002, name: "易伤剑仙", path: "hk3", fac: FacSet.HERO, rarity: 1, lv: 1, type: HType.Melee, grow_type: HGrowType.Warrior, role: HRole.Warrior, hp: HERO_ROLE_BASE[HRole.Warrior].hp + 5, ap: HERO_ROLE_BASE[HRole.Warrior].ap + 20, def: HERO_ROLE_BASE[HRole.Warrior].def + 5, uuid: 5002, name: "易伤剑仙", path: "hk3", fac: FacSet.HERO, rarity: 1, lv: 1, type: HType.Melee, grow_type: HGrowType.Warrior, role: HRole.Warrior, hp: HERO_ROLE_BASE[HRole.Warrior].hp + 5, ap: HERO_ROLE_BASE[HRole.Warrior].ap + 20, def: HERO_ROLE_BASE[HRole.Warrior].def + 5,
skills: { skills: {
6004: { 6004: { uuid: 6004, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0, overrides: {"ap":100}, desc: "对{target}造成攻击力{ap}%伤害",
uuid: 6004, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0, overrides: { "ap": 100 }, desc: "挥拳对{target}造成攻击力{ap}%伤害",
lv_entries: [ lv_entries: [
{ lv: 2, s_lv: SkillLv.Lv2, overrides: { "ap": 120 } }, { lv: 2, s_lv: SkillLv.Lv2, overrides: {"ap":120} },
], ],
}, },
6101: { 6101: { uuid: 6101, name: "气斩", lv: 1, cd: 8, ccd: 0, overrides: {"ap":150,"timed_buff_id":7002,"summon_count":1}, desc: "斩出气刃,对{target}造成攻击力{ap}%伤害,并使目标易伤(受到伤害加深,持续{dur}秒)",
uuid: 6101, name: "气斩", lv: 1, cd: 8, ccd: 0, overrides: { "ap": 150, "timed_buff_id": 7002, "summon_count": 1 }, desc: "斩出气刃,对{target}造成攻击力{ap}%伤害,并使目标易伤(受到伤害加深,持续{dur}秒)",
lv_entries: [ lv_entries: [
{ lv: 8, s_lv: SkillLv.Lv2, overrides: { "buff_value": 20, "summon_count": 1 } }, { lv: 8, s_lv: SkillLv.Lv2, overrides: {"buff_value":20,"summon_count":1} },
{ lv: 16, s_lv: SkillLv.Lv3, overrides: { "ap": 180, "bck": 60, "buff_value": 40, "summon_count": 2 }, desc: "斩出气刃,对{target}造成攻击力{ap}%伤害,击退{bck},并使目标易伤(持续{dur}秒)" }, { lv: 16, s_lv: SkillLv.Lv3, overrides: {"ap":180,"bck":60,"buff_value":40,"summon_count":2}, desc: "斩出气刃,对{target}造成攻击力{ap}%伤害,击退{bck},并使目标易伤(持续{dur}秒)" },
], ],
}, },
}, },
atking: { atking: {
6004: [ 6004: [
{ lv: 4, s_lv: SkillLv.Lv1, name: "奋力一击", t_num: 3, overrides: { "ap": 300 }, desc: "每三次攻击后立即打击{target},造成攻击力{ap}%伤害" }, { lv: 4, s_lv: SkillLv.Lv1, name: "奋力一击", t_num: 3, overrides: {"ap":300}, desc: "额外打击{target},造成攻击力{ap}%伤害" },
], ],
}, },
info: "", info: "",
@@ -537,17 +533,15 @@ export const HeroInfo: Record<number, heroInfo> = {
5003: { 5003: {
uuid: 5003, name: "眩晕暴击哥", path: "hk5", fac: FacSet.HERO, rarity: 1, lv: 1, type: HType.Melee, grow_type: HGrowType.Warrior, role: HRole.Warrior, hp: HERO_ROLE_BASE[HRole.Warrior].hp + 5, ap: HERO_ROLE_BASE[HRole.Warrior].ap + 20, def: HERO_ROLE_BASE[HRole.Warrior].def + 5, uuid: 5003, name: "眩晕暴击哥", path: "hk5", fac: FacSet.HERO, rarity: 1, lv: 1, type: HType.Melee, grow_type: HGrowType.Warrior, role: HRole.Warrior, hp: HERO_ROLE_BASE[HRole.Warrior].hp + 5, ap: HERO_ROLE_BASE[HRole.Warrior].ap + 20, def: HERO_ROLE_BASE[HRole.Warrior].def + 5,
skills: { skills: {
6004: { 6004: { uuid: 6004, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0, overrides: {"ap":100}, desc: "挥斧对{target}造成攻击力{ap}%伤害",
uuid: 6004, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0, overrides: { "ap": 100 }, desc: "挥斧对{target}造成攻击力{ap}%伤害",
lv_entries: [ lv_entries: [
{ lv: 2, s_lv: SkillLv.Lv2, overrides: { "stun": 10 }, desc: "挥斧对{target}造成攻击力{ap}%伤害,{stun}%概率击晕" }, { lv: 2, s_lv: SkillLv.Lv2, overrides: {"stun":10}, desc: "挥斧对{target}造成攻击力{ap}%伤害,{stun}%概率击晕" },
], ],
}, },
6104: { 6104: { uuid: 6104, name: "开山斧", lv: 1, cd: 8, ccd: 0, overrides: {"ap":300,"stun":100,"summon_count":1}, desc: "劈出开山斧,对{target}造成攻击力{ap}%伤害,必定击晕",
uuid: 6104, name: "开山斧", lv: 1, cd: 8, ccd: 0, overrides: { "ap": 300, "stun": 100, "summon_count": 1 }, desc: "劈出开山斧,对{target}造成攻击力{ap}%伤害,必定击晕",
lv_entries: [ lv_entries: [
{ lv: 8, s_lv: SkillLv.Lv2, overrides: { "ap": 450, "stun": 100, "summon_count": 1 } }, { lv: 8, s_lv: SkillLv.Lv2, overrides: {"ap":450,"stun":100,"summon_count":1} },
{ lv: 16, s_lv: SkillLv.Lv3, overrides: { "ap": 450, "stun": 100, "summon_count": 2 } }, { lv: 16, s_lv: SkillLv.Lv3, overrides: {"ap":450,"stun":100,"summon_count":2} },
], ],
}, },
}, },
@@ -560,17 +554,15 @@ export const HeroInfo: Record<number, heroInfo> = {
5004: { 5004: {
uuid: 5004, name: "刀刀暴击", path: "hc1", fac: FacSet.HERO, rarity: 1, lv: 1, type: HType.Mid, grow_type: HGrowType.Assassin, role: HRole.Assassin, hp: HERO_ROLE_BASE[HRole.Assassin].hp, ap: HERO_ROLE_BASE[HRole.Assassin].ap + 30, def: HERO_ROLE_BASE[HRole.Assassin].def, uuid: 5004, name: "刀刀暴击", path: "hc1", fac: FacSet.HERO, rarity: 1, lv: 1, type: HType.Mid, grow_type: HGrowType.Assassin, role: HRole.Assassin, hp: HERO_ROLE_BASE[HRole.Assassin].hp, ap: HERO_ROLE_BASE[HRole.Assassin].ap + 30, def: HERO_ROLE_BASE[HRole.Assassin].def,
skills: { skills: {
6002: { 6002: { uuid: 6002, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Fast].cd, ccd: 0, overrides: {"ap":100}, desc: "挥刀对{target}造成攻击力{ap}%伤害",
uuid: 6002, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Fast].cd, ccd: 0, overrides: { "ap": 100 }, desc: "挥刀对{target}造成攻击力{ap}%伤害",
lv_entries: [ lv_entries: [
{ lv: 2, s_lv: SkillLv.Lv2, overrides: { "crt": 10 }, desc: "挥刀对{target}造成攻击力{ap}%伤害,{crt}%概率暴击" }, { lv: 2, s_lv: SkillLv.Lv2, overrides: {"crt":10}, desc: "挥刀对{target}造成攻击力{ap}%伤害,{crt}%概率暴击" },
], ],
}, },
6100: { 6100: { uuid: 6100, name: "光闪", lv: 1, cd: 8, ccd: 0, overrides: {"ap":150,"summon_count":1}, desc: "斩出光闪,对{target}造成攻击力{ap}%伤害",
uuid: 6100, name: "光闪", lv: 1, cd: 8, ccd: 0, overrides: { "ap": 150, "summon_count": 1 }, desc: "斩出光闪,对{target}造成攻击力{ap}%伤害",
lv_entries: [ lv_entries: [
{ lv: 8, s_lv: SkillLv.Lv2, overrides: { "ap": 250, "summon_count": 1 } }, { lv: 8, s_lv: SkillLv.Lv2, overrides: {"ap":250,"summon_count":1} },
{ lv: 16, s_lv: SkillLv.Lv3, overrides: { "ap": 350, "summon_count": 2 } }, { lv: 16, s_lv: SkillLv.Lv3, overrides: {"ap":350,"summon_count":2} },
], ],
}, },
}, },
@@ -583,17 +575,15 @@ export const HeroInfo: Record<number, heroInfo> = {
5005: { 5005: {
uuid: 5005, name: "出血贼", path: "hc2", fac: FacSet.HERO, rarity: 1, lv: 1, type: HType.Mid, grow_type: HGrowType.Assassin, role: HRole.Assassin, hp: HERO_ROLE_BASE[HRole.Assassin].hp, ap: HERO_ROLE_BASE[HRole.Assassin].ap + 30, def: HERO_ROLE_BASE[HRole.Assassin].def, uuid: 5005, name: "出血贼", path: "hc2", fac: FacSet.HERO, rarity: 1, lv: 1, type: HType.Mid, grow_type: HGrowType.Assassin, role: HRole.Assassin, hp: HERO_ROLE_BASE[HRole.Assassin].hp, ap: HERO_ROLE_BASE[HRole.Assassin].ap + 30, def: HERO_ROLE_BASE[HRole.Assassin].def,
skills: { skills: {
6002: { 6002: { uuid: 6002, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Fast].cd, ccd: 0, overrides: {"ap":100}, desc: "挥刀对{target}造成攻击力{ap}%伤害",
uuid: 6002, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Fast].cd, ccd: 0, overrides: { "ap": 100 }, desc: "挥刀对{target}造成攻击力{ap}%伤害",
lv_entries: [ lv_entries: [
{ lv: 2, s_lv: SkillLv.Lv2, overrides: { "timed_buff_id": 7007, "buff_value": 30, "buff_chance": 30 }, desc: "挥刀对{target}造成攻击力{ap}%伤害,{buff_chance}%概率使目标出血(每0.5秒受到{buff_value}点伤害,持续{dur}秒)" }, { lv: 2, s_lv: SkillLv.Lv2, overrides: {"timed_buff_id":7007,"buff_value":30,"buff_chance":30}, desc: "挥刀对{target}造成攻击力{ap}%伤害,{buff_chance}%概率使目标出血(每0.5秒受到{buff_value}点伤害,持续{dur}秒)" },
], ],
}, },
6103: { 6103: { uuid: 6103, name: "闪电斩", lv: 1, cd: 8, ccd: 0, overrides: {"ap":150,"summon_count":1}, desc: "召唤落雷斩击{target},造成攻击力{ap}%伤害",
uuid: 6103, name: "闪电斩", lv: 1, cd: 8, ccd: 0, overrides: { "ap": 150, "summon_count": 1 }, desc: "召唤落雷斩击{target},造成攻击力{ap}%伤害",
lv_entries: [ lv_entries: [
{ lv: 8, s_lv: SkillLv.Lv2, overrides: { "ap": 250, "timed_buff_id": 7007, "summon_count": 1 }, desc: "召唤落雷斩击{target},造成攻击力{ap}%伤害,并使目标出血(每0.5秒受到{buff_value}点伤害,持续{dur}秒)" }, { lv: 8, s_lv: SkillLv.Lv2, overrides: {"ap":250,"timed_buff_id":7007,"summon_count":1}, desc: "召唤落雷斩击{target},造成攻击力{ap}%伤害,并使目标出血(每0.5秒受到{buff_value}点伤害,持续{dur}秒)" },
{ lv: 16, s_lv: SkillLv.Lv3, overrides: { "ap": 350, "para": 50, "timed_buff_id": 7007, "buff_value": 60, "summon_count": 2 }, desc: "召唤落雷斩击{target},造成攻击力{ap}%伤害,{para}%概率麻痹,并使目标出血(每0.5秒受到{buff_value}点伤害,持续{dur}秒)" }, { lv: 16, s_lv: SkillLv.Lv3, overrides: {"ap":350,"para":50,"timed_buff_id":7007,"buff_value":60,"summon_count":2}, desc: "召唤落雷斩击{target},造成攻击力{ap}%伤害,{para}%概率麻痹,并使目标出血(每0.5秒受到{buff_value}点伤害,持续{dur}秒)" },
], ],
}, },
}, },
@@ -606,17 +596,15 @@ export const HeroInfo: Record<number, heroInfo> = {
5006: { 5006: {
uuid: 5006, name: "冻箭哥", path: "ha1", fac: FacSet.HERO, rarity: 1, lv: 1, type: HType.Long, grow_type: HGrowType.Archer, role: HRole.Archer, hp: HERO_ROLE_BASE[HRole.Archer].hp, ap: HERO_ROLE_BASE[HRole.Archer].ap + 30, def: HERO_ROLE_BASE[HRole.Archer].def, uuid: 5006, name: "冻箭哥", path: "ha1", fac: FacSet.HERO, rarity: 1, lv: 1, type: HType.Long, grow_type: HGrowType.Archer, role: HRole.Archer, hp: HERO_ROLE_BASE[HRole.Archer].hp, ap: HERO_ROLE_BASE[HRole.Archer].ap + 30, def: HERO_ROLE_BASE[HRole.Archer].def,
skills: { skills: {
6006: { 6006: { uuid: 6006, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Normal].cd, ccd: 0, overrides: {"ap":100}, desc: "射出箭矢,对{target}造成攻击力{ap}%伤害",
uuid: 6006, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Normal].cd, ccd: 0, overrides: { "ap": 100 }, desc: "射出箭矢,对{target}造成攻击力{ap}%伤害",
lv_entries: [ lv_entries: [
{ lv: 2, s_lv: SkillLv.Lv2, overrides: { "bck": 10 }, desc: "射出箭矢,对{target}造成攻击力{ap}%伤害,击退{bck}" }, { lv: 2, s_lv: SkillLv.Lv2, overrides: {"bck":10}, desc: "射出箭矢,对{target}造成攻击力{ap}%伤害,击退{bck}" },
], ],
}, },
6150: { 6150: { uuid: 6150, name: "万箭齐发·冰", lv: 1, cd: 8, ccd: 0, overrides: {"ap":150,"frz":30,"summon_count":1}, desc: "万箭齐发,对{target}造成攻击力{ap}%伤害,{frz}%概率冰冻",
uuid: 6150, name: "万箭齐发·冰", lv: 1, cd: 8, ccd: 0, overrides: { "ap": 150, "frz": 30, "summon_count": 1 }, desc: "万箭齐发,对{target}造成攻击力{ap}%伤害,{frz}%概率冰冻",
lv_entries: [ lv_entries: [
{ lv: 8, s_lv: SkillLv.Lv2, overrides: { "ap": 200, "frz": 50, "summon_count": 1 } }, { lv: 8, s_lv: SkillLv.Lv2, overrides: {"ap":200,"frz":50,"summon_count":1} },
{ lv: 16, s_lv: SkillLv.Lv3, overrides: { "ap": 250, "frz": 70, "summon_count": 2 } }, { lv: 16, s_lv: SkillLv.Lv3, overrides: {"ap":250,"frz":70,"summon_count":2} },
], ],
}, },
}, },
@@ -629,17 +617,15 @@ export const HeroInfo: Record<number, heroInfo> = {
5007: { 5007: {
uuid: 5007, name: "击退火女", path: "hm1", fac: FacSet.HERO, rarity: 1, lv: 1, type: HType.Long, grow_type: HGrowType.Mage, role: HRole.Mage, hp: HERO_ROLE_BASE[HRole.Mage].hp - 5, ap: HERO_ROLE_BASE[HRole.Mage].ap + 10, def: HERO_ROLE_BASE[HRole.Mage].def, uuid: 5007, name: "击退火女", path: "hm1", fac: FacSet.HERO, rarity: 1, lv: 1, type: HType.Long, grow_type: HGrowType.Mage, role: HRole.Mage, hp: HERO_ROLE_BASE[HRole.Mage].hp - 5, ap: HERO_ROLE_BASE[HRole.Mage].ap + 10, def: HERO_ROLE_BASE[HRole.Mage].def,
skills: { skills: {
6010: { 6010: { uuid: 6010, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0, overrides: {"ap":100,"bck":30}, desc: "掷出紫魔球,对{target}造成攻击力{ap}%伤害,击退{bck}",
uuid: 6010, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0, overrides: { "ap": 100, "bck": 30 }, desc: "掷出紫魔球,对{target}造成攻击力{ap}%伤害,击退{bck}",
lv_entries: [ lv_entries: [
{ lv: 2, s_lv: SkillLv.Lv2, overrides: { "bck": 40 } }, { lv: 2, s_lv: SkillLv.Lv2, overrides: {"bck":40} },
], ],
}, },
6200: { 6200: { uuid: 6200, name: "火焰喷射", lv: 1, cd: 8, ccd: 0, overrides: {"ap":250,"bck":100,"summon_count":1}, desc: "喷出烈焰风暴,对{target}造成攻击力{ap}%伤害,击退{bck}",
uuid: 6200, name: "火焰喷射", lv: 1, cd: 8, ccd: 0, overrides: { "ap": 250, "bck": 100, "summon_count": 1 }, desc: "喷出烈焰风暴,对{target}造成攻击力{ap}%伤害,击退{bck}",
lv_entries: [ lv_entries: [
{ lv: 8, s_lv: SkillLv.Lv2, overrides: { "ap": 350, "bck": 100, "summon_count": 1 } }, { lv: 8, s_lv: SkillLv.Lv2, overrides: {"ap":350,"bck":100,"summon_count":1} },
{ lv: 16, s_lv: SkillLv.Lv3, overrides: { "ap": 450, "bck": 100, "summon_count": 2 } }, { lv: 16, s_lv: SkillLv.Lv3, overrides: {"ap":450,"bck":100,"summon_count":2} },
], ],
}, },
}, },
@@ -652,28 +638,26 @@ export const HeroInfo: Record<number, heroInfo> = {
5008: { 5008: {
uuid: 5008, name: "团疗奶爸", path: "hh1", fac: FacSet.HERO, rarity: 1, lv: 1, type: HType.Long, grow_type: HGrowType.Support, role: HRole.Support, hp: HERO_ROLE_BASE[HRole.Support].hp + 10, ap: HERO_ROLE_BASE[HRole.Support].ap + 20, def: HERO_ROLE_BASE[HRole.Support].def, uuid: 5008, name: "团疗奶爸", path: "hh1", fac: FacSet.HERO, rarity: 1, lv: 1, type: HType.Long, grow_type: HGrowType.Support, role: HRole.Support, hp: HERO_ROLE_BASE[HRole.Support].hp + 10, ap: HERO_ROLE_BASE[HRole.Support].ap + 20, def: HERO_ROLE_BASE[HRole.Support].def,
skills: { skills: {
6011: { 6011: { uuid: 6011, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Normal].cd, ccd: 0, overrides: {"ap":100}, desc: "挥杖对{target}造成攻击力{ap}%伤害",
uuid: 6011, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Normal].cd, ccd: 0, overrides: { "ap": 100 }, desc: "挥杖对{target}造成攻击力{ap}%伤害",
lv_entries: [ lv_entries: [
{ lv: 2, s_lv: SkillLv.Lv2, overrides: { "bck": 10 }, desc: "挥杖对{target}造成攻击力{ap}%伤害,击退{bck}" }, { lv: 2, s_lv: SkillLv.Lv2, overrides: {"bck":10}, desc: "挥杖对{target}造成攻击力{ap}%伤害,击退{bck}" },
], ],
}, },
6302: { 6302: { uuid: 6302, name: "治疗", lv: 1, cd: 8, ccd: 0, overrides: {"ap":300,"summon_count":1}, desc: "为{target}回复攻击力{ap}%生命",
uuid: 6302, name: "治疗", lv: 1, cd: 8, ccd: 0, overrides: { "ap": 300, "summon_count": 1 }, desc: "为{target}回复攻击力{ap}%生命",
lv_entries: [ lv_entries: [
{ lv: 8, s_lv: SkillLv.Lv2, overrides: { "ap": 400, "summon_count": 1 } }, { lv: 8, s_lv: SkillLv.Lv2, overrides: {"ap":400,"summon_count":1} },
{ lv: 16, s_lv: SkillLv.Lv3, overrides: { "ap": 450, "summon_count": 2 } }, { lv: 16, s_lv: SkillLv.Lv3, overrides: {"ap":450,"summon_count":2} },
], ],
}, },
}, },
atking: { atking: {
6301: [ 6301: [
{ lv: 4, s_lv: SkillLv.Lv1, name: "圣愈之盾", t_num: 3, overrides: { "ap": 30, "summon_count": 1 }, desc: "{target}获得生命最大值{ap}%的护盾" }, { lv: 4, s_lv: SkillLv.Lv1, name: "圣愈之盾", t_num: 3, overrides: {"ap":30,"summon_count":1}, desc: "{target}获得生命最大值{ap}%的护盾" },
], ],
}, },
info: "", info: "",
}, },
// @hero-setup:heroes-end // @hero-setup:heroes-end
/* /*
*=============怪物配置列表================ *=============怪物配置列表================

View File

@@ -120,7 +120,7 @@
"overrides": { "overrides": {
"ap": 100 "ap": 100
}, },
"desc": "挥拳对{target}造成攻击力{ap}%伤害", "desc": "对{target}造成攻击力{ap}%伤害",
"lv_entries": [ "lv_entries": [
{ {
"lv": 2, "lv": 2,
@@ -177,7 +177,7 @@
"overrides": { "overrides": {
"ap": 300 "ap": 300
}, },
"desc": "每三次攻击后立即打击{target},造成攻击力{ap}%伤害" "desc": "额外打击{target},造成攻击力{ap}%伤害"
} }
] ]
}, },