Пример #1
0
        private string GetString(string name)
        {
            var culture = this.Culture ?? CultureInfo.CurrentUICulture;

            StringLocalization value = null;

            try
            {
                do
                {
                    var query = DbContext.StringLocalizations
                                .Where(l => l.Culture == culture.Name)
                                .Where(l => BaseName.Contains(l.Location))
                                .OrderByDescending(l => l.Location.Length);

                    value = query.FirstOrDefault(l => l.Key == name);

                    culture = culture.Parent;
                } while (value == null && !string.IsNullOrEmpty(culture.Name));
            }
            catch { }

            if (this.Environment.IsDevelopment())
            {
                try
                {
                    if (!DbContext.StringLocalizables.Any(l => l.Key == name && l.Location == BaseName))
                    {
                        DbContext.StringLocalizables.Add(new StringLocalizable
                        {
                            Location    = BaseName,
                            Key         = name,
                            Description = name
                        });
                        DbContext.SaveChanges();
                    }
                }
                catch (Exception ex)
                {
                    Logger.LogWarning(ex.ToString());
                }
            }

            if (value == null)
            {
                return(null);
            }
            else if (this.Environment.IsDevelopment())
            {
                return("[" + value.Value + "]");
            }
            else
            {
                return(value.Value);
            }
        }
Пример #2
0
        public ParsedSkill(string internalname, string skillid, string stype, string category)
        {
            SkillId = skillid;
            sType   = stype;
            var i = category.IndexOf(',');

            Category = i == -1 ? category : category.Split(',').FirstOrDefault(x => x.Length >= 5) ?? category;
            string cut = internalname.ToLowerInvariant().Replace("_", " ");

            modifiers = new List <string> {
            };
            bool _cut = true;

            while (_cut)
            {
                _cut = false;
                foreach (string mod in allmods)
                {
                    if ((mod == " blast") && cut.Contains("priest"))
                    {
                        continue;                                             // fix holy shot=holy blast
                    }
                    if ((mod == " normal") && cut.Contains("archer"))
                    {
                        continue;                                              // fix normal shot
                    }
                    if ((mod == " combo") && !cut.Contains("assassin"))
                    {
                        continue;                                                // combo postfix - only for ninja
                    }
                    if ((mod == " jin") && cut.Contains("sorcerer"))
                    {
                        if (cut.Remove(mod, out cut))
                        {
                            modifiers.Add(mod);
                            _cut = true;
                            break;
                        }
                    }
                    if (cut.RemoveFromEnd(mod, out cut))
                    {
                        modifiers.Add(mod);
                        _cut = true;
                        break;
                    }
                }
            }
            foreach (var lvl in levels)
            {
                if (cut.Contains(lvl.Key))
                {
                    cut = cut.Replace(lvl.Key, "");
                    Lvl = lvl.Value;
                    break;
                }
            }

            BaseName = cut;
            if (BaseName.Contains("assault") && BaseName.Contains("berserk"))
            {
                BaseName = BaseName + category;
            }                                                                                            //fix berserk

            if (modifiers.Contains(" continuous") || modifiers.Contains(" large") || modifiers.Contains(" chain") || modifiers.Contains(" short") || modifiers.Contains(" shortairreaction"))
            {
                Chained = "True";
            }
            else
            {
                Chained = "False";
            }

            if (modifiers.Contains(" explosion") || modifiers.Contains(" explosionforbot") || modifiers.Contains(" realtargeting"))
            {
                Detail = "Boom";
            }

            if (modifiers.Contains("01") && ((sType.Contains("combo") || modifiers.Contains(" shortairreaction"))) && (!BaseName.Contains("thunder drake")))
            {
                Detail = "hit 1";
            }

            if ((modifiers.Contains("02") || modifiers.Contains("03") || modifiers.Contains("04") || modifiers.Contains("05") || modifiers.Contains("06") || modifiers.Contains("07") ||
                 modifiers.Contains("08") || modifiers.Contains("09")) && (!(modifiers.Contains(" projectile") || modifiers.Contains(" shot")) || (modifiers.Contains(" shortairreaction"))))

            {
                Detail = Detail + "hit " + modifiers.Find(x => x.Contains("0")).Substring(1, 1);
            }

            if ((modifiers.Contains("00") || modifiers.Contains("01") || modifiers.Contains("02") || modifiers.Contains("03") || modifiers.Contains("04") || modifiers.Contains("05") || modifiers.Contains("06") || modifiers.Contains("07") ||
                 modifiers.Contains("08") || modifiers.Contains("09")) && (modifiers.Contains(" shot")) && (!modifiers.Contains(" projectile")) && (!modifiers.Contains(" cast")) && (!sType.Contains("capture")) && (!BaseName.Contains("thunder drake")))

            {
                Detail = Detail + "hit " + (int.Parse(modifiers.Find(x => x.Contains("0")).Substring(1, 1)) + 1).ToString();
            }

            if ((modifiers.Contains("00") || modifiers.Contains("01") || modifiers.Contains("02") || modifiers.Contains("03") || modifiers.Contains("04") || modifiers.Contains("05") || modifiers.Contains("06") || modifiers.Contains("07") ||
                 modifiers.Contains("08") || modifiers.Contains("09")) && (modifiers.Contains(" projectile")) && (!modifiers.Contains(" shot")))
            {
                if (BaseName.Contains("sorcerer"))
                {
                    if (!(skillid.EndsWith("0") && modifiers.Contains("01")))
                    {
                        Detail = "hit " + (int.Parse(modifiers.Find(x => x.Contains("0")).Substring(1, 1)) + 1).ToString();
                    }
                }
                if (BaseName.Contains("priest"))
                {
                    if (!(modifiers.Contains("00") || modifiers.Contains("01")))
                    {
                        Detail = "hit " + modifiers.Find(x => x.Contains("0")).Substring(1, 1);
                    }
                }
            }
            if ((modifiers.Contains("00") || modifiers.Contains("01") || modifiers.Contains("02") || modifiers.Contains("03") || modifiers.Contains("04")) &&
                (((modifiers.Contains(" projectile")) && (modifiers.Contains(" shot"))) || ((modifiers.Contains(" cast")) && (modifiers.Contains(" shot")))) && (BaseName.Contains("priest")))
            {
                Detail = "hit " + modifiers.Find(x => x.Contains("0")).Substring(1, 1);
            }                                                                              //holy shot

            if (((modifiers.Contains("00") || modifiers.Contains("01") || modifiers.Contains("02") || modifiers.Contains("03") || modifiers.Contains("04")) &&
                 modifiers.Contains(" shot")) && (BaseName.Contains("elementalist")) && (sType == "combo" || sType == "combo_instance"))
            {
                Detail = "hit " + modifiers.Find(x => x.Contains("0")).Substring(1, 1);
            }                                                                              //Magic Arrow

            if (modifiers.Contains(" on"))
            {
                Detail = "On";
            }

            if (modifiers.Contains(" off"))
            {
                Detail = "Off";
            }

            if (modifiers.Contains(" superarmor"))
            {
                Detail = "SA";
            }

            if (modifiers.Contains(" fury"))
            {
                Detail = "Fury";
            }

            if (modifiers.Contains(" fail"))
            {
                Detail = "Dash fail";
            }

            if (modifiers.Contains(" blast") && (!BaseName.Contains("priest")))
            {
                Detail = "Blast";
            }

            if (modifiers.Contains(" flying"))
            {
                Detail = "forward";
            }

            if (modifiers.Contains(" return"))
            {
                Detail = "backward";
            }

            if (modifiers.Contains(" stopping"))
            {
                Detail = "stopping";
            }

            if (modifiers.Contains(" jin"))
            {
                Detail = "MB";
            }

            if (modifiers.Contains(" for distortion"))
            {
                Detail = Detail + " FD";
            }

            if (modifiers.Contains(" side"))
            {
                Detail = "Side " + Detail;
            }
        }
