From 408512bbc3dabfaf12ed910a6819a8f0e6edd2d7 Mon Sep 17 00:00:00 2001
From: indf24 <109249146+indf24@users.noreply.github.com>
Date: Tue, 19 Mar 2024 00:32:49 +0000
Subject: [PATCH] Rules assistant option for ovaries implant (not checking if
 it's unlocked)

---
 devTools/types/FC/RA.d.ts       |  2 ++
 src/js/rulesAssistant.js        |  2 ++
 src/js/rulesAssistantOptions.js | 24 ++++++++++++++++++++++++
 3 files changed, 28 insertions(+)

diff --git a/devTools/types/FC/RA.d.ts b/devTools/types/FC/RA.d.ts
index 18541db822f..12ad19b8c71 100644
--- a/devTools/types/FC/RA.d.ts
+++ b/devTools/types/FC/RA.d.ts
@@ -27,6 +27,8 @@ declare namespace FC {
 			tastes: number;
 			lactation: number;
 			prostate: number;
+			ovaImplant: number;
+			ovaImplantAllowReplacing: boolean;
 			cosmetic: number;
 			accent: number;
 			shoulders: number;
diff --git a/src/js/rulesAssistant.js b/src/js/rulesAssistant.js
index e888ff4699e..99b90cde54d 100644
--- a/src/js/rulesAssistant.js
+++ b/src/js/rulesAssistant.js
@@ -344,6 +344,8 @@ App.RA.newRule = function() {
 			tastes: null,
 			lactation: null,
 			prostate: null,
+			ovaImplant: null,
+			ovaImplantAllowReplacing: true,
 			cosmetic: null,
 			accent: null,
 			shoulders: null,
diff --git a/src/js/rulesAssistantOptions.js b/src/js/rulesAssistantOptions.js
index 7010a94a725..b94d2c2ce43 100644
--- a/src/js/rulesAssistantOptions.js
+++ b/src/js/rulesAssistantOptions.js
@@ -1689,6 +1689,8 @@ App.RA.options = (function() {
 				this.appendChild(new SemenSurgeryList());
 				this.appendChild(new VasectomyList());
 			}
+			this.appendChild(new OvariesImplantsSurgeryList());
+			this.appendChild(new OvariesImplantsAllowReplacing());
 			this.appendChild(new CosmeticSurgeryList());
 			this.appendChild(new LipSurgeryList());
 			this.appendChild(new ButtSurgeryList());
@@ -3926,6 +3928,28 @@ App.RA.options = (function() {
 		}
 	}
 
+	class OvariesImplantsSurgeryList extends RadioSelector {
+		constructor() {
+			const items = [
+				["none", 0],
+				["fertility", "fertility"],
+				["sympathy", "sympathy"]
+			];
+			super("Ovaries implants type", items, true);
+			this.setValue(current_rule.set.surgery.ovaImplant);
+			this.onchange = (value) => current_rule.set.surgery.ovaImplant = value;
+		}
+	}
+
+	class OvariesImplantsAllowReplacing extends BooleanSwitch {
+		constructor() {
+			super(`Replace other types of ovaries implants`);
+
+			this.setValue(current_rule.set.surgery.ovaImplantAllowReplacing);
+			this.onchange = (value) => current_rule.set.surgery.ovaImplantAllowReplacing = value;
+		}
+	}
+
 	class CosmeticSurgeryList extends ListSelector {
 		constructor() {
 			const items = [
-- 
GitLab