Beispiel #1
0
        public CrosscrowdManagerResponse GetManagerInfo(string siteId, Guid managerId, int crowdId, DateTime curTime, int curPoint = -1, bool checkStatus = true)
        {
            var crowdManager = InnerGetManager(siteId, managerId, crowdId, curTime);

            if (crowdManager == null)
            {
                return(ResponseHelper.Create <CrosscrowdManagerResponse>(MessageCode.NbFunctionNotOpen));
            }
            if (checkStatus)
            {
                if (crowdManager.Morale <= 0)
                {
                    return(ResponseHelper.Create <CrosscrowdManagerResponse>(MessageCode.CrowdNoMorale));
                }
                var code = MatchCdHandler.CheckCd(managerId, EnumMatchType.CrossCrowd);
                if (code != MessageCode.Success)
                {
                    return(ResponseHelper.Create <CrosscrowdManagerResponse>(MessageCode.NbMatchCd));
                }
                crowdManager.ShowName = ShareUtil.GetCrossManagerNameByZoneId(siteId, crowdManager.Name);
            }
            else
            {
                crowdManager.CdSeconds         = MatchCdHandler.GetCdMilSecondsInt(managerId, EnumMatchType.CrossCrowd);
                crowdManager.CurPoint          = curPoint;
                crowdManager.ClearCdPoint      = CacheFactory.MallCache.GetDirectPoint(EnumConsumeSourceType.CrowdClearCd, 0);//crowdManager.ClearCdCount+1);
                crowdManager.ResurrectionPoint = CacheFactory.MallCache.GetDirectPoint(EnumConsumeSourceType.CrowdResurrection);
                if (crowdManager.Morale < 1)
                {
                    crowdManager.ResurrectionCdSeconds = ShareUtil.CalCountdown(crowdManager.ResurrectionTime, curTime);
                }
                else
                {
                    crowdManager.ResurrectionCdSeconds = -1;
                }
            }
            var response = ResponseHelper.Create <CrosscrowdManagerResponse>(MessageCode.Success);

            response.Data = crowdManager;
            return(response);
        }