From 4ee4d1d50edf774e979ba2a1f28d70a60ebaf68e Mon Sep 17 00:00:00 2001
From: ezsh <ezsh.junk@gmail.com>
Date: Wed, 6 Sep 2023 22:19:08 +0200
Subject: [PATCH] Fix selecting the revival FSes.

---
 src/futureSocieties/fsPassage.js | 34 ++++++++++++++++----------------
 src/js/utilsArcology.js          |  2 ++
 2 files changed, 19 insertions(+), 17 deletions(-)

diff --git a/src/futureSocieties/fsPassage.js b/src/futureSocieties/fsPassage.js
index f496a63cd53..4a827f25451 100644
--- a/src/futureSocieties/fsPassage.js
+++ b/src/futureSocieties/fsPassage.js
@@ -1220,13 +1220,13 @@ App.UI.fsPassage = function() {
 		r = [];
 
 		// at most one revivalist FS can be active
-		console.assert(arcInfo.countActive('FSAztecRevivalist', 'FSEgyptianRevivalist', 'FSEdoRevivalist', 'FSArabianRevivalist', 'FSChineseRevivalist', 'FSNeoImperialist', 'FSRomanRevivalist', 'FSAntebellumRevivalist') <= 1);
+		const activeRevivalFS = arcInfo.revivalSociety();
 
-		if (arcInfo.fsActive('FSRomanRevivalist')) {
+		if (activeRevivalFS === RevivalSociety.ROMAN) {
 			r.push(pursuit());
 			r.push(`a vision of a new Rome.`);
 			r.push(activeFS("FSRomanRevivalist", ["boughtItem.clothing.toga"]));
-		} else {
+		} else if (activeRevivalFS === null) {
 			if (FSCredits > 0) {
 				r.push(
 					App.UI.DOM.link(
@@ -1246,11 +1246,11 @@ App.UI.fsPassage = function() {
 		App.Events.addNode(p, r, "div");
 		r = [];
 
-		if (arcInfo.fsActive('FSNeoImperialist')) {
+		if (activeRevivalFS === RevivalSociety.NEO_IMPERIAL) {
 			r.push(pursuit());
 			r.push(`a vision of a new Imperial Society.`);
 			r.push(activeFS("FSNeoImperialist", ["boughtItem.clothing.imperialarmor", "boughtItem.clothing.imperialsuit"]));
-		} else {
+		} else if (activeRevivalFS === null){
 			if (FSCredits > 0) {
 				r.push(
 					App.UI.DOM.link(
@@ -1269,11 +1269,11 @@ App.UI.fsPassage = function() {
 		}
 		App.Events.addNode(p, r, "div");
 		r = [];
-		if (arcInfo.fsActive('FSAztecRevivalist')) {
+		if (activeRevivalFS === RevivalSociety.AZTEC) {
 			r.push(pursuit());
 			r.push(`a vision of a new Aztec Empire.`);
 			r.push(activeFS("FSAztecRevivalist", ["boughtItem.clothing.huipil"]));
-		} else {
+		} else if (activeRevivalFS === null){
 			if (FSCredits > 0) {
 				r.push(
 					App.UI.DOM.link(
@@ -1292,11 +1292,11 @@ App.UI.fsPassage = function() {
 		}
 		App.Events.addNode(p, r, "div");
 		r = [];
-		if (arcInfo.fsActive('FSEgyptianRevivalist')) {
+		if (activeRevivalFS === RevivalSociety.EGYPTIAN) {
 			r.push(pursuit());
 			r.push(`a vision of Pharaoh's Egypt.`);
 			r.push(activeFS("FSEgyptianRevivalist", ["boughtItem.clothing.egypt"]));
-		} else {
+		} else if (activeRevivalFS === null){
 			if (FSCredits > 0) {
 				r.push(
 					App.UI.DOM.link(
@@ -1316,11 +1316,11 @@ App.UI.fsPassage = function() {
 		}
 		App.Events.addNode(p, r, "div");
 		r = [];
-		if (arcInfo.fsActive('FSEdoRevivalist')) {
+		if (activeRevivalFS === RevivalSociety.EDO) {
 			r.push(pursuit());
 			r.push(`a vision of Edo Japan.`);
 			r.push(activeFS("FSEdoRevivalist", ["boughtItem.clothing.kimono"]));
-		} else {
+		} else if (activeRevivalFS === null){
 			if (FSCredits > 0) {
 				r.push(
 					App.UI.DOM.link(
@@ -1339,11 +1339,11 @@ App.UI.fsPassage = function() {
 		}
 		App.Events.addNode(p, r, "div");
 		r = [];
-		if (arcInfo.fsActive('FSArabianRevivalist')) {
+		if (activeRevivalFS === RevivalSociety.ARABIAN) {
 			r.push(pursuit());
 			r.push(`a vision of the Sultanate of old.`);
 			r.push(activeFS("FSArabianRevivalist", ["boughtItem.clothing.harem"]));
-		} else {
+		} else if (activeRevivalFS === null){
 			if (FSCredits > 0) {
 				r.push(
 					App.UI.DOM.link(
@@ -1362,11 +1362,11 @@ App.UI.fsPassage = function() {
 		}
 		App.Events.addNode(p, r, "div");
 		r = [];
-		if (arcInfo.fsActive('FSChineseRevivalist')) {
+		if (activeRevivalFS === RevivalSociety.CHINESE) {
 			r.push(pursuit());
 			r.push(`a vision of ancient China.`);
 			r.push(activeFS("FSChineseRevivalist", ["boughtItem.clothing.qipao"]));
-		} else {
+		} else if (activeRevivalFS === null){
 			if (FSCredits > 0) {
 				r.push(
 					App.UI.DOM.link(
@@ -1385,11 +1385,11 @@ App.UI.fsPassage = function() {
 		}
 		App.Events.addNode(p, r, "div");
 		r = [];
-		if (arcInfo.fsActive('FSAntebellumRevivalist')) {
+		if (activeRevivalFS === RevivalSociety.ANTEBELLUM) {
 			r.push(pursuit());
 			r.push(`a vision of the Antebellum South.`);
 			r.push(activeFS("FSAntebellumRevivalist", ["boughtItem.clothing.antebellum"]));
-		} else {
+		} else if (activeRevivalFS === null){
 			if (FSCredits > 0) {
 				r.push(
 					App.UI.DOM.link(
diff --git a/src/js/utilsArcology.js b/src/js/utilsArcology.js
index bc1c04a7f67..90275afbe50 100644
--- a/src/js/utilsArcology.js
+++ b/src/js/utilsArcology.js
@@ -136,6 +136,8 @@ App.Utils.Arcology = class {
 	 * @returns {FC.RevivalSocietyFreeze[keyof FC.RevivalSocietyFreeze] | null}
 	 */
 	revivalSociety() {
+		console.assert(this.countActive('FSAztecRevivalist', 'FSEgyptianRevivalist', 'FSEdoRevivalist', 'FSArabianRevivalist', 'FSChineseRevivalist', 'FSNeoImperialist', 'FSRomanRevivalist', 'FSAntebellumRevivalist') <= 1);
+
 		if (this.fsActive('FSAntebellumRevivalist')) {
 			return RevivalSociety.ANTEBELLUM;
 		} else if (this.fsActive('FSArabianRevivalist')) {
-- 
GitLab