public List <ACDItem> ByQuality(TrinityItemQuality quality) { return(Source().Where(i => { switch (quality) { case TrinityItemQuality.Invalid: return false; case TrinityItemQuality.None: return false; case TrinityItemQuality.Inferior: return i.ItemQualityLevel == ItemQuality.Inferior; case TrinityItemQuality.Common: return i.ItemQualityLevel >= ItemQuality.Normal && i.ItemQualityLevel <= ItemQuality.Superior; case TrinityItemQuality.Magic: return i.ItemQualityLevel >= ItemQuality.Magic1 && i.ItemQualityLevel <= ItemQuality.Magic3; case TrinityItemQuality.Rare: return i.ItemQualityLevel >= ItemQuality.Rare4 && i.ItemQualityLevel <= ItemQuality.Rare6; case TrinityItemQuality.Legendary: return i.ItemQualityLevel == ItemQuality.Legendary; case TrinityItemQuality.Set: return i.IsSetItem(); default: throw new ArgumentOutOfRangeException(nameof(quality), quality, null); } }).ToList()); }
/// <summary> /// /// </summary> /// <param name="pickUp"></param> /// <param name="validRule"></param> /// <param name="action"></param> private void logOut(ItemEvaluationType evaluationType, string validRule, InterpreterAction action) { // return if we have a evaluationtype sell or salvage if (evaluationType == ItemEvaluationType.Salvage || evaluationType == ItemEvaluationType.Sell) { return; } string logString = getFullItem() + validRule; TrinityItemQuality quality = getTrinityItemQualityFromString(itemDic["[QUALITY]"]); switch (action) { case InterpreterAction.PICKUP: if (quality >= logPickQuality) { logOut(logString, action, LogType.LOG); } break; case InterpreterAction.IGNORE: if (quality >= logPickQuality) { logOut(logString, action, LogType.LOG); } break; case InterpreterAction.KEEP: if (quality >= logKeepQuality) { logOut(logString, action, LogType.LOG); } break; case InterpreterAction.TRASH: if (quality >= logKeepQuality) { logOut(logString, action, LogType.LOG); } break; case InterpreterAction.SCORE: if (quality >= logKeepQuality) { logOut(logString, action, LogType.LOG); } break; case InterpreterAction.NULL: if (quality >= logPickQuality) { logOut(logString, action, LogType.LOG); } break; } }
/// <summary> /// /// </summary> /// <param name="pickUp"></param> /// <param name="validRule"></param> /// <param name="action"></param> private void logOut(ItemEvaluationType evaluationType, string validRule, InterpreterAction action) { string logString = getFullItem() + validRule; TrinityItemQuality quality = TrinityItemQuality.Unknown; if (itemDic.ContainsKey("[QUALITY]")) { quality = getTrinityItemQualityFromString(itemDic["[QUALITY]"]); } switch (action) { case InterpreterAction.PICKUP: if (quality >= logPickQuality) { logOut(logString, action, LogType.LOG); } break; case InterpreterAction.IGNORE: if (quality >= logPickQuality) { logOut(logString, action, LogType.LOG); } break; case InterpreterAction.IDENTIFY: //if (quality >= logPickQuality) // logOut(logString, action, LogType.LOG); break; case InterpreterAction.UNIDENT: if (quality >= logPickQuality) { logOut(logString, action, LogType.LOG); } break; case InterpreterAction.KEEP: if (quality >= logKeepQuality) { logOut(logString, action, LogType.LOG); } break; case InterpreterAction.TRASH: if (quality >= logKeepQuality) { logOut(logString, action, LogType.LOG); } break; case InterpreterAction.SCORE: if (quality >= logKeepQuality) { logOut(logString, action, LogType.LOG); } break; case InterpreterAction.SALVAGE: //if (quality >= logKeepQuality) // logOut(logString, action, LogType.LOG); break; case InterpreterAction.SELL: //if (quality >= logKeepQuality) // logOut(logString, action, LogType.LOG); break; case InterpreterAction.NULL: if (quality >= logPickQuality) { logOut(logString, action, LogType.LOG); } break; } }
/// <summary> /// Loads (or re-loads) the ItemRules configuration from settings and .dis entries /// </summary> public void readConfiguration() { try { reset(); // initialize or reset ruleSet array pickUpRuleSet = new ArrayList(); identifyRuleSet = new ArrayList(); keepRuleSet = new ArrayList(); salvageSellRuleSet = new ArrayList(); // instantiating our macro dictonary macroDic = new Dictionary <string, string>(); // use Trinity setting if (Trinity.Settings.Loot.ItemRules.Debug) { Logger.Log(TrinityLogLevel.Info, LogCategory.UserInformation, "ItemRules is running in debug mode!", logPickQuality); } Logger.Log(TrinityLogLevel.Info, LogCategory.UserInformation, "ItemRules is using the {0} rule set.", Trinity.Settings.Loot.ItemRules.ItemRuleType.ToString().ToLower()); logPickQuality = getTrinityItemQualityFromString(Trinity.Settings.Loot.ItemRules.PickupLogLevel.ToString()); Logger.Log(TrinityLogLevel.Info, LogCategory.UserInformation, "PICKLOG = {0} ", logPickQuality); logKeepQuality = getTrinityItemQualityFromString(Trinity.Settings.Loot.ItemRules.KeepLogLevel.ToString()); Logger.Log(TrinityLogLevel.Info, LogCategory.UserInformation, "KEEPLOG = {0} ", logKeepQuality); string rulesPath; if (Trinity.Settings.Loot.ItemRules.ItemRuleSetPath.ToString() != String.Empty) { rulesPath = Trinity.Settings.Loot.ItemRules.ItemRuleSetPath.ToString(); } else { rulesPath = Path.Combine(FileManager.ItemRulePath, "Rules", Trinity.Settings.Loot.ItemRules.ItemRuleType.ToString().ToLower()); } Logger.Log(TrinityLogLevel.Info, LogCategory.UserInformation, "RULEPATH = {0} ", rulesPath); if (!Directory.Exists(rulesPath)) { Logger.Log("ERROR: RulesPath {0} does not exist!", rulesPath); return; } // fill translation dictionary nameToBalanceId = new Dictionary <string, string>(); StreamReader streamReader = new StreamReader(Path.Combine(FileManager.ItemRulePath, translationFile)); string str; while ((str = streamReader.ReadLine()) != null) { string[] strArrray = str.Split(';'); nameToBalanceId[strArrray[1].Replace(" ", "")] = strArrray[0]; } //DbHelper.Log(TrinityLogLevel.Normal, LogCategory.UserInformation, "... loaded: {0} ITEMID translations", nameToBalanceId.Count); // parse pickup file if (File.Exists(Path.Combine(rulesPath, pickupFile))) { pickUpRuleSet = readLinesToArray(new StreamReader(Path.Combine(rulesPath, pickupFile)), pickUpRuleSet); Logger.Log(TrinityLogLevel.Info, LogCategory.UserInformation, "... loaded: {0} Pickup rules", pickUpRuleSet.Count); } else { // create an empty pickup file using (File.Create(Path.Combine(rulesPath, pickupFile))) { } Logger.Log(TrinityLogLevel.Info, LogCategory.UserInformation, "... created empty pickup rule file", identifyRuleSet.Count); } // parse identify file if (File.Exists(Path.Combine(rulesPath, identifyFile))) { identifyRuleSet = readLinesToArray(new StreamReader(Path.Combine(rulesPath, identifyFile)), identifyRuleSet); Logger.Log(TrinityLogLevel.Info, LogCategory.UserInformation, "... loaded: {0} Identify rules", identifyRuleSet.Count); } else { // create an empty identify file using (File.Create(Path.Combine(rulesPath, identifyFile))) { } Logger.Log(TrinityLogLevel.Info, LogCategory.UserInformation, "... created empty identify rule file", identifyRuleSet.Count); } if (File.Exists(Path.Combine(rulesPath, salvageSellFile))) { // parse salvage file salvageSellRuleSet = readLinesToArray(new StreamReader(Path.Combine(rulesPath, salvageSellFile)), salvageSellRuleSet); Logger.Log(TrinityLogLevel.Info, LogCategory.UserInformation, "... loaded: {0} Salvage rules", salvageSellRuleSet.Count); } else { // create an empty salvage file using (File.Create(Path.Combine(rulesPath, salvageSellFile))) { } Logger.Log(TrinityLogLevel.Info, LogCategory.UserInformation, "... created empty salvage rules file", identifyRuleSet.Count); } // parse all keep files foreach (TrinityItemQuality itemQuality in Enum.GetValues(typeof(TrinityItemQuality))) { string fileName = itemQuality.ToString().ToLower() + ".dis"; string filePath = Path.Combine(rulesPath, fileName); int oldValue = keepRuleSet.Count; if (File.Exists(filePath)) { keepRuleSet = readLinesToArray(new StreamReader(filePath), keepRuleSet); Logger.Log(TrinityLogLevel.Info, LogCategory.UserInformation, "... loaded: {0} {1} Keep rules", (keepRuleSet.Count - oldValue), itemQuality.ToString()); } } Logger.Log(TrinityLogLevel.Info, LogCategory.UserInformation, "... loaded: {0} Macros", macroDic.Count); Logger.Log(TrinityLogLevel.Info, LogCategory.UserInformation, "ItemRules loaded a total of {0} {1} rules!", keepRuleSet.Count, Trinity.Settings.Loot.ItemRules.ItemRuleType.ToString()); } catch (Exception ex) { Logger.Log("Error reading ItemRules configuration: {0}", ex.ToString()); } }
/// <summary> /// Loads (or re-loads) the ItemRules configuration from settings and .dis entries /// </summary> public void readConfiguration() { try { reset(); // initialize or reset ruleSet array pickUpRuleSet = new ArrayList(); identifyRuleSet = new ArrayList(); keepRuleSet = new ArrayList(); salvageSellRuleSet = new ArrayList(); // instantiating our macro dictonary macroDic = new Dictionary<string, string>(); // use Trinity setting if (Trinity.Settings.Loot.ItemRules.Debug) Logger.Log(TrinityLogLevel.Info, LogCategory.UserInformation, "ItemRules is running in debug mode!", logPickQuality); Logger.Log(TrinityLogLevel.Info, LogCategory.UserInformation, "ItemRules is using the {0} rule set.", Trinity.Settings.Loot.ItemRules.ItemRuleType.ToString().ToLower()); logPickQuality = getTrinityItemQualityFromString(Trinity.Settings.Loot.ItemRules.PickupLogLevel.ToString()); Logger.Log(TrinityLogLevel.Info, LogCategory.UserInformation, "PICKLOG = {0} ", logPickQuality); logKeepQuality = getTrinityItemQualityFromString(Trinity.Settings.Loot.ItemRules.KeepLogLevel.ToString()); Logger.Log(TrinityLogLevel.Info, LogCategory.UserInformation, "KEEPLOG = {0} ", logKeepQuality); string rulesPath; if (Trinity.Settings.Loot.ItemRules.ItemRuleSetPath.ToString() != String.Empty) { rulesPath = Trinity.Settings.Loot.ItemRules.ItemRuleSetPath.ToString(); } else { rulesPath = Path.Combine(FileManager.ItemRulePath, "Rules", Trinity.Settings.Loot.ItemRules.ItemRuleType.ToString().ToLower()); } Logger.Log(TrinityLogLevel.Info, LogCategory.UserInformation, "RULEPATH = {0} ", rulesPath); if (!Directory.Exists(rulesPath)) { Logger.Log("ERROR: RulesPath {0} does not exist!", rulesPath); return; } // fill translation dictionary nameToBalanceId = new Dictionary<string, string>(); StreamReader streamReader = new StreamReader(Path.Combine(FileManager.ItemRulePath, translationFile)); string str; while ((str = streamReader.ReadLine()) != null) { string[] strArrray = str.Split(';'); nameToBalanceId[strArrray[1].Replace(" ", "")] = strArrray[0]; } //DbHelper.Log(TrinityLogLevel.Normal, LogCategory.UserInformation, "... loaded: {0} ITEMID translations", nameToBalanceId.Count); // parse pickup file if (File.Exists(Path.Combine(rulesPath, pickupFile))) { pickUpRuleSet = readLinesToArray(new StreamReader(Path.Combine(rulesPath, pickupFile)), pickUpRuleSet); Logger.Log(TrinityLogLevel.Info, LogCategory.UserInformation, "... loaded: {0} Pickup rules", pickUpRuleSet.Count); } else { // create an empty pickup file using (File.Create(Path.Combine(rulesPath, pickupFile))) { } Logger.Log(TrinityLogLevel.Info, LogCategory.UserInformation, "... created empty pickup rule file", identifyRuleSet.Count); } // parse identify file if (File.Exists(Path.Combine(rulesPath, identifyFile))) { identifyRuleSet = readLinesToArray(new StreamReader(Path.Combine(rulesPath, identifyFile)), identifyRuleSet); Logger.Log(TrinityLogLevel.Info, LogCategory.UserInformation, "... loaded: {0} Identify rules", identifyRuleSet.Count); } else { // create an empty identify file using (File.Create(Path.Combine(rulesPath, identifyFile))) { } Logger.Log(TrinityLogLevel.Info, LogCategory.UserInformation, "... created empty identify rule file", identifyRuleSet.Count); } if (File.Exists(Path.Combine(rulesPath, salvageSellFile))) { // parse salvage file salvageSellRuleSet = readLinesToArray(new StreamReader(Path.Combine(rulesPath, salvageSellFile)), salvageSellRuleSet); Logger.Log(TrinityLogLevel.Info, LogCategory.UserInformation, "... loaded: {0} Salvage rules", salvageSellRuleSet.Count); } else { // create an empty salvage file using (File.Create(Path.Combine(rulesPath, salvageSellFile))) { } Logger.Log(TrinityLogLevel.Info, LogCategory.UserInformation, "... created empty salvage rules file", identifyRuleSet.Count); } // parse all keep files foreach (TrinityItemQuality itemQuality in Enum.GetValues(typeof(TrinityItemQuality))) { string fileName = itemQuality.ToString().ToLower() + ".dis"; string filePath = Path.Combine(rulesPath, fileName); int oldValue = keepRuleSet.Count; if (File.Exists(filePath)) { keepRuleSet = readLinesToArray(new StreamReader(filePath), keepRuleSet); Logger.Log(TrinityLogLevel.Info, LogCategory.UserInformation, "... loaded: {0} {1} Keep rules", (keepRuleSet.Count - oldValue), itemQuality.ToString()); } } Logger.Log(TrinityLogLevel.Info, LogCategory.UserInformation, "... loaded: {0} Macros", macroDic.Count); Logger.Log(TrinityLogLevel.Info, LogCategory.UserInformation, "ItemRules loaded a total of {0} {1} rules!", keepRuleSet.Count, Trinity.Settings.Loot.ItemRules.ItemRuleType.ToString()); } catch (Exception ex) { Logger.Log("Error reading ItemRules configuration: {0}", ex.ToString()); } }
public List <TrinityItem> ByQuality(TrinityItemQuality quality) => Source().Where(i => i.TrinityItemQuality == quality).ToList();
/// <summary> /// Loads (or re-loads) the ItemRules configuration from settings and .dis entries /// </summary> public void readConfiguration() { reset(); // initialize or reset ruleSet array ruleSet = new ArrayList(); pickUpRuleSet = new ArrayList(); salvageRuleSet = new ArrayList(); unidKeepRuleSet = new ArrayList(); // instantiating our macro dictonary macroDic = new Dictionary <string, string>(); // use giles setting if (Bot.Settings.ItemRules.ItemRuleDebug) { Logger.DBLog.InfoFormat("ItemRules is running in debug mode!", logPickQuality); } Logger.DBLog.InfoFormat("ItemRules is using the {0} rule set.", Bot.Settings.ItemRules.ItemRuleType.ToString().ToLower()); logPickQuality = getTrinityItemQualityFromString(Bot.Settings.ItemRules.ItemRuleLogPickup.ToString()); Logger.DBLog.InfoFormat("PICKLOG = {0} ", logPickQuality); logKeepQuality = getTrinityItemQualityFromString(Bot.Settings.ItemRules.ItemRuleLogKeep.ToString()); Logger.DBLog.InfoFormat("KEEPLOG = {0} ", logKeepQuality); string rulesPath; if (Bot.Settings.ItemRules.ItemRuleType.Equals("Custom")) { rulesPath = Path.GetFullPath(Bot.Settings.ItemRules.ItemRuleCustomPath); } else { rulesPath = Path.Combine(itemrulesPath, "Rules", Bot.Settings.ItemRules.ItemRuleType.ToString().ToLower()); } Logger.DBLog.InfoFormat("RULEPATH = {0} ", rulesPath); // fill translation dictionary nameToBalanceId = new Dictionary <string, string>(); StreamReader streamReader = new StreamReader(Path.Combine(itemrulesPath, "Rules", translationFile)); string str; while ((str = streamReader.ReadLine()) != null) { string[] strArrray = str.Split(';'); nameToBalanceId[strArrray[1].Replace(" ", "")] = strArrray[0]; } //DbHelper.Logger.DBLog.InfoFormat(TrinityLogLevel.Normal, LogCategory.UserInformation, "... loaded: {0} ITEMID translations", nameToBalanceId.Count); // parse pickup file pickUpRuleSet = readLinesToArray(new StreamReader(Path.Combine(rulesPath, pickupFile)), pickUpRuleSet); Logger.DBLog.InfoFormat("... loaded: {0} Pickup rules", pickUpRuleSet.Count); //parse savlage file salvageRuleSet = readLinesToArray(new StreamReader(Path.Combine(itemrulesPath, "Rules", salvageFile)), salvageRuleSet); Logger.DBLog.InfoFormat("... loaded: {0} Salvage rules", salvageRuleSet.Count); //parse unid keep file unidKeepRuleSet = readLinesToArray(new StreamReader(Path.Combine(itemrulesPath, "Rules", unidFile)), unidKeepRuleSet); Logger.DBLog.InfoFormat("... loaded: {0} Unid Keep rules", unidKeepRuleSet.Count); // parse all item files foreach (TrinityItemQuality itemQuality in Enum.GetValues(typeof(TrinityItemQuality))) { string fileName = itemQuality.ToString().ToLower() + ".dis"; string filePath = Path.Combine(rulesPath, fileName); int oldValue = ruleSet.Count; if (File.Exists(filePath)) { ruleSet = readLinesToArray(new StreamReader(filePath), ruleSet); Logger.DBLog.InfoFormat("... loaded: {0} {1} rules", (ruleSet.Count - oldValue), itemQuality.ToString()); } } Logger.DBLog.InfoFormat("... loaded: {0} Macros", macroDic.Count); Logger.DBLog.InfoFormat("ItemRules loaded a total of {0} {1} rules!", ruleSet.Count, Bot.Settings.ItemRules.ItemRuleType.ToString()); }
/// <summary> /// Loads (or re-loads) the ItemRules configuration from settings and .dis entries /// </summary> public void readConfiguration() { reset(); // initialize or reset ruleSet array ruleSet=new ArrayList(); pickUpRuleSet=new ArrayList(); salvageRuleSet=new ArrayList(); unidKeepRuleSet=new ArrayList(); // instantiating our macro dictonary macroDic=new Dictionary<string, string>(); // use giles setting if (Bot.Settings.ItemRules.ItemRuleDebug) Logger.DBLog.InfoFormat("ItemRules is running in debug mode!", logPickQuality); Logger.DBLog.InfoFormat("ItemRules is using the {0} rule set.", Bot.Settings.ItemRules.ItemRuleType.ToString().ToLower()); logPickQuality=getTrinityItemQualityFromString(Bot.Settings.ItemRules.ItemRuleLogPickup.ToString()); Logger.DBLog.InfoFormat("PICKLOG = {0} ", logPickQuality); logKeepQuality=getTrinityItemQualityFromString(Bot.Settings.ItemRules.ItemRuleLogKeep.ToString()); Logger.DBLog.InfoFormat("KEEPLOG = {0} ", logKeepQuality); string rulesPath; if (Bot.Settings.ItemRules.ItemRuleType.Equals("Custom")) { rulesPath=Path.GetFullPath(Bot.Settings.ItemRules.ItemRuleCustomPath); } else rulesPath=Path.Combine(itemrulesPath, "Rules", Bot.Settings.ItemRules.ItemRuleType.ToString().ToLower()); Logger.DBLog.InfoFormat("RULEPATH = {0} ", rulesPath); // fill translation dictionary nameToBalanceId=new Dictionary<string, string>(); StreamReader streamReader=new StreamReader(Path.Combine(itemrulesPath, "Rules", translationFile)); string str; while ((str=streamReader.ReadLine())!=null) { string[] strArrray=str.Split(';'); nameToBalanceId[strArrray[1].Replace(" ", "")]=strArrray[0]; } //DbHelper.Logger.DBLog.InfoFormat(TrinityLogLevel.Normal, LogCategory.UserInformation, "... loaded: {0} ITEMID translations", nameToBalanceId.Count); // parse pickup file pickUpRuleSet=readLinesToArray(new StreamReader(Path.Combine(rulesPath, pickupFile)), pickUpRuleSet); Logger.DBLog.InfoFormat("... loaded: {0} Pickup rules", pickUpRuleSet.Count); //parse savlage file salvageRuleSet=readLinesToArray(new StreamReader(Path.Combine(itemrulesPath, "Rules", salvageFile)), salvageRuleSet); Logger.DBLog.InfoFormat("... loaded: {0} Salvage rules", salvageRuleSet.Count); //parse unid keep file unidKeepRuleSet=readLinesToArray(new StreamReader(Path.Combine(itemrulesPath, "Rules", unidFile)), unidKeepRuleSet); Logger.DBLog.InfoFormat("... loaded: {0} Unid Keep rules", unidKeepRuleSet.Count); // parse all item files foreach (TrinityItemQuality itemQuality in Enum.GetValues(typeof(TrinityItemQuality))) { string fileName=itemQuality.ToString().ToLower()+".dis"; string filePath=Path.Combine(rulesPath, fileName); int oldValue=ruleSet.Count; if (File.Exists(filePath)) { ruleSet=readLinesToArray(new StreamReader(filePath), ruleSet); Logger.DBLog.InfoFormat("... loaded: {0} {1} rules", (ruleSet.Count-oldValue), itemQuality.ToString()); } } Logger.DBLog.InfoFormat("... loaded: {0} Macros", macroDic.Count); Logger.DBLog.InfoFormat("ItemRules loaded a total of {0} {1} rules!", ruleSet.Count, Bot.Settings.ItemRules.ItemRuleType.ToString()); }
/// <summary> /// Loads (or re-loads) the ItemRules configuration from settings and .dis entries /// </summary> public void readConfiguration() { reset(); // initialize or reset ruleSet array ruleSet = new ArrayList(); pickUpRuleSet = new ArrayList(); // instantiating our macro dictonary macroDic = new Dictionary <string, string>(); // use giles setting if (GilesTrinity.Settings.Loot.ItemRules.Debug) { DbHelper.Log(TrinityLogLevel.Normal, LogCategory.UserInformation, "ItemRules is running in debug mode!", logPickQuality); } DbHelper.Log(TrinityLogLevel.Normal, LogCategory.UserInformation, "ItemRules is using the {0} rule set.", GilesTrinity.Settings.Loot.ItemRules.ItemRuleType.ToString().ToLower()); logPickQuality = getTrinityItemQualityFromString(GilesTrinity.Settings.Loot.ItemRules.PickupLogLevel.ToString()); DbHelper.Log(TrinityLogLevel.Normal, LogCategory.UserInformation, "PICKLOG = {0} ", logPickQuality); logKeepQuality = getTrinityItemQualityFromString(GilesTrinity.Settings.Loot.ItemRules.KeepLogLevel.ToString()); DbHelper.Log(TrinityLogLevel.Normal, LogCategory.UserInformation, "KEEPLOG = {0} ", logKeepQuality); string rulesPath; if (GilesTrinity.Settings.Loot.ItemRules.ItemRuleSetPath.ToString() != String.Empty) { rulesPath = @GilesTrinity.Settings.Loot.ItemRules.ItemRuleSetPath.ToString(); } else { rulesPath = Path.Combine(FileManager.ItemRulePath, "Rules", GilesTrinity.Settings.Loot.ItemRules.ItemRuleType.ToString().ToLower()); } DbHelper.Log(TrinityLogLevel.Normal, LogCategory.UserInformation, "RULEPATH = {0} ", rulesPath); // fill translation dictionary nameToBalanceId = new Dictionary <string, string>(); StreamReader streamReader = new StreamReader(Path.Combine(FileManager.ItemRulePath, translationFile)); string str; while ((str = streamReader.ReadLine()) != null) { string[] strArrray = str.Split(';'); nameToBalanceId[strArrray[1].Replace(" ", "")] = strArrray[0]; } //DbHelper.Log(TrinityLogLevel.Normal, LogCategory.UserInformation, "... loaded: {0} ITEMID translations", nameToBalanceId.Count); // parse pickup file pickUpRuleSet = readLinesToArray(new StreamReader(Path.Combine(rulesPath, pickupFile)), pickUpRuleSet); DbHelper.Log(TrinityLogLevel.Normal, LogCategory.UserInformation, "... loaded: {0} Pickup rules", pickUpRuleSet.Count); // parse all item files foreach (TrinityItemQuality itemQuality in Enum.GetValues(typeof(TrinityItemQuality))) { string fileName = itemQuality.ToString().ToLower() + ".dis"; string filePath = Path.Combine(rulesPath, fileName); int oldValue = ruleSet.Count; if (File.Exists(filePath)) { ruleSet = readLinesToArray(new StreamReader(filePath), ruleSet); DbHelper.Log(TrinityLogLevel.Normal, LogCategory.UserInformation, "... loaded: {0} {1} rules", (ruleSet.Count - oldValue), itemQuality.ToString()); } } DbHelper.Log(TrinityLogLevel.Normal, LogCategory.UserInformation, "... loaded: {0} Macros", macroDic.Count); DbHelper.Log(TrinityLogLevel.Normal, LogCategory.UserInformation, "ItemRules loaded a total of {0} {1} rules!", ruleSet.Count, GilesTrinity.Settings.Loot.ItemRules.ItemRuleType.ToString()); }