Files
bl/modules/blazing/model/ItemBonus.go

112 lines
4.5 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"
)
// ---------------- 精灵奖励表MonBonus----------------
// 表名常量(遵循小写+下划线命名规范)
const TableNameMonBonus = "mon_bonus"
// MonBonus 精灵奖励表
// 存储打赢BOSS/野怪后奖励的精灵属性配置(包含核心战斗属性、特性、闪光、性格等)
type MonBonus struct {
*cool.Model // 嵌入基础Model主键ID、创建/更新时间等通用字段)
// 核心唯一标识
MonBonusID uint32 `gorm:"not null;uniqueIndex:idx_mon_bonus_id;comment:'精灵奖励唯一标识ID对应XML中的MonBonusOutID'" json:"mon_bonus_id"`
// 你指定的精灵核心属性字段
MonID int32 `gorm:"not null;index:idx_mon_id;comment:'BOSS对应的精灵ID'" json:"mon_id"`
Hp int32 `gorm:"not null;comment:'BOSS血量值LvHpMatchUser非0时此配置无效'" json:"hp"`
Lv int32 `gorm:"not null;comment:'BOSS等级LvHpMatchUser非0时此配置无效'" json:"lv"`
Atk int32 `gorm:"not null;comment:'BOSS物理攻击'" json:"atk"`
Def int32 `gorm:"not null;comment:'BOSS物理防御'" json:"def"`
Spatk int32 `gorm:"not null;comment:'BOSS特殊攻击'" json:"spatk"`
Spdef int32 `gorm:"not null;comment:'BOSS特殊防御'" json:"spdef"`
Spd int32 `gorm:"not null;comment:'BOSS速度'" json:"spd"`
// 精灵扩展属性(贴合游戏业务)
Trait string `gorm:"type:varchar(64);default:'';comment:'精灵特性(例:猛火、蓄水)'" json:"trait"`
IsShiny bool `gorm:"not null;default:false;comment:'是否为闪光精灵true-是false-否)'" json:"is_shiny"`
Personality string `gorm:"type:varchar(64);default:'';comment:'精灵性格(例:固执、保守)'" json:"personality"`
// 通用配置字段
IsEnabled bool `gorm:"not null;default:true;comment:'该精灵奖励配置是否启用'" json:"is_enabled"`
Desc string `gorm:"type:varchar(512);default:'';comment:'精灵奖励描述击败火焰BOSS奖励闪光喷火龙'" json:"desc"`
}
// TableName 指定精灵奖励表名(遵循现有规范)
func (*MonBonus) TableName() string {
return TableNameMonBonus
}
// GroupName 指定表分组(与其他表保持一致的默认分组)
func (*MonBonus) GroupName() string {
return "default"
}
// NewMonBonus 创建精灵奖励表实例初始化基础Model
func NewMonBonus() *MonBonus {
return &MonBonus{
Model: cool.NewModel(),
}
}
// ---------------- 物品奖励表ItemBonus----------------
// 表名常量(遵循小写+下划线命名规范)
const TableNameItemBonus = "item_bonus"
// ItemBonus 物品奖励表
// 存储打赢BOSS/野怪后奖励的物品配置物品ID+数量,支持单条记录对应单个物品,便于灵活配置)
type ItemBonus struct {
*cool.Model // 嵌入基础Model主键ID、创建/更新时间等通用字段)
// 核心唯一标识
ItemBonusID uint32 `gorm:"not null;uniqueIndex:idx_item_bonus_id;comment:'物品奖励唯一标识ID对应XML中的ItemBonusOutID/ItemBonusID'" json:"item_bonus_id"`
// 物品核心配置字段
ItemID uint32 `gorm:"not null;index:idx_item_id;comment:'奖励物品ID'" json:"item_id"`
Count int32 `gorm:"not null;default:1;comment:'奖励物品数量(支持正数,负数表示扣减)'" json:"count"`
// 通用配置字段
IsEnabled bool `gorm:"not null;default:true;comment:'该物品奖励配置是否启用'" json:"is_enabled"`
Desc string `gorm:"type:varchar(512);default:'';comment:'物品奖励描述击败岩石BOSS奖励高级伤药x5'" json:"desc"`
}
// TableName 指定物品奖励表名(遵循现有规范)
func (*ItemBonus) TableName() string {
return TableNameItemBonus
}
// GroupName 指定表分组(与其他表保持一致的默认分组)
func (*ItemBonus) GroupName() string {
return "default"
}
// NewItemBonus 创建物品奖励表实例初始化基础Model
func NewItemBonus() *ItemBonus {
return &ItemBonus{
Model: cool.NewModel(),
}
}
// ---------------- 可选辅助方法(提升易用性)----------------
// AdjustCount 调整物品奖励数量(支持增量/减量)
func (i *ItemBonus) AdjustCount(delta int32) {
i.Count += delta
// 防止数量为负数(根据业务需求可选,若允许扣减则注释此行)
if i.Count < 0 {
i.Count = 0
}
}
// ---------------- 表初始化逻辑(与现有表保持一致)----------------
// init 程序启动时自动创建精灵奖励表和物品奖励表(若不存在)
func init() {
cool.CreateTable(&MonBonus{})
cool.CreateTable(&ItemBonus{})
}