From aa937ae62f08c33796f2d71b54b91968175aa53e Mon Sep 17 00:00:00 2001 From: pan Date: Fri, 24 Jul 2026 10:35:39 +0800 Subject: [PATCH] =?UTF-8?q?refactor(skill&buff):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E8=AE=A1=E6=97=B6buff=E9=85=8D=E7=BD=AE=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 移除冗余的7112/7113buff配置,统一复用7111基础配置 通过新增buff_duration参数实现持续时间和数值的灵活覆写 简化占卜师技能buff的多档成长配置逻辑 --- assets/script/game/common/config/BuffSet.ts | 14 +------------- assets/script/game/common/config/SkillSet.ts | 2 ++ assets/script/game/common/config/heroSet.ts | 6 +++--- assets/script/game/hero/SCastSystem.ts | 6 +++++- 4 files changed, 11 insertions(+), 17 deletions(-) diff --git a/assets/script/game/common/config/BuffSet.ts b/assets/script/game/common/config/BuffSet.ts index 30adb1fe..50f98eb7 100644 --- a/assets/script/game/common/config/BuffSet.ts +++ b/assets/script/game/common/config/BuffSet.ts @@ -74,25 +74,13 @@ export const BuffList: Record = { is_control: true, control_kind: 'stun', info: "击晕目标,无法行动", }, - // 占卜师战前攻击强化(限时版,三档成长:+30/5s → +60/7s → +90/10s) + // 占卜师战前攻击强化(基础档:+30/5s;高阶通过 buff_value/buff_duration 覆写成长) 7111: { id: 7111, name: "战前强攻", icon: "Stat_Attack_03", category: BuffCategory.Buff, duration: 5, max_stack: 0, modifiers: [{ attr: Attrs.ap, op: ModOp.Flat, value: 30 }], info: "攻击力 +30,持续 5 秒", }, - 7112: { - id: 7112, name: "战前强攻", icon: "Stat_Attack_03", - category: BuffCategory.Buff, duration: 7, max_stack: 0, - modifiers: [{ attr: Attrs.ap, op: ModOp.Flat, value: 60 }], - info: "攻击力 +60,持续 7 秒", - }, - 7113: { - id: 7113, name: "战前强攻", icon: "Stat_Attack_03", - category: BuffCategory.Buff, duration: 10, max_stack: 0, - modifiers: [{ attr: Attrs.ap, op: ModOp.Flat, value: 90 }], - info: "攻击力 +90,持续 10 秒", - }, // ==================== 玩家计时性强化(药水/技能用,默认 5s) ==================== // 计时性回血(HoT) diff --git a/assets/script/game/common/config/SkillSet.ts b/assets/script/game/common/config/SkillSet.ts index cc8b60d4..d8633512 100644 --- a/assets/script/game/common/config/SkillSet.ts +++ b/assets/script/game/common/config/SkillSet.ts @@ -156,6 +156,7 @@ export interface SkillConfig { buff_type?: Attrs, // Buff 类型 (单一职责) timed_buff_id?: number, // 计时性 buff 配置 id(指向 BuffList),存在时走 buffManager 而非永久 add_* buff_value?: number, // 覆写计时 buff 的修饰数值(modifiers.value / tick.damage_or_heal),由药水卡自定义档位 + buff_duration?: number, // 覆写计时 buff 的持续时间(秒),不配置则用 BuffList 默认值 call_hero?: number, // 召唤技能召唤英雄id(可选) is_accel?: boolean, // 是否逐渐加速飞行 info: string, // 技能描述 @@ -174,6 +175,7 @@ export interface SkillOverrides { buff_type?: Attrs; timed_buff_id?: number; buff_value?: number; + buff_duration?: number; call_hero?: number; is_accel?: boolean; } diff --git a/assets/script/game/common/config/heroSet.ts b/assets/script/game/common/config/heroSet.ts index 0566af72..b26b1387 100644 --- a/assets/script/game/common/config/heroSet.ts +++ b/assets/script/game/common/config/heroSet.ts @@ -390,13 +390,13 @@ export const HeroInfo: Record = { uuid: 5051, name: "占卜师", path: "hm1", fac: FacSet.HERO, pool_lv: 1, lv: 1, type: HType.Long, hp: 143, ap: 40, skills: { 6001: { uuid: 6001, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Mid3].cd, ccd: 0 } }, // 战前计时 buff:每波开始全队 AP 限时提升(+30/5s → +60/7s → +90/10s),6级追加暴击驻场光环 - // 通过 overrides.timed_buff_id 切换 BuffList 中的限时 buff 配置,走 buffManager 限时路径 + // 统一复用 7111 基础配置,通过 buff_value/buff_duration 覆写实现三档成长 fstart: [{ s_uuid: 6401, t_num: 1, overrides: { TGroup: TGroup.Team, timed_buff_id: 7111 } }], evolve: { 2: { hp_bonus: 80 }, - 3: { fstart: [{ s_uuid: 6401, t_num: 1, overrides: { TGroup: TGroup.Team, timed_buff_id: 7112 } }] }, + 3: { fstart: [{ s_uuid: 6401, t_num: 1, overrides: { TGroup: TGroup.Team, timed_buff_id: 7111, buff_value: 60, buff_duration: 7 } }] }, 4: { hp_bonus: 80 }, - 5: { fstart: [{ s_uuid: 6401, t_num: 1, overrides: { TGroup: TGroup.Team, timed_buff_id: 7113 } }] }, + 5: { fstart: [{ s_uuid: 6401, t_num: 1, overrides: { TGroup: TGroup.Team, timed_buff_id: 7111, buff_value: 90, buff_duration: 10 } }] }, 6: { field: [7204] }, }, info: "战斗开始时全队攻击力限时提升(+30/5s→+60/7s→+90/10s);6级起全队暴击率+20%(驻场)" diff --git a/assets/script/game/hero/SCastSystem.ts b/assets/script/game/hero/SCastSystem.ts index 2ff73b51..cceb13c1 100644 --- a/assets/script/game/hero/SCastSystem.ts +++ b/assets/script/game/hero/SCastSystem.ts @@ -490,12 +490,16 @@ export class SCastSystem extends ecs.ComblockSystem implements ecs.ISystemUpdate // 计时性 buff:配置了 timed_buff_id 时走 buffManager 限时路径, // 同一技能不应既永久加成又限时加成,故提前 return 跳过下方永久 add_* 逻辑 if (config.timed_buff_id) { + // 汇总 buff 覆写参数:value 覆写修饰数值,duration 覆写持续时间 + const buffOverrides: { value?: number; duration?: number } = {}; + if (config.buff_value !== undefined) buffOverrides.value = config.buff_value; + if (config.buff_duration !== undefined) buffOverrides.duration = config.buff_duration; buffManager.applyBuff( target.ent, config.timed_buff_id, _cAttrsComp.hero_uuid, _cAttrsComp.ap, - config.buff_value !== undefined ? { value: config.buff_value } : undefined + Object.keys(buffOverrides).length > 0 ? buffOverrides : undefined ); return; }