go_dreamfactory/modules/uniongve/comp_configure.go
2023-07-18 16:16:51 +08:00

101 lines
2.6 KiB
Go

package uniongve
import (
"fmt"
"go_dreamfactory/comm"
"go_dreamfactory/lego/core"
"go_dreamfactory/modules"
cfg "go_dreamfactory/sys/configure/structs"
)
const (
game_guildboss = "game_guildboss.json"
game_guildbossrank = "game_guildbossrank.json"
game_guildbossroulette = "game_guildbossroulette.json"
game_guildbossscore = "game_guildbossscore.json"
)
// /配置管理基础组件
type MCompConfigure struct {
modules.MCompConfigure
module *UnionGve
}
// 组件初始化接口
func (this *MCompConfigure) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
err = this.ModuleCompBase.Init(service, module, comp, options)
this.module = module.(*UnionGve)
err = this.LoadMultiConfigure(map[string]interface{}{
game_guildboss: cfg.NewGameGuildBoss,
game_guildbossrank: cfg.NewGameGuildBossRank,
game_guildbossroulette: cfg.NewGameGuildBossRoulette,
game_guildbossscore: cfg.NewGameGuildBossScore,
})
err = this.LoadConfigure(game_guildboss, cfg.NewGameGuildBoss)
return
}
// 获取所有难度一的boos
func (this *MCompConfigure) getguildboss() (results []*cfg.GameGuildBossData, err error) {
var (
v interface{}
)
if v, err = this.GetConfigure(game_guildboss); err != nil {
return
} else {
data, ok := v.(*cfg.GameGuildBoss)
if !ok {
err = fmt.Errorf("%T no is *cfg.GameGuildActivity", v)
return
}
results = make([]*cfg.GameGuildBossData, 0)
for _, v := range data.GetDataList() {
if v.BossLv == 1 {
results = append(results, v)
}
}
return
}
}
// 获取所有难度一的boos
func (this *MCompConfigure) getguildbossByid(id int32) (results *cfg.GameGuildBossData, err error) {
var (
v interface{}
ok bool
)
if v, err = this.GetConfigure(game_guildboss); err != nil {
return
} else {
if results, ok = v.(*cfg.GameGuildBoss).GetDataMap()[id]; !ok {
err = comm.NewNotFoundConfErr(string(this.module.GetType()), game_guildboss, id)
this.module.Errorf("err:%v", err)
return
}
}
return
}
// 获取伤害对应的评分组
func (this *MCompConfigure) getguildbossscore(group int32, harm int32) (results *cfg.GameGuildBossScoreData, err error) {
var (
v interface{}
)
if v, err = this.GetConfigure(game_guildbossscore); err != nil {
return
} else {
for _, v := range v.(*cfg.GameGuildBossScore).GetDataList() {
if harm >= v.RankLow && (harm <= v.RankUp || v.RankUp == -1) {
results = v
return
}
}
err = comm.NewNotFoundConfErr(string(this.module.GetType()), game_guildbossscore, fmt.Sprintf("group:%d harm%d", group, harm))
this.module.Errorf("err:%v", err)
}
return
}