Exemple #1
0
        /// <summary>
        /// 传承人或被传承人、传承类型选择
        /// </summary>
        /// <param name="userID"></param>
        /// <param name="generalHeritagesList"></param>
        /// <param name="type"></param>
        public static void HeritageGeneral(GameUser user, int type)
        {
            if (user.HeritageList.Count == 0)
            {
                return;
            }
            GeneralHeritage heritage = user.HeritageList.Find(m => m.Type == HeritageType.Heritage);
            GeneralHeritage hGernal  = user.HeritageList.Find(m => m.Type == HeritageType.IsHeritage);

            if (heritage == null || hGernal == null)
            {
                return;
            }
            var         cacheSet = new GameDataCacheSet <UserGeneral>();
            UserGeneral ugeneral = cacheSet.FindKey(user.UserID, heritage.GeneralID);
            UserGeneral general  = cacheSet.FindKey(user.UserID, hGernal.GeneralID);

            if (ugeneral == null || general == null)
            {
                return;
            }
            heritage.GeneralLv = ugeneral.GeneralLv;
            OpsInfo info = HeritageOpsInfo(type);

            if (info != null)
            {
                int generLv = (heritage.GeneralLv * info.Num).ToFloorInt(); //().ToShort();
                if (generLv < general.GeneralLv)
                {
                    generLv = general.GeneralLv;
                }
                hGernal.GeneralLv = generLv.ToShort();
                hGernal.opsType   = type;
            }
        }
Exemple #2
0
        public override bool TakeAction()
        {
            int   generalID   = 0;
            int   heGeneralID = 0;
            short generalLv   = 0;
            List <UserGeneral> generalList = new List <UserGeneral>();

            if (ContextUser.HeritageList.Count > 0)
            {
                GeneralHeritage heritageGenral = ContextUser.HeritageList.Find(m => m.Type == HeritageType.IsHeritage);
                if (heritageGenral != null)
                {
                    generalLv   = MathUtils.Addition(heritageGenral.GeneralLv, 3.ToShort());
                    heGeneralID = heritageGenral.GeneralID;
                }
            }
            if (heritageType == HeritageType.Heritage)
            {
                generalList = new GameDataCacheSet <UserGeneral>().FindAll(ContextUser.UserID,
                                                                           u => u.GeneralID != heGeneralID &&
                                                                           u.GeneralLv >= generalLv &&
                                                                           u.GeneralStatus == GeneralStatus.DuiWuZhong && u.GeneralType != GeneralType.Soul);
            }
            else if (heritageType == HeritageType.IsHeritage)
            {
                int             isGeneralID = 0;
                GeneralHeritage IsGenral    = ContextUser.HeritageList.Find(m => m.Type == HeritageType.IsHeritage);
                if (IsGenral != null)
                {
                    isGeneralID = IsGenral.GeneralID;
                }
                generalList = new GameDataCacheSet <UserGeneral>().FindAll(ContextUser.UserID,
                                                                           u => u.GeneralStatus == GeneralStatus.DuiWuZhong &&
                                                                           u.GeneralID != generalID &&
                                                                           u.GeneralID != isGeneralID &&
                                                                           u.GeneralID != heGeneralID && u.GeneralType != GeneralType.Soul);
            }
            foreach (var userGeneral in generalList)
            {
                if (!EmbattleHelper.IsEmbattleGeneral(userGeneral.UserID, userGeneral.GeneralID))
                {
                    generalArray.Add(userGeneral);
                }
            }
            return(true);
        }
