protected override JProperty MainElement(PortraitPack portrait)
        {
            if (FileOutputOptions.IsLocalizedText)
            {
                AddLocalizedGameString(portrait);
            }

            JObject portraitObject = new JObject();

            if (!string.IsNullOrEmpty(portrait.Name) && !FileOutputOptions.IsLocalizedText)
            {
                portraitObject.Add("name", portrait.Name);
            }

            portraitObject.Add("hyperlinkId", portrait.HyperlinkId);
            portraitObject.Add("rarity", portrait.Rarity.ToString());

            if (!string.IsNullOrEmpty(portrait.EventName))
            {
                portraitObject.Add("event", portrait.EventName);
            }

            if (!string.IsNullOrEmpty(portrait.SortName) && !FileOutputOptions.IsLocalizedText)
            {
                portraitObject.Add("sortName", portrait.SortName);
            }

            if (portrait.RewardPortraitIds != null && portrait.RewardPortraitIds.Any())
            {
                portraitObject.Add(new JProperty("rewardPortraitIds", portrait.RewardPortraitIds));
            }

            return(new JProperty(portrait.Id, portraitObject));
        }
        private void Parse()
        {
            PortraitPackParser portraitParser = new PortraitPackParser(XmlDataService);

            WhitemaneSpooky18ToonPortrait = portraitParser.Parse("WhitemaneSpooky18ToonPortrait");
            StitchesPortraitSummer        = portraitParser.Parse("StitchesPortraitSummer");
            QhiraEmblemPortrait           = portraitParser.Parse("QhiraEmblemPortrait");
        }
        public void UpdateGameStringsThrowArgumentNullException()
        {
            PortraitPack portraitPack = new PortraitPack
            {
                Id = "AdmiralKrakenovPortrait",
            };

            Assert.ThrowsException <ArgumentNullException>(() => portraitPack.UpdateGameStrings(null !));
        }
        /// <summary>
        /// Updates the localized gamestrings to the selected <see cref="Localization"/>.
        /// </summary>
        /// <param name="portraitPack">The data to be updated.</param>
        /// <param name="gameStringDocument">Instance of a <see cref="GameStringDocument"/>.</param>
        /// <exception cref="ArgumentNullException"><paramref name="gameStringDocument"/> is null.</exception>
        public static void UpdateGameStrings(this PortraitPack portraitPack, GameStringDocument gameStringDocument)
        {
            if (gameStringDocument is null)
            {
                throw new ArgumentNullException(nameof(gameStringDocument));
            }

            gameStringDocument.UpdateGameStrings(portraitPack);
        }
 private static void BasicAbathurToys18PortraitAsserts(PortraitPack portraitPack)
 {
     Assert.AreEqual("AbathurToys18Portrait", portraitPack.Id);
     Assert.AreEqual("Gingerbread Abathur", portraitPack.Name);
     Assert.AreEqual("AbathurToys18Portrait", portraitPack.HyperlinkId);
     Assert.AreEqual(Rarity.Common, portraitPack.Rarity);
     Assert.AreEqual("WinterVeil", portraitPack.EventName);
     Assert.IsNull(portraitPack.SortName);
     Assert.AreEqual(0, portraitPack.RewardPortraitIds.Count);
 }
