package stonehenge import ( "context" "go_dreamfactory/comm" "go_dreamfactory/lego/base" "go_dreamfactory/lego/core" "go_dreamfactory/modules" "go_dreamfactory/pb" ) const moduleName = "石阵秘境" func NewModule() core.IModule { m := new(Stonehenge) return m } type Stonehenge struct { modules.ModuleBase service base.IRPCXService battle comm.IBattle api_comp *apiComp configure *configureComp modelStonehenge *MStonehenge modelStonehengeBook *ModelStonehengeBook } //模块名 func (this *Stonehenge) GetType() core.M_Modules { return comm.ModuleStone } //模块初始化接口 注册用户创建角色事件 func (this *Stonehenge) Init(service core.IService, module core.IModule, options core.IModuleOptions) (err error) { if err = this.ModuleBase.Init(service, module, options); err != nil { return } this.service = service.(base.IRPCXService) return } func (this *Stonehenge) Start() (err error) { if err = this.ModuleBase.Start(); err != nil { return } var module core.IModule if module, err = this.service.GetModule(comm.ModuleBattle); err != nil { return } this.battle = module.(comm.IBattle) this.service.RegisterFunctionName(string(comm.Rpc_ModuleStoneBossSettlement), this.Rpc_ModuleStoneBossSettlement) return } //装备组件 func (this *Stonehenge) OnInstallComp() { this.ModuleBase.OnInstallComp() this.api_comp = this.RegisterComp(new(apiComp)).(*apiComp) this.modelStonehenge = this.RegisterComp(new(MStonehenge)).(*MStonehenge) this.modelStonehengeBook = this.RegisterComp(new(ModelStonehengeBook)).(*ModelStonehengeBook) this.configure = this.RegisterComp(new(configureComp)).(*configureComp) } // 工会Boos战结算通知 func (this *Stonehenge) Rpc_ModuleStoneBossSettlement(ctx context.Context, args *pb.EmptyReq, reply *pb.EmptyResp) (err error) { this.Debug("Rpc_ModuleStoneBossSettlement 石阵秘境Boos结算通知 !") this.modelStonehenge.reLoadStoneBoos() return } // gm 加事件 func (this *Stonehenge) GmAddStoneEvent(uid string, eventid int32) { if stone, err := this.modelStonehenge.GetStonehengeData(uid); err == nil { if stone.Rooms != nil { stone.Rooms.Eventid[eventid] = false update := make(map[string]interface{}) this.modelStonehenge.AddNewEvent([]int32{eventid}, stone) update["rooms"] = stone.Rooms this.modelStonehenge.ChangeStonehengeData(uid, update) } return } return }