```
feat(fight_tawor): 优化试炼之塔和勇者之塔战斗逻辑 - 修正函数注释格式,使用正确的缩进格式化参数说明 - 移除硬编码的MapID设置,统一在EnterMap/LeaveMap中处理 - 将进入地图逻辑改为离开地图,优化战斗流程 - 简化退出战斗逻辑,移除重复的MapID设置 refactor(config): 重命名塔配置模型和接口前缀 - 将试炼之塔模型TrialTowerConfig重命名为Tower500Config - 将勇者之塔模型BraveTowerConfig重命名为Tower600Config - 移除重复的业务操作方法,统一使用基础配置 - 更新Boss控制器接口前缀从/monster/boss到/config/boss refactor(boss): 移除不必要的导入和扩展结构 - 移除boss_pet.go中的冗余data包导入 - 移除BossConfigEX扩展结构,简化模型
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
package model
|
||||
|
||||
import (
|
||||
"blazing/common/data"
|
||||
"blazing/cool"
|
||||
)
|
||||
|
||||
@@ -19,12 +18,6 @@ type BossConfig struct {
|
||||
// ISgift uint32 `gorm:"not null;default:0;comment:'是否是礼物'" json:"is_gif"`
|
||||
}
|
||||
|
||||
// BossConfigEX 扩展BOSS配置模型(用于前端/业务层的数组格式解析)
|
||||
type BossConfigEX struct {
|
||||
BossConfig
|
||||
Color data.GlowFilter `json:"color"`
|
||||
}
|
||||
|
||||
// TableName 指定BossConfig对应的数据库表名
|
||||
func (*BossConfig) TableName() string {
|
||||
return TableNameBossConfig
|
||||
|
||||
@@ -2,8 +2,6 @@ package model
|
||||
|
||||
import (
|
||||
"blazing/cool"
|
||||
"errors"
|
||||
"fmt"
|
||||
)
|
||||
|
||||
// 表名常量定义:试炼之塔配置表
|
||||
@@ -32,112 +30,27 @@ func NewBaseTowerConfig() BaseTowerConfig {
|
||||
}
|
||||
}
|
||||
|
||||
// TrialTowerConfig 试炼之塔核心配置模型(与勇者之塔结构完全一致,无额外专属字段)
|
||||
type TrialTowerConfig struct {
|
||||
// Tower500Config 试炼之塔核心配置模型(与勇者之塔结构完全一致,无额外专属字段)
|
||||
type Tower500Config struct {
|
||||
BaseTowerConfig
|
||||
}
|
||||
|
||||
// -------------------------- 核心配套方法(与勇者之塔完全一致)--------------------------
|
||||
func (*TrialTowerConfig) TableName() string {
|
||||
func (*Tower500Config) TableName() string {
|
||||
return TableNameTrialTowerConfig
|
||||
}
|
||||
|
||||
func (*TrialTowerConfig) GroupName() string {
|
||||
func (*Tower500Config) GroupName() string {
|
||||
return "default"
|
||||
}
|
||||
|
||||
func NewTrialTowerConfig() *TrialTowerConfig {
|
||||
return &TrialTowerConfig{
|
||||
func New500TowerConfig() *Tower500Config {
|
||||
return &Tower500Config{
|
||||
BaseTowerConfig: NewBaseTowerConfig(),
|
||||
}
|
||||
}
|
||||
|
||||
// -------------------------- 业务操作方法(与勇者之塔逻辑完全一致,仅模型标识不同)--------------------------
|
||||
// AddBossId 为试炼之塔添加单个BOSS ID(避免重复)
|
||||
func (t *TrialTowerConfig) AddBossId(bossId uint32) error {
|
||||
if bossId == 0 {
|
||||
return errors.New("BOSS ID不能为空(不能为0)")
|
||||
}
|
||||
for _, id := range t.BossIds {
|
||||
if id == bossId {
|
||||
return fmt.Errorf("BOSS ID%d已绑定试炼之塔%d层,无需重复添加", bossId, t.TowerLevel)
|
||||
}
|
||||
}
|
||||
t.BossIds = append(t.BossIds, bossId)
|
||||
return nil
|
||||
}
|
||||
|
||||
// AddItemRewardId 为试炼之塔添加单个奖励物品ID(避免重复)
|
||||
func (t *TrialTowerConfig) AddItemRewardId(itemId uint32) error {
|
||||
if itemId == 0 {
|
||||
return errors.New("奖励物品ID不能为空(不能为0)")
|
||||
}
|
||||
for _, id := range t.ItemRewardIds {
|
||||
if id == itemId {
|
||||
return fmt.Errorf("奖励物品ID%d已绑定试炼之塔%d层,无需重复添加", itemId, t.TowerLevel)
|
||||
}
|
||||
}
|
||||
t.ItemRewardIds = append(t.ItemRewardIds, itemId)
|
||||
return nil
|
||||
}
|
||||
|
||||
// AddElfRewardId 为试炼之塔添加单个奖励精灵ID(避免重复)
|
||||
func (t *TrialTowerConfig) AddElfRewardId(elfId uint32) error {
|
||||
if elfId == 0 {
|
||||
return errors.New("奖励精灵ID不能为空(不能为0)")
|
||||
}
|
||||
for _, id := range t.ElfRewardIds {
|
||||
if id == elfId {
|
||||
return fmt.Errorf("奖励精灵ID%d已绑定试炼之塔%d层,无需重复添加", elfId, t.TowerLevel)
|
||||
}
|
||||
}
|
||||
t.ElfRewardIds = append(t.ElfRewardIds, elfId)
|
||||
return nil
|
||||
}
|
||||
|
||||
// RemoveBossId 从试炼之塔移除单个BOSS ID
|
||||
func (t *TrialTowerConfig) RemoveBossId(bossId uint32) error {
|
||||
if bossId == 0 {
|
||||
return errors.New("BOSS ID不能为空(不能为0)")
|
||||
}
|
||||
for i, id := range t.BossIds {
|
||||
if id == bossId {
|
||||
t.BossIds = append(t.BossIds[:i], t.BossIds[i+1:]...)
|
||||
return nil
|
||||
}
|
||||
}
|
||||
return fmt.Errorf("试炼之塔%d层未绑定BOSS ID%d,无法移除", t.TowerLevel, bossId)
|
||||
}
|
||||
|
||||
// RemoveItemRewardId 从试炼之塔移除单个奖励物品ID
|
||||
func (t *TrialTowerConfig) RemoveItemRewardId(itemId uint32) error {
|
||||
if itemId == 0 {
|
||||
return errors.New("奖励物品ID不能为空(不能为0)")
|
||||
}
|
||||
for i, id := range t.ItemRewardIds {
|
||||
if id == itemId {
|
||||
t.ItemRewardIds = append(t.ItemRewardIds[:i], t.ItemRewardIds[i+1:]...)
|
||||
return nil
|
||||
}
|
||||
}
|
||||
return fmt.Errorf("试炼之塔%d层未绑定奖励物品ID%d,无法移除", t.TowerLevel, itemId)
|
||||
}
|
||||
|
||||
// RemoveElfRewardId 从试炼之塔移除单个奖励精灵ID
|
||||
func (t *TrialTowerConfig) RemoveElfRewardId(elfId uint32) error {
|
||||
if elfId == 0 {
|
||||
return errors.New("奖励精灵ID不能为空(不能为0)")
|
||||
}
|
||||
for i, id := range t.ElfRewardIds {
|
||||
if id == elfId {
|
||||
t.ElfRewardIds = append(t.ElfRewardIds[:i], t.ElfRewardIds[i+1:]...)
|
||||
return nil
|
||||
}
|
||||
}
|
||||
return fmt.Errorf("试炼之塔%d层未绑定奖励精灵ID%d,无法移除", t.TowerLevel, elfId)
|
||||
}
|
||||
|
||||
// -------------------------- 表结构自动同步 --------------------------
|
||||
func init() {
|
||||
cool.CreateTable(&TrialTowerConfig{})
|
||||
cool.CreateTable(&Tower500Config{})
|
||||
}
|
||||
|
||||
@@ -2,8 +2,6 @@ package model
|
||||
|
||||
import (
|
||||
"blazing/cool"
|
||||
"errors"
|
||||
"fmt"
|
||||
)
|
||||
|
||||
// 表名常量定义:勇者之塔配置表
|
||||
@@ -11,112 +9,27 @@ const (
|
||||
TableNameBraveTowerConfig = "brave_tower_config" // 勇者之塔配置表(核心记录层数、BOSS数组、奖励物品/精灵)
|
||||
)
|
||||
|
||||
// BraveTowerConfig 勇者之塔核心配置模型(结构简洁,无额外专属字段)
|
||||
type BraveTowerConfig struct {
|
||||
// Tower600Config 勇者之塔核心配置模型(结构简洁,无额外专属字段)
|
||||
type Tower600Config struct {
|
||||
BaseTowerConfig
|
||||
}
|
||||
|
||||
// -------------------------- 核心配套方法(结构与试炼之塔完全一致)--------------------------
|
||||
func (*BraveTowerConfig) TableName() string {
|
||||
func (*Tower600Config) TableName() string {
|
||||
return TableNameBraveTowerConfig
|
||||
}
|
||||
|
||||
func (*BraveTowerConfig) GroupName() string {
|
||||
func (*Tower600Config) GroupName() string {
|
||||
return "default"
|
||||
}
|
||||
|
||||
func NewBraveTowerConfig() *BraveTowerConfig {
|
||||
return &BraveTowerConfig{
|
||||
func New600TowerConfig() *Tower600Config {
|
||||
return &Tower600Config{
|
||||
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{})
|
||||
cool.CreateTable(&Tower600Config{})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user