From 91582b5e2306a145658f6fb7f4045a760c12457a Mon Sep 17 00:00:00 2001 From: Asval Date: Wed, 20 Nov 2019 21:40:06 +0100 Subject: [PATCH] added cosmetic season introduction + synced emote uff --- FModel/FModel.csproj | 1 + .../IconCreator/AthenaID/CosmeticSeason.cs | 29 +++++++++++++++++++ .../AthenaID/IconUserFacingFlags.cs | 3 +- FModel/Methods/Assets/IconCreator/IconText.cs | 7 +++++ 4 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 FModel/Methods/Assets/IconCreator/AthenaID/CosmeticSeason.cs diff --git a/FModel/FModel.csproj b/FModel/FModel.csproj index cf487373..64747c69 100644 --- a/FModel/FModel.csproj +++ b/FModel/FModel.csproj @@ -214,6 +214,7 @@ + diff --git a/FModel/Methods/Assets/IconCreator/AthenaID/CosmeticSeason.cs b/FModel/Methods/Assets/IconCreator/AthenaID/CosmeticSeason.cs new file mode 100644 index 00000000..1b7058c0 --- /dev/null +++ b/FModel/Methods/Assets/IconCreator/AthenaID/CosmeticSeason.cs @@ -0,0 +1,29 @@ +namespace FModel.Methods.Assets.IconCreator.AthenaID +{ + static class CosmeticSeason + { + public static string GetCosmeticSeason(string SeasonNumber) + { + string s = SeasonNumber; + int snumber = int.Parse(SeasonNumber); + if (snumber == 10) + s = "X"; + + string introduced = AssetTranslations.SearchTranslation("Fort.Cosmetics", "CosmeticItemDescription_Season", "\nIntroduced in {0}.").Replace("", string.Empty).Replace("", string.Empty); //2 separate because of Japanese + string stext = AssetTranslations.SearchTranslation("AthenaSeasonItemDefinitionInternal", "SeasonTextFormat", "Season {0}"); + + //display Chapter {First Letter Of SeasonNumber + 1 (S11 -> Chapter 1 + 1 = 2)}, Season {Last Letter Of SeasonNumber (S11 -> Season 1)} + //this can easily break lol but idk where are the right numbers for each item + if (snumber > 10) + { + string schapter = AssetTranslations.SearchTranslation("AthenaSeasonItemDefinitionInternal", "ChapterTextFormat", "Chapter {0}"); + string sformat = AssetTranslations.SearchTranslation("AthenaSeasonItemDefinitionInternal", "ChapterSeasonTextFormat", "{0}, {1}"); + + stext = string.Format(introduced, string.Format(sformat, string.Format(schapter, int.Parse(s.Substring(1)) + 1), string.Format(stext, s.Substring(s.Length - 1)))); + return stext; + } + + return string.Format(introduced, string.Format(stext, s)); + } + } +} diff --git a/FModel/Methods/Assets/IconCreator/AthenaID/IconUserFacingFlags.cs b/FModel/Methods/Assets/IconCreator/AthenaID/IconUserFacingFlags.cs index 589a56d0..a132ff6d 100644 --- a/FModel/Methods/Assets/IconCreator/AthenaID/IconUserFacingFlags.cs +++ b/FModel/Methods/Assets/IconCreator/AthenaID/IconUserFacingFlags.cs @@ -61,7 +61,8 @@ namespace FModel.Methods.Assets.IconCreator.AthenaID uFFTarget.Contains("HasVariants") && categoryNameToken.Value() == "Unlockable Styles" || uFFTarget.Contains("Reactive") && categoryNameToken.Value() == "Reactive" || uFFTarget.Contains("Traversal") && categoryNameToken.Value() == "Traversal" || - uFFTarget.Contains("BuiltInEmote") && categoryNameToken.Value() == "Built-in") + uFFTarget.Contains("BuiltInEmote") && categoryNameToken.Value() == "Built-in" || + uFFTarget.Contains("Synced") && categoryNameToken.Value() == "Synced") { GetUFFImage(propertiesArray); } diff --git a/FModel/Methods/Assets/IconCreator/IconText.cs b/FModel/Methods/Assets/IconCreator/IconText.cs index 63281452..f30c3c5b 100644 --- a/FModel/Methods/Assets/IconCreator/IconText.cs +++ b/FModel/Methods/Assets/IconCreator/IconText.cs @@ -113,6 +113,13 @@ namespace FModel.Methods.Assets.IconCreator if (!string.IsNullOrEmpty(cosmeticSet)) { _description += cosmeticSet; } } + JToken cFilterToken = gTagsArray.Children().FirstOrDefault(x => x.ToString().StartsWith("Cosmetics.Filter.Season.")); + if (cFilterToken != null) + { + string cosmeticFilter = CosmeticSeason.GetCosmeticSeason(cFilterToken.Value().Substring("Cosmetics.Filter.Season.".Length)); + if (!string.IsNullOrEmpty(cosmeticFilter)) { _description += cosmeticFilter; } + } + JToken cSourceToken = gTagsArray.Children().FirstOrDefault(x => x.ToString().StartsWith("Cosmetics.Source.")); if (cSourceToken != null) {