API: Rename ns.gang.getOtherGangInformation to getAllGangInformation (#2635)

This commit is contained in:
Lee Stutzman
2026-04-10 23:59:39 +01:00
committed by GitHub
parent a6a112198e
commit be6fcd206f
8 changed files with 88 additions and 21 deletions

View File

@@ -1,15 +1,15 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [Gang](./bitburner.gang.md) &gt; [getOtherGangInformation](./bitburner.gang.getotherganginformation.md)
[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [Gang](./bitburner.gang.md) &gt; [getAllGangInformation](./bitburner.gang.getallganginformation.md)
## Gang.getOtherGangInformation() method
## Gang.getAllGangInformation() method
Get information about all gangs.
**Signature:**
```typescript
getOtherGangInformation(): Record<string, GangOtherInfoObject>;
getAllGangInformation(): Record<string, GangOtherInfoObject>;
```
**Returns:**

View File

@@ -61,6 +61,17 @@ Check if you can recruit a new gang member.
Create a gang.
</td></tr>
<tr><td>
[getAllGangInformation()](./bitburner.gang.getallganginformation.md)
</td><td>
Get information about all gangs.
</td></tr>
<tr><td>
@@ -182,17 +193,6 @@ Get information about a specific gang member.
List all gang members.
</td></tr>
<tr><td>
[getOtherGangInformation()](./bitburner.gang.getotherganginformation.md)
</td><td>
Get information about all gangs.
</td></tr>
<tr><td>

View File

@@ -561,6 +561,7 @@ import nsDoc_bitburner_gameinfo_versionnumber_md from "../../markdown/bitburner.
import nsDoc_bitburner_gang_ascendmember_md from "../../markdown/bitburner.gang.ascendmember.md?raw";
import nsDoc_bitburner_gang_canrecruitmember_md from "../../markdown/bitburner.gang.canrecruitmember.md?raw";
import nsDoc_bitburner_gang_creategang_md from "../../markdown/bitburner.gang.creategang.md?raw";
import nsDoc_bitburner_gang_getallganginformation_md from "../../markdown/bitburner.gang.getallganginformation.md?raw";
import nsDoc_bitburner_gang_getascensionresult_md from "../../markdown/bitburner.gang.getascensionresult.md?raw";
import nsDoc_bitburner_gang_getbonustime_md from "../../markdown/bitburner.gang.getbonustime.md?raw";
import nsDoc_bitburner_gang_getchancetowinclash_md from "../../markdown/bitburner.gang.getchancetowinclash.md?raw";
@@ -572,7 +573,6 @@ import nsDoc_bitburner_gang_getganginformation_md from "../../markdown/bitburner
import nsDoc_bitburner_gang_getinstallresult_md from "../../markdown/bitburner.gang.getinstallresult.md?raw";
import nsDoc_bitburner_gang_getmemberinformation_md from "../../markdown/bitburner.gang.getmemberinformation.md?raw";
import nsDoc_bitburner_gang_getmembernames_md from "../../markdown/bitburner.gang.getmembernames.md?raw";
import nsDoc_bitburner_gang_getotherganginformation_md from "../../markdown/bitburner.gang.getotherganginformation.md?raw";
import nsDoc_bitburner_gang_getrecruitsavailable_md from "../../markdown/bitburner.gang.getrecruitsavailable.md?raw";
import nsDoc_bitburner_gang_gettasknames_md from "../../markdown/bitburner.gang.gettasknames.md?raw";
import nsDoc_bitburner_gang_gettaskstats_md from "../../markdown/bitburner.gang.gettaskstats.md?raw";
@@ -2157,6 +2157,7 @@ AllPages["nsDoc/bitburner.gameinfo.versionnumber.md"] = nsDoc_bitburner_gameinfo
AllPages["nsDoc/bitburner.gang.ascendmember.md"] = nsDoc_bitburner_gang_ascendmember_md;
AllPages["nsDoc/bitburner.gang.canrecruitmember.md"] = nsDoc_bitburner_gang_canrecruitmember_md;
AllPages["nsDoc/bitburner.gang.creategang.md"] = nsDoc_bitburner_gang_creategang_md;
AllPages["nsDoc/bitburner.gang.getallganginformation.md"] = nsDoc_bitburner_gang_getallganginformation_md;
AllPages["nsDoc/bitburner.gang.getascensionresult.md"] = nsDoc_bitburner_gang_getascensionresult_md;
AllPages["nsDoc/bitburner.gang.getbonustime.md"] = nsDoc_bitburner_gang_getbonustime_md;
AllPages["nsDoc/bitburner.gang.getchancetowinclash.md"] = nsDoc_bitburner_gang_getchancetowinclash_md;
@@ -2168,7 +2169,6 @@ AllPages["nsDoc/bitburner.gang.getganginformation.md"] = nsDoc_bitburner_gang_ge
AllPages["nsDoc/bitburner.gang.getinstallresult.md"] = nsDoc_bitburner_gang_getinstallresult_md;
AllPages["nsDoc/bitburner.gang.getmemberinformation.md"] = nsDoc_bitburner_gang_getmemberinformation_md;
AllPages["nsDoc/bitburner.gang.getmembernames.md"] = nsDoc_bitburner_gang_getmembernames_md;
AllPages["nsDoc/bitburner.gang.getotherganginformation.md"] = nsDoc_bitburner_gang_getotherganginformation_md;
AllPages["nsDoc/bitburner.gang.getrecruitsavailable.md"] = nsDoc_bitburner_gang_getrecruitsavailable_md;
AllPages["nsDoc/bitburner.gang.gettasknames.md"] = nsDoc_bitburner_gang_gettasknames_md;
AllPages["nsDoc/bitburner.gang.gettaskstats.md"] = nsDoc_bitburner_gang_gettaskstats_md;

View File

@@ -275,7 +275,7 @@ const gang = {
getMemberNames: RamCostConstants.GangApiBase / 4,
renameMember: 0,
getGangInformation: RamCostConstants.GangApiBase / 2,
getOtherGangInformation: RamCostConstants.GangApiBase / 2,
getAllGangInformation: RamCostConstants.GangApiBase / 2,
getMemberInformation: RamCostConstants.GangApiBase / 2,
canRecruitMember: RamCostConstants.GangApiBase / 4,
getRecruitsAvailable: RamCostConstants.GangApiBase / 4,

View File

@@ -2,7 +2,7 @@ import type { Gang as IGang, EquipmentStats, GangOtherInfoObject } from "@nsdefs
import type { Gang } from "../Gang/Gang";
import type { GangMember } from "../Gang/GangMember";
import type { GangMemberTask } from "../Gang/GangMemberTask";
import type { InternalAPI, NetscriptContext } from "../Netscript/APIWrapper";
import { type InternalAPI, type NetscriptContext, setRemovedFunctions } from "../Netscript/APIWrapper";
import { GangPromise, RecruitmentResult } from "../Gang/Gang";
import { Player } from "@player";
@@ -37,7 +37,7 @@ export function NetscriptGang(): InternalAPI<IGang> {
return task;
};
return {
const gangFunctions: InternalAPI<IGang> = {
createGang: (ctx) => (_faction) => {
const faction = getEnumHelper("FactionName").nsGetMember(ctx, _faction);
if (Player.gang) {
@@ -117,7 +117,7 @@ export function NetscriptGang(): InternalAPI<IGang> {
equipmentCostMult: 1 / gang.getDiscount(),
};
},
getOtherGangInformation: (ctx) => () => {
getAllGangInformation: (ctx) => () => {
getGang(ctx);
const cpy: Record<string, GangOtherInfoObject> = {};
for (const gang of Object.keys(AllGangs)) {
@@ -362,4 +362,10 @@ export function NetscriptGang(): InternalAPI<IGang> {
return GangPromise.promise;
},
};
// Removed functions
setRemovedFunctions(gangFunctions, {
getOtherGangInformation: { version: "3.0.0", replacement: "gang.getAllGangInformation" },
});
return gangFunctions;
}

View File

@@ -4879,7 +4879,7 @@ export interface Gang {
*
* @returns Object containing territory and power information about all gangs, including the player's gang, if any.
*/
getOtherGangInformation(): Record<string, GangOtherInfoObject>;
getAllGangInformation(): Record<string, GangOtherInfoObject>;
/**
* Get information about a specific gang member.

View File

@@ -384,6 +384,21 @@ export const breakingChanges300: VersionBreakingChange = {
`- "White Ferrari" was renamed to "${convertV2GangEquipmentNames("White Ferrari")}".\n`,
showWarning: false,
},
{
brokenAPIs: [
{
name: "ns.gang.getOtherGangInformation",
migration: {
searchValue: "getOtherGangInformation",
replaceValue: "getAllGangInformation",
},
},
],
info:
"ns.gang.getOtherGangInformation() was renamed to ns.gang.getAllGangInformation().\n" +
"The function was renamed because it returns information about all gangs, including the player's own gang.",
showWarning: false,
},
{
brokenAPIs: [{ name: "purchase4SMarketData" }],
info:

View File

@@ -0,0 +1,46 @@
import { FactionName } from "@enums";
import { Player } from "@player";
import { Gang } from "../../../src/Gang/Gang";
import { AllGangs } from "../../../src/Gang/AllGangs";
import { getNS, initGameEnvironment, setupBasicTestingEnvironment } from "../Utilities";
beforeAll(() => {
initGameEnvironment();
});
beforeEach(() => {
setupBasicTestingEnvironment();
// Give the player a gang so gang API is accessible
Player.gang = new Gang(FactionName.SlumSnakes, false);
});
describe("ns.gang.getAllGangInformation", () => {
it("should return territory and power info for all gangs including the player's", () => {
const ns = getNS();
const info = ns.gang.getAllGangInformation();
const gangNames = Object.keys(info);
// Should include all 7 gangs
expect(gangNames).toHaveLength(Object.keys(AllGangs).length);
// Should include the player's own gang
expect(info[FactionName.SlumSnakes]).toBeDefined();
// Each entry should have power and territory
for (const name of gangNames) {
expect(info[name]).toHaveProperty("power");
expect(info[name]).toHaveProperty("territory");
expect(typeof info[name].power).toBe("number");
expect(typeof info[name].territory).toBe("number");
}
});
it("should return copies, not references to the original AllGangs data", () => {
const ns = getNS();
const info = ns.gang.getAllGangInformation();
// Mutating the returned data should not affect AllGangs
info[FactionName.SlumSnakes].power = 999999;
expect(AllGangs[FactionName.SlumSnakes].power).not.toBe(999999);
});
});