Skip to content

Commit 2b8f26d

Browse files
committed
Fix Encounter9RNG.GenerateData returning early for shiny raids
The previous commit broke IVs, Ability, and Scale display by using Encounter9RNG.GenerateData with Shiny.Random, which returns early without setting stats when the generated shiny state doesn't match the criteria. Fixed by overriding the shiny parameter based on raid.IsShiny to bypass the early-return check. This ensures all stats are correctly generated for both shiny and non-shiny raids.
1 parent 5de9276 commit 2b8f26d

2 files changed

Lines changed: 12 additions & 8 deletions

File tree

SysBot.Pokemon/Helpers/SVRaidBot.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
{
33
public static class SVRaidBot
44
{
5-
public const string Version = "v8.7.8";
5+
public const string Version = "v8.7.9";
66
public const string Repo = "https://github.com/hexbyt3/SVRaidBot";
77
public const string ConfigPath = "config.json";
88
}

SysBot.Pokemon/SV/BotRaid/RotatingRaidBotSV.cs

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4889,6 +4889,11 @@ private async Task ProcessAllRaids(CancellationToken token)
48894889

48904890
private static (PK9, uint) IsSeedReturned(ITeraRaid encounter, Raid raid)
48914891
{
4892+
var shiny = raid.IsShiny ? Shiny.Always : Shiny.Never;
4893+
var gender = PersonalTable.SV.GetFormEntry(encounter.Species, encounter.Form).Gender;
4894+
var param = new GenerateParam9(encounter.Species, gender, encounter.FlawlessIVCount, 1, 0, 0,
4895+
SizeType9.RANDOM, 0, encounter.Ability, shiny);
4896+
48924897
var pk = new PK9
48934898
{
48944899
Species = encounter.Species,
@@ -4898,12 +4903,7 @@ private static (PK9, uint) IsSeedReturned(ITeraRaid encounter, Raid raid)
48984903
Move3 = encounter.Move3,
48994904
Move4 = encounter.Move4,
49004905
};
4901-
4902-
if (raid.IsShiny) pk.SetIsShiny(true);
4903-
4904-
var param = encounter.GetParam();
49054906
Encounter9RNG.GenerateData(pk, param, EncounterCriteria.Unrestricted, raid.Seed);
4906-
49074907
return (pk, raid.Seed);
49084908
}
49094909

@@ -5001,7 +5001,12 @@ public static (PK9, Embed) RaidInfoCommand(string seedValue, int contentType, Te
50015001
var teraType = raid.GetTeraType(encounter);
50025002
var level = encounter.Level;
50035003

5004-
// Generate PK9 using PKHeX's Encounter9RNG (same pattern as IsSeedReturned)
5004+
// Create GenerateParam9 with explicit shiny state to bypass early-return check in GenerateData
5005+
var shiny = raid.IsShiny ? Shiny.Always : Shiny.Never;
5006+
var gender = PersonalTable.SV.GetFormEntry(encounter.Species, encounter.Form).Gender;
5007+
var param = new GenerateParam9(encounter.Species, gender, encounter.FlawlessIVCount, 1, 0, 0,
5008+
SizeType9.RANDOM, 0, encounter.Ability, shiny);
5009+
50055010
var pk = new PK9
50065011
{
50075012
Species = encounter.Species,
@@ -5013,7 +5018,6 @@ public static (PK9, Embed) RaidInfoCommand(string seedValue, int contentType, Te
50135018
TeraTypeOriginal = (MoveType)teraType,
50145019
CurrentLevel = (byte)level
50155020
};
5016-
var param = encounter.GetParam();
50175021
Encounter9RNG.GenerateData(pk, param, EncounterCriteria.Unrestricted, raid.Seed);
50185022

50195023
// Get strings in the selected language

0 commit comments

Comments
 (0)