diff --git a/CHANGELOG.md b/CHANGELOG.md index b8a8735080a92bd31c65478ad56152de6c847f04..e58ddfba013af6d01cf8f79b269dd85ea1ddeb58 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,7 +23,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) * Reminders system improvements * Elohiem's webgl art update 2 & 3 * added new hairstyles (bangs, hime, drills) -* added slave distribution presets (PLC, Japan/Korea, Carribean) +* added slave distribution presets (PLC, Japan/Korea, Caribbean) * heavy reconstruction of the event systems * REFI conversion complete * Cheat mode and debug mode controls for event selection diff --git a/src/Mods/Catmod/events/SoSBombing.tw b/src/Mods/Catmod/events/SoSBombing.tw index 906c7374404c2a0ab80b84a81e463747ada7e260..38c7cab59f46026889fd5d2dba088061295fffc3 100644 --- a/src/Mods/Catmod/events/SoSBombing.tw +++ b/src/Mods/Catmod/events/SoSBombing.tw @@ -32,7 +32,7 @@ Although they're not positive, they're requesting a few thousand credits in addi <br> <<link "Authorize the raid, but delegate it to your armed citizens instead of the security team">> <<replace "#result">> <<if $sekhmetbombplot == 1>> - You authorize the raid, but transfer authority for its execution over to a group of loyal, free citizens, who are all too eager to defend the Republic. Early in the morning the next day, a group of Praetorians in full gear burst into a small apartment in the lower sectors, interrupting a small group of Sekhmeti terrorists bulding a series of improvised bombs in the barren living room. Before the bombmakers can even grab their guns, the well-disciplined citizens gun them down in an explosive hail of fire, killing the whole cluster indiscriminately. Although the zealous citizenry don't leave anything left for you to enslave, a group of proud, well-trained free citizens voluntarily defending the arcology from a terrorist plot - and doing so without so much as a scratch - is a @@.green;good look.@@ + You authorize the raid, but transfer authority for its execution over to a group of loyal, free citizens, who are all too eager to defend the Republic. Early in the morning the next day, a group of Praetorians in full gear burst into a small apartment in the lower sectors, interrupting a small group of Sekhmeti terrorists building a series of improvised bombs in the barren living room. Before the bombmakers can even grab their guns, the well-disciplined citizens gun them down in an explosive hail of fire, killing the whole cluster indiscriminately. Although the zealous citizenry don't leave anything left for you to enslave, a group of proud, well-trained free citizens voluntarily defending the arcology from a terrorist plot - and doing so without so much as a scratch - is a @@.green;good look.@@ <<run cashX(-5000, "event")>> <<run repX(2500, "event")>> @@ -48,7 +48,7 @@ Although they're not positive, they're requesting a few thousand credits in addi <br> <<link "Authorize the raid, but transfer authority to your $mercenariesTitle">> <<replace "#result">> <<if $sekhmetbombplot == 1>> - You authorize the raid, but head up the effort with your better-trained $mercenariesTitle. Early in the morning the next day, the deadly mercenaries kick down the door of a small office building in the lower sectors, interrupting a group of Sekhmeti terrorists in the middle of constructing a series of improvised bombs in the converted office space. The $mercenariesTitle blow the entire group to pieces with high-power weaponry, absolutely annihilating the careful plot with overwhelming force and indiscriminate destruction before they can fire off a single shot. Although the rough mercenaries don't leave anything left for you to enslave, the well-trained mercs emerging from the smouldering ruin of what used to be a terrorist field HQ is a @@.green;good look@@ for the security of your arcology. + You authorize the raid, but head up the effort with your better-trained $mercenariesTitle. Early in the morning the next day, the deadly mercenaries kick down the door of a small office building in the lower sectors, interrupting a group of Sekhmeti terrorists in the middle of constructing a series of improvised bombs in the converted office space. The $mercenariesTitle blow the entire group to pieces with high-power weaponry, absolutely annihilating the careful plot with overwhelming force and indiscriminate destruction before they can fire off a single shot. Although the rough mercenaries don't leave anything left for you to enslave, the well-trained mercs emerging from the smoldering ruin of what used to be a terrorist field HQ is a @@.green;good look@@ for the security of your arcology. <<run cashX(-5000, "event")>> <<run repX(2500, "event")>> diff --git a/src/Mods/Catmod/events/SoSSniper.tw b/src/Mods/Catmod/events/SoSSniper.tw index 6e0dc9d7e9dac242ca4f6c18a18de268e4eea2f9..3ea83a3515cc328919dc844c94b2ecf61d2edeea 100644 --- a/src/Mods/Catmod/events/SoSSniper.tw +++ b/src/Mods/Catmod/events/SoSSniper.tw @@ -140,17 +140,17 @@ As you pant in the wake of the sudden attack, $assistant.name notifies you that <</if>> <br><br> <<if _sniperescape == 1>> - The assassination attempt and subsequent escape has @@.red;scared@@ many of your citizens, even after you @@.red;pay@@ for the damage the sniper bullets caused to the wealthy elite's propety. A few days later, a trader passing by the arcology hands you an envelope, saying that he was told to pass it onto you. Inside is a single slip of paper, totally blank except for a single line of text: "See you soon." The envelope is emblazoned with the logo of an orange sun. + The assassination attempt and subsequent escape has @@.red;scared@@ many of your citizens, even after you @@.red;pay@@ for the damage the sniper bullets caused to the wealthy elite's property. A few days later, a trader passing by the arcology hands you an envelope, saying that he was told to pass it onto you. Inside is a single slip of paper, totally blank except for a single line of text: "See you soon." The envelope is emblazoned with the logo of an orange sun. <<set $arcologies[0].prosperity -= 1>> <<run repX(-2000, "event")>> <<elseif _sniperescape == 2>> - Surviving the assassination attempt and killing the assassin earns you @@.green;admiration@@ of the citizenry, who see you as strong for punishing the assassin, particularly after you @@.red;pay@@ for the damage the sniper bullets caused to the wealthy elite's propety. The next day, the Sons of Sekhmet release a 'news' update featuring their balaclava-wearing figurehead in front of his professional desk. + Surviving the assassination attempt and killing the assassin earns you @@.green;admiration@@ of the citizenry, who see you as strong for punishing the assassin, particularly after you @@.red;pay@@ for the damage the sniper bullets caused to the wealthy elite's property. The next day, the Sons of Sekhmet release a 'news' update featuring their balaclava-wearing figurehead in front of his professional desk. <br><br> "Today a servant of Sekhmet was martyred while making an attempt on the life of a hedonistic new-world plutocrat. This was not the first attempt we have made, and it will not be the last. Next time, we will inscribe his name on the bullet that finishes the job. Abna Sakhmat damk-" You turn off the report. That's about all you need to see. <<set $arcologies[0].prosperity += 1>> <<run repX(2000, "event")>> <<elseif _sniperescape == 3>> - Surviving the assassination attempt and capturing the assassin earns you @@.green;admiration@@ of the citizenry, who see you as strong for punishing the assassin, particularly after you @@.red;pay@@ for the damage the sniper bullets caused to the wealthy elite's propety. The next day, the Sons of Sekhmet release a 'news' update featuring their balaclava-wearing figurehead in front of his professional desk. + Surviving the assassination attempt and capturing the assassin earns you @@.green;admiration@@ of the citizenry, who see you as strong for punishing the assassin, particularly after you @@.red;pay@@ for the damage the sniper bullets caused to the wealthy elite's property. The next day, the Sons of Sekhmet release a 'news' update featuring their balaclava-wearing figurehead in front of his professional desk. <br><br> "Today a servant of Sekhmet was martyred while making an attempt on the life of a hedonistic new-world plutocrat. The enemy has captured one of ours - in time we will free them, or perhaps they will awake to find a dagger in their back. Soon, they will understand the grave mistake of taking a Son into their ranks, even as a slave. Abna Sakhmat damk-" You turn off the report. That's about all you need to see. <<set $arcologies[0].prosperity += 1>> diff --git a/src/Mods/Catmod/events/SoSassassin.tw b/src/Mods/Catmod/events/SoSassassin.tw index 6c35c5748ca698d7bcf814269ed9739a77904aa6..2aa578b2521784715b88307b98d4b84698f77c3b 100644 --- a/src/Mods/Catmod/events/SoSassassin.tw +++ b/src/Mods/Catmod/events/SoSassassin.tw @@ -68,7 +68,7 @@ As you stroll through your market district in the afternoon, checking up on your <</if>> <<else>> <<if $PC.skill.warfare >= 100 && $personalArms > 0>> - There's nothing standing between you two. You level your handgun onto her, but she's just a microsecond faster, kicking the gun out of your hand with a painfully powerful strike that sends the pistol clattering onto the ground a few feet away. Before you can dive for it, she's thrusting her knife up towards your throat. Your combat instincts kick in and you wrench your head to the side, the blade nicking you on the cheek, and grab her by the wrist, throwing a hard punch into her ribcage. The assassin forces her hand free and stumbles back, seemingly surprised that you're holding your own against her. "Bhalwi al-sham asmik qalbik. I was told you could fight." She mumbles. You glance at your handgun on the ground as she drops into a combat stance and lunges towards you a second time. You barely catch her wrist as she thrusts the knife at your stomach, forcing her hand off to the side, and she responds by slamming a kick into your ankle, rearing her hand back for another strike as you reel. You narrowly deflect strike after strike as she jabs the knife towards your vitals, the sharp steel cutting and scraping your skin as you hold off the better-armed assailant, until she pulls back and brutally kicks you in the ribs as you block a jab, sending you slamming against the hard ground of the marketplace. Coughing a trace of blood, you roll to the side towards your discarded handgun as the assassin lunges atop you, pinning you down. She's got an insane look in her pretty eyes as she raises the knife, shouting "Abna Sakhmat damkun!" You reach your hand to the side as far as you can get it, narrowly grasp your fingers around your handgun, and whip it back to fire a single round, the last round in the magazine, through the assassin straddling you's chest. She gasps once, and then slumps off, an instant before having plunged the knife into your heart. Covered in blood, you push the corpse off, stand up, brush yourself off, and tell the @@.green;shocked and amazed@@ citizens of the marketplace that this is just another day in your life. Someone awkwardly applauds as the security drones arrive. + There's nothing standing between you two. You level your handgun onto her, but she's just a microsecond faster, kicking the gun out of your hand with a painfully powerful strike that sends the pistol clattering onto the ground a few feet away. Before you can dive for it, she's thrusting her knife up towards your throat. Your combat instincts kick in and you wrench your head to the side, the blade nicking you on the cheek, and grab her by the wrist, throwing a hard punch into her ribcage. The assassin forces her hand free and stumbles back, seemingly surprised that you're holding your own against her. "Bhalwi al-sham asmik qalbik. I was told you could fight." She mumbles. You glance at your handgun on the ground as she drops into a combat stance and lunges towards you a second time. You barely catch her wrist as she thrusts the knife at your stomach, forcing her hand off to the side, and she responds by slamming a kick into your ankle, rearing her hand back for another strike as you reel. You narrowly deflect strike after strike as she jabs the knife towards your vitals, the sharp steel cutting and scraping your skin as you hold off the better-armed assailant, until she pulls back and brutally kicks you in the ribs as you block a jab, sending you slamming against the hard ground of the marketplace. Coughing a trace of blood, you roll to the side towards your discarded handgun as the assassin lunges atop you, pinning you down. She's got an insane look in her pretty eyes as she raises the knife, shouting "Abna Sakhmat damkun!" You reach your hand to the side as far as you can get it, narrowly grasp your fingers around your handgun, and whip it back to fire a single round, the last round in the magazine, through the assassin straddling your chest. She gasps once, and then slumps off, an instant before having plunged the knife into your heart. Covered in blood, you push the corpse off, stand up, brush yourself off, and tell the @@.green;shocked and amazed@@ citizens of the marketplace that this is just another day in your life. Someone awkwardly applauds as the security drones arrive. <<run cashX(-1000, "event")>> <<run repX(2500, "event")>> <<else>> diff --git a/src/Mods/Catmod/events/nonRandom/bodypuristprotest.tw b/src/Mods/Catmod/events/nonRandom/bodypuristprotest.tw index 79fa83efae18d20a63c41f7f251e21947729daba..525d428b69a53b2ab3c0f52eaa2f6bc390c3305e 100644 --- a/src/Mods/Catmod/events/nonRandom/bodypuristprotest.tw +++ b/src/Mods/Catmod/events/nonRandom/bodypuristprotest.tw @@ -24,7 +24,7 @@ One of the riot officers glances back at you, awaiting an order. This situation <span id="result"> <br> <<link "Order your troops to disperse the protest by force">> <<replace "#result">> - You don't have time for this shit. You tell the officer glancing at you to shut down these jumped-up hooligans without a second thought. With a nod, the officers press forward into the crowd in an organized fashion, to which they're met with instant pushback from the unarmed protestors. Someone throws a brick at the shieldwall which explodes into two parts with a loud smack, and then the entire situation erupts into chaotic, two-sided violence. As the officers start brawling with the protest crowd, trying to pindown fighting purists for arrest, you retreat back into your penthouse to watch the @@.red;blood flow in the streets.@@ This solution never fails, but the injuries and damages it'll cause are sure to be @@.red;expensive,@@ and riot scenes never look good in the media. + You don't have time for this shit. You tell the officer glancing at you to shut down these jumped-up hooligans without a second thought. With a nod, the officers press forward into the crowd in an organized fashion, to which they're met with instant pushback from the unarmed protestors. Someone throws a brick at the shieldwall which explodes into two parts with a loud smack, and then the entire situation erupts into chaotic, two-sided violence. As the officers start brawling with the protest crowd, trying to pin down fighting purists for arrest, you retreat back into your penthouse to watch the @@.red;blood flow in the streets.@@ This solution never fails, but the injuries and damages it'll cause are sure to be @@.red;expensive,@@ and riot scenes never look good in the media. <<run cashX(-2500, "violent fighting")>> <</replace>> <</link>> @@ -40,7 +40,7 @@ One of the riot officers glances back at you, awaiting an order. This situation <<if $PC.skill.warfare >= 80>> <br> <<link "Use your fearsome reputation to intimidate them into surrender">> <<replace "#result">> - You brush some concrete dust from the thrown brick off your shoulder. This isn't the first enemy you've stared down, and it sure as hell isn't the scariest. Even above the crackle of electrobatons and the shouting of the crowd, the entire protest group seems to hear when you ask them coldly if they've forgotten who you are. As the crowd watches, you rattle off battlefields and massacres, the names of armies you've shattered and towns you've burnt to ashes, casually point a finger at the blonde man with the megaphone, say his full name, and tell him that if he says another word you'll give his two daughters to your mercenaries as rape-toys, cut off his dick, and use him as a whipping board until he bleeds out after a few years of abuse. The unarmed crowd freezes up, seemingly just now becoming aware that while they're unarmed, the muscular, scarred-over guardsmen holding crackling electrobatons in front of them are most certainly not. You take the oppurtunity to remind them that the security cameras outside your penthouse has recorded every face in the crowd, and anyone who so much as raises a weapon in defense has their home, occupation, and family on file. No one moves a muscle. + You brush some concrete dust from the thrown brick off your shoulder. This isn't the first enemy you've stared down, and it sure as hell isn't the scariest. Even above the crackle of electrobatons and the shouting of the crowd, the entire protest group seems to hear when you ask them coldly if they've forgotten who you are. As the crowd watches, you rattle off battlefields and massacres, the names of armies you've shattered and towns you've burnt to ashes, casually point a finger at the blonde man with the megaphone, say his full name, and tell him that if he says another word you'll give his two daughters to your mercenaries as rape-toys, cut off his dick, and use him as a whipping board until he bleeds out after a few years of abuse. The unarmed crowd freezes up, seemingly just now becoming aware that while they're unarmed, the muscular, scarred-over guardsmen holding crackling electrobatons in front of them are most certainly not. You take the opportunity to remind them that the security cameras outside your penthouse has recorded every face in the crowd, and anyone who so much as raises a weapon in defense has their home, occupation, and family on file. No one moves a muscle. <br><br> You tell the frozen crowd that you'll be continuing your work on Project N, and that if any one of them ever shows up at your house again, let alone with a gun, it'll be the worst, and last, decision they ever make. A few people at the back start to break off from the crowd. You turn back to your penthouse and walk inside as the crowd disintegrates. You have work to do, and you get the feeling these people @@.green;aren't going to bother you again.@@ <<if $arcologies[0].FSBodyPurist != "unset">> @@ -57,7 +57,7 @@ One of the riot officers glances back at you, awaiting an order. This situation <<if $arcologies[0].FSEgyptianRevivalist != "unset">> <br> <<link "Calm the crowd through appealing to the Gods">> <<replace "#result">> - Even surrounded by violence held at bay only by a thin line of heavily-armed guards, you maintain the serene aura of a priest. Unperturbed, you turn and order one of the terrified slaves watching in the doorway to fetch <<if $projectN.status >= 5>>your designs<</if>><<if $projectN.status <= 6>>$subjectDeltaName<</if>>. "Have you forgotten the faces of the Gods, you sinners and fools? Beauty lies not simply in the perfection of the human form, but also in the life of our hands and the transcendence of our purity. Gaze upon my works and tell me you do not see within them the light of Bastet!" You chastise the furious crowd like they're children, and as the slave runs back out, <<if $projectN.status >= 5>>you snatch the designs from her hands and hold up an early technical document from Nieskowitz, showing a serene-looking catgirl in full pharonic attire, portrayed as an Egyptian deity<</if>><<if $projectN.status <= 6>>bringing $subjectDeltaName herself along. The poor, catgirl, still barely capable of human speech, looks absolutely terrified as the large crowd looks her up and down, but doesn't move. With her snow-like fur, she bears a striking resemblance to iconographic Egyptian Goddesses, and you gesture towards her with a dramatic hand<</if>>. "How dare you insult the purity of my designs!" You yell at the watching crowd, who seem to have grown quieter. "I have neither marred nor corrupted the human form, but instead brought another form of purity into being. Our dynastic ancestors could recognize this beauty, and you insult them with these blemishes and affronts!" Perhaps owing to the legitimate belief in Egyptian Revivalism across your arcology, the crowd seems genuinely shamed. People start to break off from the back of the crowd, and after a few minutes the furious cluster of rioters has @@.green;dispersed,@@ seemingly embarrassed that they'd attack feline icons considered holy by the ancient Egyptians. + Even surrounded by violence held at bay only by a thin line of heavily-armed guards, you maintain the serene aura of a priest. Unperturbed, you turn and order one of the terrified slaves watching in the doorway to fetch <<if $projectN.status >= 5>>your designs<</if>><<if $projectN.status <= 6>>$subjectDeltaName<</if>>. "Have you forgotten the faces of the Gods, you sinners and fools? Beauty lies not simply in the perfection of the human form, but also in the life of our hands and the transcendence of our purity. Gaze upon my works and tell me you do not see within them the light of Bastet!" You chastise the furious crowd like they're children, and as the slave runs back out, <<if $projectN.status >= 5>>you snatch the designs from her hands and hold up an early technical document from Nieskowitz, showing a serene-looking catgirl in full pharaonic attire, portrayed as an Egyptian deity<</if>><<if $projectN.status <= 6>>bringing $subjectDeltaName herself along. The poor catgirl, still barely capable of human speech, looks absolutely terrified as the large crowd looks her up and down, but doesn't move. With her snow-like fur, she bears a striking resemblance to iconographic Egyptian Goddesses, and you gesture towards her with a dramatic hand<</if>>. "How dare you insult the purity of my designs!" You yell at the watching crowd, who seem to have grown quieter. "I have neither marred nor corrupted the human form, but instead brought another form of purity into being. Our dynastic ancestors could recognize this beauty, and you insult them with these blemishes and affronts!" Perhaps owing to the legitimate belief in Egyptian Revivalism across your arcology, the crowd seems genuinely shamed. People start to break off from the back of the crowd, and after a few minutes the furious cluster of rioters has @@.green;dispersed,@@ seemingly embarrassed that they'd attack feline icons considered holy by the ancient Egyptians. <<if $arcologies[0].FSBodyPurist != "unset">> <<run repX(1000, "event")>> <<run $arcologies[0].prosperity += 3>> diff --git a/src/Mods/Catmod/events/nonRandom/projectNComplete.tw b/src/Mods/Catmod/events/nonRandom/projectNComplete.tw index ef15b25d856da136b13cedd3f4ac6fbeb71c23b9..ded6d1c676373286034d551b69075b5b63278754 100644 --- a/src/Mods/Catmod/events/nonRandom/projectNComplete.tw +++ b/src/Mods/Catmod/events/nonRandom/projectNComplete.tw @@ -44,7 +44,7 @@ <<set _slave.canRecruit = 0>> <<set _slave.accent = 4>> -It's finally time. Nieskowitz greets you with a rare smile as you enter the genetics lab, showing you to the tube where $subjectDeltaName floats unconscious. Far from the blob of pinkish flesh she once was, $subjectDeltaName is now a fully-formed humanoid, covered in a layer of beautiful, snow-white fur and topped with twitching, pointed cat ears. You can hear the bustle of the media, journalists who somehow found out about $subjectDeltaName's near completition and are all but breaking down the lab's door trying to get a good look in. +It's finally time. Nieskowitz greets you with a rare smile as you enter the genetics lab, showing you to the tube where $subjectDeltaName floats unconscious. Far from the blob of pinkish flesh she once was, $subjectDeltaName is now a fully-formed humanoid, covered in a layer of beautiful, snow-white fur and topped with twitching, pointed cat ears. You can hear the bustle of the media, journalists who somehow found out about $subjectDeltaName's near completion and are all but breaking down the lab's door trying to get a good look in. <br><br> "Be aware that she won't have any instinctive knowledge of our language. Frankly, I don't know if she'll be capable of real human speech at all, honestly. This is a first for me, too. Try and keep her away from any cameras in her face, they're likely to frighten her. Anyway, I guess she's ready. Are you?" <br><br> @@ -72,7 +72,7 @@ It's finally time. Nieskowitz greets you with a rare smile as you enter the gene <</link>> <br> <<link "Let the media get a good look at $subjectDeltaName as you leave">> <<replace "#result">> - he watching scientists hold their breath as the green liquid drains from the tube, and $subjectDeltaName hits the glass wall with an unglamorous thud. As the tube comes up, you carefully catch the white catgirl, feeling the silk-like softness of her entire body as the young vat-grown girl opens her eyes for the first time. She blinks her big, catlike eyes a few times, and then meows at you loudly, probably the closest thing she can manage to a question. In response, you set her down on wobbly feet, take her by the hand, and lead her out the doors of the genelab to meet an absolute hail of journalists with cameras and bright flashing lights shoving microphones and recorders in both of your faces. As the terrified, nude catgirl recoils from the confusing sound and noise, you promptly push her forward, allowing the media to explore every last inch of her naked body while you answer questions. She's obviously @@.red;terrified@@ at the cameras in her face and crotch, not that the journalists seem to care, and although they get a @@.green;whole array of perfect footage@@ as you ignore $subjectDeltaName's loud, desperate meowing, you're forced to break off the imprompteau interview session early when $subjectDeltaName starts @@.gold;crying@@ as photos flash in her face. She's completely nonresponsive to your attempts to get her to stop bawling as the watching journalists awkwardly shuffle, and only stops sobbing loudly when you bring her away from the assembled crowd. As you lead $subjectDeltaName back to the penthouse, still sniffling and mrowling intermittently, she stares sullenly at you with big catlike eyes that only understand that you've @@.red;somehow betrayed her.@@ + he watching scientists hold their breath as the green liquid drains from the tube, and $subjectDeltaName hits the glass wall with an unglamorous thud. As the tube comes up, you carefully catch the white catgirl, feeling the silk-like softness of her entire body as the young vat-grown girl opens her eyes for the first time. She blinks her big, catlike eyes a few times, and then meows at you loudly, probably the closest thing she can manage to a question. In response, you set her down on wobbly feet, take her by the hand, and lead her out the doors of the genelab to meet an absolute hail of journalists with cameras and bright flashing lights shoving microphones and recorders in both of your faces. As the terrified, nude catgirl recoils from the confusing sound and noise, you promptly push her forward, allowing the media to explore every last inch of her naked body while you answer questions. She's obviously @@.red;terrified@@ at the cameras in her face and crotch, not that the journalists seem to care, and although they get a @@.green;whole array of perfect footage@@ as you ignore $subjectDeltaName's loud, desperate meowing, you're forced to break off the impromptu interview session early when $subjectDeltaName starts @@.gold;crying@@ as photos flash in her face. She's completely nonresponsive to your attempts to get her to stop bawling as the watching journalists awkwardly shuffle, and only stops sobbing loudly when you bring her away from the assembled crowd. As you lead $subjectDeltaName back to the penthouse, still sniffling and mrowling intermittently, she stares sullenly at you with big catlike eyes that only understand that you've @@.red;somehow betrayed her.@@ <<set $projectN.status = 6>> <<run repX(5000, "event")>> <<set _slave.prestige = 2>> diff --git a/src/Mods/Catmod/events/nonRandom/projectNSaboteur.tw b/src/Mods/Catmod/events/nonRandom/projectNSaboteur.tw index 3f6b3de6bea0478337c9856350d985f1252727e8..86bb7e1c7233fb21764a0bb14073d6eaca4e1791 100644 --- a/src/Mods/Catmod/events/nonRandom/projectNSaboteur.tw +++ b/src/Mods/Catmod/events/nonRandom/projectNSaboteur.tw @@ -9,30 +9,30 @@ You're not going to be able to get down there in time yourself, but you'll need <br><br> <span id="result"> <<if $projectN.wellFunded == 1>> -<br> <<link "Activate the lab's integrated security">> - <<replace "#result">> - You briefly thank your lucky stars that you invested enough in project N to provide for integrated security, then call for the lab's drones to activate. Over the cameras, you smugly watch from your comfortable bed as the security drones tear two of the mysterious saboteurs to shreds, then pin down and apprehend the third. Seems like all they managed to get you today was a @@.green;brand new slave.@@ - <<run repX(1500, "event")>> - <<set _slave = GenerateNewSlave(null, {minAge: 16, maxAge: 32, disableDisability: 1})>> - <<run generateSalonModifications(_slave)>> - <<set _slave.origin = "$He is an enslaved Son of Sekhmet, one of many idealistic rebel groups violently opposed to you.">> - <<set _slave.devotion = random(-90,-70)>> - <<set _slave.trust = random(-20,30)>> - <<set _slave.weight = random(-20,30)>> - <<set _slave.muscles = random(20,80)>> - <<set _slave.waist = random(10,80)>> - <<includeDOM App.UI.newSlaveIntro(_slave)>> - <<set $projectN.status = 5>> - <</replace>> -<</link>> + <br> <<link "Activate the lab's integrated security">> + <<replace "#result">> + You briefly thank your lucky stars that you invested enough in project N to provide for integrated security, then call for the lab's drones to activate. Over the cameras, you smugly watch from your comfortable bed as the security drones tear two of the mysterious saboteurs to shreds, then pin down and apprehend the third. Seems like all they managed to get you today was a @@.green;brand new slave.@@ + <<run repX(1500, "event")>> + <<set _slave = GenerateNewSlave(null, {minAge: 16, maxAge: 32, disableDisability: 1})>> + <<run generateSalonModifications(_slave)>> + <<set _slave.origin = "$He is an enslaved Son of Sekhmet, one of many idealistic rebel groups violently opposed to you.">> + <<set _slave.devotion = random(-90,-70)>> + <<set _slave.trust = random(-20,30)>> + <<set _slave.weight = random(-20,30)>> + <<set _slave.muscles = random(20,80)>> + <<set _slave.waist = random(10,80)>> + <<includeDOM App.UI.newSlaveIntro(_slave)>> + <<set $projectN.status = 5>> + <</replace>> + <</link>> <</if>> <<if $mercenaries == 5>> -<br> <<link "Send for your $mercenariesTitle to bring in a rapid-response bomb defusal team">> - <<replace "#result">> - You immediately call for your $mercenariesTitle to send a bomb defusal team to the lab, and be ready to fight with the saboteurs on arrival. In the few minutes it takes for them to assemble a QRF and send it rocketing up to your laboratory, the saboteurs have already planted their bomb and vanished out the genelab's doors, disappearing into the dead of night. The mercenary team arrives shortly afterwards, bursts through the doors, and disables the ticking bomb with less than a minute left on the clock. Panting and sweating with nerves rather than fatigue, one of them flashes you a thumbs-up over the security cameras. Crisis narrowly averted. - <<set $projectN.status = 5>> - <</replace>> -<</link>> + <br> <<link "Send for your $mercenariesTitle to bring in a rapid-response bomb defusal team">> + <<replace "#result">> + You immediately call for your $mercenariesTitle to send a bomb defusal team to the lab, and be ready to fight with the saboteurs on arrival. In the few minutes it takes for them to assemble a QRF and send it rocketing up to your laboratory, the saboteurs have already planted their bomb and vanished out the genelab's doors, disappearing into the dead of night. The mercenary team arrives shortly afterwards, bursts through the doors, and disables the ticking bomb with less than a minute left on the clock. Panting and sweating with nerves rather than fatigue, one of them flashes you a thumbs-up over the security cameras. Crisis narrowly averted. + <<set $projectN.status = 5>> + <</replace>> + <</link>> <</if>> <br> <<link "Desperately try to make it to the lab yourself in time">> <<replace "#result">> diff --git a/src/Mods/Catmod/interaction/fPet.js b/src/Mods/Catmod/interaction/fPet.js index a594e0f6a403124176d3d7295698fc62f2208467..ed7c892e707e6511161b75af228384822d1c1498 100644 --- a/src/Mods/Catmod/interaction/fPet.js +++ b/src/Mods/Catmod/interaction/fPet.js @@ -54,7 +54,7 @@ App.Interact.fPet = function(slave) { r.push(Spoken(slave, `"Why'd you stop, ${Master}? Can I suck you off so you keep going?"`)); } } else if (slave.devotion > 50) { - r.push(`The cat${girl} presents ${his} back to you eagerly for petting, purring softly as you stroke your hand up and down ${his} soft fur. It's easy to let your hand practically get lost in the silky material, especially since the eager cat does all ${he} can to keep your hand runnng up and down ${his} spine in tender petting motions. When you finally retract your hand, ${slave.slaveName} bats ${his} eyelashes at you, still purring a little.`); + r.push(`The cat${girl} presents ${his} back to you eagerly for petting, purring softly as you stroke your hand up and down ${his} soft fur. It's easy to let your hand practically get lost in the silky material, especially since the eager cat does all ${he} can to keep your hand running up and down ${his} spine in tender petting motions. When you finally retract your hand, ${slave.slaveName} bats ${his} eyelashes at you, still purring a little.`); if (!hasAnyArms(slave) && !canTalk(slave)) { r.push(`${His}`); if (canSee(slave)) { @@ -71,7 +71,7 @@ App.Interact.fPet = function(slave) { r.push(Spoken(slave, `"That felt great, ${Master}. Can you pet me more often?"`)); } } else if (slave.devotion > 20) { - r.push(`The cat${girl} puts up a little facade of resistance, but just about immediately melts into your hands, giving you a full range of motion to pet and rub at ${his} silky fur. ${He} lets you pet along the full length of ${his} spine, rubbing under ${his} chin and exploring the curves of ${his} ass and breasts in a way that's, for once, entirely nonsexual. After about a minute, ${he} starts to purr at your petting, rumbling against your chest, and ${he} flutters ${his} eyelashes wistfully when you finally remove your hand.`); + r.push(`The cat${girl} puts up a little façade of resistance, but just about immediately melts into your hands, giving you a full range of motion to pet and rub at ${his} silky fur. ${He} lets you pet along the full length of ${his} spine, rubbing under ${his} chin and exploring the curves of ${his} ass and breasts in a way that's, for once, entirely nonsexual. After about a minute, ${he} starts to purr at your petting, rumbling against your chest, and ${he} flutters ${his} eyelashes wistfully when you finally remove your hand.`); if (!hasAnyArms(slave) && !canTalk(slave)) { r.push(`${His}`); if (canSee(slave)) { @@ -123,7 +123,7 @@ App.Interact.fPet = function(slave) { r.push(Spoken(slave, `"I-Is that it, ${Master}..?"`)); } } else { - r.push(`The cat${girl} puts up a little facade of resistance, but doesn't really fight back against your petting, giving you a full range of motion to pet and rub at ${his} silky fur. ${He} lets you pet along the full length of ${his} spine, rubbing under ${his} chin and exploring the curves of ${his} ass and breasts in a way that's, for once, entirely nonsexual. Despite ${himself}, ${he} can't help but to purr a little by the time you finally remove ${his} hands.`); + r.push(`The cat${girl} puts up a little façade of resistance, but doesn't really fight back against your petting, giving you a full range of motion to pet and rub at ${his} silky fur. ${He} lets you pet along the full length of ${his} spine, rubbing under ${his} chin and exploring the curves of ${his} ass and breasts in a way that's, for once, entirely nonsexual. Despite ${himself}, ${he} can't help but to purr a little by the time you finally remove ${his} hands.`); if (!hasAnyArms(slave) && !canTalk(slave)) { r.push(`${His}`); if (canSee(slave)) { diff --git a/src/endWeek/reports/cellblockReport.js b/src/endWeek/reports/cellblockReport.js index 9bff75724a86087fc510c1f0a583f880efd0b4a0..3a3e58683bbc7485cab5730c7d579ec1fd3cf0e4 100644 --- a/src/endWeek/reports/cellblockReport.js +++ b/src/endWeek/reports/cellblockReport.js @@ -103,7 +103,7 @@ App.EndWeek.cellblockReport = function() { devBonus--; trustMalus--; idleBonus--; - r.push(`${His} kindness sometimes shows through ${his} tough facade, letting prisoners get off easier than they should.`); + r.push(`${His} kindness sometimes shows through ${his} tough façade, letting prisoners get off easier than they should.`); } if (S.Wardeness.dick > 2 && canPenetrate(S.Wardeness)) { devBonus++; diff --git a/src/endWeek/reports/clinicReport.js b/src/endWeek/reports/clinicReport.js index 9e4a859019413ade5748acd9d606cc76e9aef95a..880417468ff838174f6c08124bc1d6de8a92c0ab 100644 --- a/src/endWeek/reports/clinicReport.js +++ b/src/endWeek/reports/clinicReport.js @@ -205,7 +205,7 @@ App.EndWeek.clinicReport = function() { } else if (hasAnyArms(slave)) { r.push(`feel ${his2} belly pushing further and further out with life beneath ${his2} fingers.`); } else { - r.push(`feel the every growing pressure inside ${his2} abdomen.`); + r.push(`feel the ever growing pressure inside ${his2} abdomen.`); } r.push(`Careful attention, along with numerous drug injections, are used to make sure ${his2} body is able to safely adjust to ${his2} pregnancy's rapid growth.`); healthDamage(slave, 10); diff --git a/src/endWeek/saRecruitGirls.js b/src/endWeek/saRecruitGirls.js index 059a93633372fd88d67191c41b9c1872a88b3acc..78b2233eded12b68103d512152b450aab962fe05 100644 --- a/src/endWeek/saRecruitGirls.js +++ b/src/endWeek/saRecruitGirls.js @@ -182,7 +182,7 @@ App.SlaveAssignment.recruitGirls = (function() { if (arcology.FSSubjugationistRace === targetArcology.FSSubjugationistRace) { r.push(`${He} advances its racially aligned`); if (slave.race === targetArcology.FSSubjugationistRace) { - r.push(`Subjugationism, which ${he}'s very appropriate for, since ${he}'s a ${slave.race} slave ${himself}.`); + r.push(`Subjugationism, which ${he}'s very appropriate for, since ${he}'s ${addA(slave.race)} slave ${himself}.`); targetArcology.FSSubjugationist++; } else { r.push(`Subjugationism.`); @@ -191,7 +191,7 @@ App.SlaveAssignment.recruitGirls = (function() { } else { r.push(`${He} challenges its racially mismatched`); if (slave.race !== targetArcology.FSSubjugationistRace) { - r.push(`Subjugationism, which ${he}'s very appropriate for, since ${he}'s a ${slave.race} slave.`); + r.push(`Subjugationism, which ${he}'s very appropriate for, since ${he}'s ${addA(slave.race)} slave.`); targetArcology.FSSubjugationist--; } else { r.push(`Subjugationism.`); @@ -201,7 +201,7 @@ App.SlaveAssignment.recruitGirls = (function() { } else if (targetArcology.FSSupremacist !== "unset" && arcology.FSSubjugationistRace === targetArcology.FSSupremacistRace) { r.push(`${He} challenges its opposing`); if (slave.race === targetArcology.FSSubjugationistRace) { - r.push(`Supremacism, which ${he}'s very appropriate for, since ${he}'s a ${slave.race} slave ${himself}.`); + r.push(`Supremacism, which ${he}'s very appropriate for, since ${he}'s ${addA(slave.race)} slave ${himself}.`); targetArcology.FSSupremacist--; } else { r.push(`Supremacism.`); @@ -214,7 +214,7 @@ App.SlaveAssignment.recruitGirls = (function() { if (arcology.FSSupremacistRace === targetArcology.FSSupremacistRace) { r.push(`${He} advances its racially aligned`); if (slave.race !== targetArcology.FSSupremacistRace) { - r.push(`Supremacism, which ${he}'s very appropriate for, since ${he}'s a ${slave.race} slave ${himself}.`); + r.push(`Supremacism, which ${he}'s very appropriate for, since ${he}'s ${addA(slave.race)} slave ${himself}.`); targetArcology.FSSupremacist++; } else { r.push(`Supremacism.`); @@ -223,7 +223,7 @@ App.SlaveAssignment.recruitGirls = (function() { } else { r.push(`${He} challenges its racially mismatched`); if (slave.race === targetArcology.FSSupremacistRace) { - r.push(`Supremacism, which ${he}'s very appropriate for, since ${he}'s a ${slave.race} slave.`); + r.push(`Supremacism, which ${he}'s very appropriate for, since ${he}'s ${addA(slave.race)} slave.`); targetArcology.FSSupremacist--; } else { r.push(`Supremacism.`); @@ -233,7 +233,7 @@ App.SlaveAssignment.recruitGirls = (function() { } else if (targetArcology.FSSubjugationist !== "unset" && arcology.FSSupremacistRace === targetArcology.FSSubjugationistRace) { r.push(`${He} challenges its opposing`); if (slave.race !== targetArcology.FSSupremacistRace) { - r.push(`Subjugationism, which ${he}'s very appropriate for, since ${he}'s a ${slave.race} slave ${himself}.`); + r.push(`Subjugationism, which ${he}'s very appropriate for, since ${he}'s ${addA(slave.race)} slave ${himself}.`); targetArcology.FSSubjugationist--; } else { r.push(`Subjugationism.`); @@ -1059,7 +1059,7 @@ App.SlaveAssignment.recruitGirls = (function() { FSdefend++; arcology.FSSubjugationist += 0.01 * V.FSSingleSlaveRep * FSIntMod; if (slave.race === arcology.FSSubjugationistRace) { - pushFS(`It's always a pleasure to hear a ${slave.race} slave admit to all the failings for which ${his} kind need to be taken in hand.`); + pushFS(`It's always a pleasure to hear ${addA(slave.race)} slave admit to all the failings for which ${his} kind need to be taken in hand.`); arcology.FSSubjugationist += 0.01 * V.FSSingleSlaveRep; } } else if (slave.race !== arcology.FSSupremacistRace) { diff --git a/src/endWeek/saSocialEffects.js b/src/endWeek/saSocialEffects.js index 105927457cb6151899aaae7b7412b2eabf48c6cd..272eb690df892cbef3bbde34438a7efd798c320d 100644 --- a/src/endWeek/saSocialEffects.js +++ b/src/endWeek/saSocialEffects.js @@ -63,7 +63,7 @@ App.SlaveAssignment.saSocialEffects = function(slave) { } if (slave.fuckdoll > 0) { t.push(new SocialEffect("Supremacist", -2, "Superior race fuckdoll", - `Society <span class="red">strongly disapproves</span> of your owning a ${V.arcologies[0].FSSupremacistRace} Fuckdoll.`)); + `Society <span class="red">strongly disapproves</span> of your owning ${addA(V.arcologies[0].FSSupremacistRace)} Fuckdoll.`)); } } else { t.push(new SocialEffect("Supremacist", 1, "Inferior race slave", @@ -103,7 +103,7 @@ App.SlaveAssignment.saSocialEffects = function(slave) { const dad = findFather(slave.pregSource); if (dad && dad.race === V.arcologies[0].FSSubjugationistRace) { t.push(new SocialEffect("Subjugationist", -2, "Miscegenation", - `Society <span class="red">strongly disapproves</span> of your allowing ${slave.slaveName} to be miscegenated by a ${V.arcologies[0].FSSubjugationistRace} subhuman like ${dad.slaveName}.`)); + `Society <span class="red">strongly disapproves</span> of your allowing ${slave.slaveName} to be miscegenated by ${addA(V.arcologies[0].FSSubjugationistRace)} subhuman like ${dad.slaveName}.`)); } } } diff --git a/src/events/RE/reMalefactor.js b/src/events/RE/reMalefactor.js index 4701464121aa3f1e9c46a5e9003eb99cc151f258..1bec14b99df59f0397ed48ba8cd54a037da83f5e 100644 --- a/src/events/RE/reMalefactor.js +++ b/src/events/RE/reMalefactor.js @@ -126,7 +126,7 @@ App.Events.REMalefactor = class REMalefactor extends App.Events.BaseEvent { cashX(forceNeg(1000), "event", slave); break; case "passfail": - r.push(`Nevertheless, it seems one of your tenants, a rather ordinary white collar worker, has been severely wounded in a freak industrial accident, to the point that a blood transfusion was needed. In the course of doing so, an arcology hospital's autosurgery noted several genetic discrepancies and alerted a few nearby drones. Simply put, while the ${woman} appears to be a normal ${fakeRace} ${woman}, this is the result of numerous cosmetic surgeries; ${he} is actually ${realRace}. The laws of your arcology hold that members of the ${realRace} race are fit only for slavery, quite unlike the superior ${fakeRace} people. That a ${realRace} ${girl} would gain a position of relatively high class and power through such deception and fraud is considered an outrage by many of your citizens, and so ${he} was placed under arrest before ${he} even awoke from surgery. ${He} is now entirely at your mercy.`); + r.push(`Nevertheless, it seems one of your tenants, a rather ordinary white collar worker, has been severely wounded in a freak industrial accident, to the point that a blood transfusion was needed. In the course of doing so, an arcology hospital's autosurgery noted several genetic discrepancies and alerted a few nearby drones. Simply put, while the ${woman} appears to be a normal ${fakeRace} ${woman}, this is the result of numerous cosmetic surgeries; ${he} is actually ${realRace}. The laws of your arcology hold that members of the ${realRace} race are fit only for slavery, quite unlike the superior ${fakeRace} people. That a ${addA(realRace)} ${girl} would gain a position of relatively high class and power through such deception and fraud is considered an outrage by many of your citizens, and so ${he} was placed under arrest before ${he} even awoke from surgery. ${He} is now entirely at your mercy.`); } const contractCost = 1000; diff --git a/src/events/assistant/assistantFS.js b/src/events/assistant/assistantFS.js index f4361e5403c1a59bf83ba26681cd9943903cd183..b083be8bc3144aa6ec2af6868d57306c74edae07 100644 --- a/src/events/assistant/assistantFS.js +++ b/src/events/assistant/assistantFS.js @@ -1161,7 +1161,7 @@ App.Events.assistantFS = class assistantFS extends App.Events.BaseEvent { } else if (V.arcologies[0].FSRomanRevivalist !== "unset") { r.push(`adjusts ${hisA} outfit to resemble a proper upper-class Roman lady to conform with your vision of building a new Rome.`); } else if (V.arcologies[0].FSNeoImperialist !== "unset") { - r.push(`adjusts ${hisA} outfit to resemble a high-tech woman bearing your crest to conform with your vision of a new Imperial society.`); + r.push(`adjusts ${hisA} outfit to resemble a high-tech ${womanA} bearing your crest to conform with your vision of a new Imperial society.`); } else if (V.arcologies[0].FSAztecRevivalist !== "unset") { r.push(`adjusts ${hisA} outfit to resemble a high standing Aztec priestess to conform with your vision of building a new Aztec Empire.`); } else if (V.arcologies[0].FSEgyptianRevivalist !== "unset") { @@ -1175,7 +1175,7 @@ App.Events.assistantFS = class assistantFS extends App.Events.BaseEvent { } else if (V.arcologies[0].FSSupremacist !== "unset") { r.push(`adjusts ${hisA} appearance to resemble a model ${V.arcologies[0].FSSupremacistRace} student to conform with your vision of glorifying the superior race.`); } else if (V.arcologies[0].FSSubjugationist !== "unset") { - r.push(`adjusts ${hisA} appearance to resemble a ${V.arcologies[0].FSSubjugationistRace} foreign exchange student to conform with your vision of subjugating the inferior race.`); + r.push(`adjusts ${hisA} appearance to resemble ${addA(V.arcologies[0].FSSubjugationistRace)} foreign exchange student to conform with your vision of subjugating the inferior race.`); } } diff --git a/src/events/nonRandom/rival/pRivalryActions.js b/src/events/nonRandom/rival/pRivalryActions.js index 712552ed9f8301529b9c055e77595ed9d1344b48..5ba526daec55df3480f61b748302438a4a896300 100644 --- a/src/events/nonRandom/rival/pRivalryActions.js +++ b/src/events/nonRandom/rival/pRivalryActions.js @@ -1922,8 +1922,8 @@ App.Events.pRivalryActions = function() { V.hostage.counter.vaginal += 10; V.hostage.counter.anal += 10; hostageAction.push(`struggling to escape the grasp of a pair of ${V.arcologies[0].FSSubjugationistRace} ${girlU}s.`); - hostageAction.push(`struggling to avoid giving an ${V.arcologies[0].FSSubjugationistRace} ${girlU} oral.`); - hostageAction.push(`screaming as ${he} gets fucked by an ${V.arcologies[0].FSSubjugationistRace} ${girlU}.`); + hostageAction.push(`struggling to avoid giving ${addA(V.arcologies[0].FSSubjugationistRace)} ${girlU} oral.`); + hostageAction.push(`screaming as ${he} gets fucked by ${addA(V.arcologies[0].FSSubjugationistRace)} ${girlU}.`); } else if (V.rivalryDuration <= 10) { V.hostage.trust -= 5; V.hostage.devotion -= 5; @@ -1932,8 +1932,8 @@ App.Events.pRivalryActions = function() { V.hostage.counter.vaginal += 10; V.hostage.counter.anal += 10; hostageAction.push(`crying gently while a pair of ${V.arcologies[0].FSSubjugationistRace} ${girlU}s fondle ${him}.`); - hostageAction.push(`reluctantly giving an ${V.arcologies[0].FSSubjugationistRace} ${girlU} oral.`); - hostageAction.push(`crying as ${he} gets fucked by an ${V.arcologies[0].FSSubjugationistRace} ${girlU}.`); + hostageAction.push(`reluctantly giving ${addA(V.arcologies[0].FSSubjugationistRace)} ${girlU} oral.`); + hostageAction.push(`crying as ${he} gets fucked by ${addA(V.arcologies[0].FSSubjugationistRace)} ${girlU}.`); } else if (V.rivalryDuration <= 15) { V.hostage.trust -= 5; V.hostage.devotion -= 5; @@ -1942,8 +1942,8 @@ App.Events.pRivalryActions = function() { V.hostage.counter.vaginal += 20; V.hostage.counter.anal += 20; hostageAction.push(`fooling around with a pair of ${V.arcologies[0].FSSubjugationistRace} ${girlU}s.`); - hostageAction.push(`giving an ${V.arcologies[0].FSSubjugationistRace} ${girlU} oral.`); - hostageAction.push(`panting as ${he} gets fucked by an ${V.arcologies[0].FSSubjugationistRace} ${girlU}.`); + hostageAction.push(`giving ${addA(V.arcologies[0].FSSubjugationistRace)} ${girlU} oral.`); + hostageAction.push(`panting as ${he} gets fucked by ${addA(V.arcologies[0].FSSubjugationistRace)} ${girlU}.`); } else if (V.rivalryDuration <= 20) { V.hostage.trust -= 5; V.hostage.devotion -= 5; @@ -1951,15 +1951,15 @@ App.Events.pRivalryActions = function() { V.hostage.counter.vaginal += 40; V.hostage.counter.anal += 20; hostageAction.push(`having a threesome with a pair of ${V.arcologies[0].FSSubjugationistRace} ${girlU}s.`); - hostageAction.push(`eagerly giving an ${V.arcologies[0].FSSubjugationistRace} ${girlU} oral.`); - hostageAction.push(`moaning as ${he} gets fucked by an ${V.arcologies[0].FSSubjugationistRace} ${girlU}.`); + hostageAction.push(`eagerly giving ${addA(V.arcologies[0].FSSubjugationistRace)} ${girlU} oral.`); + hostageAction.push(`moaning as ${he} gets fucked by ${addA(V.arcologies[0].FSSubjugationistRace)} ${girlU}.`); } else { V.hostage.counter.oral += 50; V.hostage.counter.vaginal += 50; V.hostage.counter.anal += 50; hostageAction.push(`making love to ${his} favorite two ${V.arcologies[0].FSSubjugationistRace} ${girlU}s.`); - hostageAction.push(`enthusiastically giving an ${V.arcologies[0].FSSubjugationistRace} ${girlU} oral.`); - hostageAction.push(`enthusiastically wiggling ${his} rear as ${he} gets fucked by an ${V.arcologies[0].FSSubjugationistRace} ${girlU}.`); + hostageAction.push(`enthusiastically giving ${addA(V.arcologies[0].FSSubjugationistRace)} ${girlU} oral.`); + hostageAction.push(`enthusiastically wiggling ${his} rear as ${he} gets fucked by ${addA(V.arcologies[0].FSSubjugationistRace)} ${girlU}.`); } break; case "Racial Supremacism": diff --git a/src/facilities/farmyard/shows/saFarmyardShows.js b/src/facilities/farmyard/shows/saFarmyardShows.js index c001dc7cb4ff3867b4f47c2c38e1e28c8ca72ca2..e264ddd7baf74266905bee2f709aca8b65303efc 100644 --- a/src/facilities/farmyard/shows/saFarmyardShows.js +++ b/src/facilities/farmyard/shows/saFarmyardShows.js @@ -38,7 +38,7 @@ App.Facilities.Farmyard.putOnShows = function(slave) { if (V.seeBestiality) { r.push(`Society <span class="reputation inc">approves</span> of the degradation you submit your ${arcology.FSSubjugationistRace} slaves to, and so ${he} earns you a bit more.`); } else { - r.push(`Fewer people want to go see a ${arcology.FSSubjugationistRace} slave put on a show, and so ${he} doesn't earn as much as ${he} otherwise could.`); + r.push(`Fewer people want to go see ${addA(arcology.FSSubjugationistRace)} slave put on a show, and so ${he} doesn't earn as much as ${he} otherwise could.`); } } else { r.push(`Society doesn't disapprove of ${him} not being ${arcology.FSSubjugationistRace}, but ${he} doesn't earn as much as ${he} would if ${he} was.`); diff --git a/src/js/vignettes.js b/src/js/vignettes.js index 8414cd2d17b8e338953ac2e81dabfd391c8deacd..956303df3a67a14381bfe11ea30364908a712442 100644 --- a/src/js/vignettes.js +++ b/src/js/vignettes.js @@ -1443,7 +1443,7 @@ globalThis.GetVignette = function(slave) { if (V.arcologies[0].FSSubjugationist !== "unset") { if (slave.race === V.arcologies[0].FSSubjugationistRace) { vignettes.push({ - text: `${he} had a bad time in general, since most of ${his} customers didn't care about a ${V.arcologies[0].FSSubjugationistRace} prostitute's health or well-being,`, + text: `${he} had a bad time in general, since most of ${his} customers didn't care about ${addA(V.arcologies[0].FSSubjugationistRace)} prostitute's health or well-being,`, type: "health", effect: -1, }); @@ -3447,7 +3447,7 @@ globalThis.GetVignette = function(slave) { if (V.arcologies[0].FSSubjugationist !== "unset") { if (slave.race === V.arcologies[0].FSSubjugationistRace) { vignettes.push({ - text: `${he} had a bad time in general, since most of the citizens who used ${him} didn't care about a ${V.arcologies[0].FSSubjugationistRace} prostitute's health or well-being,`, + text: `${he} had a bad time in general, since most of the citizens who used ${him} didn't care about ${addA(V.arcologies[0].FSSubjugationistRace)} prostitute's health or well-being,`, type: "health", effect: -1, }); diff --git a/src/npc/generate/newSlaveIntro.js b/src/npc/generate/newSlaveIntro.js index 01e098ca988324918d831d3360566d3a423af619..248d5e4d1744fba333cdad2cbb2a91f57f9b0060 100644 --- a/src/npc/generate/newSlaveIntro.js +++ b/src/npc/generate/newSlaveIntro.js @@ -537,7 +537,7 @@ App.UI.newSlaveIntro = function(slave, slave2, {tankBorn = false, momInterest = if (V.arcologies[0].FSSupremacist >= 50) { if (slave.origin === "You sentenced $him to enslavement as a punishment for defying local racial segregation laws.") { if (slave.race === V.arcologies[0].FSSupremacistRace) { - r.push(`${He} <span class="gold">rightfully fears for ${his} safety</span> now that you know that ${he} is a ${slave.origRace} merely pretending to be your arcology's favored race.`); + r.push(`${He} <span class="gold">rightfully fears for ${his} safety</span> now that you know that ${he} is ${addA(slave.origRace)} merely pretending to be your arcology's favored race.`); slave.trust -= 10; } } else if (slave.race === V.arcologies[0].FSSupremacistRace) { diff --git a/src/npc/interaction/fFeelings.js b/src/npc/interaction/fFeelings.js index f189264f9437c6e088ce23f97f5978c7c88a4582..5863524766284f2a43900e1c9ffc5ef2ec93a644 100644 --- a/src/npc/interaction/fFeelings.js +++ b/src/npc/interaction/fFeelings.js @@ -2046,9 +2046,9 @@ App.Interact.feelings = function(slave) { } if (V.arcologies[0].FSSubjugationist >= 10) { if (slave.race === V.arcologies[0].FSSubjugationistRace) { - r.push(Spoken(slave, `I know that as a ${V.arcologies[0].FSSubjugationistRace} slave, it's my proper place to serve.`)); + r.push(Spoken(slave, `I know that as ${addA(V.arcologies[0].FSSubjugationistRace)} slave, it's my proper place to serve.`)); } else { - r.push(Spoken(slave, `since I'm not a ${V.arcologies[0].FSSubjugationistRace} slave, I'm a little afraid I don't fit into your vision of the future.`)); + r.push(Spoken(slave, `since I'm not ${addA(V.arcologies[0].FSSubjugationistRace)} slave, I'm a little afraid I don't fit into your vision of the future.`)); } } if (V.arcologies[0].FSSupremacist >= 10) { diff --git a/src/npc/interaction/fondleButt.js b/src/npc/interaction/fondleButt.js index a4a94dd2040c472ba90e9e993d3481fb3aa753d6..1962ccbbd356e39cab382cbe8d02586c14beef1f 100644 --- a/src/npc/interaction/fondleButt.js +++ b/src/npc/interaction/fondleButt.js @@ -107,7 +107,13 @@ App.Interact.fondleButt = function(slave) { } else if (slave.butt <= 20) { r.push(`couch-like`); } - r.push(`buttocks a few hard smacks for good measure. ${His} face is in ecstasy as ${he} stands and turns to face you, gently rubbing the red spots on ${his} buttocks and looking at you hungrily as if ${he} wants more.`); + r.push(`buttocks a few hard smacks for good measure. ${His} face is in ecstasy as ${he} stands and turns to face you, gently rubbing the red spots on ${his} buttocks and`); + if (canSee(slave)) { + r.push(`looking at`); + } else { + r.push(`facing`); + } + r.push(`you hungrily as if ${he} wants more.`); } else if (slave.devotion > 50 && slave.anus === 0) { if (canStand(slave)) { r.push(`${He} accepts your orders happily and waves ${his} virgin anus to you, spreading ${his} butt cheeks in front of you with ${his} hands before turning to face you.`); @@ -162,7 +168,13 @@ App.Interact.fondleButt = function(slave) { } else if (slave.butt <= 20) { r.push(`couch-like`); } - r.push(`buttocks a gentle smack. ${He} turns to face you, kissing you, but looking at you longingly as if ${he} wants more.`); + r.push(`buttocks a gentle smack. ${He} turns to face you, kissing you, but`); + if (canSee(slave)) { + r.push(`looking at`); + } else { + r.push(`facing`); + } + r.push(`you longingly as if ${he} wants more.`); if (!hasAnyArms(slave) && !canTalk(slave)) { r.push(`${He} does ${his} best to communicate love with ${his} ${App.Desc.eyesColor(slave)}.`); } else if (!canTalk(slave)) { diff --git a/src/npc/interaction/fondleDick.js b/src/npc/interaction/fondleDick.js index 75beb924afdc2006be6d96aaecb5e61821206e1b..ca650c236e975ccce03d167368dee6701c6ee772 100644 --- a/src/npc/interaction/fondleDick.js +++ b/src/npc/interaction/fondleDick.js @@ -89,7 +89,13 @@ App.Interact.fondleDick = function(slave) { } else { r.push(`${His} prick stiffens like a rod in your hands and you continue your expert strokes along the erect shaft but, except for the cockmilk leaking out of ${his} dick, ${he} does not respond.`); } - r.push(`Soon, ${his} movements indicate that ${he} is orgasming. ${He} shudders and leaks ${his} cockmilk as ${he} orgasms in your hand, looking at you as you stop moving your hands. You leave your toy for one of your other slaves to clean and maintain.`); + r.push(`Soon, ${his} movements indicate that ${he} is orgasming. ${He} shudders and leaks ${his} cockmilk as ${he} orgasms in your hand,`); + if (canSee(slave)) { + r.push(`looking at`); + } else { + r.push(`facing`); + } + r.push(`you as you stop moving your hands. You leave your toy for one of your other slaves to clean and maintain.`); } else if (slave.fetish === "submissive" && slave.fetishStrength > 60 && slave.fetishKnown === 1) { r.push(`${He} comes submissively over, smiling a little submissive smile, and points ${his} dick towards you. You gently trace your fingers along ${his} ${dickDesc()} before taking it gently in one hand and tenderly stroking your hand along its`); strokeAndSqueeze(); diff --git a/src/npc/interaction/fondleVagina.js b/src/npc/interaction/fondleVagina.js index aee78367708ab2e79673088c0bbedc9edb333e38..444d1d1a0dc6e794691cdaf42cba192276319f2c 100644 --- a/src/npc/interaction/fondleVagina.js +++ b/src/npc/interaction/fondleVagina.js @@ -367,7 +367,13 @@ App.Interact.fondleVagina = function(slave) { if (!hasAnyArms(slave) && !hasBothLegs(slave)) { r.push(`squirms uncomfortably a little`); } - r.push(`as you continue to move your hand along ${his} pussy. ${He} moans as ${he} shudders in an orgasm, gripping tighter and shamefully looking at you as you stop moving your hand.`); + r.push(`as you continue to move your hand along ${his} pussy. ${He} moans as ${he} shudders in an orgasm, gripping tighter and shamefully`); + if (canSee(slave)) { + r.push(`looking at`); + } else { + r.push(`facing`); + } + r.push(`you as you stop moving your hand.`); } } else if (slave.fetish === "mindbroken") { r.push(`Like a doll, ${he} dumbly remains still,`); @@ -468,11 +474,11 @@ App.Interact.fondleVagina = function(slave) { } r.push(`as your hand nears it. Soon ${he} shudders in an orgasm,`); if (canSee(slave)) { - r.push(`looking at you`); + r.push(`looking at`); } else { r.push(`facing`); } - r.push(`as you stop moving your hand. You leave your toy for one of your other slaves to clean and maintain.`); + r.push(`you as you stop moving your hand. You leave your toy for one of your other slaves to clean and maintain.`); } else if (slave.fetish === "submissive" && slave.fetishStrength > 60 && slave.fetishKnown === 1) { r.push(`${He} comes submissively over, smiling a little submissive smile, and points ${his} pussy towards you${(slave.scrotum > 0) ? `, shifting ${his} balls out of the way and` : ``}. You gently trace along ${his}`); if (slave.labia === 1) { diff --git a/src/npc/interaction/passage/fSlaveSlaveDickConsummate.tw b/src/npc/interaction/passage/fSlaveSlaveDickConsummate.tw new file mode 100644 index 0000000000000000000000000000000000000000..cd224946456de3a66430e130df54a384d0fce0a4 --- /dev/null +++ b/src/npc/interaction/passage/fSlaveSlaveDickConsummate.tw @@ -0,0 +1,633 @@ +:: FSlaveSlaveDick Consummate [nobr] + +<<run App.Utils.setLocalPronouns(getSlave($AS))>> +<<setLocalPronouns $slaverapistx 2>> + +<<if getSlave($AS).dick>> + <<if getSlave($AS).dick == 1>> + <<set _dickSize = "tiny">> + <<elseif (getSlave($AS).dick == 2)>> + <<set _dickSize = "tiny">> + <<elseif (getSlave($AS).dick == 3)>> + <<set _dickSize = "average">> + <<elseif (getSlave($AS).dick == 4)>> + <<set _dickSize = "big">> + <<elseif (getSlave($AS).dick == 5)>> + <<set _dickSize = "huge">> + <<elseif (getSlave($AS).dick == 6)>> + <<set _dickSize = "gigantic">> + <<elseif (getSlave($AS).dick == 7)>> + <<set _dickSize = "titanic">> + <<elseif (getSlave($AS).dick == 8)>> + <<set _dickSize = "absurd">> + <<elseif (getSlave($AS).dick >= 9)>> + <<set _dickSize = "inhuman">> + <</if>> +<</if>> + +<<if areRelated(getSlave($AS), $slaverapistx)>> + <<set _isIncest = 1>> +<</if>> + +You take a look at the bound cock toy. + + +<<if (getSlave($AS).fetish == "mindbroken") && (getSlave($AS).career != "a dairy cow") && (getSlave($AS).career != "a breeding bull")>> + Since <<= getSlave($AS).slaveName>> is mentally broken, the restraints don't do anything but set the scene. +<<elseif (getSlave($AS).devotion > 50)>> + Since <<= getSlave($AS).slaveName>> is devoted, $his restraints are more for the show than for practical purposes. +<<elseif (getSlave($AS).devotion > 20)>> + <<= getSlave($AS).slaveName>> is obedient but not devoted, so $his restraints are firm for $his own good. +<<else>> + <<= getSlave($AS).slaveName>> is unlikely to comply willingly, and is tied down tight, unable to budge more than <<if $showInches == 2>>an inch<<else>>a centimeter<</if>>. +<</if>> + +<<if isAmputee(getSlave($AS))>> + $His limbless torso lies on the bed, ready for $slaverapistx.slaveName. +<<elseif tooBigBelly(getSlave($AS))>> + $His huge belly will limit the number of possible positions for $slaverapistx.slaveName to take $him in. +<<elseif tooBigBreasts(getSlave($AS))>> + The weight of $his tits pins $him helplessly in place. +<<elseif tooBigButt(getSlave($AS))>> + $His huge ass pushes $his pelvis further up, making it look as if $he's trying to fuck the air. +<<elseif tooBigDick(getSlave($AS))>> + $His huge cock is clearly going to be a challenge. +<<elseif tooBigBalls(getSlave($AS))>> + $His huge balls might get a bit in the way in this position. +<<elseif tooFatSlave(getSlave($AS))>> + $His huge gut threatens to envelope $his <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize cock<</if>>. +<</if>> + +<<if (getSlave($AS).fetish == "mindbroken") && (getSlave($AS).career != "a dairy cow") && (getSlave($AS).career != "a breeding bull")>> + <<if getSlave($AS).energy > 40>> + <<= getSlave($AS).slaveName>> is broken mentally, but has a serviceable libido. After a bit of stimulation $he's good to go without any further reaction on $his own. + <<else>> + <<= getSlave($AS).slaveName>> is broken mentally, and $his low libido prevents $his <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize penis<</if>> from becoming erect. A massive dose of vasodilators fixes this, and you think you see $his face twitch with the pain, but there is no further reaction. + <</if>> +<<elseif (getSlave($AS).fetish == "mindbroken") && (getSlave($AS).career == "a dairy cow")>> + <<if getSlave($AS).energy > 40>> + <<= getSlave($AS).slaveName>>, as a good cow with a good libido, takes only a little fondling before $his <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize penis<</if>> becomes erect. When you let go, $he gives a needy moo with a sad expression to ask you to keep going. + <<else>> + <<= getSlave($AS).slaveName>> may be a cow, but $his low libido keeps $his mostly soft despite plenty of fondling. You inject $him with vasodilators so $his <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize cock<</if>> becomes erect, and $he moos in discomfort and struggles against $his restraints. + <<set _bottomDrugged = 1>> + <</if>> +<<elseif (getSlave($AS).fetish == "mindbroken") && (getSlave($AS).career == "a breeding bull")>> + <<= getSlave($AS).slaveName>>, as a good bull, was already erect while being tied down. It seems $he knows what's going to happen to $him soon. Maybe someone at the Cattle Ranch has been sampling their bulls? +<<else>> + <<if getSlave($AS).devotion >= -20>> + <<if getSlave($AS).energy > 40>> + <<if (getSlave($AS).fetishKnown == 1)>> + <<if (getSlave($AS).fetish == "submissive")>> + <<= getSlave($AS).slaveName>> is a known sub, and seconds after $he is ordered to lie down to be restrained $his <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize cock<</if>> is erect. $He knows $he's going to get used, and can't hide $his excitement. + <<elseif (getSlave($AS).fetish == "dom")>> + <<= getSlave($AS).slaveName>> is a known dom, and needs some stimulation before $his <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize cock<</if>> becomes hard. Despite knowing $he's going to be used, $he can't hide $his curiosity to experience what the other side feels. + <<elseif (getSlave($AS).fetish == "masochist")>> + <<= getSlave($AS).slaveName>> almost gets off on being tied down tight, sporting a <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize erection<</if>> once you have finished. $His nipples are firm as well, and $he struggles against $his restraints to feel them dig into $him tighter. + <<elseif (getSlave($AS).fetish == "sadist")>> + <<= getSlave($AS).slaveName>> is a sadist, and finds $himself in the exact opposite position $he'd want to be in to get off. It's obvious $he's not going to get aroused soon, so you inject $him with vasodilators so $his <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize cock<</if>> becomes erect and hope $he at least learns something from being on the receiving end for once. + <<set _bottomDrugged = 1>> + <<elseif (getSlave($AS).fetish == "humiliation")>> + <<= getSlave($AS).slaveName>> gets off on humiliation, and after being ordered to lay naked on a bed to be tied down, becomes flushed with arousal with $his <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize cock<</if>> throbbing in anticipation at being used like a toy. + <<elseif (getSlave($AS).fetish == "pregnancy") && ($arcologies[0].FSRepopulationFocus != "unset") && canPenetrate(getSlave($AS))>> + <<= getSlave($AS).slaveName>> gets off thinking about pregnancy, and in your arcology most women are pregnant or fertile. $He knows someone's pussy will be around $his _dickSize cock soon, and is clearly lost in $his fantasies as $his cock swells to a throbbing erection. + <</if>> + <<elseif (getSlave($AS).attrXX > 65)>> + <<= getSlave($AS).slaveName>> has a good sex drive and likes pussy, even before $he's fully bound $his <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize cock<</if>> is throbbing in anticipation. + <<else>> + Despite $his adequate sex drive, since <<= getSlave($AS).slaveName>> isn't turned on by the prospect of pussy, $he takes some manual stimulation before $his <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize cock<</if>> stands erect. + <</if>> + <<else>> + <<if (getSlave($AS).attrXX > 65)>> + <<= getSlave($AS).slaveName>> isn't known for $his high libido, but since $he likes pussy all it takes is some teasing to get $his <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize cock<</if>> erect and ready. + <<else>> + <<= getSlave($AS).slaveName>> doesn't have a high libido, and also isn't attracted to female slaves. A dose of vasodilators injected at the base of $his <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize cock<</if>> causes $him to quickly reach painful readiness, and the unnatural pain makes $him strain at $his bonds. + <<set _bottomDrugged = 1>> + <</if>> + <</if>> + <<else>> + <<if getSlave($AS).energy > 60>> + <<if (getSlave($AS).attrXX > 65)>> + Although <<= getSlave($AS).slaveName>> does not like being a slave, $his high libido and love for pussy have $his <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize erection<</if>> ready for sex despite $his negative feelings. + <<else>> + <<= getSlave($AS).slaveName>> does not like being a slave, and isn't attracted to women, but with $his high libido all it takes is simple teasing for $his <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize cock<</if>> to be ready for sex. + <</if>> + <<else>> + <<= getSlave($AS).slaveName>> does not like being a slave, and without a high sex drive $he is able to resist stimulation and stay soft. A quick dose of vasodilators changes that, and $he moans in pain and struggles against $his bonds in vain as $his <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize cock<</if>> becomes painfully hard. + <<set _bottomDrugged = 1>> + <</if>> + <</if>> +<</if>> + +<br><br> + +You call $slaverapistx.slaveName into the room. + +<br><br> + +<<if (getSlave($AS).fetish == "mindbroken") && (getSlave($AS).career != "a dairy cow") && (getSlave($AS).career != "a breeding bull")>> + <<= getSlave($AS).slaveName>> doesn't even notice + <<if _isIncest == 1>> + <<if getSlave($AS).father == $slaverapistx.ID && getSlave($AS).mother == $slaverapistx.ID>> + the slave that is both $his mother and $his father, + <<elseif $slaverapistx.mother == $AS || $slaverapistx.father == $AS>> + $his own <<print relativeTerm(getSlave($AS), $slaverapistx)>>, + <<elseif getSlave($AS).mother == $slaverapistx.ID>> + $his own mother, + <<elseif getSlave($AS).father == $slaverapistx.ID>> + the slave that fathered $him, + <<else>> + $his <<print relativeTerm(getSlave($AS), $slaverapistx)>>, + <</if>> + <<else>> + the other slave, + <</if>> + and simply lays still. +<<elseif (getSlave($AS).fetish == "mindbroken") && ((getSlave($AS).career == "a dairy cow") || (getSlave($AS).career == "a breeding bull"))>> + <<if _isIncest == 1>> + <<= getSlave($AS).slaveName>>'s simple mind does not even acknowledge that $slaverapistx.slaveName is + <<if getSlave($AS).father == $slaverapistx.ID && getSlave($AS).mother == $slaverapistx.ID>> + the slave that is both $his mother and $his father, + <<elseif $slaverapistx.mother == $AS || $slaverapistx.father == $AS>> + $his own <<print relativeTerm(getSlave($AS), $slaverapistx)>>, + <<elseif getSlave($AS).mother == $slaverapistx.ID>> + $his own mother, + <<elseif getSlave($AS).father == $slaverapistx.ID>> + the slave that fathered $him, + <<else>> + $his <<print relativeTerm(getSlave($AS), $slaverapistx)>>, + <</if>> + <<else>> + <<= getSlave($AS).slaveName>> <<if canSee(getSlave($AS))>>sees<<elseif canHear(getSlave($AS))>>hears<<else>>dimly acknowledges<</if>> the newcomer, and with $his simple mind + <</if>> + $he only knows that they have a pussy and $his <<if (getSlave($AS).clit >= 4)>>swollen clit<<else>>_dickSize penis<</if>> is erect. Naturally, $he seems quite eager to put them together. + <<set _incestMood = "Bottom">> +<<else>> + <<= getSlave($AS).slaveName>> is fully naked and <<if canSee(getSlave($AS))>>looking up at<<else>>waiting in front of<</if>> + <<if _isIncest == 1>> + <<if getSlave($AS).father == $slaverapistx.ID && getSlave($AS).mother == $slaverapistx.ID>> + the slave that is both $his mother and $his father, + <<elseif $slaverapistx.mother == $AS || $slaverapistx.father == $AS>> + $his own <<print relativeTerm(getSlave($AS), $slaverapistx)>>, + <<elseif getSlave($AS).mother == $slaverapistx.ID>> + $his own mother, + <<elseif getSlave($AS).father == $slaverapistx.ID>> + the slave that fathered $him, + <<else>> + $his <<print relativeTerm(getSlave($AS), $slaverapistx)>>, + <</if>> + <<if (getSlave($AS).sexualQuirk == "perverted") || (getSlave($AS).sexualQuirk == "sinful")>> + <<set _incestMood = "Bottom">> + unable to hide $his intense arousal at the impending <<if ($slaverapistx.sexualQuirk == "perverted")>>perverted<<else>>sinful<</if>> act.<<if canSee(getSlave($AS))>> $His eyes are locked on $slaverapistx.slaveName's pussy, and<</if>> $slaverapistx.slaveName can hear $him moan in anticipation<<if !canSee(getSlave($AS))>>, which surprises the blind slave<</if>>. + <<elseif (getSlave($AS).relationshipTarget == $slaverapistx.ID) && (getSlave($AS).relationship > 2)>> + <<set _incestMood = "Both">> + but since they're already in a sexual relationship, $he just shows a relaxed smile as $he waits for $slaverapistx.slaveName to mount $him. + <<else>> + <<if getSlave($AS).devotion > 95>> + <<set _incestMood = "Bottom">> + but $his deep acceptance of slavery means $he is eager to please you, <<if (getSlave($AS).clit >= 4)>>leaving $his massive clit flushed<<else>>making $his _dickSize cock drip precum<</if>>. + <<elseif getSlave($AS).devotion > 60>> + and is clearly struggling between keeping $himself hard and acknowledging the incest. A small dose of vasodilators and $his impressive desire to please you should keep $his <<if (getSlave($AS).clit >= 4)>>clit<<else>>penis<</if>> up for $slaverapistx.slaveName. + <<set _incestMood = "BottomFragile">> + <<else>> + <<if ndef _bottomDrugged>> + and once it becomes clear to $him that $slaverapistx.slaveName will be the one mounting $him, $his <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize penis<</if>> shrinks away. A direct injection of vasodilators changes that, bringing $him back to readiness to $his horror. + <<set _bottomDrugged = 1>> + <<else>> + and to $his own horror the drugs $he was injected with keep $his <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize penis<</if>> ready and waiting. + <</if>> + <</if>> + <</if>> + <<else>> + <<if (getSlave($AS).relationshipTarget == $slaverapistx.ID)>> + $his <<print relationshipTerm(getSlave($AS), $slaverapistx)>>, + <<if (getSlave($AS).relationship > 2)>> + but since they're already in a sexual relationship, $he just shows a relaxed smile as $he waits for $slaverapistx.slaveName to mount $him. + <<elseif getSlave($AS).partners.includes($slaverapistx.ID)>> + but since they're already done it before, $he just shows a relaxed smile as $he waits for $slaverapistx.slaveName to mount $him. + <<else>> + whom $he hasn't had sex with yet. $He smiles nervously as $he waits for $slaverapistx.slaveName to mount $him. + <</if>> + <<elseif (getSlave($AS).rivalryTarget == $slaverapistx.ID)>> + $his <<print rivalryTerm(getSlave($AS), $slaverapistx)>>, $slaverapistx.slaveName. + <<if getSlave($AS).partners.includes($slaverapistx.ID)>> + They've already fucked in the past, and by $his reaction, unwillingly. A + <<else>> + $He doesn't much like what is to come, but a + <</if>> + direct injection of vasodilators fixes that, forcing $him to readiness, much to $his chagrin. + <<elseif (getSlave($AS).origBodyOwnerID == $slaverapistx.ID)>> + $slaverapistx.slaveName, who inhabits $his prior body. + <<if (getSlave($AS).sexualQuirk == "perverted")>> + $He's enough of a pervert to get off over getting mounted by $his own form, <<if (getSlave($AS).clit >= 4)>>leaving $his massive clit flushed<<else>>making $his _dickSize cock drip precum<</if>>. + <<elseif getSlave($AS).devotion > 95>> + $His deep acceptance of slavery means $he is eager to please you, <<if (getSlave($AS).clit >= 4)>>leaving $his massive clit flushed<<else>>making $his _dickSize cock drip precum<</if>>, despite how odd it is to fuck one's own body. + <<elseif getSlave($AS).devotion > 60>> + $He is clearly struggling to keep $himself hard while acknowledging $he is expected to fuck $his former body. A small dose of vasodilators and $his impressive desire to please you should keep $his <<if (getSlave($AS).clit >= 4)>>clit<<else>>penis<</if>> at attention. + <<else>> + <<if ndef _bottomDrugged>> + Once it becomes clear to $him that "$he'll" be the one mounting $him, $his <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize penis<</if>> shrinks away. A direct injection of vasodilators changes that, bringing $him back to readiness to $his horror. + <<set _bottomDrugged = 1>> + <<else>> + To $his own horror the drugs $he was injected with keep $his <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize penis<</if>> ready and waiting. + <</if>> + <</if>> + <<else>> + <<if getSlave($AS).devotion > 95>> + $His deep acceptance of slavery means $he is eager to please you, <<if (getSlave($AS).clit >= 4)>>leaving $his massive clit flushed<<else>>making $his _dickSize cock drip precum<</if>>, eager for $slaverapistx.slaveName. + <<elseif getSlave($AS).devotion > 60>> + $He is eager enough to please you that $his <<if (getSlave($AS).clit >= 4)>>clit<<else>>penis<</if>> is at attention and waiting for $slaverapistx.slaveName. + <<else>> + <<if ndef _bottomDrugged>> + Once it becomes clear to $him that $slaverapistx.slaveName be the one mounting $him, $his <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize penis<</if>> shrinks away. A direct injection of vasodilators changes that, bringing $him back to a proper hardness. + <<set _bottomDrugged = 1>> + <<else>> + To $his own horror the drugs $he was injected with keep $his <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize penis<</if>> ready and waiting. + <</if>> + <</if>> + <</if>> + <</if>> +<</if>> + +<br><br> + +<<if $slaverapistx.fetish == "mindbroken" && ($slaverapistx.career != "a dairy cow") && ($slaverapistx.career != "a breeding bull")>> + $slaverapistx.slaveName stares blankly, and needs to be deliberately guided to straddle <<= getSlave($AS).slaveName>>. + <<if _isIncest == 1>> + Naturally, _he2 isn't even aware of the impending incest. + <</if>> + <<if (getSlave($AS).fetish == "mindbroken") && (getSlave($AS).career != "a dairy cow") && (getSlave($AS).career != "a breeding bull")>> + Since both slaves are essentially vegetables, this is shaping up to be a rather contrived sexual demonstration. The parts are all there, but the actors aren't going to contribute much to the show. + <</if>> +<<elseif $slaverapistx.fetish == "mindbroken" && ($slaverapistx.career == "a dairy cow")>> + $slaverapistx.slaveName sees the <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize penis<</if>> ready and waiting, and catches on to why _he2's here quickly. _He2 takes it into _his2 mouth before you stop _him2 and tap _his2 pussy, and after a few seconds of thinking _he2 straddles <<= getSlave($AS).slaveName>>'s hips with a moo. + <<if _isIncest == 1>> + Naturally, since _he2 thinks _he2's a cow, incest means nothing to _him2. + <</if>> +<<elseif $slaverapistx.fetish == "mindbroken" && ($slaverapistx.career == "a breeding bull")>> + $slaverapistx.slaveName sees the <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize penis<</if>> ready and waiting, but isn't quite sure what to do with it. _He2's been brought up to use _his2 dick when thinking, after all. It takes a few minutes to get _him2 to straddle <<= getSlave($AS).slaveName>>'s hips with the intent to get _his2 pussy penetrated. + <<if _isIncest == 1>> + Naturally, since _he2 thinks _he2's a breeding bull, incest means nothing to _him2. + <</if>> +<<else>> + $slaverapistx.slaveName sees + <<if _isIncest == 1>> + <<if $slaverapistx.father == $AS && $slaverapistx.mother == $AS>> + the slave that is both _his2 mother and _his2 father + <<elseif getSlave($AS).mother == $slaverapistx.ID || getSlave($AS).father == $slaverapistx.ID>> + _his2 own <<print relativeTerm($slaverapistx, getSlave($AS))>> + <<elseif $slaverapistx.mother == $AS>> + _his2 own mother + <<elseif $slaverapistx.father == $AS>> + the slave that fathered _him2 + <<else>> + _his2 <<print relativeTerm($slaverapistx, getSlave($AS))>> + <</if>> + tied to the bed, + <<if ($slaverapistx.sexualQuirk == "perverted") || ($slaverapistx.sexualQuirk == "sinful")>> + <<if _incestMood == "Bottom">> + and can't hide _his2 <<if ($slaverapistx.sexualQuirk == "perverted")>>perverted<<else>>sinful<</if>> arousal at the excited glances they share. + <<set _incestMood = "Both">> + <<else>> + <<set _incestMood = "Top">> + and becomes indecently aroused at their horrified expressions for the <<if ($slaverapistx.sexualQuirk == "perverted")>>perverted<<else>>sinful<</if>> incest to come. + <</if>> + <<elseif ($slaverapistx.relationshipTarget == $AS) && ($slaverapistx.relationship > 2)>> + and licks _his2 lips involuntarily. + <<else>> + <<if $slaverapistx.devotion > 95>> + <<if _incestMood == "Bottom">> + as well as _his2 apparent lust. Since _he2 is a perfect slave for you, _his2 vagina becomes flushed with arousal quickly. + <<set _incestMood = "Both">> + <<else>> + <<set _incestMood = "Top">> + as well as $his worried expressions. $slaverapistx.slaveName seems aroused and determined to show $him how a proper slave should act. + <</if>> + <<elseif $slaverapistx.devotion > 60>> + <<if _incestMood == "BottomFragile">> + <<unset _incestMood>> + <</if>> + and after figuring out they're just as superficially prepared as _he2 is, resolves _himself2 to forget they're related to stay aroused. + <<else>> + and can't hide the look of horror that crosses _his2 face. You assure _him2 this is what _he2 needs to do. + <<if _incestMood == "Bottom">> + To _his2 growing disgust, _he2 can tell <<= getSlave($AS).slaveName>>'s <<if (getSlave($AS).clit >= 4)>>erect clit<<else>>_dickSize erection<</if>> shows off genuine arousal despite their blood relation. + <<else>> + _He2 might find solace in the fact that the owner of the <<if (getSlave($AS).clit >= 4)>>erect clit<<else>>_dickSize erection<</if>> on display doesn't seem thrilled as well. + <</if>> + <</if>> + <</if>> + <<else>> + <<if (getSlave($AS).relationshipTarget == $slaverapistx.ID)>> + $his <<print relationshipTerm(getSlave($AS), $slaverapistx)>> + <<elseif (getSlave($AS).rivalryTarget == $slaverapistx.ID)>> + $his <<print rivalryTerm(getSlave($AS), $slaverapistx)>> + <<elseif (getSlave($AS).origBodyOwnerID == $slaverapistx.ID)>> + $his former body + <<else>> + <<= getSlave($AS).slaveName>> + <</if>> + tied to the bed, + <<if ($slaverapistx.relationshipTarget == $AS && $slaverapistx.relationship > 2) || ($slaverapistx.rivalryTarget == $AS)>> + and licks _his2 lips involuntarily. + <<else>> + <<if $slaverapistx.devotion > 95>> + <<if _incestMood == "Bottom">> + as well as _his2 apparent lust. Since _he2 is a perfect slave for you, _his2 vagina becomes flushed with arousal quickly. + <<set _incestMood = "Both">> + <<else>> + <<set _incestMood = "Top">> + as well as $his worried expressions. $slaverapistx.slaveName seems aroused and determined to show $him how a proper slave should act. + <</if>> + <<elseif $slaverapistx.devotion > 20>> + <<if _incestMood == "BottomFragile">> + <<unset _incestMood>> + <</if>> + and after figuring out they're just as superficially prepared as _he2 is, resolves _himself2 to try and make it pleasurable. + <<else>> + and can't hide the look of horror that crosses _his2 face. You assure _him2 this is what _he2 needs to do. + <<if _incestMood == "Bottom">> + To _his2 growing disgust, _he2 can tell <<= getSlave($AS).slaveName>>'s <<if (getSlave($AS).clit >= 4)>>erect clit<<else>>_dickSize erection<</if>> shows off genuine arousal despite _his2 unwillingness. + <<else>> + _He2 might find solace in the fact that the owner of the <<if (getSlave($AS).clit >= 4)>>erect clit<<else>>_dickSize erection<</if>> on display doesn't seem thrilled as well. + <</if>> + <</if>> + <</if>> + <</if>> + + <<if _incestMood == "Top" || _incestMood == "Both" || ndef(_isIncest)>> + <<if ($slaverapistx.fetishKnown == 1)>> + <<if ($slaverapistx.fetish == "submissive")>> + $slaverapistx.slaveName usually prefers to be underneath someone with a <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize cock<</if>> like that, which is obvious in _his2 expressions. Knowing _he2's riding it due to someone's orders is just about the only detail that plays to _his2 fetish. + <<elseif ($slaverapistx.fetish == "dom")>> + $slaverapistx.slaveName can't hide _his2 domineering smile at the <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize cock<</if>> tied up and presented to _him2. Being on top and controlling everything is what gets _him2 off, and you just gave _him2 a nice human dildo to dominate. + <<elseif ($slaverapistx.fetish == "masochist")>> + $slaverapistx.slaveName usually prefers to be the one being abused, which is clear from _his2 disappointed reaction as _he2 considers the <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize erection<</if>> tied before _him2. Maybe _he2 can delude _himself2 into thinking this is a denial play for _himself2 and enjoy the human dildo, or maybe not. + <<elseif ($slaverapistx.fetish == "sadist")>> + $slaverapistx.slaveName is a sadist, and seeing a human dildo tied town for _him2 to abuse and enjoy has _him2 almost panting in arousal. The ecstatic look of devotion _he2 flashes you makes it clear _he2's going to enjoy _himself2, regardless of how the <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize cock<</if>>'s owner feels. + <<elseif ($slaverapistx.fetish == "humiliation")>> + $slaverapistx.slaveName usually gets off on humiliation, and you know _he2 wishes the roles were reversed here. Despite that, having _his2 <<= getWrittenTitle($slaverapistx)>> order _him2 to get _himself2 off with the human dildo beneath _him2 is quite thrilling, sexually. + <</if>> + <</if>> + <</if>> +<</if>> + +<br><br> + + +<<if (getSlave($AS).devotion < -20) && ($slaverapistx.devotion < -20)>> + Since you have two restrained slaves, it's up to you to do all the work. Since <<= getSlave($AS).slaveName>> is already lying on the bed, you maneuver $slaverapistx.slaveName's pussy into place. The two slaves make no further moves until you deal $slaverapistx.slaveName a terrific swat across the ass and promise to give _him2 more of the same until _he2 gets going. $slaverapistx.slaveName starts lowering _himself2 very slowly, pulling back every time <<= getSlave($AS).slaveName>>'s dick prods _his2 womanhood. After watching the sad display for a while, you grab _him2 by the hips and slam _him2 down onto <<= getSlave($AS).slaveName>>, hilting _him2 in one, scream-inducing move. + <<if ($slaverapistx.vagina == 0)>> /* losing virginity */ + <<if ($slaverapistx.devotion > 20)>> + $slaverapistx.slaveName accepts your orders without comment and lowers _his2 virgin pussy on <<= getSlave($AS).slaveName>>'s ready <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize dick<</if>>. @@.hotpink;$slaverapistx.slaveName is further broken to slavery@@ by this application of _his2 body, which naturally @@.lime;will break in _his2 pussy.@@ + <<set $slaverapistx.vagina = 1, $slaverapistx.devotion += 10>> + <<elseif ($slaverapistx.devotion >= -20)>> + $slaverapistx.slaveName is clearly unhappy at the idea of losing _his2 pearl of great price to <<= getSlave($AS).slaveName>>; this probably isn't what _he2 imagined _his2 first real sex would be like. _He2 fears _he2 might get pregnant. Nevertheless, @@.hotpink;$he is further broken to slavery@@ by this application of _his2 body, which naturally @@.lime;breaks in _his2 pussy.@@ + <<set $slaverapistx.vagina = 1, $slaverapistx.devotion += 4>> + <<else>> + As you anticipated, $slaverapistx.slaveName refuses to give <<= getSlave($AS).slaveName>> _his2 virginity. However, since $slaverapistx.slaveName is restrained _his2 resistance amounts to @@.mediumorchid;horrified tears@@ and @@.gold;frightened begging.@@ Naturally, this cruel act @@.lime;breaks in _his2 pussy.@@ + <<set $slaverapistx.vagina = 1, $slaverapistx.devotion -= 5, $slaverapistx.trust -= 5>> + <</if>> + <<if $slaverapistx.mother == $AS>> + <<if (getSlave($AS).counter.penetrative == 0)>> + <<= getSlave($AS).slaveName>> gasps and $his eyes widen as $he feels the tender folds of a pussy — and none other than $his <<print relativeTerm(getSlave($AS), $slaverapistx)>>'s — embracing $his <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize dick<</if>> for the first time. + <<else>> + <<= getSlave($AS).slaveName>>'s breath quickens as $his <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize dick<</if>> disappears into $his <<print relativeTerm(getSlave($AS), $slaverapistx)>>'s vagina. + <</if>> + <<elseif getSlave($AS).mother == $slaverapistx.ID>> + <<if (getSlave($AS).counter.penetrative == 0)>> + <<= getSlave($AS).slaveName>> gasps and $his eyes widen as $he feels the tender folds of a pussy — and none other than $his mother's — embracing $his <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize dick<</if>> for the first time. + <<else>> + <<= getSlave($AS).slaveName>>'s breath quickens as $his <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize dick<</if>> disappears into $his mother's vagina. + <</if>> + <</if>> + <</if>> /* closes losing virginity */ + $slaverapistx.slaveName seems more cooperative after that and you only have to occasionally prod them with an electrical jolt to keep them going at a faster pace. Both slaves resent what you made them do and fear you as a result. + +<<elseif (getSlave($AS).devotion < -20)>> + Since your dick slave is restrained, you order $slaverapistx.slaveName to kneel on the bed on top of <<= getSlave($AS).slaveName>>, and then maneuver _his2 pussy into place. <<= getSlave($AS).slaveName>> is uncooperative, so you prod and slap $him until $he starts to thrust $his cock into $slaverapistx.slaveName with urgency. + <<if ($slaverapistx.vagina == 0)>> /* losing virginity */ + <<if ($slaverapistx.devotion > 20)>> + $slaverapistx.slaveName accepts your orders without comment and lowers _his2 virgin pussy on <<= getSlave($AS).slaveName>>'s ready <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize dick<</if>>. @@.hotpink;$slaverapistx.slaveName is further broken to slavery@@ by this application of _his2 body, which naturally @@.lime;will break in _his2 pussy.@@ + <<set $slaverapistx.vagina = 1, $slaverapistx.devotion += 10>> + <<elseif ($slaverapistx.devotion >= -20)>> + $slaverapistx.slaveName is clearly unhappy at the idea of losing _his2 pearl of great price to <<= getSlave($AS).slaveName>>; this probably isn't what _he2 imagined _his2 first real sex would be like. _He2 fears _h2e might get pregnant. Nevertheless, @@.hotpink;$he is further broken to slavery@@ by this application of _his2 body, which naturally @@.lime;breaks in _his2 pussy.@@ + <<set $slaverapistx.vagina = 1, $slaverapistx.devotion += 4>> + <<else>> + As you anticipated, $slaverapistx.slaveName refuses to give <<= getSlave($AS).slaveName>> _his2 virginity. However, since $slaverapistx.slaveName is restrained _his2 resistance amounts to @@.mediumorchid;horrified tears@@ and @@.gold;frightened begging.@@ Naturally, this cruel act @@.lime;breaks in _his2 pussy.@@ + <<set $slaverapistx.vagina = 1, $slaverapistx.devotion -= 5, $slaverapistx.trust -= 5>> + <</if>> + <<if $slaverapistx.mother == $AS>> + <<if (getSlave($AS).counter.penetrative == 0)>> + <<= getSlave($AS).slaveName>> gasps and $his eyes widen as $he feels the tender folds of a pussy — and none other than $his <<print relativeTerm(getSlave($AS), $slaverapistx)>>'s — embracing $his <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize dick<</if>> for the first time. + <<else>> + <<= getSlave($AS).slaveName>>'s breath quickens as $his <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize dick<</if>> disappears into $his <<print relativeTerm(getSlave($AS), $slaverapistx)>>'s vagina. + <</if>> + <<elseif getSlave($AS).mother == $slaverapistx.ID>> + <<if (getSlave($AS).counter.penetrative == 0)>> + <<= getSlave($AS).slaveName>> gasps and $his eyes widen as $he feels the tender folds of a pussy — and none other than $his mother's — embracing $his <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize dick<</if>> for the first time. + <<else>> + <<= getSlave($AS).slaveName>>'s breath quickens as $his <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize dick<</if>> disappears into $his mother's vagina. + <</if>> + <</if>> + <</if>> /* closes losing virginity */ + It doesn't take long for <<= getSlave($AS).slaveName>> to orgasm. $He resents what you made $him do and fears you as a result. + +<<elseif ($slaverapistx.fetish == "dom") && ($slaverapistx.fetishStrength > 20) && ($slaverapistx.devotion > 20)>> + You tell the randy $slaverapistx.slaveName that <<= getSlave($AS).slaveName>>'s <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize dick<</if>> is all _hers2. The slave life has so affected $slaverapistx.slaveName that _he2 is quite eager to rape another slave for _his2 pleasure. + <<if $slaverapistx.vagina == 0>> + Without further instruction, $slaverapistx.slaveName lowers _his2 virgin pussy onto <<= getSlave($AS).slaveName>> waiting <<if (getSlave($AS).clit >= 4)>>clit-dick<<else>>_dickSize dick<</if>>, impaling _himself2 slowly and teasing _his2 bound victim. This act @@.lime;breaks in _his2 pussy.@@ + <<set $slaverapistx.vagina = 1, $slaverapistx.fetishStrength += 1>> + <</if>> + _He2 begins playing with _him2 immediately, fondling, pinching and licking while bouncing on the meaty shaft. Occasionally _he2 stops, denying <<= getSlave($AS).slaveName>> release and teasing $him, fully enjoying _his2 dominant role. + <<if getSlave($AS).dick > 0>> + <<if (getSlave($AS).fetish == "submissive")>> + By the end of the session <<= getSlave($AS).slaveName>>'s abused, pent-up penis has shot a massive load into $slaverapistx.slaveName's welcoming pussy. $He is glad to be dominated. + <<else>> + By the end of the session <<= getSlave($AS).slaveName>>'s abused, pent-up penis has shot a massive load, to $his horror and resentment, into the blissfully satisfied $slaverapistx.slaveName. + <</if>> + <</if>> + +<<elseif ($slaverapistx.fetish == "sadist") && ($slaverapistx.fetishStrength > 20) && (getSlave($AS).devotion < -20)>> + You tell the grinning $slaverapistx.slaveName that <<= getSlave($AS).slaveName>>'s <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize dick<</if>> is all _hers2. The slave life has so affected $slaverapistx.slaveName that _he2 is quite eager to hurt and rape another slave for _his2 pleasure. + <<if ($slaverapistx.vagina == 0)>> /* losing virginity */ + <<if ($slaverapistx.devotion > 20)>> + $slaverapistx.slaveName accepts your orders without comment and lowers _his2 virgin pussy on <<= getSlave($AS).slaveName>>'s ready <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize dick<</if>>. @@.hotpink;$slaverapistx.slaveName is further broken to slavery@@ by this application of _his2 body, which naturally @@.lime;will break in _his2 pussy.@@ + <<set $slaverapistx.vagina = 1, $slaverapistx.devotion += 10>> + <<elseif ($slaverapistx.devotion >= -20)>> + $slaverapistx.slaveName is clearly unhappy at the idea of losing _his2 pearl of great price to <<= getSlave($AS).slaveName>>; this probably isn't what _he2 imagined _his2 first real sex would be like. _He2 fears _he2 might get pregnant. Nevertheless, @@.hotpink;$he is further broken to slavery@@ by this application of _his2 body, which naturally @@.lime;breaks in _his2 pussy.@@ + <<set $slaverapistx.vagina = 1, $slaverapistx.devotion += 4>> + <<else>> + As you anticipated, $slaverapistx.slaveName refuses to give <<= getSlave($AS).slaveName>> _his2 virginity. However, since $slaverapistx.slaveName is restrained _his2 resistance amounts to @@.mediumorchid;horrified tears@@ and @@.gold;frightened begging.@@ Naturally, this cruel act @@.lime;breaks in _his2 pussy.@@ + <<set $slaverapistx.vagina = 1, $slaverapistx.devotion -= 5, $slaverapistx.trust -= 5>> + <</if>> + <<if $slaverapistx.mother == $AS>> + <<if (getSlave($AS).counter.penetrative == 0)>> + <<= getSlave($AS).slaveName>> gasps and $his eyes widen as $he feels the tender folds of a pussy — and none other than $his <<print relativeTerm(getSlave($AS), $slaverapistx)>>'s — embracing $his <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize dick<</if>> for the first time. + <<else>> + <<= getSlave($AS).slaveName>>'s breath quickens as $his <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize dick<</if>> disappears into $his <<print relativeTerm(getSlave($AS), $slaverapistx)>>'s vagina. + <</if>> + <<elseif getSlave($AS).mother == $slaverapistx.ID>> + <<if (getSlave($AS).counter.penetrative == 0)>> + <<= getSlave($AS).slaveName>> gasps and $his eyes widen as $he feels the tender folds of a pussy — and none other than $his mother's — embracing $his <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize dick<</if>> for the first time. + <<else>> + <<= getSlave($AS).slaveName>>'s breath quickens as $his <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize dick<</if>> disappears into $his mother's vagina. + <</if>> + <</if>> + <</if>> /* closes losing virginity */ + _He2 begins playing with $him immediately, slapping, pinching and licking $his boobs while bouncing on the meaty shaft. Occasionally _he2 stops, denying <<= getSlave($AS).slaveName>> release by painfully squeezing and smacking the sensitive shaft. By the end of the session <<= getSlave($AS).slaveName>>'s abused, pent-up penis has shot several massive and painful loads into the blissfully satisfied $slaverapistx.slaveName, leaving $him lying on the bed, shaking in horror and @@.health.dec;utter exhaustion,@@ while $slaverapistx.slaveName reaps the opportunity to continue painfully tormenting $him. + <<run healthDamage(getSlave($AS), 10)>> + <<set getSlave($AS).counter.penetrative += 3, $penetrativeTotal += 3, $slaverapistx.counter.vaginal += 3, $vaginalTotal += 3>> + +<<elseif ($slaverapistx.energy > 95) && ($slaverapistx.devotion > 20)>> + You tell the randy $slaverapistx.slaveName that <<= getSlave($AS).slaveName>>'s <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize dick<</if>> is all $hers. The slave life has so affected $slaverapistx.slaveName that _he2 is quite eager to rape another slave, just for the perverted novelty of the act. + <<if ($slaverapistx.vagina == 0)>> /* losing virginity */ + <<if ($slaverapistx.devotion > 20)>> + $slaverapistx.slaveName accepts your orders without comment and lowers _his2 virgin pussy on <<= getSlave($AS).slaveName>>'s ready <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize dick<</if>>. @@.hotpink;$slaverapistx.slaveName is further broken to slavery@@ by this application of _his2 body, which naturally @@.lime;will break in _his2 pussy.@@ + <<set $slaverapistx.vagina = 1, $slaverapistx.devotion += 10>> + <<elseif ($slaverapistx.devotion >= -20)>> + $slaverapistx.slaveName is clearly unhappy at the idea of losing _his2 pearl of great price to <<= getSlave($AS).slaveName>>; this probably isn't what _he2 imagined _his2 first real sex would be like. _He2 fears _he2 might get pregnant. Nevertheless, @@.hotpink;$he is further broken to slavery@@ by this application of _his2 body, which naturally @@.lime;breaks in _his2 pussy.@@ + <<set $slaverapistx.vagina = 1, $slaverapistx.devotion += 4>> + <<else>> + As you anticipated, $slaverapistx.slaveName refuses to give <<= getSlave($AS).slaveName>> _his2 virginity. However, since $slaverapistx.slaveName is restrained _his2 resistance amounts to @@.mediumorchid;horrified tears@@ and @@.gold;frightened begging.@@ Naturally, this cruel act @@.lime;breaks in _his2 pussy.@@ + <<set $slaverapistx.vagina = 1, $slaverapistx.devotion -= 5, $slaverapistx.trust -= 5>> + <</if>> + <<if $slaverapistx.mother == $AS>> + <<if (getSlave($AS).counter.penetrative == 0)>> + <<= getSlave($AS).slaveName>> gasps and $his eyes widen as $he feels the tender folds of a pussy — and none other than $his <<print relativeTerm(getSlave($AS), $slaverapistx)>>'s — embracing $his <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize dick<</if>> for the first time. + <<else>> + <<= getSlave($AS).slaveName>>'s breath quickens as $his <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize dick<</if>> disappears into $his <<print relativeTerm(getSlave($AS), $slaverapistx)>>'s vagina. + <</if>> + <<elseif getSlave($AS).mother == $slaverapistx.ID>> + <<if (getSlave($AS).counter.penetrative == 0)>> + <<= getSlave($AS).slaveName>> gasps and $his eyes widen as $he feels the tender folds of a pussy — and none other than $his mother's — embracing $his <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize dick<</if>> for the first time. + <<else>> + <<= getSlave($AS).slaveName>>'s breath quickens as $his <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize dick<</if>> disappears into $his mother's vagina. + <</if>> + <</if>> + <</if>> /* closes losing virginity */ + _He2 rides the helpless <<= getSlave($AS).slaveName>> through several ejaculating orgasms. In the short breaks between them, _he2 teases $his pussy. By the end of the session $slaverapistx.slaveName's cunt is dripping cum, to _his2 obvious satiation and bliss. <<= getSlave($AS).slaveName>> is lying next to _him2 on the bed in a state of fatigue, the entire experience having thoroughly exhausted $him. + <<set getSlave($AS).counter.penetrative += 3, $penetrativeTotal += 3, $slaverapistx.counter.vaginal += 3, $vaginalTotal += 3>> + +<<elseif (getSlave($AS).devotion <= 20) || ($slaverapistx.devotion <= 20)>> + You toss <<= getSlave($AS).slaveName>> onto the bed and tell $slaverapistx.slaveName to get on with it. + <<if ($slaverapistx.vagina == 0)>> /* losing virginity */ + <<if ($slaverapistx.devotion > 20)>> + $slaverapistx.slaveName accepts your orders without comment and lowers _his2 virgin pussy on <<= getSlave($AS).slaveName>>'s ready <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize dick<</if>>. @@.hotpink;$slaverapistx.slaveName is further broken to slavery@@ by this application of _his2 body, which naturally @@.lime;will break in _his2 pussy.@@ + <<set $slaverapistx.vagina = 1, $slaverapistx.devotion += 10>> + <<elseif ($slaverapistx.devotion >= -20)>> + $slaverapistx.slaveName is clearly unhappy at the idea of losing _his2 pearl of great price to <<= getSlave($AS).slaveName>>; this probably isn't what _he2 imagined _his2 first real sex would be like. _He2 fears _he2 might get pregnant. Nevertheless, @@.hotpink;_he2 is further broken to slavery@@ by this application of _his2 body, which naturally @@.lime;breaks in _his2 pussy.@@ + <<set $slaverapistx.vagina = 1, $slaverapistx.devotion += 4>> + <<else>> + As you anticipated, $slaverapistx.slaveName refuses to give <<= getSlave($AS).slaveName>> _his2 virginity. However, since $slaverapistx.slaveName is restrained _his2 resistance amounts to @@.mediumorchid;horrified tears@@ and @@.gold;frightened begging.@@ Naturally, this cruel act @@.lime;breaks in _his2 pussy.@@ + <<set $slaverapistx.vagina = 1, $slaverapistx.devotion -= 5, $slaverapistx.trust -= 5>> + <</if>> + <<if $slaverapistx.mother == $AS>> + <<if (getSlave($AS).counter.penetrative == 0)>> + <<= getSlave($AS).slaveName>> gasps and $his eyes widen as $he feels the tender folds of a pussy — and none other than $his <<print relativeTerm(getSlave($AS), $slaverapistx)>>'s — embracing $his <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize dick<</if>> for the first time. + <<else>> + <<= getSlave($AS).slaveName>>'s breath quickens as $his <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize dick<</if>> disappears into $his <<print relativeTerm(getSlave($AS), $slaverapistx)>>'s vagina. + <</if>> + <<elseif getSlave($AS).mother == $slaverapistx.ID>> + <<if (getSlave($AS).counter.penetrative == 0)>> + <<= getSlave($AS).slaveName>> gasps and $his eyes widen as $he feels the tender folds of a pussy — and none other than $his mother's — embracing $his <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize dick<</if>> for the first time. + <<else>> + <<= getSlave($AS).slaveName>>'s breath quickens as $his <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize dick<</if>> disappears into $his mother's vagina. + <</if>> + <</if>> + <</if>> /* closes losing virginity */ + They fuck mechanically, gazing with roiling emotions into each others' eyes. They do seem to come to some sort of a nonverbal understanding on the necessity of getting it done, and there is no real unhappiness in either of them when they finish and disentangle themselves. As they clean themselves and exit, you notice $slaverapistx.slaveName's <<if canSee($slaverapistx)>>looking a little more longingly at<<else>>acting a bit more softly with<</if>> <<= getSlave($AS).slaveName>>. + +<<elseif (getSlave($AS).devotion <= 50) || ($slaverapistx.devotion <= 50)>> + You order <<= getSlave($AS).slaveName>> and $slaverapistx.slaveName to get on with it. + <<if ($slaverapistx.vagina == 0)>> /* losing virginity */ + <<if ($slaverapistx.devotion > 20)>> + $slaverapistx.slaveName accepts your orders without comment and lowers _his2 virgin pussy on <<= getSlave($AS).slaveName>>'s ready <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize dick<</if>>. @@.hotpink;$slaverapistx.slaveName is further broken to slavery@@ by this application of _his2 body, which naturally @@.lime;will break in _his2 pussy.@@ + <<set $slaverapistx.vagina = 1, $slaverapistx.devotion += 10>> + <<elseif ($slaverapistx.devotion >= -20)>> + $slaverapistx.slaveName is clearly unhappy at the idea of losing _his2 pearl of great price to <<= getSlave($AS).slaveName>>; this probably isn't what _he2 imagined _his2 first real sex would be like. _He2 fears _he2 might get pregnant. Nevertheless, @@.hotpink;$he is further broken to slavery@@ by this application of _his2 body, which naturally @@.lime;breaks in _his2 pussy.@@ + <<set $slaverapistx.vagina = 1, $slaverapistx.devotion += 4>> + <<else>> + As you anticipated, $slaverapistx.slaveName refuses to give <<= getSlave($AS).slaveName>> _his2 virginity. However, since $slaverapistx.slaveName is restrained _his2 resistance amounts to @@.mediumorchid;horrified tears@@ and @@.gold;frightened begging.@@ Naturally, this cruel act @@.lime;breaks in _his2 pussy.@@ + <<set $slaverapistx.vagina = 1, $slaverapistx.devotion -= 5, $slaverapistx.trust -= 5>> + <</if>> + <<if $slaverapistx.mother == $AS>> + <<if (getSlave($AS).counter.penetrative == 0)>> + <<= getSlave($AS).slaveName>> gasps and $his eyes widen as $he feels the tender folds of a pussy — and none other than $his <<print relativeTerm(getSlave($AS), $slaverapistx)>>'s — embracing $his <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize dick<</if>> for the first time. + <<else>> + <<= getSlave($AS).slaveName>>'s breath quickens as $his <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize dick<</if>> disappears into $his <<print relativeTerm(getSlave($AS), $slaverapistx)>>'s vagina. + <</if>> + <<elseif getSlave($AS).mother == $slaverapistx.ID>> + <<if (getSlave($AS).counter.penetrative == 0)>> + <<= getSlave($AS).slaveName>> gasps and $his eyes widen as $he feels the tender folds of a pussy — and none other than $his mother's — embracing $his <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize dick<</if>> for the first time. + <<else>> + <<= getSlave($AS).slaveName>>'s breath quickens as $his <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize dick<</if>> disappears into $his mother's vagina. + <</if>> + <</if>> + <</if>> /* closes losing virginity */ + They fuck mechanically at first, gazing with roiling emotions into each others' eyes. Eventually, they begin to enjoy the intimacy of the act, finding the shared pleasure between them comforting. They finish and resume life as slaves, the light of this intimacy diminishing, softening with <<= getSlave($AS).slaveName>>'s <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize dick<</if>> and dripping away with the contents of $slaverapistx.slaveName's cum-filled pussy. You notice $slaverapistx.slaveName's <<if canSee($slaverapistx)>>looking a little more longingly at<<else>>acting a bit more softly with<</if>> <<= getSlave($AS).slaveName>>. + +<<else>> + The two slaves turn eagerly to the business of sex. + <<if ($slaverapistx.vagina == 0)>> /* losing virginity */ + <<if ($slaverapistx.devotion > 20)>> + $slaverapistx.slaveName accepts your orders without comment and lowers _his2 virgin pussy on <<= getSlave($AS).slaveName>>'s ready <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize dick<</if>>. @@.hotpink;$slaverapistx.slaveName is further broken to slavery@@ by this application of _his2 body, which naturally @@.lime;will break in _his2 pussy.@@ + <<set $slaverapistx.vagina = 1, $slaverapistx.devotion += 10>> + <<elseif ($slaverapistx.devotion >= -20)>> + $slaverapistx.slaveName is clearly unhappy at the idea of losing _his2 pearl of great price to <<= getSlave($AS).slaveName>>; this probably isn't what _he2 imagined _his2 first real sex would be like. _He2 fears _he2 might get pregnant. Nevertheless, @@.hotpink;$he is further broken to slavery@@ by this application of _his2 body, which naturally @@.lime;breaks in _his2 pussy.@@ + <<set $slaverapistx.vagina = 1, $slaverapistx.devotion += 4>> + <<else>> + As you anticipated, $slaverapistx.slaveName refuses to give <<= getSlave($AS).slaveName>> _his2 virginity. However, since $slaverapistx.slaveName is restrained _his2 resistance amounts to @@.mediumorchid;horrified tears@@ and @@.gold;frightened begging.@@ Naturally, this cruel act @@.lime;breaks in _his2 pussy.@@ + <<set $slaverapistx.vagina = 1, $slaverapistx.devotion -= 5, $slaverapistx.trust -= 5>> + <</if>> + <<if $slaverapistx.mother == $AS>> + <<if (getSlave($AS).counter.penetrative == 0)>> + <<= getSlave($AS).slaveName>> gasps and $his eyes widen as $he feels the tender folds of a pussy — and none other than $his <<print relativeTerm(getSlave($AS), $slaverapistx)>>'s — embracing $his <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize dick<</if>> for the first time. + <<else>> + <<= getSlave($AS).slaveName>>'s breath quickens as $his <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize dick<</if>> disappears into $his <<print relativeTerm(getSlave($AS), $slaverapistx)>>'s vagina. + <</if>> + <<elseif getSlave($AS).mother == $slaverapistx.ID>> + <<if (getSlave($AS).counter.penetrative == 0)>> + <<= getSlave($AS).slaveName>> gasps and $his eyes widen as $he feels the tender folds of a pussy — and none other than $his mother's — embracing $his <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize dick<</if>> for the first time. + <<else>> + <<= getSlave($AS).slaveName>>'s breath quickens as $his <<if (getSlave($AS).clit >= 4)>>massive clit<<else>>_dickSize dick<</if>> disappears into $his mother's vagina. + <</if>> + <</if>> + <</if>> /* closes losing virginity */ + $slaverapistx.slaveName happily rides <<= getSlave($AS).slaveName>>, who occasionally thrusts $his hips up. After a little while, when $slaverapistx.slaveName bends down to engage in passionate kissing, you come over and + <<if canDoAnal($slaverapistx) && $slaverapistx.anus > 0>> + penetrate $slaverapistx.slaveName's free asshole with your <<if $PC.dick != 0>>dick<<else>>strap-on<</if>>. With the extra stimulus of double penetration, _he2 comes indecently hard. The two of them collapse into an exhausted, satisfied pile of slave flesh. + <<set $slaverapistx.counter.anal++, $analTotal++>> + <<if canImpreg($slaverapistx, $PC)>> + <<= knockMeUp($slaverapistx, 5, 1, -1, 1)>> + <</if>> + <<elseif canDoVaginal(getSlave($AS))>> + penetrate <<= getSlave($AS).slaveName>>'s free pussy with your <<if $PC.dick != 0>>dick<<else>>strap-on<</if>>. With the double stimulus of penetrating a tight vagina and being penetrated while restrained, $he comes indecently hard. The two of them collapse into an exhausted, satisfied pile of slave flesh. + <<= VCheck.Vaginal(getSlave($AS), 1)>> + <<elseif canDoAnal(getSlave($AS))>> + penetrate <<= getSlave($AS).slaveName>>'s free asshole with your <<if $PC.dick != 0>>dick<<else>>strap-on<</if>>. With the double stimulus of penetrating a tight vagina and being penetrated while restrained, $he comes indecently hard. The two of them collapse into an exhausted, satisfied pile of slave flesh. + <<= VCheck.Anal(getSlave($AS), 1)>> + <<else>> + pull _his2 face to your crotch. All this penetration has got you horny and there are no free holes to fuck, so a little oral will have to do. It doesn't take long for all three of you to collapse into an exhausted, satisfied pile of flesh. + <<set $slaverapistx.counter.oral++, $oralTotal++>> + <</if>> +<</if>> + + +<br><br> + +<<set getSlave($AS).counter.penetrative += 1, $penetrativeTotal += 1, $slaverapistx.counter.vaginal += 1, $vaginalTotal += 1>> +<<run addPartner(getSlave($AS), $slaverapistx)>> + +/% Friendship/lust? %/ +<<if ([2].includes(getSlave($AS).relationship) && getSlave($AS).relationshipTarget == $slaverapistx.ID) && ([2].includes($slaverapistx.relationship) && $slaverapistx.relationshipTarget == $AS)>> + You keep <<= getSlave($AS).slaveName>>'s dick intimate with $slaverapistx.slaveName's pussy for awhile, something the two friends haven't been sharing with each other. In the end, you are certain they got closer, becoming @@.lightgreen;friends with benefits.@@ + <<set getSlave($AS).relationship++, $slaverapistx.relationship++>> +<</if>> + +/% pregnancy test %/ +<<if canImpreg($slaverapistx, getSlave($AS))>> + <<= knockMeUp($slaverapistx, 25, 0, $AS)>> +<</if>> + +/% save changes %/ +<<set $slaves[$slaveIndices[$slaverapistx.ID]] = $slaverapistx>> diff --git a/src/npc/startingGirls/startingGirls.js b/src/npc/startingGirls/startingGirls.js index 462ed7dcdc89dad4876057982dc2230c61d0662e..6d8a0a0fbbc4ccea21aec518bd38f24f7bdc7d96 100644 --- a/src/npc/startingGirls/startingGirls.js +++ b/src/npc/startingGirls/startingGirls.js @@ -1089,7 +1089,7 @@ App.StartingGirls.upper = function(slave, cheat = false) { ["Partially Inverted", "partially inverted"], ["Tiny", "tiny"], ["Cute", "cute"], - ["fuckable", "fuckable"], + ["Fuckable", "fuckable"], ]); if (slave.boobsImplant / slave.boobs >= 0.90) { option.addValue("Flat", "Cute"); diff --git a/src/personalAssistant/assistantAppearance.js b/src/personalAssistant/assistantAppearance.js index 373acc2d77a23f69e9b9064c0443e19f6ea27896..57882d1df60f4701f48ae6c2ef7cfcea67c6e3b9 100644 --- a/src/personalAssistant/assistantAppearance.js +++ b/src/personalAssistant/assistantAppearance.js @@ -1204,7 +1204,7 @@ globalThis.PersonalAssistantAppearance = function() { }, "preggololi": { "paternalist": `belly wearing a cute pink dress. The middle is stretched tight by ${hisA} growing belly.`, - "supremacist": `belly wearing a cute yellow dress. ${HeA} cradles ${hisA} swollen belly protectively, glowing with pride at carrying a ${V.arcologies[0].FSSupremacistRace} child.`, + "supremacist": `belly wearing a cute yellow dress. ${HeA} cradles ${hisA} swollen belly protectively, glowing with pride at carrying ${addA(V.arcologies[0].FSSupremacistRace)} child.`, "subjugationist": `belly, wearing nothing but a pregnancy biometrics collar. The collar's display reads 'Carrying 2 more ${V.arcologies[0].FSSubjugationistRace} subhumans!', something the ${girlA} occasionally reads aloud to ${himselfA}.`, "roman revivalist": `belly wearing a ${girlA}'s stola.`, "neoimperialist": `belly wearing a tiny elementary schooler's uniform, complete with miniature plaid skirt. ${HisA} belly swells underneath the cotton shirt.`, @@ -1451,7 +1451,7 @@ globalThis.PersonalAssistantAppearance = function() { r.push(`If ${heA} were real, ${heA} would make the perfect breeding stock for the next generation of the master race.`); return r.join(" "); }, - "subjugationist": `${HeA} still hasn't managed to undo the spell; ${heA} looks like a racist caricature of a ${V.arcologies[0].FSSubjugationistRace} ${girlA}, and has an appropriately demeaning accent to match. What's worse, the spell also seems to have stripped most of ${hisA} literacy in ${V.language}, making reading ${hisA} tomes an arduous task for ${himA}.`, + "subjugationist": `${HeA} still hasn't managed to undo the spell; ${heA} looks like a racist caricature of ${addA(V.arcologies[0].FSSubjugationistRace)} ${girlA}, and has an appropriately demeaning accent to match. What's worse, the spell also seems to have stripped most of ${hisA} literacy in ${V.language}, making reading ${hisA} tomes an arduous task for ${himA}.`, "roman revivalist": `While ${heA} acts like a typical Roman ${womanA}, ${heA} is pretty obviously Greek. ${HeA} can't even name the Pantheon correctly.`, "neoimperialist": `${HeA} looks like someone you would find selling "magical tokens" on the side of your neon-bathed streets, cybernetic trinkets adorning ${hisA} whole body.`, "aztec revivalist": `${HeA} is still very obviously not a native and has become rather caught up in the fear that ${heA}'ll soon be sacrificed.`, diff --git a/src/pregmod/FCTV/FCTV.js b/src/pregmod/FCTV/FCTV.js index ea21b50cee00aed29f1ff71a5642e5e6b08618cc..84a052a88b4c5cfe5fd74c2f296e7ff7b16f66be 100644 --- a/src/pregmod/FCTV/FCTV.js +++ b/src/pregmod/FCTV/FCTV.js @@ -390,7 +390,7 @@ globalThis.FctvDisplay = function() { if (availableEp > viewedCount) { // If we watched ep 0 last time, our view count will be 1. Now we can use 1 as our new ep, etc. epToShow = viewedCount; } else if (channel.loop === true) { - // How many times have we been through this series. Lets say we watched 10 episodes, but there are only 3 uniques [0,1,2]. + // How many times have we been through this series. Let's say we watched 10 episodes, but there are only 3 uniques [0,1,2]. const watchedEntireSeason = Math.trunc(viewedCount / availableEp); // we went through 3 times fully epToShow = viewedCount - (watchedEntireSeason * availableEp); // 10 - 3 seasons (9) is 1. So our last episode was the first, 0 in the array. And 1 is the next ep! } else { // We have seen all the episodes, return a random one diff --git a/src/pregmod/geneLab.tw b/src/pregmod/geneLab.tw index 644f729444bffaa8a3da834caaf50f35848237a0..4bfa67e3ec8a07557b0734fca79110b6c68bd137 100644 --- a/src/pregmod/geneLab.tw +++ b/src/pregmod/geneLab.tw @@ -54,51 +54,51 @@ Genetic Modification <</if>> <</if>> <<if $seeCats == 1>> -<<if $geneticMappingUpgrade >=2 && $projectN.status == 0>> - [[Hire a team of renowned bioengineers and geneticists to splice the human genome with cat DNA and fulfill the destiny of mankind - creating catgirls|Gene Lab][cashX(forceNeg(150000*_PCSkillCheck), "capEx"), $projectN.status = 1]] - //Costs <<print cashFormat(150000*_PCSkillCheck)>>// - <br> //Will begin a long-term project to push the boundries of science and genetically engineer the world's first catgirl// - <br> - <</if>> - <<if $projectN.status == 1>> - You've started to get into contact with a number of renowned old-world biologists and genetic engineers to pursue the creation of a biological catgirl. They should be arriving soon. - <</if>> - <<if $projectN.status == 2>> - You've gathered together a team of some of the old world's foremost scientific minds in the fields of genetic engineering, who've turned your genelab into a workplace for what they've dubbed "Project N", or the "Cat Project". One white-bearded man looks up from a large computer screen showing a series of complicated genetic sequences as you enter. - <</if>> - <<if $projectN.status == 3>> - The geneticist team has started to make serious progress on project N. In a central tube filled with thick green liquid, a small mass of pinkish material floats in suspended animation, referred to by the biologists as "Subject Delta". A series of screens next to the tube read out low-functioning vitals and other essential information. - <</if>> - <<if $projectN.status == 4>> - The pinkish blob of flesh has become a small, hairless humanoid body with twitchy cat ears atop its head, unconsciously floating while suspended in the green tube. You've tenatively named the growing catgirl $subjectDeltaName, and she occasionally kicks around slightly in the tube, producing a little stream of floating bubbles. The Project N bioengineers carefully monitor her vitals at all times, aided by the lab's integrated AI. - <</if>> - <<if $projectN.status == 5>> - $subjectDeltaName looks like an almost fully grown catgirl now, complete with a thin but soft layer of pure white fur that puffs up in the thick green liquid of her tube. The Project N geneticists seem a little rattled after the attack by the Sons of Sekhmet, but they're more determined than ever to finish their job and ensure that subject Delta makes it out of this tube and into the real world, a possibility that looks closer day by day. - <</if>> - <<if $projectN.status == 6>> - Project N is complete. Dr. Nieskowitz and his team are currently monitoring various functions of the genetic laboratory, though you could set them to work engineering another catgirl if you give them the funding to do so. It will take approximately a month to create another catgirl. The genetic engineering tube is currently empty. - <br> - <</if>> - <<if $projectN.status == 6 && $seeCats == 1>> - [[Engineer me a Catgirl|Gene Lab][cashX(forceNeg(20000*_PCSkillCheck), "capEx"), $projectN.status = 7, $growingNewCat = 4]] - //Costs <<print cashFormat(20000*_PCSkillCheck)>>// - <br> - <</if>> - <<if $projectN.status == 6 && $seeCats == 1>> - [[Engineer me a Catboy|Gene Lab][cashX(forceNeg(20000*_PCSkillCheck), "capEx"), $projectN.status = 8, $growingNewCat = 4]] - //Costs <<print cashFormat(20000*_PCSkillCheck)>>// + <<if $geneticMappingUpgrade >=2 && $projectN.status == 0>> + [[Hire a team of renowned bioengineers and geneticists to splice the human genome with cat DNA and fulfill the destiny of mankind - creating catgirls|Gene Lab][cashX(forceNeg(150000*_PCSkillCheck), "capEx"), $projectN.status = 1]] + //Costs <<print cashFormat(150000*_PCSkillCheck)>>// + <br> //Will begin a long-term project to push the boundaries of science and genetically engineer the world's first catgirl// + <br> + <</if>> + <<if $projectN.status == 1>> + You've started to get into contact with a number of renowned old-world biologists and genetic engineers to pursue the creation of a biological catgirl. They should be arriving soon. + <</if>> + <<if $projectN.status == 2>> + You've gathered together a team of some of the old world's foremost scientific minds in the fields of genetic engineering, who've turned your genelab into a workplace for what they've dubbed "Project N", or the "Cat Project". One white-bearded man looks up from a large computer screen showing a series of complicated genetic sequences as you enter. + <</if>> + <<if $projectN.status == 3>> + The geneticist team has started to make serious progress on project N. In a central tube filled with thick green liquid, a small mass of pinkish material floats in suspended animation, referred to by the biologists as "Subject Delta". A series of screens next to the tube read out low-functioning vitals and other essential information. + <</if>> + <<if $projectN.status == 4>> + The pinkish blob of flesh has become a small, hairless humanoid body with twitchy cat ears atop its head, unconsciously floating while suspended in the green tube. You've tentatively named the growing catgirl $subjectDeltaName, and she occasionally kicks around slightly in the tube, producing a little stream of floating bubbles. The Project N bioengineers carefully monitor her vitals at all times, aided by the lab's integrated AI. + <</if>> + <<if $projectN.status == 5>> + $subjectDeltaName looks like an almost fully grown catgirl now, complete with a thin but soft layer of pure white fur that puffs up in the thick green liquid of her tube. The Project N geneticists seem a little rattled after the attack by the Sons of Sekhmet, but they're more determined than ever to finish their job and ensure that subject Delta makes it out of this tube and into the real world, a possibility that looks closer day by day. + <</if>> + <<if $projectN.status == 6>> + Project N is complete. Dr. Nieskowitz and his team are currently monitoring various functions of the genetic laboratory, though you could set them to work engineering another catgirl if you give them the funding to do so. It will take approximately a month to create another catgirl. The genetic engineering tube is currently empty. <br> + <</if>> + <<if $projectN.status == 6 && $seeCats == 1>> + [[Engineer me a Catgirl|Gene Lab][cashX(forceNeg(20000*_PCSkillCheck), "capEx"), $projectN.status = 7, $growingNewCat = 4]] + //Costs <<print cashFormat(20000*_PCSkillCheck)>>// + <br> + <</if>> + <<if $projectN.status == 6 && $seeCats == 1>> + [[Engineer me a Catboy|Gene Lab][cashX(forceNeg(20000*_PCSkillCheck), "capEx"), $projectN.status = 8, $growingNewCat = 4]] + //Costs <<print cashFormat(20000*_PCSkillCheck)>>// + <br> + <</if>> + <<if $projectN.status == 7>> + Dr. Nieskowitz and his team are currently hard at working growing you another catgirl, who rapidly develops in the central tube of thick green liquid you once used to create $subjectDeltaName. Nieskowitz assures you that he'll have your new catgirl finished <<if $growingNewCat >= 2>>in $growingNewCat weeks.<</if>><<if $growingNewCat <= 1>>by next week.<</if>> + <</if>> + <<if $projectN.status == 8>> + Dr. Nieskowitz and his team are currently hard at working growing you another catboy, who rapidly develops in the central tube of thick green liquid you once used to create $subjectDeltaName. Nieskowitz assures you that he'll have your new catboy finished <<if $growingNewCat >= 2>>in $growingNewCat weeks.<</if>><<if $growingNewCat <= 1>>by next week.<</if>> + <</if>> + <<if $projectN.status == 9>> + The bomb set by the Sons of Sekhmet destroyed large parts of the genelab and killed most of the personnel, including $subjectDeltaName's tube. After the death of Doctor Nieskowitz, you haven't just lost $subjectDeltaName herself, but also the knowledge used to create her. It's doubtful that there's anyone left in the world who can finish what he started. + <</if>> <</if>> - <<if $projectN.status == 7>> - Dr. Nieskowitz and his team are currently hard at working growing you another catgirl, who rapidly develops in the central tube of thick green liquid you once used to create $subjectDeltaName. Nieskowitz assures you that he'll have your new catgirl finished <<if $growingNewCat >= 2>>in $growingNewCat weeks.<</if>><<if $growingNewCat <= 1>>by next week.<</if>> - <</if>> - <<if $projectN.status == 8>> - Dr. Nieskowitz and his team are currently hard at working growing you another catboy, who rapidly develops in the central tube of thick green liquid you once used to create $subjectDeltaName. Nieskowitz assures you that he'll have your new catboy finished <<if $growingNewCat >= 2>>in $growingNewCat weeks.<</if>><<if $growingNewCat <= 1>>by next week.<</if>> - <</if>> - <<if $projectN.status == 9>> - The bomb set by the Sons of Sekhmet destroyed large parts of the genelab and killed most of the personnel, including $subjectDeltaName's tube. After the death of Doctor Nieskowitz, you haven't just lost $subjectDeltaName herself, but also the knowledge used to create her. It's doubtful that there's anyone left in the world who can finish what he started. - <</if>> -<</if>> <</if>> <br><br> diff --git a/src/uncategorized/barracks.tw b/src/uncategorized/barracks.tw index 4d0af239090caed6de8db2d16f2efff7b20731d4..7f3186b09c81447bb5728823cfa61032ec669ce0 100644 --- a/src/uncategorized/barracks.tw +++ b/src/uncategorized/barracks.tw @@ -88,7 +88,7 @@ You head up a deck, to the staff area, and up one more, to look into the living They're obviously adopting the customs of $arcologies[0].name. <<set _vignette = 0>> <<if $arcologies[0].FSSubjugationist != "unset">> - A mercenary is fingering a $arcologies[0].FSSubjugationistRace _girlU's <<if $seeDicks != 100>>pussy<<else>>anus<</if>>. _HeU's wincing a little; _heU must be new here. + A mercenary is fingering <<print addA($arcologies[0].FSSubjugationistRace)>> _girlU's <<if $seeDicks != 100>>pussy<<else>>anus<</if>>. _HeU's wincing a little; _heU must be new here. <<set _vignette++>> <</if>> <<if $arcologies[0].FSSupremacist != "unset">> diff --git a/src/uncategorized/randomNonindividualEvent.tw b/src/uncategorized/randomNonindividualEvent.tw index 854e7a4ba959506d5dcbe9268ad916a26fb24707..5cf2c24f5bb5ac038984caaa9554f21dc2d01274 100644 --- a/src/uncategorized/randomNonindividualEvent.tw +++ b/src/uncategorized/randomNonindividualEvent.tw @@ -49,15 +49,15 @@ <<set $events.push("RE former abolitionist")>> <</if>> <<if $seeCats != 0>> - <<if ($projectN.status > 4)>> - <<set $events.push("RE sos assassin")>> - <</if>> - <<if ($projectN.status > 4)>> - <<set $events.push("RE sos sniper")>> - <</if>> - <<if ($projectN.status > 4)>> - <<set $events.push("RE sos bombing")>> - <</if>> + <<if ($projectN.status > 4)>> + <<set $events.push("RE sos assassin")>> + <</if>> + <<if ($projectN.status > 4)>> + <<set $events.push("RE sos sniper")>> + <</if>> + <<if ($projectN.status > 4)>> + <<set $events.push("RE sos bombing")>> + <</if>> <</if>> /* Hyperpreg Inventor Events; 1 = event 1 funding chosen; 2 = event 2 funding chosen;*/