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); } /**