feat(admin): 宠物管理功能优化 - 清理宠物控制器中的乱码字符 - 更新宠物获取请求结构体字段注释为英文描述 - 重构变量命名提高代码可读性 - 添加宠物存储信息服务方法 - 优化错误提示信息为英文 - 新增宠物等级查询接口 - 改进宠物购买逻辑验证 ```
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
package effect
|
package effect
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"blazing/logic/service/fight/input"
|
||||||
"blazing/logic/service/fight/node"
|
"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
|
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 {
|
type OgrePet struct {
|
||||||
Data [9]OgrePetInfo
|
Data [9]OgrePetInfo
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user