Beispiel #1
0
        private void CreateGeneral(CareerInfo careerInfo)
        {
            GeneralInfo        general          = new ConfigCacheSet <GeneralInfo>().FindKey(generalID);
            List <UserGeneral> userGeneralArray = new GameDataCacheSet <UserGeneral>().FindAll(Uid);

            if (userGeneralArray.Count > 0 || general == null)
            {
                return;
            }

            UserGeneral userGeneral = new UserGeneral();

            userGeneral.UserID            = Uid;
            userGeneral.GeneralID         = general.GeneralID;
            userGeneral.GeneralName       = general.GeneralName;
            userGeneral.HeadID            = general.HeadID;
            userGeneral.PicturesID        = general.PicturesID;
            userGeneral.GeneralLv         = (short)careerInfo.Lv;
            userGeneral.GeneralType       = GeneralType.YongHu;
            userGeneral.CareerID          = _careerID;
            userGeneral.PowerNum          = general.PowerNum;
            userGeneral.SoulNum           = general.SoulNum;
            userGeneral.IntellectNum      = general.IntellectNum;
            userGeneral.TrainingPower     = 0;
            userGeneral.TrainingSoul      = 0;
            userGeneral.TrainingIntellect = 0;
            userGeneral.AbilityID         = general.AbilityID;
            userGeneral.Momentum          = 0;
            userGeneral.Description       = string.Empty;
            userGeneral.HitProbability    = ConfigEnvSet.GetDecimal("Combat.HitiNum");
            userGeneral.GeneralStatus     = GeneralStatus.DuiWuZhong;
            userGeneral.CurrExperience    = 0;
            userGeneral.Experience1       = 0;
            userGeneral.Experience2       = 0;
            //userGeneral.LifeNum = MathUtils.Addition(general.LifeNum, careerInfo.LifeIncreaseNum * (MathUtils.Subtraction(careerInfo.Lv, (short)1, (short)0)), int.MaxValue);
            userGeneral.RefreshMaxLife();
            userGeneral.HeritageType = HeritageType.Normal;
            userGeneral.AbilityNum   = 3;
            var cacheSet = new GameDataCacheSet <UserGeneral>();

            cacheSet.Add(userGeneral);
            cacheSet.Update();
            UserAbilityHelper.AddUserAbility(general.AbilityID, Uid.ToInt(), generalID, 1);
        }
Beispiel #2
0
 /// <summary>
 /// 好感度升级
 /// </summary>
 /// <param name="general"></param>
 /// <param name="experience"></param>
 public static void GeneralFeelUpgrade(UserGeneral general, int experience, short saturationNum)
 {
     if (general != null)
     {
         int maxSatiationNum = ConfigEnvSet.GetInt("User.FeelMaxSatiationNum");
         general.FeelExperience = MathUtils.Addition(general.FeelExperience, experience);
         general.SaturationNum  = MathUtils.Addition(general.SaturationNum, saturationNum, (short)maxSatiationNum);
         while (true)
         {
             short      feelLv       = MathUtils.Addition(general.FeelLv, (short)1, maxFeelLv);
             FeelLvInfo upfeelLvInfo = new ShareCacheStruct <FeelLvInfo>().FindKey(feelLv);
             if (general.FeelLv < feelLv && upfeelLvInfo != null)
             {
                 if (general.FeelExperience >= upfeelLvInfo.Experience)
                 {
                     general.FeelLv         = MathUtils.Addition(general.FeelLv, (short)1, maxFeelLv);
                     general.FeelExperience = MathUtils.Subtraction(general.FeelExperience, upfeelLvInfo.Experience, 0);
                     general.RefreshMaxLife();
                     GeneralInfo generalInfo = new ShareCacheStruct <GeneralInfo>().FindKey(general.GeneralID);
                     if (generalInfo != null && generalInfo.ReplaceSkills != null)
                     {
                         if (general.FeelLv >= generalInfo.ReplaceSkills.FeelLv && general.AbilityID != generalInfo.ReplaceSkills.AbilityID)
                         {
                             general.AbilityID = generalInfo.ReplaceSkills.AbilityID;
                         }
                     }
                 }
                 else
                 {
                     break;
                 }
             }
             else
             {
                 break;
             }
         }
     }
 }