summaryrefslogtreecommitdiff
path: root/scripts/toy/cbt.groovy
blob: 9c0d28e86227588bed62076924886ec28bf94698 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
{ toy ->
	toy.metaClass.getSpoon {
		if (sessionToys.containsKey(SPOON)) {
			present([DRESSED], [
					["Pick up", "Grab"],
					["your", "that"],
					["wooden spoon"],
					["again."]]);
			pause(10);
		}
		else {
			present([DRESSED], [
					["Go to the kitchen...", "From the kitchen..."],
					["bring me", "get yourself"],
					["a wooden spoon or similar."]]);
			showButtonG("Yes, ${dommeTitle()}", "ok");
			pause(5);
			showButtonGT("Back, ${dommeTitle()}", "back", 20, 1);
			sessionToys[SPOON] = getTime();
		}
	};

	toy.metaClass.playBeatBalls = {
		final BEATS = [
			// bpm:30, len:60 ],
			[ bpm:90, len:45 ],
			[ bpm:165, len:30 ],
			[ bpm:180, len:30 ],
			[ bpm:240, len:20 ],
		];
		getSpoon();
		present([DRESSED], [
				["Good.", "Right."],
				["Take those balls in one hand", "In one hand, hold your balls"],
				["and in the other, get ready to beat them.", "and get ready to beat them with other."]]);
		showButtonGT("Yes, ${dommeTitle()}", "ok", 10, 1);
		present([DRESSED], [
				["You concentrate on beating,", "Don't worry,"],
				["I'll be keeping count.", "I'll count them for you."]]);
		pause(3);
		present(null, [["Ready"]]);
		pause(1);
		present(null, [["Set"]]);
		pause(1);
		present(null, [["Go!"]]);
		def beats = 0;
		(4 + getRandom(7)).times({
			def beatNo = getRandom(BEATS.size());
			def beat = BEATS[beatNo];
			def len = getRandom(beat.len - 5) + 5;
			playBackgroundSound("toy/${beat.bpm}bpm.mp3");
			pause(len);
			playBackgroundSound(null);
			beats += (int)((beat.bpm * len) / 60.0);
			present(null, [
					["$beats.", "That's $beats.", "$beats so far."],
					["Keep going.", "Don't stop!", "Just a few more.", "Harder!"]]);
		});
		present([DRESSED], [
				["Stop!", "Ok, you can stop now."],
				["They look a little sore.", "Is that a nice tingly feeling?"]]);
		showButtonG("Thank you, ${dommeTitle()}.", "ok");
		show(null);
		pause(5);
		return beats / 10.0;
	};

	toy.metaClass.playBeatCock = {
		preRelease();
		harden([DRESSED,nTITS]);
		getSpoon();
		present([DRESSED], [
				["Good.", "Right."],
				["When I crack my whip... you beat the head my little cock."],
				["Don't hold back,", "Be brave for me,"],
				["it's meant to hurt!", "it's fun for me to watch."]]);
		pause(5);
		def count = 0;
		def n = (2 + getRandom((int)(getPunish() / 150)));
		n.times({
			randRange(10, 20).times({
				playBackgroundSound("shortwhip.wav");
				count += 1;
				pause(randRange(3, 5));
			});
			if (it < n - 1) {
				def sh = getSelectedValue("Still hard?", [
						gagText("Yes, ${dommeTitle()}", "yes"), gagText("No, ${dommeTitle()}", "no")]);
				if (sh == 1) {
					harden([DRESSED, nTITS]);
				}
				else {
					present([DRESSED], [
							["Good", "Good boy", "Excellent"]]);
					pause(randRange(3, 5));
				}
				present([DRESSED], [
						["Again!", "More!"]]);
				pause(1);
			}
		})
		return count * 5;
	};

	toy.addActivity("playBeatCock", { toy.playBeatCock() });
	toy.addActivity("playBeatBalls", { toy.playBeatBalls() });
	return null;
}