diff options
-rw-r--r-- | scripts/toy.groovy | 11 | ||||
-rw-r--r-- | scripts/toy/humiliation.groovy | 3 |
2 files changed, 8 insertions, 6 deletions
diff --git a/scripts/toy.groovy b/scripts/toy.groovy index 5c3ab02..16df507 100644 --- a/scripts/toy.groovy +++ b/scripts/toy.groovy @@ -341,8 +341,8 @@ return new Object() { def requestables = [ faq: [ lbl: "FAQ (webpage)", act: showFaq ], ]; - final addRequestable = { String name, String label, func -> - requestables[name] = [lbl: label, act: func]; + final addRequestable = { String name, String label, func, cond = null -> + requestables[name] = [lbl: label, act: func, cond: cond]; }; final removeRequestable = { String name -> requestables.remove(name); @@ -417,15 +417,14 @@ return new Object() { final waitTime = Math.min(cycleTime, e.event.time - getTime()); final clickTime = showButton("Please, ${dommeTitle()}?", waitTime); if (clickTime < waitTime) { - def opts = requestables.values().toList(); + def opts = requestables.values().toList().findAll { + it -> !it.cond || it.cond() + }; if (stateIs("DEBUG")) { opts.push([ lbl: "Status", act: setupShowState ]); opts.push([ lbl: "Play", act: { playEvent() }, arg: true ]); opts.push([ lbl: "Activity", act: playActivity ]); } - if (stateIs(NAKED)) { - opts.push([ lbl: "May I wear clothes", act: { requestClothes() } ]); - } TOYTOYS.findAll { stateIs(it) }.each { opts.push([ lbl: "May I be un-$it".toString(), act: { requestRelease() }, arg: it ]); }; diff --git a/scripts/toy/humiliation.groovy b/scripts/toy/humiliation.groovy index 8050145..06e422d 100644 --- a/scripts/toy/humiliation.groovy +++ b/scripts/toy/humiliation.groovy @@ -165,4 +165,7 @@ toy.addActivity("preStrip", { toy.preStrip() }); toy.addActivity("playKneel", { toy.playKneel() }); toy.addActivity("playSuck", { toy.playSuck() }); + toy.addRequestable("clothes", "May I wear clothes", + { toy.requestClothes() }, + { toy.stateIs(toy.NAKED) }); } |