Exemplo n.º 1
0
 public Dungeon(uint id, string n, short r, DungeonTier t)
 {
     Id          = id;
     ShortName   = n;
     MaxBaseRuns = r;
     Tier        = t;
 }
Exemplo n.º 2
0
 public Dungeon(string _shortName, int _runs, int _ilvl, DungeonTier _tier, int _id)
 {
     shortName    = _shortName;
     maxBaseRuns  = _runs;
     requiredIlvl = _ilvl;
     tier         = _tier;
     id           = _id;
 }
Exemplo n.º 3
0
 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);
                //}
            }
        }