Add shinyleaf/pokeathlon stat legality check

#1236
This commit is contained in:
Kurt 2017-06-17 22:16:24 -07:00
parent da6f880c16
commit b5d2db6610
7 changed files with 28 additions and 7 deletions

View file

@ -1996,6 +1996,13 @@ namespace PKHeX.Core
AddLine(Severity.Invalid, V320, CheckIdentifier.Egg);
if (pkm.Format == 2 && (pkm.PKRS_Cured || pkm.PKRS_Infected))
AddLine(Severity.Invalid, V368, CheckIdentifier.Egg);
if (pkm is PK4 pk4)
{
if (pk4.ShinyLeaf != 0)
AddLine(Severity.Invalid, V414, CheckIdentifier.Egg);
if (pk4.PokéathlonStat != 0)
AddLine(Severity.Invalid, V415, CheckIdentifier.Egg);
}
var HatchCycles = (EncounterMatch as EncounterStatic)?.EggCycles;
if (HatchCycles == 0 || HatchCycles == null)

View file

@ -407,6 +407,8 @@ namespace PKHeX.Core
public static string V410 {get; set;} = "Mystery Gift fixed PID mismatch.";
public static string V411 {get; set;} = "Encounter Type PID mismatch.";
public static string V412 {get; set;} = "Non-tradeback pre evolution move. Incompatible with Generation 1 exclusive moves.";
public static string V414 {get; set;} = "Eggs can not have Shiny Leaf/Crown."; // Invalid
public static string V415 {get; set;} = "Eggs can not have Pokéathlon stats."; // Invalid
#endregion
}

View file

@ -311,6 +311,7 @@ namespace PKHeX.Core
public override int Met_Level { get => Data[0x84] & ~0x80; set => Data[0x84] = (byte)((Data[0x84] & 0x80) | value); }
public override int OT_Gender { get => Data[0x84] >> 7; set => Data[0x84] = (byte)((Data[0x84] & ~0x80) | value << 7); }
public override int EncounterType { get => Data[0x85]; set => Data[0x85] = (byte)value; }
public int PokéathlonStat { get => Data[0x87]; set => Data[0x87] = (byte)value; }
// Unused 0x87
#endregion

View file

@ -342,4 +342,7 @@ V408 = Female OT from Generation 1/2 is invalid.
V409 = Mystery Gift shiny mismatch.
V410 = Mystery Gift fixed PID mismatch.
V411 = Encounter Type PID mismatch.
V412 = Non-tradeback pre evolution move. Incompatible with Generation 1 exclusive moves.
V412 = Non-tradeback pre evolution move. Incompatible with Generation 1 exclusive moves.
V413 = Unreleased event.
V414 = Eggs can not have Shiny Leaf/Crown.
V415 = Eggs can not have Pokéathlon stats.

View file

@ -342,4 +342,7 @@ V408 = 1/2세대에서는 여성 어버이를 사용할 수 없습니다.
V409 = 이상한소포의 색이 다른 포켓몬 여부가 일치하지 않습니다.
V410 = 이상한소포의 고정된 PID가 일치하지 않습니다.
V411 = 인카운터 유형 PID가 일치하지 않습니다.
V412 = 이전 세대로 옮길 수 없는 진화 전 기술입니다. 1세대 전용 기술과 함께 존재할 수 없습니다.
V412 = 이전 세대로 옮길 수 없는 진화 전 기술입니다. 1세대 전용 기술과 함께 존재할 수 없습니다.
V413 = Unreleased event.
V414 = Eggs can not have Shiny Leaf/Crown.
V415 = Eggs can not have Pokéathlon stats.

View file

@ -342,4 +342,7 @@ V408 = Female OT from Generation 1/2 is invalid.
V409 = Mystery Gift shiny mismatch.
V410 = Mystery Gift fixed PID mismatch.
V411 = Encounter Type PID mismatch.
V412 = Non-tradeback pre evolution move. Incompatible with generation 1 exclusive moves.
V412 = Non-tradeback pre evolution move. Incompatible with generation 1 exclusive moves.
V413 = Unreleased event.
V414 = Eggs can not have Shiny Leaf/Crown.
V415 = Eggs can not have Pokéathlon stats.

View file

@ -44,15 +44,17 @@ namespace PKHeX.WinForms.Controls
{
if (!(sender is CheckBox c))
return;
if (!c.Checked)
CHK_C.Checked = CHK_C.Enabled = false;
else if (Flags.Take(5).All(z => z.Checked) && CHK_C != c)
CHK_C.Enabled = true;
if (CHK_C == c)
c.Image = c.Checked ? Resources.crown : greyCrown;
else
{
if (!c.Checked)
CHK_C.Checked = CHK_C.Enabled = false;
else if (Flags.Take(5).All(z => z.Checked))
CHK_C.Enabled = true;
c.Image = c.Checked ? Resources.leaf : greyLeaf;
}
}
}
}