/// <summary> /// 刷新随机灵件属性 /// </summary> /// <param name="partInfo"></param> /// <param name="isDefault"></param> /// <param name="ignorePropertys">忽视的</param> /// <returns></returns> public static SparePartProperty RandomProperty(SparePartInfo partInfo, bool isDefault, CacheList <SparePartProperty> ignorePropertys) { SparePartProperty partProperty = new SparePartProperty(); if (partInfo.PropertyRange.Length > 0) { SparePartProperty ability = RandomAbilityProperty(partInfo, ignorePropertys); int rangeIndex = RandomUtils.GetHitIndex(ability.Rate); partProperty = BuildPartProperty(ability, rangeIndex, isDefault); } return(partProperty); }
/// <summary> /// 获得灵件 /// </summary> /// <param name="user"></param> /// <param name="spareID"></param> public static void AppendSpare(GameUser user, int spareID) { SparePartInfo partInfo = new ShareCacheStruct <SparePartInfo>().FindKey(spareID); UserSparePart sparePart = UserSparePart.GetRandom(spareID); if (partInfo == null || sparePart == null || !SparePartInfo.IsExist(spareID)) { return; } if (!UserHelper.AddSparePart(user, sparePart)) { var chatService = new TjxChatService(); //掉落灵件 chatService.SystemSendWhisper(user, string.Format(LanguageManager.GetLang().St4303_SparePartFalling, partInfo.Name)); } }
private static SparePartProperty RandomAbilityProperty(SparePartInfo partInfo, CacheList <SparePartProperty> ignorePropertys) { var tempPropertys = new List <SparePartProperty>(); foreach (var property in partInfo.PropertyRange) { if (ignorePropertys != null && ignorePropertys.Exists(m => m != null && m.AbilityType.Equals(property.AbilityType)) ) { continue; } tempPropertys.Add(property); } int index = RandomUtils.GetRandom(0, tempPropertys.Count); return(index < tempPropertys.Count ? tempPropertys[index] : null); }
private static SparePartProperty RandomAbilityProperty(SparePartInfo partInfo, CacheList<SparePartProperty> ignorePropertys) { var tempPropertys = new List<SparePartProperty>(); foreach (var property in partInfo.PropertyRange) { if (ignorePropertys != null && ignorePropertys.Exists(m => m != null && m.AbilityType.Equals(property.AbilityType)) ) { continue; } tempPropertys.Add(property); } int index = RandomUtils.GetRandom(0, tempPropertys.Count); return index < tempPropertys.Count ? tempPropertys[index] : null; }
/// <summary> /// 刷新随机灵件属性 /// </summary> /// <param name="partInfo"></param> /// <param name="isDefault"></param> /// <param name="ignorePropertys">忽视的</param> /// <returns></returns> public static SparePartProperty RandomProperty(SparePartInfo partInfo, bool isDefault, CacheList<SparePartProperty> ignorePropertys) { SparePartProperty partProperty = new SparePartProperty(); if (partInfo.PropertyRange.Length > 0) { SparePartProperty ability = RandomAbilityProperty(partInfo, ignorePropertys); int rangeIndex = RandomUtils.GetHitIndex(ability.Rate); partProperty = BuildPartProperty(ability, rangeIndex, isDefault); } return partProperty; }