Files
bl/logic/controller/fight_pvp_king.go
昔念 e341623fc0 ```
refactor(fight): 修正战斗回调函数参数类型

- 修正所有战斗相关控制器中的回调函数参数类型
- 将 func(*info.FightOverInfo) 改为 func(info.FightOverInfo)
- 保持代码逻辑不变,仅修复类型声明

feat(pet): 实现精灵图鉴功能

- 添加精灵捕捉和击杀数量统计功能
- 实现 GetPetBargeList 接口返回图鉴列表
- 在战斗胜利后自动更新图鉴状态

refactor(fight): 优化战斗循环逻辑

- 重构
2026-01-03 02:18:31 +08:00

63 lines
1.5 KiB
Go

package controller
import (
"blazing/common/socket/errorcode"
"blazing/logic/service/common"
"blazing/logic/service/fight"
"blazing/logic/service/fight/info"
"blazing/logic/service/player"
)
//大乱斗
func (h Controller) PetMelee(data *fight.StartPetWarInboundInfo, c *player.Player) (result *fight.NullOutboundInfo, err errorcode.ErrorCode) {
c.Fightinfo.Mode = info.BattleMode.PET_MELEE
c.Fightinfo.Status = info.BattleMode.PET_MELEE
err = c.JoinFight(func(p common.PlayerI) bool {
_, err = fight.NewFight(p, c, func(foi info.FightOverInfo) {
if foi.Reason == 0 { //我放获胜
if foi.WinnerId == c.GetInfo().UserID {
c.Info.MessWin += 1
} else {
p.GetInfo().MessWin += 1
}
}
}) ///开始对战,房主方以及被邀请方
return err <= 0
})
return
}
func (h Controller) PetKing(data *fight.PetKingJoinInboundInfo, c *player.Player) (result *fight.NullOutboundInfo, err errorcode.ErrorCode) {
c.Fightinfo.Status = info.BattleMode.PET_TOPLEVEL
switch data.Type {
case 5:
c.Fightinfo.Mode = info.BattleMode.SINGLE_MODE
case 6:
c.Fightinfo.Mode = info.BattleMode.MULTI_MODE
}
err = c.JoinFight(func(p common.PlayerI) bool {
_, err = fight.NewFight(p, c, func(foi info.FightOverInfo) {
if foi.Reason == 0 { //我放获胜
if foi.WinnerId == c.GetInfo().UserID {
c.Info.MonKingWin += 1
} else {
p.GetInfo().MonKingWin += 1
}
}
}) ///开始对战,房主方以及被邀请方
return err <= 0
})
return
}