| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- package db
- import (
- capp "f1-game/internal/cherry_app"
- "f1-game/internal/data"
- nameDB "f1-game/internal/name/db"
- "fmt"
- clog "github.com/cherry-game/cherry/logger"
- )
- // ver00010 修正建筑耐久
- type ver00010 struct {
- }
- // Version 手动自增,必需唯一
- func (ver00010) Version() int32 {
- return 10
- }
- func (ver00010) Enable() bool {
- return false
- }
- func (p ver00010) Execute() bool {
- clog.Infof("Execute %v, nodeID = %s", p.Version(), capp.NodeID())
- siegeCollection := dbComponent.DB().Collection(nameDB.Table_LogicSiege)
- siegeTables := getAllTables[*LogicSiegeTable](nameDB.Table_LogicSiege)
- buildTables := getAllTableMap[*LogicBuildTable](nameDB.Table_LogicBuild)
- if len(siegeTables) > 0 {
- for _, siegeTable := range siegeTables {
- if buildRow, ok := data.MapBuild.GetByConfigID(siegeTable.ConfigID); ok {
- if buildTable, ok := buildTables[siegeTable.PrimaryValue()]; ok {
- if buildTable.IsBuilding {
- siegeTable.Durability = buildRow.BuildingDurability
- } else {
- siegeTable.Durability = buildRow.Durability
- }
- } else {
- clog.Warnf("[Execute %v] buildTable not found, objectID = %d, nodeID = %d", p.Version(), siegeTable.ObjectID, siegeTable.NodeID)
- }
- } else if castleRow, ok := data.MapCastle.GetByConfigID(siegeTable.ConfigID); ok {
- siegeTable.Durability = castleRow.Durability
- }
- }
- }
- if err := bulkWrite(siegeCollection, siegeTables); err != nil {
- clog.Errorf("[Execute %v] error = %v", p.Version(), err)
- return false
- }
- clog.Debugf("[Execute %v] update siege table [count = %d]", p.Version(), len(siegeTables))
- return true
- }
- func (p ver00010) Desc() string {
- return fmt.Sprintf("[migrator - %d] Add Siege Table", p.Version())
- }
|