feat(admin): 宠物管理功能优化 - 清理宠物控制器中的乱码字符 - 更新宠物获取请求结构体字段注释为英文描述 - 重构变量命名提高代码可读性 - 添加宠物存储信息服务方法 - 优化错误提示信息为英文 - 新增宠物等级查询接口 - 改进宠物购买逻辑验证 ```
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
"blazing/logic/service/fight/node"
|
||||
)
|
||||
|
||||
|
||||
@@ -1,59 +0,0 @@
|
||||
package player
|
||||
|
||||
import "sync/atomic"
|
||||
|
||||
const (
|
||||
ArenaFlagNoSwitchPet uint32 = 1 << iota
|
||||
ArenaFlagNoHeal
|
||||
ArenaFlagNoPVP
|
||||
)
|
||||
|
||||
const arenaHostFlagMask = ArenaFlagNoSwitchPet | ArenaFlagNoHeal | ArenaFlagNoPVP
|
||||
|
||||
func (p *Player) addArenaFlag(mask uint32) {
|
||||
for {
|
||||
current := atomic.LoadUint32(&p.ArenaFlags)
|
||||
next := current | mask
|
||||
if current == next || atomic.CompareAndSwapUint32(&p.ArenaFlags, current, next) {
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func (p *Player) clearArenaFlag(mask uint32) {
|
||||
for {
|
||||
current := atomic.LoadUint32(&p.ArenaFlags)
|
||||
next := current &^ mask
|
||||
if current == next || atomic.CompareAndSwapUint32(&p.ArenaFlags, current, next) {
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func (p *Player) HasArenaFlag(mask uint32) bool {
|
||||
return atomic.LoadUint32(&p.ArenaFlags)&mask != 0
|
||||
}
|
||||
|
||||
func (p *Player) SetArenaHostFlags() {
|
||||
p.addArenaFlag(arenaHostFlagMask)
|
||||
}
|
||||
|
||||
func (p *Player) ClearArenaHostFlags() {
|
||||
p.clearArenaFlag(arenaHostFlagMask)
|
||||
}
|
||||
|
||||
func (p *Player) IsArenaHost() bool {
|
||||
return p.HasArenaFlag(arenaHostFlagMask)
|
||||
}
|
||||
|
||||
func (p *Player) IsArenaSwitchLocked() bool {
|
||||
return p.HasArenaFlag(ArenaFlagNoSwitchPet)
|
||||
}
|
||||
|
||||
func (p *Player) IsArenaHealLocked() bool {
|
||||
return p.HasArenaFlag(ArenaFlagNoHeal)
|
||||
}
|
||||
|
||||
func (p *Player) IsArenaPVPLocked() bool {
|
||||
return p.HasArenaFlag(ArenaFlagNoPVP)
|
||||
}
|
||||
@@ -118,6 +118,62 @@ type Player struct {
|
||||
ArenaFlags uint32
|
||||
}
|
||||
|
||||
const (
|
||||
ArenaFlagNoSwitchPet uint32 = 1 << iota
|
||||
ArenaFlagNoHeal
|
||||
ArenaFlagNoPVP
|
||||
)
|
||||
|
||||
const arenaHostFlagMask = ArenaFlagNoSwitchPet | ArenaFlagNoHeal | ArenaFlagNoPVP
|
||||
|
||||
func (p *Player) addArenaFlag(mask uint32) {
|
||||
for {
|
||||
current := atomic.LoadUint32(&p.ArenaFlags)
|
||||
next := current | mask
|
||||
if current == next || atomic.CompareAndSwapUint32(&p.ArenaFlags, current, next) {
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func (p *Player) clearArenaFlag(mask uint32) {
|
||||
for {
|
||||
current := atomic.LoadUint32(&p.ArenaFlags)
|
||||
next := current &^ mask
|
||||
if current == next || atomic.CompareAndSwapUint32(&p.ArenaFlags, current, next) {
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func (p *Player) HasArenaFlag(mask uint32) bool {
|
||||
return atomic.LoadUint32(&p.ArenaFlags)&mask != 0
|
||||
}
|
||||
|
||||
func (p *Player) SetArenaHostFlags() {
|
||||
p.addArenaFlag(arenaHostFlagMask)
|
||||
}
|
||||
|
||||
func (p *Player) ClearArenaHostFlags() {
|
||||
p.clearArenaFlag(arenaHostFlagMask)
|
||||
}
|
||||
|
||||
func (p *Player) IsArenaHost() bool {
|
||||
return p.HasArenaFlag(arenaHostFlagMask)
|
||||
}
|
||||
|
||||
func (p *Player) IsArenaSwitchLocked() bool {
|
||||
return p.HasArenaFlag(ArenaFlagNoSwitchPet)
|
||||
}
|
||||
|
||||
func (p *Player) IsArenaHealLocked() bool {
|
||||
return p.HasArenaFlag(ArenaFlagNoHeal)
|
||||
}
|
||||
|
||||
func (p *Player) IsArenaPVPLocked() bool {
|
||||
return p.HasArenaFlag(ArenaFlagNoPVP)
|
||||
}
|
||||
|
||||
type OgrePet struct {
|
||||
Data [9]OgrePetInfo
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user