go_dreamfactory/modules/hero/configure_comp.go
2022-06-28 20:15:51 +08:00

275 lines
6.4 KiB
Go

package hero
import (
"fmt"
"go_dreamfactory/modules"
cfg "go_dreamfactory/sys/configure/structs"
"go_dreamfactory/lego/core"
)
const (
new_hero = "game_newhero.json" //英雄
hero_stargrow = "game_herostargrow.json" //英雄品质系数
hero_levelgrow = "game_herolevelgrow.json" //英雄成长系数
hero_starup = "game_herostarup.json" // 升星
hero_levelup = "game_herolevelup.json" //英雄等级基础属性
hero_exp = "game_heroexp.json" // 升级
hero_skillup = "game_heroskilllevel.json" // 英雄技能升级
)
///配置管理组件
type configureComp struct {
modules.MCompConfigure
}
//组件初始化接口
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)
err = this.LoadMultiConfigure(map[string]interface{}{
new_hero: cfg.NewGame_newHero,
hero_stargrow: cfg.NewGame_heroStargrow,
hero_levelgrow: cfg.NewGame_heroLevelgrow,
hero_starup: cfg.NewGame_heroStarup,
hero_levelup: cfg.NewGame_heroLevelup,
hero_exp: cfg.NewGame_heroExp,
hero_skillup: cfg.NewGame_heroSkillLevel,
})
return
}
//获取英雄配置数据
func (this *configureComp) getHeroConfigure() (configure *cfg.Game_newHero, err error) {
var (
v interface{}
ok bool
)
if v, err = this.GetConfigure(new_hero); err != nil {
return
} else {
if configure, ok = v.(*cfg.Game_newHero); !ok {
err = fmt.Errorf("%T no is *cfg.Game_hero", v)
}
}
return
}
// 获取英雄强化增加属性配置数据
func (this *configureComp) GetHeroStargrowConfig() (configure *cfg.Game_heroStargrow, err error) {
var (
v interface{}
ok bool
)
if v, err = this.GetConfigure(hero_stargrow); err == nil {
if configure, ok = v.(*cfg.Game_heroStargrow); !ok {
err = fmt.Errorf("%T no is *cfg.Game_hero", v)
return
}
} else {
err = fmt.Errorf("%T no is *cfg.Game_hero", v)
}
return
}
// 获取英雄升级属性变化相关配置数据
func (this *configureComp) GetHeroLevelgrowConfig() (configure *cfg.Game_heroLevelgrow, err error) {
var (
v interface{}
ok bool
)
if v, err = this.GetConfigure(hero_levelgrow); err == nil {
if configure, ok = v.(*cfg.Game_heroLevelgrow); !ok {
err = fmt.Errorf("%T no is *cfg.Game_heroLevelgrow", v)
return
}
}
return
}
// 获取英雄升星相关配置数据
func (this *configureComp) GetHeroStarupConfig() (configure *cfg.Game_heroStarup, err error) {
var (
v interface{}
ok bool
)
if v, err = this.GetConfigure(hero_starup); err == nil {
if configure, ok = v.(*cfg.Game_heroStarup); !ok {
err = fmt.Errorf("%T no is *cfg.Game_heroStarup", v)
return
}
} else {
err = fmt.Errorf("%T no is *cfg.Game_heroStarup", v)
}
return
}
// 获取英雄升级相关配置数据
func (this *configureComp) GetHeroLevelUpConfig() (configure *cfg.Game_heroLevelup, err error) {
var (
v interface{}
ok bool
)
if v, err = this.GetConfigure(hero_levelup); err == nil {
if configure, ok = v.(*cfg.Game_heroLevelup); !ok {
err = fmt.Errorf("%T no is *cfg.Game_heroLevelup", v)
return
}
} else {
err = fmt.Errorf("%T no is *cfg.Game_heroLevelup", v)
}
return
}
func (this *configureComp) GetHeroExpConfig() (configure *cfg.Game_heroExp, err error) {
var (
v interface{}
ok bool
)
if v, err = this.GetConfigure(hero_exp); err == nil {
if configure, ok = v.(*cfg.Game_heroExp); !ok {
err = fmt.Errorf("%T no is *cfg.Game_heroExp", v)
return
}
} else {
err = fmt.Errorf("%T no is *cfg.Game_heroExp", v)
}
return
}
func (this *configureComp) GetHeroExp(hid int32) *cfg.Game_heroExpData {
if v, err := this.GetConfigure(hero_exp); err == nil {
if configure, ok := v.(*cfg.Game_heroExp); !ok {
err = fmt.Errorf("%T no is *cfg.Game_heroExp", v)
return nil
} else {
return configure.Get(hid)
}
} else {
err = fmt.Errorf("%T no is *cfg.Game_heroExp", v)
}
return nil
}
//英雄等级基础属性
func (this *configureComp) GetHeroLevelup() (configure *cfg.Game_heroLevelup, err error) {
var (
v interface{}
ok bool
)
if v, err = this.GetConfigure(hero_levelup); err != nil {
return
} else {
if configure, ok = v.(*cfg.Game_heroLevelup); !ok {
err = fmt.Errorf("%T no is *cfg.Game_heroLevelup", v)
return
}
}
return
}
//英雄品质系数
func (this *configureComp) GetHeroStargrow() (configure *cfg.Game_heroStargrow, err error) {
var (
v interface{}
ok bool
)
if v, err = this.GetConfigure(hero_stargrow); err != nil {
return
} else {
if configure, ok = v.(*cfg.Game_heroStargrow); !ok {
err = fmt.Errorf("%T no is *cfg.Game_heroStargrow", v)
return
}
}
return
}
//获取英雄配置
func (this *configureComp) GetHero(heroId int32) *cfg.Game_newHeroData {
cfg, err := this.getHeroConfigure()
if err != nil {
return nil
}
if v, ok := cfg.GetDataMap()[heroId]; ok {
return v
}
return nil
}
//获取英雄星级配置
func (this *configureComp) GetHeroStar(star int32) *cfg.Game_heroStargrowData {
cfg, err := this.GetHeroStargrow()
if err != nil {
return nil
}
if v, ok := cfg.GetDataMap()[star]; ok {
return v
}
return nil
}
//获取英雄等级配置
func (this *configureComp) GetHeroLv(lv int32) *cfg.Game_heroLevelupData {
cfg, err := this.GetHeroLevelup()
if err != nil {
return nil
}
if v, ok := cfg.GetDataMap()[lv]; ok {
return v
}
return nil
}
// 英雄成长系数
func (this *configureComp) GetHeroLevelgrow() (configure *cfg.Game_heroLevelgrow, err error) {
var (
v interface{}
ok bool
)
if v, err = this.GetConfigure(hero_levelgrow); err != nil {
return
} else {
if configure, ok = v.(*cfg.Game_heroLevelgrow); !ok {
err = fmt.Errorf("%T no is *cfg.Game_heroLevelgrow", v)
return
}
}
return
}
//英雄成长配置
func (this *configureComp) GetHeroLvgrow(heroId int32) *cfg.Game_heroLevelgrowData {
cfg, err := this.GetHeroLevelgrow()
if err != nil {
return nil
}
if v, ok := cfg.GetDataMap()[heroId]; ok {
return v
}
return nil
}
// 获取英雄技能升级相关信息
func (this *configureComp) GetHeroSkillUpConfig() (configure *cfg.Game_heroSkillLevel, err error) {
var (
v interface{}
ok bool
)
if v, err = this.GetConfigure(hero_skillup); err == nil {
if configure, ok = v.(*cfg.Game_heroSkillLevel); !ok {
err = fmt.Errorf("%T no is *cfg.Game_hero", v)
return
}
} else {
err = fmt.Errorf("%T no is *cfg.Game_hero", v)
}
return
}