From 1288d1c28993d1e2be0a4c5e1f3e0a30ac812175 Mon Sep 17 00:00:00 2001
From: catloversg <152669316+catloversg@users.noreply.github.com>
Date: Sun, 12 May 2024 07:13:59 +0700
Subject: [PATCH] API: Update getInfiltration API (#1235)

---
 ...itburner.infiltrationlocation.maxclearancelevel.md | 11 +++++++++++
 markdown/bitburner.infiltrationlocation.md            |  2 ++
 ...rner.infiltrationlocation.startingsecuritylevel.md | 11 +++++++++++
 src/NetscriptFunctions/Infiltration.ts                |  9 +++++++--
 src/ScriptEditor/NetscriptDefinitions.d.ts            |  2 ++
 5 files changed, 33 insertions(+), 2 deletions(-)
 create mode 100644 markdown/bitburner.infiltrationlocation.maxclearancelevel.md
 create mode 100644 markdown/bitburner.infiltrationlocation.startingsecuritylevel.md

diff --git a/markdown/bitburner.infiltrationlocation.maxclearancelevel.md b/markdown/bitburner.infiltrationlocation.maxclearancelevel.md
new file mode 100644
index 000000000..512132f08
--- /dev/null
+++ b/markdown/bitburner.infiltrationlocation.maxclearancelevel.md
@@ -0,0 +1,11 @@
+<!-- Do not edit this file. It is automatically generated by API Documenter. -->
+
+[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [InfiltrationLocation](./bitburner.infiltrationlocation.md) &gt; [maxClearanceLevel](./bitburner.infiltrationlocation.maxclearancelevel.md)
+
+## InfiltrationLocation.maxClearanceLevel property
+
+**Signature:**
+
+```typescript
+maxClearanceLevel: number;
+```
diff --git a/markdown/bitburner.infiltrationlocation.md b/markdown/bitburner.infiltrationlocation.md
index 519e0368c..750dd0907 100644
--- a/markdown/bitburner.infiltrationlocation.md
+++ b/markdown/bitburner.infiltrationlocation.md
@@ -17,5 +17,7 @@ interface InfiltrationLocation
 |  --- | --- | --- | --- |
 |  [difficulty](./bitburner.infiltrationlocation.difficulty.md) |  | number |  |
 |  [location](./bitburner.infiltrationlocation.location.md) |  | [ILocation](./bitburner.ilocation.md) |  |
+|  [maxClearanceLevel](./bitburner.infiltrationlocation.maxclearancelevel.md) |  | number |  |
 |  [reward](./bitburner.infiltrationlocation.reward.md) |  | [InfiltrationReward](./bitburner.infiltrationreward.md) |  |
+|  [startingSecurityLevel](./bitburner.infiltrationlocation.startingsecuritylevel.md) |  | number |  |
 
diff --git a/markdown/bitburner.infiltrationlocation.startingsecuritylevel.md b/markdown/bitburner.infiltrationlocation.startingsecuritylevel.md
new file mode 100644
index 000000000..7c74ae071
--- /dev/null
+++ b/markdown/bitburner.infiltrationlocation.startingsecuritylevel.md
@@ -0,0 +1,11 @@
+<!-- Do not edit this file. It is automatically generated by API Documenter. -->
+
+[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [InfiltrationLocation](./bitburner.infiltrationlocation.md) &gt; [startingSecurityLevel](./bitburner.infiltrationlocation.startingsecuritylevel.md)
+
+## InfiltrationLocation.startingSecurityLevel property
+
+**Signature:**
+
+```typescript
+startingSecurityLevel: number;
+```
diff --git a/src/NetscriptFunctions/Infiltration.ts b/src/NetscriptFunctions/Infiltration.ts
index 961a2d2f9..f860c8769 100644
--- a/src/NetscriptFunctions/Infiltration.ts
+++ b/src/NetscriptFunctions/Infiltration.ts
@@ -1,5 +1,5 @@
 import type { InternalAPI, NetscriptContext } from "../Netscript/APIWrapper";
-import { Infiltration as NetscriptInfiltation, InfiltrationLocation, ILocation } from "@nsdefs";
+import { Infiltration as NetscriptInfiltation, InfiltrationLocation } from "@nsdefs";
 import { FactionName, LocationName } from "@enums";
 import { Location } from "../Locations/Location";
 import { Locations } from "../Locations/Locations";
@@ -29,13 +29,18 @@ export function NetscriptInfiltration(): InternalAPI<NetscriptInfiltation> {
     const reward = calculateReward(startingSecurityLevel);
     const maxLevel = location.infiltrationData.maxClearanceLevel;
     return {
-      location: structuredClone(location) as ILocation,
+      location: {
+        city: location.city!,
+        name: location.name,
+      },
       reward: {
         tradeRep: calculateTradeInformationRepReward(reward, maxLevel, startingSecurityLevel),
         sellCash: calculateSellInformationCashReward(reward, maxLevel, startingSecurityLevel),
         SoARep: calculateInfiltratorsRepReward(Factions[FactionName.ShadowsOfAnarchy], startingSecurityLevel),
       },
       difficulty: difficulty,
+      maxClearanceLevel: location.infiltrationData.maxClearanceLevel,
+      startingSecurityLevel: location.infiltrationData.startingSecurityLevel,
     };
   };
   return {
diff --git a/src/ScriptEditor/NetscriptDefinitions.d.ts b/src/ScriptEditor/NetscriptDefinitions.d.ts
index 25821421e..78e6ae940 100644
--- a/src/ScriptEditor/NetscriptDefinitions.d.ts
+++ b/src/ScriptEditor/NetscriptDefinitions.d.ts
@@ -5158,6 +5158,8 @@ interface InfiltrationLocation {
   location: ILocation;
   reward: InfiltrationReward;
   difficulty: number;
+  maxClearanceLevel: number;
+  startingSecurityLevel: number;
 }
 
 /**