From e9ea621b93fbb58d9edfca8375918791637bbd52 Mon Sep 17 00:00:00 2001 From: chai Date: Wed, 30 Dec 2020 20:59:04 +0800 Subject: +init --- Client/Assembly-CSharp/HashRandom.cs | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 Client/Assembly-CSharp/HashRandom.cs (limited to 'Client/Assembly-CSharp/HashRandom.cs') diff --git a/Client/Assembly-CSharp/HashRandom.cs b/Client/Assembly-CSharp/HashRandom.cs new file mode 100644 index 0000000..7d226b1 --- /dev/null +++ b/Client/Assembly-CSharp/HashRandom.cs @@ -0,0 +1,36 @@ +using System; + +public static class HashRandom +{ + private static XXHash src = new XXHash((int)DateTime.UtcNow.Ticks); + + private static int cnt = 0; + + public static uint Next() + { + return HashRandom.src.GetHash(HashRandom.cnt++); + } + + public static int FastNext(int maxInt) + { + return (int)((ulong)HashRandom.Next() % (ulong)((long)maxInt)); + } + + public static int Next(int maxInt) + { + uint num = (uint)(-1 / maxInt); + uint num2 = num * (uint)maxInt; + uint num3; + do + { + num3 = HashRandom.Next(); + } + while (num3 > num2); + return (int)(num3 / num); + } + + public static int Next(int minInt, int maxInt) + { + return HashRandom.Next(maxInt - minInt) + minInt; + } +} -- cgit v1.1-26-g67d0