Пример #1
0
        /// <summary>
        /// 副本倍数掉落活动限制次数
        /// </summary>
        /// <param name="userID"></param>
        /// <returns></returns>
        public static void DuplicateDropDoubleRestrain(string userID)
        {
            FestivalInfo info = GetInfo(FestivalType.DuplicateDropDouble);

            if (info != null && info.FestivalExtend != null)
            {
                var cacheSet           = new PersonalCacheStruct <FestivalRestrain>();
                FestivalRestrain fRest = cacheSet.FindKey(userID, info.FestivalID);
                if (fRest == null)
                {
                    fRest              = new FestivalRestrain();
                    fRest.UserID       = userID;
                    fRest.FestivalID   = info.FestivalID;
                    fRest.RefreashDate = DateTime.Now;
                    fRest.RestrainNum  = 1;
                    cacheSet.Add(fRest);
                }
                else
                {
                    if (fRest.RefreashDate.Date != DateTime.Now.Date)
                    {
                        fRest.RestrainNum  = 0;
                        fRest.RefreashDate = DateTime.Now;
                    }
                    fRest.RestrainNum = MathUtils.Addition(fRest.RestrainNum, 1);
                }
            }
        }
Пример #2
0
        /// <summary>
        /// 购买精力限制次数
        /// </summary>
        /// <param name="userID"></param>
        /// <param name="festivalType"></param>
        /// <param name="typeID"></param>
        public static void PurchasedEnergy(string userID)
        {
            FestivalInfo info = GetInfo(FestivalType.PurchasedEnergy);

            if (info != null)
            {
                var cacheSet           = new PersonalCacheStruct <FestivalRestrain>();
                FestivalRestrain fRest = cacheSet.FindKey(userID, info.FestivalID);
                if (fRest == null)
                {
                    fRest              = new FestivalRestrain();
                    fRest.FestivalID   = info.FestivalID;
                    fRest.RefreashDate = DateTime.Now;
                    fRest.RestrainNum  = 1;
                    fRest.UserID       = userID;
                    cacheSet.Add(fRest);
                }
                else
                {
                    if (DateTime.Now.Date == fRest.RefreashDate.Date)
                    {
                        fRest.RestrainNum = MathUtils.Addition(fRest.RestrainNum, 1);
                    }
                    else
                    {
                        fRest.RestrainNum = 1;
                    }
                    fRest.RefreashDate = DateTime.Now;
                }
            }
        }
Пример #3
0
        /// <summary>
        ///vip活动礼包
        /// </summary>
        public static void GetVipFestival(string userID)
        {
            FestivalInfo info = GetInfo(FestivalType.VIPFestival);

            if (info != null && info.FestivalExtend != null)
            {
                var cacheSet           = new PersonalCacheStruct <FestivalRestrain>();
                FestivalRestrain fRest = cacheSet.FindKey(userID, info.FestivalID);
                if (fRest == null || fRest.RefreashDate < info.StartDate ||
                    (fRest.RestrainNum < info.RestrainNum && fRest.RefreashDate >= info.StartDate &&
                     fRest.RefreashDate <= info.EndDate))
                {
                    CacheList <PrizeInfo> prizeList = PrizeHelper.GetPrizeInfo(info.Reward);
                    foreach (PrizeInfo prize in prizeList)
                    {
                        UserTakePrize userTask = PrizeHelper.GetUserTake(prize, userID, info);
                        new ShareCacheStruct <UserTakePrize>().Add(userTask);
                    }
                    if (fRest == null)
                    {
                        fRest              = new FestivalRestrain();
                        fRest.FestivalID   = info.FestivalID;
                        fRest.RefreashDate = DateTime.Now;
                        fRest.RestrainNum  = 1;
                        fRest.UserID       = userID;
                        cacheSet.Add(fRest);
                    }
                    else
                    {
                        fRest.RestrainNum  = MathUtils.Addition(fRest.RestrainNum, 1);
                        fRest.RefreashDate = DateTime.Now;
                    }
                }
            }
        }
