/// <summary> /// 佣兵招募冷却时间 /// </summary> /// <param name="userID"></param> /// <param name="recruitRule"></param> /// <returns></returns> public static void UpdateRecruitColdTime(string userID, RecruitRule recruitRule) { QueueType queueType = QueueType.ShiLiTiaoYi; if (recruitRule.RecruitType == RecruitType.ShiLiTiaoYi.ToInt()) { queueType = QueueType.ShiLiTiaoYi; } else if (recruitRule.RecruitType == RecruitType.BaiLiTiaoYi.ToInt()) { queueType = QueueType.BaiLiTiaoYi; } else if (recruitRule.RecruitType == RecruitType.Golden.ToInt()) { queueType = QueueType.Golden; } var cacheSet = new GameDataCacheSet <UserQueue>(); UserQueue userQueue = cacheSet.Find(userID, s => s.QueueType == queueType); if (userQueue == null) { userQueue = new UserQueue(); userQueue.QueueID = Guid.NewGuid().ToString(); userQueue.UserID = userID; userQueue.QueueType = queueType; cacheSet.Add(userQueue, userID.ToInt()); } userQueue.QueueName = queueType.ToString(); userQueue.Timing = DateTime.Now; userQueue.TotalColdTime = recruitRule.CodeTime; userQueue.ColdTime = recruitRule.CodeTime; userQueue.StrengNum = 1; userQueue.IsSuspend = false; }
public static void GeneralSort(string userId, List <UserGeneral> userGenerals) { if (userGenerals.Count > 0) { var _userMagicArray = new GameDataCacheSet <UserMagic>().FindAll(userId); var userMagic = _userMagicArray.Find( x => x.UserID == userId && x.MagicType == MagicType.MoFaZhen && x.IsEnabled == true); var userEmbattleInfo = new GameDataCacheSet <UserEmbattle>().FindAll(userId, x => x.MagicID == userMagic.MagicID); if (userEmbattleInfo != null) { userEmbattleInfo.ForEach(x => { foreach (var userGeneral in userGenerals) { if (x.GeneralID == userGeneral.GeneralID) { userGeneral.Position = x.Position; } } }); } userGenerals.QuickSort((x, y) => { int result = 0; if (x == null && y == null) { return(0); } if (x != null && y == null) { return(1); } if (x == null) { return(-1); } // 1、是否上阵(出手先后) 2、品质高低 result = y.IsBattle.CompareTo(x.IsBattle); if (result == 0) { result = x.Position.CompareTo(y.Position); } if (result == 0) { result = y.GeneralQuality.CompareTo(x.GeneralQuality); } if (result == 0) { result = x.GeneralID.CompareTo(y.GeneralID); } return(result); }); } }
public static void GeneralSort(string userId, List<UserGeneral> userGenerals) { if (userGenerals.Count > 0) { var _userMagicArray = new GameDataCacheSet<UserMagic>().FindAll(userId); var userMagic = _userMagicArray.Find( x => x.UserID == userId && x.MagicType == MagicType.MoFaZhen && x.IsEnabled == true); var userEmbattleInfo = new GameDataCacheSet<UserEmbattle>().FindAll(userId, x => x.MagicID == userMagic.MagicID); if (userEmbattleInfo != null) { userEmbattleInfo.ForEach(x => { foreach (var userGeneral in userGenerals) { if (x.GeneralID == userGeneral.GeneralID) { userGeneral.Position = x.Position; } } }); } userGenerals.QuickSort((x, y) => { int result = 0; if (x == null && y == null) return 0; if (x != null && y == null) return 1; if (x == null) return -1; // 1、是否上阵(出手先后) 2、品质高低 result = y.IsBattle.CompareTo(x.IsBattle); if (result == 0) { result = x.Position.CompareTo(y.Position); } if (result == 0) { result = y.GeneralQuality.CompareTo(x.GeneralQuality); } if (result == 0) { result = x.GeneralID.CompareTo(y.GeneralID); } return result; }); } }
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 = 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() { int currMaxLv = GameConfigSet.CurrMaxLv; string lifeUserID = string.Empty; UserCrystalInfo[] userCrystalsArrray = new UserCrystalInfo[0]; if (!string.IsNullOrEmpty(toUserID)) { var packageCrystal = UserCrystalPackage.Get(toUserID); userGeneral = new GameDataCacheSet<UserGeneral>().FindKey(toUserID, generalID); userCrystalsArrray = packageCrystal.CrystalPackage.FindAll(m => m.IsSale == 2 && m.GeneralID.Equals(generalID)).ToArray(); var package = UserItemPackage.Get(toUserID); userItemArray = package.ItemPackage.FindAll( u => !u.IsRemove && u.GeneralID.Equals(generalID) && u.ItemStatus == ItemStatus.YongBing); lifeUserID = toUserID; } else { var packageCrystal = UserCrystalPackage.Get(ContextUser.UserID); userGeneral = new GameDataCacheSet<UserGeneral>().FindKey(ContextUser.UserID, generalID); userCrystalsArrray = packageCrystal.CrystalPackage.FindAll(m => m.IsSale == 2 && m.GeneralID.Equals(generalID)).ToArray(); var package = UserItemPackage.Get(ContextUser.UserID); userItemArray = package.ItemPackage.FindAll(u => !u.IsRemove && u.GeneralID.Equals(generalID) && u.ItemStatus == ItemStatus.YongBing); lifeUserID = ContextUser.UserID; } UserCacheGlobal.LoadOffline(lifeUserID); GeneralInfo generalInfo = new ConfigCacheSet<GeneralInfo>().FindKey(generalID); generalQuality = generalInfo == null ? (short)0 : generalInfo.GeneralQuality; if (generalInfo != null && userGeneral != null) { description = generalInfo.Description; if (userGeneral.GeneralLv >= currMaxLv) { genLv = (short)currMaxLv; userGeneral.CurrExperience = 0; } else { genLv = userGeneral.GeneralLv; } generalName = userGeneral.GeneralName; headID = userGeneral.HeadID; picturesID = userGeneral.PicturesID; _battleHeadId = generalInfo.BattleHeadID; _hitProbability = generalInfo.HitProbability; careerInfo = new ConfigCacheSet<CareerInfo>().FindKey(userGeneral.CareerID); GeneralEscalateInfo generalEscalate = new ConfigCacheSet<GeneralEscalateInfo>().FindKey(genLv); if (generalEscalate != null) { currExperience = userGeneral.CurrExperience; maxExperience = generalEscalate.UpExperience; } powerNum = MathUtils.Addition(userGeneral.PowerNum, userGeneral.TrainingPower, short.MaxValue); soulNum = MathUtils.Addition(userGeneral.SoulNum, userGeneral.TrainingSoul, short.MaxValue); intellectNum = MathUtils.Addition(userGeneral.IntellectNum, userGeneral.TrainingIntellect, short.MaxValue); if (!string.IsNullOrEmpty(ContextUser.MercenariesID) && generalID == LanguageManager.GetLang().GameUserGeneralID) { //公会技能加成 powerNum = MathUtils.RoundCustom(powerNum * CombatHelper.GetGuildAbilityNum(ContextUser.UserID, GuildAbilityType.PowerNum)).ToShort(); soulNum = MathUtils.RoundCustom(soulNum * CombatHelper.GetGuildAbilityNum(ContextUser.UserID, GuildAbilityType.SoulNum)).ToShort(); intellectNum = MathUtils.RoundCustom(intellectNum * CombatHelper.GetGuildAbilityNum(ContextUser.UserID, GuildAbilityType.IntellectNum)).ToShort(); } if (generalID == LanguageManager.GetLang().GameUserGeneralID) { //法宝基础属性加成 powerNum = MathUtils.Addition(powerNum, TrumpAbilityAttack.TrumpPropertyNum(ContextUser.UserID, generalID, AbilityType.PowerNum)); soulNum = MathUtils.Addition(soulNum, TrumpAbilityAttack.TrumpPropertyNum(ContextUser.UserID, generalID, AbilityType.SoulNum)); intellectNum = MathUtils.Addition(intellectNum, TrumpAbilityAttack.TrumpPropertyNum(ContextUser.UserID, generalID, AbilityType.IntelligenceNum)); //法宝--技能属性转换获得的值 //法宝--技能属性转换获得的值 decimal trumpPower = TrumpAbilityAttack.ConversionPropertyNum(ContextUser.UserID, powerNum, soulNum, intellectNum, AbilityType.PowerNum); decimal trumpsoul = TrumpAbilityAttack.ConversionPropertyNum(ContextUser.UserID, powerNum, soulNum, intellectNum, AbilityType.SoulNum); decimal trumpintellect = TrumpAbilityAttack.ConversionPropertyNum(ContextUser.UserID, powerNum, soulNum, intellectNum, AbilityType.IntelligenceNum); powerNum = MathUtils.Addition(trumpPower.ToShort(), powerNum); soulNum = MathUtils.Addition(trumpsoul.ToShort(), soulNum); intellectNum = MathUtils.Addition(trumpintellect.ToShort(), intellectNum); } lifeNum = userGeneral.LifeNum; lifeMaxNum = UserHelper.GetMaxLife(lifeUserID, generalID); genLv = userGeneral.GeneralLv; generalStatus = (short)userGeneral.GeneralStatus; talentAbility = userGeneral.AbilityID; _potential = userGeneral.Potential; _battleHeadID = generalInfo.BattleHeadID; //玩家佣兵职业名称 userCareerName = careerInfo.CareerName; } else if (generalInfo != null) { genLv = 1; generalName = generalInfo.GeneralName; headID = generalInfo.HeadID; picturesID = generalInfo.PicturesID; _battleHeadId = generalInfo.BattleHeadID; careerInfo = new ConfigCacheSet<CareerInfo>().FindKey(generalInfo.CareerID); GeneralEscalateInfo generalEscalate = new ConfigCacheSet<GeneralEscalateInfo>().FindKey(genLv); if (generalEscalate != null) { currExperience = 0; maxExperience = generalEscalate.UpExperience; } powerNum = generalInfo.PowerNum; soulNum = generalInfo.SoulNum; intellectNum = generalInfo.IntellectNum; lifeNum = generalInfo.LifeNum; lifeMaxNum = generalInfo.LifeNum; genLv = generalInfo.GeneralLv; generalStatus = (short)GeneralStatus.KeZhaoMu; talentAbility = generalInfo.AbilityID; } AbilityInfo ability = new ConfigCacheSet<AbilityInfo>().FindKey(talentAbility); talentName = ability == null ? string.Empty : ability.AbilityName; gPropertyList = CombatHelper.GetAbility(lifeUserID, generalID, userGeneral); int sumCrystal = 0; foreach (UserCrystalInfo crystal in userCrystalsArrray) { sumCrystal = MathUtils.Addition(sumCrystal, crystal.CurrExprience, int.MaxValue); } vitalityNum = (sumCrystal / 10); functionList = ViewHelper.GetFunctionList(lifeUserID); //佣兵魂技 UserAbility userAbility = new GameDataCacheSet<UserAbility>().FindKey(ContextUser.UserID); if (userAbility != null) { abilityList = userAbility.AbilityList.FindAll(s => s.GeneralID == generalID); } soulGrid = UserPackHelper.GetPackTypePositionNum(BackpackType.HunJi, ContextUser.UserID); // 缘分系统 KarmaInfo karmaInfo = new ShareCacheStruct<KarmaInfo>().FindKey(generalID); if (karmaInfo != null && karmaInfo.KarmaList != null) { // 满足缘分条件显示激活状态 // 判断佣兵 UserMagic userMagic = new GameDataCacheSet<UserMagic>().Find(ContextUser.UserID, s => s.IsEnabled); var cacheSetUserEmbattle = new GameDataCacheSet<UserEmbattle>(); List<Karma> yongBingList = karmaInfo.KarmaList.FindAll(s => s.KarmaType == KarmaType.YongBing); yongBingList.ForEach(yongBingInfo => { //yongBingInfo.IsActive = 1; // 若阵型中存在该记录,该缘分为激活状态 if (yongBingInfo.ValueID.Contains(",")) { string[] valueID = yongBingInfo.ValueID.Split(','); int i = 0; foreach (var id in valueID) { if (cacheSetUserEmbattle.Find(ContextUser.UserID, s => s.MagicID == userMagic.MagicID && s.GeneralID == MathUtils.ToInt(id)) != null) { i++; } } yongBingInfo.IsActive = i == valueID.Length ? 1 : 0; } else { if (cacheSetUserEmbattle.Find(ContextUser.UserID, s => s.MagicID == userMagic.MagicID && s.GeneralID == MathUtils.ToInt(yongBingInfo.ValueID)) != null) { yongBingInfo.IsActive = 1; } else { yongBingInfo.IsActive = 0; } } }); // 判断装备 UserItemPackage itemPackage = new GameDataCacheSet<UserItemPackage>().FindKey(UserId.ToString()); if (itemPackage != null) { List<Karma> itemList = karmaInfo.KarmaList.FindAll(s => s.KarmaType == KarmaType.ZhuangBei); itemList.ForEach(itemInfo => { if (itemPackage.ItemPackage.Find(s => s.ItemID == MathUtils.ToInt(itemInfo.ValueID) && s.GeneralID == generalID) != null) { itemInfo.IsActive = 1; } else { itemInfo.IsActive = 0; } }); } // 判断命运水晶 UserCrystalPackage crystalPackage = new GameDataCacheSet<UserCrystalPackage>().FindKey(UserId.ToString()); if (itemPackage != null) { List<Karma> crystalList = karmaInfo.KarmaList.FindAll(s => s.KarmaType == KarmaType.ShuiJing); crystalList.ForEach(crystalInfo => { if (crystalPackage.CrystalPackage.Find(s => s.CrystalID == MathUtils.ToInt(crystalInfo.ValueID) && s.GeneralID == generalID) != null) { crystalInfo.IsActive = 1; } else { crystalInfo.IsActive = 0; } }); } // 判断技能 UserAbility userAbilityInfo = new GameDataCacheSet<UserAbility>().FindKey(UserId.ToString()); if (userAbilityInfo != null) { List<Karma> abilityList = karmaInfo.KarmaList.FindAll(s => s.KarmaType == KarmaType.JiNen); abilityList.ForEach(abilityInfo => { if (userAbilityInfo.AbilityList.Find(s => s.AbilityID == MathUtils.ToInt(abilityInfo.ValueID) && s.GeneralID == generalID) != null) { abilityInfo.IsActive = 1; } else { abilityInfo.IsActive = 0; } }); } karmaList = karmaInfo.KarmaList; if (userGeneral != null) { lifeNum = userGeneral.TLifeNum; lifeMaxNum = userGeneral.TLifeMaxNun; } } return true; }
/// <summary> /// 佣兵招募冷却时间 /// </summary> /// <param name="userID"></param> /// <param name="recruitRule"></param> /// <returns></returns> public static void UpdateRecruitColdTime(string userID, RecruitRule recruitRule) { QueueType queueType = QueueType.ShiLiTiaoYi; if (recruitRule.RecruitType == RecruitType.ShiLiTiaoYi.ToInt()) { queueType = QueueType.ShiLiTiaoYi; } else if (recruitRule.RecruitType == RecruitType.BaiLiTiaoYi.ToInt()) { queueType = QueueType.BaiLiTiaoYi; } else if (recruitRule.RecruitType == RecruitType.Golden.ToInt()) { queueType = QueueType.Golden; } var cacheSet = new GameDataCacheSet<UserQueue>(); UserQueue userQueue = cacheSet.Find(userID, s => s.QueueType == queueType); if (userQueue == null) { userQueue = new UserQueue(); userQueue.QueueID = Guid.NewGuid().ToString(); userQueue.UserID = userID; userQueue.QueueType = queueType; cacheSet.Add(userQueue, userID.ToInt()); } userQueue.QueueName = queueType.ToString(); userQueue.Timing = DateTime.Now; userQueue.TotalColdTime = recruitRule.CodeTime; userQueue.ColdTime = recruitRule.CodeTime; userQueue.StrengNum = 1; userQueue.IsSuspend = false; }
public override bool TakeAction() { int currMaxLv = GameConfigSet.CurrMaxLv; string lifeUserID = string.Empty; UserCrystalInfo[] userCrystalsArrray = new UserCrystalInfo[0]; if (!string.IsNullOrEmpty(toUserID)) { var packageCrystal = UserCrystalPackage.Get(toUserID); userGeneral = new GameDataCacheSet <UserGeneral>().FindKey(toUserID, generalID); userCrystalsArrray = packageCrystal.CrystalPackage.FindAll(m => m.IsSale == 2 && m.GeneralID.Equals(generalID)).ToArray(); var package = UserItemPackage.Get(toUserID); userItemArray = package.ItemPackage.FindAll( u => !u.IsRemove && u.GeneralID.Equals(generalID) && u.ItemStatus == ItemStatus.YongBing); lifeUserID = toUserID; } else { var packageCrystal = UserCrystalPackage.Get(ContextUser.UserID); userGeneral = new GameDataCacheSet <UserGeneral>().FindKey(ContextUser.UserID, generalID); userCrystalsArrray = packageCrystal.CrystalPackage.FindAll(m => m.IsSale == 2 && m.GeneralID.Equals(generalID)).ToArray(); var package = UserItemPackage.Get(ContextUser.UserID); userItemArray = package.ItemPackage.FindAll(u => !u.IsRemove && u.GeneralID.Equals(generalID) && u.ItemStatus == ItemStatus.YongBing); lifeUserID = ContextUser.UserID; } UserCacheGlobal.LoadOffline(lifeUserID); GeneralInfo generalInfo = new ConfigCacheSet <GeneralInfo>().FindKey(generalID); generalQuality = generalInfo == null ? (short)0 : generalInfo.GeneralQuality; if (generalInfo != null && userGeneral != null) { description = generalInfo.Description; if (userGeneral.GeneralLv >= currMaxLv) { genLv = (short)currMaxLv; userGeneral.CurrExperience = 0; } else { genLv = userGeneral.GeneralLv; } generalName = userGeneral.GeneralName; headID = userGeneral.HeadID; picturesID = userGeneral.PicturesID; _battleHeadId = generalInfo.BattleHeadID; _hitProbability = generalInfo.HitProbability; careerInfo = new ConfigCacheSet <CareerInfo>().FindKey(userGeneral.CareerID); GeneralEscalateInfo generalEscalate = new ConfigCacheSet <GeneralEscalateInfo>().FindKey(genLv); if (generalEscalate != null) { currExperience = userGeneral.CurrExperience; maxExperience = generalEscalate.UpExperience; } powerNum = MathUtils.Addition(userGeneral.PowerNum, userGeneral.TrainingPower, short.MaxValue); soulNum = MathUtils.Addition(userGeneral.SoulNum, userGeneral.TrainingSoul, short.MaxValue); intellectNum = MathUtils.Addition(userGeneral.IntellectNum, userGeneral.TrainingIntellect, short.MaxValue); if (!string.IsNullOrEmpty(ContextUser.MercenariesID) && generalID == LanguageManager.GetLang().GameUserGeneralID) { //公会技能加成 powerNum = MathUtils.RoundCustom(powerNum * CombatHelper.GetGuildAbilityNum(ContextUser.UserID, GuildAbilityType.PowerNum)).ToShort(); soulNum = MathUtils.RoundCustom(soulNum * CombatHelper.GetGuildAbilityNum(ContextUser.UserID, GuildAbilityType.SoulNum)).ToShort(); intellectNum = MathUtils.RoundCustom(intellectNum * CombatHelper.GetGuildAbilityNum(ContextUser.UserID, GuildAbilityType.IntellectNum)).ToShort(); } if (generalID == LanguageManager.GetLang().GameUserGeneralID) { //法宝基础属性加成 powerNum = MathUtils.Addition(powerNum, TrumpAbilityAttack.TrumpPropertyNum(ContextUser.UserID, generalID, AbilityType.PowerNum)); soulNum = MathUtils.Addition(soulNum, TrumpAbilityAttack.TrumpPropertyNum(ContextUser.UserID, generalID, AbilityType.SoulNum)); intellectNum = MathUtils.Addition(intellectNum, TrumpAbilityAttack.TrumpPropertyNum(ContextUser.UserID, generalID, AbilityType.IntelligenceNum)); //法宝--技能属性转换获得的值 //法宝--技能属性转换获得的值 decimal trumpPower = TrumpAbilityAttack.ConversionPropertyNum(ContextUser.UserID, powerNum, soulNum, intellectNum, AbilityType.PowerNum); decimal trumpsoul = TrumpAbilityAttack.ConversionPropertyNum(ContextUser.UserID, powerNum, soulNum, intellectNum, AbilityType.SoulNum); decimal trumpintellect = TrumpAbilityAttack.ConversionPropertyNum(ContextUser.UserID, powerNum, soulNum, intellectNum, AbilityType.IntelligenceNum); powerNum = MathUtils.Addition(trumpPower.ToShort(), powerNum); soulNum = MathUtils.Addition(trumpsoul.ToShort(), soulNum); intellectNum = MathUtils.Addition(trumpintellect.ToShort(), intellectNum); } lifeNum = userGeneral.LifeNum; lifeMaxNum = UserHelper.GetMaxLife(lifeUserID, generalID); genLv = userGeneral.GeneralLv; generalStatus = (short)userGeneral.GeneralStatus; talentAbility = userGeneral.AbilityID; _potential = userGeneral.Potential; _battleHeadID = generalInfo.BattleHeadID; //玩家佣兵职业名称 userCareerName = careerInfo.CareerName; } else if (generalInfo != null) { genLv = 1; generalName = generalInfo.GeneralName; headID = generalInfo.HeadID; picturesID = generalInfo.PicturesID; _battleHeadId = generalInfo.BattleHeadID; careerInfo = new ConfigCacheSet <CareerInfo>().FindKey(generalInfo.CareerID); GeneralEscalateInfo generalEscalate = new ConfigCacheSet <GeneralEscalateInfo>().FindKey(genLv); if (generalEscalate != null) { currExperience = 0; maxExperience = generalEscalate.UpExperience; } powerNum = generalInfo.PowerNum; soulNum = generalInfo.SoulNum; intellectNum = generalInfo.IntellectNum; lifeNum = generalInfo.LifeNum; lifeMaxNum = generalInfo.LifeNum; genLv = generalInfo.GeneralLv; generalStatus = (short)GeneralStatus.KeZhaoMu; talentAbility = generalInfo.AbilityID; } AbilityInfo ability = new ConfigCacheSet <AbilityInfo>().FindKey(talentAbility); talentName = ability == null ? string.Empty : ability.AbilityName; gPropertyList = CombatHelper.GetAbility(lifeUserID, generalID, userGeneral); int sumCrystal = 0; foreach (UserCrystalInfo crystal in userCrystalsArrray) { sumCrystal = MathUtils.Addition(sumCrystal, crystal.CurrExprience, int.MaxValue); } vitalityNum = (sumCrystal / 10); functionList = ViewHelper.GetFunctionList(lifeUserID); //佣兵魂技 UserAbility userAbility = new GameDataCacheSet <UserAbility>().FindKey(ContextUser.UserID); if (userAbility != null) { abilityList = userAbility.AbilityList.FindAll(s => s.GeneralID == generalID); } soulGrid = UserPackHelper.GetPackTypePositionNum(BackpackType.HunJi, ContextUser.UserID); // 缘分系统 KarmaInfo karmaInfo = new ShareCacheStruct <KarmaInfo>().FindKey(generalID); if (karmaInfo != null && karmaInfo.KarmaList != null) { // 满足缘分条件显示激活状态 // 判断佣兵 UserMagic userMagic = new GameDataCacheSet <UserMagic>().Find(ContextUser.UserID, s => s.IsEnabled); var cacheSetUserEmbattle = new GameDataCacheSet <UserEmbattle>(); List <Karma> yongBingList = karmaInfo.KarmaList.FindAll(s => s.KarmaType == KarmaType.YongBing); yongBingList.ForEach(yongBingInfo => { //yongBingInfo.IsActive = 1; // 若阵型中存在该记录,该缘分为激活状态 if (yongBingInfo.ValueID.Contains(",")) { string[] valueID = yongBingInfo.ValueID.Split(','); int i = 0; foreach (var id in valueID) { if (cacheSetUserEmbattle.Find(ContextUser.UserID, s => s.MagicID == userMagic.MagicID && s.GeneralID == MathUtils.ToInt(id)) != null) { i++; } } yongBingInfo.IsActive = i == valueID.Length ? 1 : 0; } else { if (cacheSetUserEmbattle.Find(ContextUser.UserID, s => s.MagicID == userMagic.MagicID && s.GeneralID == MathUtils.ToInt(yongBingInfo.ValueID)) != null) { yongBingInfo.IsActive = 1; } else { yongBingInfo.IsActive = 0; } } }); // 判断装备 UserItemPackage itemPackage = new GameDataCacheSet <UserItemPackage>().FindKey(UserId.ToString()); if (itemPackage != null) { List <Karma> itemList = karmaInfo.KarmaList.FindAll(s => s.KarmaType == KarmaType.ZhuangBei); itemList.ForEach(itemInfo => { if (itemPackage.ItemPackage.Find(s => s.ItemID == MathUtils.ToInt(itemInfo.ValueID) && s.GeneralID == generalID) != null) { itemInfo.IsActive = 1; } else { itemInfo.IsActive = 0; } }); } // 判断命运水晶 UserCrystalPackage crystalPackage = new GameDataCacheSet <UserCrystalPackage>().FindKey(UserId.ToString()); if (itemPackage != null) { List <Karma> crystalList = karmaInfo.KarmaList.FindAll(s => s.KarmaType == KarmaType.ShuiJing); crystalList.ForEach(crystalInfo => { if (crystalPackage.CrystalPackage.Find(s => s.CrystalID == MathUtils.ToInt(crystalInfo.ValueID) && s.GeneralID == generalID) != null) { crystalInfo.IsActive = 1; } else { crystalInfo.IsActive = 0; } }); } // 判断技能 UserAbility userAbilityInfo = new GameDataCacheSet <UserAbility>().FindKey(UserId.ToString()); if (userAbilityInfo != null) { List <Karma> abilityList = karmaInfo.KarmaList.FindAll(s => s.KarmaType == KarmaType.JiNen); abilityList.ForEach(abilityInfo => { if (userAbilityInfo.AbilityList.Find(s => s.AbilityID == MathUtils.ToInt(abilityInfo.ValueID) && s.GeneralID == generalID) != null) { abilityInfo.IsActive = 1; } else { abilityInfo.IsActive = 0; } }); } karmaList = karmaInfo.KarmaList; if (userGeneral != null) { lifeNum = userGeneral.TLifeNum; lifeMaxNum = userGeneral.TLifeMaxNun; } } return(true); }