Exemple #1
0
        public override bool TakeAction()
        {
            //var usergeneral = UserGeneral.GetMainGeneral(ContextUser.UserID);
            //int generalID = usergeneral == null ? 0 : usergeneral.GeneralID;
            userGeneralArray = new GameDataCacheSet <UserGeneral>().FindAll(ContextUser.UserID, u => u.GeneralStatus == GeneralStatus.DuiWuZhong && u.GeneralType != GeneralType.Soul);
            // 佣兵排序
            GeneralSortHelper.GeneralSort(ContextUser.UserID, userGeneralArray);

            return(true);
        }
Exemple #2
0
        public override bool TakeAction()
        {
            GeneralHelper.StotyTaskFunction(ContextUser); //已完成替换佣兵功能开启
            _userMagicArray = new GameDataCacheSet <UserMagic>().FindAll(ContextUser.UserID, u => u.MagicID != 1 && u.MagicType == MagicType.MoFaZhen);
            _userMagicArray.QuickSort((x, y) =>
            {
                if (x == null && y == null)
                {
                    return(0);
                }
                if (x != null && y == null)
                {
                    return(1);
                }
                if (x == null)
                {
                    return(-1);
                }
                return(x.MagicID.CompareTo(y.MagicID));
            });

            var userFunction = new GameDataCacheSet <UserFunction>().FindKey(ContextUser.UserID, FunctionEnum.ReplaceGeneral);

            foreach (UserMagic magic in _userMagicArray)
            {
                if (magic == null)
                {
                    continue;
                }
                MagicLvInfo magicLv = new ConfigCacheSet <MagicLvInfo>().FindKey(magic.MagicID, magic.MagicLv);
                if (magicLv != null)
                {
                    string gridPostion = magicLv.GridRange;
                    if (magicLv.ReplacePostion > 0 && userFunction != null)
                    {
                        gridPostion = gridPostion.TrimEnd(',') + "," + magicLv.ReplacePostion;
                    }
                    string[] gridRangeArray = gridPostion.Split(',');
                    foreach (string gridRange in gridRangeArray)
                    {
                        UserEmbattle userEmbattle = new GameDataCacheSet <UserEmbattle>().FindKey(ContextUser.UserID, magic.MagicID, gridRange.ToShort());
                        if (userEmbattle == null)
                        {
                            UserEmbattle embattle = new UserEmbattle()
                            {
                                UserID    = ContextUser.UserID,
                                MagicID   = magic.MagicID,
                                Position  = gridRange.ToShort(),
                                GeneralID = 0
                            };
                            var cacheSet = new GameDataCacheSet <UserEmbattle>();
                            cacheSet.Add(embattle);
                        }
                    }
                }
            }
            _userGeneralArray = new GameDataCacheSet <UserGeneral>().FindAll(ContextUser.UserID, u => u.GeneralStatus == GeneralStatus.DuiWuZhong && u.GeneralType != GeneralType.Soul);

            // 佣兵排序
            GeneralSortHelper.GeneralSort(ContextUser.UserID, _userGeneralArray);

            return(true);
        }
