Commit Graph

138 Commits

Author SHA1 Message Date
panw
abcbeff9ab feat: 为工具提示添加阵营区分显示
扩展 Tooltip 系统以支持根据伤害来源的阵营(英雄或怪物)显示不同的文本标签。修改 HeroViewComp 调用时传递阵营信息,TooltipCom 根据阵营选择对应的本地化键名。同时调整了工具提示预制件的默认激活状态和文本颜色。
2026-03-24 10:16:31 +08:00
panw
78d4b10a88 fix(skill): 修正技能攻击力计算未除以100的问题
修复技能攻击力(AP)计算时未将百分比转换为小数的问题。原代码直接使用 sAp (百分比值) 与基础攻击力相乘,导致计算结果过大。现在将 sAp 除以 100 以正确计算实际攻击力值。
2026-03-24 10:09:20 +08:00
walkpan
9a68ef957d feat(skill): 添加新技能资源并修复伤害计算问题
添加新的技能动画、预制体和字体资源,用于支持新技能效果。
修复技能伤害计算未取整的问题,确保伤害值为整数。
更新技能buff提示UI的字体和布局,提升显示效果。
2026-03-24 09:23:41 +08:00
walkpan
6c1b182314 fix: 修正技能升级数据空值检查逻辑
将空值合并运算符(??)替换为三元条件运算符,确保当SkillUpList[s_uuid]为0或false时也能正确使用默认值SkillUpList[1001]。同时移除未使用的sNum变量计算。
2026-03-22 22:07:49 +08:00
walkpan
ab11b2b2d3 fix(skill): 修复技能升级配置查找和友方技能目标选择逻辑
修复SkillUpList中默认配置键值错误,从6001改为1001
修复技能升级属性计算中的空值保护,避免undefined导致的NaN
重构友方技能目标选择逻辑,添加随机选取和按血量排序功能
调整辅助技能数值从基于最大生命值百分比改为基于攻击力百分比
2026-03-22 21:46:32 +08:00
walkpan
c75c58d13c feat(技能): 引入技能升级配置并调整伤害计算
- 新增 SkillUpList 配置表,支持技能升级时属性成长
- 修改 Skill.ts 中的伤害计算逻辑,将基础属性与升级加成结合
- 移除 SkillSet.ts 中冗余的注释行,保持代码整洁
2026-03-22 19:38:59 +08:00
walkpan
354f242930 refactor: 重构buff系统,移除预定义buff列表
- 将SkillConfig.buffs字段改为直接存储BuffConf对象数组
- 移除预定义的BuffsList和相关导入引用
- 简化SCastSystem中buff应用逻辑,直接使用配置对象
- 移除CardComp中Buff/Debuff类型的图标获取逻辑
- 简化HeroAttrsComp调试日志,移除buff名称显示
2026-03-22 19:09:02 +08:00
walkpan
0f56591376 refactor(skill): 重构技能数据结构并支持技能等级
- 将 HeroAttrsComp 中的技能数组和独立 CD 映射重构为统一的 HSkillInfo 对象记录
- 在 SDataCom 中新增 skill_lv 字段,并在 Skill 加载时传入技能等级
- 更新 Hero 和 Monster 初始化逻辑以适配新的技能数据结构
- 修改 SCastSystem 以传递技能等级并影响技能效果
- 更新 heroSet 配置,将 skills 字段类型改为 Record<number, HSkillInfo>
2026-03-22 16:25:46 +08:00
walkpan
be4884d28a refactor(英雄技能): 重构技能系统以支持多技能和独立冷却
- 将 HeroAttrsComp 中的单一攻击/技能ID重构为技能数组,支持多个技能
- 为每个技能添加独立的冷却计时和最大冷却时间
- 修改 SCastSystem 以支持多技能选择和冷却检查
- 更新 HeroViewComp 显示当前展示技能的冷却进度
- 统一英雄和怪物初始化技能的方式,使用 setSkills 方法
- 移除 heroSet 配置中的 as/ss 字段,改为 cds 数组
- 修改 Skill 实体加载,传递 HeroAttrsComp 用于技能伤害计算
2026-03-22 13:35:25 +08:00
walkpan
a08cca9cc3 feat: 添加冰冻效果并移除调试组件
- 在 GameSet 中添加冰冻时间常量 FROST_TIME
- 在 HeroAttrsComp 中新增 toFrost 方法用于处理冰冻状态
- 在 HeroAtkSystem 中增加冰冻判定,命中时触发冰冻效果并显示冰冻特效
- 简化 HeroViewComp 中的冰冻特效方法,移除眩晕特效方法
- 删除调试用的 HSkillComp 组件及其 meta 文件
- 调整 HeroBuffSystem 的计时器间隔,使冰冻状态更平滑地递减
2026-03-19 19:08:50 +08:00
walkpan
50936dce1d refactor(技能/英雄): 重构移动结束检测和冰冻状态逻辑
- 移除移动结束类型中的距离结束检测,仅保留碰撞结束
- 删除 HeroViewComp 中未使用的 mp_add 和 playIntervalEffect 方法
- 简化 HeroAttrsComp 中冰冻状态判断逻辑,移除 in_frost 字段
- 在 HeroBuffSystem 中添加定时器自动减少冰冻剩余时间
2026-03-19 18:49:19 +08:00
walkpan
1bb2d6072e refactor: 移除眩晕机制并简化buff系统
- 删除眩晕相关属性、状态检查及动画触发
- 移除BType枚举,简化BuffConf结构,所有buff改为固定值类型
- 清理未使用的导入和配置项,包括debuffs数组和多个英雄属性
- 简化暴击伤害计算,移除施法者暴击伤害加成
- 重构冰冻状态检查逻辑,添加frost_end_time字段
2026-03-19 18:43:02 +08:00
panw
0f6ab4a775 refactor(skill): 优化特效生命周期管理并添加新动画
- 移除 timedCom 组件中未使用的 cd 和 ap 属性
- 重命名 dead 组件为 oneCom 并重构动画结束销毁逻辑,避免内存泄漏
- 为部分技能添加准备动画(readyAnm)配置
- 新增 uplv 升级动画特效预制体
- 统一特效生成接口,支持基于动画结束或定时销毁两种模式
- 清理 HeroViewComp 中未使用的导入和方法
2026-03-19 14:40:51 +08:00
panw
b6efcdf794 refactor(skill): 移除未使用的rePos方法并实现贝塞尔移动逻辑
- 删除SMoveDataComp中未使用的rePos方法以简化代码
- 在SMoveSystem中为贝塞尔移动类型实现完整的坐标计算逻辑
- 添加resolveBezierFinalXByHorizon方法计算水平线上的最终X坐标
2026-03-19 10:19:55 +08:00
panw
7415626395 fix(SMoveSystem): 修复线性移动的起始与目标位置计算错误
修正线性移动类型中位置调整逻辑,现在正确基于 startPos 和 targetPos 应用 atk_x 和 atk_y 偏移量,而非错误地使用 node.position。同时确保水平移动开关能正确对齐起始与目标的 Y 轴坐标。
2026-03-19 10:18:47 +08:00
panw
33d88b2884 fix(skill): 修复技能碰撞检测中的空实体引用问题
在 SkillView 的 onBeginContact 方法中调整了防御性检查的顺序,确保在访问 targetView.ent 前先验证其存在性,避免潜在的运行时错误。同时将技能 6001 的 EType 从 collision 改为 distanceEnd 以修正其结束判定逻辑。
2026-03-19 09:45:46 +08:00
panw
035066752c fix: 收敛战斗内存增长并强化战斗结束清理 2026-03-18 16:46:52 +08:00
panw
ee16c228ec fix: 移除技能配置中已弃用的穿刺次数字段
移除 SkillConfig 接口中的 pct 字段及相关计算逻辑,该字段已不再使用。
更新 max_hit_count 的计算,直接使用 cAttrsComp.puncture 替代之前包含 addPct 的 totalPuncture。
2026-03-18 14:19:54 +08:00
panw
eff4154ba3 perf: 增加技能对象池最大容量并优化伤害日志
将技能对象池最大容量从64提升至128,以支持更多并发技能实例。
将技能6008的结束类型从动画结束改为碰撞检测,提高准确性。
移除伤害计算中不必要的施法者属性获取和击杀计数更新,简化日志输出。
2026-03-18 10:37:25 +08:00
panw
e059c97670 refactor(skill): 移除未使用的caster引用以简化技能数据
清理SDataCom中未使用的caster属性及相关代码,减少内存占用并提升代码清晰度。技能逻辑仅依赖casterEid进行实体识别,移除冗余引用可避免潜在循环引用问题。
2026-03-18 10:22:12 +08:00
panw
d2fbac11cd feat(技能): 为技能配置添加额外属性字段并应用到技能实例
在 SkillConfig 接口中新增暴击率、冰冻概率等六个可选属性字段,用于技能配置时提供额外加成。
在 Skill 类中,读取这些配置字段并累加到施法者基础属性上,影响技能的实际效果。
2026-03-18 10:13:50 +08:00
walkpan
1b8c69a745 chore: 移除未使用的技能相关组件和文件
清理技能模块中未使用的ECS组件、视图层文件及其元数据文件,包括Ready、EndView、ReadyCom、ReadyView和STagComps。同时简化SCastSystem的注释,删除过时的设计理念说明。
2026-03-16 20:56:04 +08:00
walkpan
a634b33f6b refactor(技能系统): 移除未使用属性并优化目标选择逻辑
- 移除 Skill.ts 中未使用的 wfuny 属性赋值
- 将 SCastSystem 中的目标选择逻辑重构为统一方法
- 在施放技能前增加目标有效性检查,避免无效操作
- 移除 HeroAtkSystem 中未使用的导入和接口字段
- 调整 SkillSet 中技能 6008 的 ready 参数值
2026-03-16 19:33:24 +08:00
panw
5d24dbff29 perf: 优化战斗系统内存与性能,增加对象池限制与内存监控面板
- 为Skill和Monster对象池添加最大容量限制(64/24),防止内存泄漏
- 实现DamageQueueComp的环形队列优化,减少数组操作开销
- 在MissionComp中添加内存监控面板,实时显示堆内存、实体数量、对象池状态
- 优化MoveSystem的渲染排序性能,缓存查询结果减少GC压力
- 调整角色控制器UI位置与样式,关闭调试日志减少性能开销
- 战斗结束时自动清理对象池,确保内存可回收
2026-03-16 18:49:43 +08:00
panw
5a630b4de5 refactor(skill): 重构碰撞上限处理与伤害派发逻辑
- 将碰撞上限处理抽离为独立的 handle_collision_limit 方法
- 移除 apply_damage 方法中冗余的销毁逻辑,使职责更清晰
- 优化注释以更准确描述组件职责与关键逻辑
- 添加生命周期保护标记,避免销毁阶段重复处理
2026-03-16 11:40:38 +08:00
panw
4db8788589 fix(SkillView): 提前检查命中次数并立即关闭碰撞器
在碰撞检测开始时立即检查命中次数,达到上限后立即关闭碰撞器并返回,避免后续不必要的逻辑执行。同时移除后续重复的命中次数检查和关闭碰撞器逻辑,简化代码结构。
2026-03-16 10:15:03 +08:00
panw
d4eeedb2f6 refactor(skill): 重构命中次数计算逻辑,移除冗余字段
- 将命中次数计算从 SkillView 移至 Skill 初始化,统一计算逻辑
- 移除 SkillConfig 接口中的 hit 字段,使用 hit_count 统一表示可命中次数
- 更新注释说明,hit_count 表示可命中次数而非攻击目标数量
- 清理 SkillView 中冗余的命中次数初始化代码
- 调整技能配置数据,移除所有 hit 字段值
2026-03-16 10:08:54 +08:00
panw
4e393b48b9 refactor(skill): 重构技能命中次数管理逻辑
- 在 SDataCom 组件中添加 max_hit_count 字段,用于存储最大可命中次数
- 移除 SkillView 中基于攻击帧的计数逻辑,改为使用 sData.max_hit_count 管理
- 在技能初始化时计算 max_hit_count(基础命中数 + 穿刺属性)
- 更新技能配置注释,将 hit_num 重命名为 hit_count 以保持命名一致性
2026-03-16 09:33:57 +08:00
panw
5634b49fee fix(技能): 修复瞬时技能碰撞检测关闭时机
移除基于 pendingClose 的延迟关闭逻辑,改为在攻击帧中立即调度关闭碰撞检测。
这避免了同一帧内对同一目标造成多次伤害的问题,并简化了时间类型技能的处理逻辑。
2026-03-16 09:10:03 +08:00
walkpan
dbdd29f0ff fix(技能): 确保技能持续时间至少为1帧并添加攻击间隔
将技能总时间的最小值从0改为1,避免除零错误。新增hitInterval字段控制攻击间隔,默认至少0.5秒。在STimeSystem中添加周期性攻击逻辑,通过pendingClose标志管理碰撞器状态。
2026-03-15 23:38:29 +08:00
walkpan
518591468c feat(skill): 为技能系统添加基于时间的结束条件支持
- 在 SkillConfig 接口中新增可选的 time 字段,用于配置持续时间
- 在 Skill 实体初始化时,根据 EType.timeEnd 类型添加或移除时间组件
- 新增 StimeDataComp 组件存储技能时间数据
- 新增 STimeSystem 系统处理技能时间更新逻辑,实现定时销毁技能
2026-03-15 23:11:52 +08:00
walkpan
9c21ab748e feat(skill): 优化技能碰撞检测逻辑并添加移动数据组件
- 新增 StimeDataComp 组件用于存储技能移动相关数据
- 修改 SMoveSystem 中距离结束和碰撞结束时的销毁逻辑,增加关闭碰撞体操作
- 重构 SkillView 的碰撞检测启用逻辑,提取为 enable_collider_safely 方法确保安全性
- 修复攻击帧事件中碰撞检测的启用条件,避免无效操作
2026-03-15 23:02:24 +08:00
walkpan
ad9799d938 fix(skill): 修复火焰击技能碰撞检测和消失逻辑
调整技能 atk_f2 的预制体位置、缩放和尺寸,以匹配新的碰撞体设置。
将技能 6004(火焰击)的 hit_num 从 1 改为 6,允许多次命中。
在 SkillView 中优化碰撞检测逻辑,增加 isDisposing 状态防止销毁后误触发。
修复 close_collider 方法的逻辑,确保碰撞体能立即关闭。
为 EType 枚举添加详细注释,明确其职责。
2026-03-15 22:25:51 +08:00
walkpan
02565c372e fix(skill): 修复技能碰撞检测逻辑和组件初始化问题
- 在Skill.ts中确保节点激活并添加SkillView组件缺失的错误处理
- 修复SkillView中碰撞体启用/禁用逻辑,避免同一帧内重复触发伤害
- 增加pendingDisableCollider标志防止异步操作中的竞争条件
- 完善组件重置逻辑,正确清理事件监听和定时器
- 修复动画事件监听可能重复绑定的问题
2026-03-15 15:56:22 +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
6170f47ca6 refactor: 重构技能系统并移除自动施法模块
- 删除 SACastSystem 及其 meta 文件,移除自动施法逻辑
- 重构 HeroAttrsComp 中的 Buff 处理逻辑,修复百分比计算问题
  - 将治疗和护盾 Buff 的 BType 从 VALUE 改为 RATIO
  - 添加 resolveBuffValue 方法正确计算基于最大生命值的百分比值
  - 修复 applyAttrChange 中 RATIO 类型的叠加逻辑
