diff options
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/toy.groovy | 54 |
1 files changed, 48 insertions, 6 deletions
diff --git a/scripts/toy.groovy b/scripts/toy.groovy index ce07783..866fa6f 100644 --- a/scripts/toy.groovy +++ b/scripts/toy.groovy @@ -23,6 +23,7 @@ final CUM = "cum", EDGE = "edge" final PERMIT = "permit"; // toy.state.<name> final CHASTE = "chaste", COLLARED = "collared", CUFFED = "cuffed", CLAMPED = "clamped", GAGGED = "gagged", NAKED = "naked"; +final REDRESS = "redress"; // toy.plan.<name>.{start|end|friend} UTC times final LUNCH = "lunch", SHOPPING = "shopping", PARTY = "party"; final START = "start", END = "end", FRIEND = "friend"; @@ -971,10 +972,19 @@ def sessionRelease = { goodToy -> set(GAGGED, false); } if (is(NAKED)) { - present([DRESSED], [ - ["Put some clothes back on.", "Cover yourself up!"]]); - wait(getRandom(10) + 15); - set(NAKED, false); + if (goodToy && getRandom(1)) { + present([DRESSED], [ + ["Put some clothes back on.", "Cover yourself up!"]]); + wait(getRandom(10) + 15); + set(NAKED, false); + } + else { + present([DRESSED], [ + ["No clothes now for a while,", "Keep those clothes off,"], + ["you don't get clothes until I say.", "I like seeing naked."]]); + addEvent(REDRESS, getTime() + 600 + getRandom(1200), "redress"); + showButtonG("Yes, mistress", "ok"); + } } if (goodToy) { present([DRESSED], [ @@ -1011,11 +1021,39 @@ def bedtime = { ["Very good, toy.", "OK"], ["Bedtime!", "Off to bed with you!", "Bed! Now!"]]); showButtonG("Good night, mistress", "night"); - // Assume toy with return dressed tomorrow - set(NAKED, false); } + // Assume toy with return dressed tomorrow + removeEvent(REDRESS); + set(NAKED, false); exit(); }; +def redress = { rt -> + if (!rt || !sessionSummon([DRESSED])) { + addEvent(REDRESS, getTime() + 300, "redress"); + } + present([DRESSED], [ + ["OK, toy,"], + ["you can put some clothes back on now.", "get yourself covered up."]]); + wait(getRandom(10) + 15); + showButtonG("Thank you, mistress", "ok"); + set(NAKED, false); +}; +def requestClothes = { + adjustPunish(5); + present([DRESSED], [ + ["Really?", "Disappointing."], + ["You want to clothes back on?", "You wish to cover up?"]]); + if (getBoolean(null)) { + present([DRESSED], [["Hmm, very well.", "If you must."]]); + adjustPunish(50); + set(NAKED, false); + removeEvent(REDRESS); + } + else { + present([DRESSED], [["Good boy."]]); + } + showButtonG("Thank you, mistress", "ok"); +}; // Confession def confessChastityRelease = { adjustPunish(75); @@ -1156,6 +1194,7 @@ def beginPlan = { plan -> // Initial - basic checks and defaults namedEvents = [ // name: func(arg, schedTime rt) + redress: { arg, schedTime, rt -> redress(rt) }, permit: { arg, schedTime, rt -> givePermission(arg) } ]; def setupInitial = { @@ -1299,6 +1338,9 @@ while (true) { opts.push([ lbl: "Play", act: playtime ]); opts.push([ lbl: "Begin plan", act: beginPlan, arg: LUNCH ]); } + if (is(NAKED)) { + opts.push([ lbl: "May I wear clothes", act: requestClothes ]); + } def opt = getSelectedValue("Yes, toy?", opts.collect { it.lbl }); def act = opts[opt].act; if (act) |