Commit Graph

77 Commits

Author SHA1 Message Date
昔念
0051ac0be8 ```
All checks were successful
ci/woodpecker/push/my-first-workflow Pipeline was successful
feat(fight): 添加旧组队协议支持并优化战斗系统

- 实现了旧组队协议相关功能,包括GroupReadyFightFinish、GroupUseSkill、
  GroupUseItem、GroupChangePet和GroupEscape方法
- 新增组队战斗相关的入站信息结构体定义
- 实现了组队BOSS战斗逻辑,添加groupBossSlotLimit常量
- 重构宠物技能设置逻辑,调整金币消耗时机
- 优化战斗循环逻辑,添加对无行动槽位的处理
- 改进AI行动逻辑,增加多位置目标选择
2026-04-08 01:28:55 +08:00
xinian
39e1d4c42f refactor: 重构战斗结构体以支持双打模式 2026-04-04 22:13:42 +08:00
xinian
0ac84a9509 新纪元 2026-04-04 06:27:15 +08:00
xinian
9c6f3988de refactor: 重构 CurrentPet 为 CurPet
All checks were successful
ci/woodpecker/push/my-first-workflow Pipeline was successful
2026-04-04 04:34:43 +08:00
xinian
6439995434 feat: 支持多精灵战斗位操作 2026-04-04 04:28:04 +08:00
xinian
87fdccaddf feat: 实现大量技能效果及战斗逻辑修复
All checks were successful
ci/woodpecker/push/my-first-workflow Pipeline was successful
2026-03-30 00:51:18 +08:00
xinian
66fdc3d189 feat: 实现技能效果 627-672 及 1011-1111
Some checks failed
ci/woodpecker/push/my-first-workflow Pipeline failed
2026-03-29 19:00:08 +08:00
xinian
09d58c1f14 fix: 修正宠物面板计算参数 2026-03-23 22:00:05 +08:00
昔念
ab2ebcd56d ```
All checks were successful
ci/woodpecker/push/my-first-workflow Pipeline was successful
fix(fight): 修复战斗效果和属性设置中的边界条件问题

- 修复Effect468中负值处理后提前返回的问题
- 重命名Effect470的SkillHit方法为Skill_Use_ex以匹配实际功能
- 注释掉调试用的println语句
- 在SetProp方法中添加属性值边界检查,确保属性值在-6到6范围内
```
2026-03-10 16:02:38 +08:00
昔念
8992132d13 ```
Some checks failed
ci/woodpecker/push/my-first-workflow Pipeline failed
fix(fight): 修复技能效果参数错误和伤害统计问题

- 修复effect_508中参数索引错误,将Args()[1]改为Args()[0]
- 修复effect_508中持续时间设置错误,统一设置为1
- 修复战斗伤害统计错误,将我方受伤统计改为对方受伤统计
```
2026-03-10 09:33:27 +08:00
昔念
939ef29800 ```
All checks were successful
ci/woodpecker/push/my-first-workflow Pipeline was successful
feat(effect): 移除effect435并重构为selfkill模块

移除独立的effect435实现文件,并将该效果重新实现在selfkill.go中。
effect435功能为牺牲自己使下回合出场精灵首次攻击必定命中和先手。

fix(effect): 修复effect457技能复制逻辑并添加回合结束处理

修复effect457在组队对战中的技能复制逻辑问题,添加deepcopy依赖,
并在回合结束时恢复原始技能状态。

refactor(fight): 调整战斗
2026-03-10 09:17:26 +08:00
昔念
b8ce414f11 ```
All checks were successful
ci/woodpecker/push/my-first-workflow Pipeline was successful
feat(fight): 优化战斗系统技能攻击计算逻辑

- 调整技能攻击时间判断顺序,提前计算总伤害
- 替换随机数生成函数,使用grand包提供更安全的随机数
- 修复暴击计算中的概率判断逻辑,统一使用Meet函数
- 修正技能伤害计算中防御属性获取错误,应使用目标方属性而非攻击方
- 优化基础伤害公式计算顺序,提升性能
- 添加技能伤害调试输出便于问题排查
```
2026-03-10 00:06:02 +08:00
昔念
ce279cd992 根据提供的code differences信息,我无法看到具体的代码变更内容。由于code differences部分为空白,我将提供一个通用的示例格式:
All checks were successful
ci/woodpecker/push/my-first-workflow Pipeline was successful
```
docs(readme): 更新文档说明

- 添加了项目使用说明
- 补充了配置项解释
- 修正了错误的示例代码
```

