91690658b5
feat(boss-effect): 统一处理参数类型转换,提升数值比较与运算准确性
...
对多个 boss 技能效果文件中的参数调用进行了统一调整,将原先直接使用 `e.Args()[index]` 的地方,
改为通过 `e.Args()[index].IntPart()` 或 `e.Args()[index]` 进行类型转换后再参与逻辑判断或数值计算。
同时修正了部分 HP 比较方式,由整型比较转为 decimal
2025-12-06 15:11:42 +08:00
43813932c9
```
...
build(go): 升级 Go 版本至 1.20 并更新依赖包
将项目 Go 版本从 1.18 升级至 1.20,并同步更新了相关模块依赖。
同时替换 decimal 库为 alpacadecimal,以提升数值计算精度和性能。
- 升级 Go 模块版本
- 替换 github.com/govalues/decimal 为 github.com/alpacahq/alpacadecimal
- 更新多个间接依赖包版本
- 调整相关代码中 decimal
2025-12-05 00:24:02 +08:00
022dc12461
refactor(decimal): 替换shopspring/decimal为govalues/decimal库
2025-12-04 14:28:42 +00:00
0ea1a24419
feat(fight): 实现 boss 战斗中精灵特性的支持与多个新魂印效果
...
- 在 `fight_boss.go` 中为 Boss 的每只宠物增加了 CatchTime 字段以区分不同精灵,
并修复了技能特效参数解析的问题。
- 新增多个魂印(NewSeIdx)实现,包括:
* 无限 PP、伤害倍率控制、命中屏蔽、属性克制、暴击率调整等。
- 调整了部分已有 NewSeIdx 文件中的方法调用方式,统一使用 `ID().GetCatchTime()`
来判断精灵是否在场。
- 修改了 EffectIDCombiner 的字段访问方式,改为通过 Get/Set 方法操作。
- 优化战斗逻辑,在 NPC 战斗中加入 AI 自动出招机制。
2025-11-26 15:25:10 +08:00
1dbd4169e9
feat(xmlres): 更新 BOSS 配置结构并优化字段注释
...
新增多个 BOSS 相关配置字段,包括任务关联、奖励机制与挑战限制等,
增强 BOSS 精灵的可配置性与业务表达能力。同时完善字段注释以对齐 XML
实际使用情况,并保留原有部分字段用于兼容历史配置。
fix(fight): 调整战斗胜利回调执行顺序以确保数据一致性
将战斗结束回调移至广播之前执行,保证在发送战斗结果前已完成所有状态
更新,尤其是针对胜利宠物的信息同步
2025-11-22 22:57:32 +08:00
7f443736bc
feat(fight): 重构战斗效果触发机制与ID管理
...
- 统一将 Skill_Hit_Pre 和 Skill_Hit_Pre_ex 方法重命名为 Action_start 和 Action_start_ex
- 新增 Action_end 和 Action_end_ex 接口方法,完善行动周期控制
- 修改效果ID生成逻辑,使用 EffectIDCombiner 替代简单整数运算,提升扩展性
- 调整状态类效果判断方式,通过前缀匹配识别状态类型
- 增加随机持续时间和参数设置功能,增强部分效果的表现力
- 优化战斗流程中效果执行时机,确保行为前后逻辑完整闭环
2025-11-22 00:44:42 +08:00
53d6db7e17
fix(fight): 修复战斗中属性变化与暴击判定逻辑
...
- 调整能力提升计算时机,确保命中后再恢复原始属性
- 暴击判断前置,仅在命中时计算暴击翻倍及破防逻辑
- 优化回合结束效果清除逻辑,增加状态存活判断
refactor(controller): 重构擂台相关接口返回结构体类型
- 将 ARENA_SET_OWENR、ARENA_FIGHT_OWENR 等函数的返回值统一改为
NullOutboundInfo,并移除冗余字段返回
- 广播逻辑调整,统一使用 Broadcast
2025-11-20 05:57:29 +08:00
4a4806fd82
补全技能效果
2025-11-15 14:23:52 +00:00
d73eb9eb26
feat(fight): 实现属性变化还原机制并优化属性操作逻辑
...
- 为多个效果(effect_38、effect_45、effect_51、effect_55、effect_56)添加 `Alive` 方法,
用于在效果结束时还原精灵被修改的属性(如 MaxHp、Prop[0]、Prop[1]、PetInfo.Type)。
- 统一将对精灵属性类型的访问由 `PType` 修改为 `PetInfo.Type`,提升代码一致性与可维护性。
- 移除旧的回合开始/结束时手动保存和还原精灵信息的逻辑
2025-11-15 00:15:09 +08:00
a86782b1ea
```text
...
refactor(fight): 重构战斗准备逻辑并优化战斗启动流程
将 ReadyFight 方法拆分为多个职责清晰的子方法:
- buildFightStartInfo: 构建战斗初始信息
- checkBothPlayersReady: 检查PVP双方是否就绪
- handleNPCFightSpecial: 处理NPC战斗特殊逻辑(如可捕捉标记)
- startBattle: 统一启动战斗流程
同时修复部分逻辑顺序问题,增强代码可读性和扩展性。
feat(fight): 新增精灵王挑战协议支持
增加 StartPetWarInboundInfo 结构体用于接收精灵王挑战请求,
为后续实现相关功能提供基础。
fix(effect): 修正多个技能效果数值引用错误
- effect_37: 技能威力计算使用正确参数索引
- effect_50: 固定减伤比例调整为除以2
- effect_65: 正确比较技能分类类型
- effect_68: 致死保护改为锁定剩余1点生命值
- effect_77: 回复目标由敌方改为己方
- effect_93: 固定伤害值直接取参数
refactor(effect): 移除冗余效果类文件
删除 effect_133.go 和 effect_90.go 文件,其功能已被统一条件伤害和倍率系统取代;
移除 effect_74.go、effect_75.go 中重复的状态随机施加逻辑。
refactor(effect): 更新能力操作枚举命名一致性
重命名 AbilityOpType 枚举项名称,去除前缀,提升语义清晰度:
- AbilityOpStealStrengthen → StealStrengthen
- AbilityOpReverse → Reverse
- AbilityOpBounceWeaken → BounceWeaken
chore(fight): 完善 BattlePetEntity 属性初始化逻辑
在创建 BattlePetEntity 时即设置 PType,避免后续多次查询 PetMAP;
移除 Type() 方法中的冗余配置查找逻辑。
fix(skill): 确保必中技能不参与命中率计算
在 AttackTimeC 方法中添加 return 防止必中技能继续执行命中率公式计算。
refactor(fight): 调整战斗回合结束逻辑
进入新回合时允许玩家更换精灵,并提前跳出循环防止多余处理。
style(effect): 更正拼写及变量命名风格
修改 BaseSataus.Switch 方法签名中的参数命名;
更正 Effect58 中 can 字段首字母大写;
2025-11-14 23:09:16 +08:00