Пример #4
0
        public void updateDate(List <FestivalInfo> arrFestival)
        {
            arrFestivalVM = new List <FestivalVM>();

            for (int i = 0; i < arrFestival.Count; ++i)
            {
                FestivalInfo md = arrFestival[i];

                FestivalVM vm = new FestivalVM();
                vm.Name = md.desc;
                vm.Time = md.showTime;
                int day = md.dayOfRange;
                if (day == 0)
                {
                    vm.DayOfRange     = "今天";
                    vm.dayOfRangeType = DayOfRangeType.Now;
                }
                else
                {
                    if (md.isFinished)
                    {
                        vm.dayOfRangeType = DayOfRangeType.Finish;
                    }
                    else
                    {
                        vm.dayOfRangeType = DayOfRangeType.Wait;
                    }

                    vm.DayOfRange = "距离" + day + "天";
                }
                arrFestivalVM.Add(vm);
            }

            lstFestival.ItemsSource = arrFestivalVM;
        }
Пример #5
0
 public override bool TakeAction()
 {
     festivalList = NoviceHelper.LimitFestivalList();
     if (festivalList.Count > 0)
     {
         string shortDateFormat = LanguageManager.GetLang().FestivalDataFormat;
         festivalInfo = festivalList[0];
         beginDate    = festivalInfo.StartDate.ToString(shortDateFormat);
         if (festivalInfo.EndDate != MathUtils.SqlMinDate)
         {
             endDate = festivalInfo.EndDate.ToString(shortDateFormat);
         }
         else
         {
             endDate = festivalInfo.StartDate.AddHours(festivalInfo.ContinuedTime).ToString(shortDateFormat);
         }
     }
     festivalList.QuickSort((x, y) =>
     {
         if (x == null && y == null)
         {
             return(0);
         }
         if (x != null && y == null)
         {
             return(1);
         }
         if (x == null)
         {
             return(-1);
         }
         return(x.FestivalID.CompareTo(y.FestivalID));
     });
     return(true);
 }
Пример #6
0
        /// <summary>
        /// 副本倍数掉落活动限制次数
        /// </summary>
        /// <param name="userID"></param>
        /// <returns></returns>
        public static void DuplicateDropDoubleRestrain(string userID)
        {
            int          multiple = 1;
            FestivalInfo info     = GetInfo(FestivalType.DuplicateDropDouble);

            if (info != null && info.FestivalExtend != null)
            {
                var cacheSet           = new GameDataCacheSet <FestivalRestrain>();
                FestivalRestrain fRest = cacheSet.FindKey(userID, info.FestivalID);
                if (fRest == null)
                {
                    fRest              = new FestivalRestrain();
                    fRest.UserID       = userID;
                    fRest.FestivalID   = info.FestivalID;
                    fRest.RefreashDate = DateTime.Now;
                    fRest.RestrainNum  = 1;
                    cacheSet.Add(fRest, GameEnvironment.CacheUserPeriod);
                }
                else
                {
                    if (fRest.RefreashDate.Date != DateTime.Now.Date)
                    {
                        fRest.RestrainNum  = 0;
                        fRest.RefreashDate = DateTime.Now;
                    }
                    fRest.RestrainNum = MathUtils.Addition(fRest.RestrainNum, 1);
                }
            }
        }
