summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorDan Goodliffe <dan@randomdan.homeip.net>2019-01-01 16:20:11 +0000
committerDan Goodliffe <dan@randomdan.homeip.net>2019-01-01 16:20:11 +0000
commit7d0b76ebdf66a833caddf17b1f593de6e8e44d0f (patch)
treeee8c45358e674be6942cc3c3f192d2ab508c3f85 /scripts
parentDon't leave chastity note for chaste toy (diff)
downloadtoy-7d0b76ebdf66a833caddf17b1f593de6e8e44d0f.zip
Add a tiny bit of lenience if toy cums immediately after ordered
Scales punishment accordingly
Diffstat (limited to 'scripts')
-rw-r--r--scripts/toy.groovy40
1 files changed, 25 insertions, 15 deletions
diff --git a/scripts/toy.groovy b/scripts/toy.groovy
index 7db0694..948dd00 100644
--- a/scripts/toy.groovy
+++ b/scripts/toy.groovy
@@ -296,14 +296,24 @@ def expose = { imageSpec ->
}
};
// Return whether toy came or not
-def mightCum = { time, reason = "without permission" ->
- if (showButtonG("Sorry, mistress, I'm cumming $reason", "cumming", time) < time) {
+def mightCum = { time, lenient = false, reason = "without permission" ->
+ final taken = showButtonG("Sorry, mistress, I'm cumming $reason", "cumming", time);
+ if (taken < time) {
playBackgroundSound(null);
- sessionAborted = CUM;
- present(null, [
- ["Bah!", "Pfft. I'm very disappointed in you."],
- ["Ruin it.", "Don't touch it."]]);
- adjustPunish(100);
+ if (lenient && taken < 2) {
+ present(null, [
+ ["Awww.", "Damn."],
+ ["That was close;", "I'll let you have that one;"],
+ ["And I was looking forward to punishing you.", "No punishment this time."]]);
+ }
+ else {
+ present(null, [
+ ["Bah!", "Pfft. I'm very disappointed in you."],
+ ["Ruin it.", "Don't touch it."]]);
+ sessionAborted = CUM;
+ adjustPunish(80);
+ }
+ adjustPunish(taken * 10);
wait(10);
present([DRESSED], [["Clean up your mess!"]]);
showButtonG("Yes, mistress", "ok");
@@ -314,12 +324,12 @@ def mightCum = { time, reason = "without permission" ->
return false;
};
// Return whether toy came or not, despite being denied
-def cumChanceDenied = {
+def cumChanceDenied = { lenient = false ->
present([TEASE], [
["Stop!", "Nope!", "Haha! No!"],
["Let go.", "Hands off!", "Hands behind your back."],
["Not this time.", "Maaaaybe next time, toy."]]);
- return mightCum(15);
+ return mightCum(15, lenient);
};
def cumChanceCountdown = {
present([TEASE], [
@@ -331,7 +341,7 @@ def cumChanceCountdown = {
for (def n = 10; n > 0; n--) {
numbers += "${n}... ";
show(numbers);
- mightCum(1, "too soon");
+ mightCum(1, false, "too soon");
if (getRandom(100) > 85 || !can(CUM)) {
return cumChanceDenied();
}
@@ -348,7 +358,7 @@ def cumChanceWindow = {
["OK, toy, I'm going to give you a chance to cum.", "Would you like a small chance to cum, toy?"],
["Get stroking!", "Stroke it, you'll need to be close!"],
["You won't get long.", "You might not get long.", "Wait for my say so..."]]);
- if (mightCum(15 + getRandom(60), "too soon")) return true;
+ if (mightCum(15 + getRandom(60), false, "too soon")) return true;
if (getRandom(5) > 0 || !can(CUM)) {
return cumChanceDenied();
}
@@ -364,7 +374,7 @@ def cumChanceWindow = {
present([TEASE], [
["Stop!", "Let go.", "Hands off!"],
["Time's up!", "You had your chance."]]);
- return mightCum(15, "too late");
+ return mightCum(15, true, "too late");
}
}
wait(10);
@@ -375,7 +385,7 @@ def cumChanceRuin = {
present([TEASE], [
["Stroke!", "Jerk it."],
["Get close to the edge, toy...", "Get yourself close..."]]);
- if (mightCum(5 + getRandom(10), "too soon")) return true;
+ if (mightCum(5 + getRandom(10), false, "too soon")) return true;
if (getRandom(5) > 0 || !can(CUM)) {
return cumChanceDenied();
}
@@ -396,10 +406,10 @@ def cumChanceRuin = {
["Stop!", "Not now!", "Wait!"],
["Hands off!", "Hands by your side."]]);
w = (w - 2) + getRandom(8);
- if (mightCum(w, "but it's ruined")) return true;
+ if (mightCum(w, true, "but it's ruined")) return true;
}
}
- return cumChanceDenied();
+ return cumChanceDenied(true);
};
def edge = { amount, imageSpec ->
def allowedTime = 128;