summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--images/toy/ancilla/domme.groovy6
-rw-r--r--scripts/toy.groovy56
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,