diff --git a/src/neighbor/arcologyOpinion.js b/src/neighbor/arcologyOpinion.js
index b5cbc5905bf858a0fc77c4610d92902d89d27a64..20289808a202882b0b232e24154c7ff05cfefcec 100644
--- a/src/neighbor/arcologyOpinion.js
+++ b/src/neighbor/arcologyOpinion.js
@@ -1,338 +1,335 @@
-window.arcologyOpinion = function() {
-	const V = State.variables;
+window.arcologyOpinion = function(activeArcology, targetArcology) {
 
-	if (typeof V.activeArcology.FSNull === "undefined") { V.activeArcology.FSNull = "unset"; }
-	if (typeof V.targetArcology.FSNull === "undefined") { V.targetArcology.FSNull = "unset"; }
+	if (typeof activeArcology.FSNull === "undefined") { activeArcology.FSNull = "unset"; }
+	if (typeof targetArcology.FSNull === "undefined") { targetArcology.FSNull = "unset"; }
 
 	let opinion = 0;
 
-	if (V.activeArcology.FSSubjugationist !== "unset") {
-		if (V.targetArcology.FSSubjugationist !== "unset") {
-			if (V.targetArcology.FSSubjugationistRace === V.activeArcology.FSSubjugationistRace) {
-				opinion += V.activeArcology.FSSubjugationist;
-				opinion += V.targetArcology.FSSubjugationist;
+	if (activeArcology.FSSubjugationist !== "unset") {
+		if (targetArcology.FSSubjugationist !== "unset") {
+			if (targetArcology.FSSubjugationistRace === activeArcology.FSSubjugationistRace) {
+				opinion += activeArcology.FSSubjugationist;
+				opinion += targetArcology.FSSubjugationist;
 			} else {
-				opinion -= V.activeArcology.FSSubjugationist;
-				opinion -= V.targetArcology.FSSubjugationist;
+				opinion -= activeArcology.FSSubjugationist;
+				opinion -= targetArcology.FSSubjugationist;
 			}
-		} else if (V.targetArcology.FSSupremacist !== "unset") {
-			if (V.targetArcology.FSSupremacistRace === V.activeArcology.FSSubjugationistRace) {
-				opinion -= V.activeArcology.FSSubjugationist;
-				opinion -= V.targetArcology.FSSupremacist;
+		} else if (targetArcology.FSSupremacist !== "unset") {
+			if (targetArcology.FSSupremacistRace === activeArcology.FSSubjugationistRace) {
+				opinion -= activeArcology.FSSubjugationist;
+				opinion -= targetArcology.FSSupremacist;
 			}
 		}
 	}
-	if (V.activeArcology.FSSupremacist !== "unset") {
-		if (V.targetArcology.FSSupremacist !== "unset") {
-			if (V.targetArcology.FSSupremacistRace === V.activeArcology.FSSupremacistRace) {
-				opinion += V.activeArcology.FSSupremacist;
-				opinion += V.targetArcology.FSSupremacist;
+	if (activeArcology.FSSupremacist !== "unset") {
+		if (targetArcology.FSSupremacist !== "unset") {
+			if (targetArcology.FSSupremacistRace === activeArcology.FSSupremacistRace) {
+				opinion += activeArcology.FSSupremacist;
+				opinion += targetArcology.FSSupremacist;
 			} else {
-				opinion -= V.activeArcology.FSSupremacist;
-				opinion -= V.targetArcology.FSSupremacist;
+				opinion -= activeArcology.FSSupremacist;
+				opinion -= targetArcology.FSSupremacist;
 			}
-		} else if (V.targetArcology.FSSubjugationist !== "unset") {
-			if (V.targetArcology.FSSubjugationistRace === V.activeArcology.FSSupremacistRace) {
-				opinion -= V.activeArcology.FSSupremacist;
-				opinion -= V.targetArcology.FSSubjugationist;
+		} else if (targetArcology.FSSubjugationist !== "unset") {
+			if (targetArcology.FSSubjugationistRace === activeArcology.FSSupremacistRace) {
+				opinion -= activeArcology.FSSupremacist;
+				opinion -= targetArcology.FSSubjugationist;
 			}
 		}
 	}
-	if (V.activeArcology.FSRepopulationFocus !== "unset") {
-		if (V.targetArcology.FSRepopulationFocus !== "unset") {
-			opinion += V.activeArcology.FSRepopulationFocus;
-			opinion += V.targetArcology.FSRepopulationFocus;
-		} else if (V.targetArcology.FSRestart !== "unset") {
-			opinion -= V.activeArcology.FSRepopulationFocus;
-			opinion -= V.targetArcology.FSRestart;
+	if (activeArcology.FSRepopulationFocus !== "unset") {
+		if (targetArcology.FSRepopulationFocus !== "unset") {
+			opinion += activeArcology.FSRepopulationFocus;
+			opinion += targetArcology.FSRepopulationFocus;
+		} else if (targetArcology.FSRestart !== "unset") {
+			opinion -= activeArcology.FSRepopulationFocus;
+			opinion -= targetArcology.FSRestart;
 		}
-	} else if (V.activeArcology.FSRestart !== "unset") {
-		if (V.targetArcology.FSRestart !== "unset") {
-			opinion += V.activeArcology.FSRestart;
-			opinion += V.targetArcology.FSRestart;
-		} else if (V.targetArcology.FSRepopulationFocus !== "unset") {
-			opinion -= V.activeArcology.FSRestart;
-			opinion -= V.targetArcology.FSRepopulationFocus;
+	} else if (activeArcology.FSRestart !== "unset") {
+		if (targetArcology.FSRestart !== "unset") {
+			opinion += activeArcology.FSRestart;
+			opinion += targetArcology.FSRestart;
+		} else if (targetArcology.FSRepopulationFocus !== "unset") {
+			opinion -= activeArcology.FSRestart;
+			opinion -= targetArcology.FSRepopulationFocus;
 		}
 	}
-	if (V.activeArcology.FSGenderRadicalist !== "unset") {
-		if (V.targetArcology.FSGenderRadicalist !== "unset") {
-			opinion += V.activeArcology.FSGenderRadicalist;
-			opinion += V.targetArcology.FSGenderRadicalist;
-		} else if (V.targetArcology.FSGenderFundamentalist !== "unset") {
-			opinion -= V.activeArcology.FSGenderRadicalist;
-			opinion -= V.targetArcology.FSGenderFundamentalist;
+	if (activeArcology.FSGenderRadicalist !== "unset") {
+		if (targetArcology.FSGenderRadicalist !== "unset") {
+			opinion += activeArcology.FSGenderRadicalist;
+			opinion += targetArcology.FSGenderRadicalist;
+		} else if (targetArcology.FSGenderFundamentalist !== "unset") {
+			opinion -= activeArcology.FSGenderRadicalist;
+			opinion -= targetArcology.FSGenderFundamentalist;
 		}
-	} else if (V.activeArcology.FSGenderFundamentalist !== "unset") {
-		if (V.targetArcology.FSGenderFundamentalist !== "unset") {
-			opinion += V.activeArcology.FSGenderFundamentalist;
-			opinion += V.targetArcology.FSGenderFundamentalist;
-		} else if (V.targetArcology.FSGenderRadicalist !== "unset") {
-			opinion -= V.activeArcology.FSGenderFundamentalist;
-			opinion -= V.targetArcology.FSGenderRadicalist;
+	} else if (activeArcology.FSGenderFundamentalist !== "unset") {
+		if (targetArcology.FSGenderFundamentalist !== "unset") {
+			opinion += activeArcology.FSGenderFundamentalist;
+			opinion += targetArcology.FSGenderFundamentalist;
+		} else if (targetArcology.FSGenderRadicalist !== "unset") {
+			opinion -= activeArcology.FSGenderFundamentalist;
+			opinion -= targetArcology.FSGenderRadicalist;
 		}
 	}
-	if (V.activeArcology.FSPaternalist !== "unset") {
-		if (V.targetArcology.FSPaternalist !== "unset") {
-			opinion += V.activeArcology.FSPaternalist;
-			opinion += V.targetArcology.FSPaternalist;
-		} else if (V.targetArcology.FSDegradationist !== "unset") {
-			opinion -= V.activeArcology.FSPaternalist;
-			opinion -= V.targetArcology.FSDegradationist;
+	if (activeArcology.FSPaternalist !== "unset") {
+		if (targetArcology.FSPaternalist !== "unset") {
+			opinion += activeArcology.FSPaternalist;
+			opinion += targetArcology.FSPaternalist;
+		} else if (targetArcology.FSDegradationist !== "unset") {
+			opinion -= activeArcology.FSPaternalist;
+			opinion -= targetArcology.FSDegradationist;
 		}
-	} else if (V.activeArcology.FSDegradationist !== "unset") {
-		if (V.targetArcology.FSDegradationist !== "unset") {
-			opinion += V.activeArcology.FSDegradationist;
-			opinion += V.targetArcology.FSDegradationist;
-		} else if (V.targetArcology.FSPaternalist !== "unset") {
-			opinion -= V.activeArcology.FSDegradationist;
-			opinion -= V.targetArcology.FSPaternalist;
+	} else if (activeArcology.FSDegradationist !== "unset") {
+		if (targetArcology.FSDegradationist !== "unset") {
+			opinion += activeArcology.FSDegradationist;
+			opinion += targetArcology.FSDegradationist;
+		} else if (targetArcology.FSPaternalist !== "unset") {
+			opinion -= activeArcology.FSDegradationist;
+			opinion -= targetArcology.FSPaternalist;
 		}
 	}
-	if (V.activeArcology.FSBodyPurist !== "unset") {
-		if (V.targetArcology.FSBodyPurist !== "unset") {
-			opinion += V.activeArcology.FSBodyPurist;
-			opinion += V.targetArcology.FSBodyPurist;
-		} else if (V.targetArcology.FSTransformationFetishist !== "unset") {
-			opinion -= V.activeArcology.FSBodyPurist;
-			opinion -= V.targetArcology.FSTransformationFetishist;
+	if (activeArcology.FSBodyPurist !== "unset") {
+		if (targetArcology.FSBodyPurist !== "unset") {
+			opinion += activeArcology.FSBodyPurist;
+			opinion += targetArcology.FSBodyPurist;
+		} else if (targetArcology.FSTransformationFetishist !== "unset") {
+			opinion -= activeArcology.FSBodyPurist;
+			opinion -= targetArcology.FSTransformationFetishist;
 		}
-	} else if (V.activeArcology.FSTransformationFetishist !== "unset") {
-		if (V.targetArcology.FSTransformationFetishist !== "unset") {
-			opinion += V.activeArcology.FSTransformationFetishist;
-			opinion += V.targetArcology.FSTransformationFetishist;
-		} else if (V.targetArcology.FSBodyPurist !== "unset") {
-			opinion -= V.activeArcology.FSTransformationFetishist;
-			opinion -= V.targetArcology.FSBodyPurist;
+	} else if (activeArcology.FSTransformationFetishist !== "unset") {
+		if (targetArcology.FSTransformationFetishist !== "unset") {
+			opinion += activeArcology.FSTransformationFetishist;
+			opinion += targetArcology.FSTransformationFetishist;
+		} else if (targetArcology.FSBodyPurist !== "unset") {
+			opinion -= activeArcology.FSTransformationFetishist;
+			opinion -= targetArcology.FSBodyPurist;
 		}
 	}
-	if (V.activeArcology.FSYouthPreferentialist !== "unset") {
-		if (V.targetArcology.FSYouthPreferentialist !== "unset") {
-			opinion += V.activeArcology.FSYouthPreferentialist;
-			opinion += V.targetArcology.FSYouthPreferentialist;
-		} else if (V.targetArcology.FSMaturityPreferentialist !== "unset") {
-			opinion -= V.activeArcology.FSYouthPreferentialist;
-			opinion -= V.targetArcology.FSMaturityPreferentialist;
+	if (activeArcology.FSYouthPreferentialist !== "unset") {
+		if (targetArcology.FSYouthPreferentialist !== "unset") {
+			opinion += activeArcology.FSYouthPreferentialist;
+			opinion += targetArcology.FSYouthPreferentialist;
+		} else if (targetArcology.FSMaturityPreferentialist !== "unset") {
+			opinion -= activeArcology.FSYouthPreferentialist;
+			opinion -= targetArcology.FSMaturityPreferentialist;
 		}
-	} else if (V.activeArcology.FSMaturityPreferentialist !== "unset") {
-		if (V.targetArcology.FSMaturityPreferentialist !== "unset") {
-			opinion += V.activeArcology.FSMaturityPreferentialist;
-			opinion += V.targetArcology.FSMaturityPreferentialist;
-		} else if (V.targetArcology.FSYouthPreferentialist !== "unset") {
-			opinion -= V.activeArcology.FSMaturityPreferentialist;
-			opinion -= V.targetArcology.FSYouthPreferentialist;
+	} else if (activeArcology.FSMaturityPreferentialist !== "unset") {
+		if (targetArcology.FSMaturityPreferentialist !== "unset") {
+			opinion += activeArcology.FSMaturityPreferentialist;
+			opinion += targetArcology.FSMaturityPreferentialist;
+		} else if (targetArcology.FSYouthPreferentialist !== "unset") {
+			opinion -= activeArcology.FSMaturityPreferentialist;
+			opinion -= targetArcology.FSYouthPreferentialist;
 		}
 	}
-	if (V.activeArcology.FSSlimnessEnthusiast !== "unset") {
-		if (V.targetArcology.FSSlimnessEnthusiast !== "unset") {
-			opinion += V.activeArcology.FSSlimnessEnthusiast;
-			opinion += V.targetArcology.FSSlimnessEnthusiast;
-		} else if (V.targetArcology.FSAssetExpansionist !== "unset") {
-			opinion -= V.activeArcology.FSSlimnessEnthusiast;
-			opinion -= V.targetArcology.FSAssetExpansionist;
+	if (activeArcology.FSSlimnessEnthusiast !== "unset") {
+		if (targetArcology.FSSlimnessEnthusiast !== "unset") {
+			opinion += activeArcology.FSSlimnessEnthusiast;
+			opinion += targetArcology.FSSlimnessEnthusiast;
+		} else if (targetArcology.FSAssetExpansionist !== "unset") {
+			opinion -= activeArcology.FSSlimnessEnthusiast;
+			opinion -= targetArcology.FSAssetExpansionist;
 		}
-	} else if (V.activeArcology.FSAssetExpansionist !== "unset") {
-		if (V.targetArcology.FSAssetExpansionist !== "unset") {
-			opinion += V.activeArcology.FSAssetExpansionist;
-			opinion += V.targetArcology.FSAssetExpansionist;
-		} else if (V.targetArcology.FSSlimnessEnthusiast !== "unset") {
-			opinion -= V.activeArcology.FSAssetExpansionist;
-			opinion -= V.targetArcology.FSSlimnessEnthusiast;
+	} else if (activeArcology.FSAssetExpansionist !== "unset") {
+		if (targetArcology.FSAssetExpansionist !== "unset") {
+			opinion += activeArcology.FSAssetExpansionist;
+			opinion += targetArcology.FSAssetExpansionist;
+		} else if (targetArcology.FSSlimnessEnthusiast !== "unset") {
+			opinion -= activeArcology.FSAssetExpansionist;
+			opinion -= targetArcology.FSSlimnessEnthusiast;
 		}
 	}
-	if (V.activeArcology.FSPastoralist !== "unset") {
-		if (V.targetArcology.FSPastoralist !== "unset") {
-			opinion += V.activeArcology.FSPastoralist;
-			opinion += V.targetArcology.FSPastoralist;
-		} else if (V.targetArcology.FSCummunism !== "unset") {
-			opinion -= V.activeArcology.FSPastoralist;
-			opinion -= V.targetArcology.FSCummunism;
+	if (activeArcology.FSPastoralist !== "unset") {
+		if (targetArcology.FSPastoralist !== "unset") {
+			opinion += activeArcology.FSPastoralist;
+			opinion += targetArcology.FSPastoralist;
+		} else if (targetArcology.FSCummunism !== "unset") {
+			opinion -= activeArcology.FSPastoralist;
+			opinion -= targetArcology.FSCummunism;
 		}
-	} else if (V.activeArcology.FSCummunism !== "unset") {
-		if (V.targetArcology.FSCummunism !== "unset") {
-			opinion += V.activeArcology.FSCummunism;
-			opinion += V.targetArcology.FSCummunism;
-		} else if (V.targetArcology.FSPastoralist !== "unset") {
-			opinion -= V.activeArcology.FSCummunism;
-			opinion -= V.targetArcology.FSPastoralist;
+	} else if (activeArcology.FSCummunism !== "unset") {
+		if (targetArcology.FSCummunism !== "unset") {
+			opinion += activeArcology.FSCummunism;
+			opinion += targetArcology.FSCummunism;
+		} else if (targetArcology.FSPastoralist !== "unset") {
+			opinion -= activeArcology.FSCummunism;
+			opinion -= targetArcology.FSPastoralist;
 		}
 	}
-	if (V.activeArcology.FSPhysicalIdealist !== "unset") {
-		if (V.targetArcology.FSPhysicalIdealist !== "unset") {
-			opinion += V.activeArcology.FSPhysicalIdealist;
-			opinion += V.targetArcology.FSPhysicalIdealist;
-		} else if (V.targetArcology.FSHedonisticDecadence !== "unset") {
-			opinion -= V.activeArcology.FSPhysicalIdealist;
-			opinion -= V.targetArcology.FSHedonisticDecadence;
+	if (activeArcology.FSPhysicalIdealist !== "unset") {
+		if (targetArcology.FSPhysicalIdealist !== "unset") {
+			opinion += activeArcology.FSPhysicalIdealist;
+			opinion += targetArcology.FSPhysicalIdealist;
+		} else if (targetArcology.FSHedonisticDecadence !== "unset") {
+			opinion -= activeArcology.FSPhysicalIdealist;
+			opinion -= targetArcology.FSHedonisticDecadence;
 		}
-	} else if (V.activeArcology.FSHedonisticDecadence !== "unset") {
-		if (V.targetArcology.FSHedonisticDecadence !== "unset") {
-			opinion += V.activeArcology.FSHedonisticDecadence;
-			opinion += V.targetArcology.FSHedonisticDecadence;
-		} else if (V.targetArcology.FSPhysicalIdealist !== "unset") {
-			opinion -= V.activeArcology.FSHedonisticDecadence;
-			opinion -= V.targetArcology.FSPhysicalIdealist;
+	} else if (activeArcology.FSHedonisticDecadence !== "unset") {
+		if (targetArcology.FSHedonisticDecadence !== "unset") {
+			opinion += activeArcology.FSHedonisticDecadence;
+			opinion += targetArcology.FSHedonisticDecadence;
+		} else if (targetArcology.FSPhysicalIdealist !== "unset") {
+			opinion -= activeArcology.FSHedonisticDecadence;
+			opinion -= targetArcology.FSPhysicalIdealist;
 		}
 	}
-	if (V.activeArcology.FSChattelReligionist !== "unset") {
-		if (V.targetArcology.FSChattelReligionist !== "unset") {
-			opinion += V.activeArcology.FSChattelReligionist;
-			opinion += V.targetArcology.FSChattelReligionist;
-		} else if (V.targetArcology.FSNull !== "unset") {
-			opinion -= V.activeArcology.FSChattelReligionist;
-			opinion -= V.targetArcology.FSNull;
+	if (activeArcology.FSChattelReligionist !== "unset") {
+		if (targetArcology.FSChattelReligionist !== "unset") {
+			opinion += activeArcology.FSChattelReligionist;
+			opinion += targetArcology.FSChattelReligionist;
+		} else if (targetArcology.FSNull !== "unset") {
+			opinion -= activeArcology.FSChattelReligionist;
+			opinion -= targetArcology.FSNull;
 		}
-	} else if (V.activeArcology.FSNull !== "unset") {
-		if (V.targetArcology.FSNull !== "unset") {
-			opinion += V.activeArcology.FSNull;
-			opinion += V.targetArcology.FSNull;
-		} else if (V.targetArcology.FSChattelReligionist !== "unset") {
-			opinion -= V.activeArcology.FSNull;
-			opinion -= V.targetArcology.FSChattelReligionist;
+	} else if (activeArcology.FSNull !== "unset") {
+		if (targetArcology.FSNull !== "unset") {
+			opinion += activeArcology.FSNull;
+			opinion += targetArcology.FSNull;
+		} else if (targetArcology.FSChattelReligionist !== "unset") {
+			opinion -= activeArcology.FSNull;
+			opinion -= targetArcology.FSChattelReligionist;
 		} else {
-			opinion += V.activeArcology.FSNull;
+			opinion += activeArcology.FSNull;
 		}
-	} else if (V.targetArcology.FSNull !== "unset") {
-		opinion += V.targetArcology.FSNull;
+	} else if (targetArcology.FSNull !== "unset") {
+		opinion += targetArcology.FSNull;
 	}
-	if (V.activeArcology.FSRomanRevivalist !== "unset") {
-		if (V.targetArcology.FSRomanRevivalist !== "unset") {
-			opinion += V.activeArcology.FSRomanRevivalist;
-			opinion += V.targetArcology.FSRomanRevivalist;
-		} else if (V.targetArcology.FSAztecRevivalist !== "unset") {
-			opinion -= V.activeArcology.FSRomanRevivalist;
-			opinion -= V.targetArcology.FSAztecRevivalist;
-		} else if (V.targetArcology.FSEgyptianRevivalist !== "unset") {
-			opinion -= V.activeArcology.FSRomanRevivalist;
-			opinion -= V.targetArcology.FSEgyptianRevivalist;
-		} else if (V.targetArcology.FSEdoRevivalist !== "unset") {
-			opinion -= V.activeArcology.FSRomanRevivalist;
-			opinion -= V.targetArcology.FSEdoRevivalist;
-		} else if (V.targetArcology.FSArabianRevivalist !== "unset") {
-			opinion -= V.activeArcology.FSRomanRevivalist;
-			opinion -= V.targetArcology.FSArabianRevivalist;
-		} else if (V.targetArcology.FSChineseRevivalist !== "unset") {
-			opinion -= V.activeArcology.FSRomanRevivalist;
-			opinion -= V.targetArcology.FSChineseRevivalist;
+	if (activeArcology.FSRomanRevivalist !== "unset") {
+		if (targetArcology.FSRomanRevivalist !== "unset") {
+			opinion += activeArcology.FSRomanRevivalist;
+			opinion += targetArcology.FSRomanRevivalist;
+		} else if (targetArcology.FSAztecRevivalist !== "unset") {
+			opinion -= activeArcology.FSRomanRevivalist;
+			opinion -= targetArcology.FSAztecRevivalist;
+		} else if (targetArcology.FSEgyptianRevivalist !== "unset") {
+			opinion -= activeArcology.FSRomanRevivalist;
+			opinion -= targetArcology.FSEgyptianRevivalist;
+		} else if (targetArcology.FSEdoRevivalist !== "unset") {
+			opinion -= activeArcology.FSRomanRevivalist;
+			opinion -= targetArcology.FSEdoRevivalist;
+		} else if (targetArcology.FSArabianRevivalist !== "unset") {
+			opinion -= activeArcology.FSRomanRevivalist;
+			opinion -= targetArcology.FSArabianRevivalist;
+		} else if (targetArcology.FSChineseRevivalist !== "unset") {
+			opinion -= activeArcology.FSRomanRevivalist;
+			opinion -= targetArcology.FSChineseRevivalist;
 		}
-	} else if (V.activeArcology.FSAztecRevivalist !== "unset") {
-		if (V.targetArcology.FSAztecRevivalist !== "unset") {
-			opinion += V.activeArcology.FSAztecRevivalist;
-			opinion += V.targetArcology.FSAztecRevivalist;
-		} else if (V.targetArcology.FSRomanRevivalist !== "unset") {
-			opinion -= V.activeArcology.FSAztecRevivalist;
-			opinion -= V.targetArcology.FSRomanRevivalist;
-		} else if (V.targetArcology.FSEgyptianRevivalist !== "unset") {
-			opinion -= V.activeArcology.FSAztecRevivalist;
-			opinion -= V.targetArcology.FSEgyptianRevivalist;
-		} else if (V.targetArcology.FSEdoRevivalist !== "unset") {
-			opinion -= V.activeArcology.FSAztecRevivalist;
-			opinion -= V.targetArcology.FSEdoRevivalist;
-		} else if (V.targetArcology.FSArabianRevivalist !== "unset") {
-			opinion -= V.activeArcology.FSAztecRevivalist;
-			opinion -= V.targetArcology.FSArabianRevivalist;
-		} else if (V.targetArcology.FSChineseRevivalist !== "unset") {
-			opinion -= V.activeArcology.FSAztecRevivalist;
-			opinion -= V.targetArcology.FSChineseRevivalist;
+	} else if (activeArcology.FSAztecRevivalist !== "unset") {
+		if (targetArcology.FSAztecRevivalist !== "unset") {
+			opinion += activeArcology.FSAztecRevivalist;
+			opinion += targetArcology.FSAztecRevivalist;
+		} else if (targetArcology.FSRomanRevivalist !== "unset") {
+			opinion -= activeArcology.FSAztecRevivalist;
+			opinion -= targetArcology.FSRomanRevivalist;
+		} else if (targetArcology.FSEgyptianRevivalist !== "unset") {
+			opinion -= activeArcology.FSAztecRevivalist;
+			opinion -= targetArcology.FSEgyptianRevivalist;
+		} else if (targetArcology.FSEdoRevivalist !== "unset") {
+			opinion -= activeArcology.FSAztecRevivalist;
+			opinion -= targetArcology.FSEdoRevivalist;
+		} else if (targetArcology.FSArabianRevivalist !== "unset") {
+			opinion -= activeArcology.FSAztecRevivalist;
+			opinion -= targetArcology.FSArabianRevivalist;
+		} else if (targetArcology.FSChineseRevivalist !== "unset") {
+			opinion -= activeArcology.FSAztecRevivalist;
+			opinion -= targetArcology.FSChineseRevivalist;
 		}
-	} else if (V.activeArcology.FSEgyptianRevivalist !== "unset") {
-		if (V.targetArcology.FSEgyptianRevivalist !== "unset") {
-			opinion += V.activeArcology.FSEgyptianRevivalist;
-			opinion += V.targetArcology.FSEgyptianRevivalist;
-		} else if (V.targetArcology.FSRomanRevivalist !== "unset") {
-			opinion -= V.activeArcology.FSEgyptianRevivalist;
-			opinion -= V.targetArcology.FSRomanRevivalist;
-		} else if (V.targetArcology.FSAztecRevivalist !== "unset") {
-			opinion -= V.activeArcology.FSEgyptianRevivalist;
-			opinion -= V.targetArcology.FSAztecRevivalist;
-		} else if (V.targetArcology.FSEdoRevivalist !== "unset") {
-			opinion -= V.activeArcology.FSEgyptianRevivalist;
-			opinion -= V.targetArcology.FSEdoRevivalist;
-		} else if (V.targetArcology.FSArabianRevivalist !== "unset") {
-			opinion -= V.activeArcology.FSEgyptianRevivalist;
-			opinion -= V.targetArcology.FSArabianRevivalist;
-		} else if (V.targetArcology.FSChineseRevivalist !== "unset") {
-			opinion -= V.activeArcology.FSEgyptianRevivalist;
-			opinion -= V.targetArcology.FSChineseRevivalist;
+	} else if (activeArcology.FSEgyptianRevivalist !== "unset") {
+		if (targetArcology.FSEgyptianRevivalist !== "unset") {
+			opinion += activeArcology.FSEgyptianRevivalist;
+			opinion += targetArcology.FSEgyptianRevivalist;
+		} else if (targetArcology.FSRomanRevivalist !== "unset") {
+			opinion -= activeArcology.FSEgyptianRevivalist;
+			opinion -= targetArcology.FSRomanRevivalist;
+		} else if (targetArcology.FSAztecRevivalist !== "unset") {
+			opinion -= activeArcology.FSEgyptianRevivalist;
+			opinion -= targetArcology.FSAztecRevivalist;
+		} else if (targetArcology.FSEdoRevivalist !== "unset") {
+			opinion -= activeArcology.FSEgyptianRevivalist;
+			opinion -= targetArcology.FSEdoRevivalist;
+		} else if (targetArcology.FSArabianRevivalist !== "unset") {
+			opinion -= activeArcology.FSEgyptianRevivalist;
+			opinion -= targetArcology.FSArabianRevivalist;
+		} else if (targetArcology.FSChineseRevivalist !== "unset") {
+			opinion -= activeArcology.FSEgyptianRevivalist;
+			opinion -= targetArcology.FSChineseRevivalist;
 		}
-		if (V.targetArcology.FSIncestFetishist !== "unset") {
-			opinion += V.activeArcology.FSEgyptianRevivalist;
-			opinion += V.targetArcology.FSIncestFetishist;
+		if (targetArcology.FSIncestFetishist !== "unset") {
+			opinion += activeArcology.FSEgyptianRevivalist;
+			opinion += targetArcology.FSIncestFetishist;
 		}
-	} else if (V.activeArcology.FSEdoRevivalist !== "unset") {
-		if (V.targetArcology.FSEdoRevivalist !== "unset") {
-			opinion += V.activeArcology.FSEdoRevivalist;
-			opinion += V.targetArcology.FSEdoRevivalist;
-		} else if (V.targetArcology.FSEgyptianRevivalist !== "unset") {
-			opinion -= V.activeArcology.FSEdoRevivalist;
-			opinion -= V.targetArcology.FSEgyptianRevivalist;
-		} else if (V.targetArcology.FSRomanRevivalist !== "unset") {
-			opinion -= V.activeArcology.FSEdoRevivalist;
-			opinion -= V.targetArcology.FSRomanRevivalist;
-		} else if (V.targetArcology.FSAztecRevivalist !== "unset") {
-			opinion -= V.activeArcology.FSEdoRevivalist;
-			opinion -= V.targetArcology.FSAztecRevivalist;
-		} else if (V.targetArcology.FSArabianRevivalist !== "unset") {
-			opinion -= V.activeArcology.FSEdoRevivalist;
-			opinion -= V.targetArcology.FSArabianRevivalist;
-		} else if (V.targetArcology.FSChineseRevivalist !== "unset") {
-			opinion -= V.activeArcology.FSEdoRevivalist;
-			opinion -= V.targetArcology.FSChineseRevivalist;
+	} else if (activeArcology.FSEdoRevivalist !== "unset") {
+		if (targetArcology.FSEdoRevivalist !== "unset") {
+			opinion += activeArcology.FSEdoRevivalist;
+			opinion += targetArcology.FSEdoRevivalist;
+		} else if (targetArcology.FSEgyptianRevivalist !== "unset") {
+			opinion -= activeArcology.FSEdoRevivalist;
+			opinion -= targetArcology.FSEgyptianRevivalist;
+		} else if (targetArcology.FSRomanRevivalist !== "unset") {
+			opinion -= activeArcology.FSEdoRevivalist;
+			opinion -= targetArcology.FSRomanRevivalist;
+		} else if (targetArcology.FSAztecRevivalist !== "unset") {
+			opinion -= activeArcology.FSEdoRevivalist;
+			opinion -= targetArcology.FSAztecRevivalist;
+		} else if (targetArcology.FSArabianRevivalist !== "unset") {
+			opinion -= activeArcology.FSEdoRevivalist;
+			opinion -= targetArcology.FSArabianRevivalist;
+		} else if (targetArcology.FSChineseRevivalist !== "unset") {
+			opinion -= activeArcology.FSEdoRevivalist;
+			opinion -= targetArcology.FSChineseRevivalist;
 		}
-	} else if (V.activeArcology.FSArabianRevivalist !== "unset") {
-		if (V.targetArcology.FSArabianRevivalist !== "unset") {
-			opinion += V.activeArcology.FSArabianRevivalist;
-			opinion += V.targetArcology.FSArabianRevivalist;
-		} else if (V.targetArcology.FSEgyptianRevivalist !== "unset") {
-			opinion -= V.activeArcology.FSArabianRevivalist;
-			opinion -= V.targetArcology.FSEgyptianRevivalist;
-		} else if (V.targetArcology.FSEdoRevivalist !== "unset") {
-			opinion -= V.activeArcology.FSArabianRevivalist;
-			opinion -= V.targetArcology.FSEdoRevivalist;
-		} else if (V.targetArcology.FSRomanRevivalist !== "unset") {
-			opinion -= V.activeArcology.FSArabianRevivalist;
-			opinion -= V.targetArcology.FSRomanRevivalist;
-		} else if (V.targetArcology.FSAztecRevivalist !== "unset") {
-			opinion -= V.activeArcology.FSArabianRevivalist;
-			opinion -= V.targetArcology.FSAztecRevivalist;
-		} else if (V.targetArcology.FSChineseRevivalist !== "unset") {
-			opinion -= V.activeArcology.FSArabianRevivalist;
-			opinion -= V.targetArcology.FSChineseRevivalist;
+	} else if (activeArcology.FSArabianRevivalist !== "unset") {
+		if (targetArcology.FSArabianRevivalist !== "unset") {
+			opinion += activeArcology.FSArabianRevivalist;
+			opinion += targetArcology.FSArabianRevivalist;
+		} else if (targetArcology.FSEgyptianRevivalist !== "unset") {
+			opinion -= activeArcology.FSArabianRevivalist;
+			opinion -= targetArcology.FSEgyptianRevivalist;
+		} else if (targetArcology.FSEdoRevivalist !== "unset") {
+			opinion -= activeArcology.FSArabianRevivalist;
+			opinion -= targetArcology.FSEdoRevivalist;
+		} else if (targetArcology.FSRomanRevivalist !== "unset") {
+			opinion -= activeArcology.FSArabianRevivalist;
+			opinion -= targetArcology.FSRomanRevivalist;
+		} else if (targetArcology.FSAztecRevivalist !== "unset") {
+			opinion -= activeArcology.FSArabianRevivalist;
+			opinion -= targetArcology.FSAztecRevivalist;
+		} else if (targetArcology.FSChineseRevivalist !== "unset") {
+			opinion -= activeArcology.FSArabianRevivalist;
+			opinion -= targetArcology.FSChineseRevivalist;
 		}
-	} else if (V.activeArcology.FSChineseRevivalist !== "unset") {
-		if (V.targetArcology.FSChineseRevivalist !== "unset") {
-			opinion += V.activeArcology.FSChineseRevivalist;
-			opinion += V.targetArcology.FSChineseRevivalist;
-		} else if (V.targetArcology.FSEgyptianRevivalist !== "unset") {
-			opinion -= V.activeArcology.FSChineseRevivalist;
-			opinion -= V.targetArcology.FSEgyptianRevivalist;
-		} else if (V.targetArcology.FSEdoRevivalist !== "unset") {
-			opinion -= V.activeArcology.FSChineseRevivalist;
-			opinion -= V.targetArcology.FSEdoRevivalist;
-		} else if (V.targetArcology.FSArabianRevivalist !== "unset") {
-			opinion -= V.activeArcology.FSChineseRevivalist;
-			opinion -= V.targetArcology.FSArabianRevivalist;
-		} else if (V.targetArcology.FSRomanRevivalist !== "unset") {
-			opinion -= V.activeArcology.FSChineseRevivalist;
-			opinion -= V.targetArcology.FSRomanRevivalist;
-		} else if (V.targetArcology.FSAztecRevivalist !== "unset") {
-			opinion -= V.activeArcology.FSChineseRevivalist;
-			opinion -= V.targetArcology.FSAztecRevivalist;
+	} else if (activeArcology.FSChineseRevivalist !== "unset") {
+		if (targetArcology.FSChineseRevivalist !== "unset") {
+			opinion += activeArcology.FSChineseRevivalist;
+			opinion += targetArcology.FSChineseRevivalist;
+		} else if (targetArcology.FSEgyptianRevivalist !== "unset") {
+			opinion -= activeArcology.FSChineseRevivalist;
+			opinion -= targetArcology.FSEgyptianRevivalist;
+		} else if (targetArcology.FSEdoRevivalist !== "unset") {
+			opinion -= activeArcology.FSChineseRevivalist;
+			opinion -= targetArcology.FSEdoRevivalist;
+		} else if (targetArcology.FSArabianRevivalist !== "unset") {
+			opinion -= activeArcology.FSChineseRevivalist;
+			opinion -= targetArcology.FSArabianRevivalist;
+		} else if (targetArcology.FSRomanRevivalist !== "unset") {
+			opinion -= activeArcology.FSChineseRevivalist;
+			opinion -= targetArcology.FSRomanRevivalist;
+		} else if (targetArcology.FSAztecRevivalist !== "unset") {
+			opinion -= activeArcology.FSChineseRevivalist;
+			opinion -= targetArcology.FSAztecRevivalist;
 		}
 	}
-	if (V.activeArcology.FSIncestFetishist !== "unset") {
-		if (V.targetArcology.FSIncestFetishist !== "unset") {
-			opinion += V.activeArcology.FSIncestFetishist;
-			opinion += V.targetArcology.FSIncestFetishist;
+	if (activeArcology.FSIncestFetishist !== "unset") {
+		if (targetArcology.FSIncestFetishist !== "unset") {
+			opinion += activeArcology.FSIncestFetishist;
+			opinion += targetArcology.FSIncestFetishist;
 		}
-		if (V.targetArcology.FSEgyptianRevivalist !== "unset") {
-			opinion += V.activeArcology.FSIncestFetishist;
-			opinion += V.targetArcology.FSEgyptianRevivalist;
+		if (targetArcology.FSEgyptianRevivalist !== "unset") {
+			opinion += activeArcology.FSIncestFetishist;
+			opinion += targetArcology.FSEgyptianRevivalist;
 		}
 	}
 
-	V.opinion = Number(opinion) || 0;
+	return opinion = Number(opinion) || 0;
 
-	V.activeArcology = 0;
-	V.targetArcology = 0;
 };
diff --git a/src/uncategorized/arcmgmt.tw b/src/uncategorized/arcmgmt.tw
index c99e068353f2d3231bd2d0ec310f62f023990776..b094e65fb459b34078520eb53c3f930d944d1924 100644
--- a/src/uncategorized/arcmgmt.tw
+++ b/src/uncategorized/arcmgmt.tw
@@ -1382,12 +1382,10 @@ You own
 	<<set $desc = []>>
 	<<set $descNeg = []>>
 	<<for $i = 1; $i < $arcologies.length; $i++>>
-		<<set $activeArcology = $arcologies[0]>>
-		<<set $targetArcology = $arcologies[$i]>>
-		<<= arcologyOpinion()>>
-		<<if $opinion >= 100>>
+		<<set _opinion = arcologyOpinion($arcologies[0], $arcologies[$i])>>
+		<<if _opinion >= 100>>
 			<<set $desc.push($arcologies[$i].name)>>
-		<<elseif $opinion <= -100>>
+		<<elseif _opinion <= -100>>
 			<<set $descNeg.push($arcologies[$i].name)>>
 		<</if>>
 	<</for>>
diff --git a/src/uncategorized/bulkSlaveGenerate.tw b/src/uncategorized/bulkSlaveGenerate.tw
index 3bd8f6822c550abfa5bde8a79c1065065782cfe3..1f671b0fb60cd47110c1b012365ee61a9cb8e4b8 100644
--- a/src/uncategorized/bulkSlaveGenerate.tw
+++ b/src/uncategorized/bulkSlaveGenerate.tw
@@ -65,15 +65,13 @@
 	<</if>>
 
 <<case "neighbor">>
-	<<set $activeArcology = $arcologies[0]>>
 	<<if $numArcology >= $arcologies.length>>
 		<<set $numArcology = 1>>
 	<</if>>
-	<<set $targetArcology = $arcologies[$numArcology]>>
-	<<= arcologyOpinion()>>
-	<<set $opinion = Math.trunc($opinion/20)>>
-	<<set $opinion = Math.clamp($opinion, -10, 10)>>
-	<<set $discount -= ($opinion * 25)>>
+	<<set _opinion = arcologyOpinion($arcologies[0], $arcologies[$numArcology])>>
+	<<set _opinion = Math.trunc(_opinion/20)>>
+	<<set _opinion = Math.clamp(_opinion, -10, 10)>>
+	<<set $discount -= (_opinion * 25)>>
 
 <</switch>>
 
diff --git a/src/uncategorized/neighborInteract.tw b/src/uncategorized/neighborInteract.tw
index 431c8edf09cfeb50b683bfad912ff6b58a50b1cf..d066e1681deeeb39f1d8c9ba9f53819426de350f 100644
--- a/src/uncategorized/neighborInteract.tw
+++ b/src/uncategorized/neighborInteract.tw
@@ -373,7 +373,8 @@ You have <<print $arcologies.length-1>> neighbors. <br><br>
 	<<elseif $arcologies[_currentNeighbor].direction === $arcologies[0].embargoTarget>>
 		Due to your active embargo, trade with $arcologies[_currentNeighbor].name is not possible.
 	<<else>>
-		<<set $targetArcology = $arcologies[0], _tempArc = $arcologies[_currentNeighbor]>><<= arcologyOpinion()>><<set _prices = $opinion*10, $arcologies[_currentNeighbor] = _tempArc>>
+		<<set _opinion = arcologyOpinion($arcologies[_currentNeighbor], $arcologies[0])>>
+		<<set _prices = _opinion*10>>
 	<</if>>
 	<<if $arcologies[_currentNeighbor].FSRomanRevivalist > 95>>
 		<<if !isItemAccessible("a toga")>>
diff --git a/src/uncategorized/neighborsFSAdoption.tw b/src/uncategorized/neighborsFSAdoption.tw
index 1d64749edf310c386ec39eb9561b67e5b2278d61..f87fe19dd9e907b2d65782fbefb002558d1bd10c 100644
--- a/src/uncategorized/neighborsFSAdoption.tw
+++ b/src/uncategorized/neighborsFSAdoption.tw
@@ -770,16 +770,13 @@ societal development.
 			<<set $influenceBonus = 20>>
 		<</if>>
 
-		<<set $activeArcology = $arcologies[$i]>>
-		<<set $targetArcology = $arcologies[$j]>>
-
-		<<= arcologyOpinion()>>
-		<<if $opinion >= 50>>
+		<<set _opinion = arcologyOpinion($arcologies[$i], $arcologies[$j])>>
+		<<if _opinion >= 50>>
 			$arcologies[$i].name is aligned with $arcologies[$j].name socially, encouraging it to consider adopting all its cultural values.
-			<<set $influenceBonus += $opinion-50>>
-		<<elseif $opinion <= -50>>
+			<<set $influenceBonus += _opinion-50>>
+		<<elseif _opinion <= -50>>
 			$arcologies[$i].name is culturally opposed to $arcologies[$j].name, encouraging it to resist adopting its cultural values.
-			<<set $influenceBonus += $opinion+50>>
+			<<set $influenceBonus += _opinion+50>>
 		<</if>>
 
 		<<if ($arcologies[$i].FSSubjugationist == "unset")>>