package mainline import ( "go_dreamfactory/lego/core" "go_dreamfactory/modules" "go_dreamfactory/sys/configure" cfg "go_dreamfactory/sys/configure/structs" ) const ( game_mainlinechapter = "game_mainlinechapter.json" game_mainlineeasy = "game_mainlineeasy.json" game_mainlinehard = "game_mainlinehard.json" game_mainlinepurgatory = "game_mainlinepurgatory.json" ) ///配置管理基础组件 type configureComp struct { modules.MCompConfigure module *Mainline } //组件初始化接口 func (this *configureComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) { err = this.MCompConfigure.Init(service, module, comp, options) this.module = module.(*Mainline) err = this.LoadMultiConfigure(map[string]interface{}{ game_mainlinechapter: cfg.NewGameMainlineChapter, game_mainlineeasy: cfg.NewGameMainlineEasy, game_mainlinehard: cfg.NewGameMainlineHard, game_mainlinepurgatory: cfg.NewGameMainlinePurgatory, }) return } //读取配置数据 func (this *configureComp) GetConfigure(name string) (v interface{}, err error) { return configure.GetConfigure(name) } func (this *configureComp) GetMainlineChapter(id int32) (data *cfg.GameMainlineChapterData) { if v, err := this.GetConfigure(game_mainlinechapter); err != nil { this.module.Errorf("get global conf err:%v", err) return } else { var ( configure *cfg.GameMainlineChapter ok bool ) if configure, ok = v.(*cfg.GameMainlineChapter); !ok { this.module.Errorf("%T no is *cfg.Game_MainlineChapterData", v) return } if data, ok = configure.GetDataMap()[id]; ok { return } } return } // 获取简单的关卡配置信息 func (this *configureComp) GetMainlineEasyChapter(id int32) (data *cfg.GameMainlineEasyData) { if v, err := this.GetConfigure(game_mainlineeasy); err != nil { this.module.Errorf("get global conf err:%v", err) return } else { var ( configure *cfg.GameMainlineEasy ok bool ) if configure, ok = v.(*cfg.GameMainlineEasy); !ok { this.module.Errorf("%T no is *cfg.Game_MainlineEasyData", v) return } if data, ok = configure.GetDataMap()[id]; ok { return } } return } // 获取炼狱级别难度的关卡配置 func (this *configureComp) GetMainlinePurgatoryChapter(id int32) (data *cfg.GameMainlinePurgatoryData) { if v, err := this.GetConfigure(game_mainlinepurgatory); err != nil { this.module.Errorf("get global conf err:%v", err) return } else { var ( configure *cfg.GameMainlinePurgatory ok bool ) if configure, ok = v.(*cfg.GameMainlinePurgatory); !ok { this.module.Errorf("%T no is *cfg.Game_MainlinePurgatoryData", v) return } if data, ok = configure.GetDataMap()[id]; ok { return } } return } // 获取困难的关卡配置 func (this *configureComp) GetMainlineHardChapter(id int32) (data *cfg.GameMainlineHardData) { if v, err := this.GetConfigure(game_mainlinehard); err != nil { this.module.Errorf("get global conf err:%v", err) return } else { var ( configure *cfg.GameMainlineHard ok bool ) if configure, ok = v.(*cfg.GameMainlineHard); !ok { this.module.Errorf("%T no is *cfg.Game_MainlineHardData", v) return } if data, ok = configure.GetDataMap()[id]; ok { return } } return }