Пример #7
0
        /// <summary>
        /// 累计消费送礼
        /// </summary>
        public static void PayAccumulation(string userID, int consumeNum)
        {
            FestivalInfo fest = GetInfo(FestivalType.PayAccumulation);

            if (fest == null)
            {
                return;
            }
            var         cacheSet    = new PersonalCacheStruct <UserConsume>();
            UserConsume userConsume = cacheSet.FindKey(userID);

            if (userConsume == null)
            {
                userConsume           = new UserConsume();
                userConsume.UserID    = userID;
                userConsume.GameCoin  = 0;
                userConsume.GoldNum   = 0;
                userConsume.EnergyNum = 0;
                cacheSet.Add(userConsume);
                cacheSet.Update();
                userConsume = new PersonalCacheStruct <UserConsume>().FindKey(userID);
            }
            if (userConsume.GoldDate < fest.StartDate)
            {
                userConsume.GoldDate = fest.StartDate;
                userConsume.GoldNum  = consumeNum;
            }
            else
            {
                userConsume.GoldNum = MathUtils.Addition(userConsume.GoldNum, consumeNum);
            }
            var cacheSetRestrain = new PersonalCacheStruct <FestivalRestrain>();
            var festivalList     = new ShareCacheStruct <FestivalInfo>().FindAll(s => s.FestivalType == FestivalType.PayAccumulation);

            foreach (var info in festivalList)
            {
                if (!info.IsStop)
                {
                    continue;
                }
                if (info.StartDate > DateTime.Now)
                {
                    continue;
                }
                if (info.EndDate < DateTime.Now)
                {
                    continue;
                }
                if (info.FestivalType == FestivalType.PayAccumulation)
                {
                    FestivalRestrain fRest = cacheSetRestrain.FindKey(userID, info.FestivalID);
                    if (fRest != null && userConsume.GoldNum >= info.RestrainNum)
                    {
                        AppendFestivalRestrain(userID, fest.FestivalID, fest.RestrainNum);
                    }
                }
            }
        }
Пример #8
0
        /// <summary>
        /// 商城折扣
        /// </summary>
        /// <returns></returns>
        public static double StoreDiscount()
        {
            FestivalInfo info = GetInfo(FestivalType.StoreDiscount);

            if (info != null && info.FestivalExtend != null)
            {
                return(info.FestivalExtend.MinusNum);
            }
            return(1);
        }
Пример #9
0
        /// <summary>
        /// 副本倍数掉落活动
        /// </summary>
        /// <param name="userID"></param>
        /// <returns></returns>
        public static int DuplicateDropDouble(string userID)
        {
            int          multiple = 1;
            FestivalInfo info     = GetInfo(FestivalType.DuplicateDropDouble);

            if (info != null && info.FestivalExtend != null && info.FestivalExtend.MinusNum > 0)
            {
                var cacheSet           = new PersonalCacheStruct <FestivalRestrain>();
                FestivalRestrain fRest = cacheSet.FindKey(userID, info.FestivalID);
                if (fRest == null || fRest.RefreashDate.Date != DateTime.Now.Date || fRest.RestrainNum < info.RestrainNum)
                {
                    multiple = info.FestivalExtend.MinusNum.ToInt();
                }
            }
            return(multiple);
        }
Пример #10
0
        /// <summary>
        /// 活动剩余次数
        /// </summary>
        /// <param name="userID"></param>
        /// <returns></returns>
        public static int SurplusEnergyNum(string userID)
        {
            int          surplusNum = 0;
            FestivalInfo info       = GetInfo(FestivalType.PurchasedEnergy);

            if (info != null && info.FestivalExtend != null && info.FestivalExtend.MinusNum > 0)
            {
                surplusNum = info.RestrainNum;
                var cacheSet           = new PersonalCacheStruct <FestivalRestrain>();
                FestivalRestrain fRest = cacheSet.FindKey(userID, info.FestivalID);
                if (fRest != null && fRest.RefreashDate.Date == DateTime.Now.Date)
                {
                    surplusNum = MathUtils.Subtraction(surplusNum, fRest.RestrainNum, 0);
                }
            }
            return(surplusNum);
        }
Пример #11
0
        /// <summary>
        /// 购买精力,庄园加成
        /// </summary>
        /// <param name="userID"></param>
        /// <returns></returns>
        public static double SurplusPurchased(string userID, FestivalType festivalType)
        {
            double       addNum = 1;
            FestivalInfo info   = GetInfo(festivalType);

            if (info != null && info.FestivalExtend != null && info.FestivalExtend.MinusNum > 0)
            {
                var cacheSet           = new PersonalCacheStruct <FestivalRestrain>();
                FestivalRestrain fRest = cacheSet.FindKey(userID, info.FestivalID);
                if (fRest == null || fRest.RefreashDate < info.StartDate ||
                    (fRest.RefreashDate >= info.StartDate && fRest.RefreashDate <= info.EndDate))
                {
                    addNum = info.FestivalExtend.MinusNum;
                }
            }
            return(addNum);
        }