Exemple #3
0
        public override bool TakeAction()
        {
            UserGeneral userGeneral = new GameDataCacheSet <UserGeneral>().FindKey(ContextUser.UserID, generalID);

            if (userGeneral == null)
            {
                ErrorCode      = LanguageManager.GetLang().ErrorCode;
                this.ErrorInfo = LanguageManager.GetLang().St1405_GeneralIDNotEnough;
                return(false);
            }
            if (ops == 1)
            {
                //佣兵离队时,传承清空
                if (ContextUser.HeritageList.Count > 0)
                {
                    GeneralHeritage heritage = ContextUser.HeritageList.Find(m => m.GeneralID == generalID);
                    if (heritage != null)
                    {
                        ContextUser.HeritageList = new CacheList <GeneralHeritage>();
                    }
                }
                List <UserEmbattle> embattleArray = new GameDataCacheSet <UserEmbattle>().FindAll(ContextUser.UserID, u => u.GeneralID == generalID);
                foreach (UserEmbattle embattle in embattleArray)
                {
                    embattle.GeneralID = 0;
                }
                if (userGeneral.GeneralID == LanguageManager.GetLang().GameUserGeneralID)
                {
                    this.ErrorCode = LanguageManager.GetLang().ErrorCode;
                    this.ErrorInfo = LanguageManager.GetLang().St1405_LiDuiNotFilter;
                    return(false);
                }
                userGeneral.GeneralStatus = GeneralStatus.LiDui;
            }
            return(true);
        }
        public override bool TakeAction()
        {
            CacheList <GeneralHeritage> heritageList = new CacheList <GeneralHeritage>();
            GeneralHeritage             heritage     = new GeneralHeritage();
            UserGeneral general = new PersonalCacheStruct <UserGeneral>().FindKey(ContextUser.UserID, generalID);

            if (general == null)
            {
                return(false);
            }
            if (ContextUser.HeritageList.Count > 0)
            {
                heritageList = ContextUser.HeritageList;
                if (heritageList.Find(m => m.Type == heritageType) != null)
                {
                    heritage = heritageList.Find(m => m.Type == heritageType);
                }
            }
            if (heritageType == HeritageType.Heritage)
            {
                int             opsid     = 0;
                OpsInfo         opsInfo   = GeneralHelper.HeritageOpsInfo(opsid);
                GeneralHeritage gHeritage = heritageList.Find(m => m.Type == HeritageType.IsHeritage);
                if (opsInfo != null)
                {
                    short genlv = MathUtils.Addition(gHeritage == null ? 0.ToShort() : gHeritage.GeneralLv, 3.ToShort());
                    if (gHeritage != null && general.GeneralLv < genlv)
                    {
                        ErrorCode = LanguageManager.GetLang().ErrorCode;
                        ErrorInfo = LanguageManager.GetLang().St1418_HeritageLvLow;
                        return(false);
                    }
                    ContextUser.HeritageList.Remove(heritage);
                    heritage.GeneralID = generalID;
                    heritage.Type      = heritageType;
                    heritage.GeneralLv = MathUtils.RoundCustom(heritage.GeneralLv * opsInfo.Num).ToShort();
                    heritage.GeneralLv = general.GeneralLv;
                    heritage.PowerNum  = MathUtils.RoundCustom(heritage.PowerNum * opsInfo.Num).ToShort();
                    if (heritage.PowerNum < general.TrainingPower)
                    {
                        heritage.PowerNum = general.TrainingPower;
                    }
                    heritage.SoulNum = MathUtils.RoundCustom(heritage.SoulNum * opsInfo.Num).ToShort();
                    if (heritage.SoulNum < general.SoulNum)
                    {
                        heritage.SoulNum = general.TrainingSoul;
                    }
                    heritage.IntellectNum = MathUtils.RoundCustom(heritage.IntellectNum * opsInfo.Num).ToShort();
                    if (heritage.IntellectNum < general.IntellectNum)
                    {
                        heritage.IntellectNum = general.TrainingIntellect;
                    }
                    heritage.opsType = 1;
                    ContextUser.HeritageList.Add(heritage);
                }
            }
            else if (heritageType == HeritageType.IsHeritage)
            {
                ContextUser.HeritageList = new CacheList <GeneralHeritage>();
                heritage.GeneralID       = generalID;
                heritage.GeneralLv       = general.GeneralLv;
                heritage.Type            = heritageType;
                heritage.PowerNum        = general.TrainingPower;
                heritage.SoulNum         = general.TrainingSoul;
                heritage.IntellectNum    = general.TrainingIntellect;
                ContextUser.HeritageList.Add(heritage);
            }
            return(true);
        }