Exemple #3
0
        public override bool TakeAction()
        {
            string publicUserID = ContextUser.UserID;

            if (!string.IsNullOrEmpty(toUserID))
            {
                publicUserID = toUserID;
            }
            UserMagic userMagic = new GameDataCacheSet <UserMagic>().Find(publicUserID, s => s.IsEnabled);

            var cacheSetUserEmbattle = new GameDataCacheSet <UserEmbattle>();
            var userGeneralList      = new List <UserGeneral>();

            switch (generalType)
            {
            case GeneralType.YongBing:

                userGeneralList = new GameDataCacheSet <UserGeneral>().FindAll(publicUserID, u => u.GeneralType != GeneralType.Soul && u.GeneralStatus == GeneralStatus.DuiWuZhong);

                break;

            case GeneralType.Soul:
                userGeneralList = new GameDataCacheSet <UserGeneral>().FindAll(publicUserID, u => u.GeneralType == generalType && u.AtmanNum > 0 && u.GeneralStatus == GeneralStatus.DuiWuZhong);
                break;

            case GeneralType.Battle:
                userGeneralList = new GameDataCacheSet <UserGeneral>().FindAll(publicUserID, u => u.GeneralType != GeneralType.Soul && u.GeneralStatus == GeneralStatus.DuiWuZhong);
                break;
            }
            foreach (var userGeneral in userGeneralList)
            {
                switch (generalType)
                {
                case GeneralType.YongBing:
                    if (
                        cacheSetUserEmbattle.Find(publicUserID, s => s.MagicID == userMagic.MagicID && s.GeneralID == userGeneral.GeneralID) !=
                        null)
                    {
                        userGeneral.IsBattle = true;
                    }
                    else
                    {
                        userGeneral.IsBattle = false;
                    }
                    userGeneralArray.Add(userGeneral);
                    break;

                case GeneralType.Soul:
                    userGeneralArray.Add(userGeneral);
                    break;

                case GeneralType.Battle:

                    if (
                        cacheSetUserEmbattle.Find(publicUserID, s => s.MagicID == userMagic.MagicID && s.GeneralID == userGeneral.GeneralID) !=
                        null)
                    {
                        userGeneral.IsBattle = true;
                        userGeneralArray.Add(userGeneral);
                    }

                    break;
                }
            }

            // 佣兵排序
            GeneralSortHelper.GeneralSort(ContextUser.UserID, userGeneralArray);

            return(true);
        }
        public override bool TakeAction()
        {
            string publicUserID = string.Empty;

            if (string.IsNullOrEmpty(toUserID))
            {
                publicUserID = ContextUser.UserID;
            }
            else
            {
                publicUserID = toUserID;
                UserCacheGlobal.LoadOffline(publicUserID);
            }
            GameUser user = new PersonalCacheStruct <GameUser>().FindKey(publicUserID);

            if (new PersonalCacheStruct <UserFunction>().FindKey(publicUserID, FunctionEnum.Mingyunshuijing) == null)
            {
                ErrorCode = LanguageManager.GetLang().ErrorCode;
                ErrorInfo = LanguageManager.GetLang().St_NoFun;
                return(false);
            }
            UserHelper.GetUserLightOpen(publicUserID);

            var package = UserCrystalPackage.Get(publicUserID);

            crystalPackNum   = user.CrystalNum;
            userGeneralArray = new PersonalCacheStruct <UserGeneral>().FindAll(publicUserID, u => u.GeneralStatus == GeneralStatus.DuiWuZhong && u.GeneralType != GeneralType.Soul);
            // 佣兵排序
            GeneralSortHelper.GeneralSort(ContextUser.UserID, userGeneralArray);

            if (userGeneralArray.Count > 0)
            {
                genQuality        = userGeneralArray[0].GeneralQuality.ToShort();
                userCrystalArray1 = package.CrystalPackage.FindAll(m => m.GeneralID == userGeneralArray[0].GeneralID);
                if (string.IsNullOrEmpty(toUserID))
                {
                    userCrystalArray2 = package.CrystalPackage.FindAll(m => m.GeneralID == 0 && m.IsSale == 2);
                    userCrystalArray2.QuickSort((x, y) =>
                    {
                        int result;
                        if (x == null && y == null)
                        {
                            return(0);
                        }
                        if (x != null && y == null)
                        {
                            return(1);
                        }
                        if (x == null)
                        {
                            return(-1);
                        }
                        result = y.CrystalQuality.CompareTo(x.CrystalQuality);
                        if (result == 0)
                        {
                            result = y.CurrExprience.CompareTo(x.CurrExprience);
                        }
                        return(result);
                    });
                }
            }
            return(true);
        }