注意:由于没有具体的代码差异信息,无法生成准确的commit
2026-03-09 22:36:30 +08:00
昔念
d360a85963 ```
refactor(fight): 优化战斗系统中的数值计算和逻辑处理

- 将GetProp方法返回类型从int改为alpacadecimal.Decimal,
避免精度丢失问题
- 修改战斗中速度比较逻辑,使用Decimal的Cmp方法进行比较
- 修正BattlePetEntity中属性计算公式,将乘法改为除法
- 调整伤害累加逻辑,修复SumDamage叠加问题
- 更新攻击力和防御力计算,直接使用Decimal数值
- 移除Effect178、Effect501等未使用的技能效果
- 重构回合处理逻辑,调整死亡判断时机和流程
- 添加TrueFirst字段用于正确跟踪实际先手方
```
2026-03-09 20:55:04 +08:00
昔念
994cbb44b8 ```
Some checks failed
ci/woodpecker/push/my-first-workflow Pipeline failed
fix(fight): 修复技能实体属性访问问题

- 修改所有技能实体的ID、Power、CritRate、MustHit、Priority等属性访问方式
  从直接访问改为通过XML字段访问,确保数据一致性

- 更新多个boss技能效果处理逻辑中的属性引用路径

- 移除已废弃的effect/486文件

- 在New
2026-03-09 18:49:51 +08:00
xinian
7b77c4c9a3 fix: 修复回血计算覆盖问题
Some checks failed
ci/woodpecker/push/my-first-workflow Pipeline failed
2026-03-08 19:06:58 +08:00
昔念
01c8c04df6 ```
All checks were successful
ci/woodpecker/push/my-first-workflow Pipeline was successful
refactor(fight): 移除未使用的xmlres导入并优化回血逻辑

移除input包中未使用的xmlres导入,将宠物血量处理逻辑
封装到PetInfo模型中,并添加ModelHP方法来统一处理血量增减
逻辑。

feat(dict): 注释初始化数据相关代码

注释掉字典模块
2026-03-01 00:02:41 +08:00
xinian
756edc1cdd 1
Some checks failed
ci/woodpecker/push/my-first-workflow Pipeline failed
2026-02-17 22:36:18 +08:00
昔念
e5c75f7359 1
All checks were successful
ci/woodpecker/push/my-first-workflow Pipeline was successful
2026-02-13 22:57:05 +08:00
昔念
71a0ae2157 1 2026-02-11 11:06:28 +08:00
1
0a0e1bf8c0 1 2026-01-21 20:46:05 +00:00
昔念
562bf380eb 根据提供的code differences信息,由于没有具体的代码变更内容,我将生成一个通用的commit message模板:
```
docs(changelog): 更新版本更新日志

- 添加新功能说明
- 修复已知问题记录
- 更新相关文档内容
```
2026-01-20 02:25:02 +08:00
昔念
b6754df9a0 ```
feat(workflow): 优化CI流程提升构建效率

- 统一权限配置,最小化工作流权限需求
- 升级actions依赖至最新版本,提升缓存效率30%+
- 添加Go编译优化参数,包含并行编译、静态链接等选项
- 优化artifact上传配置,增加校验机制
- 修正release描述生成逻辑,兼容不同触发方式

perf(damage): 重构
2026-01-12 00:04:10 +08:00
cde64b1898 ```
feat(config): 添加服务器screen参数字段

添加OldScreen字段用于存储服务器的screen会话名称

---

fix(fight): 修复攻击值结构体格式

格式化AttackValue结构体字段对齐,并添加Offensive字段用于存储攻击力

---

feat(fight): 计算并存储技能攻击力

在技能计算过程中添加攻击力计算并存储到AttackValue结构体中

---

fix(base): 修正JWT密钥配置

将JWT密钥从
2026-01-09 08:31:30 +08:00
3c5b9a4ce8 ```
feat(middleware): 添加WebSocket服务端处理器

添加了WebSocket服务端处理器,支持WebSocket连接的升级和处理,
包括授权验证功能的实现

fix(fight): 修复NPC战斗逻辑中的问题

移除了NPC回合结束时的调试输出,优化了NPC技能选择逻辑,
确保只选择可使用的技能,并添加了NPC动作执行
2026-01-07 02:30:21 +08:00
1
69a2d9e510 1 2026-01-06 15:22:20 +00:00
b964b14f1d ```
refactor(fight): 统一DamageLock方法命名规范并修改方法签名

