From 469225f6abe93c6a063b7ff5261baa315adbebea Mon Sep 17 00:00:00 2001 From: zhaocy Date: Fri, 24 Jun 2022 12:09:47 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8E=B7=E5=8F=96hero=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- comm/imodule.go | 2 +- modules/hero/hero_test.go | 79 ++++++++++++++++++++++++++++++++++++++ modules/hero/model_hero.go | 30 +++++++++++---- modules/hero/module.go | 2 +- 4 files changed, 104 insertions(+), 9 deletions(-) create mode 100644 modules/hero/hero_test.go diff --git a/comm/imodule.go b/comm/imodule.go index fd29c9759..443d76ce4 100644 --- a/comm/imodule.go +++ b/comm/imodule.go @@ -31,7 +31,7 @@ type ( AddCard(uId string, cardId int32, add int32) (code pb.ErrorCode) // 获取英雄 // heroId 英雄ID - GetHero(heroId string) (*pb.DB_HeroData, pb.ErrorCode) + GetHero(uid, heroId string) (*pb.DB_HeroData, pb.ErrorCode) // 佩戴装备 UpdateEquipment(hero *pb.DB_HeroData, equip []*pb.DB_Equipment) (code pb.ErrorCode) } diff --git a/modules/hero/hero_test.go b/modules/hero/hero_test.go new file mode 100644 index 000000000..444094edd --- /dev/null +++ b/modules/hero/hero_test.go @@ -0,0 +1,79 @@ +package hero + +import ( + "fmt" + "go_dreamfactory/comm" + "go_dreamfactory/lego" + "go_dreamfactory/lego/base/rpcx" + "go_dreamfactory/lego/core" + "go_dreamfactory/lego/sys/log" + "go_dreamfactory/services" + "go_dreamfactory/sys/cache" + "go_dreamfactory/sys/configure" + "go_dreamfactory/sys/db" + "os" + "testing" + "time" +) + +var service core.IService +var s_gateComp comm.ISC_GateRouteComp = services.NewGateRouteComp() + +var module = new(Hero) + +type TestService struct { + rpcx.RPCXService +} + +func newService(ops ...rpcx.Option) core.IService { + s := new(TestService) + s.Configure(ops...) + return s +} + +//初始化相关系统 +func (this *TestService) InitSys() { + this.RPCXService.InitSys() + if err := cache.OnInit(this.GetSettings().Sys["cache"]); err != nil { + panic(fmt.Sprintf("init sys.cache err: %s", err.Error())) + } else { + log.Infof("init sys.cache success!") + } + if err := db.OnInit(this.GetSettings().Sys["db"]); err != nil { + panic(fmt.Sprintf("init sys.db err: %s", err.Error())) + } else { + log.Infof("init sys.db success!") + } + if err := configure.OnInit(this.GetSettings().Sys["configure"], configure.SetConfigPath("E:\\projects\\workspace\\go_dreamfactory\\bin\\json")); err != nil { + panic(fmt.Sprintf("init sys.configure err: %s", err.Error())) + } else { + log.Infof("init sys.configure success!") + } +} + +func TestMain(m *testing.M) { + service = newService( + rpcx.SetConfPath("../../bin/conf/worker_2.yaml"), + ) + service.OnInstallComp( //装备组件 + s_gateComp, //此服务需要接受用户的消息 需要装备网关组件 + ) + go func() { + lego.Run(service, //运行模块 + module, + ) + }() + time.Sleep(time.Second * 2) + defer os.Exit(m.Run()) +} + +//创建一个英雄s +func TestCreateOneHero(t *testing.T) { + err := module.model_hero.createOneHero("u1", 25001) + fmt.Println(err) +} + +//获取玩家英雄 +func TestGetOneHero(t *testing.T) { + +} diff --git a/modules/hero/model_hero.go b/modules/hero/model_hero.go index 1b8791e13..c2246ae64 100644 --- a/modules/hero/model_hero.go +++ b/modules/hero/model_hero.go @@ -5,6 +5,8 @@ import ( "go_dreamfactory/lego/sys/log" "go_dreamfactory/modules" "go_dreamfactory/pb" + + "go.mongodb.org/mongo-driver/bson/primitive" ) type ModelHero struct { @@ -20,28 +22,42 @@ func (this *ModelHero) Init(service core.IService, module core.IModule, comp cor } //创建一个指定的英雄 -func (this *ModelHero) createOneHero(uid string, heroId int32) error { +func (this *ModelHero) createOneHero(uid string, heroCfgId int32) error { heroCfg, err := this.moduleHero.configure_comp.GetHeroConfigure() if err != nil { log.Errorf("%v", err) return err } if heroCfg != nil { - oneHeroCfg := heroCfg.Get(heroId) + oneHeroCfg := heroCfg.Get(heroCfgId) if oneHeroCfg != nil { + objId := primitive.NewObjectID().Hex() newHero := &pb.DB_HeroData{ - Uid: uid, - HeroID: oneHeroCfg.Id, - Star: oneHeroCfg.Star, - Lv: 1, //初始等级 + Id: objId, + Uid: uid, + HeroID: oneHeroCfg.Id, + Star: oneHeroCfg.Star, + Lv: 1, //初始等级 + NormalSkill: []*pb.SkillData{}, + Skins: []int32{}, + EquipID: make([]string, 6), + AddProperty: make(map[int32]int32), + Energy: make(map[int32]int32), + Property: make(map[int32]int32), } - return this.moduleHero.model_hero.Add(uid, newHero) + + return this.moduleHero.model_hero.AddList(uid, objId, newHero) } } return nil } +//获取一个英雄 +func (this *ModelHero) getOneHero(heroId string) (*pb.DB_HeroData, pb.ErrorCode) { + return nil, pb.ErrorCode_HeroNoExist +} + //指定英雄升级 func (this *ModelHero) levelUp(uid string, heroId int32) error { var heroes []*pb.DB_HeroData diff --git a/modules/hero/module.go b/modules/hero/module.go index 6a2191026..02d3fbcca 100644 --- a/modules/hero/module.go +++ b/modules/hero/module.go @@ -45,7 +45,7 @@ func (this *Hero) GetHeroInfoByObjID(id string) (*pb.DB_HeroData, pb.ErrorCode) } //获取英雄 -func (this *Hero) GetHero(heroId int32) (*pb.DB_HeroData, pb.ErrorCode) { +func (this *Hero) GetHero(uid, heroId int32) (*pb.DB_HeroData, pb.ErrorCode) { return nil, pb.ErrorCode_HeroNoExist }