diff options
author | Dan Goodliffe <dan@randomdan.homeip.net> | 2019-03-23 13:22:36 +0000 |
---|---|---|
committer | Dan Goodliffe <dan@randomdan.homeip.net> | 2019-03-23 13:22:36 +0000 |
commit | 5abf97823edf9bc627cbe93e24d80ba009e85615 (patch) | |
tree | b642c3cdb3928abc88892c7cf9aa67226cdf7473 | |
parent | Add debug option to trigger any activity (diff) | |
download | toy-5abf97823edf9bc627cbe93e24d80ba009e85615.zip |
Add beat cock activity
-rw-r--r-- | images/toy/ancilla/domme.groovy | 6 | ||||
-rw-r--r-- | scripts/toy.groovy | 56 |
2 files changed, 52 insertions, 10 deletions
diff --git a/images/toy/ancilla/domme.groovy b/images/toy/ancilla/domme.groovy index e957bdb..e4e16aa 100644 --- a/images/toy/ancilla/domme.groovy +++ b/images/toy/ancilla/domme.groovy @@ -58,13 +58,15 @@ ], [ select: 'repeat', number: 'toy.randRange(1, 2 + ((toy.prop.punishment ?: 0) / 100))', - activities: [ 'playKneel', 'playBeatBalls', 'playClamps', 'playNothing' ], + activities: [ 'playKneel', 'playBeatCock', 'playBeatBalls', 'playClamps', 'playNothing' ], use: 'punishApply' ], [ select: 'take', number: 'toy.randRange(1, 2 + ((toy.prop.punishment ?: 0) / 100))', - activities: [ 'playBondage', 'playBeatBalls', 'playClamps' ], + activities: [ 'playBondage', 'playBeatCock', 'playBeatBalls', 'playClamps' ], use: 'punishApply' + ], [ + activities: [ 'postChastity' ] ] ] ] diff --git a/scripts/toy.groovy b/scripts/toy.groovy index e165733..5828903 100644 --- a/scripts/toy.groovy +++ b/scripts/toy.groovy @@ -837,14 +837,7 @@ def playNothing = { wait(getRandom(10) + 10); }; }; -def playBeatBalls = { - final BEATS = [ - // bpm:30, len:60 ], - [ bpm:90, len:45 ], - [ bpm:165, len:30 ], - [ bpm:180, len:30 ], - [ bpm:240, len:20 ], - ]; +def getSpoon = { if (sessionToys.containsKey(SPOON)) { present([DRESSED], [ ["Pick up", "Grab"], @@ -863,6 +856,16 @@ def playBeatBalls = { showButtonGT("Back, mistress", "back", 20, 1); sessionToys[SPOON] = getTime(); } +}; +def playBeatBalls = { + final BEATS = [ + // bpm:30, len:60 ], + [ bpm:90, len:45 ], + [ bpm:165, len:30 ], + [ bpm:180, len:30 ], + [ bpm:240, len:20 ], + ]; + getSpoon(); present([DRESSED], [ ["Good.", "Right."], ["Take those balls in one hand", "In one hand, hold your balls"], @@ -898,6 +901,42 @@ def playBeatBalls = { wait(5); return beats / 10.0; }; +def playBeatCock = { + preRelease(); + harden([DRESSED,nTITS]); + getSpoon(); + present([DRESSED], [ + ["Good.", "Right."], + ["When I crack my whip... you beat the head my little cock."], + ["Don't hold back,", "Be brave for me,"], + ["it's meant to hurt!", "it's fun for me to watch."]]); + wait(5); + def count = 0; + def n = (2 + getRandom((int)(getPunish() / 150))); + n.times({ + randRange(10, 20).times({ + playBackgroundSound("shortwhip.wav"); + count += 1; + wait(randRange(3, 5)); + }); + if (it < n - 1) { + def sh = getSelectedValue("Still hard?", [ + gagText("Yes, Mistres", "yes"), gagText("No, Mistress", "no")]); + if (sh == 1) { + harden([DRESSED, nTITS]); + } + else { + present([DRESSED], [ + ["Good", "Good boy", "Excellent"]]); + wait(randRange(3, 5)); + } + present([DRESSED], [ + ["Again!", "More!"]]); + wait(1); + } + }) + return count * 5; +}; def playKneel = { present([DRESSED], [ ["Right, slut.", "Come here, toy."], @@ -1164,6 +1203,7 @@ final activityList = [ 'playEdges': playEdges, 'playKneel': playKneel, 'playBeatBalls': playBeatBalls, + 'playBeatCock': playBeatCock, 'playClamps': playClamps, 'playNothing': playNothing, 'playBondage': playBondage, |