diff --git a/Directory.Build.props b/Directory.Build.props
index ab78b25..eed3379 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -1,8 +1,8 @@
- net8.0
+ net9.0
win-x64
- 12
+ 13
enable
en
false
@@ -10,13 +10,11 @@
true
$([System.DateTime]::UtcNow.ToString("yyMMddHHmmss"))
-
none
false
-
portable
-
+
\ No newline at end of file
diff --git a/RaidCrawler.Core/Connection/ConnectionWrapper.cs b/RaidCrawler.Core/Connection/ConnectionWrapper.cs
index 5f18891..e672ad2 100644
--- a/RaidCrawler.Core/Connection/ConnectionWrapper.cs
+++ b/RaidCrawler.Core/Connection/ConnectionWrapper.cs
@@ -318,7 +318,7 @@ await Click(DDOWN, config.NavigateToSettingsDelay + BaseDelay, token)
.ConfigureAwait(false);
UpdateProgressBar(action, steps);
- for (int i = 0; i < 5; i++)
+ for (int i = 0; i < 7; i++)
{
await Click(DRIGHT, config.NavigateToSettingsDelay + BaseDelay, token)
.ConfigureAwait(false);
diff --git a/RaidCrawler.Core/Discord/NotificationHandler.cs b/RaidCrawler.Core/Discord/NotificationHandler.cs
index 42ac50c..eb921f4 100644
--- a/RaidCrawler.Core/Discord/NotificationHandler.cs
+++ b/RaidCrawler.Core/Discord/NotificationHandler.cs
@@ -76,22 +76,25 @@ public async Task SendScreenshot(ISwitchConnectionAsync nx, CancellationToken to
private object GenerateWebhook(ITeraRaid encounter, Raid raid, RaidFilter filter, string time, IReadOnlyList<(int, int, int)> rewardsList, string hexColor, string spriteName)
{
- var strings = GameInfo.GetStrings(1);
+ var strings = GameInfo.GetStrings("en");
var param = encounter.GetParam();
var blank = new PK9 { Species = encounter.Species, Form = encounter.Form };
- Encounter9RNG.GenerateData(blank, param, EncounterCriteria.Unrestricted, raid.Seed);
+ raid.GenerateDataPK9(blank, param, encounter.Shiny, raid.Seed);
+
var form = Utils.GetFormString(blank.Species, blank.Form, strings);
var species = $"{strings.Species[encounter.Species]}{form}";
var difficulty = Difficulty(encounter.Stars, raid.IsEvent);
- var nature = $"{strings.Natures[blank.Nature]}";
+ var nature = $"{strings.Natures[(int)blank.Nature]}";
var ability = $"{strings.Ability[blank.Ability]}";
var shiny = Shiny(raid.CheckIsShiny(encounter), ShinyExtensions.IsSquareShinyExist(blank));
var gender = GenderEmoji(blank.Gender);
var teratype = raid.GetTeraType(encounter);
var tera = $"{strings.types[teratype]}";
var teraemoji = TeraEmoji(strings.types[teratype]);
- var ivs = IVsStringEmoji(ToSpeedLast(blank.IVs));
+ Span _ivs = stackalloc int[6];
+ blank.GetIVs(_ivs);
+ var ivs = IVsStringEmoji(ToSpeedLast(_ivs));
ushort[] moves =
[
encounter.Move1,
diff --git a/RaidCrawler.Core/RaidCrawler.Core.csproj b/RaidCrawler.Core/RaidCrawler.Core.csproj
index ce15269..284ee25 100644
--- a/RaidCrawler.Core/RaidCrawler.Core.csproj
+++ b/RaidCrawler.Core/RaidCrawler.Core.csproj
@@ -12,7 +12,7 @@
-
+
deps\SysBot.Base.dll
diff --git a/RaidCrawler.Core/Structures/Raid.cs b/RaidCrawler.Core/Structures/Raid.cs
index ed78e0d..ab6182e 100644
--- a/RaidCrawler.Core/Structures/Raid.cs
+++ b/RaidCrawler.Core/Structures/Raid.cs
@@ -13,26 +13,26 @@ public class Raid(Span Data, TeraRaidMapParent MapParent = TeraRaidMapPare
public readonly TeraRaidMapParent MapParent = MapParent;
- public bool IsValid => Validate();
- public bool IsActive => ReadUInt32LittleEndian(Data.AsSpan(0x00)) == 1;
- public uint Area => ReadUInt32LittleEndian(Data.AsSpan(0x04));
+ public bool IsValid => Validate();
+ public bool IsActive => ReadUInt32LittleEndian(Data.AsSpan(0x00)) == 1;
+ public uint Area => ReadUInt32LittleEndian(Data.AsSpan(0x04));
public uint LotteryGroup => ReadUInt32LittleEndian(Data.AsSpan(0x08));
- public uint Den => ReadUInt32LittleEndian(Data.AsSpan(0x0C));
- public uint Seed => ReadUInt32LittleEndian(Data.AsSpan(0x10));
- public uint Flags => ReadUInt32LittleEndian(Data.AsSpan(0x18));
- public bool IsBlack => Flags == 1;
- public bool IsEvent => Flags >= 2;
+ public uint Den => ReadUInt32LittleEndian(Data.AsSpan(0x0C));
+ public uint Seed => ReadUInt32LittleEndian(Data.AsSpan(0x10));
+ public uint Flags => ReadUInt32LittleEndian(Data.AsSpan(0x18));
+ public bool IsBlack => Flags == 1;
+ public bool IsEvent => Flags >= 2;
- public int TeraType => GetTeraType(Seed);
- public uint Difficulty => GetDifficulty(Seed);
+ public int TeraType => GetTeraType(Seed);
+ public uint Difficulty => GetDifficulty(Seed);
- public uint EC => GenericRaidData[0];
- public uint PID => GenericRaidData[2];
- public bool IsShiny => GenericRaidData[3] == 1;
+ public uint EC => GenericRaidData[0];
+ public uint PID => GenericRaidData[2];
+ public bool IsShiny => GenericRaidData[3] == 1;
private uint[] GenericRaidData => GenerateGenericRaidData(Seed);
- public byte[] GetData() => Data;
+ public byte[] GetData() => Data;
private bool Validate()
{
@@ -47,13 +47,13 @@ private bool Validate()
private bool IsValidMap()
{
- if (MapParent == TeraRaidMapParent.Paldea)
- return Area <= 22;
- if (MapParent == TeraRaidMapParent.Kitakami)
- return Area <= 11;
- if (MapParent == TeraRaidMapParent.Blueberry)
- return Area <= 8;
- return false;
+ return MapParent switch
+ {
+ TeraRaidMapParent.Paldea => Area <= 22,
+ TeraRaidMapParent.Kitakami => Area <= 11,
+ TeraRaidMapParent.Blueberry => Area <= 8,
+ _ => false
+ };
}
private static int GetTeraType(uint Seed)
@@ -68,7 +68,7 @@ private static uint[] GenerateGenericRaidData(uint Seed)
uint EC = (uint)rng.NextInt();
uint TIDSID = (uint)rng.NextInt();
uint PID = (uint)rng.NextInt();
- bool IsShiny = (((PID >> 16) ^ (PID & 0xFFFF)) >> 4) == ((TIDSID >> 16) ^ (TIDSID & 0xFFFF)) >> 4;
+ bool IsShiny = ((PID >> 16) ^ (PID & 0xFFFF)) >> 4 == ((TIDSID >> 16) ^ (TIDSID & 0xFFFF)) >> 4;
var Shiny = IsShiny ? 1u : 0;
return [EC, TIDSID, PID, Shiny];
}
@@ -78,4 +78,15 @@ private static uint GetDifficulty(uint Seed)
var rng = new Xoroshiro128Plus(Seed);
return (uint)rng.NextInt(100);
}
+
+ public void GenerateDataPK9(PK9 pk, GenerateParam9 param, Shiny isShiny, uint seed)
+ {
+ var criteria = new EncounterCriteria { Shiny = isShiny };
+ bool check = Encounter9RNG.GenerateData(pk, param, criteria, seed);
+ if (!check)
+ {
+ criteria = new EncounterCriteria { Shiny = pk.IsShiny ? Shiny.Always : Shiny.Random };
+ Encounter9RNG.GenerateData(pk, param, criteria, seed);
+ }
+ }
}
diff --git a/RaidCrawler.Core/Structures/RaidContainer.cs b/RaidCrawler.Core/Structures/RaidContainer.cs
index f6ab948..ed5fd10 100644
--- a/RaidCrawler.Core/Structures/RaidContainer.cs
+++ b/RaidCrawler.Core/Structures/RaidContainer.cs
@@ -58,7 +58,7 @@ public record RaidContainer
public RaidContainer(string game)
{
Game = game;
- Strings = GameInfo.GetStrings(1);
+ Strings = GameInfo.GetStrings("en");
GemTeraRaidsBase = TeraEncounter.GetAllEncounters(RaidDataBase, TeraRaidMapParent.Paldea);
GemTeraRaidsKitakami = TeraEncounter.GetAllEncounters(RaidDataKitakami, TeraRaidMapParent.Kitakami);
GemTeraRaidsBlueberry = TeraEncounter.GetAllEncounters(RaidDataBlueberry, TeraRaidMapParent.Blueberry);
diff --git a/RaidCrawler.Core/Structures/RaidFilter.cs b/RaidCrawler.Core/Structures/RaidFilter.cs
index ce25405..6d5da40 100644
--- a/RaidCrawler.Core/Structures/RaidFilter.cs
+++ b/RaidCrawler.Core/Structures/RaidFilter.cs
@@ -1,4 +1,5 @@
using PKHeX.Core;
+using System.Diagnostics.Metrics;
namespace RaidCrawler.Core.Structures;
@@ -132,7 +133,9 @@ public bool IsIVsSatisfied(PK9 blank)
if (IVBin == 0)
return true;
- var ivs = Utils.ToSpeedLast(blank.IVs);
+ Span _ivs = stackalloc int[6];
+ blank.GetIVs(_ivs);
+ var ivs = Utils.ToSpeedLast(_ivs);
for (int i = 0; i < 6; i++)
{
var iv = IVVals >> i * 5 & 31;
@@ -186,7 +189,8 @@ int SandwichBoost
{
var param = enc.GetParam();
var blank = new PK9 { Species = enc.Species, Form = enc.Form };
- Encounter9RNG.GenerateData(blank, param, EncounterCriteria.Unrestricted, raid.Seed);
+
+ raid.GenerateDataPK9(blank, param, enc.Shiny, raid.Seed);
return Enabled
&& IsIVsSatisfied(blank)
@@ -195,7 +199,7 @@ int SandwichBoost
&& IsRareECSatisfied(blank)
&& IsSpeciesSatisfied(blank.Species)
&& IsFormSatisfied(blank.Form)
- && IsNatureSatisfied(blank.Nature)
+ && IsNatureSatisfied((int)blank.Nature)
&& IsStarsSatisfied(enc)
&& IsTeraTypeSatisfied(raid, enc)
&& IsRewardsSatisfied(container, enc, raid, SandwichBoost)
diff --git a/RaidCrawler.Core/Structures/Utils.cs b/RaidCrawler.Core/Structures/Utils.cs
index 2c4285d..f92a08f 100644
--- a/RaidCrawler.Core/Structures/Utils.cs
+++ b/RaidCrawler.Core/Structures/Utils.cs
@@ -1,4 +1,5 @@
using PKHeX.Core;
+using System.Numerics;
using System.Reflection;
namespace RaidCrawler.Core.Structures;
@@ -64,6 +65,30 @@ public static byte[] GetBinaryResource(string name)
return reader.ReadToEnd();
}
+ public static Version? GetLatestVersion()
+ {
+ const string endpoint = "https://api.github.com/repos/LegoFigure11/RaidCrawler/releases/latest";
+ var response = NetUtil.GetStringFromURL(new Uri(endpoint));
+ if (response is null) return null;
+
+ const string tag = "tag_name";
+ var index = response.IndexOf(tag, StringComparison.Ordinal);
+ if (index == -1) return null;
+
+ var first = response.IndexOf('"', index + tag.Length + 1) + 1;
+ if (first == 0) return null;
+
+ var second = response.IndexOf('"', first);
+ if (second == -1) return null;
+
+ var tagString = response.AsSpan()[first..second].TrimStart('v');
+
+ var patchIndex = tagString.IndexOf('-');
+ if (patchIndex != -1) tagString = tagString.ToString().Remove(patchIndex).AsSpan();
+
+ return !Version.TryParse(tagString, out var latestVersion) ? null : latestVersion;
+ }
+
public static string GetFormString(ushort species, byte form, GameStrings formStrings, EntityContext context = EntityContext.Gen9)
{
var result = ShowdownParsing.GetStringFromForm(form, formStrings, species, context);
diff --git a/RaidCrawler.Tests/RaidCrawler.Tests.csproj b/RaidCrawler.Tests/RaidCrawler.Tests.csproj
index b000dd3..a32dee2 100644
--- a/RaidCrawler.Tests/RaidCrawler.Tests.csproj
+++ b/RaidCrawler.Tests/RaidCrawler.Tests.csproj
@@ -94,6 +94,7 @@
+
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/RaidCrawler.Tests/RaidStatTests.cs b/RaidCrawler.Tests/RaidStatTests.cs
index df2112d..d85a10e 100644
--- a/RaidCrawler.Tests/RaidStatTests.cs
+++ b/RaidCrawler.Tests/RaidStatTests.cs
@@ -2,6 +2,7 @@
using PKHeX.Core;
using RaidCrawler.Core.Structures;
using System.ComponentModel;
+using System.Diagnostics.Metrics;
using Xunit;
namespace RaidCrawler.Tests;
@@ -33,10 +34,13 @@ public void StatsCorrect(string path, int storyPrg, int denIndex, Species specie
var param = enc.GetParam();
var blank = new PK9 { Species = enc.Species, Form = enc.Form };
- Encounter9RNG.GenerateData(blank, param, EncounterCriteria.Unrestricted, raid.Seed);
- var encIVs = Utils.ToSpeedLast(blank.IVs);
+ raid.GenerateDataPK9(blank, param, enc.Shiny, raid.Seed);
+
+ Span _ivs = stackalloc int[6];
+ blank.GetIVs(_ivs);
+ var encIVs = Utils.ToSpeedLast(_ivs);
encIVs.SequenceEqual(ivs).Should().BeTrue();
- blank.Nature.Should().Be((int)nature);
+ blank.Nature.Should().Be(nature);
blank.IsShiny.Should().Be(shiny);
}
}
diff --git a/RaidCrawler.WinForms/MainWindow.cs b/RaidCrawler.WinForms/MainWindow.cs
index c655a2a..c5e7db3 100644
--- a/RaidCrawler.WinForms/MainWindow.cs
+++ b/RaidCrawler.WinForms/MainWindow.cs
@@ -62,6 +62,8 @@ public partial class MainWindow : Form
private bool StopAdvances =>
!Config.EnableFilters || RaidFilters.Count == 0 || RaidFilters.All(x => !x.Enabled);
+ private readonly Version CurrentVersion = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version!;
+
public MainWindow()
{
Config = new ClientConfig();
@@ -71,7 +73,7 @@ public MainWindow()
#else
var build = "";
#endif
- var v = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version!;
+ var v = CurrentVersion;
var filterPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "filters.json");
if (File.Exists(filterPath))
RaidFilters = JsonSerializer.Deserialize>(File.ReadAllText(filterPath)) ?? [];
@@ -195,6 +197,7 @@ private void MainWindow_Load(object sender, EventArgs e)
DefaultColor = IVs.BackColor;
RaidBoost.SelectedIndex = 0;
ToggleStreamerView();
+ CheckForUpdates();
}
private void InputSwitchIP_Changed(object sender, EventArgs e)
@@ -933,9 +936,10 @@ private void DisplayRaid()
var param = encounter.GetParam();
var blank = new PK9 { Species = encounter.Species, Form = encounter.Form };
- Encounter9RNG.GenerateData(blank, param, EncounterCriteria.Unrestricted, raid.Seed);
+ raid.GenerateDataPK9(blank, param, encounter.Shiny, raid.Seed);
+
var img = blank.Sprite();
- img = ApplyTeraColor((byte)teraType, img, SpriteBackgroundType.BottomStripe);
+ img = (Bitmap)ApplyTeraColor((byte)teraType, img, SpriteBackgroundType.BottomStripe);
var form = ShowdownParsing.GetStringFromForm(
encounter.Form,
@@ -952,7 +956,7 @@ private void DisplayRaid()
Gender.Text = $"{(Gender)blank.Gender}";
var nature = blank.Nature;
- Nature.Text = $"{RaidContainer.Strings.Natures[nature]}";
+ Nature.Text = $"{RaidContainer.Strings.Natures[(int)nature]}";
Ability.Text = $"{RaidContainer.Strings.Ability[blank.Ability]}";
var extraMoves = new ushort[] { 0, 0, 0, 0 };
@@ -975,8 +979,10 @@ private void DisplayRaid()
? RaidContainer.Strings.Move[extraMoves[3]]
: RaidContainer.Strings.Move[encounter.Move4];
- IVs.Text = IVsString(Utils.ToSpeedLast(blank.IVs));
- toolTip.SetToolTip(IVs, IVsString(Utils.ToSpeedLast(blank.IVs), true));
+ Span _ivs = stackalloc int[6];
+ blank.GetIVs(_ivs);
+ IVs.Text = IVsString(Utils.ToSpeedLast(_ivs));
+ toolTip.SetToolTip(IVs, IVsString(Utils.ToSpeedLast(_ivs), true));
PID.BackColor = raid.CheckIsShiny(encounter) ? Color.Gold : DefaultColor;
IVs.BackColor = IVs.Text is "31/31/31/31/31/31" ? Color.YellowGreen : DefaultColor;
@@ -1086,7 +1092,8 @@ await this
var param = encounter.GetParam();
var blank = new PK9 { Species = encounter.Species, Form = encounter.Form };
- Encounter9RNG.GenerateData(blank, param, EncounterCriteria.Unrestricted, raid.Seed);
+ raid.GenerateDataPK9(blank, param, encounter.Shiny, raid.Seed);
+
var img = blank.Sprite();
teraRaidView.picBoxPokemon.Image = img;
@@ -1097,7 +1104,7 @@ await this
teraRaidView.Gender.Text = $"{(Gender)blank.Gender}";
var nature = blank.Nature;
- teraRaidView.Nature.Text = $"{RaidContainer.Strings.Natures[nature]}";
+ teraRaidView.Nature.Text = $"{RaidContainer.Strings.Natures[(int)nature]}";
teraRaidView.Ability.Text = $"{RaidContainer.Strings.Ability[blank.Ability]}";
teraRaidView.Move1.Text =
@@ -1123,7 +1130,9 @@ await this
teraRaidView.Move8.Text =
extraMoves[3] > 0 ? RaidContainer.Strings.Move[extraMoves[3]] : "---";
- var ivs = Utils.ToSpeedLast(blank.IVs);
+ Span _ivs = stackalloc int[6];
+ blank.GetIVs(_ivs);
+ var ivs = Utils.ToSpeedLast(_ivs);
// HP
teraRaidView.HP.Text = $"{ivs[0]:D2}";
@@ -1818,4 +1827,36 @@ private void B_DateTools_Click(object sender, EventArgs e)
}
});
}
+
+
+ private void CheckForUpdates()
+ {
+ Task.Run(async () =>
+ {
+ Version? latestVersion;
+ try { latestVersion = Utils.GetLatestVersion(); }
+ catch (Exception ex)
+ {
+ Debug.WriteLine($"Exception while checking for latest version: {ex}");
+ return;
+ }
+
+ if (latestVersion is null || latestVersion <= CurrentVersion)
+ return;
+
+ while (!IsHandleCreated) // Wait for form to be ready
+ await Task.Delay(2_000).ConfigureAwait(false);
+ await InvokeAsync(() => NotifyNewVersionAvailable(latestVersion));
+ });
+ }
+
+ private void NotifyNewVersionAvailable(Version version)
+ {
+ Text += $" - Update v{version.Major}.{version.Minor}.{version.Build} available!";
+ UpdateStatus($"Update v{version.Major}.{version.Minor}.{version.Build} available!");
+#if !DEBUG
+ MessageBox.Show($"Update available! v{version.Major}.{version.Minor}.{version.Build}");
+ Process.Start(new ProcessStartInfo("https://github.com/LegoFigure11/RaidCrawler/releases/") { UseShellExecute = true });
+#endif
+ }
}
diff --git a/RaidCrawler.WinForms/RaidCrawler.WinForms.csproj b/RaidCrawler.WinForms/RaidCrawler.WinForms.csproj
index 2957d3d..6aeccaf 100644
--- a/RaidCrawler.WinForms/RaidCrawler.WinForms.csproj
+++ b/RaidCrawler.WinForms/RaidCrawler.WinForms.csproj
@@ -2,8 +2,8 @@
WinExe
- net8.0-windows
- 12
+ net9.0-windows
+ 13
enable
true
enable
@@ -177,6 +177,7 @@
all
runtime; build; native; contentfiles; analyzers; buildtransitive
+
diff --git a/RaidCrawler.WinForms/SubForms/EmojiConfig.cs b/RaidCrawler.WinForms/SubForms/EmojiConfig.cs
index fb8c1be..ede8702 100644
--- a/RaidCrawler.WinForms/SubForms/EmojiConfig.cs
+++ b/RaidCrawler.WinForms/SubForms/EmojiConfig.cs
@@ -26,7 +26,7 @@ private static DataTable EmojiLoad(Dictionary emoji)
private void EmojiGrid_Changed(object sender, EventArgs e)
{
var dict = new Dictionary();
- var dt = (DataTable)EmojiGrid.DataSource;
+ var dt = (DataTable)EmojiGrid.DataSource!;
dt.AsEnumerable().ToList().ForEach(row => dict.Add((string)row[0], (string)row[1]));
c.Emoji = dict;
}
diff --git a/RaidCrawler.WinForms/SubForms/FilterSettings.cs b/RaidCrawler.WinForms/SubForms/FilterSettings.cs
index 61932fd..6965c75 100644
--- a/RaidCrawler.WinForms/SubForms/FilterSettings.cs
+++ b/RaidCrawler.WinForms/SubForms/FilterSettings.cs
@@ -13,13 +13,11 @@ public FilterSettings(ref List filters)
{
InitializeComponent();
this.filters = filters;
- Species.DataSource = Enum.GetValues(typeof(Species))
- .Cast()
+ Species.DataSource = Enum.GetValues()
.Where(z => z != PKHeX.Core.Species.MAX_COUNT)
.ToArray();
- Nature.DataSource = Enum.GetValues(typeof(Nature));
- TeraType.DataSource = Enum.GetValues(typeof(MoveType))
- .Cast()
+ Nature.DataSource = Enum.GetValues();
+ TeraType.DataSource = Enum.GetValues()
.Where(z => z != MoveType.Any)
.ToArray();
diff --git a/RaidCrawler.WinForms/SubForms/ItemIDs.cs b/RaidCrawler.WinForms/SubForms/ItemIDs.cs
index 866be51..7bc59b3 100644
--- a/RaidCrawler.WinForms/SubForms/ItemIDs.cs
+++ b/RaidCrawler.WinForms/SubForms/ItemIDs.cs
@@ -1,4 +1,4 @@
-namespace RaidCrawler.WinForms.SubForms;
+namespace RaidCrawler.WinForms.SubForms;
public partial class ItemIDs : Form
{
@@ -8,22 +8,33 @@ public ItemIDs(List IDs)
foreach (int ID in IDs)
{
- if (ID == 645)
- CheckAbilityCapsule.Checked = true;
- else if (ID == 795)
- CheckBottleCap.Checked = true;
- else if (ID == 1606)
- CheckAbilityPatch.Checked = true;
- else if (ID == 1904)
- CheckSweet.Checked = true;
- else if (ID == 1905)
- CheckSalty.Checked = true;
- else if (ID == 1906)
- CheckSour.Checked = true;
- else if (ID == 1907)
- CheckBitter.Checked = true;
- else if (ID == 1908)
- CheckSpicy.Checked = true;
+ switch (ID)
+ {
+ case 645:
+ CheckAbilityCapsule.Checked = true;
+ break;
+ case 795:
+ CheckBottleCap.Checked = true;
+ break;
+ case 1606:
+ CheckAbilityPatch.Checked = true;
+ break;
+ case 1904:
+ CheckSweet.Checked = true;
+ break;
+ case 1905:
+ CheckSalty.Checked = true;
+ break;
+ case 1906:
+ CheckSour.Checked = true;
+ break;
+ case 1907:
+ CheckBitter.Checked = true;
+ break;
+ case 1908:
+ CheckSpicy.Checked = true;
+ break;
+ }
}
PicCapsule.Image = (Image?)
PKHeX.Drawing.PokeSprite.Properties.Resources.ResourceManager.GetObject(
@@ -38,4 +49,4 @@ public ItemIDs(List IDs)
"aitem_1606"
);
}
-}
\ No newline at end of file
+}
diff --git a/RaidCrawler.WinForms/deps/PKHeX.Drawing.Misc.dll b/RaidCrawler.WinForms/deps/PKHeX.Drawing.Misc.dll
index f8a1f69..1eb2e71 100644
Binary files a/RaidCrawler.WinForms/deps/PKHeX.Drawing.Misc.dll and b/RaidCrawler.WinForms/deps/PKHeX.Drawing.Misc.dll differ
diff --git a/RaidCrawler.WinForms/deps/PKHeX.Drawing.PokeSprite.dll b/RaidCrawler.WinForms/deps/PKHeX.Drawing.PokeSprite.dll
index e4e526b..fc8517d 100644
Binary files a/RaidCrawler.WinForms/deps/PKHeX.Drawing.PokeSprite.dll and b/RaidCrawler.WinForms/deps/PKHeX.Drawing.PokeSprite.dll differ
diff --git a/RaidCrawler.WinForms/deps/PKHeX.Drawing.dll b/RaidCrawler.WinForms/deps/PKHeX.Drawing.dll
index a51e6b9..5de1eb2 100644
Binary files a/RaidCrawler.WinForms/deps/PKHeX.Drawing.dll and b/RaidCrawler.WinForms/deps/PKHeX.Drawing.dll differ