- 添加 HeroBuffSystem 系统,将 Buff 更新逻辑从 HeroAttrsComp 中分离
- 优化 SkillView 的销毁逻辑,避免直接调用 destroy 方法
  - 禁用碰撞体并设置节点为 inactive 状态
2026-03-13 09:52:16 +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
d5e03d7856 refactor(skill): 移除技能配置中未使用的cd和t_num字段
清理技能配置接口和实现代码,删除已不再使用的冷却时间(cd)和目标数量(t_num)字段。
在SCastSystem中,将目标数量计算简化为固定使用最小值1,因为t_num字段已废弃。
同时移除SkillView中已注释掉的旧逻辑代码。
2026-03-12 16:27:01 +08:00
panw
9d86be80c7 fix: 修复技能节点池逻辑并调整UI显示
- 修复技能节点池获取和回收时的有效性检查,避免无效节点
- 修复技能父节点查找逻辑,增加空值检查
- 调整卡牌UI的文本样式和宽度
- 启用SkillView调试日志以便问题排查
- 修复英雄后撤动画逻辑,取消注释
- 更新加载页面资源引用
2026-03-12 15:58:25 +08:00
walkpan
5d09b3361e feat(battle): 重构技能施放与战斗距离系统
- 新增技能距离缓存机制,根据英雄类型动态计算最小和最大攻击范围
- 重构SCastSystem实现完整的技能施放逻辑,支持伤害、治疗、护盾和buff技能
- 在Hero和Monster初始化时调用updateSkillDistanceCache预计算技能距离
- 修改HeroMoveSystem和MonMoveSystem使用动态战斗范围,支持撤退逻辑
- 优化Skill实体创建,增加对象池支持
- 添加技能CD触发方法和状态检查方法
2026-03-12 09:13:28 +08:00
walkpan
a544f65d73 refactor(战斗): 重构英雄与怪物属性系统,简化数据结构
- 移除 HeroSkillsComp 组件,将技能逻辑合并到 HeroAttrsComp
- 将属性从 Attrs 枚举映射改为 HeroAttrsComp 中的独立字段
- 为 HeroAttrsComp 添加攻击和技能冷却时间管理功能
- 统一英雄和怪物的属性初始化方式,简化配置数据
- 在 GameSet 中添加击退概率配置项
- 修复 SkillView 中属性名大小写错误
2026-03-11 23:13:21 +08:00
panw
1ad7b70c45 fix(game): 修复技能伤害应用时的空指针异常并调整英雄攻速
- 在 SkillView.apply_damage 中添加实体存在性安全检查,防止目标实体已销毁时访问属性
- 使用可选链操作符安全获取施法者和目标名称,避免日志记录时崩溃
- 将所有英雄的基础攻击速度(as)统一调整为 1,以平衡游戏性
2026-02-05 10:12:36 +08:00
panw
3a8f015a78 refactor: 移除调试日志并统一使用日志工具
- 删除多个文件中的 console.log/console.warn/console.error 调试输出
- 将日志输出统一替换为 mLogger 工具,支持调试模式控制
- 清理注释掉的调试代码和空方法体
2026-02-03 16:49:24 +08:00
panw
63dd22fb88 refactor: 重命名Logger类并增加错误日志方法
- 将Logger类重命名为mLogger以符合命名规范
- 新增error方法用于统一错误输出
- 在多个组件中替换console.log/warn/error为mLogger的对应方法
- 为多个组件添加debugMode属性以控制模块级日志开关
- 新增HeroMasterComp组件框架
2026-02-03 14:40:02 +08:00
panw
859ab3bc2a feat: 引入集中式日志工具类并重构调试日志
- 新增 Logger 类提供统一的日志和警告输出,支持全局和模块级开关
- 重构 SkillView、HeroViewComp 和 HeroAtkSystem 中的调试日志方法,改用 Logger 类
- 在 HeroViewComp 中添加调试模式属性便于编辑器配置
- 统一日志格式为 [标签] + 内容,提高日志可读性和维护性
2026-02-03 10:45:17 +08:00
panw
c07678f31f perf: 移除调试日志并统一调试模式控制
- 将 HeroAttrsComp 中的 console.log 改为注释以提升性能
- 将 HeroViewComp 的 debugMode 默认值设为 false 并移除冗余日志
- 在 SkillView 中统一添加 debugMode 控制,替换直接 console 调用
- 在 MissionCardComp 中添加调试日志以跟踪卡牌应用效果
2026-02-03 10:36:41 +08:00
walkpan
47575ca0b8 fix(skill): 延迟销毁技能实体以避免物理回调中直接销毁刚体
修复在物理回调中直接销毁刚体可能导致的问题,改为使用scheduleOnce延迟到下一帧销毁
2026-01-06 14:48:42 +08:00
walkpan
974a6d26b2 refactor(伤害系统): 将caster从HeroViewComp改为使用casterEid
统一伤害系统中施法者的标识方式,从直接使用HeroViewComp改为使用实体ID(casterEid)
修复反伤逻辑中可能存在的空指针问题
2026-01-06 14:28:48 +08:00
walkpan
31321a1a45 feat(技能系统): 添加施法者实体ID字段用于安全校验
在SDataCom组件中添加casterEid字段,并在Skill和SkillView中使用该字段替代原有的链式访问,提高代码安全性和可读性
2026-01-06 14:20:45 +08:00