diff --git a/devTools/types/FC/human.d.ts b/devTools/types/FC/human.d.ts index b7bf00245fce571609aec683c6c1bf0bee64c77c..b50043261bd2734f7c94d44ccb6f47376a7b5fba 100644 --- a/devTools/types/FC/human.d.ts +++ b/devTools/types/FC/human.d.ts @@ -127,8 +127,24 @@ declare global { IMPORTED: '@be imported'; TANK: '@lay in tank'; } + type Fetish = WithNone<"mindbroken" | "submissive" | "cumslut" | "humiliation" | "buttslut" | "boobs" | "sadist" | "masochist" | "dom" | "pregnancy">; + + interface FetishFreeze extends Record<string, Fetish> { + NONE: "none"; + MINDBROKEN: "mindbroken"; + SUBMISSIVE: "submissive"; + CUMSLUT: "cumslut"; + HUMILIATION: "humiliation"; + BUTTSLUT: "buttslut"; + BOOBS: "boobs"; + SADIST: "sadist"; + MASOCHIST: "masochist"; + DOM: "dom"; + PREGNANCY: "pregnancy"; + } + type BehavioralFlaw = WithNone< | "arrogant" // clings to her dignity, thinks slavery is beneath her | "bitchy" // : can 't keep her opinions to herself diff --git a/js/003-data/constants.js b/js/003-data/constants.js index 4c78a1d70136bf013cb034ef476d7d8b9151f8c3..88dc8a791708ef6a65dcd6e3a97bab96a242b8e7 100644 --- a/js/003-data/constants.js +++ b/js/003-data/constants.js @@ -100,3 +100,21 @@ globalThis.DescType = Object.freeze({ EVENT: "event", SURGERY: "surgery" }); + +/** + * @type {FC.FetishFreeze} + * @enum {string} + */ +globalThis.Fetish = Object.freeze({ + NONE: "none", + MINDBROKEN: "mindbroken", + SUBMISSIVE: "submissive", + CUMSLUT: "cumslut", + HUMILIATION: "humiliation", + BUTTSLUT: "buttslut", + BOOBS: "boobs", + SADIST: "sadist", + MASOCHIST: "masochist", + DOM: "dom", + PREGNANCY: "pregnancy", +}); diff --git a/src/interaction/useSlave/useSlaveOptions.js b/src/interaction/useSlave/useSlaveOptions.js index 0e9d214924636fafc05bae750b2339798db254ae..41bef21513844cad979298bf3cc6f1c56a58fabf 100644 --- a/src/interaction/useSlave/useSlaveOptions.js +++ b/src/interaction/useSlave/useSlaveOptions.js @@ -10,20 +10,6 @@ App.UI.SlaveInteract.useSlave.options = function(player, clone, slave, playerSta const {He, His, he, him, his, hers} = getPronouns(clone); - /** @enum {string} */ - const Fetish = { - NONE: "none", - MINDBROKEN: "mindbroken", - SUBMISSIVE: "submissive", - CUMSLUT: "cumslut", - HUMILIATION: "humiliation", - BUTTSLUT: "buttslut", - BOOBS: "boobs", - SADIST: "sadist", - MASOCHIST: "masochist", - DOM: "dom", - PREGNANCY: "pregnancy", - }; /** @enum {string} */ const none = "none"; /** @enum {boolean} */ @@ -257,7 +243,7 @@ App.UI.SlaveInteract.useSlave.options = function(player, clone, slave, playerSta playerState.sexAct = null; slaveState.sexAct = null; playerState.position = Position.STANDING; - } + } }, reaction: this.reactionText.makeSlaveCum(clone), }, @@ -665,8 +651,8 @@ App.UI.SlaveInteract.useSlave.options = function(player, clone, slave, playerSta * Allow the act to happen if either: * - Neither character is performing a sex act * - Exactly one character is performing oral sex on the other - **/ - ((playerState.sexAct === null && slaveState.sexAct === null) || + **/ + ((playerState.sexAct === null && slaveState.sexAct === null) || ((slaveState.sexAct === SexAct.ORAL || playerState.sexAct === SexAct.ORAL) && (slaveState.sexAct !== SexAct.ORAL || playerState.sexAct !== SexAct.ORAL))), effect: () => {