Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
        /// <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));
            }
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
 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;
 }
Exemplo n.º 5
0
 /// <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;
 }