Files
bl/modules/blazing/service/pet.go
昔念 4b5c6ce129 refactor(logic): 重构战斗相关逻辑和数据结构
- 优化了 FightPetInfo 和 AttackValue 结构体,使用更合理的数据类型
- 重新定义了战斗流程中的各种消息结构体
- 改进了宠物信息生成和计算逻辑
- 重构了宠物相关服务和控制器方法
- 优化了数据库操作,提高了代码的可读性和维护性
2025-09-01 01:03:46 +08:00

76 lines
1.7 KiB
Go

package service
import (
"blazing/cool"
"blazing/modules/blazing/model"
"encoding/json"
)
// 获取精灵信息 0是仓库,1是背包,2是放生
func (s *UserService) GetPetList(flag int) (ret []model.PetInfo) {
ret = make([]model.PetInfo, 0)
m := cool.DBM(s.pet.Model).Where("player_id", s.userid).Where("in_bag", flag)
var tt []model.Pet
m.Scan(&tt)
for _, v := range tt {
var ret11 model.PetInfo
json.Unmarshal([]byte(v.Data), &ret11)
ret = append(ret, ret11)
}
return
}
func (s *UserService) GetPetInfo(cachetime uint32) (ret model.PetInfo) {
m := cool.DBM(s.pet.Model).Where("player_id", s.userid).Where("catch_time", cachetime)
var tt model.Pet
m.Scan(&tt)
json.Unmarshal([]byte(tt.Data), &ret)
return
}
func (s *UserService) PetExec(ctime uint32, t func(uint32, model.PetInfo) model.PetInfo) {
//todo待测试
var player model.Pet
m1 := cool.DBM(s.pet.Model).Where("player_id", s.userid).Where("catch_time", ctime)
m1.Scan(&player)
var tt model.PetInfo
json.Unmarshal([]byte(player.Data), &tt)
t(player.CatchTime, tt)
tmep, _ := json.Marshal(tt)
player.Data = string(tmep)
m1.Save(player)
}
func (s *UserService) PetAdd(y model.PetInfo) {
m1 := cool.DBM(s.pet.Model).Where("player_id", s.userid)
var player model.Pet
player.PlayerID = s.userid
player.CatchTime = y.CatchTime
player.InBag = 0
tmp, _ := json.Marshal(y)
player.Data = string(tmp)
m1.Insert(player)
}
func (s *UserService) PetM(ctime, type1 int) model.PetInfo {
m1 := cool.DBM(s.pet.Model).Where("player_id", s.userid).Where("catch_time", ctime)
var player model.Pet
m1.Scan(&player)
player.InBag = type1
var tt model.PetInfo
json.Unmarshal([]byte(player.Data), &tt)
m1.Update(player)
return tt
}