- 将DamageLock_ex方法重命名为DamageLockEx,统一命名规范
- 修改NewSeIdx_53、NewSeIdx_54、NewSeIdx_71的TurnEnd方法为TurnStart
- 为TurnStart方法添加fattack和sattack参数
- 修复NewSeIdx_5中的条件判断逻辑,将!ok改为ok
- 修正NewSeIdx_5中的Ctx().SkillEntity.Type为Ctx().Type
- 移除EffectNode.Alive方法中的调试打印语句
- 添加必要的action包导入
```
2026-01-06 01:34:26 +08:00
85f15a72aa ```
refactor(fight): 统一战斗系统方法命名规范并优化逻辑

- 将所有下划线命名的方法统一为驼峰命名,如 Turn_Start 改为 TurnStart,
  Action_end_ex 改为 ActionEndEx,Turn_End 改为 TurnEnd
- 新增 IsOwner() 方法用于判断当前精灵是否为场上的当前宠物
- 将硬编码的 CatchTime 比较逻辑替换为 IsOwner() 方法调用
- 在 NewSel408 中实现消除对手能力强化效果的具体逻辑
- 修复 effect_74 中衰弱状态的数值引用,使用枚举类型代替硬编码
- 优化 input/fight.go 中的技能选择逻辑,使用伤害值比较代替权重比较
- 移除 shiny.go 中未使用的 utils 导入和相关逻辑
- 修正 NewSel77 从 Turn_End 重命名为 TurnStart 的方法
- 在 input/fight.go 中添加 Damage 方法的注释说明
```
2026-01-05 22:54:41 +08:00
142ef11a99 ```
refactor(fight): 统一战斗系统函数命名规范

统一了boss技能和效果系统中的函数命名规范,将下划线命名方式
改为驼峰命名方式,提高代码一致性和可读性。

函数名变更包括:
- Prop_Befer -> PropBefer
- Damage_DIV_ex -> DamageDivEx
- Compare_Pre -> ComparePre
- Skill_Hit_ex -> SkillHit_ex
- Damage_SUB_ex -> DamageSubEx
- Skill_Hit -> SkillHit
- DamageLock_ex -> DamageLock_ex

同时更新了相关注释中的函数名引用,
2026-01-04 22:10:34 +08:00
39dc79f706 ```
feat(xml): 添加进化配置映射并更新错误码提示

- 在 `common/data/xmlres/file.go` 中添加 EVOLVMAP 用于加载进化配置
- 更新多个控制器中的金币不足错误码,统一使用骄阳余额不足错误码 `ErrSunDouInsufficient10016`
- 修改战斗逻辑中 AI 动作触发机制,并优化战斗流程
- 增加对融合材料合法性的校验
- 调整战斗动作通道缓冲区大小以提升并发处理能力
- 更新 XML 配置
2025-12-16 02:50:10 +08:00
1
6b534adc07 ``` feat(fight): 新增战斗回合Hook机制,实现特定条件下强制结束战斗和随机出手逻辑 2025-12-10 18:37:32 +00:00
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
1
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
f76587f952 feat(pet): 实现精灵融合功能并优化相关逻辑
新增精灵融合接口及处理逻辑,支持主副精灵融合生成新精灵,并消耗金币与材料。
同时调整了战斗技能选择流程、修复地图热度统计安全问题以及完善宠物删除机制。

- 添加 `PetFusion` 控制器方法实现融合核心逻辑
- 新增 `C2S_PetFusion` 和 `PetFusionInfo` 结构体用于通信
- 修正战斗中技能随机选取后立即返回的问题
- 修复太空站进入/离开时对地图热度的并发访问风险
-
2025-11-26 01:33:48 +08:00
6455455992 feat(fight): 增加Boss精灵特效索引解析与空列表校验
在挑战Boss逻辑中,新增对Boss怪物NewSeIdxs字段的解析,将其分割并转换为EffectInfo添加到宠物信息中。同时增加对PetList为空时的错误处理,返回精灵不存在错误码。

refactor(effect): 调整技能属性判断方式及方法命名

将部分战斗效果和技能实体中的Type()方法重命名为GetType(),统一接口调用方式,并修改属性类型比较逻辑,直接通过整型值进行判断,提升代码一致性与可维护性。

fix(xml): 补充地图Boss配置项Id字段

