-
Notifications
You must be signed in to change notification settings - Fork 216
/
Copy pathcotton.as
1898 lines (1660 loc) · 166 KB
/
cotton.as
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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
//176 TIMES HAD YOGA
//177 MET/FUCKED - 0 = never met. 1 = met but not fucked. 2 = fucked
//24"x3" wang
const COTTON_PREGNANCY_INCUBATION:int = 673;
const COTTON_PREGNANCY_TYPE:int = 674;
const COTTON_KID_COUNT:int = 675;
const COTTON_OLDEST_KID_AGE:int = 676;
const COTTON_OLDEST_KID_GENDER:int = 702
const PC_IS_A_DEADBEAT_COTTON_DAD:int = 677;
const PC_IS_A_GOOD_COTTON_DAD:int = 678;
const COTTON_HERBS_OFF:int = 679;
const COTTON_CONTRACEPTION_TALK:int = 680;
const COTTON_KNOCKED_UP_PC_AND_TALK_HAPPENED:int = 681;
//Ticks every hour!
function cottonPregUpdates():void {
//preggo countdownz
if(flags[COTTON_PREGNANCY_INCUBATION] > 0) {
flags[COTTON_PREGNANCY_INCUBATION]--;
if(flags[COTTON_PREGNANCY_INCUBATION] < 1) {
flags[COTTON_PREGNANCY_INCUBATION] = 1;
}
}
//Increment kid age
if(flags[COTTON_KID_COUNT] > 0 && hours == 23) flags[COTTON_OLDEST_KID_AGE]++;
}
function pregCottonChance(bonusMult:Number = 1):void {
//No preg if already preg!
if(flags[COTTON_PREGNANCY_INCUBATION] > 0) return;
//Okay, we have a chance! Run the numbers!
//Herbs off? Good chances!
if(flags[COTTON_HERBS_OFF] > 0) {
if(rand(5) == 0 || player.cumQ() > rand(1000) || player.virilityQ() >= 0.5) {
flags[COTTON_PREGNANCY_INCUBATION] = 350;
flags[COTTON_PREGNANCY_TYPE] = 0;
}
}
//HERBS ON - LESS CHANCE
else {
//First kid is lucky!
if(flags[COTTON_KID_COUNT] == 0) {
if(rand(5) == 0 || player.cumQ() * player.virilityQ() >= rand(1000)) {
flags[COTTON_PREGNANCY_INCUBATION] = 350;
flags[COTTON_PREGNANCY_TYPE] = 0;
}
}
//NOT FIRST KID - LESS LUCKY!
else if(player.cumQ() * player.virilityQ() >= rand(1000)) {
flags[COTTON_PREGNANCY_INCUBATION] = 350;
flags[COTTON_PREGNANCY_TYPE] = 0;
}
}
}
function cottonPregPCChance():void {
//No kids yet - lucky!
if(flags[COTTON_KID_COUNT] == 0 && flags[COTTON_HERBS_OFF] == 0) {
player.knockUp(20,350,600);
}
else {
if(flags[COTTON_HERBS_OFF] == 0) player.knockUp(20,350,1000);
else player.knockUp(20,350,100);
}
}
//ToC
//Cotton Pregnancy
//Been told of naga book quest?
function cottonsIntro():Boolean {
if(hours >= 12 && hours <= 18) {
//Gym intro scene (haven't met):
if(flags[177] == 0) outputText("\n\nYou see a tall, busty horse-girl doing some stretches over on a nearby mat. Even from this far away, you can tell from the bulge in her pants that she's no ordinary 'girl'.", false);
//Gym intro scene (met, haven't had sex):
else if(flags[177] == 1) outputText("\n\nYou spot Cotton, the busty hermaphrodite horse-girl, doing her yoga on a nearby mat.", false);
//Gym intro scene (met, have had sex):
else outputText("\n\nYou spot Cotton, the busty hermaphrodite horse-girl, doing her yoga on a nearby mat. She gives you a wink, a smile and a little wave.", false);
//There!
return true;
}
//Not There!
return false;
}
function cottonGreeting():void {
spriteSelect(12);
outputText("", true);
if(flags[167] == 0) outputText("The centauress sees you starting for the horse-girl and says, \"<i>Go ahead and talk, but if you want to work out with her I'll have to charge you.</i>\"\n\n", false);
//Greeting (first time):
if(flags[177] == 0) {
flags[177] = 1;
outputText("You wander over to the equine on the mat, curious as to what she's doing. She stretches out on her mat, spine flexed. Her head cranes backwards to see you approach. \"<i>Oh, hi there!</i>\" She grins an upside-down grin at you and finishes her stretch before standing up. ", false);
//(If PC height is greater than 6'6</i>\"
if(player.tallness > 78) outputText("Despite her impressive stature, you still look down on her.", false);
//(If PC height is in between:
else if(player.tallness >= 76) outputText("She's roughly your height, which is rather impressive in itself.", false);
//(If PC height is under 6'4</i>\":
else outputText("She is truly tall, and you have to look up to her.", false);
outputText(" She's garbed in a white and pink form-fitting tank top along with a pair of black skintight pants that come down to about her mid-shin. The pants do absolutely nothing to hide the enormous bulge in her crotch, if anything they only enhance it. Her dark brown skin seems smooth and hairless, unlike most equines you've met, and her red mane of hair falls just past her shoulders, though it's currently pulled back into an efficient ponytail.\n\n", false);
//(If player has a Centaur or Naga body, replace last line with:
if(player.isTaur() || player.isNaga()) {
/*outputText("\"<i>I'd love to teach you, but I'm afraid I don't know any good routines for your... body type. Sorry, pet.</i>\"", false);
//Back to gym!
doNext(13);
return;*/
centaurNagaBodyBookStuff();
return;
}
outputText("\"<i>Hey, I'm Cotton, what can I do you for?</i>\" she says in a friendly manner. You also give your name, and explain you were curious as to what she was doing. \"<i>Oh, this? Just doing some yoga.</i>\" Judging by your quizzical look, she continues, \"<i>Yoga is like an exercise routine for your body and soul. When the body is happy and healthy, the mind and soul follow. It's a very relaxing and... sensual exercise. Would you like to try it?</i>\"", false);
//[Yes] [No]
doYesNo(2810,2809);
}
//Met before
else {
if(flags[COTTON_PREGNANCY_INCUBATION] > 0 && flags[COTTON_PREGNANCY_INCUBATION] <= 40) {
cottonPopsOutAKid();
return;
}
//(If Centaur or Naga)
if(player.isTaur() || player.isNaga()) {
/*outputText("You approach Cotton, who gives you a friendly smile. \"<i>Hey, there little pet. I'm afraid I don't know any good stretches for your body... Maybe some other time.</i>\"", false);
doNext(13);
return;*/
centaurNagaBodyBookStuff();
return;
}
else if((player.pregnancyIncubation <= 225 && player.pregnancyIncubation > 0) && player.pregnancyType == 20)
{
//Lamaze Class*
//Approach Cotton, PC visibly pregnant (at least 2nd trimester, or whatever is equivalent in CoC-land)
outputText("As you approach Cotton, she smiles and looks at your round belly. \"<i>Hey there my pet, I'm afraid in your condition, yoga is out of the question... but we can do some special stretches and lamaze, just get dressed as usual.</i>\"");
outputText("Do you want to engage in yoga lamaze with her?");
menu();
cottonMenu();
return;
}
else if(flags[COTTON_PREGNANCY_INCUBATION] > 0) {
//(Cotton Pregnant Stage 1)
if(flags[COTTON_PREGNANCY_INCUBATION] >= 300) {
outputText("You approach Cotton, who, to your surprise, is just polishing off what must have been the largest glazed pastry you've ever seen. You notice muffin wrappers and other evidence of baked goods near her workout mat as well. You ask if Cotton's been feeling a bit peckish recently... you correct yourself and ask if Cotton's been starving recently.");
outputText("\n\nShe 'haruumphs' a little bit and licks her fingers clean. \"<i>I've just been craving pastries... Besides, I'm in the gym every day, it's not going to ruin my figure,</i>\" she waves a hand dismissively. \"<i>Anyway, if you want to work out, just get changed and come back.</i>\"");
}
//(Cotton Pregnant Stage 2)
else if(flags[COTTON_PREGNANCY_INCUBATION] >= 200) {
outputText("Cotton waves as you approach, happy to see you as always. As you get nearer, you can see a very distinctive bump in her previously washboard-flat belly; if you weren't well aware of her pregnancy, you'd think that her overeating was catching up with her. The bulge isn't enough to force her to change clothes just yet, but her outfit must be getting tighter. You ask how she's feeling, patting your own belly to clue her in what you're referring too.");
outputText("\n\n\"<i>Hungry, again. I think I'll take another trip to the bakery after this,</i>\" she replies with a wistful look in her eyes. \"<i>Anyway, if you want to work out, just change and come on back.</i>\"");
}
//(Cotton Pregnant Stage 3)
else if(flags[COTTON_PREGNANCY_INCUBATION] >= 100) {
outputText("You approach Cotton, who smiles and waves. Her belly now bulges forward, unmistakably pregnant. Her former tank top is gone, now replaced by a kind of maternity shirt, which shows off the belly even more. The yoga pants remain, however, though they hang a bit lower than usual. Strangely, you notice she's sucking on a lollipop, and ask her about it.");
outputText("\n\n\"<i>Oh, it just cuts down on the nausea. Plus I think this little rascal,</i>\" she rubs her belly a bit, \"<i>has a sweet tooth. Or maybe it's just me. Anyway, just change and come back if you want to work out, pet.</i>\"");
}
//(Cotton Pregnant Stage 4)
else {
outputText("Cotton smiles and greets you as you approach. Gone is her usual top, instead she's chosen to show off her enormous, round brown belly with an incredibly short white tank top which might be confused with a bra if you didn't know any better. Though you'd imagine her movement would be quite limited, she actually moves with her usual grace... until her belly collides with a row of water bottles set out on a nearby table, knocking them to the ground.");
outputText("\n\nYou ask if maybe she should be at home right now, putting her hooves up and relaxing. She shakes her head and says, \"<i>Oh no I'm fine. I've got students to teach, and I don't have to do much strenuous activity myself, so don't worry. Anyway, if you want a lesson, just get changed and come on back.</i>\"");
//Display Cotton options
}
cottonMenu();
}
else {
outputText("You approach Cotton, who smiles and says, \"<i>Hey there my little pet, if you'd like a work out, just get changed and come on back.</i>\"\n\nDo you want to engage in yoga with her?", false);
cottonMenu();
return;
}
}
}
function cottonMenu():void {
menu();
addButton(0,"Yoga",acceptYoga);
if(flags[COTTON_KID_COUNT] > 0) addButton(1,"Visit Kids",visitCottonKids);
if(flags[COTTON_PREGNANCY_INCUBATION] > 1 || flags[COTTON_KID_COUNT] >= 1) addButton(2,"Herbs",cottonContraceptionToggle);
addButton(4,"Leave",turnDownYogaWifCottonFirstTime);
}
function centaurNagaBodyBookStuff():void {
spriteSelect(12);
//Havent been told about the book yet?
if(flags[244] == 0) {
outputText("\"<i>I'd love to teach you, but I'm afraid I don't know any good routines for your... body type. Sorry, pet...</i>\" she trails off, as if considering something, and then turns back to you, saying, \"<i>Actually, I think I might know where you could find a book of exercises that would work for you. A traveling salesman came by once, and I saw it in his wares, a book of advanced yoga techniques, aimed at the more exotically shaped denizens of Mareth. I didn't pick it up, of course, because I didn't need it. But if you could find the salesman and bring the book back to me, I'd most definitely be able to coach you.</i>\"", false);
//(Adds Yoga Book to Giacomo's inventory under Books)
flags[244]++;
doNext(13);
return;
}
//Come back wtih book first time
else if(flags[244] == 1 && player.hasKeyItem("Yoga Guide") >= 0) {
outputText("\"<i>Have you retrieved the book I mentioned?</i>\" You nod and hand the leather-bound book over to her. She grins and flicks through the pages. \"<i>Oooh, yes I thought as much... Mm-hm... Oh my, nagas can stretch like that?</i>\" Suddenly remembering you're here, she says, \"<i>I'll study this quickly. Come back later and I'll be able to give you a great workout.</i>\"", false);
flags[244]++;
doNext(13);
return;
}
//Been told about the book but dont have it.
else if(flags[244] == 1) {
outputText("\"<i>Have you retrieved the book I mentioned?</i>\" You shake your head sadly, and she sighs. \"<i>Well, until you do there's not much I can do for you.</i>\"", false);
doNext(13);
return;
}
//First time with book
else if(flags[244] == 2) {
//(On approach with Centaur/Naga body first time after giving the book)
outputText("You approach Cotton, who gives you an exuberant grin. \"<i>I've read through the book and I'm pretty confident I can coach you now. What do you say we give it a go? I've arranged for some proper yoga clothes for you. Well, really just the top, but that's what matters for you, isn't it?</i>\"\n\n", false);
outputText("Do you want to engage in Yoga with her?", false);
flags[244]++;
cottonMenu();
return;
}
else if((player.pregnancyIncubation <= 225 && player.pregnancyIncubation > 0) && player.pregnancyType == 20)
{
//Lamaze Class*
//Approach Cotton, PC visibly pregnant (at least 2nd trimester, or whatever is equivalent in CoC-land)
outputText("As you approach Cotton, she smiles and looks at your round belly. \"<i>Hey there my pet, I'm afraid in your condition, yoga's out of the question... but we can do some special stretches and lamaze, just get dressed as usual.</i>\"");
outputText("Do you want to engage in yoga lamaze with her?");
menu();
cottonMenu();
return;
}
else if(flags[COTTON_PREGNANCY_INCUBATION] > 0) {
//(Cotton Pregnant Stage 1)
if(flags[COTTON_PREGNANCY_INCUBATION] >= 300) {
outputText("You approach Cotton, who, to your surprise, is just polishing off what must have been the largest glazed pastry you've ever seen. You notice muffin wrappers and other evidence of baked goods near her workout mat as well. You ask if Cotton's been feeling a bit peckish recently... you correct yourself and ask if Cotton's been starving recently.");
outputText("\n\nShe 'haruumphs' a little bit and licks her fingers clean. \"<i>I've just been craving pastries... Besides, I'm in the gym every day, it's not going to ruin my figure,</i>\" she waves a hand dismissively. \"<i>Anyway, if you want to work out, just get changed and come back.</i>\"");
}
//(Cotton Pregnant Stage 2)
else if(flags[COTTON_PREGNANCY_INCUBATION] >= 200) {
outputText("Cotton waves as you approach, happy to see you as always. As you get nearer, you can see a very distinctive bump in her previously washboard-flat belly; if you weren't well aware of her pregnancy, you'd think that her overeating was catching up with her. The bulge isn't enough to force her to change clothes just yet, but her outfit must be getting tighter. You ask how she's feeling, patting your own belly to clue her in what you're referring too.");
outputText("\n\n\"<i>Hungry, again. I think I'll take another trip to the bakery after this,</i>\" she replies with a wistful look in her eyes. \"<i>Anyway, if you want to work out, just change and come on back.</i>\"");
}
//(Cotton Pregnant Stage 3)
else if(flags[COTTON_PREGNANCY_INCUBATION] >= 100) {
outputText("You approach Cotton, who smiles and waves. Her belly now bulges forward, unmistakably pregnant. Her former tank top is gone, now replaced by a kind of maternity shirt, which shows off the belly even more. The yoga pants remain, however, though they hang a bit lower than usual. Strangely, you notice she's sucking on a lollipop, and ask her about it.");
outputText("\n\n\"<i>Oh, it just cuts down on the nausea. Plus I think this little rascal,</i>\" she rubs her belly a bit, \"<i>has a sweet tooth. Or maybe it's just me. Anyway, just change and come back if you want to work out, pet.</i>\"");
}
//(Cotton Pregnant Stage 4)
else {
outputText("Cotton smiles and greets you as you approach. Gone is her usual top, instead she's chosen to show off her enormous, round brown belly with an incredibly short white tank top which might be confused with a bra if you didn't know any better. Though you'd imagine her movement would be quite limited, she actually moves with her usual grace... until her belly collides with a row of water bottles set out on a nearby table, knocking them to the ground.");
outputText("\n\nYou ask if maybe she should be at home right now, putting her hooves up and relaxing. She shakes her head and says, \"<i>Oh no I'm fine. I've got students to teach, and I don't have to do much strenuous activity myself, so don't worry. Anyway, if you want a lesson, just get changed and come on back.</i>\"");
//Display Cotton options
}
cottonMenu();
return;
}
//Standard repeat
else {
outputText("You approach Cotton, who smiles and says, \"<i>Hey there my little pet, if you'd like a work out, just get changed and come on back.</i>\"\n\nDo you want to engage in Yoga with her?", false);
cottonMenu();
return;
}
doNext(13);
return;
}
//(If No)
function turnDownYogaWifCottonFirstTime():void {
spriteSelect(12);
outputText("", true);
outputText("\"<i>That's all right, to each their own. I'll be here if you ever change your mind.</i>\" With that, Cotton returns to her mat and continues stretching in various poses.\n\n", false);
doNext(13);
}
//(If Yes. Improves muscle tone up to 50, speed and feminine features.)
function acceptYoga():void {
spriteSelect(12);
outputText("", true);
var fuckHer:Number = 0;
var getFucked:Number = 0;
var option3:Number = 0;
var option4:Number = 0;
if(player.fatigue > 80) {
outputText("You're wayyy too tired to do any yoga right now.", false);
doNext(2211);
return;
}
if(flags[167] == 0 && player.gems < 10) {
outputText("Before you can start the yogo the centauress steps in and says, \"<i>Ten gems for gym fees.</i>\"\n\nYou fish around in your pouches, but you just don't have enough. Maybe some other time!", false);
doNext(13);
return;
}
if(flags[167] == 0) {
player.gems -= 10;
statScreenRefresh();
outputText("The centauress collects ten gems for gym fees before the two of you can get into it.\n\n", false);
}
//(Yes) LAMAZE
if((player.pregnancyIncubation <= 225 && player.pregnancyIncubation > 0) && player.pregnancyType == 20)
{
outputText("You change into your yoga clothes and approach Cotton, saying you'd love a lamaze class. Cotton smiles and sets up a mat for you, then sits down, urging you to sit in front of her. You do so, feeling the bulge in her pants pressing against your rump, and her breasts at your back. You spend the next fifteen minutes doing breathing exercises like this, and another fifteen minutes doing stretches on an exercise ball. As you're working out, Cotton presses her body against yours, running her hands around your swollen belly at every opportunity.\n\n");
//CHAT STUFF!
cottonChat();
outputText("Once you're done and about to hit the showers, Cotton pulls you aside and says with a grin, \"<i>Up for some post-workout exercises?</i>\"", false);
//[Shower Sex (Fuck Her) (As Male or Herm only)] [Shower Sex (Get Fucked)] [Tantric Sex (Only if Speed is 50+)] [Leave]
if(player.hasCock()) fuckHer = 2817;
if(player.gender > 0) getFucked = 2818;
//if(player.spe >= 50 && !player.isTaur()) option3 = 2819;
simpleChoices("Fuck Her",fuckHer,"Get Fucked",getFucked,"Tantric Sex",option3,"",0,"Leave",2820);
}
//First time
else if(flags[176] == 0) {
outputText("\"<i>Good, good, you won't regret it. First things first, pet, let's get you out of that dreadful clothing.</i>\" She leads you to the lockers and helps you strip out of your " + player.armorName + ".", false);
if(player.gender == 3) outputText(" She spies your crotch and smiles, \"<i>Oh, best of both worlds, are we? Well you're in good company then.</i>\"", false);
//(If PC is male:
else if(player.hasCock()) outputText(" She cradles your " + cockDescript(0) + " and smiles at you, \"<i>Well, we might find a use for that later.</i>\"", false);
//(If PC is female:
else if(player.hasVagina()) outputText(" She pats your groin and says, \"<i>Y'know, I know some good exercises that really work the vaginal muscles... perhaps we'll talk about that later.</i>\"", false);
outputText("\n\n", false);
outputText("She then helps you into an outfit identical to her own and you both return to the gym proper.\n\n", false);
outputText("She instructs you to lay on the mat, and you do. She proceeds to talk you through several poses, and hovers over you to correct your positioning here or there with a soft touch. Several times she bends over you, and her enormous bosom gets right in your face. At one point she stands over your head and you accidentally get a face full of her musky crotch. After about a half hour of this, the arousal and fatigue is too much and you explain you have to quit for now.\n\n", false);
stats(0,0,0,0,0,0,(10+player.lib/10+player.sens/20),0);
outputText("\"<i>Oh, that's too bad. But you've done pretty good for a beginner,</i>\" she helps you up off the mat and pats you gently on the back. \"<i>Want to hit the showers then?</i>\" Despite having done little more than stretching, you find you are sweating quite a bit... but something makes you wonder if her idea of hitting the shower is the same as yours.", false);
//[Shower] or [Leave]
simpleChoices("Shower",2812,"",0,"",0,"",0,"Leave",2811);
}
//(Repeat Encounter (Didn't have sex))
//Done yoga > 0 && met type = 1
else if(flags[177] == 1 && flags[176] > 0) {
outputText("You change into your yoga clothes and approach Cotton, saying you'd love another yoga workout. Cotton smiles and sets up a mat for you. You spend the next half an hour trying different poses and stretches while she corrects you, sometimes pressing her body against yours to show you how it's done.\n\n", false);
outputText("Once you're done and about to hit the showers, Cotton pulls you aside and says, \"<i>I know you weren't comfortable with our shower before, so I won't join you this time. But if you ever change your mind, just say the word.</i>\"", false);
//[Shower Sex (Fuck Her)] [Shower Sex (Get Fucked)] [Tantric Sex (Only if Speed is 50+)] [Leave]
if(player.hasCock()) fuckHer = 2817;
if(player.gender > 0) getFucked = 2818;
if(player.spe >= 50 && !player.isTaur()) option3 = 2819;
simpleChoices("Fuck Her",fuckHer,"Get Fucked",getFucked,"Tantric Sex",option3,"",0,"Leave",2820);
}
//(Repeat Encounter (Had Sex))
else {
//(For Centaur Bodies: )
if(player.isTaur()) outputText("You change into your yoga clothes (just the tank top, really), and approach Cotton, saying you'd love a yoga workout. Cotton smiles and sets up a large mat for you. You spend the next half hour trying different poses and stretches, mostly dealing with your upper half but occasionally requiring you to stretch out your legs or lay down. As you work out, Cotton presses her body against yours under the pretense of showing you how it's done, but really just to press her tits and crotch up against you.\n\n", false);
//(For Naga Bodies: )
else if(player.isNaga()) outputText("You change into your yoga clothes (just the tank top, really), and approach Cotton, saying you'd love a yoga workout. Cotton smiles and sets up a large mat for you. You spend the next half hour trying different poses and stretches, a lot of which involves coiling in certain ways, or creating shapes with your snake-like body. Cotton seems genuinely impressed at your range of flexibility. As you work out, she presses her body against yours under the pretense of showing you how it's done, but really just to press her tits and crotch up against you.\n\n", false);
//(For Humanoid Bodies: )
else outputText("You change into your yoga clothes and approach Cotton, saying you'd love a yoga workout. Cotton smiles and sets up a mat for you. You spend the next half hour trying different poses, including everything from simple stretches to awkward contortions. As you work out, Cotton presses her body against yours under the pretense of showing you how it's done, but really just to press her tits and crotch up against you.\n\n", false);
//CHAT STUFF!
cottonChat();
outputText("Once you're done and about to hit the showers, Cotton pulls you aside and says with a grin, \"<i>Up for some post-workout exercises?</i>\"", false);
//[Shower Sex (Fuck Her) (As Male or Herm only)] [Shower Sex (Get Fucked)] [Tantric Sex (Only if Speed is 50+)] [Leave]
if(player.hasCock()) fuckHer = 2817;
if(player.gender > 0) getFucked = 2818;
if(player.spe >= 50 && !player.isTaur()) option3 = 2819;
simpleChoices("Fuck Her",fuckHer,"Get Fucked",getFucked,"Tantric Sex",option3,"",0,"Leave",2820);
}
//(Increases muscle tone up to 50, speed and feminine features.)
player.modTone(52,1);
flags[176]++;
fatigue(20);
stats(0,0,1,0,0,0,(5+player.lib/20+player.sens/20),0);
}
function cottonChat():void {
spriteSelect(12);
var chats:Array = new Array();
//Urta chance
if(flags[11] > 0) chats[chats.length] = 1;
//Edryn chance
if(player.hasStatusAffect("Edryn") >= 0) chats[chats.length] = 2;
//(Scylla chat)
if(flags[54] > 0) chats[chats.length] = 2;
//VALA
if(flags[119] != 0) chats[chats.length] = 3;
//(Jojo chat)
if(monk > 0) chats[chats.length] = 4;
var choice:Number = chats[rand(chats.length)];
//(Urta Chat)
if(choice == 1) {
//(If you've rejected Urta's love or left her)
if(flags[12] < 0 || flags[30] < 0) outputText("While you're doing your stretches, you find yourself chatting about the folks of Tel'Adre. \"<i>Urta?</i>\" Cotton says, \"<i>She's a good woman, but she's been pretty depressed lately.</i>\" Your yoga partner scowls at you, and presses you into an uncomfortable pose, \"<i>I hear you upset her. The poor girl has had an awful cruel life. I hope you didn't make it any worse for her.</i>\"\n\n", false);
//(If you've accepted Urta's love)
else if(urtaLove()) outputText("While you're doing your stretches, you find yourself chatting about the folks of Tel'Adre. \"<i>Urta?</i>\" Cotton says, \"<i>She's a good woman. I hear you two have been quite the couple lately.</i>\" You blush. \"<i>No need to be embarrassed, from what I hear you've been a good influence on her. She's not nearly as high-strung or stressed anymore. Whatever you're doing with her, keep it up, pet.</i>\"\n\n", false);
//(If Urta's relationship with PC is low, so she's still uncomfortable with her body)
else outputText("While you're doing your stretches, you find yourself chatting about the folks of Tel'Adre. \"<i>Urta?</i>\" Cotton says, \"<i>She's a good woman. A bit high strung sometimes, but she's got a lot on her plate keeping us all safe here. I'd invite her 'round for some yoga, maybe to help her relax, but I don't think it's really her thing.</i>\"\n\n", false);
}
//(Edryn chat)
else if(choice == 2) {
//(If Edryn has been knocked up, and PC rejected it)
if(flags[70] > 0) outputText("While you're doing your stretches, you find yourself chatting about the folks of Tel'Adre. \"<i>Edryn?</i>\" Cotton says, \"<i>I hear you knocked her up, then left her with the kid. Well, I think she'll make a great mom by herself, but really pet, what were you thinking? It was awfully cruel of you.</i>\" The rest of the workout is filled with more painful stretches, and Cotton assists you more roughly than normal.\n\n", false);
//(If Edryn has been knocked up, and PC didn't reject it)
else if(flags[69] > 0) outputText("While you're doing your stretches, you find yourself chatting about the folks of Tel'Adre. \"<i>Edryn?</i>\" Cotton says and giggles, \"<i>I hear you knocked her up, good on you. I think she'll make a great mom, and you " + player.mf("a great dad","as well") + ".</i>\" She gives you a kiss on the cheek and continues the stretches.\n\n", false);
//(If Edryn hasn't been knocked up)
else outputText("While you're doing your stretches, you find yourself chatting about the folks of Tel'Adre. \"<i>Edryn?</i>\" Cotton says, \"<i>I've seen her around the Wet Bitch late at night. I hear she sells herself for money, though I've never purchased her services. She's a good guardswoman though. Saves a lot of lives.</i>\"\n\n", false);
}
//(Scylla chat)
else if(choice == 3) {
//(if Scylla hasn't formed support group)
if(flags[54] < 5 && player.hasCock() && player.balls > 0 && player.hasStatusAffect("DungeonShutDown") >= 0) outputText("While you're doing your stretches, you find yourself chatting about the folks of Tel'Adre. \"<i>Scylla?</i>\" Cotton says, \"<i>She's the oddly dressed woman at the Wet Bitch, right? Can't say I know much about her. She's so secretive.</i>\"\n\n", false);
//(if Scylla has formed support group)
else if(flags[54] >= 5 && player.hasCock() && player.balls > 0 && player.hasStatusAffect("DungeonShutDown") >= 0) outputText("While you're doing your stretches, you find yourself chatting about the folks of Tel'Adre. \"<i>Scylla?</i>\" Cotton says, \"<i>I hear she formed an addiction support group. Good on her, there's a lot of people in and around town who need help. I'm glad she's stepping up.</i>\"\n\n", false);
}
//(Vala chat)
else if(choice == 4) {
//(Only if Vala has been freed)
if(flags[119] != 0) outputText("While you're doing your stretches, you find yourself chatting about the folks of Tel'Adre. \"<i>Vala?</i>\" Cotton says, \"<i>That's the new waitress at the Wet Bitch, right? She's cute. A shame what she's gone through. Sometimes I wish we could wipe out every last imp.</i>\"\n\n", false);
}
//(Jojo chat)
else if(choice == 5) {
//(If Jojo hasn't been corrupted)
if(monk == 1) {
outputText("While you're doing your stretches, you find yourself chatting about the folks of Tel'Adre and beyond. \"<i>Jojo?</i>\" Cotton says, \"<i>You know Jojo too? I met him a while back. He taught me the finer points of meditation, which I incorporate into my yoga. Here, let's try.</i>\" You spend the rest of the workout in meditative poses, and by the time you're done, you feel… lighter somehow.\n\n", false);
stats(0,0,0,0,0,0,0,-1);
}
//(If Jojo has been corrupted)
else if(monk > 1) outputText("While you're doing your stretches, you find yourself chatting about the folks of Tel'Adre. \"<i>Jojo?</i>\" Cotton says, \"<i>You know Jojo too? I met him a while back. He taught me the finer points of meditation. I haven't seen him much lately, though. I wonder where he's gone to.</i>\" You smile inwardly, knowing exactly where he's gone to.\n\n", false);
}
}
//(If Leave)
function leaveAfterYoga():void {
spriteSelect(12);
outputText("", true);
outputText("\"<i>Suit yourself. You can run around all stinky, meanwhile I'm going to go wash. Feel free to drop by later for some more yoga if you'd like.</i>\" With that, Cotton heads off to the showers and you leave the gym.\n\n", false);
doNext(13);
}
//(If Shower)
function cottonShowerFunTimes():void {
spriteSelect(12);
var option1:Number = 0;
var option2:Number = 0;
var option3:Number = 0;
outputText("", true);
outputText("\"<i>Perfect! Let's go,</i>\" she takes you by the arm and leads you back into the lockers, and then into the nearby showers, which are apparently unisex. You both strip down and turn on a shower head. After a few moments of scrubbing up, you give your shower buddy a surreptitious glance.\n\n", false);
outputText("Without the clothes on, you can see her body is quite well toned. Not overly muscular, but you can easily make out the muscles on her belly. She sports a belly ring, and each nipple has a barbell piercing. Looking a bit lower, you finally take in her equine cock. It's quite large, at least a foot long flaccid, as it is now. You wonder how big it gets... She catches you looking and gives you a devilish grin.\n\n", false);
outputText("\"<i>Well? Care for a little... post-workout stretching?</i>\"", false);
//[Fuck Her (Male or Herm only)] [Get Fucked] [Service her] [Refuse]
if(player.hasCock()) option1 = 2813;
if(player.gender > 0) option2 = 2814;
simpleChoices("Fuck Her",option1,"Get Fucked",option2,"ServiceHer",2815,"",0,"Refuse",2816);
}
//(Fuck Her)
function cottonFirstTimeFuckHer():void {
spriteSelect(12);
flags[177] = 2;
outputText("", true);
var x:Number = player.cockThatFits(100);
if(x < 0) x = 0;
outputText("Needing no encouragement, you step behind the large horse herm and push her under the stream of water. \"<i>Oh, taking the lead are we?</i>\" She laughs, \"<i>Please, by all means, my little pet.</i>\"\n\n", false);
outputText("You push her shoulders down so that she's bent over, water rushing down her back, around her tail and down her crack. You kneel and press your face into the crevasse, taking in her musky equine scent before taking your first taste of her cunt. It tastes mildly of sweat, but it's a salty-sweet taste that most certainly agrees with your taste buds. You take another taste, then another, and before long your tongue is ravashing her pussy, dipping into and around its folds, exploring like an adventurer in search of gold. Cotton gasps and groans as you go, her arms resting against the wall, propping her up.\n\n", false);
outputText("Her pussy quivers and trembles around your tongue. You can tell she's so close to orgasm... but that's not what you want right now. With a small amount of regret, you pull back from her delicious snatch, wipe the water and juices from your face and stand, stroking your " + cockDescript(x) + " to full attention and pressing it against her ready hole. Grasping her hips firmly, you whisper dirty words into your horse lover's ear before slowly thrusting in. Cotton gives an ever-so-slight whinny and a gasp, her body moving back into yours.\n\n", false);
outputText("The water pouring on you heats up, and you see Cotton's hand on the temperature controls. Steam billows around the two of you, and your already hot bodies run hotter. You thrust, she thrusts back. You lean down, groping her large tits while you fuck. Her legs tremble and quake threatening to give out any moment.\n\n", false);
outputText("After several minutes of this, you just can't take it anymore and your " + cockDescript(x) + " explodes within her, coating her insides with your seed, and as you do you feel Cotton's pussy clamp down on you tightly, working every last drop out of you. Her own cock explodes, coating the wall and floor beneath you in her musky scent. Nearly exhausted, you collapse on top of Cotton momentarily while you catch your breath. The two of you sink down to the shower floor, letting the hot water wash away the evidence of your love making.\n\n", false);
outputText("After another minute, you pull your flaccid cock out of your horse lover's hole and take the moment to carefully wash the both of you up.\n\n", false);
outputText("Your 'post-workout stretch' and shower done, the two of you dry off, redress and leave the gym. Cotton takes you by the arm and says, \"<i>That was great, pet. Come by the gym anytime. I'll be waiting.</i>\" Then, she heads back home. With a little grin on your face, you do the same.\n\n", false);
pregCottonChance();
stats(0,0,0,0,0,-1,-100,0);
doNext(13);
}
//(Get fucked, as Male)
function cottonFucksYou():void {
spriteSelect(12);
flags[177] = 2;
outputText("", true);
slimeFeed();
if(player.gender == 1) {
outputText("You nod your head in assent. Noticing you didn't take the initiative, Cotton smiles and moves behind you, pushing you under your own shower spray. \"<i>Don't worry, my little pet, let Cotton take care of everything...</i>\" She gets a handful of soap and gently rubs your back, massaging the soap in while relaxing your muscles. You lean forward resting your arms and torso against the wall in front of you.\n\n", false);
outputText("Cotton smiles, continuing to massage the soap in until she gets to your buttocks. There, she gets another handful of soap and presses it into your crack, gently soaping you up from taint to tailbone. Then she carefully inserts one finger into your " + assholeDescript() + " then two, three and before long her entire hand is exploring your depths. She giggles and withdraws her hand, \"<i>My my, such an eager little ass you have, my pet.</i>\"\n\n", false);
outputText("She reaches between her legs and lifts her cock, letting it rest on the small of your back while she wets it down with water from the shower and strokes it to its full length. You feel it inching across your back, growing hotter and harder. With a glance back, you estimate it must be at least two feet long! You gulp and put your head down, clenching your teeth for the inevitable.\n\n", false);
outputText("\"<i>Oh now pet, don't be so scared,</i>\" Cotton whispers into your ear, then lifts her cock from your back and places it at your " + assholeDescript() + ". She reaches forwards and you hear the squeak of the temperature nozzle being turned. Seconds later, the water pouring down on you gets hotter, causing your whole body to heat up in response. Using this time, Cotton presses forwards, her equine cock invading your " + assholeDescript() + " like a charging army. She thrusts in and out slowly, being careful not to hurt you.", false);
buttChange(72,true,true,false);
outputText("\n\n", false);
outputText("Before long you find yourself moaning beneath her, your " + assholeDescript() + " clenching and unclenching uncontrollably. \"<i>Ooh, my little pet likes it now, hmmm?</i>\" She whispers into your ear and nibbles on it ever-so-slightly. You can't help but give a breathless \"<i>Yes</i>\" in response. Cotton giggles and speeds up her thrusts. You find yourself pushing back into her, urging her to go deeper and deeper. Your own dick is completely limp in the presence of this godly cock, but tingles with pleasure and anticipation.\n\n", false);
outputText("After a few minutes of this, neither of you can take much more. Both of you give a deep moan of orgasmic pleasure as your " + assholeDescript() + " clenches and you feel your equine lover's cock twitch and spasm within you, flooding your hole with her hot seed. Your own limp member shudders with orgasm, but instead of spurting, it leaks a small torrent of cum right down onto the floor.", false);
if(player.cumQ() >= 1000) outputText(" You nearly clog the drain with all the spooge leaking from your flaccid shaft.", false);
outputText("\n\n", false);
outputText("The two of you slip down onto the floor, right into your puddle of cum, letting the water rinse you off for the time being. After a minute, Cotton pulls her now flaccid (but still impressive) cock from your rear, which gapes open for several minutes afterward, and proceeds to clean the both of you up.\n\n", false);
outputText("Your 'post-workout stretch' and shower done, the two of you dry off, redress and leave the gym. Cotton takes you by the arm and says, \"<i>That was great, little pet. Come by the gym anytime. I'll be waiting.</i>\" Then, she heads back home. With a little grin on your face, you do the same.\n\n", false);
stats(0,0,0,0,0,2,-100,0);
}
//(Get fucked, as Female)
else if(player.gender == 2) {
outputText("You nod your head in assent. Noticing you didn't take the initiative, Cotton smiles and moves behind you, pushing you under your own shower spray. \"<i>Don't worry, my little pet, let Cotton take care of everything...</i>\" She gets a handful of soap and gently rubs your back, massaging the soap in while relaxing your muscles. You lean forward resting your arms and torso against the wall in front of you.\n\n", false);
outputText("Cotton smiles, continuing to massage the soap in until she gets to your rear. There, she gets another handful of soap and presses it into your crevasse, gently soaping you up from " + clitDescript() + " to tailbone. Then she carefully inserts one finger into your pussy, then two, three, and before long her entire hand is exploring your most personal depths. She giggles and withdraws her hand, \"<i>My my, such an eager little cunt you have, my pet.</i>\"\n\n", false);
outputText("She reaches between her legs and lifts her cock, letting it rest on the small of your back while she wets it down with water from the shower and strokes it to its full length. You feel it inching across your back, growing hotter and harder. With a glance back, you estimate it must be at least two feet long! You gulp and put your head down, clenching your teeth for the inevitable.\n\n", false);
outputText("\"<i>Oh now pet, don't be so scared,</i>\" Cotton whispers into your ear, then lifts her cock from your back and places it at your " + vaginaDescript(0) + ". She reaches forwards and you hear the squeak of the temperature nozzle being turned. Seconds later, the water pouring down on you gets hotter, causing your whole body to heat up in response. Using this time, Cotton presses forwards, her equine cock invading your " + vaginaDescript(0) + " like a charging army. She thrusts in and out slowly, being careful not to hurt you.", false);
cuntChange(72,true,true,false);
outputText("\n\n", false);
outputText("Before long you find yourself moaning beneath her, your cunt clenching and unclenching uncontrollably. \"<i>Ooh, my little pet likes it now, hmmm?</i>\" She whispers into your ear and nibbles on it ever-so-slightly. You can't help but give a breathless \"<i>Yes</i>\" in response. Cotton giggles and speeds up her thrusts. You find yourself pushing back into her, urging her to go deeper and deeper. Your clit twinges with pleasure after every thrust.\n\n", false);
outputText("After a few minutes of this, neither of you can take much more. Both of you give a deep moan of orgasmic pleasure as your pussy clenches and you feel your equine lover's cock twitch and spasm within you, flooding your hole with her hot seed. You gasp and reflexively arch your back, moaning into the shower walls.\n\n", false);
outputText("The two of you slip down onto the floor, letting the water rinse you off for the time being. After a minute, Cotton pulls her now flaccid (but still impressive) cock from your folds, which gapes open for several minutes afterward, and proceeds to clean the both of you up.\n\n", false);
outputText("Your 'post-workout stretch' and shower done, the two of you dry off, redress and leave the gym. Cotton takes you by the arm and says, \"<i>That was great, little pet. Come by the gym anytime. I'll be waiting.</i>\" Then, she heads back home. With a little grin on your face, you do the same.", false);
stats(0,0,0,0,0,-1,-100,0);
cottonPregPCChance();
}
//(Get fucked, as Herm)
else {
outputText("You nod your head in assent. Noticing you didn't take the initiative, Cotton smiles and moves behind you, pushing you under your own shower spray. \"<i>Don't worry, my little pet, let Cotton take care of everything...</i>\" She gets a handful of soap and gently rubs your back, massaging the soap in while relaxing your muscles. You lean forward resting your arms and torso against the wall in front of you.\n\n", false);
outputText("Cotton smiles, continuing to massage the soap in until she gets to your rear. There, she gets another handful of soap and presses it into your crevasse, gently soaping you up from " + clitDescript() + " to tailbone. Then she carefully inserts one finger into your pussy, then two, three, and before long her entire hand is exploring your most personal depths. She giggles and withdraws her hand, \"<i>My my, such an eager little cunt you have, my pet.</i>\"\n\n", false);
outputText("She reaches between her legs and lifts her cock, letting it rest on the small of your back while she wets it down with water from the shower and strokes it to its full length. You feel it inching across your back, growing hotter and harder. With a glance back, you estimate it must be at least two feet long! You gulp and put your head down, clenching your teeth for the inevitable.\n\n", false);
outputText("\"<i>Oh now pet, don't be so scared,</i>\" Cotton whispers into your ear, then lifts her cock from your back and places it at your " + vaginaDescript() + ". She reaches forwards and you hear the squeak of the temperature nozzle being turned. Seconds later, the water pouring down on you gets hotter, causing your whole body to heat up in response. Using this time, Cotton presses forwards, her equine cock invading your " + vaginaDescript() + " like a charging army. She thrusts in and out slowly, being careful not to hurt you.", false);
cuntChange(72,true,true,false);
outputText("\n\n", false);
outputText("Before long you find yourself moaning beneath her, your cunt clenching and unclenching uncontrollably. \"<i>Ooh, my little pet likes it now, hmmm?</i>\" She whispers into your ear and nibbles on it ever-so-slightly. You can't help but give a breathless \"<i>Yes</i>\" in response. Cotton giggles and speeds up her thrusts. You find yourself pushing back into her, urging her to go deeper and deeper. Your " + clitDescript() + " twinges with pleasure after every thrust, and your own " + cockDescript(x) + " is completely limp in the presence of this godly cock, but still it tingles with pleasure and anticipation.\n\n", false);
outputText("After a few minutes of this, neither of you can take much more. Both of you give a deep moan of orgasmic pleasure as your pussy clenches and you feel your equine lover's cock twitch and spasm within you, flooding your hole with her hot seed. You gasp and reflexively arch your back, moaning into the shower walls while your own limp member shudders with orgasm, but instead of spurting, it leaks a small torrent of cum right down onto the floor.\n\n", false);
outputText("The two of you slip down onto the floor, letting the water rinse you off for the time being. After a minute, Cotton pulls her now flaccid (but still impressive) cock from your folds, which gapes open for several minutes afterward, and proceeds to clean the both of you up.\n\n", false);
outputText("Your 'post-workout stretch' and shower done, the two of you dry off, redress and leave the gym. Cotton takes you by the arm and says, \"<i>That was great, little pet. Come by the gym anytime. I'll be waiting.</i>\" Then, she heads back home. With a little grin on your face, you do the same.\n\n", false);
stats(0,0,0,0,0,-1,-100,0);
cottonPregPCChance();
}
doNext(13);
}
//(Service her, any gender)
function serviceFirstTimeCotton():void {
spriteSelect(12);
flags[177] = 2;
slimeFeed();
outputText("", true);
outputText("You meekly nod your head in assent, staring at her cock. \"<i>Ooh, interested in that, are we? Well, I wouldn't want to disappoint my little pet.</i>\" She steps back a bit and lets you get under her shower spray before pushing you into a kneeling position. Running a hand along the length of her equine member, she pulls it up until you're face to face with it. \"<i>How about you get it nice and ready to go first?</i>\"\n\n", false);
outputText("Nodding, you gulp and grasp her cock, feeling along its warm semi-rigid length. You get it under the spray of water and rub gently, letting it harden. You occasionally glance up at Cotton, to make sure you're doing ok, and she just smiles back at you, wordlessly urging you to continue.\n\n", false);
outputText("Leaning forward you give it a tentative lick along the side, and, to your surprise, find it to be quite sweet and pleasant. You lick again, then again, stroking it dutifully as you do so. It's not long until it's fully erect, at least two feet long by your estimate. Rather than be intimidated, you're spurred on! After all, you've got a lot of cock to suck and only so much time.\n\n", false);
outputText("You pull your head back slightly and lick the head of Cotton's dick, its flat head a daunting task indeed. You open your mouth wide and take in the tip, swirling your tongue around the edge, teasing your lover's urethra until she's gasping slightly. Then you ease down the length of her impressive member, your tongue undulating the underside as it goes deeper into your mouth, then down your throat. You bob and suck and lick.\n\n", false);
outputText("Cotton heaves forwards, pressing her hands against the wall behind you, \"<i>Almost... almost...</i>\" she whispers. You'd grin if you could, but find it's rather difficult with a mouthful of cock. So instead you keep at it, bobbing on the dick in front of you. It doesn't take much longer. You feel the horse-girl tense, her cock stiffening in your mouth. You pull back, releasing your mouth's grip on the cock just as it explodes in a torrent of cum, coating your face and torso.\n\n", false);
outputText("You gulp it down, mildly surprised at how sweet it tastes. Taking two fingers you collect some of the cum deposited on your face and lick it off, then you carefully lick Cotton's rapidly shrinking member, until not a drop of cum remains.\n\n", false);
outputText("Cotton helps you up and gives you a warm kiss, tasting her own seed in your mouth. Wordlessly, you finish your shower, redress and head out of the gym. Cotton takes you by the arm and says, \"<i>That was great, little pet. Come by the gym anytime. I'll be waiting.</i>\" Then, she heads back home. With a little grin on your face, you do the same.", false);
stats(0,0,0,0,0,1,(10+player.lib/20+player.sens/20),0);
doNext(13);
}
//(If Refuse)
function refuseFirstTimeCotton():void {
spriteSelect(12);
outputText("", true);
outputText("She looks at you a little sad, \"<i>You certain pet? Well, all right. But you don't know what you're missing.</i>\" The two of you continue your shower with no funny business, then redress and leave the gym. Cotton stops you before you go too far and says, \"<i>Hey, if you want to stop by the gym later for some more yoga, I'd be happy to help.</i>\" Then she heads off down the street, and you head back to camp.", false);
doNext(13);
}
//(Shower Sex, Fuck Her)
function fuckCottonInShowerRepeat():void {
flags[177] = 2;
spriteSelect(12);
outputText("", true);
var x:Number = player.cockThatFits(60);
if(x < 0) x = 0;
/*OLD ORIGINAL REPEAT SHOWER SEX
outputText("You decide to take her up on her offer, pulling her into the showers and quickly disrobing. Seeing the look on your face, she does too, and quickly enters the showers, turning only one shower-head on. She turns around and grabs you, pulling you into an embrace as you kiss under the steaming water. Both your cocks stir, rising and rubbing together while you make out.\n\n", false);
outputText("Finally breaking the kiss, you reach down and hook your arm under one of her legs, lifting her leg up while you position your rock hard member at her pussy. She leans forward to kiss again as you thrust forwards, causing her to moan into your mouth. You thrust in and out while her horse-cock bounces between the two of you, only adding to the excitement.\n\n", false);
outputText("After several minutes, the hot shower, hot woman and hot sex are just too much for you, and give one last thrust, pushing your bodies forward to slam against the wall. It's clearly too much for Cotton as well, as she groans out in orgasmic ecstasy. Her cock, sandwiched between you, tenses and explodes just as yours does, covering Cotton in cum inside and out.\n\n", false);
outputText("After a moment you pull out, share a deep kiss, and wash each other up before redressing and leaving the gym.", false);
*/
//(Repeat Fuck Her, for centaurs)
if(player.isTaur()) {
outputText("You decide to take her up on her offer and lead her into the showers, quickly disrobing and turning on an available shower-head. Cotton strips as well and you pull her under the stream of water, letting your horse body remain out of the water for now, sharing a kiss as steam begins to form around you. She runs a hand through your " + hairDescript() +" and grips the back of your neck, ");
if(flags[COTTON_PREGNANCY_INCUBATION] > 0 && flags[COTTON_PREGNANCY_INCUBATION] < 300) outputText("pulling you gently towards her bulging belly, which you can't help but put your hands against as you kiss her. The bulge is firm and solid, almost a drum of solid muscle, and you caress it as you and the mare-morph make out, eliciting soft murmurs of appreciation for your efforts.\n\n");
else outputText("pulling you closer.\n\n", false);
//(If PC has one cock)
if(player.cockArea(x) >= 100) {
if(player.cockTotal() == 1) outputText("You feel your " + cockDescript(x) + " stirring beneath your large body, while Cotton's remains curiously limp. While her cock dangles, yours strains for attention.", false);
//(If PC has multiple cocks)
else if(player.cockTotal() > 1) outputText("You feel your " + multiCockDescriptLight() + " stirring beneath your large body, while Cotton's remains curiously limp. While her cock dangles, your group of cocks strains for attention.", false);
}
else {
if(player.cockTotal() == 1) outputText("You feel your " + cockDescript(x) + " stirring beneath your large body, while you watch Cotton's do the same. Her cock rubs against your stomach while yours strains for attention.", false);
//(If PC has multiple cocks)
else if(player.cockTotal() > 1) outputText("You feel your " + multiCockDescriptLight() + " stirring beneath your large body, while you watch Cotton's do the same. Her cock rubs against your stomach while your group of cocks strains for attention.", false);
}
//(If PC has a pussy, add the following)
if(player.hasVagina()) outputText(" Meanwhile, your " + vaginaDescript(0) + " behind you moistens both from the steam and from arousal, and your " + clitDescript() + " aches, craving attention.", false);
outputText("\n\n", false);
//(If PC has breasts)
if(player.biggestTitSize() >= 2) {
outputText("Cotton leans down, groping your " + biggestBreastSizeDescript() + ", taking one " + nippleDescript(0) + " into her mouth and sucking it greedily.", false);
//(and if PC is lactating)
if(player.biggestLactation() >= 1) {
outputText(" Her efforts are soon rewarded as milk begins seeping from your " + nippleDescript(0) + ". Cotton's eyes turn up to your face in surprise, but she doesn't remove her mouth, instead taking the time to gulp down your tasty milk. It isn't long before she draws back, wipes her mouth and practically tackles your other breast, eager to drain it of its precious cargo. You can't help but moan as a draining sensation overwhelms you. After a moment, Cotton pulls away and smacks her lips. \"<i>That is some tasty, tasty milk, pet, I might have to taste you more often.</i>\"", false);
flags[245] = 1;
}
//(else is PC is not lactating)
else outputText(" Cotton soon switches to the other breast, teasing your " + nippleDescript(0) + " with her talented tongue.", false);
outputText("\n\n", false);
}
outputText("Suitably turned on now, you look around and drag one of the nearby benches from the changing rooms into the showers and pull it under the water. Cotton grins, understanding what you plan to do with it, and gets onto all fours on top of it. You walk over the bench, getting your body under the spray of water, and get your cock into position. Your fellow equine lover helps with the fine movement, placing your cock at her entrance while giving your underside a reassuring pat. You slowly push forward, and Cotton bites her lip, again giving a reassuring pat.", false);
//(If player has two cocks, add)
if(player.cockTotal() == 2) outputText(" With a slight grin, you begin poking your extra dick at Cotton's other hole. You hear an indignant grunt, followed by a sigh, and feel her hands on your member, guiding it all the way into her hole.", false);
//(If the player has more cocks, add)
else if(player.cockTotal() > 2) outputText(" The rest of your cocks jiggle and bob, rubbing up against her thighs and butt wildly.", false);
//(If player is too big, add)
if(player.cockArea(x) > 70) outputText(" Though you are far too big for her, you make sure to stuff her as much as you can. Her cunt, big as it is, squeezes tightly on your " + cockDescript(x) + ". She shivers and quakes, and leans against the bench, gripping your forelegs for support. You thrust your overly large tool inside her over and over, stretching her already not-insignificant cunt even wider . Her tongue actually rolls out of her snout, lolling to the side while her eyes roll up into her head, lost in the pleasure. Her body rocks with an orgasm while you piston away under the spray of water.", false);
//(if player is too small (under 4</i>\")
else if(player.cocks[x].cockLength < 4) {
outputText(" Her approval wavers and you hear from below you, \"<i>Is it in yet?</i>\" Your face flushes red and you confirm it is, looking down embarrassed. Cotton rubs one of your forelegs reassuringly and says, \"<i>");
if(flags[COTTON_PREGNANCY_INCUBATION] > 0 && flags[COTTON_PREGNANCY_INCUBATION] < 300) outputText("Don't worry pet, it's plenty adequate for me. And you've got to admit,</i>\" she smirks, rubbing her round belly, \"<i>It gets the job done, doesn't it?");
else outputText("Don't worry pet, it's plenty adequate for me.");
outputText("</i>\" Letting a little smile cross your lips, you push your " + cockDescript(x) + " fully into her, not a big accomplishment for one of your size, but still enough to make you feel good.", false);
}
//(if none of the above, add)
else outputText(" You piston back and forth, and though Cotton's cunt is sizeable, it's able to grip you tightly. Your equine lover moans and grasps at your chest, eventually seizing your leg for support, though she leans backwards.", false);
outputText("\n\n", false);
outputText("You keep this up for a while, fatigue not really an issue with a body of your size and shape. Cotton, meanwhile, gasps for breath audibly and has taken to laying her front half down on the bench, her ass right up in the air. She strokes your forelegs lovingly, showing she's still ready for more. ");
if(player.cockArea(x) >= 100) outputText("Oblivious to you, her own limp cock leaks cum down onto the bench as an orgasm rocks her body.");
else if(flags[COTTON_PREGNANCY_INCUBATION] > 0 && flags[COTTON_PREGNANCY_INCUBATION] < 300) outputText("Oblivious to you, her own cock twitches and spasms, loosing a spray of cum across her swollen, pregnant belly, breasts and bench as an orgasm rocks her body.");
else outputText("Oblivious to you, her own cock twitches and spasms, letting loose a spray of cum across her belly, breasts and the bench as an orgasm rocks her body.", false);
//(If player is too big, add)
if(player.cockArea(x) > 70) outputText(" Even with all the pounding you've been doing, you can't fit your entire girth into her, but she doesn't care. Her eyes seem to roll back and forth like it's hard to focus, and her tongue drips water, sweat and saliva onto her body. She's panting for breath and you are able to make out faint, \"<i>Oh gods, oh gods</i>\" over the running water. Were you able to see her toned stomach, you're sure you could see the outline of your " + cockDescript(x) + " in it. Her back arches under the shower, her red hair messily draped around her face and bench, and she bites her lip as another orgasm rocks her body.", false);
outputText("\n\n", false);
outputText("Finally you just can't take any more. You give one last thrust into your partner and audibly gasp in relief as an orgasm rolls across your body, hitting your nerves with bolts of ecstatic lightning.", false);
//(If PC has a pussy)
if(player.hasVagina()) outputText(" Your " + cockDescript(x) + " erupts inside Cotton's warm cunt which clenches you tightly, while your own femme sex twinges and clenches on air, drooling juices down your legs.", false);
//(else)
else outputText(" Your " + cockDescript(x) + " erupts inside Cotton's warm cunt which clenches you tightly.", false);
//(regardless or above, add)
outputText(" You give a couple more token thrusts and pull out. As you do, ", false);
if(player.cumQ() < 200) outputText("cum begins to seep from her folds", false);
else if(player.cumQ() < 700) outputText("a gush of cum escapes from Cotton's folds", false);
else if(player.cumQ() < 1200) outputText("a small torrent of cum escapes from Cotton's folds", false);
else if(player.cumQ() < 2000)outputText("cum surges from her abused hole", false);
else outputText("a massive flood of cum escapes from her cunt", false);
outputText(", immediately getting washed towards the drain.\n\n", false);
outputText("You both bask in the afterglow for a few moments before you stand up and help Cotton up. You return to the task of cleaning yourselves, sensually washing each other's private areas. Yoga, sex and cleanup done, you get dressed and leave the gym, giving Cotton's hand a final squeeze before departing.", false);
}
//(Repeat fuck her, for nagas)
else if(player.isNaga()) {
outputText("You decide to take her up on her offer and lead her into the showers, quickly disrobing and turning on an available shower-head. Cotton strips as well and you pull her under the stream of water, sharing a kiss as steam begins to form around you. She runs a hand through your " + hairDescript() +" and grips the back of your neck, ");
if(flags[COTTON_PREGNANCY_INCUBATION] > 0 && flags[COTTON_PREGNANCY_INCUBATION] < 300) outputText("pulling you gently towards her bulging belly, which you can't help but put your hands against as you kiss her. The bulge is firm and solid, almost a drum of solid muscle, and you caress it as you and the mare-morph make out, eliciting soft murmurs of appreciation for your efforts.");
else outputText("pulling you closer.\n\n", false);
if(player.cockArea(x) >= 100) {
//(If PC has one cock)
if(player.cockTotal() == 1) outputText(" You feel your " + cockDescript(x) + " stirring beneath you, slowly coming to attention, though Cotton's remains curiously limp. Your " + cockHead(x) + " rubs against her belly, sending ripples of pleasure up your spine.", false);
//(If PC has multiple cocks)
else if(player.cockTotal() > 1) outputText(" You feel your " + multiCockDescriptLight() + " stirring beneath you, slowly coming to attention, though Cotton's remains curiously limp. The group of cocks rubs together as you make out, sending ripples of pleasure up your spine.", false);
}
else {
//(If PC has one cock)
if(player.cockTotal() == 1) outputText("You feel your " + cockDescript(x) + " stirring beneath you, slowly coming to attention alongside Cotton's equine member. The two rub together as you make out, sending ripples of pleasure up your spine.", false);
//(If PC has multiple cocks)
else if(player.cockTotal() > 1) outputText("You feel your " + multiCockDescriptLight() + " stirring beneath you, slowly coming to attention alongside Cotton's equine member. The group of cocks rubs together as you make out, sending ripples of pleasure up your spine.", false);
}
//(If PC has a pussy, add the following)
if(player.hasVagina()) outputText("Your " + vaginaDescript(0) + " meanwhile moistens both from the water and from arousal, and your " + clitDescript() + " aches, craving attention.", false);
outputText("\n\n", false);
//(If PC has breasts)
if(player.biggestTitSize() >= 2) {
outputText("Cotton leans down, groping your " + biggestBreastSizeDescript() + ", taking one " + nippleDescript(0) + " into her mouth and sucking it greedily.", false);
//(and if PC is lactating)
if(player.biggestLactation() >= 1) {
outputText(" Her efforts are soon rewarded as milk begins seeping from your " + nippleDescript(0) + ". Cotton's eyes turn up to your face in surprise, but she doesn't remove her mouth, instead taking the time to gulp down your tasty milk. It isn't long before she draws back, wipes her mouth and practically tackles your other breast, eager to drain it of its precious cargo. You can't help but moan as a draining sensation overwhelms you. After a moment, Cotton pulls away and smacks her lips. \"<i>That is some tasty, tasty milk, pet, I might have to taste you more often.</i>\"", false);
flags[245] = 1;
}
//(else is PC is not lactating)
else outputText(" Cotton soon switches to the other breast, teasing your " + nippleDescript(0) + " with her talented tongue.", false);
outputText("\n\n", false);
}
outputText("Suitably turned on now, you coil your body around Cotton's torso, with your tail spreading her legs apart while you place your " + cockDescript(x) + " at her pussy. You slowly push in, and Cotton bites her lip, looking at you in approval.", false);
//(If player has two cocks, add)
if(player.cockTotal() == 2) outputText(" With a slight grin, you position your extra dick at Cotton's other hole. She quirks her eyebrow and a look of panic momentarily crosses her face, but you push forward anyway. Cotton's eyes roll up briefly and her lip quivers.", false);
//(If the player has more cocks, add)
else if(player.cockTotal() > 2) outputText(" The rest of your cocks strain, aching for holes to fill. With none available, they throb as they rub against Cotton's smooth skin.", false);
//(If player is too big, add)
if(player.cockArea(x) > 70) outputText(" Though you are far too big for her, you make sure to stuff her as much as you can. Her cunt, big as it is, squeezes tightly on your " + cockDescript(x) + ". She shivers and quakes, and leans against the shower wall, gripping the shower-head for support. You thrust your overly large tool inside her over and over, stretching her already not insignificant cunt even wider . Her tongue actually rolls out of her snout, lolling to the side while her eyes roll up into her head, lost in the pleasure. Her body rocks with an orgasm while you piston away under the spray of water.", false);
//(if player is too small (under 4</i>\") add)
else if(player.cocks[x].cockLength < 4) {
outputText(" Her approval wavers and she asks, \"<i>Is it in yet?</i>\" Your face flushes red and you confirm it is, looking down embarrassed. Cotton lifts your chin and gives you a kiss, \"<i>");
if(flags[COTTON_PREGNANCY_INCUBATION] > 0 && flags[COTTON_PREGNANCY_INCUBATION] < 300) outputText("Don't worry pet, it's plenty adequate for me. And you've got to admit,</i>\" she smirks, rubbing her round belly, \"<i>It gets the job done, doesn't it?");
else outputText("Don't worry pet, it's plenty adequate for me.");
outputText("</i>\" Giving her a little smile, you push your " + cockDescript(x) + " fully into her, not a big accomplishment for one of your size, but still enough to give you a little smile.", false);
}
//(otherwise add)
else outputText(" You piston back and forth, and though Cotton's cunt is sizeable, it's able to grip you tightly. Your equine lover moans and grasps at your chest, eventually seizing your shoulder for support, though she leans backwards.", false);
outputText("\n\n", false);
outputText("You keep this up for a while, before fatigue takes over. You carefully lay Cotton down in the spray of water, coiling your body under her so her rear end is up in the air, hooves resting on the ground, and continue your work unhindered. She kisses your lips, neck, and whatever she can get her mouth on. ");
if(player.cockArea(x) >= 100) outputText("Her own cock, still limp, visibly twitches and begins leaking cum onto her belly as an orgasm rocks her body.");
else if(flags[COTTON_PREGNANCY_INCUBATION] > 0 && flags[COTTON_PREGNANCY_INCUBATION] < 300) outputText("Her own cock twitches and spasms, loosing a spray of cum across her swollen, pregnant belly, breasts and face as an orgasm rocks her body.");
else outputText("Her own cock twitches and spasms, letting loose a spray of cum across her belly, breasts and face as an orgasm rocks her body.", false);
//(If player is too big, add)
if(player.cockArea(x) > 70) outputText(" Even in this pseudo-missionary position you can't stuff your entire enormous girth into her, but she doesn't care. Her eyes seem to roll back and forth like it's hard to focus, and her tongue drips water, sweat and saliva onto her body. She's panting for breath and you are able to make out faint, \"<i>Oh gods, oh gods</i>\" over the running water. You can even make out the shape of your cock in Cotton's toned stomach, pumping back and forth, which brings a smile to your face. Her back arches under the shower, her hair messily spread out beneath her and she bites her lip as another orgasm rocks her body.", false);
outputText("\n\n", false);
outputText("Finally you just can't take anymore. You give one last thrust into your partner and audibly gasp in relief as an orgasm rolls across your body, hitting your nerves with bolts of ecstatic lightning.", false);
//(If PC has a pussy)
if(player.hasVagina()) outputText(" Your " + cockDescript(x) + " erupts inside Cotton's warm cunt, which clenches you tightly, while your own femme sex twinges and clenches on air, drooling juices down your legs.", false);
//(else)
else outputText(" Your " + cockDescript(x) + " erupts inside Cotton's warm cunt, which clenches you tightly.", false);
//(regardless or above, add)
outputText(" You give a couple more token thrusts and pull out. As you do, ", false);
if(player.cumQ() < 200) outputText("cum begins to seep from her folds", false);
else if(player.cumQ() < 700) outputText("a gush of cum escapes from Cotton's folds", false);
else if(player.cumQ() < 1200) outputText("a small torrent of cum escapes from Cotton's folds", false);
else if(player.cumQ() < 2000)outputText("cum surges from her abused hole", false);
else outputText("a massive flood of cum escapes from her cunt", false);
outputText(", immediately getting washed towards the drain.\n\n", false);
outputText("You both bask in the afterglow for a few moments before you slither into an upright position and help Cotton up. You return to the task of cleaning yourselves, sensually washing each other's private areas. Yoga, sex and cleanup done, you get dressed and leave the gym, giving Cotton's hand a final squeeze before departing.", false);
}
//(Repeat Fuck Her, for humanoid bodies)
else {
outputText("You decide to take her up on her offer and lead her into the showers, quickly disrobing and turning on an available shower-head. Cotton strips as well and you pull her under the stream of water, sharing a kiss as steam begins to form around you. She runs a hand through your " + hairDescript() +" and grips the back of your neck, ");
if(flags[COTTON_PREGNANCY_INCUBATION] > 0 && flags[COTTON_PREGNANCY_INCUBATION] < 300) outputText("pulling you gently towards her bulging belly, which you can't help but put your hands against as you kiss her. The bulge is firm and solid, almost a drum of solid muscle, and you caress it as you and the mare-morph make out, eliciting soft murmurs of appreciation for your efforts.");
else outputText("pulling you closer.", false);
if(player.cockArea(x) >= 100) {
//(If PC has one cock)
if(player.cockTotal() == 1) outputText(" You feel your " + cockDescript(x) + " stirring beneath you, slowly coming to attention, though Cotton's remains curiously limp. Your " + cockHead(x) + " rubs against her belly, sending ripples of pleasure up your spine.", false);
//(If PC has multiple cocks)
else if(player.cockTotal() > 1) outputText(" You feel your " + multiCockDescriptLight() + " stirring beneath you, slowly coming to attention, though Cotton's remains curiously limp. The group of cocks rubs together as you make out, sending ripples of pleasure up your spine.", false);
//(If PC has a pussy, add the following)
}
else {
//(If PC has one cock)
if(player.cockTotal() == 1) outputText(" You feel your " + cockDescript(x) + " stirring beneath you, slowly coming to attention alongside Cotton's equine member. The two rub together as you make out, sending ripples of pleasure up your spine.", false);
//(If PC has multiple cocks)
else if(player.cockTotal() > 1) outputText(" You feel your " + multiCockDescriptLight() + " stirring beneath you, slowly coming to attention alongside Cotton's equine member. The group of cocks rubs together as you make out, sending ripples of pleasure up your spine.", false);
//(If PC has a pussy, add the following)
}
if(player.hasVagina()) outputText(" Your " + vaginaDescript(0) + " moistens both from the water and from arousal, and your " + clitDescript() + " aches, craving attention.", false);
outputText("\n\n", false);
//(If PC has breasts)
if(player.biggestTitSize() >= 2) {
outputText("Cotton leans down, groping your " + biggestBreastSizeDescript() + ", taking one " + nippleDescript(0) + " into her mouth and sucking it greedily.", false);
//(and if PC is lactating)
if(player.biggestLactation() >= 1) {
outputText(" Her efforts are soon rewarded as milk begins seeping from your " + nippleDescript(0) + ". Cotton's eyes turn up to your face in surprise but she doesn't remove her mouth, instead taking the time to gulp down your tasty milk. It isn't long before she draws back, wipes her mouth and practically tackles your other breast, eager to drain it of its precious cargo. You can't help but moan as a draining sensation overwhelms you. After a moment, Cotton pulls away and smacks her lips. \"<i>That is some tasty, tasty milk, pet, I might have to taste you more often.</i>\"", false);
flags[245] = 1;
}
//(else is PC is not lactating)
else outputText(" Cotton soon switches to the other breast, teasing your " + nippleDescript(0) + " with her talented tongue.", false);
outputText("\n\n", false);
}
outputText("Suitably turned on now, you reach down and hook your arm under one of Cotton's legs, lifting it up while you position your " + cockDescript(x) + " at her pussy. You slowly push in, and Cotton bites her lip, looking at you in approval.", false);
//(If player has two cocks, add)
if(player.cockTotal() == 2) outputText(" With a slight grin, you position your other dick at Cotton's other hole. She quirks her eyebrow and a look of panic momentarily crosses her face, but you push forward anyway. Cotton's eyes roll up briefly and her lip quivers.", false);
//(If the player has more cocks, add)
if(player.cockTotal() > 2) outputText(" The rest of your cocks strain, aching for holes to fill. With none available, they throb as they rub against Cotton's smooth skin.", false);
//(If player is too big, add)
if(player.cockArea(x) > 70) outputText(" Though you are far too big for her, you make sure to stuff her as much as you can. Her cunt, big as it is, squeezes tightly on your " + cockDescript(x) + ". She shivers and quakes, and leans against the shower wall, gripping the shower-head for support. You thrust your overly large tool inside her over and over, stretching her already not-insignificant cunt even wider. Her tongue actually rolls out of her snout, lolling to the side while her eyes roll up into her head, lost in the pleasure. Her body rocks with an orgasm while you piston away under the spray of water.", false);
//(if player is too small (under 4</i>\") add)
else if(player.cocks[x].cockLength < 4) {
outputText(" Her approval wavers and she asks, \"<i>Is it in yet?</i>\" Your face flushes red and you confirm it is, looking down in embarrassment. Cotton lifts your chin and gives you a kiss, \"<i>");
if(flags[COTTON_PREGNANCY_INCUBATION] > 0 && flags[COTTON_PREGNANCY_INCUBATION] < 300) outputText("Don't worry pet, it's plenty adequate for me. And you've got to admit,</i>\" she smirks, rubbing her round belly, \"<i>It gets the job done, doesn't it?");
else outputText("Don't worry pet, it's plenty adequate for me.");
outputText("</i>\" Giving her a little smile, you push your " + cockDescript(x) + " fully into her, not a big accomplishment for one of your size, but still enough to give you a little smile.", false);
}
//(otherwise add)
else outputText("You piston back and forth, and though Cotton's cunt is sizeable, it's able to grip you tightly. Your equine lover moans and grasps at your chest, eventually seizing your shoulder for support, though she leans backwards.", false);
outputText("\n\n", false);
outputText("You keep this up for a while before fatigue takes over. You carefully lay Cotton down in the spray of water and continue your work unhindered. She kisses your lips, neck, and whatever she can get her mouth on. ");
if(player.cockArea(x) >= 100) outputText("Her own cock, still limp, visibly twitches and begins leaking cum onto her belly as an orgasm rocks her body.");
else if(flags[COTTON_PREGNANCY_INCUBATION] > 0 && flags[COTTON_PREGNANCY_INCUBATION] < 300) outputText("Her own cock twitches and spasms, loosing a spray of cum across her swollen, pregnant belly, breasts and face as an orgasm rocks her body.");
else outputText("Her own cock twitches and spasms, letting loose a spray of cum across her belly, breasts and face as an orgasm rocks her body.", false);
//(If player is too big, add)
if(player.cockArea(x) > 70) outputText(" Even in the missionary position you can't stuff your entire enormous girth into her, but she doesn't care. Her eyes seem to roll back and forth like it's hard to focus, and her tongue drips water, sweat and saliva onto her body. She's panting for breath and you are able to make out faint, \"<i>Oh gods, oh gods</i>\" over the running water. You can even make out the shape of your cock in Cotton's toned stomach, pumping back and forth, which brings a smile to your face. Her back arches under the shower, her hair messily spread out beneath her and she bites her lip as another orgasm rocks her body.", false);
outputText("\n\n", false);
outputText("Finally you just can't take any more. You give one last thrust into your partner and audibly gasp in relief as an orgasm rolls across your body, hitting your nerves with bolts of ecstatic lightning.", false);
//(If PC has a pussy)
if(player.hasVagina()) outputText(" Your " + cockDescript(x) + " erupts inside Cotton's warm cunt, which clenches you tightly while your own femme sex twinges and clenches on air, drooling juices down your legs.", false);
//(else)
else outputText(" Your " + cockDescript(x) + " erupts inside Cotton's warm cunt, which clenches you tightly.", false);
//(regardless or above, add)
outputText(" You give a couple more token thrusts and pull out. As you do, ", false);
if(player.cumQ() < 200) outputText("cum begins to seep from her folds", false);
else if(player.cumQ() < 700) outputText("a gush of cum escapes from Cotton's folds", false);
else if(player.cumQ() < 1200) outputText("a small torrent of cum escapes from Cotton's folds", false);
else if(player.cumQ() < 2000)outputText("cum surges from her abused hole", false);
else outputText("a massive flood of cum escapes from her cunt", false);
outputText(", immediately getting washed towards the drain.\n\n", false);
outputText("You both bask in the afterglow for a few moments before you stand up to an upright position and help Cotton up. You return to the task of cleaning yourselves, sensually washing each other's private areas. Yoga, sex and cleanup done, you get dressed and leave the gym, giving Cotton's hand a final squeeze before departing.", false);
}
pregCottonChance();
stats(0,0,0,0,0,-1,-100,0);
doNext(13);
}
//(Shower Sex, Get Fucked as Male or Herm)
function cottonFucksYouInShowerRepeat():void {
spriteSelect(12);
slimeFeed();
flags[177] = 2;
outputText("", true);
/*OLD SEX SCENES HERE
if(player.hasCock() && (player.gender != 3 || rand(2) == 0)) {
outputText("You decide to take her up on her offer, and she pulls you towards the showers, quickly disrobing the both of you. She turns only one shower-head on and pulls you into an embrace underneath the rapidly heating stream. Cotton's cock stirs between you, and though yours tingles, it remains limp in her presence.\n\n", false);
outputText("Finally breaking the kiss, Cotton reaches down and hooks her arms under both your legs. You quickly wrap your arms around her neck as she lifts you off the ground. You carefully grip her with your legs as she uses one arm to position her dick at your waiting entrance. You give her a kiss just as she presses into you, and moan into her mouth. She gives a couple careful thrusts before her free hand returns to holding you.\n\n", false);
outputText("At this angle she can't quite get her entire girth into you, but that doesn't matter, as it feels absolutely exquisite.", false);
buttChange(72,true,true,false);
outputText(" You take turns kissing each other's necks and nibbling each other's ears while she thrusts in and out. And after several minutes neither of you can take much more. She gives one last thrust, pulling you down further onto her cock as it explodes within you. Your whole body shudders with orgasmic energy and you bury your head into her neck, stifling a scream.\n\n", false);
outputText("After a moment, Cotton pulls you up, letting her shrinking member flop to the floor, and sets you down. Only now you notice your flaccid cock also came at some point, covering both your bodies in seed. You share a deep kiss again and wash each other up before redressing and leaving the gym.\n\n", false);
stats(0,0,0,0,0,1,-100,0);
}
//(Shower Sex, Get Fucked as Female)
else {
outputText("You decide to take her up on her offer, and she pulls you towards the showers, quickly disrobing the both of you. She turns only one shower-head on and pulls you into an embrace underneath the rapidly heating stream. Cotton's cock stirs between you, and your " + vaginaDescript() + " burns with anticipation.\n\n", false);
outputText("Finally breaking the kiss, Cotton reaches down and hooks her arms under both your legs. You quickly wrap your arms around her neck as she lifts you off the ground. You carefully grip her with your legs as she uses one arm to position her dick at your waiting entrance. You give her a kiss just as she presses into you, and moan into her mouth. She gives a couple careful thrusts before her free hand returns to holding you.", false);
cuntChange(72,true,true,false);
outputText("\n\n", false);
outputText("At this angle she can't quite get her entire girth into you, but that doesn't matter, as it feels absolutely exquisite. You take turns kissing each other's necks and nibbling each other's ears while she thrusts in and out. And after several minutes neither of you can take much more. She gives one last thrust, pulling you down further onto her cock as it explodes within you. Your whole body shudders with orgasmic energy and you bury your head into her neck, stifling a scream.\n\n", false);
outputText("After a moment, Cotton pulls you up, letting her shrinking member flop to the floor, and sets you down. You share a deep kiss again and wash each other up before redressing and leaving the gym.", false);
stats(0,0,0,0,0,-1,-100,0);
}*/
//(Repeat get fucked, for centaurs)
if(player.isTaur()) {
outputText("You decide to take her up on her offer and she pulls you towards the showers, quickly disrobing you forcibly and then herself. She turns only one shower-head on and pulls you into an embrace underneath the rapidly heating water. She kisses up your neck and playfully bites you with a grin.", false);
//(If PC has a penis, no vagina)
if(player.gender == 1) outputText(" Your " + cockDescript(0) + " tingles betwixt your legs, but remains limp in the presence of Cotton's impressive member.", false);
//(If PC has a penis and vagina)
else if(player.gender == 3) outputText(" Your " + cockDescript(x) + " tingles betwixt your legs, but remains limp in the presence of Cotton's impressive member, while your " + vaginaDescript(0) + " moistens almost immediately from the steam and arousal.", false);
//(If PC has a vagina and no penis)
else if(player.gender == 2) outputText(" Your " + vaginaDescript(0) + " moistens almost immediately as you make out, both from the steam and your increasing arousal.", false);
//(If PC is genderless)
else outputText(" A deep aching burns within you, a need your body is ill-equipped to process, but still your nipples harden and you find your " + assholeDescript() + " puckering in anticipation.", false);
outputText("\n\n", false);
//(If PC has breasts)
if(player.biggestTitSize() >= 2) {
outputText("Cotton's kisses lead down to your " + biggestBreastSizeDescript() + ", where she takes one " + nippleDescript(0) + " into her mouth, sucking it greedily and teasing it masterfully.", false);
//(and if PC is lactating)
if(player.biggestLactation() >= 1) {
outputText(" Her efforts are soon rewarded as milk begins seeping from your " + nippleDescript(0) + ". Cotton's eyes turn up to your face in surprise, but she doesn't remove her mouth, instead taking the time to gulp down your tasty milk. It isn't long before she draws back, wipes her mouth and practically tackles your other breast, eager to drain it of its precious cargo. You can't help but moan as the draining sensation overwhelms you. After a moment, Cotton pulls away and smacks her lips. \"<i>That is some tasty, tasty milk, little pet. I simply must have you for breakfast sometime.</i>\"", false);
flags[245] = 1;
}
//(else is PC is not lactating)
else outputText(" Cotton soon switches to the other breast, teasing your " + nippleDescript(0) + " with her talented tongue.", false);
outputText("\n\n", false);
}
outputText("She continues kissing down your belly, reaching your centaur body. She makes you turn around so your rear end is in the spray of water with her.", false);
//(If PC has a large penis, bigger than Cotton's capacity, add)
if(player.hasCock()) {
if(player.cockArea(0) > 70) outputText(" \"<i>Oh my, what's this?</i>\" She puts a hand under your enormous, yet embarrassingly limp cock and lifts it slightly. \"<i>My little pet has such a big dick… Just how I like it. Perhaps next time I'll get to try it out… but not today, hm? This is all about you right now.</i>\"", false);
//(If PC has a penis under 4</i>\", add)
else if(player.longestCockLength() < 4) outputText(" \"<i>Awww, what's this?</i>\" She puts a hand under your embarrassingly small and limp cock and lifts it slightly. \"<i>It's so cute and tiny. And it certainly knows its place. Only room for one cock right now, not that this is much of a cock.</i>\" She giggles and plants a kiss on the tip, \"<i>It is cute though. I love it.</i>\"", false);
//(If PC has a penis neither large or small, add)
else outputText("Cotton puts a hand under your embarrassingly limp cock and smiles, \"<i>You know how to show a girl you like her… There's only room for one cock right now.</i>\"", false);
}
//(If PC has a vagina)
if(player.hasVagina()) outputText(" Spying your " + vaginaDescript(0) + ", Cotton smiles and flicks your " + clitDescript() + " teasingly before slipping two fingers inside your folds and bringing them to her mouth, licking them clean. \"<i>Mmm… I love the taste of your juices, pet…</i>\"", false);
//(if PC is genderless)
if(player.gender == 0) outputText(" She places a hand on your bare crotch and quirks an eyebrow. \"<i>Well this is new… Certainly not bad though.</i>\" She runs a hand along your bare mound, which somehow manages to send ripples of pleasure up your spine.", false);
outputText("\n\n", false);
outputText("Cotton continues the kisses down to your " + player.legs() + " and stands, dragging over a bench from the locker room before standing on it and giving your " + buttDescript() + " a good smack. You turn back and give her a coy look, which she returns and gives your flank another smack.", false);
outputText(" She takes a moment to get some water from the shower over your rear end before pressing her cock against your " + assholeOrPussy() + ", slipping it in gently, careful not to go too quick. You moan slightly and blush, whispering back at her, urging her to continue.", false);
//(Stretch and appropriate virginity check)
if(player.hasVagina()) cuntChange(72,true,true,false);
else buttChange(72,true,true,false);
outputText("\n\n", false);
outputText("At this angle, she easily slips her entire length and girth into you, letting her balls slap against your crotch with a smack. She smacks your backside over and over while she thrusts, and you find yourself laying back on your centaur body in a blissful trance. ");
if(flags[COTTON_PREGNANCY_INCUBATION] > 0 && flags[COTTON_PREGNANCY_INCUBATION] < 300) {
outputText("Cotton leans her gravid bulge heavily onto your back, bending over as best she can to whisper into her ear. \"<i>Mmm... how do you like this? Knowing you're being fucked like a woman by a woman? A woman carrying your child, no less? Because I like this a lot - this is so kinky, to me... oh, I'm gonna fuck the shit out of you, just like you fucked this baby into me.</i>\" She croons, even as she continues to thrust. ");
}
outputText("Your body shivers and quakes as a miniature orgasm rockets through you, somehow making your whole body more sensitive. Your powerful partner grips you close, her jet black cock pistoning in and out of your hole. You gleefully tease and play with your nipples, eager for sweet release in some form or another.\n\n", false);
outputText("Unable to take any more, Cotton gives one last thrust. As she pulls your body backwards onto her cock further, something of a cross between a whinny and a moan escapes her lips. A full orgasm rocks through your body, like lightning striking every nerve. Your back arches, your legs almost giving out on you, and even biting your lip doesn't stifle the long, deep moan from escaping your lips. Your equine lover's cock erupts in you, coating your insides with her hot, sticky seed, which even now begins to leak from your hole around the invading cock.\n\n", false);
outputText("Exhausted, Cotton gets down from the bench and returns to the spray of water. Her cum leaks from your abused hole and your legs are quivering so much you nearly collapse. Your partner steadies you, however, and you regain your footing quickly. You return to the task of cleaning yourselves, sensually washing each other's most intimate areas, with Cotton giving your centaur body a proper cleaning. Yoga, sex and cleanup done, you get dressed and leave the gym, giving Cotton's hand a final squeeze before departing.", false);
}
//(Repeat get fucked for humanoids and nagas)
else {
outputText("You decide to take her up on her offer, and she pulls you towards the showers, quickly disrobing you forcibly and then herself. She turns only one shower-head on and pulls you into an embrace underneath the rapidly heating water. She kisses up your neck and playfully bites you with a grin.", false);
//(If PC has a penis, no vagina)
if(player.gender == 1) outputText(" Your " + cockDescript(0) + " tingles beneath you, but remains limp in the presence of Cotton's impressive member.", false);
//(If PC has a penis and vagina)
else if(player.gender == 3) outputText(" Your " + cockDescript(0) + " tingles beneath you, but remains limp in the presence of Cotton's impressive member while your " + vaginaDescript(0) + " moistens almost immediately from the steam and arousal.", false);
//(If PC has a vagina and no penis)
else if(player.gender == 2) outputText(" Your " + vaginaDescript(0) + " moistens almost immediately as you make out, both from the steam and your increasing arousal.", false);
//(If PC is genderless)
else outputText(" A deep aching burns within you, a need your body is ill-equipped to process, but still your nipples harden and you find your " + assholeDescript() + " puckering in anticipation.", false);
outputText("\n\n", false);
//(If PC has breasts)
if(player.biggestTitSize() >= 2) {
outputText("Cotton's kisses lead down to your " + biggestBreastSizeDescript() + ", where she takes one " + nippleDescript(0) + " into her mouth, sucking it greedily and teasing it masterfully.", false);
//(and if PC is lactating)
if(player.biggestLactation() >= 1) {
outputText(" Her efforts are soon rewarded as milk begins seeping from your " + nippleDescript(0) + ". Cotton's eyes turn up to your face in surprise, but she doesn't remove her mouth, instead taking the time to gulp down your tasty milk. It isn't long before she draws back, wipes her mouth and practically tackles your other breast, eager to drain it of its precious cargo. You can't help but moan as a draining sensation overwhelms you. After a moment, Cotton pulls away and smacks her lips. \"<i>That is some tasty, tasty milk, little pet. I simply must have you for breakfast...</i>\"", false);
flags[245] = 1;
}
//(else is PC is not lactating)
else outputText(" Cotton soon switches to the other breast, teasing your " + nippleDescript(0) + " with her talented tongue.", false);
outputText("\n\n", false);
}
outputText("She continues kissing a trail down your belly and to your crotch.", false);
if(player.hasCock()) {
//(If PC has a large penis, bigger than Cotton's capacity, add)
if(player.biggestCockArea() > 70) outputText(" \"<i>Oh my, what's this?</i>\" She puts a hand under your enormous, yet embarrassingly limp cock and lifts it slightly. \"<i>My little pet has such a big dick… Just how I like it. Perhaps next time I'll get to try it out… but not today, hm? This is all about you right now.</i>\"", false);
//(If PC has a penis under 4</i>\", add)
if(player.longestCockLength() < 4) outputText(" \"<i>Awww, what's this?</i>\" She puts a hand under your embarrassingly small and limp cock and lifts it slightly. \"<i>It's so cute and tiny. And it certainly knows its place. Only room for one cock right now, not that this is much of a cock.</i>\" She giggles and plants a kiss on the tip, \"<i>It is cute though. I love it.</i>\"", false);
//(If PC has a penis neither large or small, add)
else outputText(" Cotton puts a hand under your embarrassingly limp cock and smiles, \"<i>You know how to show a girl you like her… There's only room for one cock right now.</i>\"", false);
}
//(If PC has a vagina)
if(player.hasVagina()) outputText(" Spying your " + vaginaDescript(0) + ", Cotton smiles and flicks your " + clitDescript() + " teasingly before slipping two fingers inside your folds and bringing them to her mouth, licking them clean. \"<i>Mmm… I love the taste of your juices, pet…</i>\"", false);
//(if PC is genderless)
if(player.gender == 0) outputText(" She places a hand on your bare crotch and quirks an eyebrow. \"<i>Well this is new… Certainly not bad though.</i>\" She runs a hand along your bare mound, which somehow manages to send ripples of pleasure up your spine.", false);
outputText("\n\n", false);
//(If Naga body)
if(player.isNaga()) {
outputText("Cotton continues the kisses down to your " + player.legs() + ", and stands, grabbing you by the waist and lifting you up off the ground. ");
if(flags[COTTON_PREGNANCY_INCUBATION] > 0 && flags[COTTON_PREGNANCY_INCUBATION] < 300) outputText("Moving quickly, you wrap your arms around Cotton's neck and coil your body around her waist, just below her round, pregnant belly, and down one leg. You can feel her swollen midriff rubbing against the scales on your serpentine half with each motion you make.");
else outputText("Moving quickly, you wrap your arms around Cotton's neck and coil your body around her waist and down one leg.", false);
}
//(If Humanoid body)
else {
outputText("Cotton continues the kisses down to your " + player.legs() + " and stands, hooking an arm underneath each of your legs and lifting you up off the ground. ");
if(flags[COTTON_PREGNANCY_INCUBATION] > 0 && flags[COTTON_PREGNANCY_INCUBATION] < 300) outputText("Moving quickly, you wrap your arms and legs around Cotton so you don't fall over, carefully avoiding her pregnant belly, which is no mean feat. Her belly is pressed into yours, letting you feel the solid weight of it, gentle kicks from your unborn child within.");
else outputText("Moving quickly, you wrap your arms and legs around Cotton so you don't fall over.", false);
}
outputText(" She gives you a quick kiss and moves her cock to your " + assholeOrPussy() + ", slipping it in gently, careful not to go too quick. You give her a submissive, but encouraging kiss, and whisper in her ear, urging her to continue.", false);
//(Stretch and appropriate virginity check)
if(player.hasVagina()) cuntChange(72,true,true,false);
else buttChange(72,true,true,false);
outputText("\n\n", false);
outputText("She can't quite fit her entire girth into you at this angle, but that doesn't matter as it feels absolutely exquisite. You take turns kissing each other's necks and nibbling on each other's ears while she thrusts in and out. ");
if(flags[COTTON_PREGNANCY_INCUBATION] > 0 && flags[COTTON_PREGNANCY_INCUBATION] < 300) {
outputText("Cotton leans her gravid bulge heavily into your belly, bending over as best she can to whisper into her ear. \"<i>Mmm... how do you like this? Knowing you're being fucked like a woman by a woman? A woman carrying your child, no less? Because I like this a lot - this is so kinky, to me... oh, I'm gonna fuck the shit out of you, just like you fucked this baby into me.</i>\" She croons, even as she continues to thrust. ");
}
outputText("Your body shivers and quakes as a miniature orgasm rockets through you, somehow making your whole body more sensitive. ");
outputText("Your powerful partner holds you close, her jet black cock pistoning in and out of your hole. You feel safe in her arms, secure in a way you rarely feel elsewhere. You wrap your arms more tightly around her, hugging Cotton close and biting your lip, stifling your moans and groans of passion.\n\n", false);
outputText("Unable to take any more, Cotton gives one last thrust, pulling your body down onto her cock and giving a whinny of a moan. A full orgasm rocks through your body, like lightning striking every nerve. Your back arches, pressing your chest into Cotton's prodigious bosom and even biting your lip doesn't stifle the long, deep moan from escaping your lips. Your equine lover's cock erupts in you, coating your insides with her hot, sticky seed, which even now begins to leak from your hole around the invading cock.\n\n", false);
outputText("Exhausted, Cotton sets you down on the shower floor under the spray of water, though cum leaks from your abused hole and your " + player.legs() + " quivering so much you nearly collapse. Your partner steadies you, however, and you regain your footing quickly. You return to the task of cleaning yourselves, sensually washing each other's most intimate areas. Yoga, sex and cleanup done, you get dressed and leave the gym, giving Cotton's hand a final squeeze before departing.", false);
}
if(player.hasVagina()) cottonPregPCChance();
stats(0,0,0,0,0,-1,-100,0);
doNext(13);
}
//(Tantric Sex)
function cottonTantricSex():void {