mirror of
https://github.com/kwsch/PKHeX
synced 2024-11-23 12:33:06 +00:00
bced546c63
O(1) lookup for arbitrary species, some edge handling rules for specific game islands/forms. With HOME, there's only 3 islands of permissions. No allocation besides the singletons which aren't really necessary.
No longer need to peek within multiple hashsets, just fetch the "is possible" bit from the species listing and check if the bit is set.
Will be fun if ball shell swaps are added 🤞, get to set all bits for anything that can enter game with that feature (if ever added).
Add unit test for gen67 no-patch exclusion
24 lines
708 B
C#
24 lines
708 B
C#
using FluentAssertions;
|
|
using Xunit;
|
|
|
|
namespace PKHeX.Core.Tests.Legality;
|
|
|
|
public class BallTests
|
|
{
|
|
/// <summary>
|
|
/// Some species can't use ability patch yet.
|
|
/// </summary>
|
|
[Theory]
|
|
[InlineData(Species.Lunatone)]
|
|
[InlineData(Species.Solrock)]
|
|
[InlineData(Species.Rotom)]
|
|
[InlineData(Species.Archen)]
|
|
[InlineData(Species.Pikachu, true)] // can use ability patch
|
|
public void IsAbilityPatchPossible(Species species, bool expect = false)
|
|
{
|
|
var p7 = BallContextHOME.IsAbilityPatchPossible(7, (ushort)species);
|
|
p7.Should().Be(false);
|
|
var p8 = BallContextHOME.IsAbilityPatchPossible(8, (ushort)species);
|
|
p8.Should().Be(expect);
|
|
}
|
|
}
|