diff --git a/src/facilities/farmyard/animals/animals.js b/src/facilities/farmyard/animals/animals.js index fa0b4e0185c6be724ae334e5f7bf7f3e7cf1ad4d..8bc47b99b80dd7d59ff0c1db3f0a2cd30a84444e 100644 --- a/src/facilities/farmyard/animals/animals.js +++ b/src/facilities/farmyard/animals/animals.js @@ -30,7 +30,12 @@ App.Entity.Animal = class { return V.active[this.type].name === this.name; } - /** @type {function():this} */ + /** @returns {string} */ + get ballType() { + return this.species; + } + + /** @returns {this} */ purchase() { V[this.type].push(this.name); @@ -65,7 +70,7 @@ App.Entity.Animal = class { return this; } - /** @type {function():this} */ + /** @returns {this} */ setActive() { V.active[this.type] = this; @@ -103,8 +108,8 @@ App.Facilities.Farmyard.animals = function() { const frag = new DocumentFragment(); - const domesticDiv = App.UI.DOM.appendNewElement("div", frag, '', 'farmyard-domestic'); - const exoticDiv = App.UI.DOM.appendNewElement("div", frag, '', 'farmyard-exotic'); + const domesticDiv = App.UI.DOM.appendNewElement("div", frag, null, 'farmyard-domestic'); + const exoticDiv = App.UI.DOM.appendNewElement("div", frag, null, 'farmyard-exotic'); const hrMargin = '0'; @@ -173,7 +178,7 @@ App.Facilities.Farmyard.animals = function() { } function domesticHooved() { - const hoovedDiv = App.UI.DOM.makeElement("div", '', 'farmyard-animals'); + const hoovedDiv = App.UI.DOM.makeElement("div", null, 'farmyard-animals'); const hr = document.createElement("hr"); hr.style.margin = hrMargin; @@ -186,7 +191,7 @@ App.Facilities.Farmyard.animals = function() { } function domesticFelines() { - const felineDiv = App.UI.DOM.makeElement("div", '', 'farmyard-animals'); + const felineDiv = App.UI.DOM.makeElement("div", null, 'farmyard-animals'); const hr = document.createElement("hr"); hr.style.margin = hrMargin; @@ -203,7 +208,7 @@ App.Facilities.Farmyard.animals = function() { // Exotic Animals function exoticCanines() { - const canineDiv = App.UI.DOM.makeElement("div", '', 'farmyard-animals'); + const canineDiv = App.UI.DOM.makeElement("div", null, 'farmyard-animals'); const hr = document.createElement("hr"); hr.style.margin = hrMargin; @@ -216,7 +221,7 @@ App.Facilities.Farmyard.animals = function() { } function exoticHooved() { - const hoovedDiv = App.UI.DOM.makeElement("div", '', 'farmyard-animals'); + const hoovedDiv = App.UI.DOM.makeElement("div", null, 'farmyard-animals'); const hr = document.createElement("hr"); hr.style.margin = hrMargin; @@ -229,7 +234,7 @@ App.Facilities.Farmyard.animals = function() { } function exoticFelines() { - const felineDiv = App.UI.DOM.makeElement("div", '', 'farmyard-animals'); + const felineDiv = App.UI.DOM.makeElement("div", null, 'farmyard-animals'); const hr = document.createElement("hr"); hr.style.margin = hrMargin; @@ -241,8 +246,6 @@ App.Facilities.Farmyard.animals = function() { return felineDiv; } - - // Helper Functions /** @@ -278,36 +281,34 @@ App.Facilities.Farmyard.animals = function() { */ function animalList(type, rarity, price, active) { const mainDiv = document.createElement("div"); - let filteredArray = App.Data.animals.filter(animal => animal.rarity === rarity && animal.type === type); + const filteredArray = App.Data.animals.filter(animal => animal.rarity === rarity && animal.type === type); - for (const i in filteredArray) { + filteredArray.forEach(animal => { const animalDiv = document.createElement("div"); const optionSpan = document.createElement("span"); const args = { - animal: filteredArray[i], + animal: animal, active: active, type: type, price: price, setActiveHandler() { - filteredArray[i].setActive(); + animal.setActive(); App.UI.DOM.replace(mainDiv, animalList(type, rarity, price, active)); }, purchaseHandler() { cashX(forceNeg(price), "farmyard"); - filteredArray[i].purchase(); + animal.purchase(); App.UI.DOM.replace(mainDiv, animalList(type, rarity, price, active)); } }; optionSpan.append(animalLink(args)); - animalDiv.append(capFirstChar(filteredArray[i].name), ' ', optionSpan); + animalDiv.append(capFirstChar(animal.name), ' ', optionSpan); mainDiv.appendChild(animalDiv); - } - - // filteredArray = []; + }); return mainDiv; } diff --git a/src/js/storyJS.js b/src/js/storyJS.js index 1104e28bb29b2d9b09955a00228b0600f02d0cb8..1ebb0663f2580e508e85317dd38092d739045b42 100644 --- a/src/js/storyJS.js +++ b/src/js/storyJS.js @@ -69,7 +69,7 @@ globalThis.filterInPlace = function(arr, callback, thisArg) { /** pregmod: are slave2's sperm compatible with slave1's eggs? * @param {FC.HumanState} slave1 - * @param {FC.HumanState} slave2 + * @param {FC.HumanState|FC.AnimalState} slave2 * @returns {boolean} */ globalThis.canBreed = function(slave1, slave2) { diff --git a/src/npc/interaction/fAnimal.js b/src/npc/interaction/fAnimal.js index 3ba0b8d8e1cb82acf7bcefa063cbe6a18f26ce5f..118691e1d5159978480c91aef36c03c9cbaf7bc9 100644 --- a/src/npc/interaction/fAnimal.js +++ b/src/npc/interaction/fAnimal.js @@ -54,12 +54,12 @@ App.Interact.fAnimal = function(slave, type) { } const slaveApproves = () => - approvingFetishes.includes(slave.fetish) || - approvingFetishes.includes(slave.sexualQuirk) || - approvingFetishes.includes(slave.behavioralQuirk) || - slave.fetish === "buttslut" && act === Acts.ANAL || - slave.fetish === "cumslut" && act === Acts.ORAL || - slave.sexualQuirk === "gagfuck queen" && act === Acts.ORAL; + approvingFetishes.includes(slave.fetish) + || approvingFetishes.includes(slave.sexualQuirk) + || approvingFetishes.includes(slave.behavioralQuirk) + || slave.fetish === "buttslut" && act === Acts.ANAL + || slave.fetish === "cumslut" && act === Acts.ORAL + || slave.sexualQuirk === "gagfuck queen" && act === Acts.ORAL; switch (act) { case Acts.ORAL: