fix(战斗): 修正护盾计算并重构技能效果处理

- 修复护盾计算错误,将百分比加成基数从 shield_max 改为 hp_max
- 增加护盾和最大护盾值的非负检查
- 引入 SkillKind 枚举明确技能类型,重构 SCastSystem 中的技能效果处理逻辑
- 将治疗和护盾效果从 Buff 系统剥离,直接作用于 HeroAttrsComp
- 清理未使用的导入和日志输出
This commit is contained in:
panw
2026-03-13 09:52:43 +08:00
parent 6170f47ca6
commit 3b545e3bff
3 changed files with 39 additions and 23 deletions

View File

@@ -40,6 +40,13 @@ export enum DTType {
range = 1,
}
export enum SkillKind {
Damage = 0,
Heal = 1,
Shield = 2,
Support = 3
}
/**
* 攻击距离类型分类
* 用于AI决策和技能配置规范化
@@ -179,6 +186,7 @@ export interface SkillConfig {
DAnm:number, // 命中后动画ID
RType:RType, // 技能运行类型(直线/贝塞尔/固定起点/固定终点)
EType:EType, // 结束条件(动画结束/时间结束/距离结束/碰撞/次数结束)
kind?:SkillKind, // 主效果类型
buffs:number[], // 对施法者的buff配置列表(Buff UUID 列表)
debuffs:number[], // 对目标的debuff配置列表(Buff UUID 列表)
call_hero?:number, // 召唤技能召唤英雄id(可选)
@@ -221,25 +229,25 @@ export const SkillSet: Record<number, SkillConfig> = {
uuid:6100,name:"治疗",sp_name:"buff_wind",icon:"1292",TGroup:TGroup.Self,TType:TType.LowestHP,act:"atk",DTType:DTType.single,
ap:30,hit_num:1,hit:1,hitcd:0.2,speed:720,with:0,
ready:0,EAnm:0,DAnm:9001,RType:RType.fixed,EType:EType.animationEnd,
buffs:[10301],debuffs:[],info:"治疗自己,回复30%最大生命值",
kind:SkillKind.Heal,buffs:[],debuffs:[],info:"治疗自己,回复30%最大生命值",
},
6101:{
uuid:6101,name:"魔法盾",sp_name:"buff_wind",icon:"1255",TGroup:TGroup.Self,TType:TType.LowestHP,act:"atk",DTType:DTType.single,
ap:30,hit_num:1,hit:1,hitcd:0.2,speed:720,with:0,
ready:0,EAnm:0,DAnm:9001,RType:RType.fixed,EType:EType.animationEnd,
buffs:[10302],debuffs:[],info:"获得30%最大生命值的护盾,持续60秒",
kind:SkillKind.Shield,buffs:[],debuffs:[],info:"获得30%最大生命值的护盾,持续60秒",
},
6102:{
uuid:6102,name:"强壮",sp_name:"buff_wind",icon:"3036",TGroup:TGroup.Team,TType:TType.HighestAP,act:"atk",DTType:DTType.single,
ap:30,hit_num:1,hit:1,hitcd:0.2,speed:720,with:0,
ready:0,EAnm:0,DAnm:9001,RType:RType.fixed,EType:EType.animationEnd,
buffs:[10001],debuffs:[],info:"增加目标10%攻击力,持续30秒",
kind:SkillKind.Support,buffs:[10001],debuffs:[],info:"增加目标10%攻击力,持续30秒",
},
6103:{
uuid:6103,name:"群体强壮",sp_name:"buff_wind",icon:"3036",TGroup:TGroup.Team,TType:TType.HighestAP,act:"atk",DTType:DTType.range,
ap:30,hit_num:1,hit:1,hitcd:0.2,speed:720,with:0,
ready:0,EAnm:0,DAnm:9001,RType:RType.fixed,EType:EType.animationEnd,
buffs:[10011],debuffs:[],info:"增加目标10%攻击力,持续30秒",
kind:SkillKind.Support,buffs:[10011],debuffs:[],info:"增加目标10%攻击力,持续30秒",
},
// ========== 怪物基础技能 ========== 6200-6299
6201: {