From 16d44e3f5e727990c0242422ef977b5ff974cf2c Mon Sep 17 00:00:00 2001 From: pan Date: Fri, 4 Sep 2026 14:50:51 +0800 Subject: [PATCH] =?UTF-8?q?feat(skill):=20=E4=BC=98=E5=8C=96=E6=8A=80?= =?UTF-8?q?=E8=83=BD=E6=8F=8F=E8=BF=B0=E5=B1=95=E7=A4=BA=E9=80=BB=E8=BE=91?= =?UTF-8?q?=EF=BC=8C=E4=BF=AE=E5=A4=8D=E9=9D=9E=E4=BC=A4=E5=AE=B3=E6=8A=80?= =?UTF-8?q?=E8=83=BD=E6=A1=A3=E4=BD=8D=E6=98=BE=E7=A4=BA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 新增构建触发语境标签函数,统一处理循环触发技能的次数展示 2. 新增技能档位显式配置描述字段,支持直接渲染自定义描述模板 3. 重构技能展示逻辑,优先使用显式配置的描述,避免自动diff语义错位 4. 更新英雄技能配置,补全部分档位的描述文本,修正技能名称和描述文案 5. 完善类型注释和文档说明,规范技能描述配置规则 --- assets/script/game/common/HeroSkillText.ts | 36 +++++-- assets/script/game/common/config/heroSet.ts | 111 ++++++++++++-------- put/server/data/heroes.json | 4 +- 3 files changed, 94 insertions(+), 57 deletions(-) diff --git a/assets/script/game/common/HeroSkillText.ts b/assets/script/game/common/HeroSkillText.ts index 8ceccfb7..406a47a9 100644 --- a/assets/script/game/common/HeroSkillText.ts +++ b/assets/script/game/common/HeroSkillText.ts @@ -74,6 +74,20 @@ const TRIGGER_KEYS: SkillTriggerType[] = [ /** 占位符模式:{target}/{dur}/{buff_value}/{技能字段名} */ const PLACEHOLDER_PATTERN = /\{(\w+)\}/g; +/** + * 构建触发语境短语(整组/单技能行首共用)。 + * atking/atked 为周期循环触发(运行时按次数取模判定),拼为"每攻击N次"/"每受击N次" + * 表达循环语义(N=1 时退化为"每次攻击"/"每次受击");其余类型直接用触发名(召唤/死亡后/回合开始)。 + */ +function buildTriggerLabel(type: SkillTriggerType, tNum: number): string { + if (type === SkillTriggerType.Atking || type === SkillTriggerType.Atked) { + return tNum <= 1 + ? `每次${SkillTriggerName[type]}` + : `每${SkillTriggerName[type]}${valueRich(tNum)}次`; + } + return SkillTriggerName[type]; +} + /** * 解析目标描述文本(与战斗 SCastSystem 目标选取语义严格一致) */ @@ -209,10 +223,8 @@ export function buildHeroSkillDesc(heroUuid: number, showName: boolean = true, s } tmpl = tmpl ?? entries[0]?.desc; const text = tmpl ? renderDesc(tmpl, skill) : fallbackDesc(skill); - // 进击/受击带触发次数,拼为"攻击3次";其余用触发类型简称 - const trig = type === SkillTriggerType.Atking || type === SkillTriggerType.Atked - ? `${SkillTriggerName[type]}${valueRich(item.t_num)}次` - : SkillTriggerName[type]; + // 触发语境:"每攻击N次"循环语义(buildTriggerLabel),逗号衔接效果文本 + const trig = buildTriggerLabel(type, item.t_num); parts.push(`${trig}, ${text}`); } // dead 组内的复活效果(revive_hp / revive_count)并入同一行 @@ -261,6 +273,8 @@ interface ISkillTierInfo { skill: SkillConfig; /** 该档描述模板(继承链解析后) */ desc?: string; + /** 该档显式配置的描述模板(未走继承链):配置后提升档直接展示该模板,优先于自动 diff */ + ownDesc?: string; /** 触发技能档位的触发次数(普攻无) */ tNum: number; } @@ -341,6 +355,7 @@ function collectSkillTiers(hSkill: HSkillInfo): ISkillTierInfo[] { heroLv: lv1?.lv ?? 1, skill: mergeSkillParams(base, hSkill.overrides), desc: lv1?.desc ?? hSkill.desc, + ownDesc: lv1?.desc ?? hSkill.desc, tNum: 0, }); // slv2+ = lv_entries 各档(与基础 overrides 浅合并,档位字段优先) @@ -351,6 +366,7 @@ function collectSkillTiers(hSkill: HSkillInfo): ISkillTierInfo[] { heroLv: e.lv, skill: mergeSkillParams(mergeSkillParams(base, hSkill.overrides), e.overrides), desc: e.desc, + ownDesc: e.desc, tNum: 0, }); } @@ -477,16 +493,15 @@ function collectTriggerTiers(hero: heroInfo, type: SkillTriggerType, skillUuid: heroLv: e.lv, skill: mergeSkillParams(base, e.overrides), desc: e.desc ?? inherit, + ownDesc: e.desc, tNum: e.t_num, }; }); - const label = (type === SkillTriggerType.Atking || type === SkillTriggerType.Atked) - ? `${SkillTriggerName[type]}${valueRich(sorted[0].t_num)}次` - : SkillTriggerName[type]; + const label = buildTriggerLabel(type, sorted[0].t_num); return { tiers, label }; } -/** 档位 → 展示行:slv1 完整能力 + 数值;slv2+ 相对上一级的提升 */ +/** 档位 → 展示行:slv1 完整能力 + 数值;slv2+ 显式配置 desc 时直接渲染该模板,否则相对上一级的提升 */ function buildTierLines(tiers: ISkillTierInfo[], triggerLabel: string): HeroSkillTierLine[] { const lines: HeroSkillTierLine[] = []; for (let i = 0; i < tiers.length; i++) { @@ -495,8 +510,11 @@ function buildTierLines(tiers: ISkillTierInfo[], triggerLabel: string): HeroSkil // 技能 1 级:完整能力 + 数值 const text = t.desc ? renderDesc(t.desc, t.skill) : fallbackDesc(t.skill); lines.push({ sLv: t.sLv, heroLv: t.heroLv, text: triggerLabel ? `${triggerLabel}, ${text}` : text }); + } else if (t.ownDesc) { + // 提升档:该档显式配置了模板(如护盾/治疗等 diff 标签语义不达的技能),策划表述优先 + lines.push({ sLv: t.sLv, heroLv: t.heroLv, text: renderDesc(t.ownDesc, t.skill) }); } else { - // 技能 2 级起:相对上一级的提升 + // 提升档:未配置模板,给相对上一级的提升 const diff = buildTierDiff(tiers[i - 1], t); lines.push({ sLv: t.sLv, heroLv: t.heroLv, text: diff.length > 0 ? diff.join(",") : "无变化" }); } diff --git a/assets/script/game/common/config/heroSet.ts b/assets/script/game/common/config/heroSet.ts index 3e13d087..9600b7ba 100644 --- a/assets/script/game/common/config/heroSet.ts +++ b/assets/script/game/common/config/heroSet.ts @@ -417,7 +417,9 @@ export interface LvSkillEntry { lv: number; // 达到该英雄等级时此档生效 s_lv?: SkillLv; // 此档对应的技能等级(标注用) overrides: SkillOverrides; // 此档注入的效果 - /** 此档描述模板:缺省继承上一档模板;新增机制的档位(如附加中毒)需单独配置 */ + /** 此档描述模板:缺省继承上一档模板;新增机制的档位(如附加中毒)需单独配置。 + * 显式配置后弹窗提升档(slv2+)直接展示该模板渲染结果,优先于自动 diff + * (护盾/治疗等 ap 含义非伤害的技能必须配置,避免 diff 标签语义错位) */ desc?: string; } @@ -431,7 +433,8 @@ export interface LvTriggerEntry { name?: string; // 该 s_uuid 触发技能组的对外展示名(写在第 1 档,作为组名) t_num: number; overrides?: SkillOverrides; - /** 此档描述模板:缺省回退该组第 1 档 desc;由 HeroSkillText 渲染合并后实时数值 */ + /** 此档描述模板:缺省回退该组第 1 档 desc;由 HeroSkillText 渲染合并后实时数值。 + * 显式配置后弹窗提升档(slv2+)直接展示该模板渲染结果,优先于自动 diff */ desc?: string; } @@ -487,21 +490,23 @@ export const HeroInfo: Record = { 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, skills: { - 6004: { uuid: 6004, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0, overrides: {"ap":100}, desc: "挥剑对{target}造成攻击力{ap}%伤害", + 6004: { + uuid: 6004, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0, overrides: { "ap": 100 }, desc: "挥剑对{target}造成攻击力{ap}%伤害", lv_entries: [ - { lv: 2, s_lv: SkillLv.Lv2, overrides: {"ap":120} }, + { lv: 2, s_lv: SkillLv.Lv2, overrides: { "ap": 120 } }, ], }, - 6301: { uuid: 6301, name: "魔法盾", lv: 1, cd: 8, ccd: 0, overrides: {"ap":30,"summon_count":1}, desc: "{target}获得生命最大值{ap}%的护盾", + 6301: { + uuid: 6301, name: "魔法盾", lv: 1, cd: 8, ccd: 0, overrides: { "ap": 30, "summon_count": 1 }, desc: "{target}获得生命最大值{ap}%的护盾", lv_entries: [ - { 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: 8, s_lv: SkillLv.Lv2, overrides: { "ap": 60, "summon_count": 1 }, desc: "{target}获得生命最大值{ap}%的护盾" }, + { lv: 16, s_lv: SkillLv.Lv3, overrides: { "ap": 120, "summon_count": 1 }, desc: "{target}获得生命最大值{ap}%的护盾" }, ], }, }, atked: { 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: "", @@ -510,21 +515,23 @@ export const HeroInfo: Record = { 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, skills: { - 6004: { uuid: 6004, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0, overrides: {"ap":100}, desc: "对{target}造成攻击力{ap}%伤害", + 6004: { + uuid: 6004, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0, overrides: { "ap": 100 }, desc: "对{target}造成攻击力{ap}%伤害", lv_entries: [ - { lv: 2, s_lv: SkillLv.Lv2, overrides: {"ap":120} }, + { lv: 2, s_lv: SkillLv.Lv2, overrides: { "ap": 120 } }, ], }, - 6101: { uuid: 6101, name: "气斩", lv: 1, cd: 8, ccd: 0, overrides: {"ap":150,"timed_buff_id":7002,"summon_count":1}, desc: "斩出气刃,对{target}造成攻击力{ap}%伤害,并使目标易伤(受到伤害加深,持续{dur}秒)", + 6101: { + 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: 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: 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}秒)" }, ], }, }, atking: { 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: "", @@ -533,15 +540,17 @@ export const HeroInfo: Record = { 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, skills: { - 6004: { uuid: 6004, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0, overrides: {"ap":100}, desc: "挥斧对{target}造成攻击力{ap}%伤害", + 6004: { + uuid: 6004, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0, overrides: { "ap": 100 }, desc: "挥斧对{target}造成攻击力{ap}%伤害", 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: { uuid: 6104, name: "开山斧", lv: 1, cd: 8, ccd: 0, overrides: {"ap":300,"stun":100,"summon_count":1}, desc: "劈出开山斧,对{target}造成攻击力{ap}%伤害,必定击晕", + 6104: { + uuid: 6104, name: "开山斧", lv: 1, cd: 8, ccd: 0, overrides: { "ap": 300, "stun": 100, "summon_count": 1 }, desc: "劈出开山斧,对{target}造成攻击力{ap}%伤害,必定击晕", lv_entries: [ - { 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: 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 } }, ], }, }, @@ -554,15 +563,17 @@ export const HeroInfo: Record = { 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, skills: { - 6002: { uuid: 6002, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Fast].cd, ccd: 0, overrides: {"ap":100}, desc: "挥刀对{target}造成攻击力{ap}%伤害", + 6002: { + uuid: 6002, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Fast].cd, ccd: 0, overrides: { "ap": 100 }, desc: "挥刀对{target}造成攻击力{ap}%伤害", 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: { uuid: 6100, name: "光闪", lv: 1, cd: 8, ccd: 0, overrides: {"ap":150,"summon_count":1}, desc: "斩出光闪,对{target}造成攻击力{ap}%伤害", + 6100: { + uuid: 6100, name: "光闪", lv: 1, cd: 8, ccd: 0, overrides: { "ap": 150, "summon_count": 1 }, desc: "斩出光闪,对{target}造成攻击力{ap}%伤害", lv_entries: [ - { 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: 8, s_lv: SkillLv.Lv2, overrides: { "ap": 250, "summon_count": 1 } }, + { lv: 16, s_lv: SkillLv.Lv3, overrides: { "ap": 350, "summon_count": 2 } }, ], }, }, @@ -575,15 +586,17 @@ export const HeroInfo: Record = { 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, skills: { - 6002: { uuid: 6002, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Fast].cd, ccd: 0, overrides: {"ap":100}, desc: "挥刀对{target}造成攻击力{ap}%伤害", + 6002: { + uuid: 6002, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Fast].cd, ccd: 0, overrides: { "ap": 100 }, desc: "挥刀对{target}造成攻击力{ap}%伤害", 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: { uuid: 6103, name: "闪电斩", lv: 1, cd: 8, ccd: 0, overrides: {"ap":150,"summon_count":1}, desc: "召唤落雷斩击{target},造成攻击力{ap}%伤害", + 6103: { + uuid: 6103, name: "闪电斩", lv: 1, cd: 8, ccd: 0, overrides: { "ap": 150, "summon_count": 1 }, desc: "召唤落雷斩击{target},造成攻击力{ap}%伤害", 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: 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: 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}秒)" }, ], }, }, @@ -596,15 +609,17 @@ export const HeroInfo: Record = { 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, skills: { - 6006: { uuid: 6006, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Normal].cd, ccd: 0, overrides: {"ap":100}, desc: "射出箭矢,对{target}造成攻击力{ap}%伤害", + 6006: { + uuid: 6006, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Normal].cd, ccd: 0, overrides: { "ap": 100 }, desc: "射出箭矢,对{target}造成攻击力{ap}%伤害", 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: { uuid: 6150, name: "万箭齐发·冰", lv: 1, cd: 8, ccd: 0, overrides: {"ap":150,"frz":30,"summon_count":1}, desc: "万箭齐发,对{target}造成攻击力{ap}%伤害,{frz}%概率冰冻", + 6150: { + uuid: 6150, name: "万箭齐发·冰", lv: 1, cd: 8, ccd: 0, overrides: { "ap": 150, "frz": 30, "summon_count": 1 }, desc: "万箭齐发,对{target}造成攻击力{ap}%伤害,{frz}%概率冰冻", lv_entries: [ - { 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: 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 } }, ], }, }, @@ -617,15 +632,17 @@ export const HeroInfo: Record = { 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, skills: { - 6010: { uuid: 6010, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0, overrides: {"ap":100,"bck":30}, desc: "掷出紫魔球,对{target}造成攻击力{ap}%伤害,击退{bck}", + 6010: { + uuid: 6010, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0, overrides: { "ap": 100, "bck": 30 }, desc: "掷出紫魔球,对{target}造成攻击力{ap}%伤害,击退{bck}", lv_entries: [ - { lv: 2, s_lv: SkillLv.Lv2, overrides: {"bck":40} }, + { lv: 2, s_lv: SkillLv.Lv2, overrides: { "bck": 40 } }, ], }, - 6200: { uuid: 6200, name: "火焰喷射", lv: 1, cd: 8, ccd: 0, overrides: {"ap":250,"bck":100,"summon_count":1}, desc: "喷出烈焰风暴,对{target}造成攻击力{ap}%伤害,击退{bck}", + 6200: { + uuid: 6200, name: "火焰喷射", lv: 1, cd: 8, ccd: 0, overrides: { "ap": 250, "bck": 100, "summon_count": 1 }, desc: "喷出烈焰风暴,对{target}造成攻击力{ap}%伤害,击退{bck}", lv_entries: [ - { 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: 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 } }, ], }, }, @@ -638,26 +655,28 @@ export const HeroInfo: Record = { 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, skills: { - 6011: { uuid: 6011, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Normal].cd, ccd: 0, overrides: {"ap":100}, desc: "挥杖对{target}造成攻击力{ap}%伤害", + 6011: { + uuid: 6011, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Normal].cd, ccd: 0, overrides: { "ap": 100 }, desc: "挥杖对{target}造成攻击力{ap}%伤害", 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: { uuid: 6302, name: "治疗", lv: 1, cd: 8, ccd: 0, overrides: {"ap":300,"summon_count":1}, desc: "为{target}回复攻击力{ap}%生命", + 6302: { + uuid: 6302, name: "治疗", lv: 1, cd: 8, ccd: 0, overrides: { "ap": 300, "summon_count": 1 }, desc: "为{target}回复攻击力{ap}%生命", lv_entries: [ - { 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: 8, s_lv: SkillLv.Lv2, overrides: { "ap": 400, "summon_count": 1 } }, + { lv: 16, s_lv: SkillLv.Lv3, overrides: { "ap": 450, "summon_count": 2 } }, ], }, }, atking: { 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: "", }, -// @hero-setup:heroes-end + // @hero-setup:heroes-end /* *=============怪物配置列表================ diff --git a/put/server/data/heroes.json b/put/server/data/heroes.json index f4d510f4..4863f38b 100644 --- a/put/server/data/heroes.json +++ b/put/server/data/heroes.json @@ -172,12 +172,12 @@ { "lv": 4, "s_lv": 1, - "name": "奋力一击", + "name": "风暴打击", "t_num": 3, "overrides": { "ap": 300 }, - "desc": "额外打击{target},造成攻击力{ap}%伤害" + "desc": "立刻打击{target},造成攻击力{ap}%伤害" } ] },