using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; namespace Blizzard { class CatalogItemData { internal int Id; internal int PageId; internal string Name; internal int Cost_Credits; internal int Cost_Pixels; internal int Cost_AnythingQuestPoint; internal int FinalPixels_orQuest; internal int Amount; internal string FurniId; internal int SpriteId; internal List ItemIds; internal string Type; internal int IsClub; internal string extraAm; internal Dictionary ExtraAmounts; internal ItemsData BaseItem; internal CatalogData PageData() { if (this.PageId < 0) return null; else return CatalogData.Page[this.PageId]; } internal string ExtraInformation; public static List CatalogItems; public static Dictionary CatalogItemsForId; //public static List Last25Items; public static void InitCatalogItems() { CatalogItems = new List(); CatalogItemsForId = new Dictionary(); //Last25Items = new List(); DataRow CItems = BlizzardSystem.MySQL.ReadDataRow("SELECT * FROM catalog_items ORDER BY id ASC"); /*DataRow SItems = MySQL.ReadDataRow("SELECT * FROM catalog_items ORDER BY id DESC LIMIT 0, 25"); foreach (DataRow Row in SItems.Table.Rows) { CatalogItemData I = new CatalogItemData(); I.Id = (int)Row["id"]; I.PageId = (int)Row["pageid"]; I.Name = Row["name"].ToString(); I.Cost_Credits = (int)Row["cost_credits"]; I.Cost_Pixels = (int)Row["cost_pixels"]; I.Cost_AnythingQuestPoint = (int)Row["cost_quest"]; if ((int)Row["cost_quest"] > 0) { I.FinalPixels_orQuest = (int)Row["cost_quest"]; } else { I.FinalPixels_orQuest = (int)Row["cost_pixels"]; } I.Amount = (int)Row["amount"]; I.extraAm = (string)Row["extraamounts"]; I.ExtraAmounts = new Dictionary(); if (I.extraAm.Contains(";")) { string[] separe = I.extraAm.Split(';'); foreach (string s in separe) { if (s == "") continue; string[] s2 = s.Split(','); if (I.ExtraAmounts.ContainsKey(int.Parse(s2[0]))) continue; I.ExtraAmounts.Add(int.Parse(s2[0]), int.Parse(s2[1])); } } I.FurniId = (string)Row["furni_id"]; I.ItemIds = new List(); if (I.FurniId.Contains(";")) { string[] separe = I.FurniId.Split(';'); foreach (string s in separe) { if (I.ItemIds.Contains(int.Parse(s))) continue; if (s == "") continue; I.ItemIds.Add(int.Parse(s)); } } else I.ItemIds.Add(int.Parse(I.FurniId)); I.IsClub = int.Parse(Row["is_club"].ToString()); I.ExtraInformation = (string)Row["extrainformation"]; Last25Items.Add(I); }*/ foreach (DataRow Row in CItems.Table.Rows) { CatalogItemData I = new CatalogItemData(); I.Id = (int)Row["id"]; I.PageId = (int)Row["pageid"]; I.Name = Row["name"].ToString(); I.Cost_Credits = (int)Row["cost_credits"]; I.Cost_Pixels = (int)Row["cost_pixels"]; I.Cost_AnythingQuestPoint = (int)Row["cost_quest"]; if ((int)Row["cost_quest"] > 0) { I.FinalPixels_orQuest = (int)Row["cost_quest"]; } else { I.FinalPixels_orQuest = (int)Row["cost_pixels"]; } I.Amount = (int)Row["amount"]; I.extraAm = (string)Row["extraamounts"]; I.ExtraAmounts = new Dictionary(); if (I.extraAm.Contains(";")) { string[] separe = I.extraAm.Split(';'); foreach (string s in separe) { if (s == "") continue; string[] s2 = s.Split(','); if (I.ExtraAmounts.ContainsKey(int.Parse(s2[0]))) continue; I.ExtraAmounts.Add(int.Parse(s2[0]), int.Parse(s2[1])); } } I.FurniId = (string)Row["furni_id"]; I.ItemIds = new List(); if (I.FurniId.Contains(";")) { string[] separe = I.FurniId.Split(';'); foreach (string s in separe) { if(I.ItemIds.Contains(int.Parse(s))) continue; if (s == "") continue; I.ItemIds.Add(int.Parse(s)); } } else I.ItemIds.Add(int.Parse(I.FurniId)); I.IsClub = int.Parse(Row["is_club"].ToString()); I.ExtraInformation = (string)Row["extrainformation"]; CatalogItems.Add(I); CatalogItemsForId.Add(I.Id, I); } BlizzardSystem.WriteLine("@Server >> Added " + CatalogItems.Count + " catalog items to static system"); } public static List SelectItemsForCategory(string Category, int UserRank) { List Items = new List(); foreach (CatalogItemData Item in CatalogItems) { if (Item.PageData() == null) continue; if (Item.PageData().MinRank > UserRank) continue; if (Category.ToLower() == "asientos") { if (Item.Name.Contains("chair") || Item.Name.Contains("bench") || Item.Name.Contains("sofa")) Items.Add(Item); } else if (Category.ToLower() == "mesas") { if (Item.Name.Contains("table")) Items.Add(Item); } } return Items; } public static bool HaveDeals(int PageId) { List C = GetItemsForPageId(PageId); int i = 0; int e = 0; foreach (CatalogItemData c in C) { if (c.ItemIds.Count > 1) i++; else e++; } if (i > 0 && e == 0) return true; else return false; } public static List GetLast25Ids() { List Last25 = new List(); while (Last25.Count != 25) { int i = 0; CatalogItemData u = null; foreach (CatalogItemData U in CatalogItems) { if (U.Id > i && !Last25.Contains(U)) { i = U.Id; u = U; } else continue; } Last25.Add(u); } return Last25; } public static List GetItemsForPageId(int PageId) { List D = new List(); foreach (CatalogItemData Data in CatalogItems) { if (Data.PageId == PageId) D.Add(Data); } return D; } } }