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); }
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 !)); }
/// <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); }
/// <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); }