From af0b8b2a37f49fffaea64acfb5b36abe359cebe1 Mon Sep 17 00:00:00 2001 From: Kurt Date: Sun, 19 Aug 2018 16:45:20 -0700 Subject: [PATCH] Add egg sprite alternate display + setting egg sprites can be a little difficult to see what's underneath (glance value) make the new egg sprite method the new default; adds setting to revert to old behavior adds translation text for the mega rayq control from #2098 --- PKHeX.Core/Resources/text/de/lang_de.txt | 2 ++ PKHeX.Core/Resources/text/en/lang_en.txt | 2 ++ PKHeX.Core/Resources/text/es/lang_es.txt | 2 ++ PKHeX.Core/Resources/text/fr/lang_fr.txt | 2 ++ PKHeX.Core/Resources/text/it/lang_it.txt | 2 ++ PKHeX.Core/Resources/text/ja/lang_ja.txt | 2 ++ PKHeX.Core/Resources/text/ko/lang_ko.txt | 2 ++ PKHeX.Core/Resources/text/zh/lang_zh.txt | 2 ++ PKHeX.WinForms/App.config | 3 +++ PKHeX.WinForms/MainWindow/Main.cs | 1 + .../Properties/Settings.Designer.cs | 12 +++++++++ PKHeX.WinForms/Properties/Settings.settings | 3 +++ PKHeX.WinForms/Util/SpriteBuilder.cs | 25 +++++++++++++++++-- 13 files changed, 58 insertions(+), 2 deletions(-) diff --git a/PKHeX.Core/Resources/text/de/lang_de.txt b/PKHeX.Core/Resources/text/de/lang_de.txt index 22c45afc8..4a21a3d29 100644 --- a/PKHeX.Core/Resources/text/de/lang_de.txt +++ b/PKHeX.Core/Resources/text/de/lang_de.txt @@ -949,6 +949,7 @@ SAV_Trainer.CHK_Badge5=5 SAV_Trainer.CHK_Badge6=6 SAV_Trainer.CHK_Badge7=7 SAV_Trainer.CHK_Badge8=8 +SAV_Trainer.CHK_MegaRayquazaUnlocked=Mega Rayquaza Unlocked SAV_Trainer.CHK_MegaUnlocked=Mega Evolution Unlocked SAV_Trainer.GB_Adventure=Abenteuer Info SAV_Trainer.GB_MaisonBest=Kampfhaus Serien (Beste) @@ -1112,6 +1113,7 @@ SettingsEditor.ModifyUnset=Notify Unset Changes SettingsEditor.SetUpdateDex=Ändern Pokédex SettingsEditor.SetUpdatePKM=Ändern PKM Info SettingsEditor.ShinySprites=Shiny Sprites +SettingsEditor.ShowEggSpriteAsHeldItem=Show Egg Sprite As Held Item SettingsEditor.Unicode=Unicode SuperTrainingEditor.B_All=Alle SuperTrainingEditor.B_Cancel=Abbrechen diff --git a/PKHeX.Core/Resources/text/en/lang_en.txt b/PKHeX.Core/Resources/text/en/lang_en.txt index 7bd2252d0..15843728d 100644 --- a/PKHeX.Core/Resources/text/en/lang_en.txt +++ b/PKHeX.Core/Resources/text/en/lang_en.txt @@ -945,6 +945,7 @@ SAV_Trainer.CHK_Badge5=5 SAV_Trainer.CHK_Badge6=6 SAV_Trainer.CHK_Badge7=7 SAV_Trainer.CHK_Badge8=8 +SAV_Trainer.CHK_MegaRayquazaUnlocked=Mega Rayquaza Unlocked SAV_Trainer.CHK_MegaUnlocked=Mega Evolution Unlocked SAV_Trainer.GB_Adventure=Adventure Info SAV_Trainer.GB_MaisonBest=Maison Streaks (Best) @@ -1108,6 +1109,7 @@ SettingsEditor.ModifyUnset=Notify Unset Changes SettingsEditor.SetUpdateDex=Modify Pokédex SettingsEditor.SetUpdatePKM=Modify PKM Info SettingsEditor.ShinySprites=Shiny Sprites +SettingsEditor.ShowEggSpriteAsHeldItem=Show Egg Sprite As Held Item SettingsEditor.Unicode=Unicode SuperTrainingEditor.B_All=Give All SuperTrainingEditor.B_Cancel=Cancel diff --git a/PKHeX.Core/Resources/text/es/lang_es.txt b/PKHeX.Core/Resources/text/es/lang_es.txt index 2006abbbe..d10681e4e 100644 --- a/PKHeX.Core/Resources/text/es/lang_es.txt +++ b/PKHeX.Core/Resources/text/es/lang_es.txt @@ -945,6 +945,7 @@ SAV_Trainer.CHK_Badge5=5 SAV_Trainer.CHK_Badge6=6 SAV_Trainer.CHK_Badge7=7 SAV_Trainer.CHK_Badge8=8 +SAV_Trainer.CHK_MegaRayquazaUnlocked=Mega Rayquaza Unlocked SAV_Trainer.CHK_MegaUnlocked=Mega evolución desbloqueada SAV_Trainer.GB_Adventure=Información de la aventura SAV_Trainer.GB_MaisonBest=Rachas Mansión (Mejor) @@ -1108,6 +1109,7 @@ SettingsEditor.ModifyUnset=Notificar cambios no hechos SettingsEditor.SetUpdateDex=Modificar Pokédex SettingsEditor.SetUpdatePKM=Modificar info PKM SettingsEditor.ShinySprites=Sprites variocolor +SettingsEditor.ShowEggSpriteAsHeldItem=Show Egg Sprite As Held Item SettingsEditor.Unicode=Unicode SuperTrainingEditor.B_All=Dar todos SuperTrainingEditor.B_Cancel=Cancelar diff --git a/PKHeX.Core/Resources/text/fr/lang_fr.txt b/PKHeX.Core/Resources/text/fr/lang_fr.txt index 2383b61cb..6df4334ab 100644 --- a/PKHeX.Core/Resources/text/fr/lang_fr.txt +++ b/PKHeX.Core/Resources/text/fr/lang_fr.txt @@ -949,6 +949,7 @@ SAV_Trainer.CHK_Badge5=5 SAV_Trainer.CHK_Badge6=6 SAV_Trainer.CHK_Badge7=7 SAV_Trainer.CHK_Badge8=8 +SAV_Trainer.CHK_MegaRayquazaUnlocked=Mega Rayquaza Unlocked SAV_Trainer.CHK_MegaUnlocked=Mega Evolution Unlocked SAV_Trainer.GB_Adventure=Adventure Info SAV_Trainer.GB_MaisonBest=Maison Streaks (Best) @@ -1112,6 +1113,7 @@ SettingsEditor.ModifyUnset=Notify Unset Changes SettingsEditor.SetUpdateDex=Modifier Infos Pokédex SettingsEditor.SetUpdatePKM=Modifier Infos Pokémon SettingsEditor.ShinySprites=Shiny Sprites +SettingsEditor.ShowEggSpriteAsHeldItem=Show Egg Sprite As Held Item SettingsEditor.Unicode=Unicode SuperTrainingEditor.B_All=Give All SuperTrainingEditor.B_Cancel=Cancel diff --git a/PKHeX.Core/Resources/text/it/lang_it.txt b/PKHeX.Core/Resources/text/it/lang_it.txt index ab0c4d818..088ce0194 100644 --- a/PKHeX.Core/Resources/text/it/lang_it.txt +++ b/PKHeX.Core/Resources/text/it/lang_it.txt @@ -955,6 +955,7 @@ SAV_Trainer.CHK_Badge5=5 SAV_Trainer.CHK_Badge6=6 SAV_Trainer.CHK_Badge7=7 SAV_Trainer.CHK_Badge8=8 +SAV_Trainer.CHK_MegaRayquazaUnlocked=Mega Rayquaza Unlocked SAV_Trainer.CHK_MegaUnlocked=Mega Evolution Unlocked SAV_Trainer.GB_Adventure=Adventure Info SAV_Trainer.GB_MaisonBest=Maison Streaks (Best) @@ -1118,6 +1119,7 @@ SettingsEditor.ModifyUnset=Notify Unset Changes SettingsEditor.SetUpdateDex=Modify Pokédex SettingsEditor.SetUpdatePKM=Modify PKM Info SettingsEditor.ShinySprites=Shiny Sprites +SettingsEditor.ShowEggSpriteAsHeldItem=Show Egg Sprite As Held Item SettingsEditor.Unicode=Unicode SuperTrainingEditor.B_All=Give All SuperTrainingEditor.B_Cancel=Cancel diff --git a/PKHeX.Core/Resources/text/ja/lang_ja.txt b/PKHeX.Core/Resources/text/ja/lang_ja.txt index fa00550bc..9aa91ab24 100644 --- a/PKHeX.Core/Resources/text/ja/lang_ja.txt +++ b/PKHeX.Core/Resources/text/ja/lang_ja.txt @@ -949,6 +949,7 @@ SAV_Trainer.CHK_Badge5=5 SAV_Trainer.CHK_Badge6=6 SAV_Trainer.CHK_Badge7=7 SAV_Trainer.CHK_Badge8=8 +SAV_Trainer.CHK_MegaRayquazaUnlocked=Mega Rayquaza Unlocked SAV_Trainer.CHK_MegaUnlocked=メガシンカ 解除 SAV_Trainer.GB_Adventure=ぼうけんノート SAV_Trainer.GB_MaisonBest=バトルハウス (最高記録) @@ -1112,6 +1113,7 @@ SettingsEditor.ModifyUnset=Notify Unset Changes SettingsEditor.SetUpdateDex=ポケモン図鑑に反映 SettingsEditor.SetUpdatePKM=PKM情報の変更 SettingsEditor.ShinySprites=色違いアイコン +SettingsEditor.ShowEggSpriteAsHeldItem=Show Egg Sprite As Held Item SettingsEditor.Unicode=Unicode SuperTrainingEditor.B_All=全て取得 SuperTrainingEditor.B_Cancel=キャンセル diff --git a/PKHeX.Core/Resources/text/ko/lang_ko.txt b/PKHeX.Core/Resources/text/ko/lang_ko.txt index abe2d0f26..cbd21990e 100644 --- a/PKHeX.Core/Resources/text/ko/lang_ko.txt +++ b/PKHeX.Core/Resources/text/ko/lang_ko.txt @@ -945,6 +945,7 @@ SAV_Trainer.CHK_Badge5=5 SAV_Trainer.CHK_Badge6=6 SAV_Trainer.CHK_Badge7=7 SAV_Trainer.CHK_Badge8=8 +SAV_Trainer.CHK_MegaRayquazaUnlocked=Mega Rayquaza Unlocked SAV_Trainer.CHK_MegaUnlocked=Mega Evolution Unlocked SAV_Trainer.GB_Adventure=모험 정보 SAV_Trainer.GB_MaisonBest=연승 (최대) @@ -1108,6 +1109,7 @@ SettingsEditor.ModifyUnset=Notify Unset Changes SettingsEditor.SetUpdateDex=포켓몬 도감 수정 SettingsEditor.SetUpdatePKM=포켓몬 정보 수정 SettingsEditor.ShinySprites=Shiny Sprites +SettingsEditor.ShowEggSpriteAsHeldItem=Show Egg Sprite As Held Item SettingsEditor.Unicode=Unicode SuperTrainingEditor.B_All=모두 주기 SuperTrainingEditor.B_Cancel=취소 diff --git a/PKHeX.Core/Resources/text/zh/lang_zh.txt b/PKHeX.Core/Resources/text/zh/lang_zh.txt index 15bb3f7a4..8953dcb46 100644 --- a/PKHeX.Core/Resources/text/zh/lang_zh.txt +++ b/PKHeX.Core/Resources/text/zh/lang_zh.txt @@ -945,6 +945,7 @@ SAV_Trainer.CHK_Badge5=5 SAV_Trainer.CHK_Badge6=6 SAV_Trainer.CHK_Badge7=7 SAV_Trainer.CHK_Badge8=8 +SAV_Trainer.CHK_MegaRayquazaUnlocked=Mega Rayquaza Unlocked SAV_Trainer.CHK_MegaUnlocked=解锁超级进化 SAV_Trainer.GB_Adventure=冒险信息 SAV_Trainer.GB_MaisonBest=对战宅第连胜数 (最佳) @@ -1108,6 +1109,7 @@ SettingsEditor.ModifyUnset=未保存修改提醒 SettingsEditor.SetUpdateDex=修改图鉴 SettingsEditor.SetUpdatePKM=修改宝可梦 SettingsEditor.ShinySprites=异色图标 +SettingsEditor.ShowEggSpriteAsHeldItem=Show Egg Sprite As Held Item SettingsEditor.Unicode=Unicode SuperTrainingEditor.B_All=获得全部 SuperTrainingEditor.B_Cancel=取消 diff --git a/PKHeX.WinForms/App.config b/PKHeX.WinForms/App.config index 0255a79bb..98ee71f8f 100644 --- a/PKHeX.WinForms/App.config +++ b/PKHeX.WinForms/App.config @@ -49,6 +49,9 @@ False + + True + diff --git a/PKHeX.WinForms/MainWindow/Main.cs b/PKHeX.WinForms/MainWindow/Main.cs index 25f35057c..f74d65ddd 100644 --- a/PKHeX.WinForms/MainWindow/Main.cs +++ b/PKHeX.WinForms/MainWindow/Main.cs @@ -374,6 +374,7 @@ private void MainMenuSettings(object sender, EventArgs e) PKME_Tabs.Unicode = Unicode = Settings.Default.Unicode; C_SAV.FlagIllegal = Settings.Default.FlagIllegal; C_SAV.M.GlowHover = Settings.Default.HoverSlotGlowEdges; + SpriteBuilder.ShowEggSpriteAsItem = Settings.Default.ShowEggSpriteAsHeldItem; PKME_Tabs.UpdateUnicode(GenderSymbols); PKME_Tabs_UpdatePreviewSprite(sender, e); diff --git a/PKHeX.WinForms/Properties/Settings.Designer.cs b/PKHeX.WinForms/Properties/Settings.Designer.cs index 043eca2f1..42a69054c 100644 --- a/PKHeX.WinForms/Properties/Settings.Designer.cs +++ b/PKHeX.WinForms/Properties/Settings.Designer.cs @@ -190,5 +190,17 @@ internal sealed partial class Settings : global::System.Configuration.Applicatio this["HideSAVDetails"] = value; } } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("True")] + public bool ShowEggSpriteAsHeldItem { + get { + return ((bool)(this["ShowEggSpriteAsHeldItem"])); + } + set { + this["ShowEggSpriteAsHeldItem"] = value; + } + } } } diff --git a/PKHeX.WinForms/Properties/Settings.settings b/PKHeX.WinForms/Properties/Settings.settings index bf43a01f0..972dc2ba3 100644 --- a/PKHeX.WinForms/Properties/Settings.settings +++ b/PKHeX.WinForms/Properties/Settings.settings @@ -44,5 +44,8 @@ False + + True + \ No newline at end of file diff --git a/PKHeX.WinForms/Util/SpriteBuilder.cs b/PKHeX.WinForms/Util/SpriteBuilder.cs index 761d95dc4..8c40dca30 100644 --- a/PKHeX.WinForms/Util/SpriteBuilder.cs +++ b/PKHeX.WinForms/Util/SpriteBuilder.cs @@ -6,6 +6,8 @@ namespace PKHeX.WinForms { public class SpriteBuilder : ISpriteBuilder { + public static bool ShowEggSpriteAsItem { get; set; } = true; + public void Initialize(SaveFile sav) { if (sav.Generation != 3) @@ -110,12 +112,31 @@ private static Image LayerOverImageShiny(Image baseImage, bool isBoxBGRed) } private static Image LayerOverImageEgg(Image baseImage, int species) + { + if (ShowEggSpriteAsItem) + return LayerOverImageEggAsItem(baseImage, species); + return LayerOverImageEggTransparentSpecies(baseImage, species); + } + + private static Image GetEggSprite(int species) => species == 490 ? (Image)Resources.ResourceManager.GetObject("_490_e") : Resources.egg; + + private const double EggUnderLayerTransparency = 0.33; + private const int EggOverLayerAsItemShiftX = 9; + private const int EggOverLayerAsItemShiftY = 2; + + private static Image LayerOverImageEggTransparentSpecies(Image baseImage, int species) { // Partially transparent species. - baseImage = ImageUtil.ChangeOpacity(baseImage, 0.33); + baseImage = ImageUtil.ChangeOpacity(baseImage, EggUnderLayerTransparency); // Add the egg layer over-top with full opacity. - var egg = species == 490 ? (Image)Resources.ResourceManager.GetObject("_490_e") : Resources.egg; + var egg = GetEggSprite(species); return ImageUtil.LayerImage(baseImage, egg, 0, 0); } + + private static Image LayerOverImageEggAsItem(Image baseImage, int species) + { + var egg = GetEggSprite(species); + return ImageUtil.LayerImage(baseImage, egg, EggOverLayerAsItemShiftX, EggOverLayerAsItemShiftY); // similar to held item, since they can't have any + } } }