From 2e9f73ab4d8516e53a6f7341f02e76a179a2fcbd Mon Sep 17 00:00:00 2001
From: sora10pls <17801814+sora10pls@users.noreply.github.com>
Date: Wed, 22 Jun 2022 17:19:08 -0400
Subject: [PATCH] Add PogoType for Ultra Beasts via Field Research
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Will need to verify if Beast Balls can be used on other Pokémon, and if generic Poké Balls can be used on Ultra Beasts. We'll see when GO Fest Berlin starts.
---
.../Encounters/EncounterSlot/GO/PogoType.cs | 50 ++++++++++---------
1 file changed, 27 insertions(+), 23 deletions(-)
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 bool IsBallValid(this PogoType encounterType, Ball ball)
}
///
- /// 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 bool IsBallValid(this PogoType encounterType, Ball ball)
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
};