From 00c875ff189cd5c66879be73c2b319c0392f113f Mon Sep 17 00:00:00 2001 From: panFD Date: Sat, 5 Sep 2026 22:18:57 +0800 Subject: [PATCH] =?UTF-8?q?feat(hero&skill):=20=E6=96=B0=E5=A2=9E=E5=8F=8D?= =?UTF-8?q?=E4=BC=A4=E7=9B=B8=E5=85=B3=E5=85=89=E7=8E=AF=E6=8A=80=E8=83=BD?= =?UTF-8?q?=E4=B8=8E=E5=B1=9E=E6=80=A7=E8=AE=A1=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 扩展英雄反伤属性计算逻辑,加入驻场光环加成 2. 新增两个永久反伤强化技能6413、6414 3. 新增FieldSkillType反伤相关枚举与光环配置 --- assets/script/game/common/config/SkillSet.ts | 20 ++++++++++++++++++++ assets/script/game/hero/HeroAttrsComp.ts | 10 ++++++---- 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/assets/script/game/common/config/SkillSet.ts b/assets/script/game/common/config/SkillSet.ts index e136daa1..2db6cbbe 100644 --- a/assets/script/game/common/config/SkillSet.ts +++ b/assets/script/game/common/config/SkillSet.ts @@ -445,6 +445,16 @@ export const SkillSet: Record = { DTType: DTType.single, kind: SkillKind.Support, ap: 50, 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, buff_type: Attrs.defense, info: "全体友方防御提升50点, 持续1次", }, + 6413: { + uuid: 6413, name: "荆棘强化", sp_name: "buff_wind", icon: "Stat_Defense", TGroup: TGroup.Team, readyAnm: "up_blue", endAnm: "", act: "atk", + DTType: DTType.single, kind: SkillKind.Support, ap: 10, 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, buff_type: Attrs.thorns_dmg, info: "全体友方固定反伤提升10点, 永久生效", + }, + 6414: { + uuid: 6414, name: "荆棘比例强化", sp_name: "buff_wind", icon: "Stat_Defense", TGroup: TGroup.Team, readyAnm: "up_blue", endAnm: "", act: "atk", + DTType: DTType.single, kind: SkillKind.Support, ap: 10, 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, buff_type: Attrs.thorns_rate, info: "全体友方比例反伤提升10%, 永久生效", + }, 6501: { uuid: 6501, name: "复活", sp_name: "buff_wind", icon: "Stat_HolyDamage", TGroup: TGroup.Self, readyAnm: "up_ap", endAnm: "", act: "atk", DTType: DTType.single, kind: SkillKind.Support, ap: 50, hit_count: 3, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.support, @@ -525,6 +535,12 @@ export const SkillSet: Record = { uuid: 6515, name: "荆棘比例", sp_name: "buff_wind", icon: "Stat_Defense", TGroup: TGroup.Team, readyAnm: "up_blue", endAnm: "", act: "atk", DTType: DTType.single, kind: SkillKind.Support, ap: 0, hit_count: 3, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.support, RType: RType.fixed, EType: EType.animationEnd, buff_type: Attrs.thorns_rate, timed_buff_id: 7028, info: "全体友方获得10%比例反伤, 持续5秒", + }, + // 次级反伤技能(供触发器引用,无 buff_type,效果由引用处 overrides 注入) + 6516: { + uuid: 6516, name: "次级荆棘", sp_name: "buff_wind", icon: "Stat_Defense", TGroup: TGroup.Self, readyAnm: "up_blue", endAnm: "", act: "atk", + DTType: DTType.single, kind: SkillKind.Support, ap: 0, 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: "次级反伤技能,效果由引用处 overrides 注入", } }; @@ -547,6 +563,8 @@ export enum FieldSkillType { AtkCount = 19, // 攻击触发技能次数提升 BeAtkCount = 20, // 被攻击触发技能次数提升 HeroPunctureDmg = 21, // 英雄穿透后伤害加成(百分点;乘算:PUNCTURE_DMG_RATIO * (1 + bonus/100)) + HeroThornsDmg = 22, // 英雄固定反伤加成 + HeroThornsRate = 23, // 英雄比例反伤加成(百分点) } export interface FieldSkillConfig { @@ -581,4 +599,6 @@ export const FieldSkillSet: Record = { 7018: { uuid: 7018, name: "攻击强化", icon: "Stat_Attack_03", type: FieldSkillType.AtkCount, info: "攻击触发技能次数提升" }, 7019: { uuid: 7019, name: "受击强化", icon: "Stat_Armor_01", type: FieldSkillType.BeAtkCount, info: "被攻击触发技能次数提升" }, 7020: { uuid: 7020, name: "穿透强化", icon: "Stat_Tripleshot", type: FieldSkillType.HeroPunctureDmg, info: "英雄穿透后伤害提升(百分点)" }, + 7021: { uuid: 7021, name: "荆棘光环", icon: "Stat_Defense", type: FieldSkillType.HeroThornsDmg, info: "英雄固定反伤提升" }, + 7022: { uuid: 7022, name: "荆棘比例光环", icon: "Stat_Defense", type: FieldSkillType.HeroThornsRate, info: "英雄比例反伤提升(百分点)" }, }; diff --git a/assets/script/game/hero/HeroAttrsComp.ts b/assets/script/game/hero/HeroAttrsComp.ts index 739c3e97..3f1f1004 100644 --- a/assets/script/game/hero/HeroAttrsComp.ts +++ b/assets/script/game/hero/HeroAttrsComp.ts @@ -542,16 +542,18 @@ export class HeroAttrsComp extends ecs.Comp { return Math.max(0, this.defense + mods.flatSum + mods.pctSum); } - /** 最终反伤固定值 = 基础 + 限时修饰(加法模型) */ + /** 最终反伤固定值 = 基础 + 限时修饰 + 驻场光环(加法模型) */ public getFinalThornsDmg(): number { const mods = this.aggregateTimedMods(Attrs.thorns_dmg); - return Math.max(0, this.thorns_dmg + mods.flatSum + mods.pctSum); + const field = this.fac === FacSet.HERO ? HeroAttrsComp.getFieldPercentValue(FieldSkillType.HeroThornsDmg) : 0; + return Math.max(0, this.thorns_dmg + mods.flatSum + mods.pctSum + field); } - /** 最终反伤比例 = 基础 + 限时修饰(加法模型,百分点) */ + /** 最终反伤比例 = 基础 + 限时修饰 + 驻场光环(加法模型,百分点) */ public getFinalThornsRate(): number { const mods = this.aggregateTimedMods(Attrs.thorns_rate); - return Math.max(0, this.thorns_rate + mods.flatSum + mods.pctSum); + const field = this.fac === FacSet.HERO ? HeroAttrsComp.getFieldPercentValue(FieldSkillType.HeroThornsRate) : 0; + return Math.max(0, this.thorns_rate + mods.flatSum + mods.pctSum + field); } /**