Files
bl/logic/service/pet/list.go
xinian e71971d0b4
All checks were successful
ci/woodpecker/push/my-first-workflow Pipeline was successful
refactor: 重构宠物背包逻辑到玩家服务
2026-04-05 05:47:25 +08:00

62 lines
2.7 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package pet
import (
"blazing/common/data"
"blazing/logic/service/common"
"blazing/modules/player/model"
)
type GetPetListOutboundInfo struct {
ShortInfoListLen uint32 `struc:"int32,sizeof=ShortInfoList"`
ShortInfoList []PetShortInfo
}
// PetShortInfo 精灵简要信息结构体
type PetShortInfo struct {
ID uint32 // 精灵类型ID
CatchTime uint32 // 精灵生成时间
Level uint32 // 精灵等级
SkinID uint32 // 精灵皮肤ID
ShinyLen uint32 `json:"-" struc:"sizeof=ShinyInfo"`
ShinyInfo []data.GlowFilter `json:"ShinyInfo,omitempty"`
}
// C2S_PetFusion 前端(Client)到后端(Server)的精灵融合请求包
type C2S_PetFusion struct {
Head common.TomeeHeader `cmd:"2351" struc:"skip"`
Mcatchtime uint32 `json:"mcatchtime" msgpack:"mcatchtime"` // 主精灵的时间戳
Auxcatchtime uint32 `json:"auxcatchtime" msgpack:"auxcatchtime"` // 副精灵的时间戳
Item1 [4]uint32 `json:"item1" msgpack:"item1"` // 物品序号1
GoldItem1 [2]uint32 `json:"gold_item1" msgpack:"gold_item1"` // 0代表未放置 金豆物品1C#:gold_item1
}
// PetFusionInfo 精灵融合结果详情(后端回包嵌套结构体)
type PetFusionInfo struct {
ObtainTime uint32 `json:"obtainTime" msgpack:"obtainTime"` // 如果获得时间为0 则代表融合失败
SoulID uint32 `json:"soulID" msgpack:"soulID"` // 元神珠的id 融合失败为0
StarterCpTm uint32 `json:"starterCpTm" msgpack:"starterCpTm"` // 融合失败为0
CostItemFlag uint32 `json:"costItemFlag" msgpack:"costItemFlag"` // 是不是消耗掉了金豆道具 1代表消耗道具
}
type RoomPetInfo struct {
OwnerId uint32
CatchTime uint32
ID uint32 `fieldDesc:"精灵编号" `
Nature uint32 `fieldDesc:"性格" `
Level uint32 `fieldDesc:"等级" `
Hp uint32
// * battle_lv: atk(0), def(1), sp_atk(2), sp_def(3), spd(4), accuracy(5)
Prop [5]uint32 `fieldDesc:"属性" `
SkillListLen uint32 `struc:"sizeof=SkillList"`
// 技能信息固定4条空则赋值0固定长度List → [4]SkillInfo零值即符合“赋值0”
SkillList []model.SkillInfo
// * ev:生命学习力,攻击学习力,防御学习力,特攻学习力,特防学习力,速度学习力
Ev [6]uint32 `fieldDesc:"属性" `
EffectInfoLen uint16 `struc:"sizeof=EffectInfo"`
// 特性列表长度用UShort存储变长List → []PetEffectInfo + 长度前缀规则) 第一个一定是特性
EffectInfo []model.PetEffectInfo `fieldDesc:"特性列表, 长度在头部以UShort存储" serialize:"lengthFirst,lengthType=uint16,type=structArray"`
}