using System; using System.Data; using System.Collections; using System.Threading; using Ion.Storage; namespace Holo.Managers { /// /// Provides functions and tasks for the item Recycler, which allows users to trade in their items for special items. /// public static class recyclerManager { public static string rewardString; /// /// Initializes the item Recycler, determining the state and creating the setup string. /// public static void Init(bool Update) { if (Config.getTableEntry("recycler_enable") == "1") { Config.enableRecycler = true; //Out.WriteLine("Initializing recycler..."); rewardString = Encoding.encodeVL64(5); for (int i = 5; i > 0; i--) { int chanceMax = 0; if (i == 5) chanceMax = 2000; else if (i == 4) chanceMax = 200; else if (i == 3) chanceMax = 40; else if (i == 2) chanceMax = 5; using (DatabaseClient dbClient = Eucalypt.dbManager.GetClient()) { DataTable dTable = dbClient.getTable("SELECT rclr_reward FROM system_recycler WHERE chance = " + i + " ORDER BY index_id DESC"); rewardString += Encoding.encodeVL64(i) + Encoding.encodeVL64(chanceMax) + Encoding.encodeVL64(dTable.Rows.Count); foreach (DataRow dRow in dTable.Rows) { catalogueManager.itemTemplate Template = catalogueManager.getTemplate(Convert.ToInt32(dRow["rclr_reward"])); if (Template.Sprite != "") { if (Template.typeID > 0) rewardString += "s"; else rewardString += "i"; rewardString += Convert.ToString(Convert.ToChar(2)) + Encoding.encodeVL64(Template.indexID); } } } } Out.WriteLine("Recycler enabled."); } else { Out.WriteLine("Recycler disabled."); } if (Update) Thread.CurrentThread.Abort(); } } }