mirror of
https://github.com/thebreaddev/Supercell.GUT.git
synced 2024-11-13 00:54:37 +00:00
38 lines
786 B
C#
38 lines
786 B
C#
|
namespace Supercell.GUT.Titan.Math;
|
|||
|
|
|||
|
public class LogicRandom
|
|||
|
{
|
|||
|
public int IteratedRandomSeed { get; set; }
|
|||
|
|
|||
|
public LogicRandom()
|
|||
|
{
|
|||
|
this.IteratedRandomSeed = 0;
|
|||
|
}
|
|||
|
|
|||
|
public void Destruct()
|
|||
|
{
|
|||
|
this.IteratedRandomSeed = 0;
|
|||
|
}
|
|||
|
|
|||
|
public int Rand(int max)
|
|||
|
{
|
|||
|
if (max >= 1)
|
|||
|
{
|
|||
|
int v3 = this.IteratedRandomSeed;
|
|||
|
if (this.IteratedRandomSeed == 0)
|
|||
|
v3 = -1;
|
|||
|
int v4 = v3 ^ (v3 << 13) ^ ((v3 ^ (v3 << 13)) >> 0x11);
|
|||
|
int v5 = v4 ^ (32 * v4);
|
|||
|
this.IteratedRandomSeed = v5;
|
|||
|
int temp;
|
|||
|
if (v5 > -1)
|
|||
|
temp = v5;
|
|||
|
else
|
|||
|
temp = -v5;
|
|||
|
return temp % max;
|
|||
|
}
|
|||
|
|
|||
|
return 0;
|
|||
|
}
|
|||
|
}
|