mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2026-04-16 06:18:42 +02:00
MISC: Updated createRandomIP to use the full 32 bit space (#2113)
This commit is contained in:
@@ -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;
|
||||
};
|
||||
|
||||
@@ -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": {},
|
||||
|
||||
Reference in New Issue
Block a user