Exemplo n.º 6
0
    public void UpdateGameStringPortraitPackTest()
    {
        using PortraitPackDataDocument dataDocument = _heroesDataDirectory.PortraitPackData(new HeroesDataVersion(2, 47, 3, 76124), true, Localization.KOKR);
        PortraitPack data = dataDocument.GetPortraitPackById("AbathurToys18Portrait");

        Assert.AreEqual("애벌레투르 초상화", data.Name);

        _heroesDataDirectory.UpdateGameString(data, new HeroesDataVersion(2, 48, 4, 77407), Localization.ENUS);
        Assert.AreEqual("portraitName", data.Name);
    }
 private static void BasicAdmiralKrakenovPortraitAsserts(PortraitPack portraitPack)
 {
     Assert.AreEqual("AdmiralKrakenovPortrait", portraitPack.Id);
     Assert.AreEqual("Admiral Krakenov Portrait", portraitPack.Name);
     Assert.AreEqual("AdmiralKrakenovPortrait", portraitPack.HyperlinkId);
     Assert.AreEqual(Rarity.Common, portraitPack.Rarity);
     Assert.IsNull(portraitPack.EventName);
     Assert.AreEqual("asdf", portraitPack.SortName);
     Assert.AreEqual(1, portraitPack.RewardPortraitIds.Count);
     Assert.AreEqual("StukovPortraitPirate", portraitPack.RewardPortraitIds.ToList()[0]);
 }
    /// <summary>
    /// Updates the gamestrings of <paramref name="portraitPack"/>.
    /// </summary>
    /// <param name="portraitPack">The data who's gamestrings will be updated.</param>
    /// <param name="version">The version directory to load the gamestrings from.</param>
    /// <param name="localization">The <see cref="Localization"/> of the gamestrings.</param>
    /// <exception cref="ArgumentNullException"><paramref name="portraitPack"/> is null.</exception>
    /// <exception cref="ArgumentNullException"><paramref name="version"/> is null.</exception>
    public void UpdateGameString(PortraitPack portraitPack, HeroesDataVersion version, Localization localization)
    {
        ArgumentNullException.ThrowIfNull(portraitPack, nameof(portraitPack));
        ArgumentNullException.ThrowIfNull(version, nameof(version));

        (_, string gameStringPath) = GetDataAndGameStringPaths(version, true, localization, _portraitPackFileTemplateName, false, true);

        using GameStringDocument gameStringDocument = GameStringDocument.Parse(gameStringPath);

        portraitPack.UpdateGameStrings(gameStringDocument);
    }
        public void UpdateGameStringsTest()
        {
            using GameStringDocument gameStringDocument = GameStringDocument.Parse(LoadEnusLocalizedStringData());

            PortraitPack portraitPack = new PortraitPack
            {
                Id = "AbathurToys18Portrait",
            };

            portraitPack.UpdateGameStrings(gameStringDocument);

            Assert.AreEqual("Caterpillathur Portrait", portraitPack.Name);
        }
        private PortraitPack GetPortraitPackData(string portraitPackId, JsonElement portraitPackElement)
        {
            PortraitPack portraitPack = new PortraitPack()
            {
                Id = portraitPackId,
            };

            if (portraitPackElement.TryGetProperty("name", out JsonElement name))
            {
                portraitPack.Name = name.GetString();
            }

            if (portraitPackElement.TryGetProperty("hyperlinkId", out JsonElement hyperlinkId))
            {
                portraitPack.HyperlinkId = hyperlinkId.GetString();
            }

            if (portraitPackElement.TryGetProperty("rarity", out JsonElement rarityElement) && Enum.TryParse(rarityElement.GetString(), out Rarity rarity))
            {
                portraitPack.Rarity = rarity;
            }

            if (portraitPackElement.TryGetProperty("event", out JsonElement eventElement))
            {
                portraitPack.EventName = eventElement.GetString();
            }

            if (portraitPackElement.TryGetProperty("sortName", out JsonElement sortName))
            {
                portraitPack.SortName = sortName.GetString();
            }

            if (portraitPackElement.TryGetProperty("rewardPortraitIds", out JsonElement rewardPortraitIdsElements))
            {
                foreach (JsonElement rewardPortraitIdElement in rewardPortraitIdsElements.EnumerateArray())
                {
                    string?rewardPortraitValue = rewardPortraitIdElement.GetString();
                    if (rewardPortraitValue is not null)
                    {
                        portraitPack.RewardPortraitIds.Add(rewardPortraitValue);
                    }
                }
            }

            GameStringDocument?.UpdateGameStrings(portraitPack);

            return(portraitPack);
        }
        protected override XElement MainElement(PortraitPack portrait)
        {
            if (FileOutputOptions.IsLocalizedText)
            {
                AddLocalizedGameString(portrait);
            }

            return(new XElement(
                       XmlConvert.EncodeName(portrait.Id),
                       string.IsNullOrEmpty(portrait.Name) || FileOutputOptions.IsLocalizedText ? null ! : new XAttribute("name", portrait.Name),
                       string.IsNullOrEmpty(portrait.HyperlinkId) ? null ! : new XAttribute("hyperlinkId", portrait.HyperlinkId),
                       new XAttribute("rarity", portrait.Rarity),
                       string.IsNullOrEmpty(portrait.EventName) ? null ! : new XAttribute("event", portrait.EventName),
                       string.IsNullOrEmpty(portrait.SortName) || FileOutputOptions.IsLocalizedText ? null ! : new XElement("SortName", portrait.SortName),
                       portrait.RewardPortraitIds != null && portrait.RewardPortraitIds.Any() ? new XElement("RewardPortraitIds", portrait.RewardPortraitIds.Select(x => new XElement("RewardPortraitId", x))) : null !));
        }
Exemplo n.º 12
0
    /// <summary>
    /// Updates the <paramref name="portraitPack"/>'s localized gamestrings to the currently selected <see cref="Localization"/>.
    /// </summary>
    /// <param name="portraitPack">The data to be updated.</param>
    /// <exception cref="ArgumentNullException"><paramref name="portraitPack"/> is <see langword="null"/>.</exception>
    public void UpdateGameStrings(PortraitPack portraitPack)
    {
        ArgumentNullException.ThrowIfNull(portraitPack, nameof(portraitPack));

        JsonElement element = JsonGameStringDocument.RootElement;

        if (element.TryGetProperty("gamestrings", out JsonElement gameStringElement))
        {
            if (gameStringElement.TryGetProperty("portrait", out JsonElement keyValue))
            {
                if (TryGetValueFromJsonElement(keyValue, "name", portraitPack.Id, out JsonElement nameElement))
                {
                    portraitPack.Name = nameElement.GetString();
                }
                if (TryGetValueFromJsonElement(keyValue, "sortname", portraitPack.Id, out JsonElement sortNameElement))
                {
                    portraitPack.SortName = sortNameElement.GetString();
                }
            }
        }
    }
 protected void AddLocalizedGameString(PortraitPack portrait)
 {
     GameStringWriter.AddPortraitPackName(portrait.Id, portrait.Name);
     GameStringWriter.AddPortraitackSortName(portrait.Id, portrait.SortName);
 }
Exemplo n.º 14
0
    /// <summary>
    /// Updates the localized gamestrings to the selected <see cref="Localization"/>.
    /// </summary>
    /// <param name="portraitPack">The data to be updated.</param>
    /// <param name="gameStringDocument">Instance of a <see cref="GameStringDocument"/>.</param>
    /// <exception cref="ArgumentNullException"><paramref name="gameStringDocument"/> is null.</exception>
    public static void UpdateGameStrings(this PortraitPack portraitPack, GameStringDocument gameStringDocument)
    {
        ArgumentNullException.ThrowIfNull(gameStringDocument, nameof(gameStringDocument));

        gameStringDocument.UpdateGameStrings(portraitPack);
    }