Files
bl/modules/blazing/model/pet_fusion_material.go
昔念 f73c11e571 ```
feat(pet): 实现精灵融合功能并优化相关数据结构

- 新增精灵融合主服务和材料服务,支持根据主副精灵ID查询融合结果
- 调整融合接口参数结构,将物品字段统一为数组形式
- 修改融合材料模型字段类型,提升数据一致性
- 重构融合配置相关逻辑,移除旧融合配置模型及服务
- 增加特性随机选择逻辑,确保融合产物具备有效特性
- 添加材料合法性校验,防止非法材料参与融合
```
2025-12-02 03:59:28 +08:00

49 lines
1.7 KiB
Go
Raw 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 model
import "blazing/cool"
const (
TableNamePetFusionMaterial = "pet_fusion_material" // 宠物融合材料表(子表)
)
// PetFusionMaterial 融合材料模型(与配方主表一对一关联)
type PetFusionMaterial struct {
*cool.Model // 嵌入通用ModelID/创建时间/更新时间等)
// 4个材料ID对应XML ItemGroup的Idx=1-4无材料填0
Material1 uint32 `gorm:"not null;comment:'材料1ID如400030'" json:"material1"`
Material2 uint32 `gorm:"not null;comment:'材料2ID如400030'" json:"material2"`
Material3 uint32 `gorm:"not null;comment:'材料3ID如400028'" json:"material3"`
Material4 uint32 `gorm:"not null;comment:'材料4ID如400030'" json:"material4"`
// 4个特性ID对应XML MaterialGroup的特性索引4-4对应
Trait1Idx uint32 `gorm:"not null;comment:'特性1索引如1008'" json:"trait1_idx"`
Trait2Idx uint32 `gorm:"not null;comment:'特性2索引如1018'" json:"trait2_idx"`
Trait3Idx uint32 `gorm:"not null;comment:'特性3索引如1023'" json:"trait3_idx"`
Trait4Idx uint32 `gorm:"not null;comment:'特性4索引如1031'" json:"trait4_idx"`
IsEnable int32 `gorm:"not null;default:1;comment:'是否启用该组合1:启用0:禁用)'" json:"is_enable"`
}
// TableName 指定子表名
func (*PetFusionMaterial) TableName() string {
return TableNamePetFusionMaterial
}
// GroupName 表分组(与主表一致)
func (*PetFusionMaterial) GroupName() string {
return "default"
}
// NewPetFusionMaterial 创建材料实例
func NewPetFusionMaterial() *PetFusionMaterial {
return &PetFusionMaterial{
Model: cool.NewModel(),
}
}
// init 初始化子表结构
func init() {
cool.CreateTable(&PetFusionMaterial{})
}