From 91e2d2f613e95c631549e4e6f73cd281c58539e0 Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Sun, 23 Jun 2019 12:24:24 +0100 Subject: Extract chastity into a module --- scripts/toy.groovy | 110 ++--------------------------------------------------- 1 file changed, 4 insertions(+), 106 deletions(-) (limited to 'scripts/toy.groovy') diff --git a/scripts/toy.groovy b/scripts/toy.groovy index d35ced3..538c639 100644 --- a/scripts/toy.groovy +++ b/scripts/toy.groovy @@ -614,44 +614,6 @@ return new Object() { return amount; }; // Pre-tease - def preRelease = { - if (!stateIs(CHASTE)) return; - if (!stateIs(NAKED)) { - present([DRESSED], [ - ["Reach down... and through your clothes...", "Stay clothed,"], - ["rub that chastity device...", "run your hand around that locked cock..."], - ["imagine if that was me doing it.", "that looks frustrating."]]); - wait(15); - present(null, [["Show me.", "Let me see it."]]); - wait(10); - } - else { - present([DRESSED], [ - ["Look what we have here.", "Hnmm, look at that."], - ["Locked away and useless.", "Under lock and key as it should be."], - ["Too bad I have the keys.", "And I have the keys somewhere safe."]]); - wait(10); - } - present([DRESSED], [ - ["Play with your balls,", "Tease those balls a little,"], - ["I want to see how horny you are", "see how hard you can get"], - ["before I let you out.", "before I hand over the keys."], - ["You should be", "When you're"], - ["practically breaking out,", "about to break it for me,"], - ["we'll continue.", "then I'll see about letting it out."]]); - showButtonG("Hard, ${dommeTitle()}, please let me out", "hard"); - present([DRESSED,TEASE], [ - ["OK then.", "Fine, fine."], - ["I'm feeling generous, toy...", "Well, it's no good to me like that..."], - ["I have the keys right here,", "I have the keys here somewhere... OK,"], - ["unlock yourself and", "take your chastity device off"], - ["let me see my cock.", "let's see it."]]); - showButtonG("Yes, ${dommeTitle()}", "ok"); - wait(15); - set(CHASTE, false); - sessionToys[COCK] = getTime(); - showButtonGT("Thank you, ${dommeTitle()}", "ok", 80, 1); - }; def preEdge = { if (stateIs(CHASTE)) return; harden([DRESSED]); @@ -777,71 +739,6 @@ return new Object() { revokePermission(CUM); } }; - def chastity = { pre -> - if (stateIs(CHASTE)) return; - if (!has(CHASTITY)) return; - if (pre) { - present([DRESSED,TEASE], [ - ["Fun time is over for you.", "You'd have enough pleasure lately, my turn."]]); - } - else { - present([TEASE], [ - ["I can't keep an eye on you all time.", "It's not that I don't trust you."], - ["But...", "I just like to be sure."]]); - } - wait(getRandom(5) + 10); - 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 of course", "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, ${dommeTitle()}. Here's the key.", "locked", 180, 1); - set(CHASTE, true); - present([DRESSED,TEASE], [ - ["Good boy.", "Thank you, toy."]]); - wait(5); - } - def preChastity = { - chastity(true); - } - def postChastity = { - chastity(false); - if (stateIs(CHASTE) && (getPermission(PERM_CHASTE) == null || - (getPermission(PERM_CHASTE) == false && getProp(PERM_CHASTE_ASK, loadI, 0) < getTime() - (DAY * 30)))) { - present([DRESSED,TEASE], [ - ["Now I have you locked up,", "Now my cock is secured away,"], - ["would you let me", "can I"], - ["keep you like that"], - ["all the time?", "permanently?"]]); - def sh = getSelectedValue(null, [ - gagText("Yes, ${dommeTitle()}", "yes"), gagText("Please, ${dommeTitle()}, no", "no")]); - if (sh == 0) { - present([DRESSED,TEASE], [ - ["Good boy.", "Thank you, toy."]]); - setPermission(PERM_CHASTE, true); - setProp(PERM_CHASTE_ASK, null); - } - else { - present([DRESSED,nTEASE], [ - ["Awwww.", "Shame."], - ["One day..."]]); - setPermission(PERM_CHASTE, false); - setProp(PERM_CHASTE_ASK, getTime()); - } - wait(5); - } - }; // Play def playStrokes = { @@ -1249,8 +1146,6 @@ return new Object() { final activityList = [ 'intSqueeze': intSqueeze, 'intClamps': intClamps, - 'preRelease': preRelease, - 'preChastity': preChastity, 'preEdge': preEdge, 'preGag': preGag, 'preStrip': preStrip, @@ -1269,8 +1164,10 @@ return new Object() { 'postPermitCum': { addEventIfMissing(CUM, getTime() + (DAY * 2) + getRandom(DAY * 2), PERMIT, CUM); // 2 - 4 days from now }, - 'postChastity': postChastity ]; + final addActivity = { String name, func -> + activityList[name] = func; + } def sessionPlay = { if (stateIs(CHASTE)) sessionToys[CHASTITY] = getTime(); def playScope = [ @@ -1708,6 +1605,7 @@ return new Object() { /* * Resources * scripts/toy.groovy + * scripts/toy/chastity.groovy * scripts/toy/confession.groovy * scripts/toy/imagery.groovy * scripts/toy/intro.groovy -- cgit v1.2.3