summaryrefslogtreecommitdiff
path: root/scripts/toy/pain.groovy
blob: 9ccc9a2d4a13c292e5b5429329b8d62613360fc0 (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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
{ toy ->

	toy.metaClass.clamps {
		if (stateIs(CLAMPED)) return;
		if (!has(CLAMPS)) return;
		present([DRESSED],
				likes(PAIN) ? [
				["We both like to see you suffer.", "Pain is fun."],
				["Isn't that right, toy?", "Don't you agree?"]]
				: [
				["I'm sorry, toy,"],
				["but seeing you suffer is too much fun.", "but I need to find my amusement somewhere."]]);
		pause(10);
		present([DRESSED],[
				["Go put your nipple clamps on...", "I want those nipples clamped..."],
				["but on your way back...", "no walking though..."],
				["crawl, down on all fours.", "on your knees."]]);
		showButtonG("Yes, ${dommeTitle()}", "ok");
		show(null);
		pause(10);
		set(CLAMPED, true);
		showButtonGT("Back, ${dommeTitle()}", "back", 60, 1);
		sessionToys[CLAMPS] = getTime();
		present([DRESSED], [
				["On your knees,", "Kneel before me"],
				["let me see.", "hands behind your back."]]);
		pause(getRandom(10) + 5);
	};

	toy.metaClass.clampPulls { amount ->
		getRandom(1 + amount).times {
			if (getRandom(2)) {
				present([DRESSED], [
						["Take them off.", "Remove them."]]);
				pause(6 + getRandom(8));
				if (getRandom(2)) {
					present([DRESSED], [
							["And put them back on", "Put them back"],
							["right where they came from.", "where they were."]]);
				}
				else {
					present([DRESSED], [
							["Flip them", "Turn them"],
							["90 degrees", "around"],
							["and put them back.", "and replace them."]]);
				}
				pause(10 + getRandom(8));
			}
			else if (getRandom(2)) {
				present([DRESSED], [
						["Twist them"],
						["for me.", "... twist those nipples."]]);
				pause(6 + getRandom(5));
				if (getRandom(2)) {
					present(null, [
							["More!", "A little more!", "Further!"]]);
					pause(getRandom(10) + 2);
				}
			}
			present([DRESSED], [
					["Pull them tight.", "Pull them!"]]);
			pause(getRandom(10) + 5);
			if (getRandom(5) == 0) {
				present(null, [
						["Tighter!", "Harder!", "Further!"]]);
				pause(getRandom(10) + 2);
				present(null, [
						["Haha!", "Ooo, they must hurt.", "Do they hurt?"]]);
				pause(3);
			}
			present(null, [
					["Release them.", "Let them go."]]);
			pause(getRandom(5) + 3);
		};
		return amount;
	};

	toy.metaClass.clampsShow {
		present([DRESSED,TEASE], [
				["Let me see", "Show me"],
				["those nipple clamps,", "those nasty clamps,"],
				["they look painful.", "and jiggle them about for me!"]]);
		pause(10);
	};

	toy.metaClass.preClamps {
		if (!has(CLAMPS)) return;
		if (stateIs(CLAMPED)) {
			clampsShow();
		}
		else {
			clamps();
		}
		clampPulls(getRandom(4));
		return 1.8;
	};

	toy.metaClass.playClamps {
		if (!has(CLAMPS)) return;
		if (!stateIs(CLAMPED)) clamps();
		clampsShow();
		return clampPulls(3 + getRandom(10));
	};

	toy.metaClass.intClamps {
		if (!has(CLAMPS)) return;
		if (!stateIs(CLAMPED)) return;
		clampsShow();
		return clampPulls(getRandom(5));
	};

	toy.metaClass.intSqueeze {
		(2 + getRandom(4)).times { n ->
			if (n > 0) {
				present([DRESSED,TEASE], [
						["And again,", "Again,", "Once more,"],
						["harder!", "tighter!"]]);
			}
			else {
				present([DRESSED,TEASE], [
						["Squeeze yours balls", "Grab your balls and squeeze them"],
						["good and tight", "firm and hard"],
						["until they hurt a little.", "as if I was doing it."]]);
			}
			pause(3 + getRandom(6));
			present(null, [
					["Let them go.", "Hands off."]]);
			pause(3 + getRandom(6));
		};
	};

	toy.addActivity('preClamps', { toy.preClamps() }, [[toy.DRESSED, toy.TEASE]], [toy.PRE, toy.PAIN]);
	toy.addActivity('playClamps', { toy.playClamps() }, [[toy.DRESSED, toy.TEASE]], [toy.PLAY, toy.PUNISH, toy.PAIN]);
	toy.addActivity('intSqueeze', { toy.intSqueeze() }, [[toy.DRESSED, toy.TEASE]], [toy.INT, toy.PAIN]);
	toy.addActivity('intClamps', { toy.intClamps() }, [[toy.DRESSED, toy.TEASE]], [toy.INT, toy.PAIN]);
	return {
		toy.addToy(toy.CLAMPS, toy.CLAMPED, "nipple clamps", "May I remove the nipple clamps?");
	}
}