-
Notifications
You must be signed in to change notification settings - Fork 82
/
ramis.as
3266 lines (2724 loc) · 336 KB
/
ramis.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
/* ramis follower expansion
flaggy flags
RAMIS_ONBOARD
RAMIS_RECRUITED
RAMIS_DRINKS_DRUNK: Used to count drinks in her talk scene, not to be used outside.
RAMIS_TALKED: Times chatted over drinks.
RAMIS_TALKED_ABOUT_TALKING (that is, she mentioned having that booze-making thing)
RAMIS_ACTIVITY: If integer, index of her current blurb. If string, special activity. See ramisValidateActivity
RAMIS_ACTIVITY_LAST_SET: GetGameTimestamp() when RAMIS_ACTIVITY last changed. Could've been done with status effects, but eh.
RAMIS_ON_TOP: Ramis is top or bottom?
RAMIS_SUBBY_WORKOUT: Times done extended stamina workout with ramis while RAMIS_ON_TOP was true.
RAMIS_NONSUBBY_WORKOUT: I'm sure you can guess. ^ (extended strength workout, false)
RAMIS_SEXED_SHIP: Times sexed as a crewmember. Doesn't count nights out. Locks most of her 1 on 1 content.
RAMIS_SEXED_RIM: Rimmed Ramis in the shower?
RAMIS_SEXED_STRAP: Times Ramis used holo on PC
RAMIS_SEXED_FACESIT: Times Ramis gave a handjob while face sitting
RAMIS_SEXED_LAPSIT: Times Ramis gave a handjob while sitting on her lap
RAMIS_SEXED_LICKJOB: Times Ramis sucked tiny dick
RAMIS_GAVE_GIFT: Ramis gave you the silky cock bell
RAMIS_SEX_DISABLED: 1 - Ramis has told you she doesn't wanna shag (as you are). 2 - DoneWithYou pending, 3 - DoneWithYou and disabled entirely
RAMIS_PARTIED: Times gone drinking to Tavros as crewmember.
RAMIS_PARTIED_SEXED: Times it ended in sex
RAMIS_PARTIED_TRAPS
RAMIS_PARTIED_THRAGGEN
RAMIS_PANTIES: Triggered one-time panties event. undefined - not triggered, 0 - didn't pick up, 1 - picked up, 2 - confronted, 3 - truth, -1 - lied
RAMIS_PANTIES_DATE: If panties taken, this is the date it was taken.
RAMIS_STRETCHED: Extra capacity for ramis, gained by dicking her with big dicks.
RAMIS_ANNO_INTERRUPTUS: Anno bumped into pc during doggy scene.
-Sections (for quick CTRL+F-ing):
// Recruiting
//Crew Blurb Selection
//Main Ramis
//[Talk]
// [Work Out]
// [Switch]
// [Sex]
// Sleeping
// Tavros Nights
Shower and molesting scenes are under [Sex]
-things to do (DO NOT PR IF THIS IS NOT EMPTY. THIS MEANS YOU, ME.):
bell appearance screen blurb
*/
//placeholders
public function showRamisAndBois(nude:Boolean = false):void
{
showRamis(nude);
showName("RAMIS" + (flags["RAMIS_PARTIED_TRAPS"] == undefined ? "\nAND TRAPS" : ", KROY\nAND VANESSE"));
}
public function showRamisAndThrag(nude:Boolean = false):void
{
showRamis(nude);
showName("RAMIS\nAND " + (flags["RAMIS_PARTIED_THRAGGEN"] != undefined ? "OHRSKUN" : "THRAGGEN"));
}
public function ramisRecruited():Boolean
{
return flags["RAMIS_RECRUITED"] == 1;
}
public function ramisIsCrew():Boolean
{
return flags["RAMIS_ONBOARD"] == 1;
}
public function ramisfmt(femString:String, manString:String, trapString:String):String
{
if (looksFemaleToRamis(pc)) return femString;
if (looksTrappyToRamis(pc)) return trapString;
return manString;
}
public function ramisNickname():String
{
return ramisfmt("captain", "big lad", "knickers");
}
//This function assumes Ramis would sex the player in the first place!
public function ramisWouldBottom():Boolean
{
return (pc.hasCocks() || pc.biggestCockVolume() >= 5.1);
}
//Returns RAMIS_ON_TOP unless it wouldn't apply anymore or it hasn't been set (default in that case)
//This exists because single, smalled dicked males get auto topped
public function ramisOnTop(setTo:int = 0):Boolean
{
if (setTo) flags["RAMIS_ON_TOP"] = setTo == 1;
if (ramisWouldBottom())
{
//Ramis defaults to bottom for boyos, top for traps
if (flags["RAMIS_ON_TOP"] != undefined) return flags["RAMIS_ON_TOP"];
else if (looksMaleToRamis()) return false;
else return true;
}
else return true;
}
//Sorely needed, can't use global(-ish) var pc as default, so kludgy solution
public function looksFemaleToRamis(target:Creature = null):Boolean
{
if (!target) target = pc;
return (target.isWoman() || target.isFemHerm() || target.isSexless() || target.isShemale());
}
public function looksTrappyToRamis(target:Creature = null):Boolean
{
if (!target) target = pc;
return (!looksFemaleToRamis(target) && target.isFemboy());
}
public function looksMaleToRamis(target:Creature = null):Boolean
{
if (!target) target = pc;
return (!looksFemaleToRamis(target) && !looksTrappyToRamis(target));
}
//Ramis molestatening: Occurs randomly on board ship if PC bottoming + PC lust > 29, PC has a dick and PC is wearing an undergarment. Select biggest dick.
public function ramisMolestingAvailable():Boolean
{
if (!ramisIsCrew()) return false;
if (ramisOutDrinking()) return false;
if (!ramisOnTop()) return false;
if (pc.lust() <= 29) return false;
if (!pc.hasCock()) return false;
if (!pc.hasLowerGarment()) return false;
if (looksFemaleToRamis()) return false;
return true;
}
public function ramisIsPartyTime():Boolean
{
if (pc.isTaur()) return false;
if (shipLocation != "TAVROS HANGAR") return false;
return hours >= 13 && (hours*60 + minutes < 18*60 + 30);
}
public function ramisOutDrinking():Boolean
{
return pc.hasStatusEffect("Partying Ramis");
}
//Ramis gets hornocious after 62 hours
public function ramisOrgasm(hours:int = 62, minutes:int = 0):void
{
var minutesLeft:int = hours * 60 + minutes;
if (!pc.hasStatusEffect("Ramis Sated")) pc.createStatusEffect("Ramis Sated");
if (pc.getStatusMinutes("Ramis Sated") < minutesLeft)
pc.setStatusMinutes("Ramis Sated", minutesLeft);
}
//Handles all flags relevant to the party scenes
public function ramisPartySex(who:String):void
{
ramisOrgasm();
IncrementFlag("RAMIS_PARTIED_" + who);
IncrementFlag("RAMIS_PARTIED_SEXED");
IncrementFlag("RAMIS_PARTIED");
}
// Recruiting
public function ramisRecruit():void
{
clearOutput();
author("Nonesuch");
showRamis();
clearMenu();
processTime(2);
var isFem:Boolean = looksFemaleToRamis();
var isFemboy:Boolean = looksTrappyToRamis();
var offer:String;
var price:int;
//discounts
if (!looksFamiliarToRamis()) offer = "default";
//PC got really drunk with her
else if (isFem && flags["RAMIS_TIMES_BENDER"] != undefined) offer = "girlee";
else if (isFemboy && flags["RAMIS_SEXED_TRAP"] != undefined) offer = "boyo";
else if (pc.hasCock() && flags["RAMIS_SEXED_MAN"] != undefined) offer = "lad";
else offer = "default";
output("You ask the big kaithrit if she’s willing to be hired.");
switch(offer)
{
case "girlee":
output("\n\n<i>“Aww, Tavros bezzie!”</i> Ramis swivels around on her bar stool and considers you fondly. <i>“You haven’t gotten pissed without me already, have you? Look, if you’re serious, of course I’ll come’n work for you. It’ll be for serious though, not just a booze cruise. I’m a professional.”</i>");
output("\n\nHer human friend snorts sardonically. She swipes impatiently in his general direction.");
output("\n\n<i>“I usually ask for 12 grand up front for my contract. But...”</i> she grins at you toothily. <i>“For you I’ll go 10. Deal?”</i>");
break;
case "lad":
output("\n\n<i>“Ooh.”</i> Ramis swivels around on her bar stool and considers you with a coy, flirtatious grin. <i>“So you’ve decided you want all this on demand, have you? Looken to carry me out of here over one shoulder? It’s tempten, not goin’ to lie.”</i> She licks her lips, eyes you up, leaves you hanging for a few moments. <i>“10 grand. That’s what my contract’s worth to you, big lad. For that you’re getten the best gunnery officer in the galaxy... and the best fuck, too. But you already know that.”</i>");
break;
case "boyo":
output("\n\n<i>“Umm. Really, knickers?”</i> Ramis swivels around on her bar stool and considers you with a puzzled, delighted grin. <i>“You want me on your ship? I mean, I am the best gunnery officer in the galaxy, I understand it from </i>that<i> angle, but... hmm. You must really enjoy taken it rough.”</i> She licks her lips, eyes you up, leaves you hanging for a few moments. <i>“Getten my contract is usually 12 grand, but you know what? For you it’s 10 grand. Cuz you are BLUDee adorable.”</i>");
break;
default:
output("\n\n<i>“Well now mate, that depends on who’s asken, doesn’t it?”</i> Ramis swivels around on her bar stool to consider you with a toothy, impartial sneer. <i>“Course you’re wanten the best gunnery officer the galaxy’s ever known on board your tub, of course you do! But I don’t just work for </i>any<i> old spod. What kind of reputation would I have, if I could just be picked up in a bar like...”</i>");
output("\n\nHer bald-headed human friend has been drifting closer as she’s talked, his eye on you, and now interrupts now by murmuring quietly in one of her blunt, triangular ears. Over the hubbub of the bar you don’t catch exactly what he says, but you definitely hear the phrase ‘Steele Tech’. The ears twitch.");
output("\n\n<i>“...alright then, let’s say I am willen to work for you,”</i> Ramis continues, lips abruptly closing into a polite smile. <i>“12 grand, up front, for the contract. I ent cheap, but...”</i> She flexes her arms, and laughs. <i>“You’ll be getten the best.”</i>");
break;
}
if (offer != "default") price = 10000;
else price = 12000;
if (pc.credits < price) addDisabledButton(0, "Deal", "Deal", ("You cannot afford this!\n\nCosts " + price + " credits."));
else addButton(0, "Deal", ramisRecruitDeal, price, "Deal", ("Agree to this.\n\nCosts " + price + " credits."));
addButton(1, "No Deal", ramisRecruitNoDeal, offer != "default");
}
public function ramisRecruitNoDeal(discount:Boolean):void
{
clearOutput();
author("Nonesuch");
showRamis();
clearMenu();
processTime(1);
if (discount) output("<i>“Suit yourself, " + ramisfmt("mate", "mate", "pencil arms") + ",”</i> Ramis sighs, turning back to the bar. <i>“Can’t go lower than that. Bob over if you change your mind, or get the cash.”</i>");
else output("<i>“Alright!”</i> Ramis flounces, turning back to the bar. <i>“Be a shame if your blaster cannons malfunctioned when you’re bein’ molested by vulkrimi shitbags in some uncharted asteroid belt, but it’s no skin offev my nose!”</i>");
addButton(0, "Next", mainGameMenu);
}
public function ramisRecruitDeal(price:int):void
{
clearOutput();
author("Nonesuch");
showRamis();
clearMenu();
processTime(5);
pc.credits -= price;
flags["RAMIS_RECRUITED"] = 1;
output("Over one of those violently colored cocktails the big kaithrit is so fond of, you summon up a standard private naval contract on a holopad and transfer over the money. Ramis puts a big H RAMIS XXX over the signature line.");
output("\n\n<i>“Never worked on a private vessel before,”</i> she says, grinning at you.");
if (flags["RAMIS_SEXED"] != undefined && !looksFemaleToRamis()) output(" She impulsively reaches over and plants a big, vodka-scented kiss on your cheek.");
output(" <i>“It’s goin’ to feel weird to not be part of a squad, taken remote orders from some corpo lanyard. Do you mind if I have a looksee at your ship now?");
if (flags["RAMIS_TIMES_BENDER"] != undefined) output(" I’ve bin in it before I know, but ummmm, never when I was seein’ straight.");
output("”</i>");
output("\n\nShe goes across and says goodbye to her friends - who make her swear she’ll meet up and party with them on Tavros - and then heads out of the exit of Anon’s with you.");
addButton(0, "Next", ramisRecruitDealShip);
}
public function ramisRecruitDealShip():void
{
clearOutput();
author("Nonesuch");
showRamis();
clearMenu();
processTime(20);
moveTo("TAVROS HANGAR");
if (PCShipIsCasstech())
{
output("Her face falls, her ears droop, when she beholds your trusty, humble Casstech in the hangar.");
output("\n\n<i>“I would’ve thought a rich playboy’s sprog would have a cool as fuck ride,”</i> she mumbles, <i>“not a piece of junk from the 29th century.");
if (flags["FALL OF THE PHOENIX STATUS"] == 1) output(" And you’re sayen you’ve gotten into dogfights with that thing?”</i> She grimaces as you relate the daring intervention you led to save Saendra en Illya. <i>“Bloody hell. Black Void are even worse at tearen apart wet tissue paper then I remember.");
output("”</i> She snaps the straps of her sports bra resolutely. <i>“Right, turnen this thing’s peashooters into catapults is definitely goin’ to keep me occupied. I’ll go and pick my stuff up from the lockers and get to it. I’ll be on board by the time you’re ready to leave... captain.”</i>");
}
else
{
output("<i>“Nice ride, " + ramisfmt("mate", "big lad", "knickers") + ",”</i> she purrs, eyeing your [pc.ship] up.");
output("\n\n<i>“Think I saw you comen in on a real piece of junk a couple of times, and I was kind’ve worried you were still floaten around in that.”</i> She tuts and hums as she walks around it, taking in the armaments. <i>“Yeeeaaahhh, but see, these are all calibrated wrong. They produce ‘em like this cuz they’re dead easy to bolt on factory-fresh to a ship like this, you know, but you’re wasten energy and not getten the full ay oh eff when they’re configured like that.”</i> She snaps the straps of her sports bra resolutely. <i>“Plenty to be getten on with! I’ll go and pick my stuff up from the lockers and get to it. I’ll be on board by the time you’re ready to leave... captain.”</i>");
}
output("\n\nYou watch your new gunnery officer saunter off back towards the lifts, tails curled upwards.");
flags["RAMIS_ONBOARD"] = 1;
output("\n\n(<b>Ramis has joined your crew!</b>)");
//Start the hornyness countdown
ramisOrgasm();
addButton(0, "Next", mainGameMenu);
}
public function ramisBootFromCrew():void
{
clearOutput();
showRamis();
author("Fenoxo");
output("You tell Ramis that you need her off the ship for the time being.");
output("\n\n<i>“Huh.”</i> Ramis shrugs. <i>“And here I thought you kept me around cuz of my sterling personality.”</i> She slaps your back. <i>“I’ll see you around.”</i> Barely a second passes before she’s on her way out the door.");
processTime(20);
flags["RAMIS_ONBOARD"] = undefined;
if (flags["CREWMEMBER_SLEEP_WITH"] == "RAMIS") flags["CREWMEMBER_SLEEP_WITH"] = undefined;
output("\n\n(<b>Ramis is no longer on your crew. You can find her again in Tavros Station.</b>)");
clearMenu();
addButton(0, "Next", mainGameMenu);
}
public function ramisRejoinCrew():void
{
clearOutput();
showRamis();
author("Fenoxo");
output("You invite Ramis back onboard.");
output("\n\n<i>“Just like that?”</i> Ramis rolls her shoulders. <i>“Guess I’m game. Hopefully you made some upgrades since my last foray over there. See you onboard, Captain.”</i>");
processTime(20);
//currentLocation = "SHIP INTERIOR";
flags["RAMIS_ONBOARD"] = 1;
output("\n\n(<b>Ramis has rejoined your crew!</b>)");
clearMenu();
addButton(0, "Next", mainGameMenu);
}
//Crew Blurb Selection
public function ramisValidateActivity(crew:Array):void
{
var options:Array = new Array();
var outdated:Boolean = false;
//Make list of valid activities
for (var i:int = 0; i < ramisCrewBasicBlurbs.length; ++i) options.push(i);
if (InCollection(CREW_KASE, crew)) options.push("KASE");
if (InCollection(CREW_SHEKKA, crew) && !pc.hasStatusEffect("Shekka_Cum_Playing") && !pc.hasStatusEffect("SHEKKA_CHEATING_ON_YOU_CD")) options.push("SHEKKA");
if (!pc.hasStatusEffect("Ramis Sated")) options.push("HORNY");
//Check time
if (flags["RAMIS_ACTIVITY"] == undefined) outdated = true;
else if (flags["RAMIS_ACTIVITY_LAST_SET"] == undefined) outdated = true;
else if (flags["RAMIS_ACTIVITY_LAST_SET"] + 4 < GetGameTimestamp()) outdated = true;
//Check for party time
else if ( (flags["RAMIS_ACTIVITY"] != "PARTY")
&& (ramisIsPartyTime() || ramisOutDrinking())) outdated = true;
//Check that old activity is still valid
else if (!InCollection(flags["RAMIS_ACTIVITY"], options)) outdated = true;
if (outdated)
{
flags["RAMIS_ACTIVITY_LAST_SET"] = GetGameTimestamp();
if (options.length <= 0) flags["RAMIS_ACTIVITY"] = "ERROR";
else if (ramisIsPartyTime() || pc.hasStatusEffect("Partying Ramis")) flags["RAMIS_ACTIVITY"] = "PARTY";
else flags["RAMIS_ACTIVITY"] = RandomInCollection(options);
}
}
public var ramisCrewBasicBlurbs:Array = [
"Ramis has decked her quarters out in an intimidating display of fitness equipment. On the monitors, you can see she’s on the mat in her spandex underwear, hands behind her head, doing full body sit-ups. Up comes that brown, determined face to one side of her raised knees... down. Up it comes to the other side of her knees... down. Didn’t you read somewhere that sit-ups were bad for your back? Perhaps that’s not a problem for as flexible a race as the kaithrit.",
"Ramis has decked her quarters out in an intimidating display of fitness equipment. On the monitors, you can see she’s put some fingerless gloves on and is pummeling her zero-grav punch bag. Her taut flesh glows with sweat as she ducks and weaves, laying down jabs so fast that you only see her arm withdrawing, and the bag swinging in response. The big kaithrit is laughing and talking breathlessly as she works out, although you can’t make out what she’s saying.",
"Ramis has decked her quarters out in an intimidating display of fitness equipment. On the monitors, you can see she’s in her spandex underwear, doing her daily squats. Hands clenching the barbell over her shoulders, she grits her teeth and stands herself up... then with a hefty exhalation, sinks slowly back down. You simultaneously envy and pity the material stretched across her hindquarters, painted over those giant, muscle-packed hills, swelling out mightily whenever she returns to the squatting position.",
"Ramis is in the battery. On the monitors, you watch her clamber over the bulky, internal components of your weapons, sonic wrench in hand: fiddling within circuitry compartments, rerouting energy cells, dismantling ammunition cylinders, before putting it all back together and summoning up the main holo menu at the front to perform checks. She’s wearing a rather grouchy expression, muttering to herself as she goes about it. You think you catch <i>“...like it’s been calibrated by a bloody anatae”</i>.",
"It seems to be Ramis’s downtime. On the monitors, you can see she’s at her desk with a flask of whiskey and her lappy holo-device, idly scrolling and tapping away at various social media and vid sites. Kait-Pop is blaring through the speakers. She’s nodding away happily to the nightmarishly manic, screechy racket.",
];
public function ramisCrewBlurb(btnSlot:int = 0, showBlurb:Boolean = true):String
{
var blurb:String = "";
if (!pc.hasStatusEffect("Partying Ramis"))
{
if (showBlurb)
{
blurb += "\n\n";
if (flags["RAMIS_ACTIVITY"] is int) blurb += ramisCrewBasicBlurbs[flags["RAMIS_ACTIVITY"]];
else
{
switch (flags["RAMIS_ACTIVITY"])
{
case "HORNY":
blurb += "Ramis is dozing in her room, flat out on her bunk with her hands across her taut belly, purring snores periodically rising and falling from a drone to a rumble. On the monitors, the glow of a holo pad near to her bed catches your eye; zooming in reveals it to be ‘Johann’s Big and Burly Bear-annual III’. A couple of Ramis’s fingers gleam with moisture.";
break;
case "PARTY":
blurb += "A medley of trance and hip-hop blares at full blast from Ramis’s room.";
if (flags["RAMIS_PARTIED"] == undefined) blurb += " Slightly more bearable than the Kait-Pop she so adores, but does she have to have it on so loud? Perhaps you should go check on her.";
else blurb += " It’s her going-out mix. Clearly she’s excited to have landed back on Tavros again!";
break;
case "ERROR":
default:
blurb += "<b>Error setting Ramis’s schedule. " + String(flags["RAMIS_ACTIVITY"]) + "</b>";
break;
}
}
}
addButton(btnSlot, "Ramis", ramisCrewApproach);
}
else addDisabledButton(btnSlot, "Ramis", "Ramis", "The female kaithrit is out in Tavros, pulverizing the station’s drinking holes no doubt.\n\nShe’ll be back tomorrow.");
return blurb;
}
//Main Ramis
public function ramisCrewApproach():void
{
//Partying hook
if (ramisIsPartyTime()) return ramisPartyTime();
//Panties hook
if (!ramisOnTop() && ramisPantyCaught()) return ramisPantiesEncounter("caught");
clearOutput();
author("Nonesuch");
showRamis();
clearMenu();
processTime(1);
// Done With You Ramis
if(flags["RAMIS_SEX_DISABLED"] >= 2) output("<i>“Sup, Captain.”</i> Ramis smiles at you with vague, regretful coolness. <i>“Were you looken for me?”</i>");
// normal
else output("<i>“Sup, " + ramisfmt("Captain", " Big Lad", " Knickers") + "!”</i> Ramis grins at you toothily when you approach her. <i>“Were you looken for me?”</i>");
addButton(0, "Talk", ramisLetsDrinkInTheShip);
ramisSexButton(1);
if (pc.energy() > 40 && !pc.isWornOut()) addButton(2, "Work Out", ramisPumpIronNShit, undefined, "Work Out", "See if she’s willing to let you use her gear, pump a little iron with you.");
else addDisabledButton(2, "Work Out", "Work Out", "You’re too tired.");
if (flags["RAMIS_SEXED_SHIP"] != undefined && !looksFemaleToRamis() && !pc.isTaur())
{
if (ramisOnTop()) addButton(3, "Switch", ramisIWannaTopNowK, undefined, "Switch", "Is it possible to get her to let you be in charge for a bit?");
else addButton(3, "Switch", ramisPlsSexMeh, undefined, "Switch", "Is it possible to get her to be a little more assertive in bed?");
}
ramisSleepButton(4);
addButton(10, "Appearance", ramisAppearance, 10);
addButton(13, "Leave Crew", ramisBootFromCrew, undefined, "Leave Crew", "Tell Ramis to spend some time off of ship. You’ll probably be able to pick her up again later.");
addButton(14, "Back", crew);
}
//[Talk]
public function ramisLetsDrinkInTheShip():void
{
clearOutput();
author("Nonesuch");
showRamis();
clearMenu();
processTime(1);
if (flags["RAMIS_TALKED_ABOUT_TALKING"] == undefined)
{
flags["RAMIS_TALKED_ABOUT_TALKING"] = 1;
processTime(2);
output("<i>“Oh man. Here it comes!”</i> sighs Ramis, rolling her eyes. <i>“The manager wanten to get to know you, cuz [pc.he] wants you to think of [pc.him] as more’ve a friend than a boss, y’see. ");
if (!looksFemaleToRamis() && flags["RAMIS_SEXED"]) output("As if you didn’t already know the most important things about me, right?”</i> She jerks her hips at you unsubtly. <i>“");
else if (looksFemaleToRamis() && flags["RAMIS_TIMES_DRINK"]) output("You’ve been on nights out with me mate, you’ve already gotten to know me the best way possible. ");
output("Alright, tell you what, " + ramisNickname() + "...”</i> She gestures at a drink dispenser nearby. It’ll synthesize almost anything, but will have to be recharged when you’re next in port. <i>“...get a bottle of scotch. It’ll make this seem less like a job interview. And you’ll </i>definitely<i> get to hear all of my boren stories once I’ve had a few glasses!”</i>");
}
else
{
output("<i>“You wanna pass the bottle around a bit, get sloppy?”</i> grins Ramis. <i>“Nice. Your ship, your treat, though.”</i>");
}
if (pc.credits >= 100) addButton(0, "Ok", ramisCrewTalkStart);
else addDisabledButton(0, "Ok", "Ok", "100 credits.");
addButton(1, "Sober", ramisJoinAAAlreadyGeez);
}
public function ramisJoinAAAlreadyGeez():void
{
clearOutput();
author("Nonesuch");
showRamis();
clearMenu();
processTime(1);
output("<i>“Sober’s lame,”</i> she yowls, when you say you’d rather talk to her sober. <i>“Particularly when it’s just us two talken. No, sorry [pc.name], but you ent getten anything out of me until you stop bein’ tight and buy a lady a drink.”</i>");
addButton(0, "Next", crew);
}
public function ramisCrewTalkStart():void
{
clearOutput();
author("Nonesuch");
showRamis();
clearMenu();
processTime(1);
pc.credits -= 100;
IncrementFlag("RAMIS_TALKED");
output("After a few moments of processing, the drinks machine dispenses a spirits bottle, before filling it with a middling approximation of Ur Caledon’s finest. Ramis produces a couple of glasses as if by magic, and a few further moments later you’re watching her slam down a full one in a single gulp. She waits for you to take a sip of the burning fluid before refilling herself.");
output("\n\n<i>“Alright then, Steele. What do you want to know?”</i>");
flags["RAMIS_DRINKS_DRUNK"] = -1;
ramisCrewTalkTopics();
}
//Also increments alcohol count
public function ramisCrewTalkTopics(disable:int = -1):void
{
//Every time a talk scene ends, take a drink
IncrementFlag("RAMIS_DRINKS_DRUNK");
if (flags["RAMIS_DRINKS_DRUNK"] > 0) pc.imbibeAlcohol(20);
//if (ramisDrinks > 4) mainGameMenu();? Gotta give the player alcohol poisoning somehow.
addButton(14, "Finish", ramisTalkOver, undefined, "Finish", "Finish shooting the shit with Ramis.");
if (flags["RAMIS_DRINKS_DRUNK"] >= 5) return;
if (disable == 0) addDisabledButton(0, "Background");
else addButton(0, "Background", ramisTalkBackground, 0, "Background", "Ask where she came from.");
if (disable == 1) addDisabledButton(1, "Adult Life");
else addButton(1, "Adult Life", ramisTalkLife, 1, "Adult Life", "Ask how she got onto the Frontier.");
if (disable == 2) addDisabledButton(2, "Mercing");
else addButton(2, "Mercing", ramisTalkWork, 2, "Mercing", "She could surely tell you a few hair-raising tales.");
if (disable == 3) addDisabledButton(3, "Hobbies");
else addButton(3, "Hobbies", ramisTalkHobbies, 3, "Hobbies", "Which does she enjoy the most - clubbing, working out or doing boys?");
}
public function ramisTalkBackground(disable:int):void
{
clearOutput();
author("Nonesuch");
showRamis();
clearMenu();
processTime(30);
output("You ask where she was born.");
output("\n\n<i>“Don’t know mate,”</i> the big kaithrit replies. <i>“I’m an orphan. My mum left me on Newydd Casnewydd. Not offended you don’t know it, don’t worry - it’s a Snugglé agriworld. The corporation adopted and raised me. The second name you get is just the batch you were raised in, 29 other people my age out there called Ramis. Because it was Snugglé, if you were a boy your first name was a fruit, if you were a girlee a flower. So my first name is Hyacinth. Which you’re not ever goen to use,”</i> she adds warningly.");
output("\n\nYou watch her take a pull on her scotch.");
output("\n\n<i>“It’s quite common in kaithrit territory, y’know. The girls want to do whatever they want with the guys, the herms get to do whatever they want with anyone, and then the girls want to keep on keepen on, don’t they? Particularly with the Rush on, kaithrit are </i>mad<i> for it. The Roshan Hegemony have a deal with a bunch of mega companies. Soft-claw tax and OHS laws, in exchange for them taken in any littel bundles of joy left on their doorsteps. Works out pretty nice for the corporations: More profit, </i>and<i> a child labor force.”</i>");
output("\n\nYou ask what it was like, being raised by a corporation.");
output("\n\n<i>“Boren,”</i> Ramis says ruminatively, and then laughs. <i>“Really fucken boren. It could’ve been way worse, you hear stuff about the Xenogen and ApoSynthesis orphanages that makes your blood run cold. So thanks for abandoning me on a planet where I just had to pick beans every day between the ages of 6 and 15, mum! They taught us and kept us clean and stuff as well, don’t get me wrong. Also, because I got big fast nobody tried picking on me and my friends after I got to about 12. Could definitely have been worse.");
if (flags["RAMIS_DRINKS_DRUNK"] < 2) output(" But... y’know.”</i> Ramis taps a claw on the table surface, looking at her glass. <i>“It is difficult when you’re a sprog, if nobody cares. The orphanage’n field staff </i>cared<i>, but they </i>cared<i> in the same way you care about a parcel you’re deliveren, y’know? You’re an item they’re processen through the system. And, once I got big, I had to be the tough one for all the smaller kids. I never... had anyone. I didn’t really know that, think about it as... somethen missen about me, until I met a few people with kids.”</i>\n\nShe sniffs snottily, before hitting the glass back again.");
else output("”</i>");
ramisCrewTalkTopics(disable);
}
public function ramisTalkLife(disable:int):void
{
clearOutput();
author("Nonesuch");
showRamis();
clearMenu();
processTime(30);
output("<i>“Getten off Newydd Casnewydd was tough,”</i> Ramis says. <i>“Snugglé land you with a bunch of debt once you reach 16, the cost of your upbringing. It’s great bein’ a corporate orphan, you know: the prezzie you get when you become’n adult is a bank statement five figures in the red. It’s part of the whole graft - by that point you’re sort’ve a unique asset to them, somebody young on-site who knows all of their systems instinctively, they want you to stay. So they immediately offer you a job to work off the debt, ‘n then they’ll offer you some </i>more<i> debt so they can sponsor you through higher education... fuck that. Fuck ALL of that.”</i> She bangs her glass down vehemently. <i>“I didn’t care how dirty or dangerous it was, I wanted off that fucken sterile green rock so bad I cried until one of the staff drove me down to the spaceport and left me there. Like my mum, only in reverse.”</i>");
output("\n\nYou ask how she proceeded from there.");
output("\n\n<i>“With the first vessel who were willen to listen to a broke, pleaden teenager. Bunch of pirates who were there maken a bulk purchase of plonk. Once we were off-world they passed me around a bit, couple of gangbangs when the drink really flowed. I didn’t mind; they sort of made clear from the get go what they umm, saw my ship role as bein’.”</i> She makes a wry face. <i>“They were kind in other ways. Certainly generous with the drink. And I picked up a few things about ships and weapons. Slipped off when we were docked at a big spaceport, and there I signed on with a merc company. Pretenden to be way older and experienced than I was.”</i> She leans back, flexes her arms, and grins. <i>“Bein’ a big wun has its perks.”</i>");
output("\n\nYou ask if she’s paid off what she owed Snugglé.");
output("\n\n<i>“Bloody hell, yeah,”</i> the kaithrit replies, shaking her head. <i>“Took the most dangerous and sketchiest work I could, lived in a hotel compartment slightly longer than I am for the best part of 3 years, just so I could afford the payments. No way was I getten some dead-eyed bounty hunter on my tail, draggen me back to that bloody planet-wide farm.”</i>");
if (flags["RAMIS_DRINKS_DRUNK"] > 2)
{
output("\n\nShe smacks her lips appreciatively as she sips her scotch.");
output("\n\n<i>“You know every month when I paid them their pound of flesh, they sent me back a message detailen job opportunities?”</i> she slurs. <i>“Given me updates about where all my old friends were, and how easy it would be to see them again if I just came back? Like, they worked out I was worken as a merc almost straight away, and started senden me stuff about their security division and prison work schemes? Mega-corps fucken hate it when you walk away from them. Hate it, don’t understand it. Once they get their umm, mosquito-nose into you, they expect it to be there for good.”</i> She laughs. <i>“I’d like to load a surface buzzer up with lava missiles, then do exactly what they want, go back to Newydd Casnewydd. If I could do it without hurten anyone, I’d be there in an instant. Sow those fields of beans ‘n adverts ‘n debt with fire. Bloody hell that would be satisfyen!”</i>");
output("\n\nShe flings her arms out, goes ‘Woosh’ and then laughs even more heartily - until her gaze returns to you and she bites down on it a bit.");
output("\n\n<i>“Uhh... just somethen to think about, captain. When you’re the owner of that massive minen company of yours, like.”</i>");
}
ramisCrewTalkTopics(disable);
}
public function ramisTalkWork(disable:int):void
{
clearOutput();
author("Nonesuch");
showRamis();
clearMenu();
processTime(30);
output("You ask about her mercenary career.");
output("\n\n<i>“You want to hear about some guts’n glory, do you?”</i> Ramis laughs. She swirls her scotch, gazes into the roiling amber. <i>“Hmm. Let me have a think...”</i>");
switch(flags["RAMIS_DRINKS_DRUNK"])
{
case 0:
output("\n\n<i>“Would you like to hear about my very first mission?”</i> she says. <i>“First mission, they always tell you: take some corpo guard duty. Get signed on to a merchant convoy. The pay’ll be piss, but you’ll learn the ropes, make some mates, get the sense of how bloody boring 90% of the work is. Get yourselve experienced. Me?”</i> She turns her big, gleaming, fanged smile on you. <i>“I joined a joint company expedition, taken out a major pirate base in an unclaimed, uncharted system.”</i>");
output("\n\n<i>“The mad lads had built their gaff into a giant asteroid, right in the middle of a belt. They had a custom AI in there which mapped the belt and auto-navigated their ships out of there, bloody impossible to get in or out otherwise. They must’ve thought nobody could get at them - ‘ticularly given the way they spread their raids out, bloody hell. We had to blast our way in with nukes and kinetic cannons, all the while they were firing missiles and laser discharge out in every direction. Bloody amazen light show.”</i>");
output("\n\nShe pauses, takes a sip.");
output("\n\n<i>“The ship to portside of the one I was in took a hit, slap on the bridge, made it lurch toward us. In a panic I shouted at our pilot to boost us forward, which he did - right into a small asteroid. The armor held. No reason it should have. Doing that meant a missile aimed at us missed, hit the other ship instead. No-one on board survived. Well, we got the pirates in the end, brought in most of them alive even. It didn’t feel like much of a victory to me... but the rest of the crew celebrated like it was. I went along with it, and I guess after a few drinks it did.”</i> She shrugs. <i>“Learned a hard lesson that day, " + ramisNickname() + ": You can be as skillful’n experienced as much as you like. Once the shooten starts, whether you survive or not is mostly down to luck. That’s why I live the way I do - in every fucken moment.”</i>");
break;
case 1:
output("\\n“My last big mission! Ohh " + ramisNickname() + ", I lived off’ve that for months!”</i> Ramis cries, eyes gleaming like marbles in the dark. <i>“After you’ve been in the business as long as I have, you get to learn which jobs are bad, ‘n which ones’ll be good, just from who’s payen, how much, and what they DON’T put in the description. This one was posted by a local colonial government - good, not corpos - looken for someone to bust up a slaven ring - good, get to take down real trash - and they DIDN’T ask for a certified company. Which meant that somebody like Black Void was involved, so nobody big’n established was willen to touch it.”</i>");
output("\n\nTails lashing, Ramis positions cutlery and glasses on the table, so you can see exactly how things played out. She’s well into this.");
output("\n\n<i>“I got my best crew together, we scouted that rodenian colony out, and we worked out how things must be goen down - the slavers’d paid off a couple of peeps in the spaceport to look the other way, and then they were snafflen workers and travellers off-world in one unmarked tanker or another. I almost didn’t blame them. Those wee little mice...”</i> she bats a salt-shaker back and forth. <i>“You just want to play with them, y’know?”</i>");
output("\n\n<i>“Anyways. We staked that place out well secretly like, had our ship in low orbit cloaked’n watchen. I was off the sauce the whole time, believe it or not! We caught them in the act - a daynar girlee, a tarratch ‘n a gryvain, done up to the nines and showing off their bits, flashin’ colors, transfixen mice’n then getting at that suggest-y spot they’ve got at the back of their bonces. When I came out with a chain laser cannon, you know what they did? Tried it on with me!”</i> Ramis laughs harshly, banging her glass. <i>“Guess they worked out I’m not into girlees when I atomized the daynar.”</i>");
output("\n\n<i>“The Black Void lot completely lost the plot after that. Half uvvem started shooten up the place, a bunch of them ran into the tanker and scarpered. I left my crew to deal with the ones on the ground, buzzed our pilot to come pick me up, and then we tailed the tanker. Fucken muppets led us straight to their orbital slave pen!”</i>");
output("\n\nThe kaithrit finger guns the room, swivelling in her seat, taking careful aim with her claws and thumping her arms back with imaginary recoil.");
output("\n\n<i>“They thought they could drive us off with half a dozen plasma launchers. They might’ve done... except if you’re packing that much firepower AND you’ve got a slave grid, your generator is probably overclocked to the bloody max. Just needed to get two clean shots on that to shut the whole station down... then I took out their emplacements, one by one.”</i>");
output("\n\nShe beams at you, rosy-cheeked.");
output("\n\n<i>“Bloody amazen result, captain. We got most of the rodenians back, didn’t take one casualty, merked a dozen of the worst scumbags in the galaxy, decked a whole bunch of Void hardware AND got paid premium to do it all. The party we had afterwards!”</i> She swigs her glass of scotch, bangs it down with a sigh. <i>“Course, the Void who surrendered got one guy to carry the can ‘n the rest got off on technicals thanks to their legal department, and they made sure to blacklist me afterwards so I can’t work for any of the major merc companies now even if I wanted to. I’m more’n happy about that.”</i>");
break;
case 2:
output("\n\n<i>“After that first bloody mission of mine went tits up, I went in for more safe work for a bit,”</i> Ramis sighs. <i>“Began thinken about all my debt, decided I needed steady work anyway. Supply convoys want merc crews with them on the frontier, no matter how much of a milk run it is - pirates’ve gone crazy in this Rush, so many reports of bad stuff happenen out on remote colonies’n systems. Works out alright for me, cuz then I get paid to just stare at space elevators in a corvette for twenty hours.”</i>");
output("\n\nShe laughs with an uncharacteristically bitter edge.");
output("\n\n<i>“Took me a while to figure out the two were linked. Merc companies worken with peeps like the Black Void, runnen protection rackets, everyone gets a cut. You don’t get in on that shite until you’ve been worken with one crew or another for a while. I suppose I got too distracted to put two ‘n two together at the time.”</i> She smiles more warmly. <i>“Cuz you get to spend downtime on those distant stations ‘n mining platforms. And my word, are the worken boyos ‘n girlees happy to see anyone new. Oh, we had some amazen parties back then, drunker then I’ve ever been!”</i>");
output("\n\n<i>“Spacewalks whilst half-cut, chucken conc grenades into zero grav minen shafts, tryen out the weirdest temporary TF combos we could think of... we were so lucky we didn’t kill ourselves,”</i> the kaithrit reminisces happily, leaning back on her chair. <i>“And, of course, I had the pick of the boyos. I’d have a fit lad on Saturday, a sissy on Sunday, back on board ‘n back to port on Monday, never hear from either again. What a life.”</i> She sips her drink. <i>“If the pay wasn’t so shite, and it wasn’t so bloody boren the rest of the time, I’d probably still be doin’ that.”</i>");
break;
case 3:
output("\n\n<i>“Every bounty hunter’s got the story of the one that got away,”</i> Ramis declares, yellow pupils now thoroughly dilated. <i>“They’re talken shite, there’s always more’n one, no job involven a dozen secondary school dropouts armed to the teeth goes ezackly smoothly. I’ve got one story I always tell, though... this shipping company operating out of the Nokador Sector sent out an APB for any mercs willen to take down this one pirate who kept raiden their stuff. I normally wouldn’t’ve taken it, bounty hunten’s for mums, but they were offeren an arm’n a leg for a successful capture. Whoever it was must’ve really been taken the piss.”</i>");
output("\n\n<i>“So there was about twenty’ve us. Cyrilians, cundarians, all sorts, we agreed that whoever got the final shot on this kui-tan piece of work got a third of the bounty, en everyone else would share the rest. Fair craic. We used shippen logs to track her, hunted her down to this knocken shop in a hive city on Sigius VI.”</i> Ramis lowers her voice, getting into her retelling. <i>“Five of us went inside, the rest surrounded the building, dismal fucken place in the lower strata. I s’pose somebody must’ve tipped her off, cuz just as we were about to burst into her room she jumped out of the window bollock naked, the only really good look I got of her was her tail and arse disappearen through the curtains, the pro she had bin with screamen fit to burst.”</i>");
output("\n\nThe kaithrit guffaws, spilling her drink as her muscles wriggle, reliving the chase. <i>“She got past the boys we posted outside somehow, don’t ask me how, and we wound up chasen that stark naked little slag across half the lower levels of the hive. Best fun I’ve ever had on a job, bloody hell, how did she do it? Jumpen across buildens, snatchen onto auto-trams and then button-hooken into sub-tunnels, all with that ridiculass willy of hers wagglen everywhere like an elephant’s trunk!”</i>");
output("\n\nShe mimics the movement with her forearm, laughing, before framing the situation firmly in front of her face as soberly as she can.");
output("\n\n<i>“So. Me’n the rest, we got our heads together, sent people ahead, eventually cornered her in a warehouse right on the very wall of that filthy hive. There was no way she was getten out this time, it was deserted for yards all around, and we really had it bare surrounded this time. We combed it, nice’n methodical, floor by floor. We knew she’d be in the cellar. We were ready for a real fight.”</i>");
output("\n\nShe leaves you hanging for a few seconds, swirling her scotch.");
output("\n\n<i>“Nobhead wasn’t in there, was she? Worked out eventually she’d wriggled her way right out of the city through a sewer pipe. Two feet wide and almost a mile long it was, so caked in filth we didn’t even spot it until it was too late. Un-fucken-believable.”</i> She takes a big gulp, shaking her head with a wry grin after she’s swallowed down the burning liquid. <i>“We </i>did<i> put the wind up her enough to stop raiden that sector, so after a lot of wranglen we did get the company to stump up half of the bounty. Which shared around twenty bods was roughly nothen.”</i>");
output("\n\nRamis taps her empty glass wistfully.");
output("\n\n<i>“I’d love to get another go at punchen that kui-tan’s ticket, whoever she was. Not cuz I resent her or anythen. Just chasen her was one of the funnest things I’ve ever done.”</i>");
break;
case 4:
output("\n\n<i>“Hmm.”</i> Ramis twists her glass round and around, her yellow eyes on the glittering crystal and booze. She’s good and drunk now, and you sense a secret inside her beginning to yaw open, like a gate off the latch. <i>“Did I ever tell you I used to work for SagiTom, " + ramisNickname() + "?”</i>");
if (!CodexManager.entryUnlocked("SagiTom")) output("\n\n<i>“SagiTom?”</i>");
else output("\n\nYou nod at her to continue.");
output("\n\n<i>“They’re a mercenary group, one of the best - or dead professional, anyway,”</i> Ramis says. <i>“They don’t let just any random spod join, you’ve got to have years of work behind you, and even then they vet you very carefully. I was dead chuffed when I was approached. I thought I was finally maken my way in the work.”</i>");
output("\n\nShe flexes out all the claws in one hand, examining them silently. For a few moments you think she’s not going to continue.");
output("\n\n<i>“My first mission was to deal with these terrorists who were targeten a synth template plant on some core world. I suppose that should’ve been my warnen - what kind’ve terrorists target corpos? But the whole operation was so slick and well-organized, we all knew exactly what our roles were, the tech we had so bang new it seemed impossible anythen would go wrong. Some of the officers, the serious business ones with the tats and implants, they had secondary orders us grunts didn’t get to know - you’d see them in tactical after we’d finished goen over stuff after we’d finished - but in the moment, you know, that just impressed me. Like, it was such a carefully arranged plan there were moven parts that us soldiers didn’t have to think about, right?”</i>");
output("\n\n<i>“So we get to that sodden planet, we come in on our lander, we’re all done up in our fancy armor and our heads-up feeden us everything, all of us primed like nades in the tube, the doors open and...”</i> Ramis swings her fist slowly through the air, opens it with a poof of her cheeks. <i>“It ent terrorists. It’s a protest. Street filled right back with people, all ages, all races, homemade placards, holo-boomers en the lot. Corny handpainted slogans on their signs about not wanten their world taken over by ApoSynthesis, color drainen from all their faces as they looked at us. And then we piled into them.”</i>");
output("\n\nRamis drains the whole glass in one gulp. Drink pours in, words pour out.");
output("\n\n<i>“I don’t know why I didn’t - we were </i>told<i> there were goen to be civilians in the vicinity en to remain calm, but not </i>specifically<i>... but what did I do? I did my job. Whole thing went like clockwork, slick machine, like we’d practiced. Like I </i>wanted<i> it to. Beaten back mobs of screamen, frightened people, some fallen over and breaken bones, formen that cordon of kinetic shields so the secondary crew could ‘neutralise the terrorists’.”</i> She bitterly air-quotes with two pairs of claws. <i>“The protest organizers en union reps. Think I heard one of them ask about their rights before she got beaten to the ground. I didn’t even see what happened to ‘em - there was a second lander, the one the higher ups came in, and that’s the one the organizers were taken off in.”</i>");
output("\n\nShe stares into the middle distance, tails lashing.");
output("\n\n<i>“And the whole time I was doin’ it, beneath the ‘stay calm, keep focused, stay calm’ beaten through my mind, I was thinken about how much I hated Snugglé. All the shite they do, the way they do just take over planets and give two fingers to anyone on them who doesn’t happen to like it. How I’d done everythen possible not to just become one of their drones, taken a nice pay-packet and not thinken about where it came from. And... there I was. Breaken up an anti-corpo demonstration, breaken students’ teeth. Bloody hell, I got a fucken <b>commendation</b> for it.”</i> She spits the word. <i>“Operation scored 98% in the evaluation, all of us wet-behind-the-ears got a clap on the back and a small bonus. I went to the trouble of looken up the extranet reports of what’d happened. ‘Police Forced Into Action After Extremists Instigate Riot’. Fuck me.”</i>");
output("\n\n<i>“I’m guessing you stopped working for SagiTom,”</i> you say.");
output("\n\n<i>“Ooh, you’re a quick one, aren’t you " + ramisNickname() + "?”</i> the big kaithrit replies, a glimmer of good humor returning to her ruddy complexion. <i>“I worked out afterwards that them droppen you into stuff like that as your first mission is ackshullee the last part of their vetten process. Maybe you got the stats but not the mindset, right? Well - I definitely didn’t. I quit the very next day. Been an indie ever since. Doesn’t pay anywhere near as well, but I’m not in it for the money anymore. And it does mean that sometimes...”</i> She spreads her arms, indicating the room and you, grinning toothily. <i>“...you happen on really magic gigs.”</i>");
output("\n\nYou grin back, and click your glass into hers.");
CodexManager.unlockEntry("SagiTom");
break;
default:
output("\n\nRamis is so drunk she only manages to mumble something about you notifying the developers about an error in her talk scenes.\n\n<b>Maybe you should please do that.</b>");
break;
}
ramisCrewTalkTopics(disable);
}
public function ramisTalkHobbies(disable:int):void
{
clearOutput();
author("Nonesuch");
showRamis();
clearMenu();
processTime(30);
output("You ask what she enjoys doing the most.");
if (flags["RAMIS_DRINKS_DRUNK"] > 1)
{
if (looksTrappyToRamis() && ramisOnTop()) output("\n\n<i>“You, mostly,”</i> she replies with a big grin. You roll your eyes; you should have seen that coming. <i>“It’s great to be worken on a ship where I can get my teeth into a mincen little sissy whenever I want. And most home boyos only let me do it to them once! You’re the best boss I ever had, Steele.”</i>");
else if (looksMaleToRamis() && !ramisOnTop()) output("\n\n<i>“You, mostly,”</i> she replies with a big grin. You roll your eyes; you should have seen that coming. <i>“Most guys talk a good game, but’d rather hide in the bogs then take me on. So all I get are kui-tan girls tryen their luck, cuz they think they can shag anythen! You, though: you do it like you mean it. Then you’re just a mate afterwards. You’re the best boss I ever had, Steele.”</i>");
}
output("\n\nShe sips her scotch and thinks about it for a bit.");
output("\n\n<i>“I dunno, it’s all kind’ve the same thing to me,”</i> she replies. <i>“I work out so I have enough energy’n strength to do my job but also really go to town when I’m in port, and I do that so I ent sad when I sign on for a dangerous mission. No regrets, see? If my AVP gets hit by a remote plasma det in some armpit of a warzone, or the fly boy doesn’t carry the one and FTLs our bird into an asteroid, it’ll be fine. I’ll have lived the life I wanted to live, seen bloody loads, not leave anythen behind except a great fucken body. Not bad for an orphan who started with less then nothen.”</i>");
output("\n\n<i>“I kind of feel sorry for you in a way, " + ramisNickname() + "...”</i> Ramis waggles an empty glass at you, smiling lopsidedly. <i>“You’ve got all this bollocks to think about, this mental scavenger hunt your dad put together’n this giant company of yours you’re supposed to take over, </i>as well as<i> runnen this ship and tryen not to die out here.");
if (flags["RAMIS_DRINKS_DRUNK"] < 4)
{
output(" I’ll take bein’ the dumb muscle any day of the week.”</i>");
output("\n\n<i>“You don’t actually feel sorry for me,”</i> you say, raising your own glass. <i>“Do you?”</i>");
output("\n\n<i>“With that nursery and hangar of yours? Fuck no,”</i> Ramis replies, laughing as she pours herself another.");
ramisCrewTalkTopics(disable);
}
else
{
output(" We’ve had a few now captain, so tell me honestly.”</i> Wag wag goes the glass, narrowly avoiding a spill. <i>“Do you really want to be in charge of Steele Tech, once all this is over?”</i>");
addButton(0, "Yes", ramisCompanyReplyYes, disable);
addButton(1, "No", ramisCompanyReplyNo, disable);
}
}
public function ramisCompanyReplyNo(disable:int):void
{
clearOutput();
author("Nonesuch");
showRamis();
clearMenu();
processTime(5);
output("You’ve known this quest was total nonsense, right from the start. What could surviving out here on the frontier possibly teach you about running a mega corporation like Steele Tech? Frankly, the only reason you’re doing it is to stop your rotten cousin from grabbing it - and to hang on to some of the most valuable assets Victor left you, like the incredible nursery and hangar on Tavros. Once you’ve succeeded, you fully intend to immediately step down as CEO, then carry on the exciting, fulfilling, sexy life you’ve found for yourself out here.");
output("\n\nAs best you can with the amount of scotch currently circulating your system, you put all of that to Ramis.");
output("\n\n<i>“I knew it!”</i> she cheers loudly. <i>“You’re like ME " + ramisNickname() + ", liven in the moment rather than dreaming of fucken boardrooms, ‘n money you won’t even know what to do with. You’ll keep me on, once you </i>do<i> get off the company leash, right? Oh, we’re goen to have so much </i>fun<i>!”</i>");
output("\n\nShe lustily bangs her glass into yours, and this time the amber fluid <i>does</i> slop everywhere.");
ramisCrewTalkTopics(disable);
}
public function ramisCompanyReplyYes(disable:int):void
{
clearOutput();
author("Nonesuch");
showRamis();
clearMenu();
processTime(5);
output("The life of an itinerant frontiersperson has its moments, but you also know it isn’t exactly sustainable. You’ve seen enough out here to know you’re extremely lucky to have your inheritance, and you absolutely intend to take up the reigns of the family business as Victor wanted. It’s not as if you can’t still have fun, is it? As best you can with the amount of scotch currently circulating your system, you put all of that to Ramis.");
output("\n\n<i>“Fair fucken points,”</i> she replies slowly. <i>“I guess I’ve never imagined having a goal like that in life - at least not once I paid off all of my debt.”</i> She smiles at you. <i>“I suppose it’s nice to have someone in charge who’s driven like that. We’re goen to get your dad’s silver, and no-one’s going to stand in your way, are they " + ramisNickname() + "? Here’s to you.”</i>");
output("\n\nShe gives you a lusty salute with her glass, and this time the amber fluid <i>does</i> slop everywhere.");
ramisCrewTalkTopics(disable);
}
public function ramisTalkOver():void
{
clearOutput();
author("Nonesuch");
showRamis();
clearMenu();
processTime(5);
output("You thank her for her time, and stand up.");
if (pc.isSmashed())
{
output(" You stumble slightly, the room seeming to tilt a bit. How much did you put away there?");
output("\n\nRamis guffaws.");
output("\n\n<i>“No problem at all " + ramisfmt("cap’n", "big lad", "knickers") + "!”</i> she grins. <i>“You’re a good " + pc.mf("lad", "girlee") + " for tryen to keep up with me whilst I’m layen out the Ramis family history. Don’t try’n fly the ship now!”</i>");
output("\n\nNo... no flying the ship. Maybe a lie down, now. You stumble back towards your quarters.");
}
else
{
if (pc.isDrunk()) output(" You have to steady yourself, blink a few times. That scotch really is too easy to drink.");
output("\n\n<i>“No probs, " + ramisNickname() +",”</i> grins Ramis, shifting the bottle her way. <i>“It’s ackshually quite good to talk about this stuff with you. Just umm...”</i> she pours herself a fresh glass. <i>“...needs a bit of fire to bring it out.”</i>");
}
addButton(0, "Next", mainGameMenu);
}
// [Work Out]
public function ramisPumpIronNShit():void
{
clearOutput();
author("Nonesuch");
showRamis();
clearMenu();
processTime(5);
if(flags["RAMIS_SEX_DISABLED"] >= 2 && flags["RAMIS_WORKOUT_SEX_DISABLED"] == undefined)
{
output("<i>“Ok,”</i> says Ramis, shrugging ponderously. <i>“I don’t mind spotten for you. Nothen else though, alright?”</i>");
// Carries on as normal, except sex outcomes disabled
flags["RAMIS_WORKOUT_SEX_DISABLED"] = 1;
}
else
{
output("<i>“You need someone to spot for you? Sure, I’m down!”</i> says Ramis, clapping her hands together with relish. She leads you into her room, decked out in all of her gleaming, vaguely intimidating fitness gear.");
output("\n\n<i>“What are you looken to do?”</i> the blonde kaithrit asks, ducking and weaving around her free-floating punchbag as you weigh things up.");
}
addButton(0, "Strength", ramisMakeMeStronger);
addButton(1, "Stamina", ramisMakeMeLastLongerButNotLikeThat);
}
//Stamina
public function ramisMakeMeLastLongerButNotLikeThat():void
{
clearOutput();
author("Nonesuch");
showRamis();
clearMenu();
processTime(60);
pc.slowStatGain("reflexes", 1);
//Shamelessly copy-pasted from Ten-Ton Gym
sweatyDebuff(2);
output("Some aerobics, some core training, that’s what you’re here for. You do some energetic step-ups, squats and lunges with Ramis - you manage to compromise with her on what music you do it to, half your stuff and half Kait-pop, so you only feel like you have a migraine half of the time - before she busts the exercise ball out, getting you to do a circuit of balancing stretches and presses.");
output("\n\nYou’re glowing lightly with sweat after about an hour, feeling like every part of you has been tweaked and kneaded.");
output("\n\n<i>“You done?”</i> grins Ramis. She’s absentmindedly batting at the exercise ball with her gloved hands. <i>“You start maken the real gains once you’re a bit knackered, you know...”</i>");
addButton(0, "Carry On", ramisMakeMeLastLongerYesLikeThat);
addButton(1, "Enough", ramisImFookinTired);
}
public function ramisMakeMeLastLongerYesLikeThat():void
{
clearOutput();
author("Nonesuch");
showRamis();
clearMenu();
processTime(60);
pc.energy(-60);
//Also ripped off from that gym
soreDebuff(3);
if (flags["RAMIS_WORKOUT_SEX_DISABLED"] == undefined && !looksFemaleToRamis() && !pc.isTaur() && ramisOnTop() && pc.lust() > 30)
{
output("<i>“You can do a few more, can’t you?”</i> Ramis says, a smirk tugging at the corner of her expressive lips.");
if (flags["RAMIS_SUBBY_WORKOUT"] == undefined) output("\n\nYou let her know with an empty stare that you’re pretty sure you can’t.");
else output("\n\nYou’re sure you can’t - oh. You stare at her, a dirty little thrill tightening your chest. You recognize that tone of voice.");
output("\n\n<i>“Yeah, I think you can,”</i> the tawny kaithrit says briskly, pulling out some heavy barbell weights and laying them across your [pc.legs], before planting one foot either side of your shoulders. You stare up at her towering over you, foot after foot of thick, rounded, rippling flesh, barely contained by her skin-tight sport shorts and bra. A fanged grin flashes down at you, somewhere far above. <i>“You just need the proper motivation, don’t you " + (pc.isFemboy() ? "knickers" : "boyo") + "?”</i>");
output("\n\nShe slowly bends her legs and raises her tail, her round, muscular butt flattening out her tight sports shorts; you can practically hear them creak in protest. Her camel toe stands out like it’s been painted over in spandex, the lips tantalisingly prominent.");
output("\n\n<i>“You want a taste?”</i> she breathes, yellow eyes gleaming down at you. <i>“Better give me those sit-ups, sissy.”</i>");
output("\n\nOk. Alright. Hands behind your head, you take a couple of deep breaths, ready yourself, and then flex. One, it’s so hard, after all you’ve put your body through over the last couple of hours... but the prize. The hypnotic prize, held just out of reach. You winch your upper body up until your nose slides into the warm valley of her butt-crack, open your mouth to give her spandex-covered camel toe a few loving smooches, tracing her soft lips with your [pc.tongue]... and then you flop back down, unable to hold yourself up any longer.");
output("\n\n<i>“Ooh,”</i> Ramis coos, malicious glee stalking through her husky voice. <i>“I think I felt somethen there! But you can hold yourself up for longer, can’t you? Yes, you can. Cuz you’re addicted to this, aren’t you?”</i> She wiggles her bum above you, flexes her pussy lips with the ease of someone who does regular kegel exercises. Hotness runs up and down your exhausted body gazing helplessly up at that, inflaming your nerve endings, sending a surge of lust into [pc.eachCock]. <i>“Yeah,”</i> the brawny kaithrit breathes, smiling softly. <i>“You’ll do anythen to have a taste that. Anythen to please me. So go on, boyo. Give me another. You can’t do anythen else.”</i>");
output("\n\nYou grit your teeth, clench yourself upwards and treat your mouth and tongue to a few more seconds with Ramis’s spandex-clad pussy, probing into the sweet, alluring gap between those soft lips, and then collapsing back down to the map with a wheeze, abdominals throbbing, sweat streaming down your brow. Up, lick, kiss... down. Up, smooch, lap... down. Every little purr of pleasure you manage to draw out of her is a harp string from heaven in your ears, spurring you on, despite the fatigue weighing heavily upon your body.");
output("\n\nThe film of material between it and you adds a frisson of submissive delight to the punishing experience. You don’t deserve to have unfettered access to the big, powerful female’s goodies, it seems obvious to your exhausted, horny brain. Maybe if you really push yourself... maybe if you really prove yourself to her...");
output("\n\nYour heart leaps as, smirk widening, Ramis reaches down and slowly peels her undies down, the round, brawny hills of her buttocks appearing out of the black material like an obscene, glorious dawn.");
output("\n\n<i>“If you manage one more, you’ll have earned it,”</i> she whispers. She flexes her bare, plush pussy lips for you, holding your gaze as surely as any hypnotist’s watch. <i>“Go on, my sweet, hard worken pretty boy.”</i>");
output("\n\nYou don’t think your abs have it in them, but your mind doesn’t care. It <i>makes</i> them clench up one last time, <i>makes</i> them winch you upwards, and <i>makes</i> them hold you steady whilst you press your face deep into Ramis’s crotch, frenching her twat, tasting her salt and her sweet, musky juices, your body crying out in both pain and delight. Only when her taste is smeared all over your [pc.lips] and [pc.tongue] do you flop back down onto the mat, utterly spent, groaning woozily.");
output("\n\nA husky giggle worms its way into your head; you feel soft boobs and hard thighs push into your side, an affectionate cuddle from your kaithrit top.");
output("\n\n<i>“See? All it takes is the right motivation,”</i> she proclaims, pulling you into her and laying a proud kiss on your sweaty brow. <i>“And cuz you’re such an eager, thirsty littel sissy, I know exactly what it takes. Oh bloody hell, I love owning you!”</i>");
output("\n\nYour abdominals are serving notice that they fully intend to make your life painful tomorrow, but being gripped and cuddled by Ramis right now, her pussy juices still on your lips, you find you couldn’t care less. You limp out of her room, sweaty and incredibly sore, but deeply, deeply satisfied.");
IncrementFlag("RAMIS_SUBBY_WORKOUT");
pc.slowStatGain("willpower", 3);
pc.slowStatGain("reflexes", 2);
pc.changeLust(15 + pc.libido()/4);
pc.energy(-40);
}
else
{
output("<i>“C’mon " + ramisNickname() + ",”</i> Ramis coos encouragingly. <i>“I know you can give me a couple more. Do it to impress the blonde girlee, sitten just here...”</i>");
output("\n\nYou grit your teeth, cords bulge in your neck, and with one last monstrous flex of your overworked abs you winch yourself up to a sitting position - and then collapse in a wheezing heap. You receive a brisk pat on the [pc.thigh] for your efforts.");
output("\n\n<i>“Good stuff, mate. You were smashen it today! Go and have a shower’n a rest, you earned it.”</i> You leave Ramis’s room, sweaty and exhausted. You’ll be sore tomorrow, but the endorphin glow you’re currently experiencing is really something.");
pc.slowStatGain("willpower", 2);
pc.slowStatGain("reflexes", 1);
pc.modThickness(-2);
}
addButton(0, "Next", mainGameMenu);
}
//Strength
public function ramisMakeMeStronger():void
{
clearOutput();
author("Nonesuch");
showRamis();
clearMenu();
processTime(60);
pc.energy(-40);
pc.slowStatGain("physique", 1);
sweatyDebuff(2);
output("No messing around, you’re here for one thing and one thing only - building muscle. You stretch yourself out and then get to work on Ramis’s array of barbells, doing a series of reps whilst she spots for you, before doing the same for her. Then you work on your [pc.legs], using a neat inertia drone she has, to sit down and flex against an ever-increasing amount of pressure.");
pc.modTone(1);
output("\n\nYou’re glowing lightly with sweat after about an hour, a pleasant ache adorning your arms and [pc.legs].");
output("\n\n<i>“You done?”</i> grins Ramis. She’s on her back, medicine ball in hand. <i>“You start maken the real gains once you’re a bit knackered, you know...”</i>");
addButton(0, "Carry On", ramisPushMahStrengthToTheLimit);
addButton(1, "Enough", ramisImFookinTired);
}
public function ramisPushMahStrengthToTheLimit():void
{
clearOutput();
author("Nonesuch");
showRamis();
clearMenu();
processTime(60);
pc.energy(-60);
//Also ripped off from that gym
soreDebuff(3);
output("Hell no, you’re just getting started! You grin and flex your muscles at Ramis, who does the same back with interest, and you both laugh at the shared joy of being a pair of meat-heads.");
output("\n\nAfter a few minutes rest you get back to it, using her medicine ball to hit your deltoids and chest muscles from a different direction, before giving the punch bag a good going over. You are sure to space it all out with well-timed rests, but your arms are still aching mightily by the time you get back around to the barbells. Ramis watches you carefully as you slowly raise the heavily weighted bar");
//PQ values pulled out of my ass, mind
if (pc.PQ() < 25) output(" once, twice, thrice -");
else if (pc.PQ() < 75) output(" a dozen times -");
else output(" more than twenty times -");
output(" and that’s enough. You bring it down to the brace with a clang and a wheeze.");
if (flags["RAMIS_WORKOUT_SEX_DISABLED"] == undefined && !looksFemaleToRamis() && !pc.isTaur() && !ramisOnTop() && pc.lust() > 30)
{
output("\n\n<i>“You can give me a few more than that " + ramisNickname() + ", c’mon.”</i> You’re pretty sure you can’t, and - oh.");
if (flags["RAMIS_NONSUBBY_WORKOUT"] == undefined) output(" You recognize that low, naughty tone of voice; the sound of a big cat on the prowl.");
else output(" That tone of voice, the one that reactively creates a stirring in your loins. She’s not going to do it again, is she? She is, you know.");
output("\n\nRamis’s spandex underwear is a slinky sound hitting the floor. From your position on the bench, you watch through salt-stung eyes as she sashays around, gleaming brown flesh bare from the waist down, slings a leg like a falling tree branch over your waist. A winded groan escapes your mouth as she " + (pc.isCrotchExposed() ? "grips" : "fishes around in your [pc.lowerGarment], gripping") + " your [pc.cock], the lubricant of sweat allowing her rough, hot hand to easily slide up and down your shaft.");
output("\n\nYou may be aglow with physical exhaustion, but the old fireman reacts as readily as ever, swelling and hardening in response to her coiling grip, lust pumping into its veins. Another ragged exhalation is forced from your lungs. Void, it’s so hard to think when she’s doing that...");
output("\n\n<i>“You can give me a few more, can’t you?”</i> the big kaithrit repeats, grin widening. She holds your [pc.cock] steady as she slowly begins to sit down, mouth opening as your [pc.cockHead] presses against the sopping, warm give of her cunt. <i>“Yeah, you can,”</i> she breathes. <i>“Cuz you’re the kind of lad that’d do anything to impress a fit bird, aren’t you? And cuz won’t be able to shag me unless you keep goen.”</i>");
output("\n\nShe sinks herself down, gloriously slick, supple pussy gloving your [pc.cockNoun], and she’s already working her body, abs rippling and boobs bouncing, before she’s anywhere near the [pc.base], glee and pleasure overtaking her. With so much energy already exerted and so much blood drawn towards your groin, it really is very difficult to think straight - all you can think to do is grit your teeth, grip the bar again, and flex your arms.");
output("\n\n<i>“Yeah, that’s it,”</i> growls Ramis, hands on your [pc.chest], claws lightly pricking your [pc.skinFurScales]. The wide smoothness of her bum touches your groin, little trickles of sweat and lubricant running down your " + (pc.balls > 0 ? "[pc.balls]" : "[pc.thighs]") + ". <i>“One!”</i> she crows as you straighten your arms, weights triumphantly held aloft, thrusting her wide, dense hips on top of you, kneading your [pc.cock] within her wet heat. For a few moments you just luxuriate in it, mouth open, watching the blonde cat-girl use you, abs standing out and spandex-clad boobs jouncing, before she slaps at you impatiently, forcing you onwards.");
output("\n\nShe rides you as you strain your muscles again, a series of exhilarated, feminine grunts soundtracking the barbells being raised again. <i>“Two!”</i> Fuck, she’s so heavy, pressing your own [pc.ass] hard into the padded bench, and the way her hips <i>grip</i> your waist like that, clinching you deep within her writhing, milking cunt. Sweat pours down your brow like a monsoon. But you’ve got this. You’re a goddamn God, goddamnit.");
output("\n\n<i>“Three! Oh yeah, that’s it, you fucking beast!”</i> Ramis cries, delirious glee on her face, thick ass bouncing on your groin, wetness drooling down your throbbing [pc.cockNoun]. <i>“I bloody love seeing my " + ramisfmt("", "man", "boi") + " work it. I want those arms around me, I want you to hold me down and shag me with them!”</i>");
output("\n\nVeins stand out on your forehead as surely as they do on your cock, listening to this conscious stream of female delight whilst using every last vestige of stamina your over-taxed muscles have to push the bar up, up, up, your arms straightening one last time... and then you cum like a rocket, a fusillade of [pc.cum] flumed into Ramis’s sopping, supple pussy, one unstoppable, juicy clench after another until it’s backing out all over your groin and [pc.thighs].");
output("\n\nYou bring the weights down with a clang and grab her by the waist, hips reactively thrusting upwards into that glorious, thick mass embedded on your crotch, determined to ride every last thunderous pulse into her, until");
//Also random value
if (pc.cumQ() < getRamisPregContainer().vaginalCapacity()) output(" her pussy is stuffed with your cum.");
else output(" her fit belly is rounded with your cum and it’s pouring out thickly all over the bench and floor.");
output("\n\nYou sag together when you’ve thrashed your last, utterly exhausted, your sweat filming you together. Your arms are throbbing harsh complaints up to your brain, filing notice that you’ll barely be able to move them tomorrow, but sliding your hands down the curve of Ramis’s back and holding her grinning face, you find you couldn’t care less.");
output("\n\n<i>“That was a nice work-out,”</i> she purrs, thigh sliding up and down your [pc.hip]. <i>“Ent it good when you go above’n beyond a bit?”</i>");
output("\n\nIt certainly does. A few moments later you reluctantly you disengage from her, [pc.cock] flopping drooling out of her cum-caked hole, and limp out of her room, filthy and incredibly sore, but deeply, deeply satisfied.");
pc.slowStatGain("physique", 3);
pc.orgasm();
ramisOrgasm();
ramisSexed("man");
}
else
{
output("\n\nYou receive a brisk pat on the [pc.thigh] for your efforts.");
output("\n\n<i>“Good stuff, mate. You were smashen it today! Go and have a shower’n a rest, you earned it.”</i>");
output("\n\nYou leave Ramis’s room, sweaty and exhausted. You’ll be sore tomorrow, but right now you’re practically float through the ship on the endorphin glow.");
pc.slowStatGain("physique", 1);
}
pc.modTone(2);
addButton(0, "Next", mainGameMenu);
}
public function ramisImFookinTired():void
{
clearOutput();
author("Nonesuch");
showRamis();
clearMenu();
processTime(1);
output("You decide to call it quits for today. You thank Ramis for letting her use her equipment, to which she shrugs good-naturedly.");
output("\n\n<i>“Course, " + ramisNickname() + ", any time. Give us a shout whenever you’re ready for more!”</i>");
addButton(0, "Next", mainGameMenu);
}
// [Switch]
public function ramisIWannaTopNowK():void
{
clearOutput();
author("Nonesuch");
showRamis();
processTime(1);
output("As nice as it might be to be roughed up and left aching by an over-enthusiastic muscle babe, you’d quite like to be in charge of her for once. You ask if she’d let you lead when it comes to the sexy times.");
//Tries to set ramis to BOTTOM, then checks if the change sticks (see ramisOnTop())
if (ramisOnTop(-1))
{
output("\n\nRamis leans against a wall, arms folded. She considers you for a few moments, grin hovering on her lips.");
output("\n\n<i>“You’re goin’ to have to do somethin’ for me first, " + (pc.isFemboy() ? "knickers" : "boy toy") + ",”</i> she says at last. She draws a circle in the air with a claw. <i>“I don’t mind a boyo bein’ in charge. Quite like it, in fact. But you’re gonna have to ummm, take some willy pills.”</i> She laughs a little, looking down fondly at your crotch. <i>“I just, I can’t take it seriously. Little boy with his little toy soldier, tellen me that he’s the man of the manor now! Til you do that, get yourself a nice thick ladee pleaser, I’m goin’ to be doin’ whatever I want with you. Soz.”</i>");
addDisabledButton(3, "Switch");
}
else
{
output("\n\nRamis leans against a wall, arms folded. She considers you for a few moments, grin hovering on her lips.");
if (looksTrappyToRamis()) output("\n\n<i>“I’ve never had a girlee boy say they want to be in charge in the bedroom before,”</i> she says, giggling a bit and shaking her head. <i>“Ok! Why not? I’m open to new experiences ‘n things. You go ahead, " + (pc.isFemboy() ? "sissy boy" : "boy") + ".”</i> She growls and narrows her eyes campily. <i>“You try’n put me in my place. I’ll be waitin’.”</i>");
else output("\n\n<i>“You’ve had enough of bein’ roughed up have you, boyo?”</i> she asks teasingly. <i>“Good. I prefer it when the man’s in charge. So long as he’s man enough.”</i> She growls and narrows her eyes campily. <i>“So you go ahead ‘n put me in my place. I’ll be waitin’.”</i>");
addButton(3, "Switch", ramisPlsSexMeh, undefined, "Switch", "Is it possible to get her to be a little more assertive in bed?");
}
ramisSexButton(1);
}
public function ramisPlsSexMeh():void
{
clearOutput();
author("Nonesuch");
showRamis();
processTime(1);
output("The idea of letting the big, rambunctious jaguar off the leash is an inescapably thrilling one. You say you’d love it if she took the lead more when it comes to sexy times.");
if (looksMaleToRamis() && pc.biggestCockVolume() > 40)
{
output("\n\nRamis’s ears wilt.");
output("\n\n<i>“Aww,”</i> she grouses. <i>“You’re serious, aren’t you? I finally find a guy who’s a real man’n in the bedroom, ‘n then of course he turns round and asks for me to be in charge. Alright, fine.”</i> She sighs, and narrows her eyes at you mischievously. <i>“If that’s the way you want it to be, I’m goin’ to treat you bad. So bad you’ll want to put me in my place sooner rather then later.”</i>");
}
else
{
output("<i>“You want me to treat you bad?”</i> Ramis grins. She prowls across, and you gasp as she grasps your [pc.butt], gives it a hard squeeze. <i>“Well alright captain, if you insist. I have been thinken that you need someone to make you a bit less high’n mighty, you know...”</i>");
}
ramisOnTop(1);
//This line is horrible but it's also easy so
addButton(3, "Switch", ramisIWannaTopNowK, undefined, "Switch", "Is it possible to get her to let you be in charge for a bit?");
ramisSexButton(1);
}