From 40311b513c55cd0bedffa3c7c1568a0e159061a0 Mon Sep 17 00:00:00 2001
From: DCoded <dicoded@email.com>
Date: Thu, 16 Dec 2021 22:31:06 -0500
Subject: [PATCH] Added Option class

---
 src/interaction/useSlave/useSlave.js        |  4 ++--
 src/interaction/useSlave/useSlaveHelpers.js | 19 +++++++++++++++++++
 2 files changed, 21 insertions(+), 2 deletions(-)

diff --git a/src/interaction/useSlave/useSlave.js b/src/interaction/useSlave/useSlave.js
index 8cb4cceae51..c0ef1e02e94 100644
--- a/src/interaction/useSlave/useSlave.js
+++ b/src/interaction/useSlave/useSlave.js
@@ -15,7 +15,7 @@ App.UI.SlaveInteract.useSlave = function(slave) {
 
 	const {he, him, his} = getPronouns(slave);
 
-	/** @type {Record<string, string>[]} */
+	/** @type {FC.UseSlave.Option[]} */
 	const log = [];
 	/** @enum {string} */
 	const none = "none";
@@ -135,7 +135,7 @@ App.UI.SlaveInteract.useSlave = function(slave) {
 			div.innerHTML = e.desc;
 			div.append(App.UI.DOM.makeElement("div", e.reaction, ['indent', 'italics']));
 
-			log.push({action: e.link});
+			log.push(new App.UI.SlaveInteract.Option(e.link, e.desc, e.tooltip, e.prereq, e.effect, e.reaction));
 
 			e.effect();
 
diff --git a/src/interaction/useSlave/useSlaveHelpers.js b/src/interaction/useSlave/useSlaveHelpers.js
index 1dd3f35329b..f267aeaeff4 100644
--- a/src/interaction/useSlave/useSlaveHelpers.js
+++ b/src/interaction/useSlave/useSlaveHelpers.js
@@ -17,6 +17,25 @@ App.UI.SlaveInteract.Action = {
 	VAGINAL: 'vaginal',
 };
 
+App.UI.SlaveInteract.Option = class Option {
+	/**
+	 * @param {string} link
+	 * @param {string} desc
+	 * @param {string} tooltip
+	 * @param {() => boolean} prereq
+	 * @param {() => void} effect
+	 * @param {string} reaction
+	 */
+	constructor(link, desc, tooltip, prereq, effect, reaction) {
+		this.link = link;
+		this.desc = desc;
+		this.tooltip = tooltip;
+		this.prereq = prereq;
+		this.effect = effect;
+		this.reaction = reaction;
+	}
+};
+
 /** A class containing the different temporary variables and states for each participant. */
 App.UI.SlaveInteract.CharacterState = class CharacterState {
 	constructor() {
-- 
GitLab