package stonehenge import ( "go_dreamfactory/comm" "go_dreamfactory/pb" "go_dreamfactory/sys/configure" "go_dreamfactory/utils" ) //参数校验 func (this *apiComp) GetListCheck(session comm.IUserSession, req *pb.StonehengeGetListReq) (errdata *pb.ErrorData) { return } func (this *apiComp) GetList(session comm.IUserSession, req *pb.StonehengeGetListReq) (errdata *pb.ErrorData) { var ( stone *pb.DBStonehenge err error ) if errdata = this.GetListCheck(session, req); errdata != nil { return } if stone, err = this.module.modelStonehenge.GetStonehengeData(session.GetUserId()); err != nil { errdata = &pb.ErrorData{ Code: pb.ErrorCode_DBError, Title: pb.ErrorCode_DBError.String(), Message: err.Error(), } return } // 校验赛季是否结束 if configure.Now().Unix() >= stone.Etime { update := make(map[string]interface{}) stone.StageID = 0 update["stageID"] = stone.StageID stone.CurRoomIndes = 0 update["curRoomIndes"] = stone.CurRoomIndes stone.Rooms = &pb.RoomData{} update["rooms"] = stone.Rooms stone.Reward = make(map[int32]bool) update["reward"] = stone.Reward stone.Webuff = make([]int32, 0) update["webuff"] = stone.Webuff stone.Enemybuff = make([]int32, 0) update["enemybuff"] = stone.Enemybuff stone.Userbuff = make(map[int32]int32) update["userbuff"] = stone.Userbuff stone.Hero = make(map[string]*pb.BattleRole) update["hero"] = stone.Hero stone.Addweight = make(map[int32]int32, 0) update["addweight"] = stone.Addweight stone.Etime = utils.WeekIntervalTime() update["etime"] = stone.Etime stone.Integral = 0 update["integral"] = stone.Integral stone.Weeklyreward = make(map[int32]bool) update["weeklyreward"] = stone.Weeklyreward this.module.modelStonehenge.ChangeStonehengeData(session.GetUserId(), update) } if len(stone.Webuff) == 0 || len(stone.Enemybuff) == 0 { if stage := this.module.modelStonehenge.GetStoneBoosData(stone.StageID); stage != nil { for _, v := range stage.Mainebuff { // 我方环境buff if buff, err := this.module.configure.GetStoneBuffDataById(v); err == nil { stone.Webuff = append(stone.Webuff, buff.BuffId) } } for _, v := range stage.Enemybuff { // 敌方环境buff if buff, err := this.module.configure.GetStoneBuffDataById(v); err == nil { stone.Enemybuff = append(stone.Enemybuff, buff.BuffId) } } update := make(map[string]interface{}, 0) update["webuff"] = stone.Webuff update["enemybuff"] = stone.Enemybuff this.module.modelStonehenge.ChangeStonehengeData(session.GetUserId(), update) } } session.SendMsg(string(this.module.GetType()), "getlist", &pb.StonehengeGetListResp{ Data: stone, Boss: &pb.DBStoneBoss{ Bossstage: this.module.modelStonehenge.GetAllStoneBoosData(), }, }) return }