Пример #12
0
        /// <summary>
        /// 根据类型获取活动奖励 首充奖励、登入送好礼
        /// </summary>
        /// <param name="userID"></param>
        /// <param name="type"></param>
        public static void GetFirstReward(string userID, FestivalType type)
        {
            FestivalInfo info = GetInfo(type);

            if (info != null && info.FestivalExtend != null)
            {
                var cacheSet           = new PersonalCacheStruct <FestivalRestrain>();
                FestivalRestrain fRest = cacheSet.FindKey(userID, info.FestivalID);
                if (fRest == null)
                {
                    AppendFestivalRestrain(userID, info.FestivalID, 1);
                    //if (PrizeHelper.GetUserMail(userID, info))
                    //{
                    //}
                }
            }
        }
Пример #13
0
        /// <summary>
        /// 招募佣兵送魂魄
        /// </summary>
        /// <param name="userID"></param>
        public static string RecruitGeneral(string userID, RecruitType rtype)
        {
            string       festivalContent = string.Empty;
            FestivalInfo info            = GetInfo(FestivalType.RecruitGeneral);

            if (info != null && info.FestivalExtend != null && info.FestivalExtend.Recruit.Count > 0)
            {
                var recruitFest = info.FestivalExtend.Recruit.Find(s => s.Type == rtype);
                if (recruitFest != null)
                {
                    var generalList = new ShareCacheStruct <GeneralInfo>().FindAll(s => s.GeneralQuality == recruitFest.GeneralQuality);
                    if (generalList.Count > 0)
                    {
                        int index1 = RandomUtils.GetRandom(0, generalList.Count);
                        if (index1 > -1)
                        {
                            GeneralInfo generalInfo = generalList[index1];
                            if (generalInfo != null)
                            {
                                GeneralHelper.UpdateUserGeneral(userID, generalInfo, GeneralType.Soul, recruitFest.Num);
                                if (!string.IsNullOrEmpty(info.FestivalExtend.Desc))
                                {
                                    festivalContent = string.Format(info.FestivalExtend.Desc, generalInfo.GeneralName, recruitFest.Num);
                                }
                                return(festivalContent);
                            }
                        }
                    }
                    else if (recruitFest.GeneralID > 0)
                    {
                        GeneralInfo generalInfo =
                            new ShareCacheStruct <GeneralInfo>().FindKey(recruitFest.GeneralID);
                        if (generalInfo != null)
                        {
                            GeneralHelper.UpdateUserGeneral(userID, generalInfo, GeneralType.Soul, recruitFest.Num);
                            if (!string.IsNullOrEmpty(info.FestivalExtend.Desc))
                            {
                                festivalContent = string.Format(info.FestivalExtend.Desc, generalInfo.GeneralName, recruitFest.Num);
                            }
                            return(festivalContent);
                        }
                    }
                }
            }
            return(festivalContent);
        }
Пример #14
0
        /// <summary>
        /// 累计充值活动
        /// </summary>
        private static void TriggerFestivalPack(UserRecharge userRecharge, int GameCoins)
        {
            FestivalInfo fest = FestivalHelper.GetInfo(FestivalType.PayCount);

            if (fest == null)
            {
                return;
            }
            if (userRecharge.FestivalDate == null || userRecharge.FestivalDate < fest.StartDate)
            {
                userRecharge.FestivalDate  = fest.StartDate;
                userRecharge.FestivalCount = GameCoins;
            }
            else
            {
                userRecharge.FestivalCount += GameCoins;
            }
        }
