Files
bl/logic/service/player/new.go
昔念 53d6db7e17 fix(fight): 修复战斗中属性变化与暴击判定逻辑
- 调整能力提升计算时机,确保命中后再恢复原始属性
- 暴击判断前置,仅在命中时计算暴击翻倍及破防逻辑
- 优化回合结束效果清除逻辑,增加状态存活判断

refactor(controller): 重构擂台相关接口返回结构体类型

- 将 ARENA_SET_OWENR、ARENA_FIGHT_OWENR 等函数的返回值统一改为
  NullOutboundInfo,并移除冗余字段返回
- 广播逻辑调整,统一使用 Broadcast
2025-11-20 05:57:29 +08:00

41 lines
814 B
Go

package player
import (
"blazing/cool"
"blazing/logic/service/common"
"blazing/modules/blazing/model"
"time"
)
// NewPlayer 使用 Options 模式创建 Player 实例
func NewPlayer(opts ...PlayerOption) *Player {
p := &Player{
HavePVPinfo: make([]common.PlayerI, 0),
baseplayer: newbaseplayer(),
}
p.monsters = generateThreeUniqueNumbers()
p.Done = NewDone(p) //发布订阅事件
p.StopChan = cool.Cron.ScheduleFunc(10*time.Second, func() {
if p.Canmon != 0 { //已经进入地图或者没在战斗中,就可以刷新怪
p.SpawnMonsters()
}
})
for _, opt := range opts {
opt(p)
}
return p
}
func NewAI_player(i *model.PlayerInfo) *AI_player {
ret := &AI_player{
baseplayer: newbaseplayer(),
}
ret.Info = i
//ret.Info.Nick = xmlres.PetMAP[int(m.ID)].DefName
return ret
}