Exemple #5
0
        public override bool TakeAction()
        {
            List <GeneralHeritage> heritageList = new List <GeneralHeritage>();

            if (ContextUser.HeritageList.Count > 0)
            {
                heritageList = ContextUser.HeritageList.ToList();
                GeneralHeritage heritage  = heritageList.Find(m => m.Type == HeritageType.Heritage);
                GeneralHeritage gheritage = heritageList.Find(m => m.Type == HeritageType.IsHeritage);
                if (heritage == null)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St1418_HeritageNotEnough;
                    return(false);
                }
                else if (gheritage == null)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St1419_IsHeritageNotEnough;
                    return(false);
                }
                var         cacheSet        = new GameDataCacheSet <UserGeneral>();
                UserGeneral general         = cacheSet.FindKey(ContextUser.UserID, heritage.GeneralID);
                UserGeneral heritagegeneral = cacheSet.FindKey(ContextUser.UserID, gheritage.GeneralID);
                if (general == null || heritagegeneral == null || general.GeneralID == heritagegeneral.GeneralID)
                {
                    return(false);
                }
                if (general.GeneralID == heritagegeneral.GeneralID)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St1419_HeritageNotInIsHeritage;
                    return(false);
                }
                if (general.HeritageType == HeritageType.Heritage)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St1419_HeritageInUse;
                    return(false);
                }
                int useGold = 0;
                int opsType = 0;
                int vipLv   = 0;
                if (ops == 1)
                {
                    ErrorCode = ops;
                    if (!IsNomalHeritage(ContextUser.UserID, ops))
                    {
                        ErrorCode = LanguageManager.GetLang().ErrorCode;
                        ErrorInfo = LanguageManager.GetLang().St1419_DanInsufficientHeritage;
                        return(false);
                    }
                }
                else if (ops == 2)
                {
                    opsType   = 2;
                    useGold   = HeritageUseGold(opsType, out vipLv);
                    ErrorCode = ops;
                    ErrorInfo = string.Format(LanguageManager.GetLang().St1419_GoldHeritage, useGold);
                    return(false);
                }
                else if (ops == 3)
                {
                    opsType = 2;
                    useGold = HeritageUseGold(opsType, out vipLv);
                    if (ContextUser.GoldNum < useGold)
                    {
                        ErrorCode = LanguageManager.GetLang().ErrorCode;
                        ErrorInfo = LanguageManager.GetLang().St_GoldNotEnough;
                        return(false);
                    }
                    if (gheritage.opsType != opsType)
                    {
                        return(false);
                    }
                    ContextUser.UseGold = MathUtils.Addition(ContextUser.UseGold, useGold);
                }

                else if (ops == 4)
                {
                    opsType   = 3;
                    useGold   = HeritageUseGold(opsType, out vipLv);
                    ErrorCode = ops;
                    ErrorInfo = string.Format(LanguageManager.GetLang().St1419_ExtremeHeritage, useGold);
                    return(false);
                }
                else if (ops == 5)
                {
                    opsType = 3;
                    useGold = HeritageUseGold(opsType, out vipLv);
                    if (vipLv > ContextUser.VipLv)
                    {
                        ErrorCode = LanguageManager.GetLang().ErrorCode;
                        ErrorInfo = LanguageManager.GetLang().St_VipNotEnough;
                        return(false);
                    }
                    if (ContextUser.GoldNum < useGold)
                    {
                        ErrorCode = LanguageManager.GetLang().ErrorCode;
                        ErrorInfo = LanguageManager.GetLang().St_GoldNotEnough;
                        return(false);
                    }
                    if (gheritage.opsType != opsType)
                    {
                        return(false);
                    }
                    ContextUser.UseGold = MathUtils.Addition(ContextUser.UseGold, useGold);
                }
                ErrorCode = ops;
                heritagegeneral.GeneralLv = gheritage.GeneralLv;
                general.GeneralStatus     = GeneralStatus.YinCang;
                var embattleList = new GameDataCacheSet <UserEmbattle>().FindAll(ContextUser.UserID, s => s.GeneralID == general.GeneralID);
                foreach (var embattle in embattleList)
                {
                    embattle.GeneralID = 0;
                }
                //heritagegeneral.TrainingPower = gheritage.PowerNum;
                //heritagegeneral.TrainingSoul = gheritage.SoulNum;
                //heritagegeneral.TrainingIntellect = gheritage.IntellectNum;
                //heritagegeneral.HeritageType = HeritageType.IsHeritage;
                //general.HeritageType = HeritageType.Heritage;
                ContextUser.HeritageList = new CacheList <GeneralHeritage>();
                ErrorInfo = LanguageManager.GetLang().St1419_HeritageSuccess;
            }
            return(true);
        }