Пример #15
0
        /// <summary>
        /// 累计消费活动奖励(晶石,金币,精力)
        /// </summary>
        private static void FestivalConsumeCount(FestivalInfo info, string userID)
        {
            UserConsume consume = new PersonalCacheStruct <UserConsume>().FindKey(userID);

            if (consume == null)
            {
                return;
            }
            var cacheSet           = new PersonalCacheStruct <FestivalRestrain>();
            FestivalRestrain fRest = cacheSet.FindKey(userID, info.FestivalID);

            if (fRest != null && fRest.RestrainNum >= 1 && fRest.RefreashDate == info.StartDate)
            {
                return;
            }
            if ((info.FestivalType == FestivalType.SparConsumption && consume.GoldDate >= info.StartDate && consume.GoldNum >= info.RestrainNum) ||
                (info.FestivalType == FestivalType.GameCoin && consume.CoinDate >= info.StartDate && consume.GameCoin >= info.RestrainNum) ||
                (info.FestivalType == FestivalType.Energy && consume.EnergyDate >= info.StartDate && consume.EnergyNum >= info.RestrainNum))
            {
                CacheList <PrizeInfo> prizeList = PrizeHelper.GetPrizeInfo(info.Reward);
                foreach (PrizeInfo prize in prizeList)
                {
                    UserTakePrize userTask = PrizeHelper.GetUserTake(prize, userID, info);
                    new ShareCacheStruct <UserTakePrize>().Add(userTask);
                }
                if (fRest == null)
                {
                    fRest              = new FestivalRestrain();
                    fRest.FestivalID   = info.FestivalID;
                    fRest.RefreashDate = info.StartDate;
                    fRest.RestrainNum  = 1;
                    fRest.UserID       = userID;
                    cacheSet.Add(fRest);
                }
                else
                {
                    fRest.RefreashDate = info.StartDate;
                    fRest.RestrainNum  = 1;
                    //fRest.Update();
                }
            }
        }
Пример #16
0
 public override bool TakeAction()
 {
     festivalInfo = new ShareCacheStruct <FestivalInfo>().FindKey(festivalID);
     if (festivalInfo != null)
     {
         string shortDateFormat = LanguageManager.GetLang().FestivalDataFormat;
         beginDate = festivalInfo.StartDate.ToString(shortDateFormat);//yyyy-MM-dd HH:mm:ss;ms
         // beginDate = string.Format("{0:M}", festivalInfo.StartDate);
         if (festivalInfo.EndDate != MathUtils.SqlMinDate)
         {
             // endDate = string.Format("{0:M}", festivalInfo.EndDate);
             endDate = festivalInfo.EndDate.ToString(shortDateFormat);
         }
         else
         {
             // endDate = string.Format("{0:M}", festivalInfo.StartDate.AddHours(festivalInfo.ContinuedTime));
             endDate = festivalInfo.StartDate.AddHours(festivalInfo.ContinuedTime).ToString(shortDateFormat);
         }
     }
     return(true);
 }
Пример #17
0
        /// <summary>
        ///龟兔赛跑活动奖励
        /// </summary>
        public static double TortoiseHare(string userID)
        {
            double       energyPro = 1;
            FestivalInfo info      = GetInfo(FestivalType.TortoiseHare);

            if (info == null)
            {
                return(energyPro);
            }
            List <TaskConfigInfo> taskConfigInfosList = new List <TaskConfigInfo>(info.TaskConfig);

            foreach (TaskConfigInfo taskConfigInfo in taskConfigInfosList)
            {
                if (taskConfigInfo.StratDate.ToDateTime() < DateTime.Now && DateTime.Now < taskConfigInfo.EndData.ToDateTime())
                {
                    energyPro = taskConfigInfo.MinusNum;
                    break;
                }
            }
            return(energyPro);
        }
Пример #18
0
        /// <summary>
        /// 累计充值活动
        /// </summary>
        public static void FestivalPayCount(FestivalInfo info, GameUser user)
        {
            UserRecharge recharge = new PersonalCacheStruct <UserRecharge>().FindKey(user.UserID);

            if (recharge == null)
            {
                return;
            }
            var cacheSet           = new PersonalCacheStruct <FestivalRestrain>();
            FestivalRestrain fRest = cacheSet.FindKey(user.UserID, info.FestivalID);

            if (fRest != null && fRest.RestrainNum >= 1 && fRest.RefreashDate == info.StartDate)
            {
                return;
            }
            if (recharge.FestivalDate >= info.StartDate &&
                recharge.FestivalCount >= info.RestrainNum)
            {
                CacheList <PrizeInfo> prizeList = PrizeHelper.GetPrizeInfo(info.Reward);
                foreach (PrizeInfo prize in prizeList)
                {
                    UserTakePrize userTask = PrizeHelper.GetUserTake(prize, user.UserID, info);
                    new ShareCacheStruct <UserTakePrize>().Add(userTask);
                }
                if (fRest == null)
                {
                    fRest              = new FestivalRestrain();
                    fRest.FestivalID   = info.FestivalID;
                    fRest.RefreashDate = info.StartDate;
                    fRest.RestrainNum  = 1;
                    fRest.UserID       = user.UserID;
                    cacheSet.Add(fRest);
                }
                else
                {
                    fRest.RefreashDate = info.StartDate;
                    fRest.RestrainNum  = 1;
                }
            }
        }
