All checks were successful
ci/woodpecker/push/my-first-workflow Pipeline was successful
将任务奖励逻辑重构到单独的文件中,增加对宠物技能和皮肤奖励的支持,优化任务完成处理流程
61 lines
1.7 KiB
Go
61 lines
1.7 KiB
Go
package model
|
||
|
||
import (
|
||
"blazing/cool"
|
||
)
|
||
|
||
const (
|
||
TableNameMapNode = "config_map_node"
|
||
)
|
||
|
||
const (
|
||
MapNodeTypeBoss = 1
|
||
MapNodeTypeNPC = 2
|
||
MapNodeTypeScene = 3
|
||
MapNodeTypePortal = 4
|
||
)
|
||
|
||
// MapNode stores map node config used by the existing boss/node flow.
|
||
type MapNode struct {
|
||
*BaseConfig
|
||
*Event
|
||
|
||
MapID int32 `gorm:"not null;index;comment:'所属地图ID'" json:"map_id" description:"地图ID"`
|
||
|
||
NodeID uint32 `gorm:"not null;default:0;comment:'节点ID'" json:"node_id" description:"节点ID"`
|
||
|
||
NodeName string `gorm:"type:varchar(100);default:'';comment:'节点名称'" json:"node_name" description:"节点名称"`
|
||
|
||
WinBonusID int `gorm:"type:int;default:0;comment:'胜利奖励ID'" json:"win_bonus_id"`
|
||
FailBonusID int `gorm:"type:int;default:0;comment:'失败奖励ID'" json:"fail_bonus_id"`
|
||
|
||
IsBroadcast uint32 `gorm:"type:int;default:0;comment:'广播模型ID(0表示不广播)'" json:"is_broadcast"`
|
||
|
||
IsGroupBoss uint32 `gorm:"type:int;default:0;comment:'是否为组队Boss(0否1是)'" json:"is_group_boss" description:"是否为组队Boss"`
|
||
PkFlag uint32 `gorm:"type:int;default:0;comment:'是否单精灵对战(0否1是)'" json:"pk_flag" description:"是否单精灵对战"`
|
||
|
||
TriggerPlotID uint32 `gorm:"default:0;comment:'触发剧情ID(0表示无剧情)'" json:"trigger_plot_id" description:"触发剧情ID"`
|
||
|
||
BossIds []uint32 `gorm:"type:jsonb;comment:'塔层BOSS ID列表'" json:"boss_ids"`
|
||
}
|
||
|
||
func (*MapNode) TableName() string {
|
||
return TableNameMapNode
|
||
}
|
||
|
||
func (*MapNode) GroupName() string {
|
||
return "default"
|
||
}
|
||
|
||
func NewMapNode() *MapNode {
|
||
return &MapNode{
|
||
BaseConfig: NewBaseConfig(),
|
||
Event: &Event{},
|
||
}
|
||
}
|
||
|
||
func init() {
|
||
cool.CreateTable(&MapConfig{})
|
||
cool.CreateTable(&MapNode{})
|
||
}
|