Commit Graph

24 Commits

Author SHA1 Message Date
panw
cc1ca2f18b refactor(技能系统): 重构施放系统以支持位置目标和实体ID目标
- 将技能目标从 HeroViewComp 数组改为位置向量和实体ID数组的组合
- 移除对 oops 框架和 GameEvent 的依赖,改为直接处理技能效果
- 新增 resolveFriendlyTargets 方法用于解析友方目标实体
- 新增 hasCastTarget 方法统一检查施放目标有效性
- 简化 applyPrimaryEffect 方法,分离伤害技能和增益技能的处理逻辑
2026-03-18 14:57:09 +08:00
panw
5d25567b89 fix(战斗): 修正近战英雄的攻击逻辑和技能配置
- 将兽人召唤师、祭司、图腾师的类型从远程改为近战,以匹配其实际战斗行为
- 修复空挥技能的错误动画名称引用
- 重构SCastSystem的目标选择逻辑,移除冗余的combat_target处理
- 简化敌人查找逻辑,直接根据攻击范围寻找最近目标
2026-03-17 17:00:21 +08:00
panw
20aa067c9c fix(战斗): 修复英雄移动和施法逻辑
- 移动系统现在会在需要保持距离时也执行移动,避免过于靠近敌人
- 施法系统重构目标选择逻辑,确保在射程内寻找最近敌人
- 添加近战施法距离常量,根据英雄类型动态计算最大施法范围
- 移除不必要的攻击状态检查,优化施法条件判断
2026-03-17 17:00:01 +08:00
walkpan
1b8c69a745 chore: 移除未使用的技能相关组件和文件
清理技能模块中未使用的ECS组件、视图层文件及其元数据文件,包括Ready、EndView、ReadyCom、ReadyView和STagComps。同时简化SCastSystem的注释,删除过时的设计理念说明。
2026-03-16 20:56:04 +08:00
walkpan
f63f5c6656 feat(战斗): 优化自动施法目标选择逻辑
- 在 HeroAttrsComp 中新增 combat_target_eid 和 enemy_in_cast_range 字段,用于跟踪当前战斗目标
- 修改 MoveSystem 在移动时同步更新战斗目标状态,并清理无效目标
- 重构 SCastSystem 的自动施法逻辑,优先使用已锁定的战斗目标而非重新搜索
- 调整技能 6005 和 6006 的 hit_count 参数,分别改为 2 和 3 次打击
- 为友方技能施法添加事件派发机制,通知其他系统技能释放
2026-03-16 20:30:28 +08:00
walkpan
ae3231156d fix(技能): 修正技能目标筛选和触发类型配置
- 移除未使用的反伤技能配置 (5000)
- 交换技能 6001 和 6002 的 EType 配置 (animationEnd/collision),使空挥技能在动画结束时触发,电击技能在碰撞时触发
- 将绿箭 (6006) 和红箭 (6007) 的 EType 从 animationEnd 改为 collision,使其在碰撞时触发
- 重构 SCastSystem 的目标查找逻辑,将候选目标收集与筛选分离,提高性能并修复可能的目标查找错误
2026-03-16 19:43:11 +08:00
walkpan
a634b33f6b refactor(技能系统): 移除未使用属性并优化目标选择逻辑
- 移除 Skill.ts 中未使用的 wfuny 属性赋值
- 将 SCastSystem 中的目标选择逻辑重构为统一方法
- 在施放技能前增加目标有效性检查,避免无效操作
- 移除 HeroAtkSystem 中未使用的导入和接口字段
- 调整 SkillSet 中技能 6008 的 ready 参数值
2026-03-16 19:33:24 +08:00
walkpan
211f48b6aa feat: 启用物理调试绘制并调整技能配置与移动逻辑
- 启用PhysicsSystem2D的Aabb调试绘制以辅助碰撞检测
- 将射手英雄的技能由[6002,6100]更新为[6005,6006]
- 为SMoveComp添加isHorizontal属性,强制水平移动时保持Y坐标不变
- 技能施放延迟优先使用技能配置的ready值,提高配置灵活性
- 将技能6001和6005的结束类型由animationEnd改为collision,使伤害触发更精确
2026-03-15 13:03:34 +08:00
panw
3b545e3bff fix(战斗): 修正护盾计算并重构技能效果处理
- 修复护盾计算错误,将百分比加成基数从 shield_max 改为 hp_max
- 增加护盾和最大护盾值的非负检查
- 引入 SkillKind 枚举明确技能类型,重构 SCastSystem 中的技能效果处理逻辑
- 将治疗和护盾效果从 Buff 系统剥离,直接作用于 HeroAttrsComp
- 清理未使用的导入和日志输出
2026-03-13 09:52:43 +08:00
panw
5d83bd1516 refactor(skill): 将buff/debuff应用逻辑从SkillView移到SCastSystem
重构技能效果应用逻辑,将buff/debuff处理从SkillView的碰撞检测中移除,统一在SCastSystem中根据技能配置决定是否创建技能实体或直接应用支持效果。这样可以更清晰地分离伤害技能和支持技能的处理逻辑,避免在碰撞时重复应用效果。
2026-03-12 22:02:42 +08:00
panw
fac8d571c3 refactor(skill): 统一技能效果处理逻辑至 SkillView
移除 SCastSystem 中的 applySupportSkill 方法,将治疗、护盾、Buff/Debuff 效果统一在 SkillView 的碰撞逻辑中处理。同时删除 SkillConfig 中的 SType 枚举,改为通过 buffs 和 debuffs 列表配置效果。
2026-03-12 16:51:14 +08:00
panw
3ba33c5240 feat(技能): 增加基于目标类型的智能排序逻辑
扩展技能目标选择系统,支持根据 TType 配置选择不同优先级的目标。
新增 HighestAP(最高攻击力)目标类型,并在 SCastSystem 中实现排序算法:
- Frontline(默认):最近距离优先
- Backline:最远距离优先
- LowestHP:最低血量优先
- HighestHP:最高血量优先
- HighestAP:最高攻击力优先
同时更新所有技能配置,补充缺失的 TType 字段。
2026-03-12 16:27:16 +08:00
panw
d5e03d7856 refactor(skill): 移除技能配置中未使用的cd和t_num字段
清理技能配置接口和实现代码,删除已不再使用的冷却时间(cd)和目标数量(t_num)字段。
在SCastSystem中,将目标数量计算简化为固定使用最小值1,因为t_num字段已废弃。
同时移除SkillView中已注释掉的旧逻辑代码。
2026-03-12 16:27:01 +08:00
panw
876b3f9a30 refactor: 移除技能配置中的固定距离字段,改用动态计算
技能配置中不再硬编码 `dis` 距离字段,而是通过 `casterAttrs.getCachedMaxSkillDistance()` 动态获取英雄的最大技能距离。这提高了灵活性,使技能距离可以基于英雄属性动态变化。
2026-03-12 16:05:12 +08:00
walkpan
5d09b3361e feat(battle): 重构技能施放与战斗距离系统
- 新增技能距离缓存机制,根据英雄类型动态计算最小和最大攻击范围
- 重构SCastSystem实现完整的技能施放逻辑,支持伤害、治疗、护盾和buff技能
- 在Hero和Monster初始化时调用updateSkillDistanceCache预计算技能距离
- 修改HeroMoveSystem和MonMoveSystem使用动态战斗范围,支持撤退逻辑
- 优化Skill实体创建,增加对象池支持
- 添加技能CD触发方法和状态检查方法
2026-03-12 09:13:28 +08:00
walkpan
ce2cd05ba9 refactor(英雄配置): 移除英雄配置中的mp和def属性
简化英雄属性配置,移除不再使用的法力值(mp)和防御力(def)属性
2026-03-11 23:24:31 +08:00
panw
9f809b1ffa feat(技能系统): 添加最大技能自动施放开关并重构施法逻辑
- 在HeroSkillsComp中添加max_auto字段控制最大技能自动施放
- 重构SACastSystem的施法逻辑,增加返回值判断
- 新增manualCast和manualCastMax方法支持手动施法
- 删除废弃的SCastSystem文件
2025-11-19 10:34:37 +08:00
walkpan
cb844cf65f 解决一些小问题 2025-11-01 15:02:31 +08:00
walkpan
65b1eebd84 refactor(skill): 重构伤害计算逻辑
- 删除SkillEnt.ts及其meta文件,简化技能实体管理
- 将SDataCom重命名为更清晰的DmgDataCom和SDataCom
- 重构伤害计算系统,增加命中检测和伤害类型处理
- 优化技能碰撞检测逻辑,支持范围伤害和数量限制
2025-10-31 13:38:32 +08:00
panw
3b21ee4048 refactor(技能系统): 重构技能施放系统并优化位置初始化
- 将SkillCastSystem重命名为SCastSystem和SACastSystem以区分不同功能
- 优化SMoveComp中位置属性的初始化,改为null避免不必要的对象创建
- 统一日志前缀使用系统名称提高可读性
- 在SACastSystem中添加目标位置检查逻辑
- 修复代码格式问题,统一缩进和注释风格
2025-10-31 11:05:44 +08:00
panw
2b3b80b308 refactor(技能系统): 重构技能系统以使用s_uuid作为主键并优化技能施放逻辑
- 将HeroSkillsComp中的技能数组改为以s_uuid为键的对象存储
- 修改CSRequestComp使用s_uuid替代skillIndex
- 优化SkillCastSystem和SACastSystem的施放逻辑
- 为SMoveDataComp添加rePos方法处理技能位置计算
- 移除未使用的SDataComSystem代码
2025-10-31 10:47:05 +08:00
panw
b38e63e200 refactor(skill): 重构技能组件目录结构并重命名施法请求组件
将技能相关组件从hero目录移动到skill目录
将CastSkillRequestComp重命名为CSRequestComp
更新相关引用和文档说明
2025-10-31 09:22:50 +08:00
panw
a1c605238d refactor(hero): 重构技能系统变量命名和自动施法系统
将技能相关变量名从skillId改为s_uuid以提高一致性
重命名自动施法系统文件并优化目标选择方法命名
删除旧版自动施法系统文件,新增重构后的实现
2025-10-31 09:00:37 +08:00
walkpan
2f19433a0a feat(skill): 重构技能系统,新增技能数据组件和移动组件
refactor(skill): 移除旧技能组件和文档,优化技能配置结构

fix(skill): 修正技能预制体配置错误,统一技能运行类型字段

docs(skill): 删除过时的技能系统说明文档

perf(skill): 优化技能加载逻辑,减少资源消耗

style(skill): 调整代码格式,提高可读性
2025-10-31 00:35:51 +08:00