Пример #19
0
        /// <summary>
        /// 登入送好礼
        /// </summary>
        /// <param name="userID"></param>
        /// <param name="type"></param>
        public static void GetLoginGainReward(string userID, FestivalType type)
        {
            FestivalInfo info = GetInfo(type);

            if (info != null && info.FestivalExtend != null)
            {
                var cacheSet           = new PersonalCacheStruct <FestivalRestrain>();
                FestivalRestrain fRest = cacheSet.FindKey(userID, info.FestivalID);
                if (fRest == null)
                {
                    AppendFestivalRestrain(userID, info.FestivalID, 1);
                }
                else
                {
                    var prizeList = info.Reward.FindAll(s => s.RefreshDate.Date == DateTime.Now.Date);
                    if (fRest.RefreashDate.Date != DateTime.Now.Date && prizeList.Count > 0)
                    {
                        fRest.RefreashDate = DateTime.Now;
                        fRest.IsReceive    = false;
                    }
                }
            }
        }
Пример #20
0
        public static UserTakePrize GetUserTake(PrizeInfo prize, string userID, FestivalInfo info)
        {
            UserTakePrize userPrize = new UserTakePrize();

            userPrize.CreateDate     = DateTime.Now;
            userPrize.ID             = Guid.NewGuid().ToString();
            userPrize.UserID         = Convert.ToInt32(userID);
            userPrize.MailContent    = info.FestivalExtend.KeyWord;
            userPrize.IsTasked       = false;
            userPrize.TaskDate       = MathUtils.SqlMinDate;
            userPrize.ItemPackage    = string.Empty;
            userPrize.SparePackage   = string.Empty;
            userPrize.CrystalPackage = string.Empty;
            userPrize.EnchantPackage = string.Empty;
            userPrize.OpUserID       = 10000;
            switch (prize.Type)
            {
            case RewardType.GameGoin:
                userPrize.GameCoin     = prize.Num;
                userPrize.MailContent += string.Format(LanguageManager.GetLang().St_GameCoin, prize.Num);
                break;

            case RewardType.Obtion:
                userPrize.ObtainNum    = prize.Num;
                userPrize.MailContent += string.Format(LanguageManager.GetLang().St_ObtionNum, prize.Num);
                break;

            case RewardType.ExpNum:
                userPrize.ExpNum       = prize.Num;
                userPrize.MailContent += string.Format(LanguageManager.GetLang().St_ExpNum, prize.Num);
                break;

            case RewardType.EnergyNum:
                userPrize.EnergyNum    = prize.Num;
                userPrize.MailContent += string.Format(LanguageManager.GetLang().St_EnergyNum, prize.Num);
                break;

            case RewardType.Experience:
                break;

            case RewardType.Gold:
                userPrize.Gold         = prize.Num;
                userPrize.MailContent += string.Format(LanguageManager.GetLang().St_GiftGoldNum, prize.Num);
                break;

            case RewardType.Item:
                userPrize.ItemPackage = string.Format("{0}={1}={2}", prize.ItemID, prize.UserLv, prize.Num);
                ItemBaseInfo itemInfo = new ShareCacheStruct <ItemBaseInfo>().FindKey(prize.ItemID);
                if (itemInfo != null)
                {
                    userPrize.MailContent += string.Format("{0}*{1}", itemInfo.ItemName, prize.Num);
                }
                break;

            case RewardType.CrystalType:
                //List<CrystalInfo> crystalArray2 = new ShareCacheStruct<CrystalInfo>().FindAll(CrystalInfo.Index_CrystalQuality, prize.CrystalType);
                //userPrize.CrystalPackage = string.Format("{0}={1}={2}", itemID, prize.UserLv, itemNum);
                break;

            case RewardType.CrystalId:

                userPrize.CrystalPackage = string.Format("{0}={1}={2}", prize.ItemID, prize.UserLv, prize.Num);
                CrystalInfo crystal = new ShareCacheStruct <CrystalInfo>().FindKey(prize.ItemID);
                if (crystal != null)
                {
                    userPrize.MailContent += string.Format("{0}*{1}", crystal.CrystalName, prize.Num);
                }
                break;

            case RewardType.Spare:
                userPrize.SparePackage = string.Format("{0}={1}={2}", prize.ItemID, prize.Num, prize.Num);
                SparePartInfo spare = new ShareCacheStruct <SparePartInfo>().FindKey(prize.ItemID);
                if (spare != null)
                {
                    userPrize.MailContent += string.Format("{0}*{1}", spare.Name, prize.Num);
                }
                break;

            case RewardType.Enchant:
                userPrize.EnchantPackage = string.Format("{0}={1}={2}", prize.ItemID, prize.UserLv, prize.Num);
                EnchantInfo enchantInfo = new ShareCacheStruct <EnchantInfo>().FindKey(prize.ItemID);
                if (enchantInfo != null)
                {
                    userPrize.MailContent += string.Format("{0}*{1}", enchantInfo.EnchantName, prize.Num);
                }
                break;

            default:
                break;
            }
            return(userPrize);
        }
