package island import ( "fmt" "go_dreamfactory/comm" "go_dreamfactory/modules" cfg "go_dreamfactory/sys/configure/structs" "go_dreamfactory/lego/core" ) const ( game_puggsyevent = "game_puggsyevent.json" game_puggsyskill = "game_puggsyskill.json" game_puggsyfight = "game_puggsyfight.json" game_puggsyscore = "game_puggsyscore.json" ) // /背包配置管理组件 type ConfigureComp struct { modules.MCompConfigure module *IsLand } // 组件初始化接口 func (this *ConfigureComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) { this.MCompConfigure.Init(service, module, comp, options) this.module = module.(*IsLand) err = this.LoadConfigure(game_puggsyevent, cfg.NewGamePuggsyEvent) err = this.LoadConfigure(game_puggsyskill, cfg.NewGamePuggsySkill) err = this.LoadConfigure(game_puggsyfight, cfg.NewGamePuggsyFight) err = this.LoadConfigure(game_puggsyscore, cfg.NewGamePuggsyScore) return } //关卡 func (this *ConfigureComp) getGamePuggsyEventData(id int32) (configure *cfg.GamePuggsyEventData, err error) { var ( v interface{} ok bool ) if v, err = this.GetConfigure(game_puggsyevent); err != nil { this.module.Errorf("err:%v", err) return } else { if configure, ok = v.(*cfg.GamePuggsyEvent).GetDataMap()[id]; !ok { err = fmt.Errorf("no found Material:%d configure", id) this.module.Errorf("err:%v", err) return } } return } //战斗表 func (this *ConfigureComp) getGamePuggsyFightData(id int32) (configure *cfg.GamePuggsyFightData, err error) { var ( v interface{} ok bool ) if v, err = this.GetConfigure(game_puggsyfight); err != nil { this.module.Errorf("err:%v", err) return } else { if configure, ok = v.(*cfg.GamePuggsyFight).GetDataMap()[id]; !ok { err = fmt.Errorf("no found Material:%d configure", id) this.module.Errorf("err:%v", err) return } } return } //技能节点 func (this *ConfigureComp) getGamePuggsySkillData(id int32) (configure *cfg.GamePuggsySkillData, err error) { var ( v interface{} ok bool ) if v, err = this.GetConfigure(game_puggsyskill); err != nil { this.module.Errorf("err:%v", err) return } else { if configure, ok = v.(*cfg.GamePuggsySkill).GetDataMap()[id]; !ok { err = fmt.Errorf("no found Material:%d configure", id) this.module.Errorf("err:%v", err) return } } return } // 获取伤害对应的评分组 func (this *ConfigureComp) getGamePuggsyScoreData(harm int32) (results *cfg.GamePuggsyScoreData, err error) { var ( v interface{} ) if v, err = this.GetConfigure(game_puggsyscore); err != nil { return } else { for _, v := range v.(*cfg.GamePuggsyScore).GetDataList() { if harm >= v.RankLow && (harm <= v.RankUp || v.RankUp == -1) { results = v return } } err = comm.NewNotFoundConfErr(string(this.module.GetType()), game_puggsyscore, fmt.Sprintf(" harm%d", harm)) this.module.Errorf("err:%v", err) } return }