feat(fight): 优化擂台战斗逻辑与状态管理

- 修改了擂台主人设置逻辑,引入 `Set` 方法统一处理玩家信息更新
- 增加对擂主是否可战斗的判断,防止无效挑战
- 调整连胜计算和广播机制,确保数据一致性
- 修复擂台挑战失败时的状态回滚问题
- 引入错误码替代硬编码返回值,提高代码可读性与维护性
- 统一访问擂台玩家的方式,移除冗余字段
This commit is contained in:
2025-11-28 00:16:51 +08:00
parent 0ab1a85d17
commit f90581e0f6
13 changed files with 90 additions and 54 deletions

View File

@@ -50,7 +50,7 @@ func (h Controller) PET_King(data *fight.PetKingJoinInboundInfo, c *player.Playe
c.Fightinfo.Mode = info.BattleMode.MULTI_MODE
}
err = c.JoinFight(func(p common.PlayerI) bool {
fight.NewFight(p, c, func(foi *info.FightOverInfo) {
_, err = fight.NewFight(p, c, func(foi *info.FightOverInfo) {
if foi.Reason == 0 { //我放获胜
if foi.WinnerId == c.GetInfo().UserID {
c.Info.MonKingWin += 1
@@ -60,7 +60,10 @@ func (h Controller) PET_King(data *fight.PetKingJoinInboundInfo, c *player.Playe
}
}) ///开始对战,房主方以及被邀请方
if err > 0 { //说明有报错
return false
}
return true
})