feat(fight): 添加旧组队协议支持并优化战斗系统 - 实现了旧组队协议相关功能,包括GroupReadyFightFinish、GroupUseSkill、 GroupUseItem、GroupChangePet和GroupEscape方法 - 新增组队战斗相关的入站信息结构体定义 - 实现了组队BOSS战斗逻辑,添加groupBossSlotLimit常量 - 重构宠物技能设置逻辑,调整金币消耗时机 - 优化战斗循环逻辑,添加对无行动槽位的处理 - 改进AI行动逻辑,增加多位置目标选择机制 - 完善捕获系统上下文处理,修复空指针问题 - 添加战斗状态更新和数据同步机制 fix(pet-skill): 修复宠物技能设置中的金币扣除逻辑错误 - 将金币扣除逻辑移到验证之后 - 修正宠物技能数量限制检查的顺序 - 防止重复添加已有技能的情况 refactor(fight): 重构战斗系统代码结构 - 分离新旧组队协议的战斗创建逻辑 - 优化战斗输入验证和处理流程 - 改进战斗循环中的错误处理机制 ```
This commit is contained in:
@@ -528,6 +528,27 @@ func (f *FightC) Broadcast(t func(ff *input.Input)) {
|
||||
|
||||
}
|
||||
|
||||
func (f *FightC) BroadcastPlayers(t func(common.PlayerI)) {
|
||||
if f == nil || t == nil {
|
||||
return
|
||||
}
|
||||
seen := make(map[uint32]struct{}, len(f.OurPlayers)+len(f.OppPlayers))
|
||||
visit := func(players []common.PlayerI) {
|
||||
for _, p := range players {
|
||||
if p == nil || p.GetInfo() == nil {
|
||||
continue
|
||||
}
|
||||
if _, ok := seen[p.GetInfo().UserID]; ok {
|
||||
continue
|
||||
}
|
||||
seen[p.GetInfo().UserID] = struct{}{}
|
||||
t(p)
|
||||
}
|
||||
}
|
||||
visit(f.OurPlayers)
|
||||
visit(f.OppPlayers)
|
||||
}
|
||||
|
||||
func (f *FightC) GetOverChan() chan struct{} {
|
||||
return f.over
|
||||
|
||||
|
||||
Reference in New Issue
Block a user