public FestivalInfo() : base(AccessLevel.ReadWrite) { Reward = new CacheList <PrizeInfo>(); TimePriod = new TimePriod(); TaskConfig = new CacheList <TaskConfigInfo>(); FestivalExtend = new FestivalExtend(); }
/// <summary> /// 假日狂欢活动通关获得金币 /// </summary> /// <param name="userID"></param> /// <param name="plotID"></param> public static void GetHolidayFestivalReward(string userID, int plotID) { var chatService = new TjxChatService(); int festivalID = 0;// 1003; FestivalInfo festival = new ShareCacheStruct <FestivalInfo>().FindKey(festivalID); if (festival != null) { GameUser userInfo = new GameDataCacheSet <GameUser>().FindKey(userID); PlotInfo plotInfo = new ConfigCacheSet <PlotInfo>().FindKey(plotID); if (plotInfo != null) { TimePriod priod = festival.TimePriod; if (NoviceHelper.IsFestivalOpen(festivalID)) { DateTime priodStart = DateTime.Parse(DateTime.Now.ToString("d") + " " + priod.Start.ToString("T")); DateTime priodEnd = DateTime.Parse(DateTime.Now.ToString("d") + " " + priod.End.ToString("T")); if (priodStart <= DateTime.Now && DateTime.Now < priodEnd) { if (RandomUtils.IsHit(plotInfo.FestivalProbability)) { List <FestivalReward> rewardsArray = plotInfo.FestivalReward.ToList(); double[] probability = new double[rewardsArray.Count]; for (int i = 0; i < rewardsArray.Count; i++) { probability[i] = rewardsArray[i].Probability; } int index2 = RandomUtils.GetHitIndex(probability); int itemID = rewardsArray[index2].Item; UserItemHelper.AddUserItem(userID, itemID, 1); ItemBaseInfo itemInfo = new ConfigCacheSet <ItemBaseInfo>().FindKey(itemID); if (userInfo != null && itemInfo != null) { string content = string.Empty; if (itemID == 5008) { content = string.Format(LanguageManager.GetLang().St_HolidayFestivalGift, itemInfo.ItemName); chatService.SystemSendWhisper(userInfo, content); } else if (itemID == 5009) { content = string.Format(LanguageManager.GetLang().St_HolidayFestivalGift, itemInfo.ItemName); chatService.SystemSendWhisper(userInfo, content); } else if (itemID == 5010) { content = string.Format(LanguageManager.GetLang().St_HolidayFestivalGift, itemInfo.ItemName); chatService.SystemSendWhisper(userInfo, content); } else if (itemID == 5011) { content = string.Format(LanguageManager.GetLang().St_HolidayFestivalGoinGift, userInfo.NickName); new TjxChatService().SystemSend(ChatType.World, content); } } } } } } } }
protected override object this[string index] { get { #region switch (index) { case "FestivalID": return(FestivalID); case "FestivalName": return(FestivalName); case "StartDate": return(StartDate); case "ContinuedTime": return(ContinuedTime); case "RestrainNum": return(RestrainNum); case "Reward": return(Reward); case "IsStop": return(IsStop); case "FestivalDesc": return(FestivalDesc); case "TimePriod": return(TimePriod); case "TaskConfig": return(TaskConfig); case "FestivalExtend": return(FestivalExtend); case "EndDate": return(EndDate); case "FestivalType": return(FestivalType); case "HeadID": return(HeadID); default: throw new ArgumentException(string.Format("FestivalInfo index[{0}] isn't exist.", index)); } #endregion } set { #region switch (index) { case "FestivalID": _FestivalID = value.ToInt(); break; case "FestivalName": _FestivalName = value.ToNotNullString(); break; case "StartDate": _StartDate = value.ToDateTime(); break; case "ContinuedTime": _ContinuedTime = value.ToInt(); break; case "RestrainNum": _RestrainNum = value.ToInt(); break; case "Reward": _Reward = ConvertCustomField <CacheList <PrizeInfo> >(value, index); break; case "IsStop": _IsStop = value.ToBool(); break; case "FestivalDesc": _FestivalDesc = value.ToNotNullString(); break; case "TimePriod": _TimePriod = ConvertCustomField <TimePriod>(value, index); // ?? new TimePriod(); break; case "TaskConfig": _TaskConfig = ConvertCustomField <CacheList <TaskConfigInfo> >(value, index); break; case "FestivalExtend": _FestivalExtend = ConvertCustomField <FestivalExtend>(value, index); break; case "EndDate": _EndDate = value.ToDateTime(); break; case "FestivalType": _FestivalType = value.ToEnum <FestivalType>(); break; case "HeadID": _HeadID = value.ToNotNullString(); break; default: throw new ArgumentException(string.Format("FestivalInfo index[{0}] isn't exist.", index)); } #endregion } }