From 2e109311ce7038fc340dafb46ff2af963ca82ba5 Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Sun, 23 Jun 2019 16:43:10 +0100 Subject: Extract pain into a module --- scripts/toy.groovy | 80 +------------------------------------------- scripts/toy/pain.groovy | 88 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 89 insertions(+), 79 deletions(-) create mode 100644 scripts/toy/pain.groovy (limited to 'scripts') diff --git a/scripts/toy.groovy b/scripts/toy.groovy index 9601e82..019c0c1 100644 --- a/scripts/toy.groovy +++ b/scripts/toy.groovy @@ -323,50 +323,6 @@ return new Object() { sessionToys[BALLGAG] = getTime(); return 1.2; }; - def clamps = { - if (stateIs(CLAMPED)) return; - if (!has(CLAMPS)) return; - present([DRESSED], - likes(PAIN) ? [ - ["We both like to see you suffer.", "Pain is fun."], - ["Isn't that right, toy?", "Don't you agree?"]] - : [ - ["I'm sorry, toy,"], - ["but seeing you suffer is too much fun.", "but I need to find my amusement somewhere."]]); - wait(10); - present([DRESSED],[ - ["Go put your nipple clamps on...", "I want those nipples clamped..."], - ["but on your way back...", "no walking though..."], - ["crawl, down on all fours.", "on your knees."]]); - showButtonG("Yes, ${dommeTitle()}", "ok"); - show(null); - wait(10); - set(CLAMPED, true); - showButtonGT("Back, ${dommeTitle()}", "back", 60, 1); - sessionToys[CLAMPS] = getTime(); - present([DRESSED], [ - ["On your knees,", "Kneel before me"], - ["let me see.", "hands behind your back."]]); - wait(getRandom(10) + 5); - }; - def clampsShow = { - present([DRESSED,TEASE], [ - ["Let me see", "Show me"], - ["those nipple clamps,", "those nasty clamps,"], - ["they look painful.", "and jiggle them about for me!"]]); - wait(10); - }; - def preClamps = { - if (!has(CLAMPS)) return; - if (stateIs(CLAMPED)) { - clampsShow(); - } - else { - clamps(); - } - clampPulls(getRandom(4)); - return 1.8; - }; def preCollar = { if (stateIs(COLLARED)) return 1.1; if (!has(COLLAR)) return; @@ -625,37 +581,6 @@ return new Object() { save("toy.deepthroat.completed", completed); wait(10); }; - def playClamps = { - if (!has(CLAMPS)) return; - if (!stateIs(CLAMPED)) clamps(); - clampsShow(); - return clampPulls(3 + getRandom(10)); - }; - def intClamps = { - if (!has(CLAMPS)) return; - if (!stateIs(CLAMPED)) return; - clampsShow(); - return clampPulls(getRandom(5)); - }; - def intSqueeze = { - (2 + getRandom(4)).times { n -> - if (n > 0) { - present([DRESSED,TEASE], [ - ["And again,", "Again,", "Once more,"], - ["harder!", "tighter!"]]); - } - else { - present([DRESSED,TEASE], [ - ["Squeeze yours balls", "Grab your balls and squeeze them"], - ["good and tight", "firm and hard"], - ["until they hurt a little.", "as if I was doing it."]]); - } - wait(3 + getRandom(6)); - present(null, [ - ["Let them go.", "Hands off."]]); - wait(3 + getRandom(6)); - }; - }; def stateToyName = { state -> switch (state) { case CUFFED: @@ -716,14 +641,10 @@ return new Object() { return false; }; final activityList = [ - 'intSqueeze': intSqueeze, - 'intClamps': intClamps, 'preGag': preGag, 'preStrip': preStrip, 'preCollar': preCollar, - 'preClamps': preClamps, 'playKneel': playKneel, - 'playClamps': playClamps, 'playNothing': playNothing, 'playBondage': playBondage, 'playSuck': playSuck, @@ -1173,6 +1094,7 @@ return new Object() { * scripts/toy/imagery.groovy * scripts/toy/intro.groovy * scripts/toy/orgasmControl.groovy + * scripts/toy/pain.groovy * scripts/toy/sleep.groovy * scripts/toy/social.groovy * scripts/toy/tease.groovy diff --git a/scripts/toy/pain.groovy b/scripts/toy/pain.groovy new file mode 100644 index 0000000..05c7bb1 --- /dev/null +++ b/scripts/toy/pain.groovy @@ -0,0 +1,88 @@ +{ toy -> + + toy.metaClass.clamps { + if (stateIs(CLAMPED)) return; + if (!has(CLAMPS)) return; + present([DRESSED], + likes(PAIN) ? [ + ["We both like to see you suffer.", "Pain is fun."], + ["Isn't that right, toy?", "Don't you agree?"]] + : [ + ["I'm sorry, toy,"], + ["but seeing you suffer is too much fun.", "but I need to find my amusement somewhere."]]); + pause(10); + present([DRESSED],[ + ["Go put your nipple clamps on...", "I want those nipples clamped..."], + ["but on your way back...", "no walking though..."], + ["crawl, down on all fours.", "on your knees."]]); + showButtonG("Yes, ${dommeTitle()}", "ok"); + show(null); + pause(10); + set(CLAMPED, true); + showButtonGT("Back, ${dommeTitle()}", "back", 60, 1); + sessionToys[CLAMPS] = getTime(); + present([DRESSED], [ + ["On your knees,", "Kneel before me"], + ["let me see.", "hands behind your back."]]); + pause(getRandom(10) + 5); + }; + + toy.metaClass.clampsShow { + present([DRESSED,TEASE], [ + ["Let me see", "Show me"], + ["those nipple clamps,", "those nasty clamps,"], + ["they look painful.", "and jiggle them about for me!"]]); + pause(10); + }; + + toy.metaClass.preClamps { + if (!has(CLAMPS)) return; + if (stateIs(CLAMPED)) { + clampsShow(); + } + else { + clamps(); + } + clampPulls(getRandom(4)); + return 1.8; + }; + + toy.metaClass.playClamps { + if (!has(CLAMPS)) return; + if (!stateIs(CLAMPED)) clamps(); + clampsShow(); + return clampPulls(3 + getRandom(10)); + }; + + toy.metaClass.intClamps { + if (!has(CLAMPS)) return; + if (!stateIs(CLAMPED)) return; + clampsShow(); + return clampPulls(getRandom(5)); + }; + + toy.metaClass.intSqueeze { + (2 + getRandom(4)).times { n -> + if (n > 0) { + present([DRESSED,TEASE], [ + ["And again,", "Again,", "Once more,"], + ["harder!", "tighter!"]]); + } + else { + present([DRESSED,TEASE], [ + ["Squeeze yours balls", "Grab your balls and squeeze them"], + ["good and tight", "firm and hard"], + ["until they hurt a little.", "as if I was doing it."]]); + } + pause(3 + getRandom(6)); + present(null, [ + ["Let them go.", "Hands off."]]); + pause(3 + getRandom(6)); + }; + }; + + toy.addActivity('preClamps', { toy.preClamps() }); + toy.addActivity('playClamps', { toy.playClamps() }); + toy.addActivity('intSqueeze', { toy.intSqueeze() }); + toy.addActivity('intClamps', { toy.intClamps() }); +} -- cgit v1.2.3