Example #1
0
        public static IReadOnlyCollection <Item> GetDIYItems(IReadOnlyList <string> split, string lang)
        {
            if (split.Count > 1 && split[0].Length < 3)
            {
                var langIndex = GameLanguage.GetLanguageIndex(split[0]);
                lang  = GameLanguage.Language2Char(langIndex);
                split = split.Skip(1).ToArray();
            }

            var result = new Item[split.Count];

            for (int i = 0; i < result.Length; i++)
            {
                var text = split[i].Trim();
                var item = ItemUtil.GetItem(text, lang);
                if (!InvertedRecipeDictionary.TryGetValue(item.ItemId, out var diy))
                {
                    throw new Exception($"DIY recipe appears to be invalid ({text}).");
                }

                result[i] = new Item(Item.DIYRecipe)
                {
                    Count = diy
                };
            }
            return(result);
        }
Example #2
0
        public static IReadOnlyCollection <Item> GetItems(IReadOnlyList <string> split, IConfigItem config, bool placeFloor, string lang)
        {
            if (split.Count > 1 && split[0].Length < 3)
            {
                var langIndex = GameLanguage.GetLanguageIndex(split[0]);
                lang  = GameLanguage.Language2Char(langIndex);
                split = split.Skip(1).ToArray();
            }

            var strings = GameInfo.Strings.itemlistdisplay;
            var result  = new Item[split.Count];

            for (int i = 0; i < result.Length; i++)
            {
                var text = split[i].Trim();
                var item = CreateItem(text, i, config, placeFloor, lang);

                if (item.ItemId >= strings.Length)
                {
                    throw new Exception($"Item requested is out of expected range ({item.ItemId:X4} > {strings.Length:X4}).");
                }
                if (string.IsNullOrWhiteSpace(strings[item.ItemId]))
                {
                    throw new Exception($"Item requested does not have a valid name ({item.ItemId:X4}).");
                }

                result[i] = item;
            }
            return(result);
        }
Example #3
0
        public Editor(HorizonSave file)
        {
            InitializeComponent();

            SAV = file;

            LoadPlayers();
            Villagers = LoadVillagers();

            var lang  = Settings.Default.Language;
            var index = GameLanguage.GetLanguageIndex(lang);

            Menu_Language.SelectedIndex = index; // triggers translation
            // this.TranslateInterface(GameInfo.CurrentLanguage);

            Text = SAV.GetSaveTitle("NHSE");
        }
Example #4
0
        /// <summary>
        /// Gets the Game Strings for a specific language.
        /// </summary>
        /// <param name="lang">2 character language ID</param>
        public static GameStrings GetStrings(string lang)
        {
            int index = GameLanguage.GetLanguageIndex(lang);

            return(GetStrings(index));
        }
Example #5
0
    public GameStrings(string l)
    {
        lang          = l;
        LanguageIndex = GameLanguage.GetLanguageIndex(l);
        ribbons       = Get("ribbons");

        // Past Generation strings
        g3items     = Get("ItemsG3");
        g3coloitems = GetG3CXD(g3items, "ItemsG3Colosseum");
        g3xditems   = GetG3CXD(g3items, "ItemsG3XD");

        g2items          = Get("ItemsG2");
        g1items          = Get("ItemsG1");
        metRSEFRLG_00000 = Get("rsefrlg_00000");
        metGSC_00000     = Get("gsc_00000");

        metCXD_00000 = Get("cxd_00000");
        SanitizeMetStringsCXD(metCXD_00000);

        // Current Generation strings
        natures     = Util.GetNaturesList(l);
        types       = Get("types");
        abilitylist = Get("abilities");

        movelist = Get("moves");
        string[] ps = { "P", "S" }; // Distinguish Physical/Special
        for (int i = 622; i < 658; i++)
        {
            movelist[i] += $" ({ps[i % 2]})";
        }

        itemlist        = Get("items");
        characteristics = Get("character");
        specieslist     = Get("species");
        wallpapernames  = Get("wallpaper");
        groundtiletypes = Get("groundtile");
        gamelist        = Get("games");

        balllist = new string[Items_Ball.Length];
        for (int i = 0; i < balllist.Length; i++)
        {
            balllist[i] = itemlist[Items_Ball[i]];
        }

        pokeblocks    = Get("pokeblock");
        forms         = Get("forms");
        memories      = Get("memories");
        feeling6      = Get("feeling6");
        feeling8      = Get("feeling");
        intensity     = Get("intensity");
        genloc        = Get("genloc");
        trainingbags  = Get("trainingbag");
        trainingstage = Get("supertraining");
        puffs         = Get("puff");

        walkercourses = Get("hgss_walkercourses");

        uggoods     = Get("dppt_uggoods");
        ugspheres   = Get("dppt_ugspheres");
        ugtraps     = Get("dppt_ugtraps");
        ugtreasures = Get("dppt_ugtreasures");

        EggName       = specieslist[0];
        metHGSS_00000 = Get("hgss_00000");
        metHGSS_02000 = Get("hgss_02000");
        metHGSS_03000 = Get("hgss_03000");
        metBW2_00000  = Get("bw2_00000");
        metBW2_30000  = Get("bw2_30000");
        metBW2_40000  = Get("bw2_40000");
        metBW2_60000  = Get("bw2_60000");
        metXY_00000   = Get("xy_00000");
        metXY_30000   = Get("xy_30000");
        metXY_40000   = Get("xy_40000");
        metXY_60000   = Get("xy_60000");
        metSM_00000   = Get("sm_00000");
        metSM_30000   = Get("sm_30000");
        metSM_40000   = Get("sm_40000");
        metSM_60000   = Get("sm_60000");

        metGG_00000 = Get("gg_00000");
        metGG_30000 = metSM_30000;
        metGG_40000 = Get("gg_40000");
        metGG_60000 = metSM_60000;

        metSWSH_00000 = Get("swsh_00000");
        metSWSH_30000 = Get("swsh_30000");
        metSWSH_40000 = Get("swsh_40000");
        metSWSH_60000 = Get("swsh_60000");

        metLA_00000 = Get("la_00000");
        metLA_30000 = Get("la_30000");
        metLA_40000 = Get("la_40000");
        metLA_60000 = Get("la_60000");

        metBDSP_00000 = Get("bdsp_00000");
        metBDSP_30000 = Get("bdsp_30000");
        metBDSP_40000 = Get("bdsp_40000");
        metBDSP_60000 = Get("bdsp_60000");

        Sanitize();

        g4items = (string[])itemlist.Clone();
        Get("mail4").CopyTo(g4items, 137);
    }