Beispiel #1
0
 /// <summary>
 /// 是否满足培养条件
 /// </summary>
 /// <param name="user"></param>
 /// <param name="culTure"></param>
 /// <returns></returns>
 public static bool IsMeet(GameUser user, EnchantCulTure culTure)
 {
     if ((culTure.CultureType == EnchantCultureType.Ordinary && user.UserExtend != null && user.UserExtend.MoJingNum >= culTure.MoJingNum) ||
         (user.GoldNum >= culTure.GoldNum && culTure.CultureType != EnchantCultureType.Ordinary))
     {
         return(true);
     }
     return(false);
 }
Beispiel #2
0
        /// <summary>
        /// 附魔符培养列表
        /// </summary>
        /// <returns></returns>
        public static List <EnchantCulTure> EnchantCultureList()
        {
            List <EnchantCulTure> enchantList = new List <EnchantCulTure>();

            string[] cultureArray = ConfigEnvSet.GetString("Enchant.EnchantCulture").Split(',');
            foreach (var str in cultureArray)
            {
                EnchantCulTure enchantCulTure = new EnchantCulTure();
                string[]       strCulture     = str.Split('=');
                if (strCulture.Length > 4)
                {
                    enchantCulTure.CultureType = strCulture[0].ToEnum <EnchantCultureType>();
                    enchantCulTure.GoldNum     = strCulture[1].ToInt();
                    enchantCulTure.MoJingNum   = strCulture[2].ToInt();
                    enchantCulTure.UpMature    = strCulture[3].ToShort();
                    enchantCulTure.SuccessNum  = strCulture[4].ToDecimal();
                    enchantList.Add(enchantCulTure);
                }
            }
            return(enchantList);
        }
Beispiel #3
0
        public override bool TakeAction()
        {
            var package = UserEnchant.Get(ContextUser.UserID);

            if (package != null)
            {
                var userEnchant = package.EnchantPackage.Find(m => m.UserEnchantID == userEnchantID);
                if (userEnchant != null)
                {
                    if (userEnchant.MaxMature >= GameConfigSet.MaxEnchantMature)
                    {
                        ErrorCode = LanguageManager.GetLang().ErrorCode;
                        ErrorInfo = LanguageManager.GetLang().St1258_OutMaxEnchantMature;
                        return(false);
                    }
                    List <EnchantCulTure> culTuresList   = EnchantHelper.EnchantCultureList();
                    EnchantCulTure        enchantCulTure = culTuresList.Find(m => m.CultureType == cultureType);
                    if (enchantCulTure != null)
                    {
                        if (cultureType == EnchantCultureType.Ordinary)
                        {
                            if (ContextUser.UserExtend == null || ContextUser.UserExtend.MoJingNum < enchantCulTure.MoJingNum)
                            {
                                ErrorCode = LanguageManager.GetLang().ErrorCode;
                                ErrorInfo = LanguageManager.GetLang().St1258_MagicCrystalNotEnough;
                                return(false);
                            }
                        }
                        else
                        {
                            if (ContextUser.GoldNum < enchantCulTure.GoldNum)
                            {
                                ErrorCode = LanguageManager.GetLang().ErrorCode;
                                ErrorInfo = LanguageManager.GetLang().St_GoldNotEnough;
                                return(false);
                            }
                        }
                        string content = string.Empty;
                        if (RandomUtils.IsHit(enchantCulTure.SuccessNum))
                        {
                            if (cultureType == EnchantCultureType.Ordinary)
                            {
                                ContextUser.UserExtend.MoJingNum = MathUtils.Subtraction(ContextUser.UserExtend.MoJingNum, enchantCulTure.MoJingNum);
                                content = string.Format(LanguageManager.GetLang().St1258_ConsumeMagicCrystalUpEnhance, enchantCulTure.MoJingNum, enchantCulTure.UpMature);
                            }
                            else
                            {
                                ContextUser.UseGold = MathUtils.Addition(ContextUser.UseGold, enchantCulTure.GoldNum);
                                content             = string.Format(LanguageManager.GetLang().St1258_ConsumeGoldNumUpEnhance, enchantCulTure.GoldNum, enchantCulTure.UpMature);
                            }
                            short maxMatureNum = MathUtils.Addition(userEnchant.MaxMature, enchantCulTure.UpMature, (short)GameConfigSet.MaxEnchantMature);
                            userEnchant.UpdateNotify(obj =>
                            {
                                userEnchant.MaxMature = maxMatureNum;
                                return(true);
                            });
                            UserLogHelper.AppenEnchantLog(ContextUser.UserID, 3, userEnchant, new CacheList <SynthesisInfo>());
                        }
                        else
                        {
                            if (cultureType == EnchantCultureType.Ordinary)
                            {
                                ContextUser.UserExtend.MoJingNum = MathUtils.Subtraction(ContextUser.UserExtend.MoJingNum, enchantCulTure.MoJingNum);
                                content = string.Format(LanguageManager.GetLang().St1258_EnhanceCultureFailedMagicCrystal, enchantCulTure.MoJingNum);
                            }
                            else
                            {
                                ContextUser.UseGold = MathUtils.Addition(ContextUser.UseGold, enchantCulTure.GoldNum);
                                content             = string.Format(LanguageManager.GetLang().St1258_EnhanceCultureFailedGold, enchantCulTure.GoldNum);
                            }
                        }
                        ErrorCode = 0;
                        ErrorInfo = content;
                    }
                }
            }
            return(true);
        }