From e97a87ebd4d0865cbcd771be0375c89f11a3fc21 Mon Sep 17 00:00:00 2001
From: Anu <anulithic@gmail.com>
Date: Fri, 7 Oct 2022 22:06:44 -0700
Subject: [PATCH] Chastity shuffling

---
 src/events/RESS/review/firstPeriod.js | 23 ++++++++++++++++++++++-
 1 file changed, 22 insertions(+), 1 deletion(-)

diff --git a/src/events/RESS/review/firstPeriod.js b/src/events/RESS/review/firstPeriod.js
index 574f7b9ef89..9205e70b96c 100644
--- a/src/events/RESS/review/firstPeriod.js
+++ b/src/events/RESS/review/firstPeriod.js
@@ -95,6 +95,12 @@ App.Events.RESSFirstPeriod = class RESSFirstPeriod extends App.Events.BaseEvent
 		function demonstrate() {
 			const frag = new DocumentFragment();
 			let r = [];
+			let restoreChastity = 0;
+			if (slave.chastityVagina === 1) {
+				r.push(`You unlock ${his} chastity belt and set it aside, ${his} ${canSee(slave) ? `eyes widening as ${he} watches` : `body stiffening as ${he} feels`} your movements.`);
+				slave.chastityVagina = 0;
+				restoreChastity = 1;
+			}
 			r.push(`You tell ${him} that ${he} is just becoming a woman, and to celebrate, you are going to put a child in ${him}.`);
 			if (!canTalk(slave)) {
 				r.push(`${He} gasps and rubs a hand across ${his} stomach.`);
@@ -131,6 +137,11 @@ App.Events.RESSFirstPeriod = class RESSFirstPeriod extends App.Events.BaseEvent
 			WombImpregnate(slave, slave.pregType, -1, 1);
 			r.push(VCheck.Vaginal(slave, 1));
 
+			if (restoreChastity) {
+				r.push(`The deed done, you return ${his} chastity belt to its accustomed place before allowing ${him} to leave your office.`);
+				slave.chastityVagina = 1;
+			}
+
 			App.Events.addParagraph(frag, r);
 			return frag;
 		}
@@ -138,7 +149,16 @@ App.Events.RESSFirstPeriod = class RESSFirstPeriod extends App.Events.BaseEvent
 		function ass() {
 			const frag = new DocumentFragment();
 			let r = [];
-			r.push(`In one swift motion, you pull out a chastity belt and lock it onto ${him}. ${He} gasps as ${he} feels it hug close to ${his} pussy. You explain that ${he} has just become a woman, and thus, will be taking it up the ass until you decide it's time for ${him} to become pregnant.`);
+			if (slave.chastityAnus === 1 && slave.chastityVagina === 1) { // double chastity, remove anal
+				r.push(`In one swift motion, you unlock and detach ${his} anal chastity belt. ${He} gasps at the sudden feeling of freedom at ${his} back door.`);
+			} else if (slave.chastityAnus === 1) { // anal chastity, swap for vaginal
+				r.push(`In a few swift motions, you remove ${his} anal chastity belt and replace it with one encasing ${his} vagina. ${He} gasps as ${he} feels it hug close to ${his} pussy.`);
+			} else if (slave.chastityVagina === 1) { // vaginal chastity, don't remove
+				r.push(`You bring your hand to ${his} chastity belt, feigning dramatically that you might remove it, before 'reconsidering' and pulling your hand away.`);
+			} else { // no chastity, give vaginal
+				r.push(`In one swift motion, you pull out a chastity belt and lock it onto ${him}. ${He} gasps as ${he} feels it hug close to ${his} pussy.`);
+			}
+			r.push(`You explain that ${he} has just become a woman, and thus, will be taking it up the ass until you decide it's time for ${him} to become pregnant.`);
 			if (!canTalk(slave)) {
 				r.push(`${He} rubs a hand across ${his} stomach.`);
 			} else {
@@ -173,6 +193,7 @@ App.Events.RESSFirstPeriod = class RESSFirstPeriod extends App.Events.BaseEvent
 			}
 			slave.devotion += 5;
 			slave.chastityVagina = 1;
+			slave.chastityAnus = 0;
 			r.push(VCheck.Anal(slave, 1));
 
 			App.Events.addParagraph(frag, r);
-- 
GitLab