diff options
-rw-r--r-- | images/toy/ancilla/domme.groovy | 57 | ||||
-rw-r--r-- | scripts/toy.groovy | 5 |
2 files changed, 61 insertions, 1 deletions
diff --git a/images/toy/ancilla/domme.groovy b/images/toy/ancilla/domme.groovy new file mode 100644 index 0000000..71863fd --- /dev/null +++ b/images/toy/ancilla/domme.groovy @@ -0,0 +1,57 @@ +[ + name: 'Ancilla', + fullName: 'Ancilla Tilia', + title: 'Mistress', + sessions: [ + [ + theme: 'stroking and edging', + require: 'toy.prop.punishment < 50', + probability: 50, + phases: [ + [ + select: 'repeat', + number: 'toy.randRange(1, 3)', + activities: [ 'preRelease', 'preEdge', 'preGag', 'preClamps', 'preCollar', 'preStrip' ] + ], [ + select: 'repeat', + number: 'toy.randRange(1, 3)', + activities: [ 'playStrokes', 'playEdges' ], + intervals: [ null, 'intClamps', 'intSqueeze' ] + ], [ + select: 'take', + number: 'toy.randRange(0, 2)', + activities: [ 'postCum', 'postChastity' ] + ], [ + require: '!toy.sessionAborted() && !toy.can("cum")', + select: 'take', + number: 1, + activities: [ 'postPermitCum' ] + ] + ] + ], [ + theme: 'punishment', + require: 'toy.prop.punishment > 40', + probability: 50, + phases: [ + [ + activities: [ 'preChastity' ] + ], [ + select: 'take', + number: 'toy.randRange(1, 2 + ((toy.prop.punishment ?: 0) / 100))', + activities: [ 'preGag', 'preClamps', 'preCollar', 'preStrip' ], + use: 'punishMultiply' + ], [ + select: 'repeat', + number: 'toy.randRange(1, 2 + ((toy.prop.punishment ?: 0) / 100))', + activities: [ 'playKneel', 'playCbt', 'playClamps', 'playNothing' ], + use: 'punishApply' + ], [ + select: 'take', + number: 'toy.randRange(1, 2 + ((toy.prop.punishment ?: 0) / 100))', + activities: [ 'playBondage', 'playCbt', 'playClamps' ], + use: 'punishApply' + ] + ] + ] + ] +] diff --git a/scripts/toy.groovy b/scripts/toy.groovy index 70848fc..42b78f1 100644 --- a/scripts/toy.groovy +++ b/scripts/toy.groovy @@ -36,6 +36,7 @@ final FRIENDS = [ "Tori", "Sophie", "Krystal" ]; // toy.position final KNEELING = "kneeling", ALLFOURS = "allfours", STANDING = "standing"; def OWNER = null; +def DOMME = null; final SITTER = "sarah-james"; final SOFT = "soft"; @@ -1617,6 +1618,7 @@ def setupShowCalendar = { // GO! setDefault("toy.owner", "ancilla"); OWNER = loadString("toy.owner"); +DOMME = Eval.me(new File("$DATAFOLDER/images/toy/$OWNER/domme.groovy").text); def getDayNum = { Math.floorDiv(getTime() + localTimeOffset() - 14400, 86400) }; def getAvail = { dayNum -> loadInteger("toy.availability.$dayNum") ?: 0 }; def addAvail = { amount -> @@ -1690,7 +1692,7 @@ while (true) { opts.push([ lbl: "May I be un-$it".toString(), act: requestRelease, arg: it ]); }; opts.push([ lbl: "Back", act: null ]); - def opt = getSelectedValue("Yes, toy?", opts.collect { it.lbl }); + def opt = getSelectedValue(is("DEBUG") ? DOMME : "Yes, toy?", opts.collect { it.lbl }); def act = opts[opt].act; if (act) act(opts[opt].arg); @@ -1775,6 +1777,7 @@ while (true) { * images/toy/ancilla/pink/9.jpg * images/toy/ancilla/pink/tags * images/toy/ancilla/lounge.jpg + * images/toy/ancilla/domme.groovy * sounds/toy/165bpm.mp3 * sounds/toy/180bpm.mp3 * sounds/toy/240bpm.mp3 |