MISC: Updated createRandomIP to use the full 32 bit space (#2113)

This commit is contained in:
whiskeyfur
2025-05-14 01:17:52 -07:00
committed by GitHub
parent 48f6de9cf5
commit 5e2d038e05
2 changed files with 41 additions and 30 deletions

View File

@@ -1,10 +1,21 @@
import type { IPAddress } from "../Types/strings";
import { getRandomByte } from "./helpers/getRandomByte";
/**
* Generate a random IP address
* Does not check to see if the IP already exists in the game
*/
export const createRandomIp = (): IPAddress => {
return `${getRandomByte(99)}.${getRandomByte(9)}.${getRandomByte(9)}.${getRandomByte(9)}` as IPAddress;
// Credit goes to yichizhng on BitBurner discord
// Generates a number like 0.c8f0a07f1d47e8
const ip = Math.random().toString(16);
// uses regex to match every 2 characters. [0.][c8][f0][a0][7f][1d][47][e8]
// we only want #1 through #4
const matchResult = ip.match(/../g);
if (!matchResult) {
// This case should never happen.
throw new Error(`Unexpected regex matching bug in createRandomIp. ip: ${ip}`);
}
const sliced = matchResult.slice(1, 5);
//convert each to a decimal number and join them together to make a human readable IP address.
return sliced.map((x) => parseInt(x, 16)).join(".") as IPAddress;
};

View File

@@ -88,60 +88,60 @@ exports[`Check Save File Continuity PlayerSave continuity 1`] = `
"ctor": "City",
"data": {
"chaos": 0,
"comms": 42,
"comms": 30,
"name": "Aevum",
"pop": 1101351351,
"popEst": 803688823.7027026,
"pop": 1060810810,
"popEst": 688093498.3783784,
},
},
"Chongqing": {
"ctor": "City",
"data": {
"chaos": 0,
"comms": 54,
"comms": 42,
"name": "Chongqing",
"pop": 1141891892,
"popEst": 925858290.8108107,
"pop": 1101351351,
"popEst": 803688823.7027026,
},
},
"Ishima": {
"ctor": "City",
"data": {
"chaos": 0,
"comms": 89,
"comms": 78,
"name": "Ishima",
"pop": 1263513514,
"popEst": 1331811541.7837837,
"pop": 1222972973,
"popEst": 1189919649.4054055,
},
},
"New Tokyo": {
"ctor": "City",
"data": {
"chaos": 0,
"comms": 78,
"comms": 66,
"name": "New Tokyo",
"pop": 1222972973,
"popEst": 1189919649.4054055,
"pop": 1182432432,
"popEst": 1054601898.8108108,
},
},
"Sector-12": {
"ctor": "City",
"data": {
"chaos": 0,
"comms": 66,
"comms": 54,
"name": "Sector-12",
"pop": 1182432432,
"popEst": 1054601898.8108108,
"pop": 1141891892,
"popEst": 925858290.8108107,
},
},
"Volhaven": {
"ctor": "City",
"data": {
"chaos": 0,
"comms": 101,
"comms": 89,
"name": "Volhaven",
"pop": 1304054054,
"popEst": 1480277574.8108108,
"pop": 1263513514,
"popEst": 1331811541.7837837,
},
},
},
@@ -156,7 +156,7 @@ exports[`Check Save File Continuity PlayerSave continuity 1`] = `
"ctor": "Contract",
"data": {
"autoLevel": true,
"count": 117,
"count": 105,
"failures": 0,
"level": 1,
"maxLevel": 1,
@@ -167,7 +167,7 @@ exports[`Check Save File Continuity PlayerSave continuity 1`] = `
"ctor": "Contract",
"data": {
"autoLevel": true,
"count": 125,
"count": 113,
"failures": 0,
"level": 1,
"maxLevel": 1,
@@ -178,7 +178,7 @@ exports[`Check Save File Continuity PlayerSave continuity 1`] = `
"ctor": "Contract",
"data": {
"autoLevel": true,
"count": 115,
"count": 105,
"failures": 0,
"level": 1,
"maxLevel": 1,
@@ -203,7 +203,7 @@ exports[`Check Save File Continuity PlayerSave continuity 1`] = `
"ctor": "Operation",
"data": {
"autoLevel": true,
"count": 23,
"count": 11,
"failures": 0,
"level": 1,
"maxLevel": 1,
@@ -215,7 +215,7 @@ exports[`Check Save File Continuity PlayerSave continuity 1`] = `
"ctor": "Operation",
"data": {
"autoLevel": true,
"count": 88,
"count": 80,
"failures": 0,
"level": 1,
"maxLevel": 1,
@@ -227,7 +227,7 @@ exports[`Check Save File Continuity PlayerSave continuity 1`] = `
"ctor": "Operation",
"data": {
"autoLevel": true,
"count": 7,
"count": 144,
"failures": 0,
"level": 1,
"maxLevel": 1,
@@ -239,7 +239,7 @@ exports[`Check Save File Continuity PlayerSave continuity 1`] = `
"ctor": "Operation",
"data": {
"autoLevel": true,
"count": 15,
"count": 3,
"failures": 0,
"level": 1,
"maxLevel": 1,
@@ -251,7 +251,7 @@ exports[`Check Save File Continuity PlayerSave continuity 1`] = `
"ctor": "Operation",
"data": {
"autoLevel": true,
"count": 148,
"count": 136,
"failures": 0,
"level": 1,
"maxLevel": 1,
@@ -263,7 +263,7 @@ exports[`Check Save File Continuity PlayerSave continuity 1`] = `
"ctor": "Operation",
"data": {
"autoLevel": true,
"count": 94,
"count": 86,
"failures": 0,
"level": 1,
"maxLevel": 1,
@@ -272,7 +272,7 @@ exports[`Check Save File Continuity PlayerSave continuity 1`] = `
},
},
},
"randomEventCounter": 303,
"randomEventCounter": 274,
"rank": 2000,
"skillPoints": 666,
"skills": {},