mirror of
https://github.com/kwsch/PKHeX
synced 2024-12-05 02:09:41 +00:00
fc754b346b
[Language Reference](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/proposals/csharp-10.0/file-scoped-namespaces) Updates all the files, one less level of indentation. Some small changes were made to API surfaces, renaming `PKM pkm` -> `PKM pk`, and `LegalityAnalysis.pkm` -> `LegalityAnalysis.Entity`
85 lines
2.6 KiB
C#
85 lines
2.6 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using static PKHeX.Core.Ball;
|
|
|
|
namespace PKHeX.Core;
|
|
|
|
internal static class BallUseLegality
|
|
{
|
|
internal static ICollection<int> GetWildBalls(int generation, GameVersion game) => generation switch
|
|
{
|
|
1 => WildPokeBalls1,
|
|
2 => WildPokeBalls2,
|
|
3 => WildPokeBalls3,
|
|
4 => GameVersion.HGSS.Contains(game) ? WildPokeBalls4_HGSS : WildPokeBalls4_DPPt,
|
|
5 => WildPokeBalls5,
|
|
6 => WildPokeballs6,
|
|
7 => GameVersion.Gen7b.Contains(game) ? WildPokeballs7b : WildPokeballs7,
|
|
8 when GameVersion.BDSP.Contains(game) => WildPokeBalls4_HGSS,
|
|
8 when GameVersion.PLA == game => WildPokeBalls8a,
|
|
8 => GameVersion.GO == game ? WildPokeballs8g : WildPokeballs8,
|
|
_ => Array.Empty<int>(),
|
|
};
|
|
|
|
private static readonly int[] WildPokeBalls1 = { 4 };
|
|
private static readonly int[] WildPokeBalls2 = WildPokeBalls1;
|
|
|
|
private static readonly HashSet<int> WildPokeBalls3 = new()
|
|
{
|
|
(int)Master, (int)Ultra, (int)Great, (int)Poke, (int)Net, (int)Dive,
|
|
(int)Nest, (int)Repeat, (int)Timer, (int)Luxury, (int)Premier,
|
|
};
|
|
|
|
private static readonly HashSet<int> WildPokeBalls4_DPPt = new(WildPokeBalls3)
|
|
{
|
|
(int)Dusk, (int)Heal, (int)Quick,
|
|
};
|
|
|
|
private static readonly HashSet<int> WildPokeBalls4_HGSS = new(WildPokeBalls4_DPPt)
|
|
{
|
|
(int)Fast, (int)Level, (int)Lure, (int)Heavy, (int)Love, (int)Friend, (int)Moon,
|
|
};
|
|
|
|
private static readonly HashSet<int> WildPokeBalls5 = WildPokeBalls4_DPPt;
|
|
|
|
internal static readonly HashSet<int> DreamWorldBalls = new(WildPokeBalls5) {(int)Dream};
|
|
|
|
internal static readonly HashSet<int> WildPokeballs6 = WildPokeBalls5; // Same as Gen5
|
|
|
|
internal static readonly HashSet<int> WildPokeballs7 = new(WildPokeBalls4_HGSS) {(int)Beast}; // Same as HGSS + Beast
|
|
|
|
private static readonly HashSet<int> WildPokeballs7b = new()
|
|
{
|
|
(int)Master, (int)Ultra, (int)Great, (int)Poke,
|
|
(int)Premier,
|
|
};
|
|
|
|
private static readonly HashSet<int> WildPokeballs8g = new()
|
|
{
|
|
(int)Ultra, (int)Great, (int)Poke,
|
|
(int)Premier,
|
|
};
|
|
|
|
internal static readonly HashSet<int> WildPokeballs8 = new(WildPokeballs7) // All Except Cherish
|
|
{
|
|
(int)Dream,
|
|
(int)Safari,
|
|
(int)Sport,
|
|
// no cherish ball
|
|
};
|
|
|
|
private static readonly HashSet<int> WildPokeBalls8a = new()
|
|
{
|
|
(int)LAPoke,
|
|
(int)LAGreat,
|
|
(int)LAUltra,
|
|
|
|
(int)LAFeather,
|
|
(int)LAWing,
|
|
(int)LAJet,
|
|
|
|
(int)LAHeavy,
|
|
(int)LALeaden,
|
|
(int)LAGigaton,
|
|
};
|
|
}
|