summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rw-r--r--scripts/toy.groovy50
1 files changed, 37 insertions, 13 deletions
diff --git a/scripts/toy.groovy b/scripts/toy.groovy
index 1deaf3c..8bb614b 100644
--- a/scripts/toy.groovy
+++ b/scripts/toy.groovy
@@ -16,6 +16,7 @@ final soonFormatter = java.time.format.DateTimeFormatter.ofPattern("EEEE 'at' h:
// Notes
// toys.<name> ankle_cuffs, ballgag, blindfold, chastity_belt, clothespins, cockring, dog_collar, handcuffs, hood, nipple_clamps, ring_gag
final BALLGAG = "ballgag", COLLAR = "dog_collar", CLAMPS = "nipple_clamps", CHASTITY = "chastity_belt", HANDCUFFS = "handcuffs";
+final SPOON = "spoon";
// fetish.<name>
final BONDAGE = "bondage", CBT = "cbt", CHORES = "chores", PAIN = "pain";
// toy.permission.<name>
@@ -220,6 +221,7 @@ def execEvents = { rt ->
}
};
def sessionAborted = null;
+def sessionToys = [:];
def gagText = { t, p ->
if (!is(GAGGED)) return t;
return t.split(/\s+/)
@@ -717,11 +719,20 @@ def chastity = { pre ->
["But...", "I just like to be sure."]]);
}
wait(getRandom(5) + 10);
- present([DRESSED,TEASE], [
- ["Go to your room,", "Run along now,"],
- ["get your chastity device and"],
- ["lock it on.", "get that cock secured away."],
- ["Bring back the key.", "I want the key of course."]]);
+ if (sessionToys.containsKey(CHASTITY)) {
+ present([DRESSED,TEASE], [
+ ["Time to", "Get your chastity device and"],
+ ["lock my cock away again now.", "get that cock back in its cage."],
+ ["And for you to", "And then"],
+ ["hand over the key", "give me the key back."]]);
+ }
+ else {
+ present([DRESSED,TEASE], [
+ ["Go to your room,", "Run along now,"],
+ ["get your chastity device and"],
+ ["lock it on.", "get that cock secured away."],
+ ["Bring back the key.", "I want the key of course."]]);
+ }
wait(10);
show(null);
showButtonGT("Locked, mistress. Here's the key.", "locked", 180, 1);
@@ -794,20 +805,31 @@ def playNothing = {
};
};
def playCbt = {
- present([DRESSED], [
- ["Go to the kitchen...", "From the kitchen..."],
- ["bring me", "get yourself"],
- ["a wooden spoon or similar."]]);
- showButtonG("Yes, mistress", "ok");
- wait(5);
final BEATS = [
// bpm:30, len:60 ],
[ bpm:90, len:45 ],
[ bpm:165, len:30 ],
[ bpm:180, len:30 ],
[ bpm:240, len:20 ],
- ];
- showButtonGT("Back, mistress", "back", 20, 1);
+ ];
+ if (sessionToys.containsKey(SPOON)) {
+ present([DRESSED], [
+ ["Pick up", "Grab"],
+ ["your", "that"],
+ ["wooden spoon"],
+ ["again."]]);
+ wait(10);
+ }
+ else {
+ present([DRESSED], [
+ ["Go to the kitchen...", "From the kitchen..."],
+ ["bring me", "get yourself"],
+ ["a wooden spoon or similar."]]);
+ showButtonG("Yes, mistress", "ok");
+ wait(5);
+ showButtonGT("Back, mistress", "back", 20, 1);
+ sessionToys[SPOON] = getTime();
+ }
present([DRESSED], [
["Good.", "Right."],
["Take those balls in one hand", "In one hand, hold your balls"],
@@ -1013,6 +1035,7 @@ def sessionSummon = { imageSpec ->
return false;
};
def sessionPlay = {
+ if (is(CHASTE)) sessionToys[CHASTITY] = getTime();
def ph = (float)1.0;
def pm = { val ->
if (val) {
@@ -1130,6 +1153,7 @@ def sessionRelease = { goodToy ->
wait(10);
showLounge();
sessionAborted = null;
+ sessionToys = [:];
if (goodToy) {
adjustPunish(-20);
}