Пример #3
0
        public void colorTool(int level)
        {
            int initialLocation = 0;
            int startPixel      = 0;

            switch (BaseName.Split(' ').Last())
            {
            case "Hoe":
                initialLocation = 69129;
                startPixel      = 65536;
                break;

            case "Pickaxe":
                initialLocation = 100749;
                startPixel      = 98304;
                break;

            case "Axe":
                initialLocation = 134681;
                startPixel      = 131072;
                break;

            case "Can":
                initialLocation = 168713;
                startPixel      = 163840;
                break;
            }
            int red   = 0;
            int green = 0;
            int blue  = 0;

            switch (level)
            {
            case 1:
                red   = 198;
                green = 108;
                blue  = 43;
                break;

            case 2:
                red   = 197;
                green = 226;
                blue  = 222;
                break;

            case 3:
                red   = 248;
                green = 255;
                blue  = 73;
                break;

            case 4:
                red   = 144;
                green = 135;
                blue  = 181;
                break;
            }
            if (startPixel > 0 && level > 0)
            {
                if (BaseName.Contains("Can"))
                {
                    ColorChanger.swapColor(Game1.toolSpriteSheet, initialLocation + 36, red * 5 / 4, green * 5 / 4, blue * 5 / 4, startPixel, startPixel + 32768);
                }
                ColorChanger.swapColor(Game1.toolSpriteSheet, initialLocation + 8, red, green, blue, startPixel, startPixel + 32768);
                ColorChanger.swapColor(Game1.toolSpriteSheet, initialLocation + 4, red * 3 / 4, green * 3 / 4, blue * 3 / 4, startPixel, startPixel + 32768);
                ColorChanger.swapColor(Game1.toolSpriteSheet, initialLocation, red * 3 / 8, green * 3 / 8, blue * 3 / 8, startPixel, startPixel + 32768);
            }
        }