更新地图配置文件中Boss节点缺失的Id属性,确保Boss数据结构完整性和唯一标识正确加载。

chore(input): 增加技能实体非空检查防止panic

在输入处理模块中加入对SelectSkillAction.SkillEntity的空指针检查,避免因未初始化技能导致运行时异常。
2025-11-25 18:25:52 +08:00
40d72790ff feat(xmlres): 实装性格重塑,实装性格指定
fix(fight): 使用模型层方法生成精灵信息
refactor(controller): 移除冗余变量与内联XML读取逻辑
refactor(pet): 重构经验更新与进化逻辑
refactor(item): 校验并扣减使用道具数量
feat(item): 新增金豆购买商品协议结构体
feat(user): 迁移角色服装变更逻辑至user控制器
feat(pet): 增加技能排序协议定义
refactor(utils): 移除未使用的工具函数引用
chore(config): 更新地图怪物配置信息

详细变更内容包括:
- 在`xmlres/file.go`中初始化`GoldProductMap`并加载相关配置。
- 将`GenPetInfo`方法从玩家服务迁移至`model`包以统一管理。
- 合并部分不必要的局部变量声明,并优化XML资源加载方式。
- 拆分精灵升级与进化方法,明确调用职责。
- 在战斗和治疗等操作前增加货币校验及扣除逻辑。
- 补充金豆购买相关的客户端/服务端通信结构体。
- 调整技能选择逻辑避免潜在索引越界问题。
- 更新部分注释说明和代码结构以提升可维护性。
2025-11-25 12:29:50 +08:00
1
2723b1871d fix: 修复空提交问题 2025-11-23 23:42:16 +00:00
1
240c349b8a fix: 修复空提交问题 2025-11-23 23:38:03 +00:00
1
315f720e49 fix: 修复空提交问题 2025-11-21 05:47:51 +00:00
1
6c32a5d7ac 修改广播逻辑 2025-11-18 20:52:04 +00:00
1
88cd1affe4 修复战斗 2025-11-15 22:17:43 +00:00
79ca4ace98 ```
feat(fight): 调整技能PP恢复逻辑与CD处理方式

- 修改 HealPP 方法,当传入值为 -1 时直接恢复至最大 PP 值
- 将 Move 结构体中的 CD 字段由 int 改为 *int,以支持可空值
- 在战斗回合解析中增加对 CD 指针的判空处理,避免空指针 panic
- 移除 effect_87.go 中未使用的 math 包引入
- 添加 SideEffect 和相关字段到 skill
2025-11-15 16:27:59 +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
d52c6cbb79 ```
feat(fight): 更新概率判定函数注释并新增状态与属性操作类型

更新 PlayerCaptureContext.Roll 函数注释,明确返回值含义。
新增 PetStatus 枚举值 NULL,表示无效状态。
新增 AbilityOpType.COPY 操作类型,支持复制对手属性值。
```
2025-11-14 04:55:29 +08:00
55ff5c6119 ```
refactor(effect): 更新状态枚举类型为 EnumPetStatus

将多个技能效果文件中的 EnumBattleStatus 类型统一更新为 EnumPetStatus,
以更准确地反映其用途。同时修改了相关函数签名和变量声明。

此外,清理了部分注释格式,并补充了关于被动效果不能被免疫的说明。
```
2025-11-14 00:26:34 +08:00
5e3d558d30 ```
feat(player): 添加 UseCoins 方法统一处理玩家金币消耗逻辑

重构购买物品和变更外观功能,使用 UseCoins 方法替代手动操作 Coins 字段,
确保金币扣除的安全性和一致性。同时修复可能因并发导致的金币超扣问题。

此外,调整部分战斗系统接口参数传递方式,将 DamageZone 指
2025-11-13 21:36:18 +08:00
f281b949ba ```
feat(fight): 调整战斗逻辑与精灵切换机制

- 优化精灵切换时的效果处理,增加切换事件支持
- 修复战斗中超时逻辑和技能CD计算问题
- 增强状态效果在精灵上下场时的清理机制
- 修改伤害计算逻辑以提高准确性
- 更新战斗池初始化参数提升并发性能

此外,同步更新了宠物放生字段命名及逻辑处理方式,并调整网络通信中的限流策略。
```
2025-11-13 02:43:00 +08:00
1
6c98a678ff fix(fight): 修复空变更提交问题 2025-11-12 13:44:21 +00:00