diff --git a/src/Faction/Factions.ts b/src/Faction/Factions.ts index e697cdbfa..76008fc01 100644 --- a/src/Faction/Factions.ts +++ b/src/Faction/Factions.ts @@ -33,7 +33,6 @@ export function loadFactions(saveString: string, player: PlayerObject): void { if (typeof loadedRep === "number" && loadedRep > 0) faction.playerReputation = loadedRep; if (typeof loadedFavor === "number" && loadedFavor > 0) faction.favor = loadedFavor; if (getEnumHelper("FactionDiscovery").isMember(loadedDiscovery)) faction.discovery = loadedDiscovery; - if (faction.alreadyInvited || faction.isMember) faction.discovery = FactionDiscovery.known; } // Load joined factions from player save for (const joinedFacName of player.factions) { diff --git a/src/PersonObjects/Player/PlayerObjectGeneralMethods.ts b/src/PersonObjects/Player/PlayerObjectGeneralMethods.ts index 99b3a5f77..9a04d836b 100644 --- a/src/PersonObjects/Player/PlayerObjectGeneralMethods.ts +++ b/src/PersonObjects/Player/PlayerObjectGeneralMethods.ts @@ -179,6 +179,7 @@ export function receiveInvite(this: PlayerObject, factionName: FactionName): voi export function receiveRumor(this: PlayerObject, factionName: FactionName): void { const faction = Factions[factionName]; + if (faction.discovery === FactionDiscovery.unknown) faction.discovery = FactionDiscovery.rumored; if (this.factionRumors.has(factionName) || faction.isMember || faction.isBanned || faction.alreadyInvited) return; this.factionRumors.add(factionName); } @@ -624,7 +625,7 @@ export function checkForFactionInvitations(this: PlayerObject): Faction[] { const { inviteReqs, rumorReqs } = faction.getInfo(); if (inviteReqs.every((req) => req.isSatisfied(this))) invitedFactions.push(faction); // Handle rumors - if (faction.discovery !== FactionDiscovery.unknown) continue; + if (this.factionRumors.has(faction.name)) continue; if (rumorReqs.every((req) => req.isSatisfied(this))) this.receiveRumor(faction.name); } return invitedFactions;