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