Пример #1
0
 public FestivalInfo()
     : base(AccessLevel.ReadWrite)
 {
     Reward         = new CacheList <PrizeInfo>();
     TimePriod      = new TimePriod();
     TaskConfig     = new CacheList <TaskConfigInfo>();
     FestivalExtend = new FestivalExtend();
 }
Пример #2
0
        /// <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);
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
Пример #3
0
        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
            }
        }