Skip to content

Commit c571949

Browse files
committed
Fix spectral pack black hole and soul false positives
1 parent 4aa0a59 commit c571949

File tree

3 files changed

+50
-25
lines changed

3 files changed

+50
-25
lines changed

Motely/MotelySingleSearchContext.Spectral.cs

Lines changed: 28 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -110,39 +110,56 @@ public MotelyItem GetNextSpectral(ref MotelySingleSpectralStream spectralStream)
110110
}
111111
}
112112

113-
return (MotelyItemType)MotelyItemTypeCategory.SpectralCard |
113+
MotelyItemType spectral = (MotelyItemType)MotelyItemTypeCategory.SpectralCard |
114114
(MotelyItemType)GetNextRandomInt(ref spectralStream.ResampleStream.InitialPrngStream, 0, MotelyEnum<MotelySpectralCard>.ValueCount);
115+
116+
int resampleCount = 0;
117+
118+
while (true)
119+
{
120+
if (spectral != MotelyItemType.Soul && spectral != MotelyItemType.BlackHole)
121+
{
122+
return spectral;
123+
}
124+
125+
spectral = (MotelyItemType)MotelyItemTypeCategory.SpectralCard | (MotelyItemType)GetNextRandomInt(
126+
ref GetResamplePrngStream(ref spectralStream.ResampleStream, spectralStream.ResampleKey, resampleCount),
127+
0, MotelyEnum<MotelySpectralCard>.ValueCount
128+
);
129+
130+
++resampleCount;
131+
}
115132
}
116133

117-
public MotelyItem GetNextSpectral(ref MotelySingleSpectralStream SpectralStream, in MotelySingleItemSet itemSet)
134+
public MotelyItem GetNextSpectral(ref MotelySingleSpectralStream spectralStream, in MotelySingleItemSet itemSet)
118135
{
119-
if (SpectralStream.IsSoulBlackHoleable)
136+
if (spectralStream.IsSoulBlackHoleable)
120137
{
121-
if (!itemSet.Contains(MotelyItemType.Soul) && GetNextRandom(ref SpectralStream.SoulBlackHolePrngStream) > 0.997)
138+
if (!itemSet.Contains(MotelyItemType.Soul) && GetNextRandom(ref spectralStream.SoulBlackHolePrngStream) > 0.997)
122139
{
123140
return MotelyItemType.Soul;
124141
}
125142

126-
if (!itemSet.Contains(MotelyItemType.BlackHole) && GetNextRandom(ref SpectralStream.SoulBlackHolePrngStream) > 0.997)
143+
if (!itemSet.Contains(MotelyItemType.BlackHole) && GetNextRandom(ref spectralStream.SoulBlackHolePrngStream) > 0.997)
127144
{
128145
return MotelyItemType.BlackHole;
129146
}
130147
}
131148

132-
MotelyItemType Spectral = (MotelyItemType)MotelyItemTypeCategory.SpectralCard |
133-
(MotelyItemType)GetNextRandomInt(ref SpectralStream.ResampleStream.InitialPrngStream, 0, MotelyEnum<MotelySpectralCard>.ValueCount);
149+
MotelyItemType spectral = (MotelyItemType)MotelyItemTypeCategory.SpectralCard |
150+
(MotelyItemType)GetNextRandomInt(ref spectralStream.ResampleStream.InitialPrngStream, 0, MotelyEnum<MotelySpectralCard>.ValueCount);
134151

135152
int resampleCount = 0;
136153

137154
while (true)
138155
{
139-
if (!itemSet.Contains(Spectral))
156+
if (!itemSet.Contains(spectral) && spectral != MotelyItemType.Soul && spectral != MotelyItemType.BlackHole)
140157
{
141-
return Spectral;
158+
return spectral;
142159
}
143160

144-
Spectral = (MotelyItemType)MotelyItemTypeCategory.SpectralCard | (MotelyItemType)GetNextRandomInt(
145-
ref GetResamplePrngStream(ref SpectralStream.ResampleStream, SpectralStream.ResampleKey, resampleCount),
161+
spectral = (MotelyItemType)MotelyItemTypeCategory.SpectralCard | (MotelyItemType)GetNextRandomInt(
162+
ref GetResamplePrngStream(ref spectralStream.ResampleStream, spectralStream.ResampleKey, resampleCount),
146163
0, MotelyEnum<MotelySpectralCard>.ValueCount
147164
);
148165

Motely/Program.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
// .WithProviderSearch(new MotelyRandomSeedProvider(2000000000))
1717
// .WithAdditionalFilter(new LuckyCardFilterDesc())
1818
// .WithAdditionalFilter(new PerkeoObservatoryFilterDesc())
19-
.WithListSearch(["TACO", "DIVA", "7729", "AAAA", "BBBB", "CCCC", "DDDD", "EEEE"])
20-
// .WithListSearch(["EEEE"])
19+
// .WithListSearch(["TACO", "DIVA", "7729", "AAAA", "BBBB", "CCCC", "DDDD", "EEEE"])
20+
.WithListSearch(["ALEEB"])
2121
// .WithListSearch(["TIQR1111"])
2222
// .WithStake(MotelyStake.Black)
2323
.Start();

Motely/filters/TestFilterDesc.cs

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -29,25 +29,33 @@ public struct TestFilter() : IMotelySeedFilter
2929
public VectorMask Filter(ref MotelyVectorSearchContext searchContext)
3030
{
3131

32-
MotelyVectorJokerStream jokerStream = searchContext.CreateShopJokerStream(1);
32+
// MotelyVectorJokerStream jokerStream = searchContext.CreateShopJokerStream(1);
3333

34-
for (int i = 0; i < 10; i++)
35-
Console.WriteLine(searchContext.GetNextJoker(ref jokerStream));
34+
// for (int i = 0; i < 10; i++)
35+
// Console.WriteLine(searchContext.GetNextJoker(ref jokerStream));
3636

37-
return VectorMask.NoBitsSet;
37+
// return VectorMask.NoBitsSet;
3838

3939

40-
// return searchContext.SearchIndividualSeeds((ref MotelySingleSearchContext searchContext) =>
41-
// {
42-
// Console.WriteLine($"\n{searchContext.GetSeed()}\n");
40+
return searchContext.SearchIndividualSeeds((ref MotelySingleSearchContext searchContext) =>
41+
{
42+
Console.WriteLine($"\n{searchContext.GetSeed()}\n");
4343

44-
// MotelySingleJokerStream jokerStream = searchContext.CreateShopJokerStream(1);
44+
MotelySingleSpectralStream stream = searchContext.CreateSpectralPackSpectralStream(6);
45+
Console.WriteLine(searchContext.GetNextSpectral(ref stream));
4546

46-
// for (int i = 0; i < 10; i++)
47-
// Console.WriteLine(searchContext.GetNextJoker(ref jokerStream));
47+
// MotelySinglePrngStream blackHoleStream = searchContext.CreatePrngStream(MotelyPrngKeys.SpectralSoulBlackHole + MotelyPrngKeys.Spectral + 6);
4848

49-
// return false;
50-
// });
49+
// Console.WriteLine(searchContext.GetNextRandom(ref blackHoleStream));
50+
// Console.WriteLine(searchContext.GetNextRandom(ref blackHoleStream));
51+
52+
// MotelySingleJokerStream jokerStream = searchContext.CreateShopJokerStream(1);
53+
54+
// for (int i = 0; i < 10; i++)
55+
// Console.WriteLine(searchContext.GetNextJoker(ref jokerStream));
56+
57+
return false;
58+
});
5159
}
5260
}
5361
}

0 commit comments

Comments
 (0)