예제 #1
0
        public AbnormalityDatabase(string lang)
        {
            Abnormalities = new Dictionary <uint, Abnormality>();
            var hd = File.OpenText(AppDomain.CurrentDomain.BaseDirectory + "/resources/data/hotdot/hotdot-" + lang + ".tsv");

            while (true)
            {
                var l = hd.ReadLine();
                if (l == null)
                {
                    break;
                }
                if (l == "")
                {
                    continue;
                }
                var s        = l.Split('\t');
                var id       = uint.Parse(s[0]);
                var type     = s[1];
                var amount   = double.Parse(s[7], CultureInfo.InvariantCulture);
                var isBuff   = bool.Parse(s[3]);
                var isShow   = bool.Parse(s[14]);
                var name     = s[8];
                var tooltip  = s[11];
                var icon     = s[13];
                var abType   = (AbnormalityType)Enum.Parse(typeof(AbnormalityType), s[2]);
                var infinite = s[5] == "0";
                var ab       = new Abnormality(id, isShow, isBuff, infinite, abType);
                ab.SetIcon(icon);
                ab.SetInfo(name, tooltip);
                if (type.IndexOf("Absorb", StringComparison.Ordinal) > -1)
                {
                    ab.SetShield((uint)amount); //TODO: may just parse everything instead of doing this
                }
                if (Abnormalities.ContainsKey(id))
                {
                    if (!Abnormalities[id].IsShield && ab.IsShield)
                    {
                        Abnormalities[id] = ab;
                    }
                    if (ab.Infinity)
                    {
                        if (!Abnormalities[id].Infinity)
                        {
                            Abnormalities[id].Infinity = false;
                        }
                    }
                    continue;
                }
                Abnormalities.Add(id, ab);
            }
        }
        public override void Load()
        {
            Abnormalities.Clear();
            //var hd = File.OpenText(FullPath);
            var lines = File.ReadAllLines(FullPath);

            foreach (var l in lines)
            {
                if (l == null)
                {
                    break;
                }
                if (l == "")
                {
                    continue;
                }
                var s        = l.Split('\t');
                var id       = uint.Parse(s[0]);
                var type     = s[1];
                var amount   = double.Parse(s[7], CultureInfo.InvariantCulture);
                var isBuff   = bool.Parse(s[3]);
                var isShow   = bool.Parse(s[14]);
                var name     = s[8];
                var tooltip  = s[11];
                var icon     = s[13];
                var abType   = (AbnormalityType)Enum.Parse(typeof(AbnormalityType), s[2]);
                var infinite = s[5] == "0";
                var ab       = new Abnormality(id, isShow, isBuff, infinite, abType);
                ab.SetIcon(icon);
                ab.SetInfo(name, tooltip);
                if (type.IndexOf("Absorb", StringComparison.Ordinal) > -1)
                {
                    ab.SetShield((uint)amount);                //TODO: may just parse everything instead of doing this
                }
                if (Abnormalities.TryGetValue(id, out var ex)) //.ContainsKey(id))
                {
                    if (!ex.IsShield && ab.IsShield)
                    {
                        Abnormalities[id] = ab;
                    }
                    if (ab.Infinity && !ex.Infinity)
                    {
                        ex.Infinity = false;
                    }
                    if (ex.Type != AbnormalityType.Debuff && ab.Type == AbnormalityType.Debuff)
                    {
                        ex.Type = AbnormalityType.Debuff;
                    }
                    if (!isBuff)
                    {
                        ex.IsBuff = false;
                    }
                    continue;
                }
                Abnormalities[id] = ab;
            }

            var meme = new Abnormality(10241024, true, true, true, AbnormalityType.Buff);

            meme.SetInfo("Foglio's aura", "Reduces your ping by $H_W_GOOD80$COLOR_END ms when one of $H_W_GOODFoglio$COLOR_END 's characters is nearby.$BRDoes not stack with Skill prediction.");
            meme.SetIcon("icon_items.bloodchipa_tex");

            Abnormalities[meme.Id] = meme;
        }
        public AbnormalityDatabase(string lang)
        {
            //var f = File.OpenText(Environment.CurrentDirectory + "/resources/data/abnormalities/abnormals-"+lang+".tsv");
            Abnormalities = new Dictionary <uint, Abnormality>();
            //while (true)
            //{
            //    var line = f.ReadLine();
            //    if (line == null) break;

            //    var s = line.Split('\t');

            //    var id = Convert.ToUInt32(s[0]);
            //    Enum.TryParse(s[1], out AbnormalityType t);
            //    var isShow = bool.Parse(s[2]);
            //    var isBuff = bool.Parse(s[3]);
            //    var infinity = bool.Parse(s[4]);
            //    var name = s[5];
            //    var tooltip = s[6].Replace("&#xA;", "\n");
            //    tooltip = tooltip.Replace("&#xD;", "\r");
            //    var iconName = s[7];

            //    //---add fixes here---//

            //    if(id == 78100006) //isBuff = true for lakan's souls world debuff (it's not supposed to make hp bar purple)
            //    {
            //        isBuff = true;
            //    }

            //    //--------------------//
            //    var ab = new Abnormality(id, isShow, isBuff, infinity, t);
            //    ab.SetIcon(iconName);
            //    ab.SetInfo(name, tooltip);

            //    Abnormalities.Add(id, ab);
            //}
            var hd = File.OpenText(Environment.CurrentDirectory + "/resources/data/abnormalities/hotdot-" + lang + ".tsv");

            while (true)
            {
                var l = hd.ReadLine();
                if (l == null)
                {
                    break;
                }

                var s       = l.Split('\t');
                var id      = uint.Parse(s[0]);
                var type    = s[1];
                var amount  = double.Parse(s[7], CultureInfo.InvariantCulture);
                var isBuff  = bool.Parse(s[3]);
                var isShow  = bool.Parse(s[14]);
                var name    = s[8];
                var tooltip = s[11];
                var icon    = s[13];
                var abType  = (AbnormalityType)Enum.Parse(typeof(AbnormalityType), s[2]);
                //var isBuff = bool.Parse(s[15]);
                var infinite = s[5] == "0";
                var ab       = new Abnormality(id, isShow, isBuff, infinite, abType);
                ab.SetIcon(icon);
                ab.SetInfo(name, tooltip);
                if (type.IndexOf("Absorb", StringComparison.Ordinal) > -1)
                {
                    ab.SetShield((uint)amount); //TODO: may just parse everything instead of doing this
                }
                if (Abnormalities.ContainsKey(id))
                {
                    if (!Abnormalities[id].IsShield && ab.IsShield)
                    {
                        Abnormalities[id] = ab;
                    }
                    if (ab.Infinity)
                    {
                        if (!Abnormalities[id].Infinity)
                        {
                            Abnormalities[id].Infinity = true;
                        }
                    }
                    continue;
                }
                Abnormalities.Add(id, ab);
            }
        }