Commit Graph

1259 Commits

Author SHA1 Message Date
panw
a20e5db00b fix: 调整英雄和怪物的初始X坐标位置
将英雄初始位置X坐标从-360改为-320,怪物初始位置X坐标从360改为320,使双方起始位置更对称。
移除怪物生成时的横向错列计算,统一使用新的初始X坐标,简化生成逻辑。
2026-03-19 09:05:58 +08:00
walkpan
8a55f7433b fix(英雄): 调整英雄模型缩放、血条位置和颜色,优化顶部UI布局
- 调整多个英雄模型(mo1、mo2、ha1、hc1、hh1、hm1、hz1、hm2、mo3、hk1、mo4)的缩放比例(x轴从1改为0.7-0.8)和血条位置(y轴坐标)
- 为英雄阵营单位设置绿色血条(#2ECC71)以区分阵营
- 禁用物理调试绘制以提升性能
- 优化顶部UI(top.prefab)的布局:调整位置、缩放、尺寸,使血条和能量条更紧凑
- 调整hm2英雄的碰撞框尺寸和位置
- 移除mo3和hk1英雄中不必要的UI元素覆盖
- 为mo4英雄添加骷髅图标并调整顶部UI位置和缩放
2026-03-18 22:53:49 +08:00
walkpan
b2595cd1b4 feat(英雄): 优化血条和冷却UI表现
- 移除血条2秒自动隐藏逻辑,改为常显并根据血量状态调整透明度
- 新增血条受击抖动效果,提升打击感
- 增加技能冷却进度条显示功能
- 统一血条激活状态管理,通过透明度变化区分活跃/空闲状态
- 修复复活后血条显示异常问题
2026-03-18 22:53:29 +08:00
walkpan
53b1cf2734 fix(战斗): 调整近战英雄追击逻辑和攻击范围
- 禁用 atk_s1.prefab 中的某个节点以避免干扰
- 增加近战攻击范围的高度从 100 到 150
- 添加 meleeOvertakeSpeedGap 常量用于控制追击速度差阈值
- 实现 shouldAllowMeleeOvertake 方法,允许高速近战英雄在特定条件下超越同优先级盟友
- 条件包括:双方均为近战、优先级相同、速度足够快、盟友未进入攻击准备状态且仍在前进中
2026-03-18 20:42:30 +08:00
walkpan
ebba7a4803 fix(战斗): 调整近战攻击逻辑与攻击动画配置
- 将技能 6001 的触发类型改为碰撞检测,提高命中准确性
- 优化近战攻击距离计算,使用配置值并增加最小距离限制
- 移除攻击动画中的多余事件,缩短动画时长
- 调整攻击预制体的碰撞体尺寸和位置,使其与实际攻击范围匹配
- 简化远程英雄战斗逻辑,移除不必要的距离判断
2026-03-18 20:36:36 +08:00
panw
10aa8cfba4 feat(关卡): 将Boss刷新机制改为基于时间轴
将Boss刷新从固定周期改为基于时间轴配置,支持在特定时间点生成多个Boss
2026-03-18 17:08:53 +08:00
panw
035066752c fix: 收敛战斗内存增长并强化战斗结束清理 2026-03-18 16:46:52 +08:00
panw
56227d8f3f fix: 修复Boss渲染层级错误,确保Boss始终显示在最前
Boss单位在渲染排序时未获得足够高的优先级,导致可能被其他单位遮挡。
现在为Boss单位添加专门的渲染优先级字段(bossPriority),并在排序时作为第一排序条件。
同时为Boss的spawnOrder添加偏移量,确保同优先级内Boss保持正确的生成顺序。
2026-03-18 16:22:50 +08:00
panw
eceabdc65a refactor(hero): 简化伤害队列和动画处理逻辑
移除伤害队列中的冗余字段,将受击动画播放移至伤害触发时统一处理,提高代码可维护性并消除重复逻辑。
2026-03-18 16:15:37 +08:00
panw
b17ec3695e feat(英雄技能): 添加技能前摇与后摇动画支持
- 在 SCastSystem 中调用 playReady 播放技能前摇动画
- 在 HeroAtkSystem 中调用 playEnd 播放技能后摇动画
- 将 playSkillEffect 重构为 playSkillAnm 以播放角色攻击动画
- 修复 HeroViewComp 中 playReady 方法名拼写错误
2026-03-18 15:17:25 +08:00
panw
cc1ca2f18b refactor(技能系统): 重构施放系统以支持位置目标和实体ID目标
- 将技能目标从 HeroViewComp 数组改为位置向量和实体ID数组的组合
- 移除对 oops 框架和 GameEvent 的依赖,改为直接处理技能效果
- 新增 resolveFriendlyTargets 方法用于解析友方目标实体
- 新增 hasCastTarget 方法统一检查施放目标有效性
- 简化 applyPrimaryEffect 方法,分离伤害技能和增益技能的处理逻辑
2026-03-18 14:57:09 +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
panw
eb4e544363 fix(战斗): 调整射手技能和近战走位逻辑
- 将射手英雄的技能从[6005,6006]改为[6005,6008]
- 调整技能6005、6006的hit_count从2和3统一为1,提高技能6008的hit_count从1到6
- 优化近战单位的走位逻辑,增加攻击准备锁定和通过阈值判断,调整盟友重叠间距和位移释放距离
2026-03-18 09:57:21 +08:00
panw
941fb50ce2 feat(刷怪): 增加场上怪物数量上限控制机制
- 新增 `maxMonsterCount` 和 `resumeMonsterCount` 属性配置怪物数量阈值
- 添加 `stop_spawn_mon` 状态控制刷怪暂停与恢复
- 实现 `syncMonsterSpawnState` 方法周期性同步怪物数量并自动管理刷怪状态
- 在战斗准备时重置刷怪状态,确保每局开始时刷怪正常
2026-03-18 09:26:47 +08:00
panw
08af676c84 fix(移动): 优化盟友间距计算以允许目标重叠
引入 allyOverlapSpacingX 和 displacementReleaseX 常量,在特定条件下允许盟友目标位置重叠。
当盟友已被显著位移且自身需要前进时,使用更小的间距,避免不必要的移动阻塞。
2026-03-18 09:22:46 +08:00
walkpan
d91f32942e fix: 启用语言包路径配置以正确加载本地化资源 2026-03-18 08:05:11 +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
panw
f713a82a2d feat(肉鸽): 实现动态难度和配置化刷怪系统
- 新增 RogueConfig 配置文件,定义怪物类型、成长曲线和刷新参数
- 重构 MissionMonComp 刷怪逻辑,支持普通怪、Boss 和特殊队列三种生成方式
- 引入阶段成长机制,怪物属性随游戏时间动态增强
- 添加随机成长类型,使同阶段怪物属性具有差异性
- 支持外部事件插队刷怪,用于运营活动和技能召唤等场景
2026-03-17 16:04:09 +08:00
panw
8505522c7e refactor(game): 简化怪物生成逻辑并移除肉鸽配置
- 移除 RogueConfig 及相关动态成长系统
- 简化 Monster.load() 方法参数,直接使用 heroSet 配置
- 移除 MissionMonComp 中的波次生成逻辑和特殊队列
- 清理 MissionComp 中与肉鸽相关的特殊刷怪检查
- 调整 heroSet 配置,移除 buff 字段并统一技能
- 更新技能配置,增加更多攻击特效
2026-03-17 15:59:44 +08:00
panw
8667656e48 fix: 修正英雄移动逻辑中距离判断条件
将原条件 `dist < minRange` 改为 `dist >= minRange`,并与阵型移动需求结合。原逻辑在距离过近时也会触发移动,导致英雄可能无法保持在有效攻击范围内。新逻辑确保仅在距离足够且需要调整阵型位置时才移动。
2026-03-17 14:57:07 +08:00
panw
2a842f533e feat(skill): 新增buff背景动画并调整箭矢技能资源
- 新增buff_bg.prefab及其动画资源,用于技能buff背景效果
- 新增arrow_big_yellow.prefab及其动画资源,添加黄色大箭矢技能
- 调整红、蓝、绿箭矢prefab的碰撞框尺寸(70×20→60×30)
- 为atk_s2.prefab添加spriteFrame并启用debugMode
- 更新SkillSet配置,调整基础技能对应的动画资源
- 优化atk02.anim和atk03.anim动画时长,移除冗余帧
- 重构箭矢动画文件结构,将atk_arrow_*重命名为arrow_*并更新引用
- 在ha1.prefab中集成buff_bg作为子节点
2026-03-17 10:26:14 +08:00
walkpan
1b8c69a745 chore: 移除未使用的技能相关组件和文件
清理技能模块中未使用的ECS组件、视图层文件及其元数据文件,包括Ready、EndView、ReadyCom、ReadyView和STagComps。同时简化SCastSystem的注释,删除过时的设计理念说明。
2026-03-16 20:56:04 +08:00
walkpan
e91f0e37b7 chore: 清理不再使用的设计文档和元数据文件
移除 assets/script/ 目录下不再使用的设计文档(.md)及其对应的元数据文件(.meta)。
这些文件包括游戏设计文档、技能扩展设计、天赋系统开发计划等,已不再需要维护。
2026-03-16 20:35:21 +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
panw
5d24dbff29 perf: 优化战斗系统内存与性能,增加对象池限制与内存监控面板
- 为Skill和Monster对象池添加最大容量限制(64/24),防止内存泄漏
- 实现DamageQueueComp的环形队列优化,减少数组操作开销
- 在MissionComp中添加内存监控面板,实时显示堆内存、实体数量、对象池状态
- 优化MoveSystem的渲染排序性能,缓存查询结果减少GC压力
- 调整角色控制器UI位置与样式,关闭调试日志减少性能开销
- 战斗结束时自动清理对象池,确保内存可回收
2026-03-16 18:49:43 +08:00
panw
fb7b10b7e1 fix(hero): 防止移动组件在特定情况下反向移动
在计算新位置后添加方向检查,确保英雄不会朝与输入方向相反的方向移动,避免可能的卡顿或位置异常。
2026-03-16 16:08:04 +08:00
panw
95edd6fd6d refactor: 简化攻击距离与职业类型系统
- 移除 SkillRange 枚举和 SkillDisVal 常量,统一使用 HType 表示攻击距离
- 删除 heroInfo 中的 rangeType 字段,直接使用 type 字段
- 更新英雄配置,将职业类型简化为近战、中程、远程三类
- 移除怪物属性中的 mp 和 def 字段,简化属性计算
- 更新移动和技能距离计算逻辑,直接使用 HType 判断
2026-03-16 15:54:49 +08:00
panw
11e6f49479 refactor(战斗): 重构英雄阵型位置计算逻辑
- 将阵型位置计算提取到公共配置模块,定义 FormationPointX 映射
- 新增 resolveRangeTypeByHeroType 函数根据英雄类型解析默认攻击范围
- 新增 resolveFormationTargetX 函数统一计算英雄阵型目标X坐标
- 在 Hero 和 MoveSystem 中复用新的阵型计算函数,消除重复逻辑
- 优化远程英雄战斗逻辑,使其能根据阵型位置和攻击范围动态调整站位
2026-03-16 15:46:28 +08:00
panw
acaa6125c2 feat(移动): 根据战斗优先级调整同阵营英雄的横向间距
在clampXByAllies方法中增加战斗优先级判断,高优先级英雄不会因低优先级盟友而调整横向位置。新增getCombatPriority方法根据英雄类型和射程类型计算优先级,近战>中程>远程。
2026-03-16 15:20:50 +08:00
panw
4171865efb fix(移动系统): 修正近战攻击距离和友军间距逻辑
- 将 `minSpacingX` 拆分为 `meleeAttackRange` 和 `allySpacingX`,明确区分攻击范围和友军间距
- 在 `moveEntity` 方法中添加 `stopAtX` 参数,确保英雄在攻击范围内停止移动
- 新增 `clampXByAllies` 方法,防止友军单位在移动时相互重叠
- 更新 `hasAnyActorTooClose` 方法使用新的 `allySpacingX` 常量
2026-03-16 14:49:17 +08:00
panw
662ae9a6c9 refactor(英雄移动): 简化移动逻辑并统一渲染排序
- 移除 HeroMove.ts.meta 和 MonMove.ts.meta 文件
- 将所有英雄和怪物节点统一挂载到 HERO 父节点下,不再使用多行(LINE1-4)布局
- 简化 MoveSystem 中的 Y 轴位置计算,直接使用 baseY
- 重构渲染排序逻辑,基于阵营和位置计算前后顺序
- 移除过时的线路切换和碰撞检测逻辑
2026-03-16 14:39:57 +08:00
panw
b53741ffeb refactor(game): 移除HeroMove与MonMove组件,合并移动逻辑
HeroMove与MonMove组件功能高度重复,导致代码冗余和维护困难。移除这两个组件,将英雄和怪物的移动逻辑统一到新的移动系统中,提高代码复用性和可维护性。
2026-03-16 14:21:10 +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
0b85345369 fix: 修复移动系统中过近检测忽略敌对阵营的问题
调整hasAnyActorTooClose方法,在判断其他角色是否过近时,增加阵营校验逻辑,确保只检测同阵营角色,避免误判敌对角色位置。
2026-03-15 22:00:48 +08:00
walkpan
8af04d61e0 fix(战斗): 移除近战单位后撤逻辑并调整远程单位攻击距离
- 移除所有单位类型在距离过近时的后撤行为,简化移动逻辑
- 远程单位现在只在距离过远时前进,不再因过近而后撤
- 调整远程单位长距离攻击的起始位置从240增加到300
- 保持战斗系统的核心行为不变,仅优化移动决策逻辑
2026-03-15 21:54:03 +08:00
walkpan
426fcec5c4 fix(战斗): 修正近战攻击状态切换逻辑
在移动系统中,当英雄进入攻击范围时,应将 is_atking 设置为 true 以正确触发攻击状态。同时优化攻击范围计算,使用 minSpacingX 作为最大范围基准,并确保最小范围不超过最大范围减一,避免逻辑矛盾。
2026-03-15 21:47:15 +08:00