feat(skill&shield): 实现护盾持续时间功能,调整魔法盾冷却

1.  为护盾技能添加duration配置,支持永久/限时护盾
2.  新增护盾倒计时逻辑,到期自动清空护盾
3.  调整英雄6301魔法盾的冷却时间为10秒,新增7秒持续时长配置
4.  重构HeroAttrsComp,新增护盾持续时间字段与清空护盾方法
This commit is contained in:
panFD
2026-09-13 14:04:00 +08:00
parent 4f749c9a81
commit ed9232cf0b
5 changed files with 46 additions and 10 deletions

View File

@@ -166,6 +166,7 @@ export interface SkillConfig {
bck_chance?: number, // 击退概率(百分点;未配置视为 0 不击退,可由 heroSet overrides 覆写)
buff_type?: Attrs, // Buff 类型 (单一职责)
timed_buff_id?: number, // 计时性 buff 配置 id(指向 BuffList),存在时走 buffManager 而非永久 add_*
shield_duration?: number, // 护盾持续时间(秒),仅 kind=Shield 生效;缺省/<=0 表示永久护盾
buff_value?: number, // 覆写计时 buff 的修饰数值(modifiers.value / tick.damage_or_heal),由药水卡自定义档位
buff_duration?: number, // 覆写计时 buff 的持续时间(秒),不配置则用 BuffList 默认值
buff_chance?: number, // 计时 buff 施加概率(百分点,缺省 100)
@@ -205,6 +206,7 @@ export interface SkillOverrides {
bck_chance?: number;
buff_type?: Attrs;
timed_buff_id?: number;
shield_duration?: number;
buff_value?: number;
buff_duration?: number;
buff_chance?: number;
@@ -384,8 +386,8 @@ export const SkillSet: Record<number, SkillConfig> = {
//============================= ====== 辅助技能 回合技能 ====== ==========================
6301: {
uuid: 6301, name: "护盾", sp_name: "buff_wind", icon: "28-Electric-Wave", TGroup: TGroup.Self, readyAnm: "up_blue", endAnm: "", act: "atk",
DTType: DTType.single, kind: SkillKind.Shield, ap: 30, hit_count: 1, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.support,
RType: RType.fixed, EType: EType.animationEnd, info: "获得施法者最大生命30%的护盾",
DTType: DTType.single, kind: SkillKind.Shield, ap: 30, hit_count: 1, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.support, shield_duration: 7,
RType: RType.fixed, EType: EType.animationEnd, info: "获得施法者最大生命30%的护盾, 持续7秒",
},
6302: {
uuid: 6302, name: "治疗", sp_name: "buff_wind", icon: "g_priest_zldy_skill", TGroup: TGroup.Team, readyAnm: "up_green", endAnm: "", act: "atk",