public Dungeon(uint id, string n, short r, DungeonTier t) { Id = id; ShortName = n; MaxBaseRuns = r; Tier = t; }
public Dungeon(string _shortName, int _runs, int _ilvl, DungeonTier _tier, int _id) { shortName = _shortName; maxBaseRuns = _runs; requiredIlvl = _ilvl; tier = _tier; id = _id; }
public Dungeon(uint id, string name, DungeonTier t, short r, bool show) { Id = id; //ShortName = n; MaxBaseRuns = r; Name = name; Tier = t; Show = show; }
//public Dictionary<uint, Dungeon> DungeonDefinitions; public DungeonDatabase(string lang) { if (string.IsNullOrEmpty(lang)) { lang = "EU-EN"; } var f = File.OpenText($"resources/data/dungeons/dungeons-{lang}.tsv"); //DungeonNames = new Dictionary<uint, string>(); DungeonDefs = new Dictionary <uint, Dungeon>(); DungeonNames = new Dictionary <uint, string>(); //TODO var defs = new Dictionary <uint, Tuple <short, DungeonTier> >(); if (!File.Exists("resources/data/dungeons-def.xml")) { File.Copy("resources/data/dungeons-def-default.xml", "resources/data/dungeons-def.xml"); } var def = XDocument.Load("resources/data/dungeons-def.xml"); foreach (var dg in def.Descendants().Where(x => x.Name == "Dungeon")) { uint id = 0; short r = 0; DungeonTier t = 0; dg.Attributes().ToList().ForEach(a => { if (a.Name == "Id") { id = Convert.ToUInt32(dg.Attribute("Id")?.Value); } if (a.Name == "MaxBaseRuns") { r = Convert.ToInt16(dg.Attribute("MaxBaseRuns")?.Value); } if (a.Name != "Tier") { return; } var value = dg.Attribute("Tier")?.Value; if (value != null) { t = (DungeonTier)Enum.Parse(typeof(DungeonTier), value); } }); if (id != 0) { defs.Add(id, new Tuple <short, DungeonTier>(r, t)); } } while (true) { var line = f.ReadLine(); if (line == null) { break; } var s = line.Split('\t'); var id = uint.Parse(s[0]); var name = s[1]; //var t = (DungeonTier)Enum.Parse(typeof(DungeonTier), s[2]); DungeonNames.Add(id, name); if (defs.ContainsKey(id)) { var dg = new Dungeon(id, name, defs[id].Item2, defs[id].Item1, true); DungeonDefs.Add(id, dg); } //else //{ // //var dg = new Dungeon(id, name, t, 0, false); //} } }