/// <summary> /// 法宝加经验,升级 /// </summary> /// <param name="userID"></param> /// <param name="experience"></param> public static void CheckTrumpEscalate(string userID, int experience) { UserTrump userTrump = new GameDataCacheSet<UserTrump>().FindKey(userID, TrumpInfo.CurrTrumpID); if (userTrump != null) { userTrump.Experience = MathUtils.Addition(userTrump.Experience, experience); while (userTrump.TrumpLv < GameConfigSet.MaxTrumpLv) { short upLv = MathUtils.Addition(userTrump.TrumpLv, (short)1, GameConfigSet.MaxTrumpLv.ToShort()); TrumpInfo trumpInfo = new ConfigCacheSet<TrumpInfo>().FindKey(TrumpInfo.CurrTrumpID, upLv); if (trumpInfo != null && userTrump.Experience >= trumpInfo.Experience) { userTrump.TrumpLv = MathUtils.Addition(userTrump.TrumpLv, (short)1, GameConfigSet.MaxTrumpLv.ToShort()); userTrump.Experience = MathUtils.Subtraction(userTrump.Experience, trumpInfo.Experience); if (trumpInfo.SkillID > 0) { SkillInfo skillInfo = new SkillInfo(); skillInfo.AbilityID = trumpInfo.SkillID.ToInt(); skillInfo.AbilityLv = 1; userTrump.SkillInfo.Add(skillInfo); } } else { break; } } if (userTrump.TrumpLv >= GameConfigSet.MaxTrumpLv) { userTrump.Experience = 0; } } }
/// <summary> /// 修复玩家法宝技能 /// </summary> /// <param name="userID"></param> public static void RepairMagicSkills(string userID) { UserTrump userTrump = new GameDataCacheSet<UserTrump>().FindKey(userID, TrumpInfo.CurrTrumpID); if (userTrump != null) { Dictionary<int, short> skillList = GetSkillList(); while (userTrump.SkillInfo.Count > skillList.Count) { userTrump.SkillInfo.Remove(userTrump.SkillInfo[skillList.Count]); } int i = 0; foreach (KeyValuePair<int, short> pair in skillList) { if (userTrump.TrumpLv >= pair.Value && userTrump.SkillInfo.Count <= i) { SkillInfo skillInfo = new SkillInfo(); skillInfo.AbilityID = pair.Key; skillInfo.AbilityLv = 1; userTrump.SkillInfo.Add(skillInfo); } i++; } } }
protected override object this[string index] { get { #region switch (index) { case "GeneralID": return GeneralID; case "HeadID": return HeadID; case "PicturesID": return PicturesID; case "GeneralName": return GeneralName; case "GeneralLv": return GeneralLv; case "LifeNum": return LifeNum; case "CareerID": return CareerID; case "PowerNum": return PowerNum; case "SoulNum": return SoulNum; case "IntellectNum": return IntellectNum; case "HitProbability": return HitProbability; case "AbilityID": return AbilityID; case "IsRecruit": return IsRecruit; case "ShowFilter": return ShowFilter; case "RecruitFilter": return RecruitFilter; case "GiftType": return GiftType; case "Description": return Description; case "ReplaceSkills": return ReplaceSkills; case "GeneralType": return GeneralType; case "SoulID": return SoulID; case "DemandNum": return DemandNum; case "Mature": return Mature; case "GeneralQuality": return GeneralQuality; case "ItemID": return ItemID; case "BattleHeadID": return BattleHeadID; case "IsConscribe": return IsConscribe; default: throw new ArgumentException(string.Format("GeneralInfo index[{0}] isn't exist.", index)); } #endregion } set { #region switch (index) { case "GeneralID": _GeneralID = value.ToInt(); break; case "HeadID": _HeadID = value.ToNotNullString(); break; case "PicturesID": _PicturesID = value.ToNotNullString(); break; case "GeneralName": _GeneralName = value.ToNotNullString(); break; case "GeneralLv": _GeneralLv = value.ToShort(); break; case "LifeNum": _LifeNum = value.ToInt(); break; case "CareerID": _CareerID = value.ToShort(); break; case "PowerNum": _PowerNum = value.ToShort(); break; case "SoulNum": _SoulNum = value.ToShort(); break; case "IntellectNum": _IntellectNum = value.ToShort(); break; case "HitProbability": _HitProbability = value.ToDecimal(); break; case "AbilityID": _AbilityID = value.ToInt(); break; case "IsRecruit": _IsRecruit = value.ToBool(); break; case "ShowFilter": _ShowFilter = ConvertCustomField<CacheList<ShowFilterInfo>>(value, index); break; case "RecruitFilter": _RecruitFilter = ConvertCustomField<CacheList<RecruitFilter>>(value, index); break; case "Description": _Description = value.ToNotNullString(); break; case "GiftType": _GiftType = value.ToEnum<GiftType>(); break; case "ReplaceSkills": _ReplaceSkills = ConvertCustomField<SkillInfo>(value, index); break; case "GeneralType": _GeneralType = value.ToEnum<GeneralType>(); break; case "SoulID": _SoulID = value.ToInt(); break; case "DemandNum": _DemandNum = value.ToInt(); break; case "Mature": _Mature = ConvertCustomField<CacheList<GeneralProperty>>(value, index); break; case "GeneralQuality": _GeneralQuality = value.ToEnum<GeneralQuality>(); break; case "ItemID": _ItemID = value.ToInt(); break; case "BattleHeadID": _BattleHeadID = value.ToNotNullString(); break; case "IsConscribe": _IsConscribe = value.ToBool(); break; default: throw new ArgumentException(string.Format("GeneralInfo index[{0}] isn't exist.", index)); } #endregion } }
/// <summary> /// 法宝触发技能施放 /// </summary> /// <param name="abilityType"></param> /// <param name="Num"></param> /// <returns></returns> public static SkillInfo GetSkillprocess(AbilityType abilityType, int num) { SkillInfo skillInfo = new SkillInfo(); skillInfo.AbilityID = (int)abilityType; skillInfo.Num = num; return skillInfo; //var skillLvList = new ConfigCacheSet<SkillLvInfo>().FindAll(m => m.EffType == abilityType); //if (skillLvList.Count > 0) //{ // skillInfo.AbilityID = skillLvList[0].SkillID; // skillInfo.Num = num; //} //return skillInfo; }