feat(fight): 实现精灵大乱斗模式并优化对战逻辑

新增大乱斗模式(PET_MELEE)支持,重构原有精灵王之战相关逻辑。
更新战斗初始化流程,添加随机精灵选择机制。
调整玩家匹配与取消邀请接口实现方式。
完善战斗结束处理函数,移除未实现异常抛出。
```
This commit is contained in:
2025-11-15 01:53:51 +08:00
parent d73eb9eb26
commit 0e1860bdf4
7 changed files with 123 additions and 67 deletions

View File

@@ -2,12 +2,14 @@ package player
import (
"blazing/logic/service/common"
"blazing/logic/service/fight/info"
"blazing/logic/service/space"
)
// 邀请玩家加入战斗 邀请者,被邀请者,邀请模式
func (lw *Player) InvitePlayerToBattle() {
pinfo := lw.PVPinfo
space.GetSpace(lw.Info.MapID).User.IterCb(func(key uint32, v common.PlayerI) {
@@ -28,11 +30,25 @@ func (lw *Player) InvitePlayerToBattle() {
})
}
func (p *Player) PET_MELEE() *Player {
var lw *Player
//pinfo := lw.PVPinfo
space.GetSpace(p.Info.MapID).User.IterCb(func(key uint32, v common.PlayerI) {
// 取消对战邀请
func (lw *Player) CancelBattle() {
value := v.(*Player)
lw.PVPinfo = nil
if value.PVPinfo != nil && value != p {
//确认是乱斗模式
if value.PVPinfo.Mode == info.BattleMode.PET_MELEE {
lw = value
return
}
}
})
return lw
}
func (p *Player) SendLoadPercent(b info.LoadPercentOutboundInfo) {