Пример #21
0
        /// <summary>
        /// 累计消费活动
        /// </summary>
        public static void TriggerFestivalConsume(string userID, int consumeNum, FestivalType festivalType)
        {
            FestivalInfo fest = GetInfo(festivalType);

            if (fest == null)
            {
                return;
            }
            var         cacheSet    = new PersonalCacheStruct <UserConsume>();
            UserConsume userConsume = cacheSet.FindKey(userID);

            if (userConsume == null)
            {
                userConsume           = new UserConsume();
                userConsume.UserID    = userID;
                userConsume.GameCoin  = 0;
                userConsume.GoldNum   = 0;
                userConsume.EnergyNum = 0;
                cacheSet.Add(userConsume);
                cacheSet.Update();
                userConsume = new PersonalCacheStruct <UserConsume>().FindKey(userID);
            }
            //晶石
            if (festivalType == FestivalType.SparConsumption)
            {
                if (userConsume.GoldDate < fest.StartDate)
                {
                    userConsume.GoldDate = fest.StartDate;
                    userConsume.GoldNum  = consumeNum;
                }
                else
                {
                    userConsume.GoldNum = MathUtils.Addition(userConsume.GoldNum, consumeNum);
                }
            }

            //金币
            if (festivalType == FestivalType.GameCoin)
            {
                if (userConsume.CoinDate < fest.StartDate)
                {
                    userConsume.CoinDate = fest.StartDate;
                    userConsume.GameCoin = consumeNum;
                }
                else
                {
                    userConsume.GameCoin = MathUtils.Addition(userConsume.GameCoin, consumeNum);
                }
            }

            //精力
            if (festivalType == FestivalType.Energy)
            {
                if (userConsume.EnergyDate < fest.StartDate)
                {
                    userConsume.EnergyDate = fest.StartDate;
                    userConsume.EnergyNum  = consumeNum;
                }
                else
                {
                    userConsume.EnergyNum = MathUtils.Addition(userConsume.EnergyNum, consumeNum);
                }
            }
            FestivalInfo[] festivalInfosArray =
                new ShareCacheStruct <FestivalInfo>().FindAll(m => m.FestivalType == festivalType).ToArray();
            foreach (FestivalInfo festivalInfo in festivalInfosArray)
            {
                FestivalConsumeCount(festivalInfo, userID);
            }
        }