diff --git a/src/PersonObjects/Sleeve/Sleeve.ts b/src/PersonObjects/Sleeve/Sleeve.ts index 74295b062..ffeb03dad 100644 --- a/src/PersonObjects/Sleeve/Sleeve.ts +++ b/src/PersonObjects/Sleeve/Sleeve.ts @@ -519,6 +519,14 @@ export class Sleeve extends Person { break; } + // If the player has a gang with the faction the sleeve is working + // for, we need to reset the sleeve's task + if (p.gang) { + if (fac.name === p.gang.facName) { + this.resetTaskStatus(); + } + } + fac.playerReputation += this.getRepGain(p) * cyclesUsed; break; } diff --git a/src/PersonObjects/Sleeve/ui/TaskSelector.tsx b/src/PersonObjects/Sleeve/ui/TaskSelector.tsx index 8d3295076..d7876c77b 100644 --- a/src/PersonObjects/Sleeve/ui/TaskSelector.tsx +++ b/src/PersonObjects/Sleeve/ui/TaskSelector.tsx @@ -110,6 +110,8 @@ const tasks: { first: factions, second: (s1: string) => { const faction = Factions[s1]; + if (!faction) return ["------"]; + const facInfo = faction.getInfo(); const options: string[] = []; if (facInfo.offerHackingWork) { @@ -260,7 +262,7 @@ export function TaskSelector(props: IProps): React.ReactElement { const detailsF = tasks[n]; if (detailsF === undefined) throw new Error(`No function for task '${s0}'`); const details = detailsF(props.player, props.sleeve); - const details2 = details.second(details.first[0]); + const details2 = details.second(details.first[0]) ?? ["------"]; setS2(details2[0]); setS1(details.first[0]); setS0(n);