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
This commit is contained in:
Kurt 2018-08-19 16:45:20 -07:00
parent d307a30cad
commit af0b8b2a37
13 changed files with 58 additions and 2 deletions

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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=キャンセル

View file

@ -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=취소

View file

@ -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=取消

View file

@ -49,6 +49,9 @@
<setting name="HideSAVDetails" serializeAs="String">
<value>False</value>
</setting>
<setting name="ShowEggSpriteAsHeldItem" serializeAs="String">
<value>True</value>
</setting>
</PKHeX.WinForms.Properties.Settings>
</userSettings>
<runtime>

View file

@ -374,6 +374,7 @@ namespace PKHeX.WinForms
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);

View file

@ -190,5 +190,17 @@ namespace PKHeX.WinForms.Properties {
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;
}
}
}
}

View file

@ -44,5 +44,8 @@
<Setting Name="HideSAVDetails" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="ShowEggSpriteAsHeldItem" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
</Settings>
</SettingsFile>

View file

@ -6,6 +6,8 @@ namespace PKHeX.WinForms
{
public class SpriteBuilder : ISpriteBuilder<Image>
{
public static bool ShowEggSpriteAsItem { get; set; } = true;
public void Initialize(SaveFile sav)
{
if (sav.Generation != 3)
@ -110,12 +112,31 @@ namespace PKHeX.WinForms
}
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
}
}
}