From 7f20dc2ee87ebd81694c8a2419142b9febcc69e1 Mon Sep 17 00:00:00 2001 From: Olivier Gagnon Date: Thu, 21 Jul 2022 15:32:54 -0400 Subject: [PATCH] fix getPossibleInfiltrations not returning enough info and fix donation saying Invalid input before unlocking --- src/Faction/ui/DonateOption.tsx | 2 +- src/NetscriptFunctions/Infiltration.ts | 15 +++++++++++---- src/ScriptEditor/NetscriptDefinitions.d.ts | 10 +++++++++- 3 files changed, 21 insertions(+), 6 deletions(-) diff --git a/src/Faction/ui/DonateOption.tsx b/src/Faction/ui/DonateOption.tsx index e592f7c4b..afd840dbb 100644 --- a/src/Faction/ui/DonateOption.tsx +++ b/src/Faction/ui/DonateOption.tsx @@ -56,7 +56,7 @@ export function DonateOption(props: IProps): React.ReactElement { } function Status(): React.ReactElement { - if (donateAmt === null) return <>; + if (isNaN(donateAmt)) return <>; if (!canDonate()) { if (props.p.money < donateAmt) return Insufficient funds; return Invalid donate amount entered!; diff --git a/src/NetscriptFunctions/Infiltration.ts b/src/NetscriptFunctions/Infiltration.ts index ccd5efb1f..692abaa50 100644 --- a/src/NetscriptFunctions/Infiltration.ts +++ b/src/NetscriptFunctions/Infiltration.ts @@ -1,6 +1,10 @@ import { IPlayer } from "../PersonObjects/IPlayer"; -import { Infiltration as IInfiltration, InfiltrationLocation } from "../ScriptEditor/NetscriptDefinitions"; +import { + Infiltration as IInfiltration, + InfiltrationLocation, + PossibleInfiltrationLocation, +} from "../ScriptEditor/NetscriptDefinitions"; import { Location } from "../Locations/Location"; import { Locations } from "../Locations/Locations"; import { calculateDifficulty, calculateReward } from "../Infiltration/formulas/game"; @@ -31,7 +35,7 @@ export function NetscriptInfiltration(player: IPlayer): InternalAPI (): string[] => { - return getLocationsWithInfiltrations.map((l) => l.name); + getPossibleLocations: () => (): PossibleInfiltrationLocation[] => { + return getLocationsWithInfiltrations.map((l) => ({ + city: l.city ?? "", + name: String(l.name), + })); }, getInfiltration: (ctx: NetscriptContext) => diff --git a/src/ScriptEditor/NetscriptDefinitions.d.ts b/src/ScriptEditor/NetscriptDefinitions.d.ts index fffa7d11b..1a61a5db7 100644 --- a/src/ScriptEditor/NetscriptDefinitions.d.ts +++ b/src/ScriptEditor/NetscriptDefinitions.d.ts @@ -1,3 +1,11 @@ +/** + * @public + */ +export interface PossibleInfiltrationLocation[] { + city: string; + name: string; +} + /** * Coding contract data will differ depending on coding contract. * @public @@ -4289,7 +4297,7 @@ interface Infiltration { * * @returns all locations that can be infiltrated. */ - getPossibleLocations(): string[]; + getPossibleLocations(): PossibleInfiltrationLocation[]; /** * Get all infiltrations with difficulty, location and rewards. * @remarks