summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorDan Goodliffe <dan@randomdan.homeip.net>2018-12-09 22:20:37 +0000
committerDan Goodliffe <dan@randomdan.homeip.net>2018-12-09 22:20:37 +0000
commitf92a4f401191155531a5bdedbb32fe1428902a39 (patch)
tree1e9025d037bee9eac650692e4264166a12a56961 /scripts
parentReturn punish multiple when toy already in that state (diff)
downloadtoy-f92a4f401191155531a5bdedbb32fe1428902a39.zip
Sometimes leave a naked toy naked after play
Schedules an event for a random time later to redress
Diffstat (limited to 'scripts')
-rw-r--r--scripts/toy.groovy54
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)