From b3ef913ac7164f6efef180d1bdc83b57946ead5b Mon Sep 17 00:00:00 2001
From: DCoded <dcoded@live.com>
Date: Sun, 11 Oct 2020 12:56:30 -0400
Subject: [PATCH] Moved Animal class to App.Entity namespace, bugfixes

---
 src/facilities/farmyard/animals/animals.js | 69 ++++++++++++----------
 src/facilities/pit/pit.js                  | 20 +++----
 2 files changed, 47 insertions(+), 42 deletions(-)

diff --git a/src/facilities/farmyard/animals/animals.js b/src/facilities/farmyard/animals/animals.js
index 0fcc1084fd8..369fb83aa71 100644
--- a/src/facilities/farmyard/animals/animals.js
+++ b/src/facilities/farmyard/animals/animals.js
@@ -1,3 +1,27 @@
+/** The base animal class. */
+App.Entity.Animal = class {
+	/**
+	 * @param {string} name
+	 * @param {string} species
+	 * @param {string} type
+	 * @param {string} rarity
+	 */
+	constructor(name, species, type, rarity) {
+		this.name = name;
+		this.species = species;
+		this.type = type;
+		this.rarity = rarity;
+	}
+
+	get purchased() {
+		return V[this.type].includes(this);
+	}
+
+	purchase() {
+		V[this.type].push(this);
+	}
+}
+
 App.Facilities.Farmyard.animals = function() {
 	const frag = new DocumentFragment();
 
@@ -150,7 +174,7 @@ App.Facilities.Farmyard.animals = function() {
 	 */
 	function animalLink(animal, active, type, price, setActiveHandler, purchaseHandler) {
 		if (animal.purchased) {
-			if (_.isEqual(V[`${active}`], animal)) {
+			if (_.isEqual(V.active[active], animal)) {
 				return App.UI.DOM.makeElement("span", `Set as active ${type}`, "note");
 			} else {
 				return App.UI.DOM.passageLink(`Set as active ${type}`, "Farmyard Animals", setActiveHandler);
@@ -171,7 +195,7 @@ App.Facilities.Farmyard.animals = function() {
 	function animalList(type, rarity, price, active) {
 		const
 			mainDiv = document.createElement("div"),
-			filteredArray = App.Data.animals[type][rarity];
+			filteredArray = App.Data.animals
 
 		for (const i in filteredArray) {
 			const
@@ -195,29 +219,7 @@ App.Facilities.Farmyard.animals = function() {
 };
 
 App.Facilities.Farmyard.animals.init = function() {
-	/** The base animal class. */
-	class Animal {
-		/**
-		 * @param {string} name
-		 * @param {string} species
-		 * @param {string} type
-		 * @param {string} rarity
-		 */
-		constructor(name, species, type, rarity) {
-			this.name = name;
-			this.species = species;
-			this.type = type;
-			this.rarity = rarity;
-		}
-
-		get purchased() {
-			return V[this.type].includes(this);
-		}
-
-		purchase() {
-			V[this.type].push(this);
-		}
-	}
+	class Animal extends App.Entity.Animal {};
 
 	const dog = 'dog';
 	const cat = 'cat';
@@ -256,16 +258,16 @@ App.Facilities.Farmyard.animals.init = function() {
 	];
 	/** @type {Animal[]} */
 	const felineList = [
-		new Animal("Abbysinian",cat, feline, domestic),
+		new Animal("Abbysinian", cat, feline, domestic),
 		new Animal("Bengal", cat, feline, domestic),
 		new Animal("Birman", cat, feline, domestic),
 		new Animal("Maine coon", cat, feline, domestic),
 		new Animal("Oriental shorthair", cat, feline, domestic),
-		new Animal("Persian",cat, feline, domestic),
-		new Animal("Ragdoll",cat, feline, domestic),
-		new Animal("Russian blue",cat, feline, domestic),
-		new Animal("Siamese",cat, feline, domestic),
-		new Animal("Sphynx",cat, feline, domestic),
+		new Animal("Persian", cat, feline, domestic),
+		new Animal("Ragdoll", cat, feline, domestic),
+		new Animal("Russian blue", cat, feline, domestic),
+		new Animal("Siamese", cat, feline, domestic),
+		new Animal("Sphynx", cat, feline, domestic),
 
 		new Animal("cougar", "cougar", feline, exotic),
 		new Animal("jaguar", "jaguar", feline, exotic),
@@ -276,5 +278,8 @@ App.Facilities.Farmyard.animals.init = function() {
 		new Animal("tiger", "tiger", feline, exotic),
 	];
 
-	App.Data.animals = [...canineList, ...hoovedList, ...felineList];
+	App.Data.animals.push(...canineList, ...hoovedList, ...felineList);
 };
+
+/** @type {App.Entity.Animal[]} */
+App.Data.animals = [];
diff --git a/src/facilities/pit/pit.js b/src/facilities/pit/pit.js
index 91021aa87d0..ba17574612c 100644
--- a/src/facilities/pit/pit.js
+++ b/src/facilities/pit/pit.js
@@ -186,16 +186,16 @@ App.Facilities.Pit.pit = function() {
 						);
 					}
 
-					// if (V.active.canine || V.active.hooved || V.active.feline) {
-					// 	links.push(
-					// 		App.UI.DOM.link("Have a slave fight an animal", () => {
-					// 			V.pit.bodyguardFights = false;
-					// 			V.pit.animal = new FC.Facilities.Animal();
-
-					// 			App.UI.DOM.replace(mainDiv, fighters);
-					// 		})
-					// 	);
-					// }
+					if (V.active.canine || V.active.hooved || V.active.feline) {
+						links.push(
+							App.UI.DOM.link("Have a slave fight an animal", () => {
+								V.pit.bodyguardFights = false;
+								V.pit.animal = new App.Entity.Animal();
+
+								App.UI.DOM.replace(mainDiv, fighters);
+							})
+						);
+					}
 				}
 			}
 		} else {
-- 
GitLab