feat(model): 新增金豆消费、CDK配置、炫彩皮肤及双塔模型,优化物品奖励和BOSS配置
This commit is contained in:
122
modules/config/model/tower_600.go
Normal file
122
modules/config/model/tower_600.go
Normal file
@@ -0,0 +1,122 @@
|
||||
package model
|
||||
|
||||
import (
|
||||
"blazing/cool"
|
||||
"errors"
|
||||
"fmt"
|
||||
)
|
||||
|
||||
// 表名常量定义:勇者之塔配置表
|
||||
const (
|
||||
TableNameBraveTowerConfig = "brave_tower_config" // 勇者之塔配置表(核心记录层数、BOSS数组、奖励物品/精灵)
|
||||
)
|
||||
|
||||
// BraveTowerConfig 勇者之塔核心配置模型(结构简洁,无额外专属字段)
|
||||
type BraveTowerConfig struct {
|
||||
BaseTowerConfig
|
||||
}
|
||||
|
||||
// -------------------------- 核心配套方法(结构与试炼之塔完全一致)--------------------------
|
||||
func (*BraveTowerConfig) TableName() string {
|
||||
return TableNameBraveTowerConfig
|
||||
}
|
||||
|
||||
func (*BraveTowerConfig) GroupName() string {
|
||||
return "default"
|
||||
}
|
||||
|
||||
func NewBraveTowerConfig() *BraveTowerConfig {
|
||||
return &BraveTowerConfig{
|
||||
BaseTowerConfig: NewBaseTowerConfig(),
|
||||
}
|
||||
}
|
||||
|
||||
// -------------------------- 业务操作方法(两个塔方法逻辑完全一致)--------------------------
|
||||
// AddBossId 为勇者之塔添加单个BOSS ID(避免重复)
|
||||
func (b *BraveTowerConfig) AddBossId(bossId uint32) error {
|
||||
if bossId == 0 {
|
||||
return errors.New("BOSS ID不能为空(不能为0)")
|
||||
}
|
||||
for _, id := range b.BossIds {
|
||||
if id == bossId {
|
||||
return fmt.Errorf("BOSS ID%d已绑定勇者之塔%d层,无需重复添加", bossId, b.TowerLevel)
|
||||
}
|
||||
}
|
||||
b.BossIds = append(b.BossIds, bossId)
|
||||
return nil
|
||||
}
|
||||
|
||||
// AddItemRewardId 为勇者之塔添加单个奖励物品ID(避免重复)
|
||||
func (b *BraveTowerConfig) AddItemRewardId(itemId uint32) error {
|
||||
if itemId == 0 {
|
||||
return errors.New("奖励物品ID不能为空(不能为0)")
|
||||
}
|
||||
for _, id := range b.ItemRewardIds {
|
||||
if id == itemId {
|
||||
return fmt.Errorf("奖励物品ID%d已绑定勇者之塔%d层,无需重复添加", itemId, b.TowerLevel)
|
||||
}
|
||||
}
|
||||
b.ItemRewardIds = append(b.ItemRewardIds, itemId)
|
||||
return nil
|
||||
}
|
||||
|
||||
// AddElfRewardId 为勇者之塔添加单个奖励精灵ID(避免重复)
|
||||
func (b *BraveTowerConfig) AddElfRewardId(elfId uint32) error {
|
||||
if elfId == 0 {
|
||||
return errors.New("奖励精灵ID不能为空(不能为0)")
|
||||
}
|
||||
for _, id := range b.ElfRewardIds {
|
||||
if id == elfId {
|
||||
return fmt.Errorf("奖励精灵ID%d已绑定勇者之塔%d层,无需重复添加", elfId, b.TowerLevel)
|
||||
}
|
||||
}
|
||||
b.ElfRewardIds = append(b.ElfRewardIds, elfId)
|
||||
return nil
|
||||
}
|
||||
|
||||
// RemoveBossId 从勇者之塔移除单个BOSS ID
|
||||
func (b *BraveTowerConfig) RemoveBossId(bossId uint32) error {
|
||||
if bossId == 0 {
|
||||
return errors.New("BOSS ID不能为空(不能为0)")
|
||||
}
|
||||
for i, id := range b.BossIds {
|
||||
if id == bossId {
|
||||
b.BossIds = append(b.BossIds[:i], b.BossIds[i+1:]...)
|
||||
return nil
|
||||
}
|
||||
}
|
||||
return fmt.Errorf("勇者之塔%d层未绑定BOSS ID%d,无法移除", b.TowerLevel, bossId)
|
||||
}
|
||||
|
||||
// RemoveItemRewardId 从勇者之塔移除单个奖励物品ID
|
||||
func (b *BraveTowerConfig) RemoveItemRewardId(itemId uint32) error {
|
||||
if itemId == 0 {
|
||||
return errors.New("奖励物品ID不能为空(不能为0)")
|
||||
}
|
||||
for i, id := range b.ItemRewardIds {
|
||||
if id == itemId {
|
||||
b.ItemRewardIds = append(b.ItemRewardIds[:i], b.ItemRewardIds[i+1:]...)
|
||||
return nil
|
||||
}
|
||||
}
|
||||
return fmt.Errorf("勇者之塔%d层未绑定奖励物品ID%d,无法移除", b.TowerLevel, itemId)
|
||||
}
|
||||
|
||||
// RemoveElfRewardId 从勇者之塔移除单个奖励精灵ID
|
||||
func (b *BraveTowerConfig) RemoveElfRewardId(elfId uint32) error {
|
||||
if elfId == 0 {
|
||||
return errors.New("奖励精灵ID不能为空(不能为0)")
|
||||
}
|
||||
for i, id := range b.ElfRewardIds {
|
||||
if id == elfId {
|
||||
b.ElfRewardIds = append(b.ElfRewardIds[:i], b.ElfRewardIds[i+1:]...)
|
||||
return nil
|
||||
}
|
||||
}
|
||||
return fmt.Errorf("勇者之塔%d层未绑定奖励精灵ID%d,无法移除", b.TowerLevel, elfId)
|
||||
}
|
||||
|
||||
// -------------------------- 表结构自动同步 --------------------------
|
||||
func init() {
|
||||
cool.CreateTable(&BraveTowerConfig{})
|
||||
}
|
||||
Reference in New Issue
Block a user