diff options
-rw-r--r-- | scripts/toy.groovy | 40 |
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; |