```
All checks were successful
ci/woodpecker/push/my-first-workflow Pipeline was successful

fix(fight): 修复单输入战斗中效果处理逻辑错误

- 在Effect201的OnSkill方法中调整了多输入战斗检查的位置,
  确保单输入战斗中的单目标效果被正确忽略

- 添加了针对单输入战斗中单目标效果的测试用例

- 移除了重复的多输入战斗检查代码

feat(fight): 添加战斗初始化时捕获标识设置功能

- 在initfightready函数中添加对CanCapture字段的处理
  将玩家的捕获能力信息传递到战斗准备信息中

- 在ReadyFightPetInfo结构体中添加IsCapture字段用于
  标识宠物是否为捕获类型

refactor(fight): 调整战斗初始化顺序确保数据一致性

- 将ReadyInfo初始化移到绑定输入上下文之后执行
  确保团队视图链接完成后再进行准备信息构建

fix(player): 增加宠物血量检查避免无效匹配

- 在玩家匹配检测中增加首只宠物血量检查
  当首只宠物血量为0时不参与匹配以防止异常情况
```
This commit is contained in:
昔念
2026-04-13 10:21:13 +08:00
parent e161e3626f
commit eca7dd86e1
6 changed files with 112 additions and 48 deletions

View File

@@ -196,7 +196,7 @@ func (s *CdkService) UseServerNamingCDK(ctx context.Context, code string, ownerI
}
var server model.ServerList
if err := tx.Model(model.NewServerList()).With(model.ServerShow{}).Where("online_id", serverID).Scan(&server); err != nil {
if err := tx.Model(model.NewServerList()).Where("online_id", serverID).Scan(&server); err != nil {
return err
}
if server.OnlineID == 0 {
@@ -216,8 +216,13 @@ func (s *CdkService) UseServerNamingCDK(ctx context.Context, code string, ownerI
}
var currentShow model.ServerShow
if server.ServerShow != nil {
currentShow = *server.ServerShow
if err := tx.Model(model.NewServerShow()).
Where("server_id", serverID).
Where("owner", ownerID).
OrderDesc("id").
Limit(1).
Scan(&currentShow); err != nil {
return err
}
updated = currentShow
@@ -225,7 +230,7 @@ func (s *CdkService) UseServerNamingCDK(ctx context.Context, code string, ownerI
updated.Name = serverName
updated.Owner = ownerID
if currentShow.ServerID == 0 || !serverService.isActiveServerShow(&currentShow, now) || currentShow.Owner != ownerID {
if currentShow.ServerID == 0 || !serverService.isActiveServerShow(&currentShow, now) {
updated.ExpireTime = now.AddDate(0, 1, 0)
} else {
baseTime := currentShow.ExpireTime