summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Goodliffe <dan@randomdan.homeip.net>2019-07-06 16:00:51 +0100
committerDan Goodliffe <dan@randomdan.homeip.net>2019-07-06 16:00:51 +0100
commit03cc961d02ff2512572aae9b46c1dd5f0cd8e675 (patch)
treeaee1a9c3f793946a126c71f4eda35069df079723
parentMake the activityList of objects (diff)
downloadtoy-03cc961d02ff2512572aae9b46c1dd5f0cd8e675.zip
Dress for the occasion
-rw-r--r--scripts/toy.groovy5
-rw-r--r--scripts/toy/bondage.groovy7
-rw-r--r--scripts/toy/cbt.groovy4
-rw-r--r--scripts/toy/chastity.groovy7
-rw-r--r--scripts/toy/confession.groovy4
-rw-r--r--scripts/toy/debug.groovy1
-rw-r--r--scripts/toy/humiliation.groovy7
-rw-r--r--scripts/toy/imagery.groovy3
-rw-r--r--scripts/toy/misc.groovy2
-rw-r--r--scripts/toy/orgasmControl.groovy2
-rw-r--r--scripts/toy/pain.groovy8
-rw-r--r--scripts/toy/play.groovy19
-rw-r--r--scripts/toy/tease.groovy6
13 files changed, 48 insertions, 27 deletions
diff --git a/scripts/toy.groovy b/scripts/toy.groovy
index 8d193fb..597f71c 100644
--- a/scripts/toy.groovy
+++ b/scripts/toy.groovy
@@ -303,9 +303,10 @@ return new Object() {
def setSessionAbort = { String r = null -> sessionAborted = r };
final activityList = [:];
- final addActivity = { String name, func ->
+ final addActivity = { String name, func, images = [] ->
activityList[name] = [
- func: func
+ func: func,
+ images: images ?: []
];
}
diff --git a/scripts/toy/bondage.groovy b/scripts/toy/bondage.groovy
index df3b5ae..46803c1 100644
--- a/scripts/toy/bondage.groovy
+++ b/scripts/toy/bondage.groovy
@@ -92,9 +92,10 @@
return waitTime;
};
- toy.addActivity("preGag", { toy.preGag() });
- toy.addActivity("preCollar", { toy.preCollar() });
- toy.addActivity("playBondage", { toy.playBondage() });
+ toy.addActivity("preGag", { toy.preGag() }, [[toy.DRESSED]]);
+ toy.addActivity("preCollar", { toy.preCollar() }, [[toy.DRESSED]]);
+ toy.addActivity("playBondage", { toy.playBondage() }, [
+ [toy.DRESSED, toy.nTEASE], [toy.DRESSED, toy.TEASE], [toy.STOOD] ]);
return {
toy.addToy(toy.COLLAR, toy.COLLARED, "collar", "May I remove my collar?");
toy.addToy(toy.HANDCUFFS, toy.CUFFED, "handcuffs", "May I be uncuffed?");
diff --git a/scripts/toy/cbt.groovy b/scripts/toy/cbt.groovy
index 9c0d28e..30afcb3 100644
--- a/scripts/toy/cbt.groovy
+++ b/scripts/toy/cbt.groovy
@@ -102,7 +102,7 @@
return count * 5;
};
- toy.addActivity("playBeatCock", { toy.playBeatCock() });
- toy.addActivity("playBeatBalls", { toy.playBeatBalls() });
+ toy.addActivity("playBeatCock", { toy.playBeatCock() }, [[toy.DRESSED, toy.nTITS]]);
+ toy.addActivity("playBeatBalls", { toy.playBeatBalls() }, [[toy.DRESSED]]);
return null;
}
diff --git a/scripts/toy/chastity.groovy b/scripts/toy/chastity.groovy
index 8068425..f04f4fc 100644
--- a/scripts/toy/chastity.groovy
+++ b/scripts/toy/chastity.groovy
@@ -106,8 +106,9 @@
}
};
- toy.addActivity('preRelease', { toy.preRelease() });
- toy.addActivity('preChastity', { toy.preChastity() });
- toy.addActivity('postChastity', { toy.postChastity() });
+ toy.addActivity('preRelease', { toy.preRelease() }, [[toy.DRESSED, toy.TEASE]]);
+ toy.addActivity('preChastity', { toy.preChastity() }, [[toy.DRESSED, toy.TEASE]]);
+ toy.addActivity('postChastity', { toy.postChastity() }, [
+ [toy.DRESSED, toy.TEASE], [toy.DRESSED, toy.nTEASE]]);
return null;
}
diff --git a/scripts/toy/confession.groovy b/scripts/toy/confession.groovy
index b01fd6e..68a98a3 100644
--- a/scripts/toy/confession.groovy
+++ b/scripts/toy/confession.groovy
@@ -49,7 +49,7 @@
// 5 points just for feeling the need to confess
def op = getPunish();
adjustPunish(5);
- dress([[DRESSED,nTEASE], [MEAN]]);
+ dress([[DRESSED,nTEASE]]);
while (true) {
present([DRESSED, nTEASE], [
["I'm not going to like this, am I?", "There is no way this ends well for you."],
@@ -73,7 +73,7 @@
}
// If sufficient points accrued, punish immediately.. with a bonus
if (getPunish() > 150 + op) {
- present([MEAN], [
+ present([DRESSED, nTEASE], [
["I'm very disappointed in you.", "You've been a very bad toy!"],
["Immediate punishment!", "So you will suffer... right now!"]]);
adjustPunish(100);
diff --git a/scripts/toy/debug.groovy b/scripts/toy/debug.groovy
index 4bd3a64..379cae1 100644
--- a/scripts/toy/debug.groovy
+++ b/scripts/toy/debug.groovy
@@ -29,6 +29,7 @@
toy.metaClass.playActivity {
final keys = new ArrayList<?>(activityList.keySet());
final act = getSelectedValue("Choose activity", keys);
+ dress(activityList[keys[act]].images);
activityList[keys[act]].func();
};
diff --git a/scripts/toy/humiliation.groovy b/scripts/toy/humiliation.groovy
index af01315..a2e4137 100644
--- a/scripts/toy/humiliation.groovy
+++ b/scripts/toy/humiliation.groovy
@@ -195,9 +195,10 @@
};
toy.addNamedEvent(toy.REDRESS, { name, arg, schedTime, rt -> toy.redress(rt) });
- toy.addActivity("preStrip", { toy.preStrip() });
- toy.addActivity("playKneel", { toy.playKneel() });
- toy.addActivity("playSuck", { toy.playSuck() });
+ toy.addActivity("preStrip", { toy.preStrip() }, [[toy.DRESSED]]);
+ toy.addActivity("playKneel", { toy.playKneel() }, [[toy.DRESSED]]);
+ toy.addActivity("playSuck", { toy.playSuck() }, [
+ [toy.DRESSED, toy.nTEASE], [toy.DRESSED, toy.TEASE]]);
toy.addRequestable("clothes", "May I wear clothes",
{ toy.requestClothes() },
{ toy.stateIs(toy.NAKED) });
diff --git a/scripts/toy/imagery.groovy b/scripts/toy/imagery.groovy
index 79b7abf..201531e 100644
--- a/scripts/toy/imagery.groovy
+++ b/scripts/toy/imagery.groovy
@@ -113,7 +113,7 @@
return null;
};
- toy.metaClass.dress { specs ->
+ toy.metaClass.dress { specs, onChange = {} ->
def outfit = loadString("toy.owner.outfit");
def outfitTime = loadInteger("toy.owner.outfitTime");
if (outfitTime > getTime() - 7200) { // Recent, check
@@ -126,6 +126,7 @@
}
}
}
+ onChange();
outfit = selectImageSet(OWNER, specs);
if (!outfit) {
showPopup("No outfit for $OWNER : $specs");
diff --git a/scripts/toy/misc.groovy b/scripts/toy/misc.groovy
index 3e471a9..140d82c 100644
--- a/scripts/toy/misc.groovy
+++ b/scripts/toy/misc.groovy
@@ -8,6 +8,6 @@
toy.addNamedEvent(toy.PERMIT, { name, arg, schedTime, rt -> toy.givePermission(arg) });
toy.addRequestable("faq", "FAQ (webpage)", { useUrl("http://toy.randomdan.homeip.net/"); });
- toy.addActivity("playNothing", { toy.playNothing() });
+ toy.addActivity("playNothing", { toy.playNothing() }, [[toy.TITS]]);
return null;
}
diff --git a/scripts/toy/orgasmControl.groovy b/scripts/toy/orgasmControl.groovy
index 6108012..0f017bd 100644
--- a/scripts/toy/orgasmControl.groovy
+++ b/scripts/toy/orgasmControl.groovy
@@ -133,7 +133,7 @@
}
};
- toy.addActivity("postCum", { toy.postCum() });
+ toy.addActivity("postCum", { toy.postCum() }, [[toy.TEASE], [toy.TITS], [toy.DRESSED]]);
toy.addActivity("postPermitCum", {
// 2 - 4 days from now
toy.addEventIfMissing(toy.CUM, toy.getTime() + (toy.DAY * 2) + toy.getRandom(toy.DAY * 2),
diff --git a/scripts/toy/pain.groovy b/scripts/toy/pain.groovy
index 1e4b81c..861674e 100644
--- a/scripts/toy/pain.groovy
+++ b/scripts/toy/pain.groovy
@@ -129,10 +129,10 @@
};
};
- toy.addActivity('preClamps', { toy.preClamps() });
- toy.addActivity('playClamps', { toy.playClamps() });
- toy.addActivity('intSqueeze', { toy.intSqueeze() });
- toy.addActivity('intClamps', { toy.intClamps() });
+ toy.addActivity('preClamps', { toy.preClamps() }, [[toy.DRESSED, toy.TEASE]]);
+ toy.addActivity('playClamps', { toy.playClamps() }, [[toy.DRESSED, toy.TEASE]]);
+ toy.addActivity('intSqueeze', { toy.intSqueeze() }, [[toy.DRESSED, toy.TEASE]]);
+ toy.addActivity('intClamps', { toy.intClamps() }, [[toy.DRESSED, toy.TEASE]]);
return {
toy.addToy(toy.CLAMPS, toy.CLAMPED, "nipple clamps", "May I remove the nipple clamps?");
}
diff --git a/scripts/toy/play.groovy b/scripts/toy/play.groovy
index da0bff2..cd71b1d 100644
--- a/scripts/toy/play.groovy
+++ b/scripts/toy/play.groovy
@@ -92,8 +92,23 @@
}
final sessions = DOMME.sessions.findAll { s -> eval(s.require ?: true) };
final probabilities = sessions.withIndex().collect { s, idx -> [idx] * s.probability }.sum();
- final sessionIdx = probabilities[getRandom(probabilities.size)];
- sessions[sessionIdx].phases.forEach { phase ->
+ final session = sessions[probabilities[getRandom(probabilities.size)]];
+ // Change if required
+ dress(session.phases
+ .collect { phase -> phase.activities + phase.intervals }
+ .flatten()
+ .unique()
+ .findAll { a -> a }
+ .collectMany { a -> activityList[a].images }
+ .unique(), {
+ present(null, [
+ [ "Wait there while I change..."]]);
+ pause(5);
+ showButtonG("Yes, ${dommeTitle()}", "ok");
+ showImage(null);
+ pause(randRange(40, 60));
+ });
+ session.phases.forEach { phase ->
if (eval(phase.require ?: true)) {
funcMap.select[phase.select ?: 'take'](eval(phase.number ?: 1),
(phase.activities ?: []).collect { f -> funcMap.activities[f] },
diff --git a/scripts/toy/tease.groovy b/scripts/toy/tease.groovy
index b9472a2..af90dd8 100644
--- a/scripts/toy/tease.groovy
+++ b/scripts/toy/tease.groovy
@@ -186,8 +186,8 @@
};
toy.setDefault("toy.strokeTeaseOffset", 0);
- toy.addActivity("playStrokes", { toy.playStrokes() });
- toy.addActivity("playEdges", { toy.playEdges() });
- toy.addActivity("preEdge", { toy.preEdge() });
+ toy.addActivity("playStrokes", { toy.playStrokes() }, [[toy.TITS]]);
+ toy.addActivity("playEdges", { toy.playEdges() }, [[toy.TITS]]);
+ toy.addActivity("preEdge", { toy.preEdge() }, [[toy.DRESSED]]);
return null;
}