diff --git a/PKHeX.Core/Legality/Encounters/EncounterSlot/GO/PogoType.cs b/PKHeX.Core/Legality/Encounters/EncounterSlot/GO/PogoType.cs
index cddd49459..447107963 100644
--- a/PKHeX.Core/Legality/Encounters/EncounterSlot/GO/PogoType.cs
+++ b/PKHeX.Core/Legality/Encounters/EncounterSlot/GO/PogoType.cs
@@ -7,39 +7,41 @@ public enum PogoType : byte
{
None, // Don't use this.
- /// Wild encounter, no special requirements
+ /// Pokémon captured in the wild.
Wild,
- /// Pokémon Egg, requires Lv. 1 and IV = 1
+ /// Pokémon hatched from 2km, 5km, 7km, or 10km Eggs.
Egg,
- /// Strange Egg, requires Lv. 8 and IV = 1
+ /// Pokémon hatched from Strange Eggs received from the Leaders of Team GO Rocket.
EggS,
- /// Raid Boss, requires Lv. 20 and IV = 1
+ /// Pokémon captured after completing Raid Battles.
Raid = 10,
- /// Raid Boss (Mythical), requires Lv. 20 and IV = 10
+ /// Mythical Pokémon captured after completing Raid Battles.
RaidM,
- /// Field Research Reward, requires Lv. 15 and IV = 1
+ /// Pokémon captured after completing Field Research.
Research = 20,
- /// Field Research Reward (Mythical), requires Lv. 15 and IV = 10
+ /// Mythical Pokémon captured after completing Field Research.
ResearchM,
- /// Field Research Reward, requires Lv. 15 and IV = 10 (Poké Ball only)
+ /// Mythical Pokémon captured after completing Field Research. Only Poké Balls can be used.
ResearchP,
+ /// Ultra Beasts captured after completing Field Research. Only Beast Balls can be used.
+ ResearchUB,
- /// GO Battle League Reward, requires Lv. 20 and IV = 1
- GBL,
- /// GO Battle League Reward (Mythical), requires Lv. 20 and IV = 10
+ /// Pokémon captured from the GO Battle League.
+ GBL = 30,
+ /// Mythical Pokémon captured from the GO Battle League.
GBLM,
- /// GO Battle League Reward, requires Lv. 20 and IV = 0
+ /// Pokémon captured from the GO Battle League during GO Battle Day, excluding Legendary and Mythical Pokémon.
/// On GO Battle Day (September 18, 2021), IV floor and ceiling were both temporarily set to 0 for non-Legendary encounters. This was fixed at 14:43 UTC (September 17, 2021).
GBLZero,
- /// GO Battle League Reward, requires Lv. 20 and IV = 0
- /// On GO Battle Day (September 18, 2021), IV floor was set to 0 after a mishap that also set the IV ceiling to 0.
+ /// Pokémon captured from the GO Battle League during GO Battle Day, excluding Legendary and Mythical Pokémon.
GBLDay,
- /// Purified, requires Lv. 8 and IV = 1 (Premier Ball only)
- Shadow = 30,
+ /// Pokémon captured after defeating members of Team GO Rocket. Must become Purified before transferring to Pokémon HOME.
+ /// Pokémon with this can not be moved to .
+ Shadow = 40,
}
public static class PogoTypeExtensions
@@ -47,7 +49,7 @@ public static class PogoTypeExtensions
///
/// Gets the minimum level (relative to GO's 1-) the must have.
///
- /// Descriptor indicating how the Pokémon was encountered in GO.
+ /// Descriptor indicating how the Pokémon was encountered in GO.
public static byte GetMinLevel(this PogoType encounterType) => encounterType switch
{
PogoType.EggS => 8,
@@ -56,6 +58,7 @@ public static class PogoTypeExtensions
PogoType.Research => 15,
PogoType.ResearchM => 15,
PogoType.ResearchP => 15,
+ PogoType.ResearchUB => 15,
PogoType.GBL => 20,
PogoType.GBLM => 20,
PogoType.GBLZero => 20,
@@ -67,7 +70,7 @@ public static class PogoTypeExtensions
///
/// Gets the minimum IVs (relative to GO's 0-15) the must have.
///
- /// Descriptor indicating how the Pokémon was encountered in GO.
+ /// Descriptor indicating how the Pokémon was encountered in GO.
/// Required minimum IV (0-15)
public static int GetMinIV(this PogoType encounterType) => encounterType switch
{
@@ -84,7 +87,7 @@ public static class PogoTypeExtensions
///
/// Gets the minimum IVs (relative to GO's 0-15) the must have.
///
- /// Descriptor indicating how the Pokémon was encountered in GO.
+ /// Descriptor indicating how the Pokémon was encountered in GO.
/// Required minimum IV (0-15)
public static int GetMaxIV(this PogoType encounterType) => encounterType switch
{
@@ -95,8 +98,8 @@ public static class PogoTypeExtensions
///
/// Checks if the is valid for the .
///
- /// Descriptor indicating how the Pokémon was encountered in GO.
- /// Current the Pokémon is in.
+ /// Descriptor indicating how the Pokémon was encountered in GO.
+ /// Current the Pokémon is in.
/// True if valid, false if invalid.
public static bool IsBallValid(this PogoType encounterType, Ball ball)
{
@@ -107,9 +110,9 @@ public static class PogoTypeExtensions
}
///
- /// Gets a valid ball that the can have based on the type of capture in Pokémon GO.
+ /// Gets a valid ball that the can have based on the type of capture in Pokémon GO.
///
- /// Descriptor indicating how the Pokémon was encountered in GO.
+ /// Descriptor indicating how the Pokémon was encountered in GO.
/// if no specific ball is required, otherwise returns the required ball.
public static Ball GetValidBall(this PogoType encounterType) => encounterType switch
{
@@ -118,6 +121,7 @@ public static class PogoTypeExtensions
PogoType.Raid => Ball.Premier,
PogoType.RaidM => Ball.Premier,
PogoType.ResearchP => Ball.Poke,
+ PogoType.ResearchUB => Ball.Beast,
PogoType.Shadow => Ball.Premier,
_ => Ball.None, // Poke, Great, Ultra
};