diff --git a/Changelog.txt b/Changelog.txt index 4d07d7d5bb4748a921e71ac60df9730784718da6..01c43c94873ba06a27f64372dd1d42c293153ece 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -4,6 +4,7 @@ Pregmod -added overflow feedback to demand -added pit assign/remove rules to the RA + -fixes and cleaning 12/11/2019 diff --git a/devNotes/eye functions.md b/devNotes/eye functions.md new file mode 100644 index 0000000000000000000000000000000000000000..e1bdb1a49e240fd267cc3749277d67c1979cb098 --- /dev/null +++ b/devNotes/eye functions.md @@ -0,0 +1,133 @@ +## Eye Functions + +In all functions `side` can be `left`, `right` or `both` unless stated otherwise. + +Eye types: `1`: normal; `2`: glass; `3`: cybernetic +`0` is used as return value if there is no eye, but is never stored in the slave object. + +Vision: `0`: blind; `1`: nearsighted (or impaired/blurred); `2`: normal + +### Read-only functions + +* `hasAnyEyes(slave)`: + True if slave has at least one eye. + +* `hasAnyNaturalEyes(slave)`: + True if slave has at least one eye that is natural. + +* `hasAnyProstheticEyes(slave)`: + True if slave has at least one eye that is prosthetic (cybernetic or glass). + +* `hasAnyCyberneticEyes(slave)`: + True if slave has at least one eye that is cybernetic. + +* `hasBothEyes(slave)`: + True if slave has both eyes. + +* `hasBothNaturalEyes(slave)`: + True if slave has both eyes and they are natural. + +* `hasBothProstheticEyes(slave)`: + True if slave has both eyes and they are prosthetic (cybernetic or glass). + +* `hasBothCyberneticEyes(slave)`: + True if slave has both eyes and they are cybernetic. + +* `hasLeftEye(slave)`: + True if slave has left eye. + +* `hasRightEye(slave)`: + True if slave has right eye. + +* `getLeftEyeType(slave)`: + Returns type of the left eye. + +* `getRightEyeType(slave)`: + Returns type of the right eye. + +* `getLeftEyeVision(slave)`: + Returns vision of the left eye. + +* `getRightEyeVision(slave)`: + Returns vision of the right eye. + +* `getBestVision(slave)`: + Returns highest vision of both eyes. + +* `getWorstVision(slave)`: + Returns lowest vision of both eyes. + +* `anyVisionEquals(slave, vision)`: + True if one eye has the specified vision. + +* `getLeftEyeColor(slave)`: + Returns color of the left eye. If there is no eye `empty` is returned. + +* `getRightEyeColor(slave)`: + Returns color of the right eye. If there is no eye `empty` is returned. + +* `getLeftEyePupil(slave)`: + Returns the shape of pupil of the left eye. If there is no eye `circular` is returned. + +* `getRightEyePupil(slave)`: + Returns the shape of pupil of the right eye. If there is no eye `circular` is returned. + +* `hasVisibleHeterochromia(slave)`: + True if left and right eye colors are different. Does NOT relate to the genetic quirk. + +* `getGeneticEyeColor(slave, side)`: + Gives the genetic color of the specified eye. + `both` is not allowed as value of `side`. + +* `getLenseCount(slave)`: + Counts the number of eyes that are not the genetic color. + + +### Description + +* `App.Desc.eyesType(slave)`: + Fits in a sentence like this: She has {return}. + +* `App.Desc.eyeTypeToString(type)`: + Converts an eye type to a string. + `1` -> `natural` + `2` -> `glass` + `3` -> `artificial` + +* `App.Desc.eyesColor(slave, adj = "", eye = "eye", eyes = "eyes")`: + Fits in a sentence like this: She has {return}. + `adj` is added in between color and eye like this: `brown wet eyes`. + +* `App.Desc.eyeColor(slave)`: + Fits in a sentence like this: She has {return} eyes. + Prefer App.Desc.eyesColor if possible as it works reliably with only one eye. Example where this is better: {return}-eyed gaze + +* `App.Desc.eyesVision(slave)`: + Fits in a sentence like this: She has {return}. + +* `App.Desc.eyesToVision(slave)`: + Converts an eye vision to a string. + `0` -> `blind` + `1` -> `nearsighted` + `2` -> `normal` + + +### Modification + +* `eyeSurgery(slave, side, action)`: + Modifies a slaves eyes. + Allowed values for `action`: + No Existing eyes required: `normal`, `glass`, `cybernetic` + Existing eyes required: `remove`, `blind`, `blur`, `fix` + +* `setEyeColor(slave, color, side = "both")`: + Changes the visible eye color. + +* `setEyeColorFull(slave, iris, pupil, sclera, side)`: + Changes all visible parts of the eye. + +* `setGeneticEyeColor(slave, color, heterochromia = false)`: + Changes the genetic eye color. WARNING: If `heterochromia` is `true`, the function will add the genetic quirk, even if the slave did not have it before. + +* `resetEyeColor(slave, side)`: + Sets the eye color to the genetic color. Takes heterochromia and albinism into account. \ No newline at end of file diff --git a/devTools/javaSanityCheck/ignoredVariables b/devTools/javaSanityCheck/ignoredVariables index 0fc5a1a4d7c6b699daec3e63842c7279347fa434..a37fa1878c60ccb5939b3c7aed3e9531e341deee 100644 --- a/devTools/javaSanityCheck/ignoredVariables +++ b/devTools/javaSanityCheck/ignoredVariables @@ -83,12 +83,10 @@ toy base;pmod saRules plural -orig bimboMaleNames RuleHasError DefaultRulesError # PC -vision criticalDamage marriage lovers diff --git a/slave variables documentation - Pregmod.txt b/slave variables documentation - Pregmod.txt index e03826017476958517a98b40adb8c2dec4204cea..4bd49fb8953eb04ea8bc460c50f5ee090ffd6706 100644 --- a/slave variables documentation - Pregmod.txt +++ b/slave variables documentation - Pregmod.txt @@ -1356,28 +1356,25 @@ accepts string "freckles" "heavily freckled" -eyes: +eye: +Object, for easy read/write access see "devNotes/eye functions.md" -slave eyesight --4 - empty --3 - glass eye --2 - blind --1 - nearsighted - 1 - normal +eye.origColor: +genetic eye color -eyesImplant: +left/right interchangeable in the following: +eye.left.vision: +0: blind +1: nearsighted +2: normal -0 - normal eyes -1 - artificial eyes +eye.left.type: +1: normal +2: glass +3: cybernetic -origEye: - -slave's original eye color, defaults to their initial eye color. - -eyeColor: - -eye color -accepts string +eye.left.iris: +basic eye color: "blue" "black" @@ -1392,10 +1389,8 @@ accepts string "amber" "red" -pupil: - -shape of slave pupils -accepts string +eye.left.pupil: +shape of pupil "catlike" "serpent-like" @@ -1412,10 +1407,8 @@ accepts string "star-shaped" "goat-like" -sclerae: - -color of slave sclerae -accepts string +eye.left.sclera: +color of sclera "white" "blue" diff --git a/src/002-config/fc-version.js b/src/002-config/fc-version.js index e4928d8c1b544482ab5376d681d4fab4ec7163bf..2a25d8dc5917bd3f618e24c201794d07512b9334 100644 --- a/src/002-config/fc-version.js +++ b/src/002-config/fc-version.js @@ -1,7 +1,7 @@ App.Version = { base: "0.10.7.1", // The vanilla version the mod is based off of, this should never be changed. pmod: "3.1.0", - release: 1058, + release: 1059, }; /* Use release as save version */ diff --git a/src/Mods/SpecialForce/Firebase.tw b/src/Mods/SpecialForce/Firebase.tw index a8785139c504ece650963638b0e1b29d91ce7c6b..e83de6493f516ba67a986905052e9a529dfbe533 100644 --- a/src/Mods/SpecialForce/Firebase.tw +++ b/src/Mods/SpecialForce/Firebase.tw @@ -119,12 +119,13 @@ topless, wearing only a single undergarment and heavy steel collars to set them apart from the soldiers, and often shoot fearful looks at the soldiers. The soldiers occupy themselves primarily with sex, pulling slaves onto benches and fucking them hard in public. Many soldiers stagger around or lie passed out from drug and alcohol abuse. <<elseif $SF.Depravity >= 1.5 && ($SF.Colonel.Core == "brazen" || $SF.Colonel.Core != "shell shocked")>> naked, and are wearing heavy shock collars to force obedience. Most are wild-eyed with fear or dull-eyed from mental collapse, and many others bear marks of abuse. Few of the slaves are here long-term, the depraved pleasures of the soldiers resulting in enormous turnover and loss of 'damaged' stock. The extreme libations of the soldiers are ever-present. Drunken soldiers stagger around everywhere, beating slaves too slow to get out of their way. Others lie sprawled out on the ground, rendered senseless from heavy drug abuse. Some walk around naked, and hold slaves down on the benches scattered around, raping or sodomizing them with their cocks or their personal strap-ons as they desire. In alcoves, some soldier-lover pairs fuck loudly, moaning in pleasure. + <<setNonlocalPronouns $seeDicks>> <<if random(1,100) <= 50>> - Off to the side, a group of soldiers brutally gangbang a very young slave girl, with one soldier buried balls-deep in her ass, another brutally sawing a barbed strap-on in and out of her pussy, and a third with his cock forced deep down her throat. The slave girl struggles and gags, desperate for breath or relief. + Off to the side, a group of soldiers brutally gangbang a very young slave _girlU, with one soldier buried balls-deep in _hisU ass, <<if _heU == "she">>another brutally sawing a barbed strap-on in and out of _hisU pussy, and a third<<else>>and another<</if>> with his cock forced deep down _hisU throat. The slave _girlU struggles and gags, desperate for breath or relief. <<elseif random(1,100) > 50>> - Off to the side, a group of soldiers cackle amongst themselves as they take turns beating a very young slave girl with heavy batons. Sickening crunches can be heard from the screaming slave. + Off to the side, a group of soldiers cackle amongst themselves as they take turns beating a very young slave _girlU with heavy batons. Sickening crunches can be heard from the screaming slave. <<elseif random(1,100) > 75>> - Off to the side, still more soldiers crowd around an above-ground pit built from empty crates, gambling on slave gladiator fights. There's a drunken cheer as one of the fighters, a very young slave girl, straddles another one and smashes her face in with a blood-slick ammo crate. As she stands, shaking from fear and adrenaline, one of the soldiers laughs and throws a small incendiary grenade at her, changing the cheers to curses as the other soldiers jump away from the flaming, screeching slave. + Off to the side, still more soldiers crowd around an above-ground pit built from empty crates, gambling on slave gladiator fights. There's a drunken cheer as one of the fighters, a very young slave _girlU, straddles another one and smashes _hisU face in with a blood-slick ammo crate. As _heU stands, shaking from fear and adrenaline, one of the soldiers laughs and throws a small incendiary grenade at _himU, changing the cheers to curses as the other soldiers jump away from the flaming, screeching slave. <<else>> Screams and cries of pain can be heard echoing around the area as the soldiers have their fun with their property. <</if>> @@ -135,13 +136,20 @@ <br>In the middle of the common area is a pile of supply crates with a pavilion on top — The Colonel's personal throne and open quarters, the result of her preferring to live an extreme lifestyle amongst her soldiers rather than in her empty quarters on the upper levels. It's draped with the 'flag' of $SF.Lower, one of her inventions. Sprawled all around it is an immense quantity of; alcohol, hard drugs, clothes, electronic devices, huge amounts of cash, jewels and precious metals looted from the outside world. <br><br><div style="margin-left:2em"> + <<setNonlocalPronouns $seeDicks>> As you approach, The Colonel <<if random(0,100) <= 50>> - raises a hand in greeting and nods. She is sprawled on a couch, wearing only her combat suit tank top and fingerless gloves. She's holding a near-empty bottle of strong liquor in her hand and you can see a naked slave girl kneeling on the floor between her legs. The Colonel has her legs wrapped tightly around the girl's head, forcing the girl to service her if she wants to breathe. The Colonel is close to her climax then suddenly tenses her lower body thus gripping the girl even tighter and throws her head back in ecstasy as she orgasms. She lets out a long breath finally releasing the girl, giving her a hard smack and shouting at her to fuck off.<br><br> The Colonel finishes off her bottle, tossing it over her shoulder then leaning back on the couch and spreading her legs wide. You look down briefly, falling into your habits of inspection. Her pussy is completely devoid of hair with heavy labia in with a very large and hard clit peaking out. Beads of moisture, the result of her excitation, are visible, and you can tell from long experience that she would be tight as a vise. You return your gaze to her face to find her smirking at you. "Like what you see, <<= App.SF.ColonelStatus()>>?" She waves her hand at the plaza around her, "So do they. But you're not here for pussy. You're here to talk business. So, what's up?" + raises a hand in greeting and nods. She is sprawled on a couch, wearing only her combat suit tank top and fingerless gloves. She's holding a near-empty bottle of strong liquor in her hand and you can see a naked slave _girlU kneeling on the floor between her legs. The Colonel has her legs wrapped tightly around the _girlU's head, forcing the _girlU to service her if _heU wants to breathe. The Colonel is close to her climax then suddenly tenses her lower body, thus gripping the _girlU even tighter, and throws her head back in ecstasy as she orgasms. She lets out a long breath finally releasing the _girlU, giving _himU a hard smack and shouting at _himU to fuck off. + <br><br> + The Colonel finishes off her bottle, tossing it over her shoulder then leaning back on the couch and spreading her legs wide. You look down briefly, falling into your habits of inspection. Her pussy is completely devoid of hair with heavy labia in with a very large and hard clit peaking out. Beads of moisture, the result of her excitation, are visible, and you can tell from long experience that she would be tight as a vise. You return your gaze to her face to find her smirking at you. "Like what you see, <<= App.SF.ColonelStatus()>>?" She waves her hand at the plaza around her, "So do they. But you're not here for pussy. You're here to talk business. So, what's up?" <<elseif random(0,100) > 50>> - is in no condition initially to greet you. She's naked except for one sock that gives you a very good view of her muscled, taut body while lunging with her feet on the table and the rest on her couch. She is face-down in a drugged-out stupor in the middle of a wide variety of powders and pills. Perhaps sensing your approach, her head suddenly shoots up and looks at you with unfocused, bloodshot eyes. "Sorry, <<= App.SF.ColonelStatus()>>," she slurs, wiping her face and weakly holding up a hand. "Hold on a second, I need something to help me out here. Long fucking night." She struggles to sit on the couch and bending over the table, loudly snorts up some of the white powder on it. "Ahhh, fuck," she says, breathing heavily.<br><br> She shakes her head powerfully now looking at you, her eyes once again alert and piercing. "That's better," she says, leaning back on the couch and giving you another good view of her assets. "So, <<= App.SF.ColonelStatus()>>," she begins, "what brings you down here to our little clubhouse? I trust you're happy with how we've been handling things out there?" You nod. "Excellent", she laughs. "I have to say; it's nice to have a place like this while having some top-end gear and to be able to have fun out there without worrying about anyone coming back on us. Good fucking times." She laughs again. "So — I'm assuming you want something?" + is in no condition initially to greet you. She's naked except for one sock that gives you a very good view of her muscled, taut body while lunging with her feet on the table and the rest on her couch. She is face-down in a drugged-out stupor in the middle of a wide variety of powders and pills. Perhaps sensing your approach, her head suddenly shoots up and looks at you with unfocused, bloodshot eyes. "Sorry, <<= App.SF.ColonelStatus()>>," she slurs, wiping her face and weakly holding up a hand. "Hold on a second, I need something to help me out here. Long fucking night." She struggles to sit on the couch and bending over the table, loudly snorts up some of the white powder on it. "Ahhh, fuck," she says, breathing heavily. + <br><br> + She shakes her head powerfully now looking at you, her eyes once again alert and piercing. "That's better," she says, leaning back on the couch and giving you another good view of her assets. "So, <<= App.SF.ColonelStatus()>>," she begins, "what brings you down here to our little clubhouse? I trust you're happy with how we've been handling things out there?" You nod. "Excellent", she laughs. "I have to say; it's nice to have a place like this while having some top-end gear and to be able to have fun out there without worrying about anyone coming back on us. Good fucking times." She laughs again. "So — I'm assuming you want something?" <<elseif random(0,100) > 70 && $SF.Depravity >= 1.5 && $SF.Colonel.Core == "cruel">> - is relaxing on her couch stark naked, greeting you with a raised hand. Between her tightly clenched legs is a slave girl being forced to eat her out. "Hey, <<= App.SF.ColonelStatus()>>, what's —" she breaks off as a flash of pain crosses her features. "Fucking bitch!" she exclaims, pulling her legs away and punching the slave girl in the face. She pushes the girl to the ground, straddling her then begins hitting. You hear one crunch after another as The Colonel's powerful blows shatter the girl's face. She hisses from between clenched teeth, each word accompanied by a brutal punch. "How. Many. Fucking. Times. Have. I. Told. You. To. Watch. Your. Fucking. Teeth. On. My. Fucking. Clit!" She leans back, exhaling heavily. Before leaning back down to grip apply pressure onto the girl's neck with her powerful hands. Wordlessly, she increases the pressure and soon the girl begins to turn blue as she struggles to draw breath. Eventually her struggles weaken and then finally, end.<br><br> The Colonel relaxes her grip then wipes her brow, clearing away the sweat from her exertion. Finally rising from the girl's body, relaxing back on the couch and putting her feet back up on the table. "Sorry about that <<= App.SF.ColonelStatus()>>," she says, shrugging. "So many of these bitches we pick up from the outside don't understand that they have to behave." Shaking her head in frustration, "Now I need to find another one. But that's not your problem — you're here to talk business. So, what's up?" + is relaxing on her couch stark naked, greeting you with a raised hand. Between her tightly clenched legs is a slave _girlU being forced to eat her out. "Hey, <<= App.SF.ColonelStatus()>>, what's —" she breaks off as a flash of pain crosses her features. "Fucking bitch!" she exclaims, pulling her legs away and punching the slave _girlU in the face. She pushes the _girlU to the ground, straddling _himU then begins hitting. You hear one crunch after another as The Colonel's powerful blows shatter the _girlU's face. She hisses from between clenched teeth, each word accompanied by a brutal punch. "How. Many. Fucking. Times. Have. I. Told. You. To. Watch. Your. Fucking. Teeth. On. My. Fucking. Clit!" She leans back, exhaling heavily. Before leaning back down to grip apply pressure onto the _girlU's neck with her powerful hands. Wordlessly, she increases the pressure and soon the _girlU begins to turn blue as _heU struggles to draw breath. Eventually _hisU struggles weaken and then, finally, end. + <br><br> + The Colonel relaxes her grip then wipes her brow, clearing away the sweat from her exertion. Finally rising from the _girlU's body, relaxing back on the couch and putting her feet back up on the table. "Sorry about that <<= App.SF.ColonelStatus()>>," she says, shrugging. "So many of these bitches we pick up from the outside don't understand that they have to behave." Shaking her head in frustration, "Now I need to find another one. But that's not your problem — you're here to talk business. So, what's up?" <<else>> is topless while reviewing the particulars of her unit on a tablet as you approach. She raises a hand in greeting. "Hey <<= App.SF.ColonelStatus()>>," she says, noticing you looking at her chest. She laughs. "Nice, aren't they? But they're not for you or them." She throws a thumb at the plaza around her. "You're down here for a reason, though. What can I do for you?" <</if>> </div> diff --git a/src/Mods/SpecialForce/NamingColonel.tw b/src/Mods/SpecialForce/NamingColonel.tw index db23afa07771400feb654dd4dad9b53b4423c828..766db1e276e6c1e97a1bfbf82a93446817d7facf 100644 --- a/src/Mods/SpecialForce/NamingColonel.tw +++ b/src/Mods/SpecialForce/NamingColonel.tw @@ -11,12 +11,18 @@ eating you out, pressing _hisU face into your pussy and forcing _hisU tongue deep inside you. <</if>> - <br><br>A blinking light tells you that the channel is open. You take a deep breath, and begin. You greet your citizens and explain that while you believe deeply in the underlying principles of the Free Cities, recent events have forced you to modify some of your views. The old world attack from the outside and the more recent assault by the Daughters of Liberty from within has proven that some form of permanent, organized standing force is needed to ensure the personal safety of the citizen body. - <br><br>You tell them that the old world continues to deteriorate. You tell them that it is only a matter of time before the poor, diseased, starving, and unwashed masses try their hand at invading the arcology again. You tell them that such a force would be good for business, securing trade routes and conducting slaving raids far greater in scale than those performed by private slaving corporations. And finally, to quell their greatest fear, you tell them that you would personally support the force financially. - <br><br>As you speak, you carefully monitor the citizens' opinions as indicated on their communication devices. It is uniformly positive — they know whom they have to thank for their continued survival and dominance. You also monitor your arousal given the ministrations of your slave. A few small movements on your part communicate to your citizens what is happening without being too obvious. Free Cities business etiquette respects business conducted while being subtly serviced (and your doing so during such a public and important broadcast signals how seriously you are taking it), but a climax would be seen as a serious lack of discipline. - <br><br>You finally wrap up your speech, declaring yourself Marshal of the newly-formed <<textbox "$SF.Lower" $SF.Lower "Security Force Naming-Colonel">> - <br><br>You close the link to the communication system and read a message from your assistant that appeared during the last moments of your address. In consultation with major figures in the mercenary community, a suitable candidate for day-to-day command of the new unit has been found. Your instructions were to keep you in the dark about them so as to avoid prejudgment. They are waiting outside your office. - <br><br>[[Invite them inside|Security Force Naming-Colonel][$SF.IntroProgress = 1]] + <br><br> + A blinking light tells you that the channel is open. You take a deep breath, and begin. You greet your citizens and explain that while you believe deeply in the underlying principles of the Free Cities, recent events have forced you to modify some of your views. The old world attack from the outside and the more recent assault by the Daughters of Liberty from within has proven that some form of permanent, organized standing force is needed to ensure the personal safety of the citizen body. + <br><br> + You tell them that the old world continues to deteriorate. You tell them that it is only a matter of time before the poor, diseased, starving, and unwashed masses try their hand at invading the arcology again. You tell them that such a force would be good for business, securing trade routes and conducting slaving raids far greater in scale than those performed by private slaving corporations. And finally, to quell their greatest fear, you tell them that you would personally support the force financially. + <br><br> + As you speak, you carefully monitor the citizens' opinions as indicated on their communication devices. It is uniformly positive — they know whom they have to thank for their continued survival and dominance. You also monitor your arousal given the ministrations of your slave. A few small movements on your part communicate to your citizens what is happening without being too obvious. Free Cities business etiquette respects business conducted while being subtly serviced (and your doing so during such a public and important broadcast signals how seriously you are taking it), but a climax would be seen as a serious lack of discipline. + <br><br> + You finally wrap up your speech, declaring yourself Marshal of the newly-formed <<textbox "$SF.Lower" $SF.Lower "Security Force Naming-Colonel">> + <br><br> + You close the link to the communication system and read a message from your assistant that appeared during the last moments of your address. In consultation with major figures in the mercenary community, a suitable candidate for day-to-day command of the new unit has been found. Your instructions were to keep you in the dark about them so as to avoid prejudgment. They are waiting outside your office. + <br><br> + [[Invite them inside|Security Force Naming-Colonel][$SF.IntroProgress = 1]] <<elseif $SF.IntroProgress < 2>> <<= App.SF.NameCapsCheck()>> The figure that enters is not what you were expecting, given your previous experiences with the mercenary groups that work with the arcology owners of the Free Cities. Most mercenaries you've worked with have been grizzled stout men, veterans of the old world militaries that finally had too much and went private. Instead, a woman walks in. <<if $SF.Colonel.Core === "">> @@ -29,7 +35,8 @@ <<else>> <<setNonlocalPronouns $seeDicks>> She is likely to be ''$SF.Colonel.Core''. - <br><br>She strides in, stopping in front of your desk, + <br><br> + She strides in, stopping in front of your desk, <<switch $SF.Colonel.Core>> <<case "kind">> pulling off a laid-back salute with an easy grin. @@ -41,8 +48,10 @@ not bothering to put on even the semi-military air (complete with salute) that most mercenaries tend to adopt when meeting new clients. <</switch>> She is very tall and wearing the pants, boots, gloves, and the tank top undershirt of a standard female combat uniform. Her bare arms and upper body are corded with muscle, and through the tank top's thin fabric you can see both the shape of her muscled abdomen and the curves of her small but perky breasts, complete with what your experience tells you are barbell nipple piercings. Her eyes are alive with intelligence, and you can see her scanning your office, clearly impressed by its opulence. Her hair is shaved close to the scalp, and her ears and nose are heavily pierced. You can make out three long, ugly scars running over top of the mottled tissue of a previous, severe burn along one side of her face, as well as numerous smaller scars and burns on her bare arms. She's been disarmed prior to meeting you; the pistol holster on her hip lies empty, as do at least three knife holsters about her person. - <br><br>Returning your gaze to her face, she crosses her arms underneath her chest, pressing her breasts up and forward. You have her measure. Given the generally patriarchal nature of both the mercenary community, and the same nature combined with the heavily sexualized lifestyle of the Free Cities, she's decided to embrace her position rather than fight it. - <br><br>"So," she begins, "you're the boss." You invite her to sit down. "No thanks, boss. Besides," she + <br><br> + Returning your gaze to her face, she crosses her arms underneath her chest, pressing her breasts up and forward. You have her measure. Given the generally patriarchal nature of both the mercenary community, and the same nature combined with the heavily sexualized lifestyle of the Free Cities, she's decided to embrace her position rather than fight it. + <br><br> + "So," she begins, "you're the boss." You invite her to sit down. "No thanks, boss. Besides," she <<switch $SF.Colonel.Core>> <<case "kind">> playfully <<case "shell shocked">> uncomfortably @@ -58,7 +67,8 @@ <<case "cruel">> She frowns. "The client always seems to be happier that way." <</switch>> - <br><br>She moves a step closer. "Your computer-helper-thing told me you wanted me to be a surprise, so I guess I'll tell you why you want me to run the $SF.Lower for you. I'm a killer, pure and simple,<<if $SF.Colonel.Core === "cruel">>" she smiles, "<</if>>and you need that. I looked into those attacks you've suffered. Nasty business. I'll make sure that an attack like that never happens again. I was a soldier out there, in charge of about a thousand men when the Free Cities first started going up, and I knew they were the future. Eventually I deserted, found the first refugee convoy I could, killed the moron protecting it, sold the girls off to slavers, and bought enough gear to start killing for people like you. Ran my own merc crew, did well till we tried to take on a bigger one and everyone died." + <br><br> + She moves a step closer. "Your computer-helper-thing told me you wanted me to be a surprise, so I guess I'll tell you why you want me to run the $SF.Lower for you. I'm a killer, pure and simple,<<if $SF.Colonel.Core === "cruel">>" she smiles, "<</if>>and you need that. I looked into those attacks you've suffered. Nasty business. I'll make sure that an attack like that never happens again. I was a soldier out there, in charge of about a thousand men when the Free Cities first started going up, and I knew they were the future. Eventually I deserted, found the first refugee convoy I could, killed the moron protecting it, sold the girls off to slavers, and bought enough gear to start killing for people like you. Ran my own merc crew, did well till we tried to take on a bigger one and everyone died." <<switch $SF.Colonel.Core>> <<case "shell shocked">> She looks away, caught in her own memories. It takes a solid minute before she starts again. @@ -69,7 +79,8 @@ <</switch>> "Joined with another big outfit, became the number two, then shit went bad and I had to run. Been a solo fighter and slaver ever since. I know my work, and I know I can make this work." - <br><br>You feel your climax approaching and hold up a finger. The merc pauses while you grab the slave's head + <br><br> + You feel your climax approaching and hold up a finger. The merc pauses while you grab the slave's head <<if $PC.dick > 0>> then force your cock roughly down _hisU throat while you cum. _HeU swallows as much as _heU can before pulling <<else>> @@ -109,21 +120,28 @@ <<case "brazen">> crushing any enemy that looks our way." <<case "cruel">> - having my own stable to abuse as I see fit. A terrified little slavegirl locked between my legs, struggling to breathe?" + <<setNonlocalPronouns $seeDicks>> + having my own stable to abuse as I see fit. A terrified little slave<<= _girlU>> locked between my legs, struggling to breathe?" <<default>> spending my R&R time with a cold beer in one hand, a few lines of coke or a stack of pills in front of me." <</switch>> A glint runs through her eyes. "Sounds like a good fucking time." - <br><br>You quickly decide she'll do. You tap a few commands on your desk's console, assigning her personal quarters on the arcology's higher levels and transferring her first stipend to her new account. You also ask her what title she wants. - <br><br>"Title?" Another short laugh. "I guess I do need one, given that I'm all official and shit now." She thinks for a moment. "I was a major before I went freelance, and I think I'd like a promotion. Colonel sounds good." You make a note of this in her file. "You people don't seal contracts with a fuck do you?" Reassuring her you don't, she laughs again. "Good. I make it a point never to fuck the boss. It's bad for business." She turns around. "Well, I guess I'd better get to it. Your helper-thing assigned me space on the lower levels for the firebase. I brought a few squads of guys I know from the old days to start, but we'll grow fast once I put the word out, I guarantee it." - <br><br>[[Let her leave|Security Force Naming-Colonel][$SF.IntroProgress = 2]] + <br><br> + You quickly decide she'll do. You tap a few commands on your desk's console, assigning her personal quarters on the arcology's higher levels and transferring her first stipend to her new account. You also ask her what title she wants. + <br><br> + "Title?" Another short laugh. "I guess I do need one, given that I'm all official and shit now." She thinks for a moment. "I was a major before I went freelance, and I think I'd like a promotion. Colonel sounds good." You make a note of this in her file. "You people don't seal contracts with a fuck do you?" Reassuring her you don't, she laughs again. "Good. I make it a point never to fuck the boss. It's bad for business." She turns around. "Well, I guess I'd better get to it. Your helper-thing assigned me space on the lower levels for the firebase. I brought a few squads of guys I know from the old days to start, but we'll grow fast once I put the word out, I guarantee it." + <br><br> + [[Let her leave|Security Force Naming-Colonel][$SF.IntroProgress = 2]] <</if>> <<elseif $SF.IntroProgress < 3>> <<set $nextLink = "RIE Eligibility Check",$nextButton = "Continue">> She turns and leaves, and you chase the slave out after her. A few minutes later, a soft chime announces the arrival of a message. It's from the Colonel. - <br><br>//Hey boss, just wanted to mention something else. In your speech you said that you were going to be paying for $SF.Lower. In my mind that means it's yours, no matter what anyone else here might think. I do what you tell me to do. I make sure the troops behave as you want them to behave. I've worked for some 'nice guys' in the past, and I can do that job if you want. It's boring, but sustainable, and I'll have the $SF.Lower turning a profit and supporting the arcology in good order. But if you let me <<if $SF.Colonel.Core === "cruel">>off the leash<<else>>do what I do<</if>> and throw any old world complaints in the trash where they belong, I promise you'll have money pouring into your coffers, even accounting for the good amounts me and my boys will pocket along the way. You'll have an empire in short order. + <br><br> + //Hey boss, just wanted to mention something else. In your speech you said that you were going to be paying for $SF.Lower. In my mind that means it's yours, no matter what anyone else here might think. I do what you tell me to do. I make sure the troops behave as you want them to behave. I've worked for some 'nice guys' in the past, and I can do that job if you want. It's boring, but sustainable, and I'll have the $SF.Lower turning a profit and supporting the arcology in good order. But if you let me <<if $SF.Colonel.Core === "cruel">>off the leash<<else>>do what I do<</if>> and throw any old world complaints in the trash where they belong, I promise you'll have money pouring into your coffers, even accounting for the good amounts me and my boys will pocket along the way. You'll have an empire in short order. <<if $mercenaries > 1>> Either way, I'll keep my hands off those mercs you've already installed. I figure that you've reasons for having two different death squads under contract. <</if>> - <br><br>Oh, one last thing. I know you've got some kind of grand social experiment going on up there like all the other arc owners, and that's your own deal, but I'd appreciate it if you could keep that stuff out of the new barracks. I'll have a hard time approaching potential recruits and telling them they should come live in a Roman apartment, an Egyptian temple, a goddamn Japanese teahouse, or some of the other crazy shit I've seen in the past. They're hard, nasty people, and trust me, I can tell you from experience that changing that is just not going to happen. Like I said, though, I can hold them back a bit if you like. - <br><br>Talk to you later, boss.// + <br><br> + Oh, one last thing. I know you've got some kind of grand social experiment going on up there like all the other arc owners, and that's your own deal, but I'd appreciate it if you could keep that stuff out of the new barracks. I'll have a hard time approaching potential recruits and telling them they should come live in a Roman apartment, an Egyptian temple, a goddamn Japanese teahouse, or some of the other crazy shit I've seen in the past. They're hard, nasty people, and trust me, I can tell you from experience that changing that is just not going to happen. Like I said, though, I can hold them back a bit if you like. + <br><br> + Talk to you later, boss.// <</if>> diff --git a/src/Mods/SpecialForce/SpecialForce.js b/src/Mods/SpecialForce/SpecialForce.js index 790fae063af348b37214ab548c44b1e746e65269..a918e86164ccc7969f704fc7f9bdd5954021da30 100644 --- a/src/Mods/SpecialForce/SpecialForce.js +++ b/src/Mods/SpecialForce/SpecialForce.js @@ -777,12 +777,12 @@ App.SF.fsIntegration = function(input = 'Menu', textDisplay = 100, text = `\n`) text += `\nBy now, most of the men of the Firebase are fathers, and the vast majority of the slaves present are visibly pregnant. An envied few are enjoying their ${hyperPreg1}pregnancies too, as those slaves are given reduced duties and more rest and food out of necessity. Worth noting is the surprisingly high number of pregnant soldiers and staff members absent from their units; a nice portion of them are enjoying their maternity leave benefits as they wait out their pregnancies or post-natal recoveries in either the Firebase's facilities or the perceived comfort and privacy of your arcology above. Progeny of varying ages can be seen just about anywhere in the Firebase; either in rows of cozy bedding or baby carriages (for the abundance of claimed and properly registered children), or in the stacks of baby cages that once again await transport to the slave orphanages (for the multitude of newborn bastards).\n`; } if (textDisplay === 100 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) { - text += `\nRepopulation: The Colonel has spent considerable savings creating and incubating a slave that looks exactly like a younger version of her (but with that steel collar she's wearing, she'll never fool anyone). The Slave has since been repeatedly fertilized with The Colonel's DNA, since The Colonel has no desire to get pregnant herself. The Slave is on many fertility pills, and is currently kept in a special secluded part of the Firebase to study child-rearing skills and wait out her ${hyperPreg0}pregnancy, after which she will train and heal up to recover. Of course, next year The Slave will be fertilized again, to add another batch to the pile...\n`; + text += `\nRepopulation: The Colonel has spent considerable savings creating and incubating a slave that looks exactly like a younger version of her (but with that steel collar she's wearing, she'll never fool anyone). The Slave has since been repeatedly fertilized with The Colonel's DNA, since The Colonel has no desire to get pregnant herself. The Slave is on many fertility pills, and is currently kept in a special secluded part of the Firebase to study child-rearing skills and wait out her ${hyperPreg0}pregnancy, after which she will train and heal up to recover. Of course, next year, The Slave will be fertilized again, to add another batch to the pile...\n`; } break; case 'Eugenics': if (textDisplay === -1 && V.SF.FS[FS_OPTIONS[i]].gift > 0) { - text += `\nTo ease The Colonel's hostility towards Eugenics, you have gifted her with a very rare and prestigious personal vehicle to demonstrate the pedigree of the Elite; you have given The Colonel a custom-built designer Super Car, designed to allow her to drive flawlessly both on-road and off-road in finest aesthetic style, whilst boasting excellent speeds all the same. It also has absurd durability and reliability, able to survive and continue driving even after sustaining direct RPG fire. It boasts a rare lightweight composite material chassis, onboard voice-activated AI personal assistant, advanced ballistics-retardant windows, Kevlar-lined run-flat tires, mine-resistant undercarriage, integrated long-term life support and CBRN protection systems, and even a passenger's seat to bring a friend along. She is floored by how exotic and capable her magnificent new car is. You see her using it quite a bit too, for both joyrides and casual errands around the Free City.\n`; + text += `\nTo ease The Colonel's hostility towards Eugenics, you have gifted her with a very rare and prestigious personal vehicle to demonstrate the pedigree of the Elite: you have given The Colonel a custom-built designer Super Car, designed to allow her to drive flawlessly both on-road and off-road in finest aesthetic style, whilst boasting excellent speeds all the same. It also has absurd durability and reliability, able to survive and continue driving even after sustaining direct RPG fire. It boasts a rare lightweight composite material chassis, onboard voice-activated AI personal assistant, advanced ballistics-retardant windows, Kevlar-lined run-flat tires, mine-resistant undercarriage, integrated long-term life support and CBRN protection systems, and even a passenger's seat to bring a friend along. She is floored by how exotic and capable her magnificent new car is. You see her using it quite a bit too, for both joyrides and casual errands around the Free City.\n`; } if (textDisplay === 5 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) { text += `\nFor the male soldiers who eat in-house, every meal comes with a free condom. Instead of a condom, female soldiers are instead given a tiny packet of contraceptive pills that are disguised as sweet tasting hard candies.\n`; @@ -800,7 +800,7 @@ App.SF.fsIntegration = function(input = 'Menu', textDisplay = 100, text = `\n`) text += `\nThe common area now includes a small den serving as an office for soldiers interested in taking the arcology's Elite citizenship exams. As you pass by, you actually see one of the newer troopers leaving the den. There is a hopeful look on their face.\n`; } if (textDisplay === 30 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) { - text += `\nThe simple staff room next to the storage room of the barracks has been expanded and upgraded to serve as a luxurious 'Officers Club'. This warrior lounge admits only those of adequate rank and status, and comes complete with a private bar, private theatres, a conference room, an indoor garden, and premium, exclusive sex slaves.\n`; + text += `\nThe simple staff room next to the storage room of the barracks has been expanded and upgraded to serve as a luxurious 'Officers Club'. This warrior lounge admits only those of adequate rank and status, and comes complete with a private bar, private theaters, a conference room, an indoor garden, and premium, exclusive sex slaves.\n`; } if (textDisplay === 35 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) { text += `\nA finely groomed coterie of Elite armorers descended from higher society has been assigned to the Firebase on a permanent rotation basis. They work diligently on repainting, retooling, refurbishing, or recalibrating each and every piece of kit, as needed, in between missions while using only the finest of modern instruments and materials. As such, your troops represent your arcology with some of the best kept battle gear in the world.\n`; @@ -906,7 +906,7 @@ App.SF.fsIntegration = function(input = 'Menu', textDisplay = 100, text = `\n`) break; case 'Gender_traditionalism': if (textDisplay === -1 && V.SF.FS[FS_OPTIONS[i]].gift > 0) { - text += `\nThe Colonel is a modern 'liberated' sort of woman; the kind that is genuinely skeptical of old timey priorities like marriage and family. To ease her further into the Fundamentalist mindset, you've gone all out: You've carved out an unused sidewall of the Firebase to build her a private master bedroom, complete with a custom-made double king-sized marital bed, with a programmable memory foam mattress & various in-built massage features. When she first entered the bedroom, she found the deluxe diamond ring set you bought for her and her future spouse. She also saw the extravagant modular wedding gown you've had made to her exact measurements, for her special day. And to ensure her special day is extra special, you have not forgotten to provide her with a specific premium surgery voucher, to grant her a free virginity restoration procedure at any clinic in the arcology, at any time of her choosing.\n`; + text += `\nThe Colonel is a modern 'liberated' sort of woman; the kind that is genuinely skeptical of old-timey priorities like marriage and family. To ease her further into the Fundamentalist mindset, you've gone all out: You've carved out an unused sidewall of the Firebase to build her a private master bedroom, complete with a custom-made double king-sized marital bed, with a programmable memory foam mattress & various in-built massage features. When she first entered the bedroom, she found the deluxe diamond ring set you bought for her and her future spouse. She also saw the extravagant modular wedding gown you've had made to her exact measurements, for her special day. And to ensure her special day is extra special, you have not forgotten to provide her with a specific premium surgery voucher, to grant her a free virginity restoration procedure at any clinic in the arcology, at any time of her choosing.\n`; } if (textDisplay === 5 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) { text += `\nThe meals served in the Firebase come with free chocolates and other sweet natural aphrodisiacs to put the troops in the mood to make love with the submissive feminine slaves all around them\n.`; @@ -960,7 +960,7 @@ App.SF.fsIntegration = function(input = 'Menu', textDisplay = 100, text = `\n`) text += `\nThe grounds leading up to the entrance admitting land vehicles are paved over with an impressively thick layer of sand. This sandy layering is fortified with numerous heavy tank traps, huge boulders, and camouflaged pillboxes, and although your vehicle units have nothing to fear from these obstacles, an invading opponent will not.\n`; } if (textDisplay === 90 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) { - text += `\nThere is a powerful trend of tradition and conservatism in the Firebase, as many of the men and women enlisted in your service have tied the knot and taken the plunge into marriage, far earlier than their closest comrades had previously assumed they would. As sexual exclusivity and romantic attachment have grown, public nudity and public sex between soldiers have been on the decline. A stronger priority has been placed on couples' privacy as a result. Finally, more and more army wives are finding themselves pregnant, and some have already given birth. The children of Firebase couples are prized and raised by the entire community. Their entire childhood are a diversified, 'slow burn' form of training. By the time they are adolescents, every child will have has an excellent physical, vocational, and military education involving dozens of seasoned mentors. By the time they are adults, they've gotten a damn god sexual education too, and several enviable job prospects in both the Firebase and the wider arcology. This familial innovation you've introduced has formed a core part of life in the firebase community.\n`; + text += `\nThere is a powerful trend of tradition and conservatism in the Firebase, as many of the men and women enlisted in your service have tied the knot and taken the plunge into marriage, far earlier than their closest comrades had previously assumed they would. As sexual exclusivity and romantic attachment have grown, public nudity and public sex between soldiers have been on the decline. A stronger priority has been placed on couples' privacy as a result. Finally, more and more army wives are finding themselves pregnant, and some have already given birth. The children of Firebase couples are prized and raised by the entire community. Their entire childhood are a diversified, 'slow burn' form of training. By the time they are adolescents, every child will have has an excellent physical, vocational, and military education involving dozens of seasoned mentors. By the time they are adults, they've gotten a damn god sexual education too, and several enviable job prospects in both the Firebase and the wider arcology. This familial innovation you've introduced has formed a core part of life in the Firebase community.\n`; } if (textDisplay === 100 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) { text += `\nGender Fundamentalism: The Colonel has adopted three very young children that you often see her playing with. She's decided to give motherhood a shot, and surprisingly she even keeps a few dresses in her collection for when she goes on outings with them. The children are all named after different people she's deserted her old world army with in the past. They idolize their mother and try to imitate her as much as they can. Her soldiers know to give them a wide berth, and to do their part in keeping them out of the many unsavory and hazardous parts of The Firebase.\n`; @@ -1066,10 +1066,10 @@ App.SF.fsIntegration = function(input = 'Menu', textDisplay = 100, text = `\n`) text += `\nYour combat-drones look like flying mirrors, with digitally-rendered reflective panels integrated onto their frames, therefore enabling them to better replicate the many different environments they will find themselves in, in preparation for ambushes or assaults.\n`; } if (textDisplay === 60 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) { - text += `\nIt is worth noting that the garage has taken on many characteristics of an amphibious assault ship's well deck, harkening back to the amphibious landings of times both past and present. The entire garage floor is covered in a thick layer of water, complete with hoses and drains, shallow water fishes, rows of standardized fluorescent lighting, and even a powerful breeze that is felt every time the main entrance 'ramp' of the 'well deck' is lowered to allow entry or exit for both personnel and vehicles. Work stations are sectioned off with pre-fabricated synthetic walls, and vehicles are tended to on heavy hydraulic platforms that can be raised at will to assist crews in their repairs. Meanwhile, captured crabs, lobsters, frogs, and other natural amphibians are grilled regularly at the community barbeque that is set up at the far wall of the facility.\n`; + text += `\nIt is worth noting that the garage has taken on many characteristics of an amphibious assault ship's well deck, hearkening back to the amphibious landings of times both past and present. The entire garage floor is covered in a thick layer of water, complete with hoses and drains, shallow water fishes, rows of standardized fluorescent lighting, and even a powerful breeze that is felt every time the main entrance 'ramp' of the 'well deck' is lowered to allow entry or exit for both personnel and vehicles. Work stations are sectioned off with pre-fabricated synthetic walls, and vehicles are tended to on heavy hydraulic platforms that can be raised at will to assist crews in their repairs. Meanwhile, captured crabs, lobsters, frogs, and other natural amphibians are grilled regularly at the community barbecue that is set up at the far wall of the facility.\n`; } if (textDisplay === 65 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) { - text += `\nWithin the garage, extreme attention to detail is paid to the subject of versatility. Every ground vehicle is fitted with a hefty retractable amphibian kit complete with floatation and propulsion mounts, wide tracks or tires to enable operation in artic and swamp environments, and a remarkable degree of automation. These expensive augmentations are made to allow each vehicle to rapidly adapt to just about any mission requirement in the field, and transition from one combat environment to another without losing operational momentum.\n`; + text += `\nWithin the garage, extreme attention to detail is paid to the subject of versatility. Every ground vehicle is fitted with a hefty retractable amphibian kit complete with flotation and propulsion mounts, wide tracks or tires to enable operation in arctic and swamp environments, and a remarkable degree of automation. These expensive augmentations are made to allow each vehicle to rapidly adapt to just about any mission requirement in the field, and transition from one combat environment to another without losing operational momentum.\n`; } if (textDisplay === 70 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) { text += `\nThe floor of the hangar is a thin arrangement of pre-fabricated composite plastics, complete with its own metal grates, LED-illuminated footpaths, and 3D holographic display tables to scan and analyze debriefed aircraft and indicate damaged and worn out components. It is a controlled environment, and there are few spaces that are not flooded with screen lights from one information display or another. The hangar's breakroom has become an additional flight control room, complete with additional specialists that help coordinate landing and repair efforts and maximize overall efficiency. Meanwhile, primitive nanite colonies originally intended for autonomous wall and floor repair are now covering many of the walls in the hangar, with nanite overgrowths that frequently crop up throughout the facility being regularly pruned by dedicated teams of search-and-destroy slaves.\n`; @@ -1154,7 +1154,7 @@ App.SF.fsIntegration = function(input = 'Menu', textDisplay = 100, text = `\n`) break; case 'Maturity_Preferentialism': if (textDisplay === -1 && V.SF.FS[FS_OPTIONS[i]].gift > 0) { - text += `\nYour influence has long given you an inside track on the archeological discoveries made by the excavation and salvage teams that now dig up and study the Free Cities' very first [failed] arcologies. This is the very reason why you've been able to finally verify and procure a precious rare vial of the vaunted 'Methuselah Serum'. This recovered vial of the powerful Methuselah Serum, when metabolized, will radically slacken and prolong the natural aging processes of the body, so as to gradually and tremendously increase the overall lifespan of the user and preserve their physical and mental viability. Only after enough decades have passed will the user finally begin showing wrinkles, greyer hairs, and other signs of advanced aging as their body starts fight back to restore normal functioning. Surprisingly enough, The Colonel has already taken the serum, and is already looking forward to living a much longer, fuller life because of it. You now know what she will look like as an 'old' woman; not much different than what she looks like right now.\n`; + text += `\nYour influence has long given you an inside track on the archaeological discoveries made by the excavation and salvage teams that now dig up and study the Free Cities' very first [failed] arcologies. This is the very reason why you've been able to finally verify and procure a precious rare vial of the vaunted 'Methuselah Serum'. This recovered vial of the powerful Methuselah Serum, when metabolized, will radically slacken and prolong the natural aging processes of the body, so as to gradually and tremendously increase the overall lifespan of the user and preserve their physical and mental viability. Only after enough decades have passed will the user finally begin showing wrinkles, greyer hairs, and other signs of advanced aging as their body starts fight back to restore normal functioning. Surprisingly enough, The Colonel has already taken the serum, and is already looking forward to living a much longer, fuller life because of it. You now know what she will look like as an 'old' woman; not much different than what she looks like right now.\n`; } if (textDisplay === 5 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) { text += `\nThe food choices available are very broad, with accommodations made for the preparation of a very wide variety of classic dishes, all holdovers from the Old World or 'Free Cities originals' salvaged from the glory days of the first arcologies.\n`; @@ -1299,13 +1299,13 @@ App.SF.fsIntegration = function(input = 'Menu', textDisplay = 100, text = `\n`) text += `\nEach bed unit has 4 pairs of shackles attached; one for each corner post. As they please, soldiers will chain their favorite personal slave to their bed to wait for them until their return from duties, a meal, or a deployment. You see several dozen slaves confined to the barracks in this manner from where you are standing.\n`; } if (textDisplay === 35 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) { - text += `\nOn the largest wall in the armory, there is a massive wallscreen. This wallscreen serves as an interactive digital map of conquest, displaying the entire theatre of operation in tremendous detail. Scattered upon this zoomable mega map lies the many marker dots placed over it, each marking a specific past location that the Firebase's soldiers have fought at or raided. One only has to touch the screen to see a full profile of a prior combat engagement, search for a specific engagement, or zoom in or out of any point on the immense map. If one were only to touch a marker dots, they will see a full battle profile pop-up containing the brutal After Action Report of that battle, along with graphic pictures and video footage of it. Special emphasis is placed on treatment of captured soldiers and/or civilians after each battle, with several uncensored clips available on many of the profiles depicting beatdowns, mutilations, burnings, or literally anything else your soldiers felt like doing to their captives. The screaming can be heard in high-definition surround sound thanks to the tiny wallspeakers present. On both flanks of the wallscreen, a tightly bound slave is kneeling, with a ring gag in their mouth, so that onlookers can get a quick blowjob while they browse the records.\n`; + text += `\nOn the largest wall in the armory, there is a massive wallscreen. This wallscreen serves as an interactive digital map of conquest, displaying the entire theater of operation in tremendous detail. Scattered upon this zoomable mega map lies the many marker dots placed over it, each marking a specific past location that the Firebase's soldiers have fought at or raided. One only has to touch the screen to see a full profile of a prior combat engagement, search for a specific engagement, or zoom in or out of any point on the immense map. If one were only to touch a marker dots, they will see a full battle profile pop-up containing the brutal After Action Report of that battle, along with graphic pictures and video footage of it. Special emphasis is placed on treatment of captured soldiers and/or civilians after each battle, with several uncensored clips available on many of the profiles depicting beatdowns, mutilations, burnings, or literally anything else your soldiers felt like doing to their captives. The screaming can be heard in high-definition surround sound thanks to the tiny wallspeakers present. On both flanks of the wallscreen, a tightly bound slave is kneeling, with a ring gag in their mouth, so that onlookers can get a quick blowjob while they browse the records.\n`; } if (textDisplay === 40 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) { text += `\nThere are copious splatters of blood and semen to be found in the middle of the command center, and for good reason; there is a circle of pillories there, each loaded with a gagged and bloodied rebellious slave. During or after missions that prove to be frustrating or humiliating, commanders are free to take out their full frustrations on the pillory slaves. After pleasing victories, the command staff are known to attack the pillory slaves en masse, for a circular group victory fuck.\n`; } if (textDisplay === 45 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) { - text += `\nIn the 'special projects chamber' of the drug laboratory, the balcony's sealed control room overlooks a dreadful sight: a cold concrete floor holds dozens of unbroken slaves and disobedient soldiers from all around the Firebase and even a few undesirable citizens from the main arcology; here the drug laboratory tests and perfects its newest hallucinogenic, poison, and irritant formulae and gasses on deserving individuals so as to maximize your military's psychological and NBC warfare capabilities.\n`; + text += `\nIn the 'special projects chamber' of the drug laboratory, the balcony's sealed control room overlooks a dreadful sight: a cold concrete floor holds dozens of unbroken slaves and disobedient soldiers from all around the Firebase and even a few undesirable citizens from the main arcology; here the drug laboratory tests and perfects its newest hallucinogenic, poison, and irritant formulae and gases on deserving individuals so as to maximize your military's psychological and NBC warfare capabilities.\n`; } if (textDisplay === 50 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) { text += `\nThe prideful slave owners in the Firebase can be seen donating portions of their free time to studying and applying the slave debasement materials in their possession; best-selling slave-breaking books, harsh bondage apparel with complimentary rope or chain-link restraints, and slave discipline whips and prods are all commonplace tools to slavemaster hobbyists in your martial employ. Especially notable is the casual manner in which these slave-hostile materials are purchased.\n`; @@ -1326,16 +1326,16 @@ App.SF.fsIntegration = function(input = 'Menu', textDisplay = 100, text = `\n`) text += `\nThe Degradationism-inspired aircraft are favored for their dedication to lethality; every month, fresh POW's are chained up to the outside of tasked VTOLs for decoration, and every single aircraft comes augmented with many strands of barbed wire, many hull portholes for passengers to shoot enemies from, and additional hardpoints for attaching missile launcher tubes. When landing, your transport aircraft are known for the utterly massive torrents of suppressing fire they can generate within their chosen Landing Zones to disable and kill nearby combatants that are targeting dismounting soldiers. You have every intention of demoralizing and destroying anyone standing in opposition to your people, and your people all know and appreciate this.\n`; } if (textDisplay === 80 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) { - text += `\nThere is a discreet slave breaking dungeon not very far from the relatively-harsh slave processing cages, and it has much to offer. Obsequience, submission, righteous terror are instilled with great efficiency into every slave interned here through nonstop physical & mental torture. Remarkably, this location even provides complete personality reconstruction services, which involve deliberately mindbreaking inmates through intensive traumatization, before promptly rebuilding their minds and personas into the exact form desired by the clientele. Firebase-resident slaveowners often bring their newest purchases or captures to this place to fast track their slaves' transition into slave life, and it is not hard to see why, despite the high prices.\n`; + text += `\nThere is a discreet slave breaking dungeon not very far from the relatively-harsh slave processing cages, and it has much to offer. Obsequience, submission, righteous terror are instilled with great efficiency into every slave interned here through nonstop physical & mental torture. Remarkably, this location even provides complete personality reconstruction services, which involve deliberately mindbreaking inmates through intensive traumatization, before promptly rebuilding their minds and personae into the exact form desired by the clientele. Firebase-resident slaveowners often bring their newest purchases or captures to this place to fast track their slaves' transition into slave life, and it is not hard to see why, despite the high prices.\n`; } if (textDisplay === 85 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) { text += `\nA fully furnished, equipped, and staffed maximum-security military prison complex has been established on the outskirts of the Firebase entrance. With its tall rooftop watchtower and a spacious reinforced central courtyard, it can retain and retrain vast quantities of future slaves using the many tools and trainers available at all times to ensure that every captured person can be quickly made ready for a life of labor, be it sexual or otherwise. The trainers and prison guards are clinical and unsympathetic in their duties, and thanks to this facility's vast capacity, excess slaves that the Firebase cannot hold are no longer left behind after raids. Since the creation of the complex, the Firebase can now accommodate as many slaves as it wants, and now entire townships can be casually picked clean of human life and have their populations be fully trained at the Firebase's leisure before sale. The Firebase has always contained its own dedicated slaveholding and slave training facilities of course, but now, it enjoys truly peerless enslavement provisions.\n`; } if (textDisplay === 90 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) { - text += `\nDominance and Greed are sacrosanct in your Firebase, and this is making the "esprit de corps" very fearsome as the months pass by. This clan places great importance on the community's violence of action, and more personnel than ever are stacking the odds in their favor with close quarters combat regimens or advanced interrogation courses. Because of this, new recruits are accorded with hostility and careful scrutiny; the priority is weeding out aspirants too squeamish for the Firebase's good, and instilling ferocity and determination into those that are left. Staff and Soldiers alike are bound to their strict and highly competitive social totem poles, where esteem and respect comes strictly from each member's skills, kills, or wealth. Politeness and Compassion are seen as signs of weakness, of course. At the bottom of it all are the slaves; bar the Colonel and her top dogs, nearly everyone here is getting taken advantage of by those higher up, and thus everyone in need of a release valve for their rage will simply snatch up the nearest available slave. Therefore, unproved beatings, torturings, and rapings of the many slaves present are so common that they are ignored. At any time, one can see a few off duty veterans hazing the shit out of a new recruit. Over by the bars, two troopers are brawling in front of a jeering crowd, duking it out over some perceived slight or another. Elsewhere, a group of slaves is huddling together for warmth in the last few minutes of their sleep time. A predatory mindset has taken hold of the Firebase, and you doubt it will lt go anytime soon.\n`; + text += `\nDominance and Greed are sacrosanct in your Firebase, and this is making the "esprit de corps" very fearsome as the months pass by. This clan places great importance on the community's violence of action, and more personnel than ever are stacking the odds in their favor with close quarters combat regimens or advanced interrogation courses. Because of this, new recruits are accorded with hostility and careful scrutiny; the priority is weeding out aspirants too squeamish for the Firebase's good, and instilling ferocity and determination into those that are left. Staff and soldiers alike are bound to their strict and highly competitive social totem poles, where esteem and respect comes strictly from each member's skills, kills, or wealth. Politeness and Compassion are seen as signs of weakness, of course. At the bottom of it all are the slaves; bar the Colonel and her top dogs, nearly everyone here is getting taken advantage of by those higher up, and thus everyone in need of a release valve for their rage will simply snatch up the nearest available slave. Therefore, unproved beatings, torturings, and rapings of the many slaves present are so common that they are ignored. At any time, one can see a few off duty veterans hazing the shit out of a new recruit. Over by the bars, two troopers are brawling in front of a jeering crowd, duking it out over some perceived slight or another. Elsewhere, a group of slaves is huddling together for warmth in the last few minutes of their sleep time. A predatory mindset has taken hold of the Firebase, and you doubt it will lt go anytime soon.\n`; } if (textDisplay === 100 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) { - text += `\nDegradationism: The Colonel is on the prowl; she is more reckless, impulsive, and aggressive than before, as if there is some demanding beast inside of her that she can't quite satisfy. Her personality itself hasn't changed; she speaks with you just as affably as before... Her actions are what's different: Prisoners of war, slave captives, and civilians are treated with no dignity at all, and she seems to greatly enjoy punishing her troops harshly for transgressions and failures. She still generously rewards successes, however.\n`; + text += `\nDegradationism: The Colonel is on the prowl; she is more reckless, impulsive, and aggressive than before, as if there is some demanding beast inside of her that she can't quite satisfy. Her personality itself hasn't changed; she speaks with you just as affably as before... Her actions are what's different: prisoners of war, slave captives, and civilians are treated with no dignity at all, and she seems to greatly enjoy punishing her troops harshly for transgressions and failures. She still generously rewards successes, however.\n`; } break; case 'Physical_Idealism': @@ -1388,7 +1388,7 @@ App.SF.fsIntegration = function(input = 'Menu', textDisplay = 100, text = `\n`) text += `\nThe personnel of the hangar are impressively bulked on their own, but they seem to have applied their dedication to development to the vehicles in their care as well. Every airframe has been carefully enlarged to fit ever more powerful engines and additional fuel reserves into every aircraft. Powerful, 'muscular' aircraft are the sought-after goal, and each one is frequently checked and modified to enable even minor improvements. After all, isn't continuous improvement a key aspect of Idealism?\n`; } if (textDisplay === 80 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) { - text += `\nA grandiose open-air gymnasium occupies the space near the drug laboratory, where it can receive easy shipments of steroid syringes and protein supplements from the lab for the sake of any gymrat interested in such things. Within this spacious zone lie a broad variety of barbell-weights, machine-weights, exercise machines, huge discarded tires, battle ropes, punching bags & speed bags, training dummies, and even a few martial arts sparring cages are here, providing the fitness-obsessed population with powerful workout venues that they cannot replicate elsewhere within the Firebase, and eliminating the need to settle for dumbbells & bodyweight exercises or to waste their free time travelling to the gyms in the arcology above. Your warriors and their support staff are all grateful for the opportunity to begin making truly extensive gains.\n`; + text += `\nA grandiose open-air gymnasium occupies the space near the drug laboratory, where it can receive easy shipments of steroid syringes and protein supplements from the lab for the sake of any gymrat interested in such things. Within this spacious zone lie a broad variety of barbell-weights, machine-weights, exercise machines, huge discarded tires, battle ropes, punching bags & speed bags, training dummies, and even a few martial arts sparring cages are here, providing the fitness-obsessed population with powerful workout venues that they cannot replicate elsewhere within the Firebase, and eliminating the need to settle for dumbbells & bodyweight exercises or to waste their free time traveling to the gyms in the arcology above. Your warriors and their support staff are all grateful for the opportunity to begin making truly extensive gains.\n`; } if (textDisplay === 85 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) { text += `\nCrossfit has long been a popular interest in your Firebase subculture, and now, your personnel have a worthy environment to explore that interest. A large gauntlet of equipment and arrangements meant for aerobic, acrobatic, and athletic challenges are set up on this field to host a variety of competitions within quick succession. There are even stands for a limited audience, a commentator's booth, and a restroom.\n`; @@ -1450,7 +1450,7 @@ App.SF.fsIntegration = function(input = 'Menu', textDisplay = 100, text = `\n`) text += `\nThe personnel of the hangar are impressively pampered on their own, but they seem to have applied their dedication to delight to the vehicles in their care as well. Every airframe has been carefully enlarged to fit ever more luxuries and comforts into every aircraft. Internal heating and cooling systems are enhanced, every passenger compartment comes with its own wallscreen HDTV, and soft padded reclining seats line each passenger compartment, among other accommodations. No effort is spared in ensuring deployed troops and pilots are put at ease as soon as they mount up. After all, isn't continuous gratification a key aspect of Hedonism?\n`; } if (textDisplay === 80 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) { - text += `\nA stark narrow building occupies the space near the drug laboratory, where it can receive easy shipments anesthetics, filtrates, and detoxifying substances from the lab for the sake of any visitor in need of them. Within this spacious zone lie a long row of surgical chairs, where occupants can simply sit down and be placed into a deep rest by the numerous attendants, before being operated upon by the autosurgery suites above to receive advanced liposuction, carcinogenic filtration, and curative injection procedures that quickly and somewhat painlessly prolongs their lives and repairs the damage to their bodies incurred by their wild are carefree lifestyles within the Firebase. For those willing to pay the fees, this place provides the pleasure-obsessed population with powerful longevity solutions that they cannot replicate elsewhere within the Firebase, and eliminating the need to settle for intermittent diet & exercise or to waste their free time travelling to the crowded clinics in the arcology above. Your warriors and their support staff are all grateful for the opportunity to sustain their truly decadent lifestyles without guilt or consequence.\n`; + text += `\nA stark narrow building occupies the space near the drug laboratory, where it can receive easy shipments anesthetics, filtrates, and detoxifying substances from the lab for the sake of any visitor in need of them. Within this spacious zone lie a long row of surgical chairs, where occupants can simply sit down and be placed into a deep rest by the numerous attendants, before being operated upon by the autosurgery suites above to receive advanced liposuction, carcinogenic filtration, and curative injection procedures that quickly and somewhat painlessly prolongs their lives and repairs the damage to their bodies incurred by their wild are carefree lifestyles within the Firebase. For those willing to pay the fees, this place provides the pleasure-obsessed population with powerful longevity solutions that they cannot replicate elsewhere within the Firebase, and eliminating the need to settle for intermittent diet & exercise or to waste their free time traveling to the crowded clinics in the arcology above. Your warriors and their support staff are all grateful for the opportunity to sustain their truly decadent lifestyles without guilt or consequence.\n`; } if (textDisplay === 85 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) { text += `\nLuxury cruises have long been a popular interest in your Firebase subculture, and now, your personnel have a worthy environment to explore that interest. A small artificial lake has been built outside the Firebase entrance to host a small but well furnished premium yacht. The yacht lazily makes its daily revolutions around this lake, filled with rare and ever-changing entertainments that once cannot find inside the Firebase itself.\n`; @@ -1459,7 +1459,7 @@ App.SF.fsIntegration = function(input = 'Menu', textDisplay = 100, text = `\n`) text += `\nYour soldiers are rather lackadaisical about themselves and their bodies; the Firebase is a carefree place. Fun and Relaxation are pursuits of choice, as the weekly orgies, eating competitions, and drug exhibitions require little effort to enjoy. The peer pressure to indulge and make the most of each day is inescapable, and every individual has been seen participating in most of the delights available at least once. Obviously, every person down here, bar some of the newer recruits, has a very jolly disposition. Some are drunk, high, or both. Others are passed out. Some are just laughing at the others. However, everyone is thoroughly entertained.\n`; } if (textDisplay === 100 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) { - text += `\nDecadent Hedonism: The Colonel has a thin layer of fat covering her muscles and overall body, making her appealingly thicc without making her slow or weak; she even jiggles in the precisely correct places when she walks. Every weekend she has entire trays of food and substances brought to her pavilion on rotation, and you have no idea where she manages to put it all. She's certainly indulging her desires a lot more. She visits her doctors more often and regularly joins the training platoons in their daily runs to keep her body healthy.\n`; + text += `\nDecadent Hedonism: The Colonel has a thin layer of fat covering her muscles and overall body, making her appealingly 'thicc' without making her slow or weak; she even jiggles in the precisely correct places when she walks. Every weekend she has entire trays of food and substances brought to her pavilion on rotation, and you have no idea where she manages to put it all. She's certainly indulging her desires a lot more. She visits her doctors more often and regularly joins the training platoons in their daily runs to keep her body healthy.\n`; } break; case 'Slave_Pastoralism': @@ -1506,7 +1506,7 @@ App.SF.fsIntegration = function(input = 'Menu', textDisplay = 100, text = `\n`) text += `\nTo their good credit, the mechanics have also managed to affix compact chilled human milk dispensers to the interiors of the ground vehicles too. The seating for pilots have been reupholstered with tanned hide materials upon request, many of the interiors have been repainted with farmland or bovine designs, and even the floors have been given a light blanket of straw covering.\n`; } if (textDisplay === 70 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) { - text += `\nThe hangar's appearance is somewhat reminiscent of that of improvised rural airfields of the sort found in farmland countrysides all over the world; tall rows of crops and ploughed fields of dirt now surround or flank the runways and landing pads of the hangar, while the walls themselves are mostly covered in an active illustration wallpaper that depicts the outdoor sky in colors that change to reflect the actual time of day.\n`; + text += `\nThe hangar's appearance is somewhat reminiscent of that of improvised rural airfields of the sort found in farmland countrysides all over the world; tall rows of crops and plowed fields of dirt now surround or flank the runways and landing pads of the hangar, while the walls themselves are mostly covered in an active illustration wallpaper that depicts the outdoor sky in colors that change to reflect the actual time of day.\n`; } if (textDisplay === 75 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) { text += `\nThe Pastoralist modifications made by the hangar to its aircraft are surprisingly modest. Of particular note are the tanned hide leather upholstery placed on all of every aircraft's seating, and the milky white artificial contrails that every aircraft has been modified to optionally leave behind during any flight mission, regardless of weather conditions.\n`; @@ -1588,7 +1588,7 @@ App.SF.fsIntegration = function(input = 'Menu', textDisplay = 100, text = `\n`) break; case 'Multiculturalism': if (textDisplay === -1 && V.SF.FS[FS_OPTIONS[i]].gift > 0) { - text += `\nIn anticipation of the impending global meltdown that doomsday preppers are currently preparing for all around the world, you've had a secret location installed in the arcology, created to match the essential specifications of a modern luxury 'doomsday' bunker. To guarantee the Colonel's survival and comfort in the event of an apocalyptic crisis, you've gone all out: You've carved out an underground formation far underneath the arcology's foundations to build her a private fallout shelter, complete with a secure communications center, her overseer bedroom and several private bedrooms & bathrooms, an artificial aquifer, an agricultural greenhouse, a gymnasium & swimming pool, a fireproof storeroom packed with years worth of dried rations & medical supplies, a stocked munitions room, and a sealed underground passageway leading back up to the surface. When she first entered the overseer bedroom, she found the various emergency survival tomes you've bought for her and her future fellow dwellers. She also saw the extraordinary modular hazmat suit you've had made to her exact measurements, for that special day when she will be ready to emerge from shelter and take on whatever is left of the world.\n`; + text += `\nIn anticipation of the impending global meltdown that doomsday preppers are currently preparing for all around the world, you've had a secret location installed in the arcology, created to match the essential specifications of a modern luxury 'doomsday' bunker. To guarantee the Colonel's survival and comfort in the event of an apocalyptic crisis, you've gone all out: You've carved out an underground formation far underneath the arcology's foundations to build her a private fallout shelter, complete with a secure communications center, her overseer bedroom and several private bedrooms & bathrooms, an artificial aquifer, an agricultural greenhouse, a gymnasium & swimming pool, a fireproof storeroom packed with years worth of dried rations & medical supplies, a stocked munitions room, and a sealed underground passageway leading back up to the surface. When she first entered the overseer bedroom, she found the various emergency survival tomes you've bought for her and her future fellow dwellers. She also saw the extraordinary modular HazMat suit you've had made to her exact measurements, for that special day when she will be ready to emerge from shelter and take on whatever is left of the world.\n`; } if (textDisplay === 5 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) { text += `\nThe troops are provided their pick of foods from many Old World countries and many 'New World' Free Cities alike. Delicacies and drinks from nearly every part of the world are available, with many soldiers even being acquainted with the histories and variations of their favorite dishes.\n`; @@ -1627,7 +1627,7 @@ App.SF.fsIntegration = function(input = 'Menu', textDisplay = 100, text = `\n`) text += `\nSome would say that the Firebase's garage has become a mere showroom. Of course, the garage staff disagrees with this notion; the garage has become a place of demonstration and opportunity. The entire garage has been carefully rearranged; the repair, maintenance, and upgrade bays have been tightly reconfigured to fit snugly into the rear sections of the facility; the forefront of the floorspace has been repurposed to showcase the Firebase's newest and most exciting ground warfare vehicle platforms and upgrades to merchants, commanders, representatives, and dignitaries from a variety of allied and neutral territories and arcologies, as a basis for prospective future cooperation and trade deals, and of course, a form of threat deterrence against those secretly plotting hostilities. Exotic foods and wines are kept on store and made available during exhibition events so as to properly honor each VIP's prescience, and sometimes properly distinguished garage staff and vehicle crews are made to dress up and be introduced to these powerful figures as exalted VIP's in their own right. Overall, repairs take a bit longer to perform due to the troublesome reduction in operating space the workers have, but since these trade shows provide unique support and permissions from abroad, as well as further distinction from the multitude of less cooperative arcologies who do not form international ties as such, is that really a loss?\n`; } if (textDisplay === 65 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) { - text += `\nEvery vehicle unit comes with several empty and half-empty scrapbooks, lots of gel pens, and several modern polaroid & HD cameras with extra film and hard disks in reserve, all packed within a special fireproof box underneath the driver's seat; it is hoped that these materials might be used in the field to help vehicle crews capture and better documents the experiences, sights, and discoveries of your vehicle units as they explore, learn, and fight through foreign lands.\n`; + text += `\nEvery vehicle unit comes with several empty and half-empty scrapbooks, lots of gel pens, and several modern Polaroid & HD cameras with extra film and hard disks in reserve, all packed within a special fireproof box underneath the driver's seat; it is hoped that these materials might be used in the field to help vehicle crews capture and better documents the experiences, sights, and discoveries of your vehicle units as they explore, learn, and fight through foreign lands.\n`; } if (textDisplay === 70 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) { text += `\nYour original hangar staff have socialized themselves completely to the multiculturalist agenda, and have become a well-connected group within the Free Cities' international aviation engineering community. This flight club takes its profession very seriously; its members have even invested in modular bionic exosuits that can attach and detach all manner of intricate power tools at will. Every act of repair and improvement is cross-checked and verified by several qualified personnel before the serviced aircraft is approved for its net flight. Scented candles from abroad alleviate the stench of the heavy oils that lubricate your flying machines, while trendy global-trotting music drowns out the sound of heavy mechanical instruments at work. With this level of oversight and professionalism, any instance of malfunction or failure from your aircraft during future operations can be considered nothing short of sheer coincidence.\n`; @@ -1698,7 +1698,7 @@ App.SF.fsIntegration = function(input = 'Menu', textDisplay = 100, text = `\n`) text += `\nThe aircraft within the hangar cannot be slimmed down too much without stripping away at key systems and compromising their functionality, so instead the staff have settled for modifying their weight. Great expense has been taken to replace each airframe hull component with durable lightweight composite metal alloys, giving each aircraft a lighter weight and higher speed while retaining just as much of its original constitution. Because of this, Firebase aircraft are renowned on the battlefield for their speed, and despised for just how hard they are to score hits on because of their great speed.\n`; } if (textDisplay === 80 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) { - text += `\nThe barracks themselves have a new section built, and this section is very special: It is a comfortable, if minimalist, public housing condominium intended to host the families of those officers who desire to have their loved ones live in the comfort and safety of the Free Cities at minimal cost. Much like the building itself, each apartment of the condominium is slim but luxurious, and for the families that have chosen to live in this place, there is much fun to be had on the roof, which has its very own civilian-only swimming pool, hot tub, and barbeque platforms overlooking the rest of the Firebase.\n`; + text += `\nThe barracks themselves have a new section built, and this section is very special: It is a comfortable, if minimalist, public housing condominium intended to host the families of those officers who desire to have their loved ones live in the comfort and safety of the Free Cities at minimal cost. Much like the building itself, each apartment of the condominium is slim but luxurious, and for the families that have chosen to live in this place, there is much fun to be had on the roof, which has its very own civilian-only swimming pool, hot tub, and barbecue platforms overlooking the rest of the Firebase.\n`; } if (textDisplay === 85 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) { text += `\nThe colossal retractable blast doors that seal the Firebase whenever entry or exit are not required are no longer covered with only mere composite armor plating; the exterior armor plating is now itself covered by two massive interactive motion wallpapers depicting several very slim and very beautiful girls that are always beckoning incoming parties and even casual onlookers to enter.\n`; @@ -1760,7 +1760,7 @@ App.SF.fsIntegration = function(input = 'Menu', textDisplay = 100, text = `\n`) text += `\nThe aircraft within the hangar cannot be bulked up too much without increasing their weight significantly and thus compromising their functionality, so instead the staff have settled for modifying their appearance. Great expense has been taken to augment each airframe with an integrated 360 degree long-range holographic projector, giving each aircraft an utterly massive false appearance that is intended to terrify enemy ground troops and cause many of their active shooters to miss, as their shots pass harmlessly through some of the airspace that the aircraft's hologram is projected through. Because of this, Firebase aircraft are renowned on the battlefield for their apparent size, and despised for just how hard they are to score real hits on despite their large target profile.\n`; } if (textDisplay === 80 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) { - text += `\nThe barracks themselves have a new section built, and this section is very special: It is a spacious public housing condominium intended to host the families of those officers who desire to have their loved ones live in the comfort and safety of the Free Cities at minimal cost. Much like the building itself, each apartment of the condominium is expansive but plain, and for the families that have chosen to live in this place, there is much fun to be had in the lobby, which has its very own civilian-only movie theatre, recreation center, and sports arenas independent of the rest of the Firebase.\n`; + text += `\nThe barracks themselves have a new section built, and this section is very special: It is a spacious public housing condominium intended to host the families of those officers who desire to have their loved ones live in the comfort and safety of the Free Cities at minimal cost. Much like the building itself, each apartment of the condominium is expansive but plain, and for the families that have chosen to live in this place, there is much fun to be had in the lobby, which has its very own civilian-only movie theater, recreation center, and sports arenas independent of the rest of the Firebase.\n`; } if (textDisplay === 85 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) { text += `\nThe colossal retractable blast doors that seal the Firebase whenever entry or exit are not required are no longer covered with only mere composite armor plating; the exterior armor plating is now itself covered by two massive interactive motion wallpapers depicting several very busty and very beautiful girls that just beckoning incoming parties and even casual onlookers to enter.\n`; @@ -2022,7 +2022,7 @@ App.SF.fsIntegration = function(input = 'Menu', textDisplay = 100, text = `\n`) break; case 'Arabian_Revivalism': if (textDisplay === -1 && V.SF.FS[FS_OPTIONS[i]].gift > 0) { - text += `\nWith your wealth and influence, you've managed to compile the world's most comfortable, sophisticated, durable, and expensive fabrics into one magnificent garment; The Colonel's abaya. It is an article of unmatched grace, modesty, and comfort: Its soft, sweat-wicking cloth interior make it an airy albeit form-fitting dress, while its exterior ripstop light-absorbing carbon-black fabric allow the Colonel to simply disappear at will into shadows and dark rooms when she so pleases, especially if she decides to use the detachable niqab the garment came with. Underneath the dark exterior, a thin soft padding of lab-grown silk-Kevlar hybrid weave allows the abaya to resist direct hits from knives, shrapnel, and even intermediate small arms fire, and between the weave layers lies internal heating and cooling wiring that serve to ensure she is always at a good temperature. With a dress like this, the Colonel is now one of the best dressed and classiest women in the entire arcology.\n`; + text += `\nWith your wealth and influence, you've managed to compile the world's most comfortable, sophisticated, durable, and expensive fabrics into one magnificent garment: The Colonel's abaya. It is an article of unmatched grace, modesty, and comfort. Its soft, sweat-wicking cloth interior make it an airy albeit form-fitting dress, while its exterior ripstop light-absorbing carbon-black fabric allow the Colonel to simply disappear at will into shadows and dark rooms when she so pleases, especially if she decides to use the detachable niqab the garment came with. Underneath the dark exterior, a thin soft padding of lab-grown silk-Kevlar hybrid weave allows the abaya to resist direct hits from knives, shrapnel, and even intermediate small arms fire, and between the weave layers lies internal heating and cooling wiring that serve to ensure she is always at a good temperature. With a dress like this, the Colonel is now one of the best dressed and classiest women in the entire arcology.\n`; } if (textDisplay === 5 && V.SF.FS[FS_OPTIONS[i]].lv >= textDisplay) { text += `\nYou spare no expense to supply your troops with increasingly rare lamb and chicken meat, distinctive of Arabic cuisine.\n`; @@ -2176,7 +2176,7 @@ App.SF.fsIntegration = function(input = 'Menu', textDisplay = 100, text = `\n`) r += `<br>Outside, her many aircraft swarm the local airspace to patrol the Arcology outskirts, conduct recon scans of the upper levels, or monitor your sealed penthouse outside the range of your SAM turrets, while shooting down any other fleeing VTOL's. You will not be escaping by air today. No one will. No escaping by land either: Swarms of her drones are tasing fleeing noncombatants by the hundreds for later enslavement, as the remainder of her army begins to pour into the bloody Plaza. This is your Arcology's darkest hour.`; r += `<br>And yet your Mercenaries stand ready. On security feeds throughout the Residential Sectors and Garrison you see your elite sellswords charging out of their lodgings in full kit. They are few, but this is their home, and you are their Patron and Commander. They hold firm, fighting like legends of old in some places, and fighting like animals in others. The Mercenaries trapped downstairs near The Garrison take to the Markets, pinning down most of The Colonel's reinforcements from various shopping outlets using towed quad anti-aircraft guns, and ultimately cutting off many of the assets needed for The Colonel's ongoing assault upstairs. Enemy troop carriers laden with heavy infantry breach the shopping centers in order to dislodge them, only to have their inhabitants cooked alive before they can disembark in time or shot to pieces even when they do. Keeping these Mercenaries alive are the roving exosuit-clad tank hunter duos that frag entire armor platoons en route to these shopping outlets, resorting to carving open enemy AFV's up close with their powered CQB weapons once they've run out of missiles. Back in the Residencies upstairs, in the still-evacuating streets and atriums, your actively-camouflaged snipers take up choice positions on various balconies and overpasses, sowing panic among the advancing traitors with their impressive anti-material rifles with one explosive headshot after another, sometimes even hitting them through walls and buildings. In large indoor parks leading up to the main Residential courtyard, Mercenary fireteams force enemy flankers to flee every single footpath they walk through, harassing constantly and preventing any hostile reconnaissance or infiltration from being done.`; r += `<br>The main Residential courtyard features the Residential Sectors' massive elevator complex, which will give The Colonel's forces rapid access to the Promenade, and ultimately, You. In front of it, your Mercenary Captain stands atop one of the many meters-thick sandbag walls his men just assembled there, leading the raging defensive blockade in bringing the vanguard's assault to a gory halt. ${V.SF.Lower}'s bodies and bits and debris pile up in small walls on the outskirts under the burning heat of hundreds of flying autocannon rounds and dozens of screeching missiles. Before the vanguard's morale can break however, The Colonel shows up in person behind her own lines, kitted in a customized power armor and dragging, of all things, a hydraulic trebuchet loaded with a crudely-welded large metal box. She launches the box from beyond your Mercenaries' line of sight, sending it reeling towards them and predicting that they will try to shoot it out of the sky. They do, not wanting the slow but strange projectile to hit them directly, only learning of their folly when the metal 'box' detonates midair and releases a dense cloud of cluster bombs over their position. The munitions themselves disable some of the exosuits, but they don't kill too many on their own. However, the bomblets do succeed in detonating the various ammo dumps that were feeding your Mercenaries' blazing guns. The chain explosions, resulting fires, destroyed cover, and widespread casualties and confusion all create the perfect opportunity for The Colonel to storm the previously implacable barricade at the head of her troops, with her followers rushing the merc lines and blasting off the heavy armor plating of your disoriented Mercenaries themselves before stabbing them to death, or in some cases, hauling off the dis-armored and defeated female Mercenaries they discover for immediate use. As the few intact Mercenaries remaining desperately struggle to hold off the advancing horde with their remaining ammo, The Colonel takes on your dazed Mercenary Captain in single combat. When their ammunition runs dry, and their blasted battlesuits break down, they both eject, and then the knives come out. Minutes later, she stabs him in the side of his skull after she dodges yet another attempt to land a killing blow on her. With the source of Mercenary command and control gone, The Colonel staunches her own bleeding, yanks a trooper out of a near-pristine battlesuit that she now claims for herself, and directly organizes the isolation and extermination of the smaller teams of Mercenaries that are bleeding her troops everywhere else. She routs your Mercenaries for good with the razing of their Garrison structure. The ${V.SF.Lower} now enjoys absolute air and ground superiority. Soon the surviving rear of her army is brought upstairs from the killing floors down in the Markets, and the many elevators and cargo lifts of the elevator complex are boarded, with your executive override codes to remotely shut down the elevators somehow being manually bypassed by her combat engineers. It won't be long now.`; - r += `<br>Dawn has broken over the Free City. Only five hours into the slaughter (of which your Mercenaries no doubt bought you at least three), it becomes very clear to you that the only way to save your arcology is to destroy it. Everything and Everyone will burn before you let this crazy bitch and her rabid dogs get their dirty hands on you or your slaves. On your order, your most loyal subordinates, the ones who were with you since the early days to patrol your Arcology before you even had drones to protect it, fight their way to through the carnage of your panicking civilians on The Promenade to get to the exact hidden elevators that your Personal Assistant specifies for them. Their destination is the arcology's reactor complex, of course. Following the PA's instructions precisely, they arm their many high-yield explosive charges on your now-exposed and de-stabilized reactor, and in one final service to you, detonate them, creating a colossal explosion. The rapidly ascending heretics quite literally have the rug pulled from under them, as the blast takes out nearly all of the arcology's lesser foundational support beams, thus collapsing many thousands of metric tons of concrete, steel, plastic, and plaster out from underneath the upward bound Colonel and her men... And everyone else, unfortunately. With no foundation any longer, all of your arcology's interior Sectors are utterly gutted from the bottom-up by gravity itself, and everything beneath your ration-stocked, backup-powered Penthouse crumbles to the earth. The massive cloud of dust created by the widespread fires and interior collapse ends up covering the entire Free City for hours. Her aircraft, now bereft of their logistical support and command structure, immediately fly off to neighboring arcologies to offer their services to the various employers there, seeing as the coup has failed and they have nowhere else to go. The skies are free for You to travel as you please, but You aren't going anywhere.`; + r += `<br>Dawn has broken over the Free City. Only five hours into the slaughter (of which your Mercenaries no doubt bought you at least three), it becomes very clear to you that the only way to save your arcology is to destroy it. Everything and Everyone will burn before you let this crazy bitch and her rabid dogs get their dirty hands on you or your slaves. On your order, your most loyal subordinates, the ones who were with you since the early days to patrol your arcology before you even had drones to protect it, fight their way to through the carnage of your panicking civilians on The Promenade to get to the exact hidden elevators that your Personal Assistant specifies for them. Their destination is the arcology's reactor complex, of course. Following the PA's instructions precisely, they arm their many high-yield explosive charges on your now-exposed and de-stabilized reactor, and in one final service to you, detonate them, creating a colossal explosion. The rapidly ascending heretics quite literally have the rug pulled from under them, as the blast takes out nearly all of the arcology's lesser foundational support beams, thus collapsing many thousands of metric tons of concrete, steel, plastic, and plaster out from underneath the upward bound Colonel and her men... And everyone else, unfortunately. With no foundation any longer, all of your arcology's interior Sectors are utterly gutted from the bottom-up by gravity itself, and everything beneath your ration-stocked, backup-powered Penthouse crumbles to the earth. The massive cloud of dust created by the widespread fires and interior collapse ends up covering the entire Free City for hours. Her aircraft, now bereft of their logistical support and command structure, immediately fly off to neighboring arcologies to offer their services to the various employers there, seeing as the coup has failed and they have nowhere else to go. The skies are free for You to travel as you please, but You aren't going anywhere.`; r += `<br>It is late evening when the tremors finally stop. Everything below your Penthouse is ruin, and your arcology, its population, and your reputation are now essentially dust. However, the arcology did not fall. It. Is. Still. Yours. You shall rise again, not flee this tragedy in shame. Of course, no one will ever know that you sacrificed the arcology deliberately in order to save yourself; it is all too easy to claim that The Colonel carelessly damaged the reactor complex during her assault, ironically causing her own defeat. Frankly, sacrificing most of your tenants doesn't bother you as much as it probably should; maybe its because you know that if The Colonel and her men had won, all those people were as good as dead anyway.`; r += `<br>You know that if you want to survive, you'll need to surround yourself with workers and allies to rebuild fast, else your rivals gobble you up. It costs you a horrific sum to clear and process the wreckage and rebuild the basic Sector superstructures and infrastructure for your arcology on such short notice, even after liquidating everything your workers salvage. Your powerful friends still residing in the old world or other Free Cities have lent you a surprising amount of aid too, with quite a few lent super-heavy construction assets getting huge amounts of work done quickly. Even then, what you've been able to rebuild is very little. After a nearly sleepless, sexless week of immense toil, you've successfully organized tens of thousands of people in restoring the arcology to a barely functional condition (along with rudimentary imitations of all your upgrades), and you've even got some new Garrison Mercenaries in by week's end too... But its just not the same. If it weren't for your bruised weather-plating your arcology would look like a giant skeleton. Inside, it feels like a concrete boneyard; everything has been built cheap and utilitarian, and the walls aren't even painted. With only a few operational services staffed by commuters from neighboring arcologies, there is just an eerie silence just about everywhere. With few amenities for relief, there are going to be many long days ahead for your few tenants, most of them being wealthy but distraught returning travelers who left before the attack. Maybe your slaves can help entertain them. A lot of these people are VIP's it seems.`; r += `<br>It is now midnight. In a rare moment of reflection, you contemplate that what The Colonel just did to your arcology was exactly what you were all too happy to have her do to dozens, if not hundreds of innocent villages and townships under your shadow during her 'Raiding and Slaving' operations. Nevertheless, You have hard work ahead of you, especially now that your enemies see that you are now much weaker than you have ever been.`; @@ -2186,7 +2186,7 @@ App.SF.fsIntegration = function(input = 'Menu', textDisplay = 100, text = `\n`) V.trinkets.push("The Colonel's combat knife"); r += `Finally fed up with your constant intrusions into her territory and crew, The Colonel riles up her people for a full takeover against your arcology. The promises of plunder and dominion over some of the wealthiest tenants in the entire Free City (and their world-class slaves), including you, are all that's needed to get things started. However, not every soldier is eager to betray you.`; r += `\nIt is now Midnight. The lights are the first thing the Colonel's forces disable, as they still have the excellent night vision equipment you purchased for them. Some of your citizens start panicking almost immediately at the sudden blackout; this is very reminiscent of the Daughters of Liberty attack that still haunts many of their memories. Her horde of marauders purges the plaza and lower floors of the arcology mercilessly, thoughtlessly cutting through your tenants with an ease that stinks of true jealously and hatred. Most disturbingly, your penthouse's communications networks are all but destroyed, and your PA has been unreachable, seemingly hacked by some obscure technology you figure only the Colonel's contacts and few others could provide. As bad as all of this is, it is merely meant to distract and disrupt your mercenaries. The real threat is aerial.`; - r += `\nOutside the arcology, her many aircraft swarm the local airspace to patrol the Arcology outskirts, conduct recon scans of the upper levels, or monitor your now-secured penthouse, while shooting down any other fleeing VTOL's. You will not be escaping by air. No one will. No escaping by land either: Swarms of her drones are tasing fleeing noncombatants by the hundreds for resale, as the remainder of her army seizes control of vital arcology infrastructure. As you take note of this while donning your bathrobe, several missiles from attack VTOL's come crashing through your penthouse before detonating. Miraculously, no one is harmed by this, and it has even created a gap in a nearby wall for you to escape the penthouse through, but this is but a small comfort in the wake of the squads of disembarking troops, lead by The Colonel herself, rappelling into your penthouse to capture you directly.`; + r += `\nOutside the arcology, her many aircraft swarm the local airspace to patrol the arcology outskirts, conduct recon scans of the upper levels, or monitor your now-secured penthouse, while shooting down any other fleeing VTOL's. You will not be escaping by air. No one will. No escaping by land either: Swarms of her drones are tasing fleeing noncombatants by the hundreds for resale, as the remainder of her army seizes control of vital arcology infrastructure. As you take note of this while donning your bathrobe, several missiles from attack VTOL's come crashing through your penthouse before detonating. Miraculously, no one is harmed by this, and it has even created a gap in a nearby wall for you to escape the penthouse through, but this is but a small comfort in the wake of the squads of disembarking troops, lead by The Colonel herself, rappelling into your penthouse to capture you directly.`; r += `\nYou run. You run faster than you ever have in your life, past burning shops, burning vehicles, burning crowds, and burning bodies. An entire team of The Colonel's men are chasing you, lead by The Colonel herself, with their heavy kit probably the only reason they haven't caught you yet. They obviously want you alive, and you have been sharp enough to realize that this is very bad news for you. During your sprint, you also happen to run past several security cameras that impassively capture high-definition full-color footage of your retreat. When you eventually bump into one of your mercenaries and are escorted to a shelter, the personnel responsible for overseeing the camera feeds upload the footage of your great chase to the internet, where the entire world can see you being hounded by the men and women you personally hired to protect you and your arcology.`; r += `\nEventually, The Colonel's coup collapses. The selfish and malevolent troops following her, easily distracted by the myriad opportunities for rich plunder all around them, end up scattering throughout the arcology and losing cohesion, allowing for your much better organized security forces, mercenary hunter-killer teams, and even local enraged citizens to regroup and eventually overwhelm each enemy looter gang individually until a grinding total victory is achieved by the end of the week. The Colonel never finds, captures, or kills you. Nor is she ever found, captured, or killed herself. But she did set you on the run, and humiliatingly enough, the entire Free City now knows about it. Everyone has seen the clip. When you think about it she did manage to kill you after all, in a manner of speaking.`; r += `\nYour arcology is once more yours, but your people will never forget the horrifying week they spent being slaughtered and hunted by The Colonel's marauders, butchered by the army that you convinced them to allow, or the fact that you couldn't save them because you were very busy being hunted yourself.`; @@ -2197,7 +2197,7 @@ App.SF.fsIntegration = function(input = 'Menu', textDisplay = 100, text = `\n`) V.trinkets.push("The Colonel's sidearm"); r += `Finally fed up with your constant intrusions into her territory and crew, The Colonel riles up her people for a full takeover against your arcology. The promises of plunder and dominion over some of the wealthiest tenants in the entire Free City (and their world-class slaves), including you, are all that's needed to get things started.`; r += `\nAt midnight, the lights are the first thing the Colonel's forces disable, as they still have the excellent night vision equipment you purchased for them. Some of your citizens panic almost immediately at the sudden blackout; this is very reminiscent of the Daughters of Liberty attack that still haunts many of their memories. Her army vanguard strikes fast and hard throughout, cutting through your security units and drones with an ease that stinks of months of careful planning and study. Most disturbingly, your penthouse's communications networks are all but destroyed, and your PA has been unreachable, seemingly hacked by some obscure technology you figure only the Colonel's contacts and few others could provide.`; - r += `\nOutside, her many aircraft swarm the local airspace to patrol the Arcology outskirts, conduct recon scans of the upper levels, or monitor your now-secured penthouse, while shooting down any other fleeing VTOL's. You will not be escaping by air. No one will. No escaping by land either: Swarms of her drones are tasing fleeing noncombatants by the hundreds for detainment, as the remainder of her army seizes control of vital arcology infrastructure. After just a few days, the entire arcology falls under her direct control, all dissidents, criminals, and rebels hopelessly outgunned by her lavishly equipped and experienced warriors.`; + r += `\nOutside, her many aircraft swarm the local airspace to patrol the arcology outskirts, conduct recon scans of the upper levels, or monitor your now-secured penthouse, while shooting down any other fleeing VTOL's. You will not be escaping by air. No one will. No escaping by land either: Swarms of her drones are tasing fleeing noncombatants by the hundreds for detainment, as the remainder of her army seizes control of vital arcology infrastructure. After just a few days, the entire arcology falls under her direct control, all dissidents, criminals, and rebels hopelessly outgunned by her lavishly equipped and experienced warriors.`; r += `\nYou are trapped inside your Penthouse by the detachment of infantry guarding its exits in order to keep you in, probably with the goal of starving you out until you surrender yourself. With your communications down as well. your penthouse might as well be an island. You only salvation comes in the form of your neighboring arcologies and their respective mercenary contingents. They are intervening on your behalf out of paranoia; Free Cities are extremely wary of military power buildups near their borders, and they absolutely will not tolerate a full scale military cup within its borders. Fighting men and women from all over the City are seen battling in the streets of your arcology in a brutal blitzkrieg that your own tenants and mercenaries quickly join in on, pushing The Colonel's forces back gradually with sheer numbers. Eventually they are forced back into the Firebase proper, where they are sealed inside by using explosives to collapse part of the arcology atop them, rendering the Firebase itself totally defunct. Only a few small groups manage to scatter and flee this holding action, and your intelligence networks suspects that The Colonel herself was among one of them.`; r += `With the help of some unlikely intervention, you've won this little war. Your arcology is once more yours, but your people will never forget the traumatic week they spent under the heel of the army that you convinced them to allow, or the fact that it took an entire coalition of outsiders to save them.`; break; @@ -2206,7 +2206,7 @@ App.SF.fsIntegration = function(input = 'Menu', textDisplay = 100, text = `\n`) V.trinkets.push("The Colonel's canteen"); r += `Finally weary of your constant intrusions into her territory and crew, The Colonel gathers up her people for a full scale liquidation and dispersal of personnel and assets throughout the Free City itself; they are going to discreetly sell off the majority of their military hardware, assume new identities and melt into the fabric of the Free City's wider population. Gone are the days of plunder and dominion, as this retirement plan will make many of them some of the wealthiest tenants in the entire Free City, and they will no longer need to break their backs living the lives of soldiers. With the liquidation complete and the money distributed, the army moves on to the net stage of the plan.`; r += `\nAt midnight, the lights are the first thing the Colonel's forces disable, as they still have the excellent night vision equipment you purchased for them. Some of your citizens panic almost immediately at the sudden blackout; this is very reminiscent of the Daughters of Liberty attack that still haunts many of their memories. Her army moves fast and quietly throughout the arcology and the streets outside of it, slipping through your security units and drones with an ease that stinks of months of careful planning and study. Most disturbingly, your penthouse's communications networks are all but destroyed, and your PA has been unreachable, seemingly hacked by some obscure technology you figure only the Colonel's contacts and few others could provide.`; - r += `\nOutside, her many aircraft escape the local airspace to patrol the Arcology outskirts, evading recon scans, the monitoring systems of your secured penthouse, and the feeble attempts of your sentries to shoot them down. A great many of them will be escaping by air, it seems. Many are escaping by land too: Swarms of personnel carriers and utility trucks are driving off to neighboring arcologies or even neighboring Free Cities by the dozens for retirement, as the remainder of her army purchase new apartments and properties in various arcologies nearby while being dressed in civilian clothing. After just a few days, the entire army has essentially disappeared, hopelessly obscured by mountains of digital noise, detailed fake backstories, lavish fake identities, and lots of bribes and carefully destroyed digital and physical records. Your special force has gone completely AWOL and there is nothing you or anyone can do about it. It seems your experienced former warriors have an eye for deception too.`; + r += `\nOutside, her many aircraft escape the local airspace to patrol the arcology outskirts, evading recon scans, the monitoring systems of your secured penthouse, and the feeble attempts of your sentries to shoot them down. A great many of them will be escaping by air, it seems. Many are escaping by land too: Swarms of personnel carriers and utility trucks are driving off to neighboring arcologies or even neighboring Free Cities by the dozens for retirement, as the remainder of her army purchase new apartments and properties in various arcologies nearby while being dressed in civilian clothing. After just a few days, the entire army has essentially disappeared, hopelessly obscured by mountains of digital noise, detailed fake backstories, lavish fake identities, and lots of bribes and carefully destroyed digital and physical records. Your special force has gone completely AWOL and there is nothing you or anyone can do about it. It seems your experienced former warriors have an eye for deception too.`; r += `\nYou are trapped inside your Penthouse by the electricity-cutting digital virus that has kept you inside and communicatively isolated for the past week. Probably with the goal of keeping you in the dark, figuratively and literally, so that you could not intervene in The Colonel's total assimilation into the Free Cities. The lazy bitch did not want to cooperate with your Future Societies plans, so she and her men decided to stop being soldiers altogether, and live off of their savings. Your only relief comes at the midnight of the seventh day, when the virus self-terminates and the arcology's electricity, PA, and communications lines return to full functioning.`; r += `\nYour arcology is once more yours, but your people will never forget the troubling week they spent in total darkness and lockdown, or the sudden mass desertion and disappearance of the army that you convinced them to allow, or the fact that there was nothing you could do to prevent or mitigate any of it.`; break; @@ -2214,7 +2214,7 @@ App.SF.fsIntegration = function(input = 'Menu', textDisplay = 100, text = `\n`) BadOutcome += 'ISOLATION'; V.trinkets.push("The Colonel's explosives detonator"); r += `Unnerved by your ever-increasing influence over your men and undercutting of her authority, The Colonel uses heavy explosives at Midnight to seal off The Firebase from your access. When you step off of your express elevator, you are met not with two guards, but several armed proximity mines next to an incredibly thick wall of smoking rubble. No doubt there are machine gun nests, anti-tank nests, and lots more proximity mines just waiting for you on the other side, should you somehow get through the wall of debris.`; - r += `\nThe ${V.SF.Lower} still deploys into the old world to plunder as it pleases, but no longer for you. You receive no money from their exploits, and their total defiance and independence of you is a permanent stain on your reputation. Of course, you'll never have the needed military power to dislodge them, especially with all the redundant fortifications, crossfire envelopes, and myriad traps that paranoid bitch had built around each entrance ever since she went rouge. Trying to sabotage certain support beams from above to make the Firebase facility collapse in on itself could easily cause enough damage to topple other parts of the arcology too, and such a thing would be very difficult to cover up. In other words, you're stuck with them. The Firebase has become a permanent tumor on your Arcology and good name.`; + r += `\nThe ${V.SF.Lower} still deploys into the old world to plunder as it pleases, but no longer for you. You receive no money from their exploits, and their total defiance and independence of you is a permanent stain on your reputation. Of course, you'll never have the needed military power to dislodge them, especially with all the redundant fortifications, crossfire envelopes, and myriad traps that paranoid bitch had built around each entrance ever since she went rouge. Trying to sabotage certain support beams from above to make the Firebase facility collapse in on itself could easily cause enough damage to topple other parts of the arcology too, and such a thing would be very difficult to cover up. In other words, you're stuck with them. The Firebase has become a permanent tumor on your arcology and good name.`; break; } const Obj = { @@ -2636,7 +2636,7 @@ App.SF.AAR = function(endWeekCall = 1) { App.SF.Count = function() { const T = State.temporary, - C = Math.clamp, // sure that's correct? // Yes it works as inteded. + C = Math.clamp, // sure that's correct? // Yes it works as intended. S = V.SF.Squad, E = V.economy; T.FU = 10; @@ -3137,7 +3137,7 @@ App.SF.UnitText = function(input) { } if (S.Firebase >= 5) { appear = `is nearing the appearance of a military base.`; - launch = `The rest of the firebase has been designated for special projects.`; + launch = `The rest of the Firebase has been designated for special projects.`; artillery = `Artillery batteries are set around the base of the arcology.`; } if (V.terrain === "oceanic" || V.terrain === "marine") { @@ -3692,7 +3692,7 @@ App.SF.UnitText = function(input) { power1 = `The power plant has been converted to provide nuclear power.`; } if (S.AircraftCarrier >= 9) { - scramble1 = `The catapult has been converted to an electromagnetic launch system, halving the time it takes to scramblel jets.`; + scramble1 = `The catapult has been converted to an electromagnetic launch system, halving the time it takes to scramble jets.`; } if (S.AircraftCarrier >= 10) { jets = `Attack VTOL from the converted for carrier capability`; diff --git a/src/Mods/SpecialForce/TrickShotNight.tw b/src/Mods/SpecialForce/TrickShotNight.tw index d028eeb0cf62e852834c116a799531999489d985..c86f57400ead4a555bde619e1b5fb6047bc64bde 100644 --- a/src/Mods/SpecialForce/TrickShotNight.tw +++ b/src/Mods/SpecialForce/TrickShotNight.tw @@ -33,7 +33,8 @@ Despite your direct elevator, interaction with the majority of your security for It informs you that $SF.Lower have sent a message asking you to join them at their trick shot night. <</if>> -<br><br> <span id="result"> <<link "Politely decline">> +<br><br> +<span id="result"> <<link "Politely decline">> <<replace "#result">> You inform $SF.Lower that you aren't planning to attend. A short while later, you receive a message from them stating that their invitation is an open one and that you're welcome to join in another night. <</replace>> @@ -46,7 +47,8 @@ Despite your direct elevator, interaction with the majority of your security for <br><<link "Attend the trick shot night">> <<replace "#result">> You instruct $assistantName to inform $SF.Lower that you will be attending their trick shot night, and after settling your affairs in the penthouse you head down to the firebase. The atmosphere in the firebase is casual, especially in comparison to the usual situations you meet them, though your security force still maintain some measure of decorum towards you as their employer. Eventually, you settle in at the table with a handful of $SF.Lower officers and turn your @@.yellowgreen;<<print cashFormat(50000)>>@@ into bullets. All that remains is to decide your strategy for the night. - <br><br> <span id="bountyresult"> + <br><br> + <span id="bountyresult"> <<link "Play it safe">> <<replace "#bountyresult">> @@ -114,7 +116,8 @@ Despite your direct elevator, interaction with the majority of your security for /* 000-250-006 */ </span> Some aggressive play and an eye for riling up your fellow players has resulted in an immense payout, and all but one of your adversaries have folded as the situation has escalated. The only player still in contention is a wily old mercenary, the veteran of $his fair share of battles on the battlefield and at the firing range. $He's short on bullets, however, and $he'll have to buy in with something else as collateral. - <br><br> <span id="aliveresult"> + <br><br> + <span id="aliveresult"> <<link "A year of servitude">> <<set $activeSlave.clothes = "no clothing">> diff --git a/src/SecExp/attackHandler.tw b/src/SecExp/attackHandler.tw index 57d263a0b836cb1116b257cc4dbfdaebbe00ada2..46186e3aafadc243820240dff61c2c6fa5b48389 100644 --- a/src/SecExp/attackHandler.tw +++ b/src/SecExp/attackHandler.tw @@ -283,7 +283,7 @@ <<if $Bodyguard.muscles < -30>> <<set _woundChance += 1>> <</if>> - <<if $Bodyguard.eyes <= -2>> + <<if getBestVision($Bodyguard) === 0>> <<set _woundChance += 1>> <</if>> <<if $Bodyguard.heels == 1>> @@ -320,7 +320,7 @@ <<set $slaves[_i].voice = 0>> <<set $slaves[_i].health -= 60>> <<elseif $woundType == 2>> - <<set $slaves[_i].eyes = -2>> + <<run eyeSurgery($slaves[_i], "both", "blind")>> <<set $slaves[_i].health -= 30>> <<elseif $woundType == 3>> <<run removeLimbs($slaves[_i], "all")>> @@ -409,7 +409,7 @@ <<if $HeadGirl.muscles < -30>> <<set _woundChance += 1>> <</if>> - <<if $HeadGirl.eyes <= -2>> + <<if getBestVision($HeadGirl) === 0>> <<set _woundChance += 1>> <</if>> <<if $HeadGirl.heels == 1>> @@ -446,7 +446,7 @@ <<set $slaves[_i].voice = 0>> <<set $slaves[_i].health -= 60>> <<elseif $woundType == 2>> - <<set $slaves[_i].eyes = -2>> + <<set eyeSurgery($slaves[_i], "both", "blind")>> <<set $slaves[_i].health -= 30>> <<elseif $woundType == 3>> <<run removeLimbs($slaves[_i], "all")>> diff --git a/src/SecExp/authorityReport.tw b/src/SecExp/authorityReport.tw index 2696e9b9a61b94c6d4d3fb914aa218de299cdeb5..915e68490185c872ac7ba6603df9c0c89d7d3409 100644 --- a/src/SecExp/authorityReport.tw +++ b/src/SecExp/authorityReport.tw @@ -171,5 +171,6 @@ This week <<set $SecExp.core.authority = Math.trunc(Math.clamp($SecExp.core.authority, 0, 20000))>> <<if $SecExp.settings.rebellion.enabled == 1>> - <br><br> <<include "rebellionGenerator">> /* rebellions */ + <br><br> + <<include "rebellionGenerator">> /* rebellions */ <</if>> \ No newline at end of file diff --git a/src/SecExp/rebellionReport.tw b/src/SecExp/rebellionReport.tw index cb2eebbb597727feb75f8d47f92cfa1c5036f3d7..c74fc093fa6dbdcde152271bca5b0bd14c2ae982 100644 --- a/src/SecExp/rebellionReport.tw +++ b/src/SecExp/rebellionReport.tw @@ -576,7 +576,7 @@ <<if $Concubine.muscles < -30>> <<set _woundChance += 1>> <</if>> - <<if $Concubine.eyes <= -2>> + <<if getBestVision($Concubine) === 0>> <<set _woundChance += 1>> <</if>> <<if $Concubine.heels == 1>> @@ -609,7 +609,7 @@ <<set $Concubine.voice = 0>> <<elseif $woundType == 2>> a splinter hit $his face, severely damaging $his eyes. - <<set $Concubine.eyes = -2>> + <<run eyeSurgery($Concubine, "both", "blind")>> <<elseif $woundType == 3>> an explosion near $him caused the loss of all $his limbs. <<run removeLimbs($Concubine, "all")>> @@ -637,7 +637,7 @@ <<if $Bodyguard.muscles < -30>> <<set _woundChance += 1>> <</if>> - <<if $Bodyguard.eyes <= -2>> + <<if getBestVision($Bodyguard) === 0>> <<set _woundChance += 1>> <</if>> <<if $Bodyguard.heels == 1>> @@ -670,7 +670,7 @@ <<set $Bodyguard.voice = 0>> <<elseif $woundType == 2>> A splinter hit _his2 face, severely damaging _his2 eyes. - <<set $Bodyguard.eyes = -2>> + <<run eyeSurgery($Bodyguard, "both", "blind")>> <<elseif $woundType == 3>> An explosion near _him2 caused the loss of all _his2 limbs. <<run removeLimbs($Bodyguard, "all")>> @@ -745,7 +745,7 @@ <<if $Concubine.muscles < -30>> <<set _woundChance += 1>> <</if>> - <<if $Concubine.eyes <= -2>> + <<if getBestVision($Concubine) === 0>> <<set _woundChance += 1>> <</if>> <<if $Concubine.heels == 1>> @@ -778,7 +778,7 @@ <<set $Concubine.voice = 0>> <<elseif $woundType == 2>> a splinter hit $his face, severely damaging $his eyes. - <<set $Concubine.eyes = -2>> + <<run eyeSurgery($Concubine, "both", "blind")>> <<elseif $woundType == 3>> an explosion near $him caused the loss of all $his limbs. <<run removeLimbs($Concubine, "all")>> @@ -854,7 +854,7 @@ <<if $Concubine.muscles < -30>> <<set _woundChance += 1>> <</if>> - <<if $Concubine.eyes <= -2>> + <<if getBestVision($Concubine) === 0>> <<set _woundChance += 1>> <</if>> <<if $Concubine.heels == 1>> @@ -887,7 +887,7 @@ <<set $Concubine.voice = 0>> <<elseif $woundType == 2>> a splinter hit $his face, severely damaging $his eyes. - <<set $Concubine.eyes = -2>> + <<run eyeSurgery($Concubine, "both", "blind")>> <<elseif $woundType == 3>> an explosion near $him caused the loss of all $his limbs. <<run removeLimbs($Concubine, "all")>> diff --git a/src/SecExp/secExpSmilingMan.tw b/src/SecExp/secExpSmilingMan.tw index d56e275466a96425b4f4019b506a653baf68cc68..cf05e487dcf30c07a4a944be19e6da3d89ce2d56 100644 --- a/src/SecExp/secExpSmilingMan.tw +++ b/src/SecExp/secExpSmilingMan.tw @@ -402,7 +402,8 @@ <<else>> a second — $he barely manages to recover $his usual demeanor. <</if>> - <br><br> <<set $saleDescription = 0, $applyLaw = 0>> + <br><br> + <<set $saleDescription = 0, $applyLaw = 0>> <<include "Long Slave Description">> <br> <<include "New Slave Intro">> <</if>> diff --git a/src/art/vector/Body_Clothing_Control.tw b/src/art/vector/Body_Clothing_Control.tw index 85d3e9789c194ef43327639bbe8148cf97a912df..0ecade1d27598491202ba2574eeee14ef531f83f 100644 --- a/src/art/vector/Body_Clothing_Control.tw +++ b/src/art/vector/Body_Clothing_Control.tw @@ -2,15 +2,12 @@ <<set _eyeBallColor = "#ffffff">> -<<if _artSlave.eyeColor != "">> - <<if _artSlave.eyeColor.split(" ").length > 1>> - <<set _eyeLens = _artSlave.eyeColor.split(" ")[0]>> - - <<if _eyeLens == "demonic">> - <<set _eyeBallColor = _eyeColor>> - <<elseif _eyeLens == "devilish">> - <<set _eyeBallColor = "#000000">> - <</if>> +<<if hasAnyEyes(_artSlave)>> + <<set _eyeLens = hasLeftEye(_artSlave) ? getLeftEyePupil(_artSlave) : getRightEyePupil(_artSlave)>> + <<if _eyeLens == "demonic">> + <<set _eyeBallColor = hasLeftEye(_artSlave) ? getLeftEyeColor(_artSlave) : getRightEyeColor(_artSlave)>> + <<elseif _eyeLens == "devilish">> + <<set _eyeBallColor = "#000000">> <</if>> <</if>> @@ -97,4 +94,4 @@ <<set _showTorsoHighlight = 0>> <<set _showLegHighlight = 0>> <<set _showBoobsHighlight = 0>> -<</if>> \ No newline at end of file +<</if>> diff --git a/src/art/vector/VectorArtJS.js b/src/art/vector/VectorArtJS.js index f6f25cd0a6a81c15c1f724401292524229ddba07..0227136241d63723cf033b32b04c8829cd5d8e06 100644 --- a/src/art/vector/VectorArtJS.js +++ b/src/art/vector/VectorArtJS.js @@ -1325,7 +1325,11 @@ App.Art.vectorArtElement = (function() { T.glassesColor = slave.glassesColor || "#010101"; /* use custom color or default */ } - T.eyeColor = extractColor(slave.eyeColor, 1); + if (hasAnyEyes(slave)) { + T.eyeColor = extractColor(hasLeftEye(slave) ? getLeftEyeColor(slave) : getRightEyeColor(slave), 1); + } else { + T.eyeColor = extractColor("brown"); + } T.outfitBaseColour = outfitBaseColour; } @@ -1670,7 +1674,12 @@ App.Art.vectorArtElement = (function() { T.pubicHairColour = extractColor(slave.pubicHColor); T.underarmHairColour = extractColor(slave.underArmHColor); T.eyebrowHairColour = extractColor(slave.eyebrowHColor); - T.sclerae = extractColor(slave.sclerae); + if (hasAnyEyes(slave)) { + T.sclerae = extractColor(hasLeftEye(slave) ? slave.eye.left.sclera : slave.eye.right.sclera); + + } else { + T.sclerae = extractColor("white"); + } } function setShoeColor() { diff --git a/src/art/vector_revamp/vectorRevampedArtControl.js b/src/art/vector_revamp/vectorRevampedArtControl.js index 777e24b26bebf37cd482239409468acb051138c8..e752bf9b8d273f37ba905b109c1079e93b37e514 100644 --- a/src/art/vector_revamp/vectorRevampedArtControl.js +++ b/src/art/vector_revamp/vectorRevampedArtControl.js @@ -173,17 +173,11 @@ class ArtStyleControl { } applyEyeLensStyle() { - if (this.artSlave.eyeColor === null || this.artSlave.eyeColor === undefined) { + if (!hasAnyEyes(this.artSlave)) { return; } - let eyeColorSplit = this.artSlave.eyeColor.split(" "); - - if (eyeColorSplit === 1) { - return; - } - - let eyeLens = eyeColorSplit[0]; + let eyeLens = hasLeftEye(this.artSlave) ? getLeftEyePupil(this.artSlave) : getRightEyePupil(this.artSlave); switch (eyeLens) { case "demonic": @@ -308,7 +302,11 @@ class ArtStyleControl { this.eyeball.fill = "#dfdfdf"; this.iris = new ArtStyleEntry("iris"); - this.iris.fill = extractColor(this.artSlave.eyeColor, 1); + if (hasAnyEyes(this.artSlave)) { + this.iris.fill = extractColor(hasLeftEye(this.artSlave) ? getLeftEyeColor(this.artSlave) : getRightEyeColor(this.artSlave), 1); + } else { + this.iris.fill = extractColor("brown", 1); + } this.highlight1 = new ArtStyleEntry("highlight1"); this.highlight1.fill = "#ffffff"; diff --git a/src/endWeek/saNanny.js b/src/endWeek/saNanny.js index d68140b503c3ecd31974899914050b20f4ac232f..3ffe96b82e2dc97014afe77dd4882b08ca62e8d9 100644 --- a/src/endWeek/saNanny.js +++ b/src/endWeek/saNanny.js @@ -64,7 +64,7 @@ window.saNanny = function saNanny(slave) { t += ` ${His} low sex drive keeps ${him} from becoming too distracted by the intercourse all around ${him}, making ${him} more efficient.`; } // TODO: - if ((slave.eyes <= -1 && slave.eyewear !== "corrective glasses" && slave.eyewear !== "corrective contacts") || (slave.eyewear === "blurring glasses") || (slave.eyewear === "blurring contacts")) { + if (!canSeePerfectly(slave)) { t += ` ${His} bad vision makes ${him} a worse nanny.`; } diff --git a/src/endWeek/saServant.js b/src/endWeek/saServant.js index b52daabac3ff2d59a7599ce3fc095b88f37f95c9..f8db6797f13cf4faeae757639c6cc6d9e7a3f17b 100644 --- a/src/endWeek/saServant.js +++ b/src/endWeek/saServant.js @@ -97,7 +97,7 @@ window.saServant = function saServant(slave) { t += ` ${His} low sex drive keeps ${him} from becoming too distracted by the intercourse all around ${him}, making ${him} more efficient.`; } - if ((slave.eyes <= -1 && slave.eyewear !== "corrective glasses" && slave.eyewear !== "corrective contacts") || (slave.eyewear === "blurring glasses") || (slave.eyewear === "blurring contacts")) { + if (!canSeePerfectly(slave)) { t += ` ${His} bad vision makes ${him} a worse servant.`; } diff --git a/src/endWeek/saWorkTheFarm.js b/src/endWeek/saWorkTheFarm.js index 93fa0c6da327bddc9ae605c4e753105ac106387a..3c4705b0544898314b5a4bf08b0f31af7103a3f2 100644 --- a/src/endWeek/saWorkTheFarm.js +++ b/src/endWeek/saWorkTheFarm.js @@ -67,10 +67,10 @@ window.saWorkTheFarm = function saWorkTheFarm(slave) { if (slave.weight > 95) { t += `${He} is so overweight that ${he} has to stop every few minutes to catch ${his} breath, and so ${his} productivity suffers. `; } - if (slave.eyes === -1) { - t += `${His} nearsightedness makes it harder for ${him} to work as hard as ${he} otherwise would. `; - } else if (slave.eyes < -1) { + if (!canSee(slave)) { t += `${His} blindness makes it extremely difficult for ${him} to work, severely limiting ${his} production. `; + } else if (!canSeePerfectly(slave)) { + t += `${His} nearsightedness makes it harder for ${him} to work as hard as ${he} otherwise would. `; } if (slave.hears === -1) { t += `${He} is hard-of-hearing, which gets in the way of ${his} work whenever ${he} misses directions`; @@ -343,9 +343,9 @@ window.saWorkTheFarm = function saWorkTheFarm(slave) { } else if (slave.muscles < -30) { // TODO: write this - maybe something about the slave's ability to handle the animal? } - if (slave.eyes < 1) { + if (!canSeePerfectly(slave)) { t += `${His} `; - if (slave.eyes < 0) { + if (!canSee(slave)) { t += `blindness makes it impossible`; } else { t += `nearsightedness makes it harder`; diff --git a/src/events/intro/introSummary.tw b/src/events/intro/introSummary.tw index e7aacfb75b0e090dd3c613ccaa2ad7ac4f6b8ad8..e0110d3a93c7d624c20470b7e90aa6a92f8f77c3 100644 --- a/src/events/intro/introSummary.tw +++ b/src/events/intro/introSummary.tw @@ -528,7 +528,7 @@ __''The Free City''__ <<option "Africa" "Africa" "$language = 'Arabic'">> <<option "Asia" "Asia" "$language = 'Chinese'">> <<option "Australia" "Australia" "$language = 'English'">> - <<option "Japan" "Japan" "$language = 'Japanese', $PC.race = 'asian', $PC.nationality = 'Japanese', $PC.hColor = 'black', $PC.eye.right.iris = 'brown', $PC.eye.left.iris = 'brown'">> + <<option "Japan" "Japan" "$language = 'Japanese', $PC.race = 'asian', $PC.nationality = 'Japanese', $PC.hColor = 'black', $PC.eye.origColor = 'brown', resetEyeColor($PC)">> <</options>> <<else>> <<options $continent>> @@ -748,11 +748,10 @@ __''Player Character''__ <</options>> <br> - <<set $PC.eye.left.iris = $PC.eye.right.iris>> <<options>> Your eyes are: <<option>> - <<textbox2 "$PC.eye.right.iris" $PC.eye.right.iris "Intro Summary">> + <<textbox2 "$PC.eye.origColor" $PC.eye.origColor "Intro Summary">> <</options>> <br> <<options>> @@ -1043,7 +1042,7 @@ __''Player Character''__ //Make sure to replace your "s"s with "th"s to have working lisps in your lisped title.// <br> - You are a $PC.nationality $PC.race with <<if $PC.markings == "heavily freckled">>heavily freckled<<elseif $PC.markings == "freckles">>lightly freckled<<else>>clear<</if>> $PC.skin skin, $PC.hColor hair and $PC.eye.right.iris eyes. You have a $PC.faceShape face. + You are a $PC.nationality $PC.race with <<if $PC.markings == "heavily freckled">>heavily freckled<<elseif $PC.markings == "freckles">>lightly freckled<<else>>clear<</if>> $PC.skin skin, $PC.hColor hair and <<print App.Desc.eyesColor($PC)>>. You have a $PC.faceShape face. <br> Your preferred refreshment is <<textbox2 "$PC.refreshment" $PC.refreshment "Intro Summary">> [[Cigars|Intro Summary][$PC.refreshment = "cigar",$PC.refreshmentType = 0]] | [[Whiskey|Intro Summary][$PC.refreshment = "whiskey",$PC.refreshmentType = 1]] @@ -1395,11 +1394,12 @@ __''Mods''__ <<if $secExpEnabled > 0>> <<set $wasToggledBefore = 1>> <</if>> + <<run resetEyeColor($PC)>> <</link>> <<if ($economy != 100) || ($seeDicks != 25) || ($continent != "North America") || ($internationalTrade != 1) || ($internationalVariety != 1) || ($seeRace != 1) || ($seeNationality != 1) || ($seeExtreme != 0) || ($seeCircumcision != 1) || ($seeAge != 1) || ($plot != 1)>> - | [[restore defaults|Intro Summary][$seeDicks = 25,$economy = 100,$continent = "North America",$internationalTrade = 1,$internationalVariety = 1,$seeRace = 1,$seeNationality = 1,$seeExtreme = 0,$seeCircumcision = 1,$seeAge = 1,$plot = 1]] + | [[restore defaults|Intro Summary][$seeDicks = 25, $economy = 100, $continent = "North America", $internationalTrade = 1, $internationalVariety = 1, $seeRace = 1, $seeNationality = 1, $seeExtreme = 0, $seeCircumcision = 1, $seeAge = 1, $plot = 1]] <</if>> <br><br> -[[Cheat Start|init Nationalities][cashX(1000000, "cheating"),$PC.rules.living = "luxurious",repX(20000, "cheating"),$dojo += 1,$cheatMode = 1,$seeDesk = 0, $seeFCNN = 0, $sortSlavesBy = "devotion",$sortSlavesOrder = "descending",$sortSlavesMain = 0,$rulesAssistantMain = 1,$abbreviateDevotion = 1,$abbreviateRules = 1,$abbreviateClothes = 2,$abbreviateHealth = 1,$abbreviateDiet = 1,$abbreviateDrugs = 1,$abbreviateRace = 1,$abbreviateNationality = 1,$abbreviateGenitalia = 1,$abbreviatePhysicals = 1,$abbreviateSkills = 1,$abbreviateMental = 2,$PC.skill.trading = 100,$PC.skill.warfare = 100,$PC.skill.slaving = 100,$PC.skill.engineering = 100,$PC.skill.medicine = 100,$PC.skill.hacking = 100]] | //Intended for debugging: may have unexpected effects// +[[Cheat Start|init Nationalities][cashX(1000000, "cheating"), $PC.rules.living = "luxurious",repX(20000, "cheating"), $dojo += 1, $cheatMode = 1, $seeDesk = 0, $seeFCNN = 0, $sortSlavesBy = "devotion", $sortSlavesOrder = "descending", $sortSlavesMain = 0, $rulesAssistantMain = 1, $abbreviateDevotion = 1, $abbreviateRules = 1, $abbreviateClothes = 2, $abbreviateHealth = 1, $abbreviateDiet = 1, $abbreviateDrugs = 1, $abbreviateRace = 1, $abbreviateNationality = 1, $abbreviateGenitalia = 1, $abbreviatePhysicals = 1, $abbreviateSkills = 1, $abbreviateMental = 2, $PC.skill.trading = 100, $PC.skill.warfare = 100, $PC.skill.slaving = 100, $PC.skill.engineering = 100, $PC.skill.medicine = 100, $PC.skill.hacking = 100, resetEyeColor($PC)]] | //Intended for debugging: may have unexpected effects// diff --git a/src/events/intro/locationIntro.tw b/src/events/intro/locationIntro.tw index 15732ebbe7211ddb9114a38a81143e312b0d74a0..cb1a33f74ae90a508ceab72ebfbbdcc4c9df9b7d 100644 --- a/src/events/intro/locationIntro.tw +++ b/src/events/intro/locationIntro.tw @@ -10,7 +10,7 @@ As the old countries crumble and technology stagnates, the gap between rich and [[Africa|Intro Summary][$continent = "Africa", $language = "Arabic"]] [[Asia|Intro Summary][$continent = "Asia", $language = "Chinese"]] <<if $freshPC == 1 || $saveImported == 0>> - [[Japan|Intro Summary][$continent = "Japan", $language = "Japanese", $PC.race = "asian", $PC.nationality = "Japanese", $PC.hColor = "black", $PC.eye.right.iris = "brown", $PC.eye.left.iris = "brown"]] + [[Japan|Intro Summary][$continent = "Japan", $language = "Japanese", $PC.race = "asian", $PC.nationality = "Japanese", $PC.hColor = "black", $PC.eye.origColor = "brown", resetEyeColor($PC)]] <<else>> [[Japan|Intro Summary][$continent = "Japan", $language = "Japanese"]] <</if>> diff --git a/src/facilities/nursery/nurseryDatatypeCleanup.js b/src/facilities/nursery/nurseryDatatypeCleanup.js index 2eac8e034c34e9e7033675caafee57aa2264703f..0af37840adfe6c6ccdbf251d1bbbbcd08f6830d7 100644 --- a/src/facilities/nursery/nurseryDatatypeCleanup.js +++ b/src/facilities/nursery/nurseryDatatypeCleanup.js @@ -72,19 +72,6 @@ App.Facilities.Nursery.ChildDatatypeCleanup = function(child) { if (typeof child.faceShape !== "string") { child.faceShape = "normal"; } - child.eyes = Math.clamp(+child.eyes, -3, 1) || 1; /* if 0 or undefined, this sets to 1 */ - if (typeof child.eyeColor !== "string") { - child.eyeColor = "brown"; - } - if (typeof child.origEye !== "string") { - child.origEye = child.eyeColor; - } - if (typeof child.pupil !== "string") { - child.pupil = "circular"; - } - if (typeof child.sclerae !== "string") { - child.sclerae = "white"; - } if (child.lips !== 0) { child.lips = Math.clamp(+child.lips, 0, 100) || 15; } @@ -565,10 +552,6 @@ App.Facilities.Nursery.InfantDatatypeCleanup = function(child) { if (typeof child.faceShape !== "string") { child.faceShape = "normal"; } - child.eyes = Math.clamp(+child.eyes, -3, 1) || 1; /* if 0 or undefined, this sets to 1 */ - if (typeof child.eyeColor !== "string") { - child.eyeColor = "brown"; - } } function hairDatatypeCleanup(child) { diff --git a/src/facilities/nursery/nurseryWidgets.js b/src/facilities/nursery/nurseryWidgets.js index 40d76c17aa211db97a40427d83981f65b88747e2..72b7930972e2a8ebb475f9dc5e10105882eb2451 100644 --- a/src/facilities/nursery/nurseryWidgets.js +++ b/src/facilities/nursery/nurseryWidgets.js @@ -1068,9 +1068,9 @@ App.Facilities.Nursery.InfantSummary = function(child) { * @param {App.Entity.SlaveState} child */ function shortEyes(child) { - if (child.eyes === -2) { + if (!canSee(slave)) { r += `<span class="red">Blind</span> `; - } else if (((child.eyes === -1) && (child.eyewear !== "corrective glasses") && (child.eyewear !== "corrective contacts")) || (child.eyewear === "blurring glasses") || (child.eyewear === "blurring contacts")) { + } else if (!canSeePerfectly(slave)) { r += `<span class="yellow">Sight-</span> `; } } @@ -1129,9 +1129,9 @@ App.Facilities.Nursery.InfantSummary = function(child) { * @param {App.Entity.SlaveState} child */ function longEyes(child) { - if (child.eyes <= -2) { + if (!canSee(slave)) { r += `<span class="red">Blind.</span> `; - } else if (((child.eyes === -1) && (child.eyewear !== "corrective glasses") && (child.eyewear !== "corrective contacts")) || (child.eyewear === "blurring glasses") || (child.eyewear === "blurring contacts")) { + } else if (!canSeePerfectly(slave)) { r += `<span class="yellow">Nearsighted.</span> `; } } @@ -4442,9 +4442,9 @@ App.Facilities.Nursery.ChildSummary = function(child) { * @param {App.Entity.SlaveState} child */ function shortEyes(child) { - if (child.eyes === -2) { + if (!canSee(slave)) { r += `<span class="red">Blind</span> `; - } else if (((child.eyes === -1) && (child.eyewear !== "corrective glasses") && (child.eyewear !== "corrective contacts")) || (child.eyewear === "blurring glasses") || (child.eyewear === "blurring contacts")) { + } else if (!canSeePerfectly(slave)) { r += `<span class="yellow">Sight-</span> `; } } @@ -4767,9 +4767,9 @@ App.Facilities.Nursery.ChildSummary = function(child) { * @param {App.Entity.SlaveState} child */ function longEyes(child) { - if (child.eyes <= -2) { + if (!canSee(slave)) { r += `<span class="red">Blind.</span> `; - } else if (((child.eyes === -1) && (child.eyewear !== "corrective glasses") && (child.eyewear !== "corrective contacts")) || (child.eyewear === "blurring glasses") || (child.eyewear === "blurring contacts")) { + } else if (!canSeePerfectly(slave)) { r += `<span class="yellow">Nearsighted.</span> `; } } @@ -11539,7 +11539,7 @@ App.Facilities.Nursery.LongChildDescription = function(child) { r += `A line-art rendition of ${child.slaveName} ${himself} nursing a pair of ${his} fellow slaves is tattooed across ${his} entire back. `; } else if (child.skill.vaginal >= 100) { r += `A line-art rendition of ${child.slaveName} ${himself} performing reverse cowgirl and spreading ${his} pussy is tattooed across ${his} entire back. `; - } else if (PC.vagina !== 0) { + } else if (PC.vagina !== -1) { r += `A line-art rendition of ${child.slaveName} ${himself} eating pussy is tattooed across ${his} entire back. `; } else { r += `A line-art rendition of ${child.slaveName} ${himself} deepthroating a cock is tattooed across ${his} entire back. `; @@ -12057,12 +12057,11 @@ App.Facilities.Nursery.LongChildDescription = function(child) { } function upperFace(child) { - let - r = ``; + let r = ``; if (!child.fuckdoll) { - if (child.eyesImplant) { - r += `${He} has artificial eyes. `; + if (hasAnyProstheticEyes(child)) { + r += `${He} has ${App.Desc.eyesType(slave)}. `; } if (child.eyewear === "corrective glasses" || child.eyewear === "blurring glasses" || child.eyewear === "glasses") { @@ -12080,13 +12079,13 @@ App.Facilities.Nursery.LongChildDescription = function(child) { break; } - if (child.eyes > -1) { + if (getWorstVision(child) >= 2) { if (child.eyewear === "blurring glasses") { r += ` which are designed to blur ${his} vision, making ${him} clumsy. `; } else { r += ` which are just for show. `; } - } else if (child.eyes === -1) { + } else if (getWorstVision(child) >= 1) { if (child.eyewear === "corrective glasses") { r += ` which correct ${his} vision. `; } else { @@ -12096,11 +12095,11 @@ App.Facilities.Nursery.LongChildDescription = function(child) { r += ` which, since ${he} is <span class="red">blind,</span> are just for show. ${He} moves carefully as to not bump into things. `; } } else { - if (child.eyes > -1) { + if (getWorstVision(child) >= 2) { if (child.eyewear === "blurring contacts") { r += `${He}'s wearing contact lenses designed to blur ${his} vision, making ${him} clumsy. `; } - } else if (child.eyes === -1) { + } else if (getWorstVision(child) >= 2) { if (child.eyewear === "corrective contacts") { r += `${He}'s wearing contact lenses to correct ${his} <span class="yellow">nearsightedness.</span> `; } else { @@ -15595,7 +15594,7 @@ App.Facilities.Nursery.infantToChild = function infantToChild(child) { child.eyebrowFullness = "natural", child.eyebrowHStyle = "natural", child.eyebrowPiercing = 0, - child.eyes = 1, + child.eye = new App.Entity.EyeState(), child.eyewear = "none", child.faceImplant = 0, child.fertKnown = 1, @@ -15674,7 +15673,8 @@ App.Facilities.Nursery.infantToChild = function infantToChild(child) { child.oldTrust = 0, // TODO: child.onDiet = 0, child.origRace = child.race, - child.origEye = child.eyeColor, + child.eye = new App.Entity.EyeState(), + child.eye.orig = child.eyeColor, child.origHColor = child.hColor, child.origSkin = child.skin, child.ovaries = child.genes === "XX" ? 1 : 0, @@ -15762,7 +15762,6 @@ App.Facilities.Nursery.infantToChild = function infantToChild(child) { child.pubertyXX = 1, child.pubicHColor = "black", child.pubicHStyle = "bushy", - child.pupil = "circular", child.readyOva = 0, child.rearAccessory = "none", child.relationship = 0, @@ -15773,7 +15772,6 @@ App.Facilities.Nursery.infantToChild = function infantToChild(child) { child.rivalryTarget = 0, child.rudeTitle = 0, child.scars = 0, - child.sclerae = "white", child.scrotum = 0, child.shoes = "none", child.shoulders = 0, @@ -16100,7 +16098,7 @@ App.Facilities.Nursery.newChild = function newChild(child) { } if (child.override_Eye_Color !== 1) { - child.eyeColor = getGeneticEyeColor(child); + resetEyeColor(child, "both"); } if (child.override_H_Color !== 1) { child.hColor = getGeneticHairColor(child); @@ -16808,26 +16806,10 @@ App.Facilities.Nursery.ChildState = class ChildState { */ this.markings = "none"; /** - * slave eyesight - * * -4: empty (no descriptions) - * * -3: glass eye - * * -2: blind - * * -1: nearsighted - * * 1: normal - */ - this.eyes = 1; - /** Child has artificial eyes - * - * 0: no; 1: yes */ - this.eyesImplant = 0; - /** Eye color */ - this.eyeColor = "brown"; - /** Child's original eye color, defaults to their initial eye color. */ - this.origEye = "brown"; - /** Shape of slave pupils */ - this.pupil = "circular"; - /** Color of slave sclerae */ - this.sclerae = "white"; + * Eyes of the slave. + * @type {App.Entity.EyeState} + */ + this.eye = new App.Entity.EyeState(); /** "none", "glasses", "blurring glasses", "corrective glasses", "blurring contacts", "corrective contacts" */ this.eyewear = "none"; /** Slave hearing diff --git a/src/gui/Encyclopedia/encyclopedia.tw b/src/gui/Encyclopedia/encyclopedia.tw index 4d850223cbfc35af030b33ef4b71b7e288229dcf..06bb7509c2a80a550e64aafe5d5d7cbae2625a73 100644 --- a/src/gui/Encyclopedia/encyclopedia.tw +++ b/src/gui/Encyclopedia/encyclopedia.tw @@ -314,13 +314,13 @@ BEING IN CHARGE If the corporation's slaves have qualities that make them especially appealing to an arcology's citizens, the corporation will enjoy increased profits, and the [[future society|Encyclopedia][$encyclopedia = "Future Societies"]] creating the demand will progress more rapidly due to the supply of appealing slaves. All arcologies present in the Free City will interact with the corporation this way, making shares in a corporation which supplies girls that appeal to the whole city extremely lucrative. <<case "Demand for Sex">> - The Free Cities naturally facilitate a healthy sex industry which provides lucrative business opportunities. But you are not the only one who can provide sexual services and you may find yourself in competition for the large, but ultimately limited, amount of sexual desires within the arcology. Clever manipulations can influence both the demand as well as the supply to improve the the attractiveness of your arcology and fill your coffers. + The Free Cities naturally facilitate a healthy sex industry which provides lucrative business opportunities. But you are not the only one who can provide sexual services and you may find yourself in competition for the large, but ultimately limited, amount of sexual desires within the arcology. Clever manipulations can influence both the demand as well as the supply to improve the attractiveness of your arcology and fill your coffers. <br><br>The demand comes directly from the arcology's citizens and visiting tourists and traders. Growing your arcology is the most straightforward way of increasing the amount of sex demanded. The lower class are fairly easy to attract in large numbers, but their individual spending is limited and a good whore is wasted on them. The wealthiest citizens on the other hand have a lot more to spend, but also require whores that are up to their standards. You may want to choose your policies, future society and rent choices accordingly. - <br><br>From the supply side you have to contend with competitors trying to gobble up large chunks of the sex market. You may choose to compete with them on somewhat even terms and let the free market sort it out, but you may also try your hand at nudging other suppliers into serving your purposes. You can either subsidize sexual services, making outside suppliers more willing to provide inside your arcology or use your influence and position to stiffle them by having to comply with bothersome rules and regulations to disuade them instead. + <br><br>From the supply side you have to contend with competitors trying to gobble up large chunks of the sex market. You may choose to compete with them on somewhat even terms and let the free market sort it out, but you may also try your hand at nudging other suppliers into serving your purposes. You can either subsidize sexual services, making outside suppliers more willing to provide inside your arcology or use your influence and position to stifle them by having to comply with bothersome rules and regulations to dissuade them instead. - <br><br>Slaves assigned as whores can be used to satisfy any of the different classes of citizens, if they are desirable and skilled enough, that is. Slaves assigned to serve the public are suitable for the sexual relief of the lower half of your citizenry and the arcade generally only serves the very bottom of your arcology. + <br><br>Slaves assigned as whores can be used to satisfy any of the different classes of citizens, if they are desirable and skilled enough, that is. Slaves assigned to serve the public are suitable for the sexual relief of the lower half of your citizenry and the arcade generally only serves the very bottom of your arcology. <<case "Sexual Energy">> <<setPlayerPronouns>> diff --git a/src/init/storyInit.tw b/src/init/storyInit.tw index fc2c5944818499eb74180c964ac56aca6982cd17..5da49ebb6af150363c99a3da89522ade0375cf47 100644 --- a/src/init/storyInit.tw +++ b/src/init/storyInit.tw @@ -1363,7 +1363,7 @@ You should have received a copy of the GNU General Public License along with thi <<set $weatherToday = $niceWeather.random()>> <<set $customSlaveOrdered = 0>> -<<set $customSlave = {age: 19, health: 0, muscles: 0, lips: 15, heightMod: "normal", weight: 0, face: 0, race: "white", skin: "left natural", boobs: 500, butt: 3, sex: 1, virgin: 0, dick: 2, balls: 2, clit: 0, labia: 0, vaginaLube: 1, analVirgin: 0, skills: 15, skill: {whore: 15, combat: 0}, intelligence: 0, intelligenceImplant: 0, nationality: "Stateless", leg: {left: new App.Entity.LimbState(), right: new App.Entity.LimbState()}, arm: {left: new App.Entity.LimbState(), right: new App.Entity.LimbState()}, eyes: 1, hears: 0}>> +<<set $customSlave = {age: 19, health: 0, muscles: 0, lips: 15, heightMod: "normal", weight: 0, face: 0, race: "white", skin: "left natural", boobs: 500, butt: 3, sex: 1, virgin: 0, dick: 2, balls: 2, clit: 0, labia: 0, vaginaLube: 1, analVirgin: 0, skills: 15, skill: {whore: 15, combat: 0}, intelligence: 0, intelligenceImplant: 0, nationality: "Stateless", leg: {left: new App.Entity.LimbState(), right: new App.Entity.LimbState()}, arm: {left: new App.Entity.LimbState(), right: new App.Entity.LimbState()}, eye: new App.Entity.EyeState(), hears: 0}>> <<set $huskSlaveOrdered = 0>> <<set $huskSlave = {age: 18, nationality: "Stateless", race: "white", sex: 1, virgin: 0}>> diff --git a/src/interaction/main/walkPast.js b/src/interaction/main/walkPast.js index b065a56f7bbc1397516cbaf029b6083b572d2397..851908e4144c1cecdddd569a05dfe0bd9c1d911f 100644 --- a/src/interaction/main/walkPast.js +++ b/src/interaction/main/walkPast.js @@ -192,7 +192,7 @@ window.walkPast = (function() { } else if (activeSlave.assignment === "work in the dairy" && V.dairyRestraintsSetting > 1) { output += ` ${He} is strapped into a milking machine and cannot leave ${V.dairyName}.`; } else { - if (["be your agent", "live with your agent", "work in the dairy", "work in the brothel", "serve in the club", "work as a servant", "serve in the master suite", "stay confined", "be confined in the cellblock", "be confined in the arcade", "work a glory hole", "be the Madam", "be your Concubine", "be the Wardeness", "live with your Head Girl", "be the Stewardess", "be the Schoolteacher", "be the Attendant", "be the DJ", "be the Milkmaid"].includes(activeSlave.assignment)) { + if (["be confined in the arcade", "be confined in the cellblock", "be the Attendant", "be the DJ", "be the Madam", "be the Milkmaid", "be the Schoolteacher", "be the Stewardess", "be the Wardeness", "be your agent", "be your Concubine", "live with your agent", "live with your Head Girl", "serve in the club", "serve in the master suite", "stay confined", "work a glory hole", "work as a servant", "work in the brothel", "work in the dairy"].includes(activeSlave.assignment)) { output += ` <span id="walkpast"><<link "Have ${him} take a break and come up">><<replace "#walk">><<include $target>><</replace>><</link>></span>`; } else { output += ` <span id="walkpast"><<link "Call ${him} over">><<replace "#walk">><<include $target>><</replace>><</link>></span>`; diff --git a/src/interaction/prostheticConfig.tw b/src/interaction/prostheticConfig.tw index 04540e8427b5f736548f14ff8e0f4fb70b8a3820..f628de0ddf67c45ede151be337a56615dbededd2 100644 --- a/src/interaction/prostheticConfig.tw +++ b/src/interaction/prostheticConfig.tw @@ -26,82 +26,98 @@ This room is lined with shelves and cabinets, it could be easily mistaken for a Your slave $activeSlave.slaveName is lying on the table, waiting for your instructions. <</if>> -<<if $activeSlave.eyesImplant == 1>><br><br> - $He has an ocular implant installed. - <<if $activeSlave.eyes == 1>> - They are operating normally. - <<elseif $activeSlave.eyes == -1>> - They are set to blur $his vision. - <<else>> - They are turned off. - <</if>> - <br><br> - <<if $activeSlave.eyes != 1>> - [[Restore vision|Prosthetics Configuration][$activeSlave.eyes = 1, $prostheticsConfig = "eyes"]] | - <</if>> - <<if $activeSlave.eyes != -1>> - [[Blur|Prosthetics Configuration][$activeSlave.eyes = -1, $prostheticsConfig = "eyes"]] | +<<if hasAnyCyberneticEyes($activeSlave)>> + <h2>Eyes</h2> + $He has <<if hasBothCyberneticEyes($activeSlave)>> ocular implants <<else>> an ocular implant <</if>> installed. You can change the settings: + + <style> + .eyeContainer { + display: grid; + grid-template-columns: 80px 50px 70px 50px; + } + </style> + + <div class="eyeContainer"> + <<set _on = 0, _blur = 0, _off = 0>> + <<if getLeftEyeType($activeSlave) === 3>> + <div> Left:</div> + <div> + <<if getLeftEyeVision($activeSlave) !== 2>> + <<set _on++>> + [["[ON]"|Prosthetics Configuration][eyeSurgery($activeSlave, "left", "fix")]] + <<else>> + <<print "[ON]">> + <</if>> + </div><div> + <<if getLeftEyeVision($activeSlave) !== 1>> + <<set _blur++>> + [["[BLUR]"|Prosthetics Configuration][eyeSurgery($activeSlave, "left", "blur")]] + <<else>> + <<print "[BLUR]">> + <</if>> + </div><div> + <<if getLeftEyeVision($activeSlave) !== 0>> + <<set _off++>> + [["[OFF]"|Prosthetics Configuration][eyeSurgery($activeSlave, "left", "blind")]] + <<else>> + <<print "[OFF]">> + <</if>> + </div> + <</if>> + <<if getRightEyeType($activeSlave) === 3>> + <div> Right:</div> + <div> + <<if getRightEyeVision($activeSlave) !== 2>> + <<set _on++>> + [["[ON]"|Prosthetics Configuration][eyeSurgery($activeSlave, "right", "fix")]] + <<else>> + <<print "[ON]">> + <</if>> + </div><div> + <<if getRightEyeVision($activeSlave) !== 1>> + <<set _blur++>> + [["[BLUR]"|Prosthetics Configuration][eyeSurgery($activeSlave, "right", "blur")]] + <<else>> + <<print "[BLUR]">> + <</if>> + </div><div> + <<if getRightEyeVision($activeSlave) !== 0>> + <<set _off++>> + [["[OFF]"|Prosthetics Configuration][eyeSurgery($activeSlave, "right", "blind")]] + <<else>> + <<print "[OFF]">> + <</if>> + </div> <</if>> - <<if $activeSlave.eyes != -2>> - [[Disable|Prosthetics Configuration][$activeSlave.eyes = -2, $prostheticsConfig = "eyes"]] + <<if hasBothCyberneticEyes($activeSlave)>> + <div> Both:</div> + <div> + <<if _on > 0>> + [["[ON]"|Prosthetics Configuration][eyeSurgery($activeSlave, "both", "fix")]] + <<else>> + <<print "[ON]">> + <</if>> + </div><div> + <<if _blur > 0>> + [["[BLUR]"|Prosthetics Configuration][eyeSurgery($activeSlave, "both", "blur")]] + <<else>> + <<print "[BLUR]">> + <</if>> + </div><div> + <<if _off > 0>> + [["[OFF]"|Prosthetics Configuration][eyeSurgery($activeSlave, "both", "blind")]] + <<else>> + <<print "[OFF]">> + <</if>> + </div> <</if>> + </div> - $He currently has $activeSlave.eyeColor lenses equipped. - - <br> - - Swap out $his lenses: - <br> - Iris Color: - [[Blue|Prosthetics Configuration][$activeSlave.eyeColor = "blue", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Black|Prosthetics Configuration][$activeSlave.eyeColor = "black", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Brown|Prosthetics Configuration][$activeSlave.eyeColor = "brown", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Green|Prosthetics Configuration][$activeSlave.eyeColor = "green", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Turquoise|Prosthetics Configuration][$activeSlave.eyeColor = "turquoise", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Sky-Blue|Prosthetics Configuration][$activeSlave.eyeColor = "sky-blue", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Hazel|Prosthetics Configuration][$activeSlave.eyeColor = "hazel", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Pale-Grey|Prosthetics Configuration][$activeSlave.eyeColor = "pale-grey", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[White|Prosthetics Configuration][$activeSlave.eyeColor = "white", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Pink|Prosthetics Configuration][$activeSlave.eyeColor = "pink", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Amber|Prosthetics Configuration][$activeSlave.eyeColor = "amber", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Red|Prosthetics Configuration][$activeSlave.eyeColor = "red", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Yellow|Prosthetics Configuration][$activeSlave.eyeColor = "yellow", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Orange|Prosthetics Configuration][$activeSlave.eyeColor = "orange", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - <br> - Pupil Shape: - <br>[[Circular|Prosthetics Configuration][$activeSlave.pupil = "circular", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Catlike|Prosthetics Configuration][$activeSlave.pupil = "catlike", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Serpent-Like|Prosthetics Configuration][$activeSlave.pupil = "serpent-like", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Devilish|Prosthetics Configuration][$activeSlave.pupil = "devilish", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Demonic|Prosthetics Configuration][$activeSlave.pupil = "demonic", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Hypnotic|Prosthetics Configuration][$activeSlave.pupil = "hypnotic", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Heart-Shaped|Prosthetics Configuration][$activeSlave.pupil = "heart-shaped", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Wide-Eyed|Prosthetics Configuration][$activeSlave.pupil = "wide-eyed", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Almond-Shaped|Prosthetics Configuration][$activeSlave.pupil = "almond-shaped", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Bright|Prosthetics Configuration][$activeSlave.pupil = "bright", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Teary|Prosthetics Configuration][$activeSlave.pupil = "teary", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Vacant|Prosthetics Configuration][$activeSlave.pupil = "vacant", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Star-Shaped|Prosthetics Configuration][$activeSlave.pupil = "star-shaped", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Goat-Like|Prosthetics Configuration][$activeSlave.pupil = "goat-like", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - <br> - Sclera Colors: - [[White|Prosthetics Configuration][$activeSlave.sclerae = "white", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Blue|Prosthetics Configuration][$activeSlave.sclerae = "blue", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Black|Prosthetics Configuration][$activeSlave.sclerae = "black", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Brown|Prosthetics Configuration][$activeSlave.sclerae = "brown", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Green|Prosthetics Configuration][$activeSlave.sclerae = "green", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Turquoise|Prosthetics Configuration][$activeSlave.sclerae = "turquoise", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Sky-Blue|Prosthetics Configuration][$activeSlave.sclerae = "sky-blue", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Hazel|Prosthetics Configuration][$activeSlave.sclerae = "hazel", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Pale-Grey|Prosthetics Configuration][$activeSlave.sclerae = "pale-grey", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Pink|Prosthetics Configuration][$activeSlave.sclerae = "pink", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Amber|Prosthetics Configuration][$activeSlave.sclerae = "amber", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Red|Prosthetics Configuration][$activeSlave.sclerae = "red", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Yellow|Prosthetics Configuration][$activeSlave.sclerae = "yellow", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Orange|Prosthetics Configuration][$activeSlave.sclerae = "orange", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] + <br>$He has <<print App.Desc.eyesColor($activeSlave)>>. To change $his eye color visit the auto salon. <</if>> -<<if $activeSlave.earImplant == 1>><br><br> +<<if $activeSlave.earImplant == 1>><br><br> + <h2>Ears</h2> $He has a cochlear implant installed. <<if $activeSlave.hears == 0>> They are operating normally. @@ -122,7 +138,8 @@ This room is lined with shelves and cabinets, it could be easily mistaken for a <</if>> <</if>> -<<if $activeSlave.electrolarynx == 1>><br><br> +<<if $activeSlave.electrolarynx == 1>><br><br> + <h2>Voice</h2> $He has an electrolarynx installed. <<if $activeSlave.voice == 0>> It is turned off. @@ -148,10 +165,13 @@ This room is lined with shelves and cabinets, it could be easily mistaken for a <</if>> <</if>> +<br><br> +<h2>Limbs</h2> <<= App.Desc.limbChange().selector($activeSlave, App.Desc.limbChange().currentLimbs($activeSlave))>> +<br><br> +<h2>Tail</h2> <<if $activeSlave.PTail == 1>> - <br><br> $He has a neural tail interface installed. You can assign and adjust $his tail here. <<if $activeSlave.tail != "none">><br> $He currently has a tail attached, if you wish to change it you will first need to detach it.<br> @@ -174,8 +194,8 @@ This room is lined with shelves and cabinets, it could be easily mistaken for a | [[Attach Pleasure Tail|Prosthetics Configuration][$prostheticsConfig = "attachTail", $activeSlave.tail = "sex", $activeSlave.tailColor = "pink"]] <</if>> <</if>> -<<else>><br><br> - $He does not have a neural tail interface installed so you cannot attach a tail. +<<else>> + //$He does not have a neural tail interface installed so you cannot attach a tail.// <</if>> <<if $activeSlave.tail == "mod">><br> $He currently has a modular tail, styled to look like @@ -204,8 +224,8 @@ This room is lined with shelves and cabinets, it could be easily mistaken for a <</if>> <br><br> -Fit prosthetics to $him: -<hr> +<h2>Prosthetics</h2> +//Fit prosthetics to $him:// <style> .container { @@ -269,10 +289,7 @@ Fit prosthetics to $him: /* base screen END */ -<<case "eyeColor">> - <<set $prostheticsConfig = "main", $nextButton = "Continue", $nextLink = "Prosthetics Configuration">> - <<if hasBothLegs($activeSlave)>>You have $him lie down and<<else>>You<</if>> use a speculum to keep $his eyes open while you disengage $his lenses remotely and swap them out with $his new $activeSlave.eyeColor lenses<<if $activeSlave.pupil != "circular" || $activeSlave.sclerae != "white">> with <<if $activeSlave.pupil != "circular" >>$activeSlave.pupil pupils<</if>><<if $activeSlave.pupil != "circular" && $activeSlave.sclerae != "white">> and <</if>><<if $activeSlave.sclerae != "white" >>$activeSlave.sclerae sclerae<</if>><</if>>. - +/* <<case "eyes">> <<set $prostheticsConfig = "main", $nextButton = "Continue", $nextLink = "Prosthetics Configuration">> <<if $activeSlave.eyes == 1>> @@ -282,6 +299,7 @@ Fit prosthetics to $him: <<else>> $He has a panicked expression when $his vision suddenly goes out. <</if>> +*/ <<case "limbs">> <<set $prostheticsConfig = "main", $nextButton = "Continue", $nextLink = "Prosthetics Configuration">> diff --git a/src/js/DefaultRules.js b/src/js/DefaultRules.js index 40a4c6d7fa2e56c6055fac6cf6827f8237807e3d..f68846ceaf3d957285a22526b2694d5124b6a951 100644 --- a/src/js/DefaultRules.js +++ b/src/js/DefaultRules.js @@ -250,7 +250,7 @@ window.DefaultRules = (function() { if ((rule.eyewear !== undefined) && (rule.eyewear !== null)) { switch (rule.eyewear) { case "correct with glasses": - if (slave.eyes === -1) { + if (anyVisionEquals(slave, 1)) { if (slave.eyewear !== "corrective glasses") { slave.eyewear = "corrective glasses"; cashX(forceNeg(V.modCost), "slaveMod", slave); @@ -265,7 +265,7 @@ window.DefaultRules = (function() { break; case "correct with contacts": - if (slave.eyes === -1) { + if (anyVisionEquals(slave, 1)) { if (slave.eyewear !== "corrective contacts") { slave.eyewear = "corrective contacts"; cashX(forceNeg(V.modCost), "slaveMod", slave); @@ -280,7 +280,7 @@ window.DefaultRules = (function() { break; case "blur with glasses": - if (slave.eyes > -1) { + if (anyVisionEquals(slave, 2)) { if (slave.eyewear !== "blurring glasses") { slave.eyewear = "blurring glasses"; cashX(forceNeg(V.modCost), "slaveMod", slave); @@ -295,7 +295,7 @@ window.DefaultRules = (function() { break; case "blur with contacts": - if (slave.eyes > -1) { + if (anyVisionEquals(slave, 2)) { if (slave.eyewear !== "blurring contacts") { slave.eyewear = "blurring contacts"; cashX(forceNeg(V.modCost), "slaveMod", slave); @@ -310,7 +310,7 @@ window.DefaultRules = (function() { break; case "universal glasses": - if (slave.eyes === -1) { + if (anyVisionEquals(slave, 1)) { if (slave.eyewear !== "corrective glasses") { slave.eyewear = "corrective glasses"; cashX(forceNeg(V.modCost), "slaveMod", slave); @@ -1520,19 +1520,19 @@ window.DefaultRules = (function() { * @param {App.Entity.SlaveState} slave * @param {App.RA.RuleSetters} rule */ - + function ProcessPit(slave,rule){ if (rule.pitRules !== undefined && rule.pitRules !== null){ if (V.pit > 0){ if (rule.pitRules === 0){ V.fighterIDs = V.fighterIDs.filter(e => e !== slave.ID); - r += `<br>${slave.slaveName} has been removed from the pit.`; - }else{ + r += `<br>${slave.slaveName} has been removed from the pit.`; + } else { if (App.Entity.facilities.pit.job().checkRequirements(slave).length !== 0) { V.fighterIDs = V.fighterIDs.filter(e => e !== slave.ID); - r += `<br>${slave.slaveName} is not eligible to fight.`; - } else{ - if (!V.fighterIDs.includes(slave.ID)){ + r += `<br>${slave.slaveName} is not eligible to fight.`; + } else { + if (!V.fighterIDs.includes(slave.ID)) { V.fighterIDs.push(slave.ID); } r += `<br>${slave.slaveName} has been automatically assigned to fight in the pit.`; @@ -2133,10 +2133,10 @@ window.DefaultRules = (function() { */ function ProcessStyle(slave, rule) { if (rule.eyeColor !== undefined && (rule.eyeColor !== null)) { - if ((slave.eyeColor !== rule.eyeColor)) { - slave.eyeColor = rule.eyeColor; + if (getLeftEyeColor(slave) !== rule.eyeColor || getRightEyeColor(slave) !== rule.eyeColor) { + setEyeColor(slave, rule.eyeColor); cashX(forceNeg(V.modCost), "slaveMod", slave); - r += `<br>${slave.slaveName} has been given ${slave.eyeColor} contact lenses.`; + r += `<br>${slave.slaveName} has been given ${rule.eyeColor} contact lenses.`; } } diff --git a/src/js/SlaveState.js b/src/js/SlaveState.js index 5fa48a24a0374198dfbf45af261f05992d3ade1f..9fb9ed392619adf37d48f31b8f9ae79eb7782419 100644 --- a/src/js/SlaveState.js +++ b/src/js/SlaveState.js @@ -440,7 +440,7 @@ App.Entity.LimbState = class LimbState { /** * To ensure that all new eyes contain expected attributes */ -App.Entity.EyeState = class EyeState { +App.Entity.SingleEyeState = class SingleEyeState { constructor() { /** * type of eye @@ -451,19 +451,15 @@ App.Entity.EyeState = class EyeState { this.type = 1; /** * vision of eye - * * 1: normal - * * 2: impaired - * * 3: blind + * * 0: blind + * * 1: impaired + * * 2: normal */ - this.see = 1; + this.vision = 2; /** * current eye color */ this.iris = "brown"; - /** - * original eye color - */ - this.orig = "brown"; /** * pupil shape */ @@ -475,6 +471,14 @@ App.Entity.EyeState = class EyeState { } }; +App.Entity.EyeState = class EyeState { + constructor() { + this.left = new App.Entity.SingleEyeState(); + this.right = new App.Entity.SingleEyeState(); + this.origColor = "brown"; + } +}; + App.Entity.SlaveState = class SlaveState { constructor() { /** Slave's current name */ @@ -677,38 +681,12 @@ App.Entity.SlaveState = class SlaveState { */ this.markings = "none"; /** - * slave eyesight - * * -4: empty (no descriptions) - * * -3: glass eye - * * -2: blind - * * -1: nearsighted - * * 1: normal + * Eyes of the slave. + * @type {App.Entity.EyeState} */ - this.eyes = 1; - /** Slave has artificial eyes - * - * 0: no; 1: yes */ - this.eyesImplant = 0; - /** eye color */ - this.eyeColor = "brown"; - /** slave's original eye color, defaults to their initial eye color. */ - this.origEye = "brown"; - /** shape of slave pupils */ - this.pupil = "circular"; - /** color of slave sclerae */ - this.sclerae = "white"; + this.eye = new App.Entity.EyeState(); /** "none", "glasses", "blurring glasses", "corrective glasses", "blurring contacts", "corrective contacts" */ this.eyewear = "none"; - /** - * eyes of the slave - */ - /* - this.eyeball = { - left: new App.Entity.EyeState(), - right: new App.Entity.EyeState() - }; - - */ /** slave hearing * * -2: deaf; -1: hard of hearing; 0: normal */ @@ -2114,7 +2092,7 @@ App.Entity.SlaveState = class SlaveState { uFace: 0, /** has pale skin, white hair and red eyes */ albinism: 0, - /** may have mismatched eyes */ + /** may have mismatched eyes, the eye color stored here is always the left eye */ heterochromia: 0, /** ass never stops growing. Increased growth rate, reduced shrink rate. */ rearLipedema: 0, @@ -2504,6 +2482,7 @@ App.Entity.SlaveState = class SlaveState { return { arm: {left: {}, right: {}}, leg: {left: {}, right: {}}, + eye: {left: {}, right: {}}, readyProsthetics: [], // yes, not an object, but needed for hero slaves counter: {}, brand: {}, diff --git a/src/js/assayJS.js b/src/js/assayJS.js index dfe35e3a7c13315f7aa367a0e5c6d266b912a24f..42c39cc88716ecbff018a48426e0fda05d12619d 100644 --- a/src/js/assayJS.js +++ b/src/js/assayJS.js @@ -50,14 +50,6 @@ window.inferiorRaceP = function inferiorRaceP(slave) { return State.variables.arcologies[0].FSSubjugationistRace === slave.race; }; -/** - * @param {App.Entity.SlaveState} slave - * @returns {boolean} - */ -window.hasVisibleHeterochromia = function hasVisibleHeterochromia(slave) { - return slave.geneticQuirks.heterochromia !== 0 && slave.geneticQuirks.heterochromia !== 1 && slave.geneticQuirks.albinism !== 2 && slave.geneticQuirks.heterochromia !== slave.eyeColor && slave.eyeColor === slave.origEye; -}; - /** * @param {App.Entity.SlaveState} slave * @returns {boolean} @@ -76,7 +68,7 @@ window.isLeaderP = function isLeaderP(slave) { */ window.applyGeneticColor = function(slave) { if (slave.override_Eye_Color !== 1) { - slave.eyeColor = getGeneticEyeColor(slave); + resetEyeColor(slave, "both"); } if (slave.override_H_Color !== 1) { slave.hColor = getGeneticHairColor(slave); @@ -1096,7 +1088,7 @@ window.DegradingName = function DegradingName(slave) { } } names.push(slave.hColor); - if (slave.eyes <= -2) { + if (!hasAnyEyes(slave)) { names.push("Blind", "Eyeless", "Sightless"); } if (slave.hears === -2) { @@ -1721,7 +1713,7 @@ window.Deadliness = function Deadliness(slave) { if (!canSee(slave)) { deadliness -= 8; - } else if ((slave.eyes === -1 && !["corrective contacts", "corrective glasses"].includes(slave.eyewear)) || (slave.eyes === 1 && ["blurring contacts", "blurring glasses"].includes(slave.eyewear))) { + } else if (!canSeePerfectly(slave)) { deadliness -= 1; } diff --git a/src/js/datatypeCleanupJS.js b/src/js/datatypeCleanupJS.js index d94ae4e8eb1ba8cd61804c0b33bb2db5c41a9334..78999d56e799fa68836ede4accde7aceecb4cfba 100644 --- a/src/js/datatypeCleanupJS.js +++ b/src/js/datatypeCleanupJS.js @@ -464,19 +464,6 @@ window.SlaveDatatypeCleanup = (function SlaveDatatypeCleanup() { if (typeof slave.faceShape !== "string") { slave.faceShape = "normal"; } - slave.eyes = Math.clamp(+slave.eyes, -3, 1) || 1; /* if 0 or undefined, this sets to 1 */ - if (typeof slave.eyeColor !== "string") { - slave.eyeColor = "brown"; - } - if (typeof slave.origEye !== "string") { - slave.origEye = slave.eyeColor; - } - if (typeof slave.pupil !== "string") { - slave.pupil = "circular"; - } - if (typeof slave.sclerae !== "string") { - slave.sclerae = "white"; - } if (slave.lips !== 0) { slave.lips = Math.clamp(+slave.lips, 0, 100) || 15; } @@ -1139,19 +1126,6 @@ window.childFaceDatatypeCleanup = function childFaceDatatypeCleanup(child) { if (typeof child.faceShape !== "string") { child.faceShape = "normal"; } - child.eyes = Math.clamp(+child.eyes, -3, 1) || 1; /* if 0 or undefined, this sets to 1 */ - if (typeof child.eyeColor !== "string") { - child.eyeColor = "brown"; - } - if (typeof child.origEye !== "string") { - child.origEye = child.eyeColor; - } - if (typeof child.pupil !== "string") { - child.pupil = "circular"; - } - if (typeof child.sclerae !== "string") { - child.sclerae = "white"; - } if (child.lips !== 0) { child.lips = Math.clamp(+child.lips, 0, 100) || 15; } diff --git a/src/js/descriptionWidgets.js b/src/js/descriptionWidgets.js index abe0385c4ec64e61f09c9ee38631357488914224..ac166ff90b5b650a4e0cd3d572c886b859a2fcf9 100644 --- a/src/js/descriptionWidgets.js +++ b/src/js/descriptionWidgets.js @@ -11,10 +11,18 @@ App.Desc.eyes = function(slave) { } = getPronouns(slave); /* eslint-enable */ - if (slave.eyes <= -2) { - const HC = hasVisibleHeterochromia(slave) ? 1 : 0; - if (slave.eyes === -2) { - r += `${His} eyes are dull`; + if (getBestVision(slave) === 0) { + if (!hasAnyEyes(slave)) { + r += `${His} gaze is empty`; + } else if (getLeftEyeType(slave) === 2 && getRightEyeType(slave) === 2) { + r += `${He} has ${App.Desc.eyesColor(slave, "colored glass")}`; + } else { + const HC = hasVisibleHeterochromia(slave) ? 1 : 0; + if (hasBothEyes(slave)) { + r += `${His} eyes are dull`; + } else { + r += `${His} eye is dull`; + } if (V.saleDescription && V.PC.skill.medicine >= 50 || V.PC.skill.slaving >= 50) { r += `, unfocused`; if (HC) { @@ -27,10 +35,6 @@ App.Desc.eyes = function(slave) { } r += ` and unfocused`; } - } else if (slave.eyes === -3) { - r += `${He} has ${slave.eyeColor} colored glass eyes`; - } else { - r += `${His} gaze is empty`; } r += `, `; if (slave.intelligence > 95) { @@ -160,7 +164,7 @@ App.Desc.eyes = function(slave) { } } else { if (slave.intelligence > 95) { - r += `${His} ${slave.eyeColor}-eyed gaze is incisive, quick, cunning; `; + r += `${His} ${App.Desc.eyeColor(slave)}-eyed gaze is incisive, quick, cunning; `; if (slave.intelligence + slave.intelligenceImplant >= 130) { r += `with ${his} education, ${he} is so far <span class="deepskyblue">beyond brilliant</span> that ${he} is nearly peerless. `; } else if (slave.intelligence + slave.intelligenceImplant <= 95) { @@ -184,17 +188,17 @@ App.Desc.eyes = function(slave) { } } else if (slave.intelligence > 50) { if (slave.intelligence + slave.intelligenceImplant > 95) { - r += `${His} ${slave.eyeColor}-eyed gaze is incisive, quick, cunning; with ${his} education, ${he} can be considered <span class="deepskyblue">brilliant.</span> `; + r += `${His} ${App.Desc.eyeColor(slave)}-eyed gaze is incisive, quick, cunning; with ${his} education, ${he} can be considered <span class="deepskyblue">brilliant.</span> `; } else if (slave.intelligence + slave.intelligenceImplant <= 50) { - r += `${His} ${slave.eyeColor} eyes are alive with intelligence; with ${his} miseducation, however, ${he} performs merely <span class="orangered">above average.</span> `; + r += `${His} ${App.Desc.eyesColor(slave, "", "eye is", "eyes are")} alive with intelligence; with ${his} miseducation, however, ${he} performs merely <span class="orangered">above average.</span> `; } else if (slave.intelligenceImplant >= 15) { - r += `${His} ${slave.eyeColor} eyes are alive with intelligence; ${he} is both <span class="deepskyblue">highly intelligent</span> and `; + r += `${His} ${App.Desc.eyesColor(slave, "", "eye is", "eyes are")} alive with intelligence; ${he} is both <span class="deepskyblue">highly intelligent</span> and `; if (slave.intelligenceImplant >= 30) { r += `well `; } r += `educated. `; } else { - r += `${His} ${slave.eyeColor} eyes are alive with intelligence; ${he} is so <span class="deepskyblue">highly intelligent</span> that ${his} `; + r += `${His} ${App.Desc.eyesColor(slave, "", "eye is", "eyes are")} alive with intelligence; ${he} is so <span class="deepskyblue">highly intelligent</span> that ${his} `; if (slave.intelligenceImplant > 0) { r += `meager`; } else if (slave.intelligenceImplant <= -15) { @@ -205,7 +209,7 @@ App.Desc.eyes = function(slave) { r += ` education is unimportant. `; } } else if (slave.intelligence > 15) { - r += `${His} ${slave.eyeColor} eyes are `; + r += `${His} ${App.Desc.eyesColor(slave, "", "eye is", "eyes are")} `; if (slave.intelligence + slave.intelligenceImplant > 50) { r += `alive with intelligence; with ${his} education, ${he} can be considered <span class="deepskyblue">highly intelligent.</span> `; } else if (slave.intelligence + slave.intelligenceImplant <= 15) { @@ -222,7 +226,7 @@ App.Desc.eyes = function(slave) { r += `clever; ${he} is of <span class="deepskyblue">above average intelligence</span> despite being undereducated. `; } } else if (slave.intelligence >= -15) { - r += `${His} ${slave.eyeColor} eyes are `; + r += `${His} ${App.Desc.eyesColor(slave, "", "eye is", "eyes are")} `; if (slave.intelligence + slave.intelligenceImplant > 15) { r += `clever; with ${his} education, ${he} can be considered of <span class="deepskyblue">above average intelligence.</span> `; } else if (slave.intelligence + slave.intelligenceImplant < -15) { @@ -239,7 +243,7 @@ App.Desc.eyes = function(slave) { r += `alert; ${he} is of average intelligence and is undereducated. `; } } else if (slave.intelligence >= -50) { - r += `${His} ${slave.eyeColor} eyes are `; + r += `${His} ${App.Desc.eyesColor(slave, "", "eye is", "eyes are")} `; if (slave.intelligence + slave.intelligenceImplant >= -15) { r += `alert; with ${his} education, ${he} can be considered of average intelligence. `; } else if (slave.intelligence + slave.intelligenceImplant < -50) { @@ -256,7 +260,7 @@ App.Desc.eyes = function(slave) { r += `dim; ${he} is of <span class="orangered">below average intelligence</span> and is poorly educated. `; } } else if (slave.intelligence >= -95) { - r += `${His} ${slave.eyeColor} eyes are `; + r += `${His} ${App.Desc.eyesColor(slave, "", "eye is", "eyes are")} `; if (slave.intelligence + slave.intelligenceImplant >= -50) { r += `dim; even with ${his} education, ${he} can only be considered of <span class="orangered">below average intelligence.</span> `; } else if (slave.intelligence + slave.intelligenceImplant < -95) { @@ -275,7 +279,7 @@ App.Desc.eyes = function(slave) { r += `dull; ${he} is <span class="orangered">quite stupid</span> and ignorant. `; } } else { - r += `${His} ${slave.eyeColor}-eyed gaze betrays near-total insensibility; `; + r += `${His} ${App.Desc.eyeColor(slave)}-eyed gaze betrays near-total insensibility; `; if (slave.intelligence + slave.intelligenceImplant >= -95) { r += `even with ${his} education, ${he} is still <span class="orangered">really stupid.</span> `; } else if (slave.intelligence + slave.intelligenceImplant < -115) { @@ -292,30 +296,6 @@ App.Desc.eyes = function(slave) { return r; }; -/** - * @param {App.Entity.SlaveState} slave - * @returns {string} Slave's eye color - */ -App.Desc.eyeColor = function(slave) { - "use strict"; - let r; - - if (slave.eyes === -4) { - r = "empty"; - } else if (hasVisibleHeterochromia(slave)) { - r = `heterochromatic ${slave.eyeColor} and ${slave.geneticQuirks.heterochromia}`; - } else { - r = `${slave.eyeColor}`; - } - return r; -}; - -// temporary while eye rework -// TODO remove @Arkerthan -App.Desc.eyesColor = function(slave) { - return `${App.Desc.eyeColor(slave)} eyes`; -}; - /** * @param {App.Entity.SlaveState} slave * @returns {string} Slave's age and health diff --git a/src/js/economyJS.js b/src/js/economyJS.js index b8511cfc2452489cb5d5d970031154abf3cb3c29..9c51188ad5ce05fb1371e1c10a3508a781f6afc8 100644 --- a/src/js/economyJS.js +++ b/src/js/economyJS.js @@ -721,9 +721,7 @@ window.getSlaveCost = function(s) { } if (!canSee(s) && (s.assignment !== Job.DAIRY || State.variables.dairyRestraintsSetting < 2) && (s.assignment !== Job.ARCADE)) { cost += 50; - } else if (s.eyes <= -1 && s.eyewear !== 'corrective glasses' && s.eyewear !== 'corrective contacts') { - cost += 25; - } else if (s.eyewear === 'blurring glasses' || s.eyewear === 'blurring contacts') { + } else if (!canSeePerfectly(s)) { cost += 25; } if (!canHear(s) && (s.assignment !== Job.DAIRY || State.variables.dairyRestraintsSetting < 2) && (s.assignment !== Job.ARCADE)) { @@ -1017,7 +1015,7 @@ window.slaveJobValues = function(lowerClassSexDemandRef, middleClassSexDemandRef V.DJRepBonus += 0.1; // $He tries $his best to be your energetic, cheerful $wife. } - if (V.DJ.eyes <= -2) { + if (!canSee(V.DJ)) { V.DJRepBonus += 0.15; } if ( V.DJ.skill.entertainment > 10 && V.DJ.skill.entertainment <= 30) { diff --git a/src/js/eventSelectionJS.js b/src/js/eventSelectionJS.js index 438c4af32fdd4592e35135f19b01793f90bab599..f8ef71249b8b4630ad28eed0f12e27e462e6f555 100644 --- a/src/js/eventSelectionJS.js +++ b/src/js/eventSelectionJS.js @@ -323,8 +323,10 @@ window.generateRandomEventPoolStandard = function(eventSlave) { State.variables.RESSevent.push("devoted nympho"); } if (eventSlave.rules.release === "permissive" || eventSlave.rules.release === "masturbation") { - if ((eventSlave.chastityPenis !== 1) || (eventSlave.dick === 0)) { - State.variables.RESSevent.push("permitted masturbation"); + if (hasBothArms(eventSlave)) { + if ((eventSlave.chastityPenis !== 1) || (eventSlave.dick === 0)) { + State.variables.RESSevent.push("permitted masturbation"); + } } } } diff --git a/src/js/food.js b/src/js/food.js index 6a79cf078fbe7408d3122c52197bb94a4cb3859a..8595f62a365c983aa2cec7d7a0c370949b5dfec5 100644 --- a/src/js/food.js +++ b/src/js/food.js @@ -37,10 +37,10 @@ window.foodAmount = function(slave) { } else if (slave.weight > 190) { // slave is very obese or more food *= 0.6; } - if (slave.eyes === -1) { // slave is nearsighted - food *= 0.8; - } else if (slave.eyes < -1) { // slave is blind + if (!canSee(slave)) { // slave is blind food *= 0.6; + } else if (!canSeePerfectly(slave)) { // slave is nearsighted + food *= 0.8; } if (slave.hears === -1) { // slave is hard of hearing food *= 0.8; @@ -287,7 +287,7 @@ window.farmShowsIncome = function(slave) { } else if (slave.muscles < -30) { // slave is very weak or less cash *= 0.9; // TODO: should this be on a scale? } - if (slave.eyes < 1) { // slaves eyesight is nearsighted or worse + if (!canSeePerfectly(slave)) { // slaves eyesight is nearsighted or worse cash *= 0.9; // TODO: should nearsighted and blind slaves receive a penalty? } if (slave.hears < 0) { // slave is hard of hearing or less diff --git a/src/js/generateGenetics.js b/src/js/generateGenetics.js index 986ab6d2edf7d361bf293421bf842d398bea340d..0be5f8c233a7567259c715e3a4d8de9821f0e425 100644 --- a/src/js/generateGenetics.js +++ b/src/js/generateGenetics.js @@ -313,26 +313,26 @@ window.generateGenetics = (function() { let eyeColor; let fatherEye = 0; if (father !== 0) { - if (mother.origEye === father.origEye) { - eyeColor = mother.origEye; - } else if (mother.origEye === "red" || mother.origEye === "pale red" || mother.origEye === "light red" || mother.origEye === "pale gray" || mother.origEye === "milky white") { - eyeColor = father.origEye; - } else if (father.origEye === "red" || father.origEye === "pale red" || father.origEye === "light red" || father.origEye === "pale gray" || father.origEye === "milky white") { - eyeColor = mother.origEye; - } else if (mother.origEye === "blue") { + if (mother.eye.origColor === father.eye.origColor) { + eyeColor = mother.eye.origColor; + } else if (mother.eye.origColor === "red" || mother.eye.origColor === "pale red" || mother.eye.origColor === "light red" || mother.eye.origColor === "pale gray" || mother.eye.origColor === "milky white") { + eyeColor = father.eye.origColor; + } else if (father.eye.origColor === "red" || father.eye.origColor === "pale red" || father.eye.origColor === "light red" || father.eye.origColor === "pale gray" || father.eye.origColor === "milky white") { + eyeColor = mother.eye.origColor; + } else if (mother.eye.origColor === "blue") { if (jsRandom(1, 4) === 2) { - eyeColor = mother.origEye; + eyeColor = mother.eye.origColor; } else { - eyeColor = father.origEye; + eyeColor = father.eye.origColor; } - } else if (father.origEye === "blue") { + } else if (father.eye.origColor === "blue") { if (jsRandom(1, 4) === 2) { - eyeColor = father.origEye; + eyeColor = father.eye.origColor; } else { - eyeColor = mother.origEye; + eyeColor = mother.eye.origColor; } } else { - eyeColor = jsEither([father.origEye, mother.origEye]); + eyeColor = jsEither([father.eye.origColor, mother.eye.origColor]); } } else { if (((actor2 === -2 || actor2 === -5) && V.arcologies[0].FSSupremacistLawME === 1) || (actor2 === -6 && V.arcologies[0].FSSupremacist !== "unset")) { @@ -342,13 +342,13 @@ window.generateGenetics = (function() { fatherEye = randomRaceEye(racesList.random()); } if (fatherEye !== 0) { - if (mother.origEye === fatherEye) { - eyeColor = mother.origEye; - } else if (mother.origEye === "red" || mother.origEye === "pale red" || mother.origEye === "light red" || mother.origEye === "pale gray" || mother.origEye === "milky white") { + if (mother.eye.origColor === fatherEye) { + eyeColor = mother.eye.origColor; + } else if (mother.eye.origColor === "red" || mother.eye.origColor === "pale red" || mother.eye.origColor === "light red" || mother.eye.origColor === "pale gray" || mother.eye.origColor === "milky white") { eyeColor = fatherEye; - } else if (mother.origEye === "blue") { + } else if (mother.eye.origColor === "blue") { if (jsRandom(1, 4) === 2) { - eyeColor = mother.origEye; + eyeColor = mother.eye.origColor; } else { eyeColor = fatherEye; } @@ -356,13 +356,13 @@ window.generateGenetics = (function() { if (jsRandom(1, 4) === 2) { eyeColor = fatherEye; } else { - eyeColor = mother.origEye; + eyeColor = mother.eye.origColor; } } else { - eyeColor = jsEither([fatherEye, mother.origEye]); + eyeColor = jsEither([fatherEye, mother.eye.origColor]); } } else { - eyeColor = mother.origEye; + eyeColor = mother.eye.origColor; } } // just in case something wrong gets through @@ -383,8 +383,8 @@ window.generateGenetics = (function() { let fatherHEye = 0; let eyeColorArray = []; if (father !== 0) { - eyeColorArray.push(mother.origEye); - eyeColorArray.push(father.origEye); + eyeColorArray.push(mother.eye.origColor); + eyeColorArray.push(father.eye.origColor); if (father.geneticQuirks.heterochromia !== 0 && father.geneticQuirks.heterochromia !== 1) { eyeColorArray.push(father.geneticQuirks.heterochromia); } @@ -397,9 +397,9 @@ window.generateGenetics = (function() { } if (fatherHEye !== 0) { eyeColorArray.push(fatherHEye); - eyeColorArray.push(mother.origEye); + eyeColorArray.push(mother.eye.origColor); } else { - eyeColorArray.push(mother.origEye); + eyeColorArray.push(mother.eye.origColor); } } if (mother.geneticQuirks.heterochromia !== 0 && mother.geneticQuirks.heterochromia !== 1) { @@ -1069,7 +1069,20 @@ window.generateChild = function(mother, ova, destination) { child.genes = "XX"; child.slaveSurname = genes.surname; if (!pregUpgrade) { - if (genes.mother === -1) { + if (genes.clone) { + if (genes.cloneID === -1) { + child.slaveName = `Your clone`; + child.slaveSurname = V.PC.slaveSurname; + } else { + child.slaveName = `${genes.clone}'s clone`; + let cloneSeed = getSlave(genes.cloneID); + if (cloneSeed !== undefined) { + if (cloneSeed.slaveSurname !== 0 && cloneSeed.slaveSurname !== "") { + child.slaveSurname = cloneSeed.slaveSurname; + } + } + } + } else if (genes.mother === -1) { if (genes.father <= 0) { child.slaveName = `Your daughter`; } else { @@ -1108,7 +1121,20 @@ window.generateChild = function(mother, ova, destination) { } else { let childName = genes.name; if (childName.indexOf("ovum") === 0) { - if (genes.mother === -1) { + if (genes.clone) { + if (genes.cloneID === -1) { + child.slaveName = `Your clone`; + child.slaveSurname = V.PC.slaveSurname; + } else { + child.slaveName = `${genes.clone}'s clone`; + let cloneSeed = getSlave(genes.cloneID); + if (cloneSeed !== undefined) { + if (cloneSeed.slaveSurname !== 0 && cloneSeed.slaveSurname !== "") { + child.slaveSurname = cloneSeed.slaveSurname; + } + } + } + } else if (genes.mother === -1) { if (genes.father <= 0) { child.slaveName = "Your son"; } else { @@ -1126,7 +1152,18 @@ window.generateChild = function(mother, ova, destination) { } else { child.slaveName = genes.name; } - if (genes.mother === -1) { + if (genes.clone) { + if (genes.cloneID === -1) { + child.slaveSurname = V.PC.slaveSurname; + } else { + let cloneSeed = getSlave(genes.cloneID); + if (cloneSeed !== undefined) { + if (cloneSeed.slaveSurname !== 0 && cloneSeed.slaveSurname !== "") { + child.slaveSurname = cloneSeed.slaveSurname; + } + } + } + } else if (genes.mother === -1) { child.slaveSurname = V.PC.slaveSurname; } else { if (genes.father === -1) { @@ -1159,7 +1196,20 @@ window.generateChild = function(mother, ova, destination) { child.genes = "XY"; child.slaveSurname = genes.surname; if (!pregUpgrade) { - if (genes.mother === -1) { + if (genes.clone) { + if (genes.cloneID === -1) { + child.slaveName = `Your clone`; + child.slaveSurname = V.PC.slaveSurname; + } else { + child.slaveName = `${genes.clone}'s clone`; + let cloneSeed = getSlave(genes.cloneID); + if (cloneSeed !== undefined) { + if (cloneSeed.slaveSurname !== 0 && cloneSeed.slaveSurname !== "") { + child.slaveSurname = cloneSeed.slaveSurname; + } + } + } + } else if (genes.mother === -1) { if (genes.father <= 0) { child.slaveName = "Your son"; } else { @@ -1198,7 +1248,20 @@ window.generateChild = function(mother, ova, destination) { } else { let childName = genes.name; if (childName.indexOf("ovum") === 0) { - if (genes.mother === -1) { + if (genes.clone) { + if (genes.cloneID === -1) { + child.slaveName = `Your clone`; + child.slaveSurname = V.PC.slaveSurname; + } else { + child.slaveName = `${genes.clone}'s clone`; + let cloneSeed = getSlave(genes.cloneID); + if (cloneSeed !== undefined) { + if (cloneSeed.slaveSurname !== 0 && cloneSeed.slaveSurname !== "") { + child.slaveSurname = cloneSeed.slaveSurname; + } + } + } + } else if (genes.mother === -1) { if (genes.father <= 0) { child.slaveName = "Your son"; } else { @@ -1216,7 +1279,18 @@ window.generateChild = function(mother, ova, destination) { } else { child.slaveName = genes.name; } - if (genes.mother === -1) { + if (genes.clone) { + if (genes.cloneID === -1) { + child.slaveSurname = V.PC.slaveSurname; + } else { + let cloneSeed = getSlave(genes.cloneID); + if (cloneSeed !== undefined) { + if (cloneSeed.slaveSurname !== 0 && cloneSeed.slaveSurname !== "") { + child.slaveSurname = cloneSeed.slaveSurname; + } + } + } + } else if (genes.mother === -1) { child.slaveSurname = V.PC.slaveSurname; } else { if (genes.father === -1) { @@ -1295,11 +1369,11 @@ window.generateChild = function(mother, ova, destination) { } } child.origSkin = genes.skin; - child.origEye = genes.eyeColor; + child.eye.origColor = genes.eyeColor; child.origHColor = genes.hColor; child.skin = getGeneticSkinColor(child); - child.eyeColor = getGeneticEyeColor(child); child.hColor = getGeneticHairColor(child); + resetEyeColor(child, "both"); child.pubicHColor = child.hColor; child.underArmHColor = child.hColor; child.eyebrowHColor = child.hColor; @@ -1338,7 +1412,18 @@ window.generateChild = function(mother, ova, destination) { child = GenerateNewSlave("XX"); child.slaveSurname = genes.surname; if (!pregUpgrade) { - if (genes.mother === -1) { + if (genes.clone) { + if (genes.cloneID === -1) { + child.slaveName = `Your clone`; + child.slaveSurname = V.PC.slaveSurname; + } else { + child.slaveName = `${genes.clone}'s clone`; + let cloneSeed = getSlave(genes.cloneID); + if (cloneSeed.slaveSurname !== 0 && cloneSeed.slaveSurname !== "") { + child.slaveSurname = cloneSeed.slaveSurname; + } + } + } else if (genes.mother === -1) { if (genes.father <= 0) { child.slaveName = `Your daughter`; } else { @@ -1377,7 +1462,18 @@ window.generateChild = function(mother, ova, destination) { } else { let childName = genes.name; if (childName.indexOf("ovum") === 0) { - if (genes.mother === -1) { + if (genes.clone) { + if (genes.cloneID === -1) { + child.slaveName = `Your clone`; + child.slaveSurname = V.PC.slaveSurname; + } else { + child.slaveName = `${genes.clone}'s clone`; + let cloneSeed = getSlave(genes.cloneID); + if (cloneSeed.slaveSurname !== 0 && cloneSeed.slaveSurname !== "") { + child.slaveSurname = cloneSeed.slaveSurname; + } + } + } else if (genes.mother === -1) { if (genes.father <= 0) { child.slaveName = `Your daughter`; } else { @@ -1395,7 +1491,16 @@ window.generateChild = function(mother, ova, destination) { } else { child.slaveName = genes.name; } - if (genes.mother === -1) { + if (genes.clone) { + if (genes.cloneID === -1) { + child.slaveSurname = V.PC.slaveSurname; + } else { + let cloneSeed = getSlave(genes.cloneID); + if (cloneSeed.slaveSurname !== 0 && cloneSeed.slaveSurname !== "") { + child.slaveSurname = cloneSeed.slaveSurname; + } + } + } else if (genes.mother === -1) { child.slaveSurname = V.PC.slaveSurname; } else { if (genes.father === -1) { @@ -1428,7 +1533,18 @@ window.generateChild = function(mother, ova, destination) { child = GenerateNewSlave("XY"); child.slaveSurname = genes.surname; if (!pregUpgrade) { - if (genes.mother === -1) { + if (genes.clone) { + if (genes.cloneID === -1) { + child.slaveName = `Your clone`; + child.slaveSurname = V.PC.slaveSurname; + } else { + child.slaveName = `${genes.clone}'s clone`; + let cloneSeed = getSlave(genes.cloneID); + if (cloneSeed.slaveSurname !== 0 && cloneSeed.slaveSurname !== "") { + child.slaveSurname = cloneSeed.slaveSurname; + } + } + } else if (genes.mother === -1) { if (genes.father <= 0) { child.slaveName = "Your son"; } else { @@ -1467,7 +1583,18 @@ window.generateChild = function(mother, ova, destination) { } else { let childName = genes.name; if (childName.indexOf("ovum") === 0) { - if (genes.mother === -1) { + if (genes.clone) { + if (genes.cloneID === -1) { + child.slaveName = `Your clone`; + child.slaveSurname = V.PC.slaveSurname; + } else { + child.slaveName = `${genes.clone}'s clone`; + let cloneSeed = getSlave(genes.cloneID); + if (cloneSeed.slaveSurname !== 0 && cloneSeed.slaveSurname !== "") { + child.slaveSurname = cloneSeed.slaveSurname; + } + } + } else if (genes.mother === -1) { if (genes.father <= 0) { child.slaveName = "Your son"; } else { @@ -1485,7 +1612,16 @@ window.generateChild = function(mother, ova, destination) { } else { child.slaveName = genes.name; } - if (genes.mother === -1) { + if (genes.clone) { + if (genes.cloneID === -1) { + child.slaveSurname = V.PC.slaveSurname; + } else { + let cloneSeed = getSlave(genes.cloneID); + if (cloneSeed.slaveSurname !== 0 && cloneSeed.slaveSurname !== "") { + child.slaveSurname = cloneSeed.slaveSurname; + } + } + } else if (genes.mother === -1) { child.slaveSurname = V.PC.slaveSurname; } else { if (genes.father === -1) { @@ -1517,12 +1653,10 @@ window.generateChild = function(mother, ova, destination) { } child.actualAge = 0; - if (genes.clone !== undefined) { child.clone = genes.clone; child.cloneID = genes.cloneID; } - child.mother = genes.mother; child.father = genes.father; child.nationality = genes.nationality; @@ -1558,11 +1692,11 @@ window.generateChild = function(mother, ova, destination) { } } child.origSkin = genes.skin; - child.origEye = genes.eyeColor; + child.eye.origColor = genes.eyeColor; child.origHColor = genes.hColor; child.skin = getGeneticSkinColor(child); - child.eyeColor = getGeneticEyeColor(child); child.hColor = getGeneticHairColor(child); + resetEyeColor(child, "both"); child.pubicHColor = child.hColor; child.underArmHColor = child.hColor; child.eyebrowHColor = child.hColor; diff --git a/src/js/generateMarketSlave.js b/src/js/generateMarketSlave.js index 7ebf18f640786b5dac524a055875d3383665be03..47a561f854bc2b56b5eabe7a46684b627df3ca60 100644 --- a/src/js/generateMarketSlave.js +++ b/src/js/generateMarketSlave.js @@ -630,7 +630,16 @@ window.generateMarketSlave = function(market = "kidnappers", numArcology = 1) { V.activeSlave.trust -= jsRandom(0, 10); } if (jsRandom(1, 100) > 90) { - V.activeSlave.eyes = -2; + // one in twenty slaves has only one blind eye. + if (jsRandom(1, 20) > 1) { + if (jsRandom(1, 2) === 1) { + eyeSurgery(V.activeSlave, "left", "blind"); + } else { + eyeSurgery(V.activeSlave, "left", "blind"); + } + } else { + eyeSurgery(V.activeSlave, "blind", "blind"); + } } if (jsRandom(1, 100) > 90) { V.activeSlave.hears = -2; @@ -1077,7 +1086,11 @@ window.generateMarketSlave = function(market = "kidnappers", numArcology = 1) { V.activeSlave.intelligenceImplant = 0; V.activeSlave.health = jsRandom(-99, 0); V.activeSlave.weight = jsRandom(-100, 0); - V.activeSlave.eyes = jsEither([-2, -1, -1, -1, -1, 1, 1, 1]); + if (jsRandom(1, 8) === 1) { + eyeSurgery(V.activeSlave, "both", "blind"); + } else if (jsRandom(1, 7) <= 4) { + eyeSurgery(V.activeSlave, "both", "blur"); + } V.activeSlave.hears = jsEither([-2, -1, -1, -1, -1, 0, 0, 0]); if (V.seeExtreme === 1 && jsRandom(0, 2) === 2) { // TODO: maybe only partly amputee? @@ -1133,7 +1146,7 @@ window.generateMarketSlave = function(market = "kidnappers", numArcology = 1) { V.activeSlave.health = jsRandom(-99, -50); V.activeSlave.weight = jsRandom(-100, -50); V.activeSlave.muscles = jsRandom(-100, -50); - V.activeSlave.eyes = -2; + eyeSurgery(V.activeSlave, "both", "blind"); V.activeSlave.hears = -2; V.activeSlave.smells = -1; V.activeSlave.tastes = -1; diff --git a/src/js/generateNewSlaveJS.js b/src/js/generateNewSlaveJS.js index 852b56de8be81b3a42fce76495de0802ee11808e..3a40af97f3011aafac055669ad72e6b757847307 100644 --- a/src/js/generateNewSlaveJS.js +++ b/src/js/generateNewSlaveJS.js @@ -67,9 +67,10 @@ window.GenerateNewSlave = (function() { generateHormones(); generatePronouns(slave); slave.origRace = slave.race; - slave.eyeColor = getGeneticEyeColor(slave); slave.hColor = getGeneticHairColor(slave); slave.skin = getGeneticSkinColor(slave); + resetEyeColor(slave, "both"); + } function GenerateXXSlave() { @@ -1400,46 +1401,29 @@ window.GenerateNewSlave = (function() { slave.origSkin = jsEither(["black", "brown", "dark brown"]); slave.origHColor = jsEither(["black", "black", "black", "brown"]); slave.hStyle = jsEither(["crinkled", "neat"]); - if (slave.geneticQuirks.heterochromia === 2) { - slave.geneticQuirks.heterochromia = "brown"; - } + eyeColor(["brown"], true); break; case "white": slave.lips = jsRandom(5, 25); if (slave.nationality === "German") { slave.origSkin = jsEither(["fair", "light", "pale"]); - slave.origEye = jsEither(["blue", "blue", "blue", "brown", "green"]); - if (slave.geneticQuirks.heterochromia === 2) { - slave.geneticQuirks.heterochromia = jsEither(["blue", "blue", "blue", "brown", "green"]); - } + eyeColor(["blue", "blue", "blue", "brown", "green"]); slave.origHColor = jsEither(["black", "blonde", "blonde", "blonde", "brown", "red"]); } else if (slave.nationality === "Icelandic") { slave.origSkin = jsEither(["fair", "light", "pale", "pale"]); - slave.origEye = jsEither(["blue", "blue", "blue", "brown", "green"]); - if (slave.geneticQuirks.heterochromia === 2) { - slave.geneticQuirks.heterochromia = jsEither(["blue", "blue", "blue", "brown", "green"]); - } + eyeColor(["blue", "blue", "blue", "brown", "green"]); slave.origHColor = jsEither(["black", "blonde", "blonde", "blonde", "brown", "red"]); } else if (slave.nationality === "Irish") { slave.origSkin = jsEither(["fair", "light", "pale", "pale"]); - slave.origEye = jsEither(["blue", "brown", "green", "green", "green"]); - if (slave.geneticQuirks.heterochromia === 2) { - slave.geneticQuirks.heterochromia = jsEither(["blue", "brown", "green", "green", "green"]); - } + eyeColor(["blue", "brown", "green", "green", "green"]); slave.origHColor = jsEither(["black", "blonde", "brown", "red", "red", "red"]); } else if (slave.nationality === "Scottish") { slave.origSkin = jsEither(["fair", "fair", "light", "pale"]); - slave.origEye = jsEither(["blue", "brown", "brown", "green", "green", "green"]); - if (slave.geneticQuirks.heterochromia === 2) { - slave.geneticQuirks.heterochromia = jsEither(["blue", "brown", "brown", "green", "green", "green"]); - } + eyeColor(["blue", "brown", "brown", "green", "green", "green"]); slave.origHColor = jsEither(["black", "black", "blonde", "red", "red", "red", "brown"]); } else { slave.origSkin = jsEither(["fair", "light", "pale"]); - slave.origEye = jsEither(["blue", "brown", "green"]); - if (slave.geneticQuirks.heterochromia === 2) { - slave.geneticQuirks.heterochromia = jsEither(["blue", "brown", "green"]); - } + eyeColor(["blue", "brown", "green"]); slave.origHColor = jsEither(["black", "blonde", "brown", "red"]); } slave.hStyle = "neat"; @@ -1448,10 +1432,8 @@ window.GenerateNewSlave = (function() { slave.lips = jsRandom(5, 25); slave.origSkin = jsEither(["brown", "dark brown", "dark olive", "light olive", "tan"]); slave.origHColor = jsEither(["black", "brown"]); - if (slave.geneticQuirks.heterochromia === 2) { - slave.geneticQuirks.heterochromia = jsEither(["blue", "brown", "green"]); - } slave.hStyle = "neat"; + eyeColor(["blue", "brown", "green"], true); break; case "indo-aryan": case "malay": @@ -1461,18 +1443,14 @@ window.GenerateNewSlave = (function() { slave.origSkin = jsEither(["dark", "light"]); slave.origHColor = "black"; slave.hStyle = "neat"; - if (slave.geneticQuirks.heterochromia === 2) { - slave.geneticQuirks.heterochromia = "brown"; - } + eyeColor(["brown"], true); break; case "asian": slave.lips = jsRandom(5, 25); slave.origSkin = jsEither(["dark olive", "light olive", "light"]); slave.origHColor = "black"; slave.hStyle = "neat"; - if (slave.geneticQuirks.heterochromia === 2) { - slave.geneticQuirks.heterochromia = jsEither(["blue", "brown", "green"]); - } + eyeColor(["blue", "brown", "green"], true); break; case "middle eastern": case "semitic": @@ -1481,18 +1459,14 @@ window.GenerateNewSlave = (function() { slave.origSkin = jsEither(["fair", "light olive", "light", "tan"]); slave.origHColor = "black"; slave.hStyle = "neat"; - if (slave.geneticQuirks.heterochromia === 2) { - slave.geneticQuirks.heterochromia = jsEither(["blue", "brown", "green"]); - } + eyeColor(["blue", "brown", "green"], true); break; default: slave.lips = jsRandom(5, 25); slave.origSkin = jsEither(["dark", "light", "pale"]); slave.origHColor = jsEither(["black", "black", "black", "black", "blonde", "brown", "brown", "red"]); slave.hStyle = "neat"; - if (slave.geneticQuirks.heterochromia === 2) { - slave.geneticQuirks.heterochromia = jsEither(["blue", "brown", "green"]); - } + eyeColor(["blue", "brown", "green"], true); } if ((skinToneLevel(slave.origSkin) > 5) && (skinToneLevel(slave.origSkin) < 10)) { if (jsRandom(1, 4) === 1) { @@ -1501,6 +1475,19 @@ window.GenerateNewSlave = (function() { } else if (jsRandom(1, 8) === 1) { slave.markings = jsEither(["beauty mark", "birthmark"]); } + + /** + * @param {string[]} colors + * @param {boolean} [heteroOnly] + */ + function eyeColor(colors, heteroOnly = false) { + if (!heteroOnly) { + setGeneticEyeColor(slave, jsEither(colors)); + } + if (slave.geneticQuirks.heterochromia === 2) { + setGeneticEyeColor(slave, jsEither(colors), true); + } + } } function generateBoobTweaks() { @@ -1563,7 +1550,7 @@ window.GenerateNewSlave = (function() { function generateDisabilities() { if (slave.physicalAge >= jsRandom(0, 100)) { - slave.eyes = -1; + eyeSurgery(slave, "both", "blur"); } if (slave.physicalAge >= jsRandom(30, 100)) { slave.hears = -1; @@ -1589,7 +1576,7 @@ window.GenerateNewSlave = (function() { break; case "seeNot": if ((jsRandom(1, 100) - (disableCount * 2)) > 90) { - slave.eyes = -2; + eyeSurgery(slave, "both", "blind"); } disList.delete("seeNot"); disableCount++; diff --git a/src/js/rulesAssistantOptions.js b/src/js/rulesAssistantOptions.js index 563025254a979a8742a28afc63271375e2460c2c..db452df01c2f13b20e2bf57f5ef036277dfd8af3 100644 --- a/src/js/rulesAssistantOptions.js +++ b/src/js/rulesAssistantOptions.js @@ -4246,16 +4246,16 @@ window.rulesAssistantOptions = (function() { this.onchange = (value) => current_rule.set.setAssignment = value; } } - + class PitAssignmentList extends ListSelector{ constructor() { const items =[["remove from pit",0],["assign to pit",1]] - super("Pit assignment", items); + super("Pit assignment", items); this.setValue(current_rule.set.pitRules); this.onchange = (value) => current_rule.set.pitRules = value; } } - + class BellyImplantList extends RadioSelector { constructor() { const items = [ diff --git a/src/js/rulesAutosurgery.js b/src/js/rulesAutosurgery.js index 40bf8d2bd25f19c7c4b59170c678940ce4e548c3..916df5c9f959b1d80740cb74c1562b8fe4cae6d0 100644 --- a/src/js/rulesAutosurgery.js +++ b/src/js/rulesAutosurgery.js @@ -200,10 +200,22 @@ window.rulesAutosurgery = (function() { // Hence they have to be first conditions in the '&&' chains to avoid type errors // (reading properties of the 'null' object) if (slave.health > 20 && surgeries.length < 3) { - if (slave.eyes === -1 && thisSurgery.eyes === 1) { - commitProcedure(`surgery to correct ${his} vision`, s => { s.eyes = 1; }); - } else if (slave.eyes === 1 && thisSurgery.eyes === -1) { - commitProcedure(`surgery to blur ${his} vision`, s => { s.eyes = -1; }); + if (thisSurgery.eyes === 1 && anyVisionEquals(slave, 1)) { + // possibly two surgeries at once, in turn health cost is halved + if (getLeftEyeVision(slave) === 1) { + commitProcedure(`surgery to correct ${his} left vision`, s => { eyeSurgery(s, "left", "fix"); }, 5); + } + if (getRightEyeVision(slave) === 1) { + commitProcedure(`surgery to correct ${his} right vision`, s => { eyeSurgery(s, "right", "fix"); }, 5); + } + } else if (thisSurgery.eyes === -1 && anyVisionEquals(slave, 2)) { + // possibly two surgeries at once, in turn health cost is halved + if (getLeftEyeVision(slave) === 2) { + commitProcedure(`surgery to blur ${his} left vision`, s => { eyeSurgery(s, "left", "blur"); }, 5); + } + if (getRightEyeVision(slave) === 2) { + commitProcedure(`surgery to blur ${his} right vision`, s => { eyeSurgery(s, "right", "blur"); }, 5); + } } else if (slave.hears === -1 && thisSurgery.hears === 0) { commitProcedure(`surgery to correct ${his} hearing`, s => { s.hears = 0; }); } else if (slave.hears === 0 && thisSurgery.hears === -1) { diff --git a/src/js/slaveCostJS.js b/src/js/slaveCostJS.js index 7c78afebe6e5a0f591b5b766fab47597f5921b47..eb76d2dc85388c163892c7adb9cae2d63d68f561 100644 --- a/src/js/slaveCostJS.js +++ b/src/js/slaveCostJS.js @@ -1800,11 +1800,7 @@ window.FResult = (function() { function calcSight(slave) { if (!canSee(slave)) { result -= 3; - } else if (slave.eyes <= -1) { - if (slave.eyewear !== "corrective glasses" && slave.eyewear !== "corrective contacts") { - result -= 1; - } - } else if (slave.eyewear === "blurring glasses" || slave.eyewear === "blurring contacts") { + } else if (!canSeePerfectly(slave)) { result -= 1; } } @@ -1899,7 +1895,10 @@ window.FResult = (function() { calcHearing(slave); } else { result += slave.hears; - result += Math.clamp(slave.eyes * 2 + 1, -3, 0); + // see: 0 + // impaired: -1 + // blind: -3 + result += Math.clamp(getBestVision(slave) * 2 - 3, -3, 0); } if (V.arcologies[0].FSEgyptianRevivalist !== "unset") { calcEgyptianBonus(slave); @@ -2370,7 +2369,7 @@ window.slaveCost = (function() { multiplier -= 0.1*(Object.getOwnPropertyNames(slave.brand).length); } multiplier -= getLimbCount(slave, 0) * 0.05; - if (slave.eyes <= -2) { + if (!canSee(slave)) { multiplier -= 0.2; } } diff --git a/src/js/slaveGenerationJS.js b/src/js/slaveGenerationJS.js index 73e978efcb392495f24fba7183b76d71bfa49fdb..b18fbc749f32dfb36b189468c054966c5b8aeda9 100644 --- a/src/js/slaveGenerationJS.js +++ b/src/js/slaveGenerationJS.js @@ -420,7 +420,7 @@ window.nationalityToAccent = function nationalityToAccent(slave) { break; case "Curaçaoan": if (V.language === "Dutch") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "English") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); } else if (V.language === "Portuguese") { diff --git a/src/js/slaveSummaryWidgets.js b/src/js/slaveSummaryWidgets.js index 4707f0b6d1e3f70c4f1c68a7f511f40886b2a5a0..0ba6735a9560c08d2ae4924c512d0bddb5c48f3e 100644 --- a/src/js/slaveSummaryWidgets.js +++ b/src/js/slaveSummaryWidgets.js @@ -1852,9 +1852,9 @@ window.SlaveSummaryUncached = (function() { * @returns {void} */ function short_eyes(slave, c) { - if (slave.eyes === -2) { + if (!canSee(slave)) { makeSpan(c, "Blind", "red"); - } else if (((slave.eyes === -1) && (slave.eyewear !== "corrective glasses") && (slave.eyewear !== "corrective contacts")) || (slave.eyewear === "blurring glasses") || (slave.eyewear === "blurring contacts")) { + } else if (!canSeePerfectly(slave)) { makeSpan(c, "Sight-", "yellow"); } } @@ -2206,9 +2206,9 @@ window.SlaveSummaryUncached = (function() { * @returns {void} */ function long_eyes(slave, c) { - if (slave.eyes <= -2) { + if (!canSee(slave)) { makeSpan(c, "Blind.", "red"); - } else if (((slave.eyes === -1) && (slave.eyewear !== "corrective glasses") && (slave.eyewear !== "corrective contacts")) || (slave.eyewear === "blurring glasses") || (slave.eyewear === "blurring contacts")) { + } else if (!canSeePerfectly(slave)) { makeSpan(c, "Nearsighted.", "yellow"); } } diff --git a/src/js/statsChecker/eyeChecker.js b/src/js/statsChecker/eyeChecker.js new file mode 100644 index 0000000000000000000000000000000000000000..058e3c1016904d72a7900d94480c5603734035b7 --- /dev/null +++ b/src/js/statsChecker/eyeChecker.js @@ -0,0 +1,273 @@ +/** + * True if slave has at least one eye + * + * @param {App.Entity.SlaveState} slave + * @returns {boolean} + */ +window.hasAnyEyes = function(slave) { + return !!slave.eye.right || !!slave.eye.left; +}; + +/** + * True if slave has at least one eye that is natural + * + * @param {App.Entity.SlaveState} slave + * @returns {boolean} + */ +window.hasAnyNaturalEyes = function(slave) { + return getLeftEyeType(slave) === 1 || getRightEyeType(slave) === 1; +}; + +/** + * True if slave has at least one eye that is prosthetic (cyber or glass) + * + * @param {App.Entity.SlaveState} slave + * @returns {boolean} + */ +window.hasAnyProstheticEyes = function(slave) { + return getLeftEyeType(slave) > 1 || getRightEyeType(slave) > 1; +}; + +/** + * True if slave has at least one eye that is cybernetic + * + * @param {App.Entity.SlaveState} slave + * @returns {boolean} + */ +window.hasAnyCyberneticEyes = function(slave) { + return getLeftEyeType(slave) === 3 || getRightEyeType(slave) === 3; +}; + +/** + * True if slave has both eyes + * + * @param {App.Entity.SlaveState} slave + * @returns {boolean} + */ +window.hasBothEyes = function(slave) { + return !!slave.eye.right && !!slave.eye.left; +}; + +/** + * True if slave has both eyes and they are natural + * + * @param {App.Entity.SlaveState} slave + * @returns {boolean} + */ +window.hasBothNaturalEyes = function(slave) { + return getLeftEyeType(slave) === 1 && getRightEyeType(slave) === 1; +}; + +/** + * True if slave has both eyes and they are prosthetic (cyber or glass) + * + * @param {App.Entity.SlaveState} slave + * @returns {boolean} + */ +window.hasBothProstheticEyes = function(slave) { + return getLeftEyeType(slave) > 1 && getRightEyeType(slave) > 1; +}; + +/** + * True if slave has both eyes and they are cybernetic + * + * @param {App.Entity.SlaveState} slave + * @returns {boolean} + */ +window.hasBothCyberneticEyes = function(slave) { + return getLeftEyeType(slave) === 3 && getRightEyeType(slave) === 3; +}; + +/** + * True if slave has left eye + * + * @param {App.Entity.SlaveState} slave + * @returns {boolean} + */ +window.hasLeftEye = function(slave) { + return !!slave.eye.left; +}; +/** + * True if slave has right eye + * + * @param {App.Entity.SlaveState} slave + * @returns {boolean} + */ +window.hasRightEye = function(slave) { + return !!slave.eye.right; +}; + +/** + * Returns type of the left eye. + * + * @param {App.Entity.SlaveState} slave + * @returns {number} + */ +window.getLeftEyeType = function(slave) { + if (hasLeftEye(slave)) { + return slave.eye.left.type; + } else { + return 0; + } +}; + +/** + * Returns type of the right eye. + * + * @param {App.Entity.SlaveState} slave + * @returns {number} + */ +window.getRightEyeType = function(slave) { + if (hasRightEye(slave)) { + return slave.eye.right.type; + } else { + return 0; + } +}; + +/** + * @param {App.Entity.SlaveState} slave + * @returns {number} + */ +window.getLeftEyeVision = function(slave) { + if (hasLeftEye(slave)) { + return slave.eye.left.vision; + } else { + return 0; + } +}; + +/** + * @param {App.Entity.SlaveState} slave + * @returns {number} + */ +window.getRightEyeVision = function(slave) { + if (hasRightEye(slave)) { + return slave.eye.right.vision; + } else { + return 0; + } +}; + +/** + * @param {App.Entity.SlaveState} slave + * @returns {number} + */ +window.getBestVision = function(slave) { + return Math.max(getRightEyeVision(slave), getLeftEyeVision(slave)); +}; + +/** + * @param {App.Entity.SlaveState} slave + * @returns {number} + */ +window.getWorstVision = function(slave) { + return Math.min(getRightEyeVision(slave), getLeftEyeVision(slave)); +}; + +/** + * + * @param {App.Entity.SlaveState} slave + * @param {number} vision + * @returns {boolean} + */ +window.anyVisionEquals = function(slave, vision) { + return getRightEyeVision(slave) === vision || getLeftEyeVision(slave) === vision; +}; + +/** + * @param {App.Entity.SlaveState} slave + * @returns {string} + */ +window.getLeftEyeColor = function(slave) { + if (hasLeftEye(slave)) { + return slave.eye.left.iris; + } else { + return "empty"; + } +}; + +/** + * @param {App.Entity.SlaveState} slave + * @returns {string} + */ +window.getRightEyeColor = function(slave) { + if (hasLeftEye(slave)) { + return slave.eye.right.iris; + } else { + return "empty"; + } +}; + +/** + * @param {App.Entity.SlaveState} slave + * @returns {string} + */ +window.getLeftEyePupil = function(slave) { + if (hasLeftEye(slave)) { + return slave.eye.left.pupil; + } else { + return "circular"; + } +}; + +/** + * @param {App.Entity.SlaveState} slave + * @returns {string} + */ +window.getRightEyePupil = function(slave) { + if (hasLeftEye(slave)) { + return slave.eye.right.pupil; + } else { + return "circular"; + } +}; + +/** + * @param {App.Entity.SlaveState} slave + * @returns {boolean} + */ +window.hasVisibleHeterochromia = function(slave) { + return hasAnyEyes(slave) && getLeftEyeColor(slave) !== getRightEyeColor(slave); +}; + +/** + * Gives the genetic color of the specified eye. + * + * @param {App.Entity.SlaveState} slave + * @param {string} side + * @returns {string} + */ +window.getGeneticEyeColor = function(slave, side) { + if (side !== "left" && side !== "right") { return "ERROR:" + side; } + + if (slave.geneticQuirks.albinism === 2) { + return "red"; + } else { + if (side === "left" && typeof slave.geneticQuirks.heterochromia === "string") { + return slave.geneticQuirks.heterochromia; + } else { + return slave.eye.origColor; + } + } +}; + +/** + * Counts the number of eyes that are not the genetic color + * + * @param {App.Entity.SlaveState} slave + * @returns {number} + */ +window.getLenseCount = function(slave) { + let count = 0; + + if (hasRightEye(slave) && getRightEyeColor(slave) !== getGeneticEyeColor(slave, "right")) { + count++; + } + + if (hasLeftEye(slave) && getLeftEyeColor(slave) !== getGeneticEyeColor(slave, "left")) { + count++; + } + + return count; +}; diff --git a/src/js/statsChecker/statsChecker.js b/src/js/statsChecker/statsChecker.js index 64e24245bd858054e16ed8a4d0c060c267f08ad6..c9cae99729ea06bb2f13c0d5f86ea7e217fc48f5 100644 --- a/src/js/statsChecker/statsChecker.js +++ b/src/js/statsChecker/statsChecker.js @@ -625,7 +625,27 @@ window.canSee = function(slave) { if (!slave) { return null; } - return (slave.eyes > -2); + return (getBestVision(slave)) > 0; +}; + +/** + * + * @param {App.Entity.SlaveState} slave + * @returns {boolean} + */ +window.canSeePerfectly = function(slave) { + if (!canSee(slave)) { + return false; + } + + if (getBestVision(slave) === 2 && (slave.eyewear === "blurring glasses") || (slave.eyewear === "blurring contacts")) { + // could see perfectly, but being blurred + return false; + } else if (getBestVision(slave) < 2 && !(slave.eyewear === "corrective glasses" || slave.eyewear === "corrective contacts")) { + // can't see perfectly and not corrected + return false; + } + return true; }; /** @@ -870,129 +890,6 @@ window.isVegetable = function(slave) { return (slave.fetish === "mindbroken"); }; -/** - * True if slave has at least one eye - * - * @param {App.Entity.SlaveState} slave - * @returns {boolean} - */ -window.hasAnyEyes = function(slave) { - return !!slave.eyeball.right || !!slave.eyeball.left; -}; - -/** - * True if slave has at least one eye that is natural - * - * @param {App.Entity.SlaveState} slave - * @returns {boolean} - */ -window.hasAnyNaturalEyes = function(slave) { - return getLeftEyeID(slave) === 1 || getRightEyeID(slave) === 1; -}; - -/** - * True if slave has at least one eye that is prosthetic - * - * @param {App.Entity.SlaveState} slave - * @returns {boolean} - */ -window.hasAnyProstheticEyes = function(slave) { - return getLeftEyeID(slave) > 1 || getRightEyeID(slave) > 1; -}; - -/** - * True if slave has both eyes - * - * @param {App.Entity.SlaveState} slave - * @returns {boolean} - */ -window.hasBothEyes = function(slave) { - return !!slave.eyeball.right && !!slave.eyeball.left; -}; - -/** - * True if slave has both eyes and they are natural - * - * @param {App.Entity.SlaveState} slave - * @returns {boolean} - */ -window.hasBothNaturalEyes = function(slave) { - return getLeftEyeID(slave) === 1 && getRightEyeID(slave) === 1; -}; - -/** - * True if slave has both eyes and they are prosthetic - * - * @param {App.Entity.SlaveState} slave - * @returns {boolean} - */ -window.hasBothProstheticEyes = function(slave) { - return getLeftEyeID(slave) > 1 && getRightEyeID(slave) > 1; -}; - -/** - * True if slave has left eye - * - * @param {App.Entity.SlaveState} slave - * @returns {boolean} - */ -window.hasLeftEye = function(slave) { - return !!slave.eyeball.left; -}; -/** - * True if slave has right eye - * - * @param {App.Entity.SlaveState} slave - * @returns {boolean} - */ -window.hasRightEye = function(slave) { - return !!slave.eyeball.right; -}; - -/** - * Returns limb ID of the left eye. Uses new IDs. - * - * @param {App.Entity.SlaveState} slave - * @returns {number} - */ -window.getLeftEyeID = function(slave) { - if (hasLeftEye(slave)) { - return slave.eyeball.left.type; - } else { - return 0; - } -}; - -/** - * Returns limb ID of the right eye. Uses new IDs. - * - * @param {App.Entity.SlaveState} slave - * @returns {number} - */ -window.getRightEyeID = function(slave) { - if (hasRightEye(slave)) { - return slave.eyeball.right.type; - } else { - return 0; - } -}; - -/** - * Returns the eye color the slave was (or would be) born with. - * - * @param {App.Entity.SlaveState} slave - * @param {string} side - * @returns {string} - */ -window.getGeneticEyeColor = function(slave, side = "right") { - if (slave.geneticQuirks.albinism === 2) { - return slave.albinismOverride.eyeColor; - } - if (side === "left" && typeof slave.geneticQuirks.heterochromia === "string") { - return slave.geneticQuirks.heterochromia; - } - return slave.origEye; -}; /** * Returns the hair color the slave was (or would be) born with. diff --git a/src/js/surgery.js b/src/js/surgery.js index 8dac4988d7c688e0cec3a8dd679e0bf97e1c6f3d..27a6159e36926dbd70f283e03e343bf9c58e30d9 100644 --- a/src/js/surgery.js +++ b/src/js/surgery.js @@ -510,20 +510,157 @@ window.surgeryAmp = function(slave, part) { slave.skill.oral -= 10; } break; - case "left eye": - slave.eyes = -4; - slave.health -= 20; + default: + // eslint-disable-next-line no-console + console.log(`ERROR: Unknown amputation type: ` + part); + } +}; + +/** + * @param {App.Entity.SlaveState} slave + * @param {string} side + * @param {string} action + */ +window.eyeSurgery = function(slave, side, action) { + if (side === "both") { + eyeSurgery(slave, "left", action); + eyeSurgery(slave, "right", action); + return; + } + + if (side !== "left" && side !== "right") { return; } // make sure side can be used to access the object + let eyeExists = slave.eye[side] !== null; + + /* actions that don't need an eye */ + switch (action) { + case "normal": + addEye(slave); // color overwritten by genetics + return; + case "glass": + if (!eyeExists) { // color stays the same if possible + addEye(slave); + } + slave.eye[side].type = 2; + slave.eye[side].vision = 0; + return; + case "cybernetic": + if (!eyeExists) { // color stays the same if possible + addEye(slave); + } + slave.eye[side].type = 3; + slave.eye[side].vision = 2; + return; + } + + function addEye(slave) { + slave.eye[side] = new App.Entity.EyeState(); + resetEyeColor(slave, side); + } + + /* actions that need an eye */ + if (!eyeExists) { return; } // make sure the eye exists + + switch (action) { + case "remove": + slave.eye[side] = null; break; - case "right eye": - slave.eyes = -4; - slave.health -= 20; + case "blind": + slave.eye[side].vision = 0; + break; + case "blur": + slave.eye[side].vision = 1; + break; + case "fix": + slave.eye[side].vision = 2; break; default: // eslint-disable-next-line no-console - console.log(`ERROR: Unknown amputation type: ` + part); + console.log(`ERROR: Unknown surgery action: ` + action); + } +}; + +/** + * To be used during slave generation or slave styling (auto salon) + * + * @param {App.Entity.SlaveState} slave + * @param {string} color to set eye to + * @param {string} [side] "left", "right", "both" + */ +window.setEyeColor = function setEyeColor(slave, color, side = "both") { + if (side === "both") { + setEyeColor(slave, color, "left"); + setEyeColor(slave, color, "right"); + return; + } + + if (side !== "left" && side !== "right") { return; } + + slave.eye[side].iris = color; +}; + +/** + * Set all colors of the eye. + * + * @param {App.Entity.SlaveState} slave + * @param {string} iris + * @param {string} pupil + * @param {string} sclera + * @param {string} side + */ +window.setEyeColorFull = function setEyeColorFull(slave, iris, pupil, sclera, side) { + if (side === "both") { + setEyeColorFull(slave, iris, pupil, sclera, "left"); + setEyeColorFull(slave, iris, pupil, sclera, "right"); + return; + } + + if (side !== "left" && side !== "right") { return; } + + if (iris !== "") { + slave.eye[side].iris = iris; + } + if (pupil !== "") { + slave.eye[side].pupil = pupil; + } + if (sclera !== "") { + slave.eye[side].sclera = sclera; } }; +/** + * Set genetic eye color + * + * @param {App.Entity.SlaveState} slave + * @param {string} color + * @param {boolean} heterochromia + */ +window.setGeneticEyeColor = function(slave, color, heterochromia = false) { + if (heterochromia) { + slave.geneticQuirks.heterochromia = color; + } else { + slave.eye.origColor = color; + } +}; + +/** + * Sets the eye color to the genetic color. + * Takes heterochromia and albinism into account. + * + * @param {App.Entity.SlaveState} slave + * @param {string} side + */ +window.resetEyeColor = function(slave, side) { + if (side === "both") { + resetEyeColor(slave, "left"); + resetEyeColor(slave, "right"); + return; + } + + if (side !== "left" && side !== "right") { return; } + + slave.eye[side].iris = getGeneticEyeColor(slave, side); +}; + /** * Allowed values for limb: * left arm, right arm, left leg, right leg, all diff --git a/src/js/utilJS.js b/src/js/utilJS.js index 9a3386042faceb86b1e88084db40440a42d6f3ff..251986164ae21ba68da0d37fafaeadb8e055d97d 100644 --- a/src/js/utilJS.js +++ b/src/js/utilJS.js @@ -964,7 +964,7 @@ window.num = function(x) { "sixty", "seventy", "eighty", "ninety", ]; - const SCALES = ["thousand", "million", "billion", "trillion", "quadrillion", "quintillion"]; + const SCALES = ["thousand", "million", "billion", "trillion", "quadrillion", "quintillion", "sextillion", "septillion", "octillion", "nonillion", "decillion"]; /** * helper function for use with Array.filter diff --git a/src/npc/agent/agentCompany.tw b/src/npc/agent/agentCompany.tw index 52a6281d8734eff5b42fd89fda4625f049ab2914..2cfd63cb1ec883d977d27054493b31141f4bef97 100644 --- a/src/npc/agent/agentCompany.tw +++ b/src/npc/agent/agentCompany.tw @@ -59,6 +59,6 @@ $subSlave.slaveName smiles back at $him, glowing with pleasure, and responds wit <<case "masochist">> "Can't wait to feel you hurt me again, babe," the masochistic <<default>> - "Babe, I can't wait to give you a hug and tell you about _neighborArcology.name," the loving + "Babe, I can't wait to <<if hasAnyArms($subSlave)>>give you a hug and <</if>>tell you about _neighborArcology.name," the loving <</switch>> leader of an entire arcology <<say>>s. \ No newline at end of file diff --git a/src/npc/databases/cheatmodeDatabase.tw b/src/npc/databases/cheatmodeDatabase.tw index bf6e2ccdd74c68d203ab247142b87a6570de0c75..f9e358068f4c49ad81d3229bec0cacd9d0b40c2b 100644 --- a/src/npc/databases/cheatmodeDatabase.tw +++ b/src/npc/databases/cheatmodeDatabase.tw @@ -2,7 +2,7 @@ <<set $activeSlave = BaseSlave()>> <<set _HS = clone($activeSlave)>> -<<set _HS.slaveName = "Miss Anne", _HS.birthName = "Lindy Anne", _HS.ID = 990000, _HS.relation = "mother", _HS.relationTarget = 990004, _HS.relationship = 4, _HS.relationshipTarget = 990001, _HS.rivalry = 1, _HS.rivalryTarget = 990002, _HS.assignment = "be your Head Girl", _HS.birthWeek = random(0,51), _HS.actualAge = 42, _HS.physicalAge = 42, _HS.visualAge = 42, _HS.ovaryAge = 42, _HS.ageImplant = 1, _HS.health = 50, _HS.devotion = 100, _HS.height = 175, _HS.origEye = "green", _HS.origHColor = "honey blonde", _HS.origSkin = "pale", _HS.hStyle = "long", _HS.waist = -55, _HS.boobs = 1000, _HS.boobsImplant = 600, _HS.areolae = 1, _HS.butt = 4, _HS.buttImplant = 2, _HS.face = 55, _HS.lips = 35, _HS.anus = 1, _HS.makeup = 1, _HS.nails = 1, _HS.earPiercing = 1, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.skill.whoring = 100, _HS.skill.entertainment = 100, _HS.clothes = "a slave gown", _HS.intelligence = 100, _HS.energy = 65, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.custom.tattoo = "'Miss Anne' is tattooed in lovely flowing script over $his collarbone.", _HS.custom.desc = "$He speaks with the rich accent of the Old South.">> +<<set _HS.slaveName = "Miss Anne", _HS.birthName = "Lindy Anne", _HS.ID = 990000, _HS.relation = "mother", _HS.relationTarget = 990004, _HS.relationship = 4, _HS.relationshipTarget = 990001, _HS.rivalry = 1, _HS.rivalryTarget = 990002, _HS.assignment = "be your Head Girl", _HS.birthWeek = random(0,51), _HS.actualAge = 42, _HS.physicalAge = 42, _HS.visualAge = 42, _HS.ovaryAge = 42, _HS.ageImplant = 1, _HS.health = 50, _HS.devotion = 100, _HS.height = 175, _HS.eye.origColor = "green", _HS.origHColor = "honey blonde", _HS.origSkin = "pale", _HS.hStyle = "long", _HS.waist = -55, _HS.boobs = 1000, _HS.boobsImplant = 600, _HS.areolae = 1, _HS.butt = 4, _HS.buttImplant = 2, _HS.face = 55, _HS.lips = 35, _HS.anus = 1, _HS.makeup = 1, _HS.nails = 1, _HS.earPiercing = 1, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.skill.whoring = 100, _HS.skill.entertainment = 100, _HS.clothes = "a slave gown", _HS.intelligence = 100, _HS.energy = 65, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.custom.tattoo = "'Miss Anne' is tattooed in lovely flowing script over $his collarbone.", _HS.custom.desc = "$He speaks with the rich accent of the Old South.">> <<if $seeDicks != 100>> <<set _HS.genes = "XX", _HS.vagina = 2, _HS.ovaries = 1, _HS.skill.vaginal = 100, _HS.pubertyXX = 1>> <<else>> @@ -43,7 +43,7 @@ //_HS.slaveName,// <<set _HS = clone($activeSlave)>> -<<set _HS.slaveName = "Miss Lily", _HS.birthName = "Lillian", _HS.ID = 990004, _HS.relation = "daughter", _HS.relationTarget = 990000, _HS.assignment = "guard you", _HS.birthWeek = random(0,51), _HS.health = 20, _HS.devotion = 30, _HS.muscles = 50, _HS.height = 175, _HS.origEye = "green", _HS.origHColor = "straw blonde", _HS.origSkin = "pale", _HS.hLength = 40, _HS.hStyle = "in a short ponytail", _HS.waist = -55, _HS.boobs = 600, _HS.butt = 3, _HS.face = 15, _HS.lips = 35, _HS.preg = -2, _HS.anus = 2, _HS.makeup = 1, _HS.nails = 1, _HS.earPiercing = 1, _HS.skill.anal = 35, _HS.skill.combat = 1, _HS.energy = 65, _HS.attrXY = 40, _HS.fetish = "buttslut", _HS.fetishKnown = 1, _HS.custom.tattoo = "'Miss Lily' is tattooed in lovely flowing script over $his collarbone.", _HS.custom.desc = "$He once spoke with the rich accent of the Old South.", _HS.mother = 990000>> +<<set _HS.slaveName = "Miss Lily", _HS.birthName = "Lillian", _HS.ID = 990004, _HS.relation = "daughter", _HS.relationTarget = 990000, _HS.assignment = "guard you", _HS.birthWeek = random(0,51), _HS.health = 20, _HS.devotion = 30, _HS.muscles = 50, _HS.height = 175, _HS.eye.origColor = "green", _HS.origHColor = "straw blonde", _HS.origSkin = "pale", _HS.hLength = 40, _HS.hStyle = "in a short ponytail", _HS.waist = -55, _HS.boobs = 600, _HS.butt = 3, _HS.face = 15, _HS.lips = 35, _HS.preg = -2, _HS.anus = 2, _HS.makeup = 1, _HS.nails = 1, _HS.earPiercing = 1, _HS.skill.anal = 35, _HS.skill.combat = 1, _HS.energy = 65, _HS.attrXY = 40, _HS.fetish = "buttslut", _HS.fetishKnown = 1, _HS.custom.tattoo = "'Miss Lily' is tattooed in lovely flowing script over $his collarbone.", _HS.custom.desc = "$He once spoke with the rich accent of the Old South.", _HS.mother = 990000>> <<if $seeDicks != 100>> <<set _HS.genes = "XX", _HS.ovaries = 1, _HS.pubertyXX = 1>> <<else>> diff --git a/src/npc/databases/dSlavesDatabase.tw b/src/npc/databases/dSlavesDatabase.tw index 1bec633fc12c7e660ade6810f0cb3cc764cda59a..170d82a3094a42eb34e4f9f2fc139c47f079af91 100644 --- a/src/npc/databases/dSlavesDatabase.tw +++ b/src/npc/databases/dSlavesDatabase.tw @@ -2,13 +2,14 @@ <<set _i = 900000>> <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Rose", _HS.birthName = "Rose", _HS.origin = "$He is a former maid with an unsettling obsessive streak.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 24, _HS.physicalAge = 24, _HS.visualAge = 24, _HS.ovaryAge = 24, _HS.health = 40, _HS.devotion = 100, _HS.weight = 25, _HS.origHColor = "chestnut", _HS.pubicHColor = "chestnut", _HS.hLength = 30, _HS.hStyle = "shoulder-length and in a bun", _HS.boobs = 700, _HS.butt = 3, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.anus = 1, _HS.ovaries = 1, _HS.skill.vaginal = 15, _HS.skill.oral = 15, _HS.skill.anal = 15, _HS.skill.entertainment = 1, _HS.clothes = "a nice maid outfit", _HS.intelligence = 20, _HS.intelligenceImplant = 30, _HS.attrXY = 40, _HS.fetish = "submissive", _HS.career = "a maid", _HS.eyes = -1, _HS.eyewear = "corrective glasses">> +<<set _HS.slaveName = "Rose", _HS.birthName = "Rose", _HS.origin = "$He is a former maid with an unsettling obsessive streak.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 24, _HS.physicalAge = 24, _HS.visualAge = 24, _HS.ovaryAge = 24, _HS.health = 40, _HS.devotion = 100, _HS.weight = 25, _HS.origHColor = "chestnut", _HS.pubicHColor = "chestnut", _HS.hLength = 30, _HS.hStyle = "shoulder-length and in a bun", _HS.boobs = 700, _HS.butt = 3, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.anus = 1, _HS.ovaries = 1, _HS.skill.vaginal = 15, _HS.skill.oral = 15, _HS.skill.anal = 15, _HS.skill.entertainment = 1, _HS.clothes = "a nice maid outfit", _HS.intelligence = 20, _HS.intelligenceImplant = 30, _HS.attrXY = 40, _HS.fetish = "submissive", _HS.career = "a maid", _HS.eyewear = "corrective glasses">> +<<run eyeSurgery(_HS, "both", "blur")>> <<set $heroSlaves.push(_HS)>> /*maid dress, Excellent house slave, Will return if sold*/ /*Added origin, tweaked stats, made $him Submissive -BoneyM*/ <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Red", _HS.birthName = "Red", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 22, _HS.physicalAge = 22, _HS.visualAge = 22, _HS.ovaryAge = 22, _HS.health = 20, _HS.devotion = 100, _HS.origEye = "blue", _HS.origHColor = "red", _HS.pubicHColor = "red", _HS.origSkin = "light", _HS.hStyle = "long and tied back", _HS.boobs = 400, _HS.butt = 2, _HS.vaginaLube = 1, _HS.anus = 3, _HS.ovaries = 1, _HS.skill.anal = 100, _HS.attrXY = 40, _HS.fetish = "buttslut", _HS.fetishKnown = 1>> +<<set _HS.slaveName = "Red", _HS.birthName = "Red", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 22, _HS.physicalAge = 22, _HS.visualAge = 22, _HS.ovaryAge = 22, _HS.health = 20, _HS.devotion = 100, _HS.eye.origColor = "blue", _HS.origHColor = "red", _HS.pubicHColor = "red", _HS.origSkin = "light", _HS.hStyle = "long and tied back", _HS.boobs = 400, _HS.butt = 2, _HS.vaginaLube = 1, _HS.anus = 3, _HS.ovaries = 1, _HS.skill.anal = 100, _HS.attrXY = 40, _HS.fetish = "buttslut", _HS.fetishKnown = 1>> <<set $heroSlaves.push(_HS)>> /*changed eyes to blue, skin to light, double checked other stats*/ @@ -35,12 +36,12 @@ /*Corrected piercings, added origin -BoneyM*/ <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Piggy", _HS.birthName = "Chloë", _HS.origin = "$He was once a celebrity that protested the existence of slavery, but has now become a slave $himself.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.health = 20, _HS.devotion = -75, _HS.weight = -20, _HS.origEye = "green", _HS.origHColor = "dirty blonde", _HS.pubicHColor = "dirty blonde", _HS.origSkin = "white", _HS.hLength = 10, _HS.boobs = 300, _HS.butt = 1, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.ovaries = 1, _HS.skill.oral = 100, _HS.intelligence = 20, _HS.intelligenceImplant = 30, _HS.attrXY = 40, _HS.fetish = "cumslut", _HS.fetishStrength = 100, _HS.fetishKnown = 1, _HS.behavioralFlaw = "bitchy">> +<<set _HS.slaveName = "Piggy", _HS.birthName = "Chloë", _HS.origin = "$He was once a celebrity that protested the existence of slavery, but has now become a slave $himself.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.health = 20, _HS.devotion = -75, _HS.weight = -20, _HS.eye.origColor = "green", _HS.origHColor = "dirty blonde", _HS.pubicHColor = "dirty blonde", _HS.origSkin = "white", _HS.hLength = 10, _HS.boobs = 300, _HS.butt = 1, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.ovaries = 1, _HS.skill.oral = 100, _HS.intelligence = 20, _HS.intelligenceImplant = 30, _HS.attrXY = 40, _HS.fetish = "cumslut", _HS.fetishStrength = 100, _HS.fetishKnown = 1, _HS.behavioralFlaw = "bitchy">> <<set $heroSlaves.push(_HS)>> /*Added origin, added bitchy, corrected eye color -BoneyM*/ <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Sarah", _HS.birthName = "Sarah", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 20, _HS.physicalAge = 20, _HS.visualAge = 20, _HS.ovaryAge = 20, _HS.health = 20, _HS.devotion = 20, _HS.height = 175, _HS.origEye = "grey", _HS.origHColor = "dirty blonde", _HS.pubicHColor = "dirty blonde", _HS.origSkin = "white", _HS.hLength = 10, _HS.boobs = 400, _HS.butt = 2, _HS.face = 15, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.anus = 1, _HS.ovaries = 1, _HS.skill.vaginal = 15, _HS.skill.oral = 15, _HS.skill.anal = 15, _HS.skill.combat = 1, _HS.attrXX = 80, _HS.attrXY = 40, _HS.behavioralFlaw = "odd", _HS.custom.tattoo = "$He has an abstract tattoo of flowers and vines extending from $his left knee to $his pelvis to cover up a surgery scar. $His full name, blood type, and medical allergies are printed in matrix barcodes on each wrist.">> +<<set _HS.slaveName = "Sarah", _HS.birthName = "Sarah", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 20, _HS.physicalAge = 20, _HS.visualAge = 20, _HS.ovaryAge = 20, _HS.health = 20, _HS.devotion = 20, _HS.height = 175, _HS.eye.origColor = "grey", _HS.origHColor = "dirty blonde", _HS.pubicHColor = "dirty blonde", _HS.origSkin = "white", _HS.hLength = 10, _HS.boobs = 400, _HS.butt = 2, _HS.face = 15, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.anus = 1, _HS.ovaries = 1, _HS.skill.vaginal = 15, _HS.skill.oral = 15, _HS.skill.anal = 15, _HS.skill.combat = 1, _HS.attrXX = 80, _HS.attrXY = 40, _HS.behavioralFlaw = "odd", _HS.custom.tattoo = "$He has an abstract tattoo of flowers and vines extending from $his left knee to $his pelvis to cover up a surgery scar. $His full name, blood type, and medical allergies are printed in matrix barcodes on each wrist.">> <<set $heroSlaves.push(_HS)>> /*Pretty face, barcodes on wrists, fighter*/ /*Corrected eyes, added combat skill, bisexual and odd, tweaked face -BoneyM*/ @@ -51,16 +52,17 @@ /*Set birth name to 'unknown', tweaked obedience downwards, corrected tattoo's, added combat skill, clothes and shoes, arrogant -BoneyM*/ <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Catherine", _HS.birthName = "Catherine", _HS.origin = "$He came from a wealthy background, but $he sold $himself into slavery to slake $his desire to submit to men and dominate women.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 20, _HS.physicalAge = 20, _HS.visualAge = 20, _HS.ovaryAge = 20, _HS.health = 40, _HS.devotion = 20, _HS.nationality = "American", _HS.origEye = "blue", _HS.origHColor = "red", _HS.pubicHColor = "red", _HS.race = "white", _HS.hLength = 25, _HS.hStyle = "short and in a ponytail", _HS.boobs = 800, _HS.butt = 3, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.anus = 1, _HS.ovaries = 1, _HS.makeup = 1, _HS.skill.vaginal = 100, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.skill.entertainment = 100, _HS.intelligence = 25, _HS.intelligenceImplant = 30, _HS.attrXX = 55, _HS.attrXY = 60, _HS.fetishKnown = 1, _HS.behavioralFlaw = "arrogant", _HS.eyes = -1, _HS.eyewear = "corrective glasses">> +<<set _HS.slaveName = "Catherine", _HS.birthName = "Catherine", _HS.origin = "$He came from a wealthy background, but $he sold $himself into slavery to slake $his desire to submit to men and dominate women.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 20, _HS.physicalAge = 20, _HS.visualAge = 20, _HS.ovaryAge = 20, _HS.health = 40, _HS.devotion = 20, _HS.nationality = "American", _HS.eye.origColor = "blue", _HS.origHColor = "red", _HS.pubicHColor = "red", _HS.race = "white", _HS.hLength = 25, _HS.hStyle = "short and in a ponytail", _HS.boobs = 800, _HS.butt = 3, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.anus = 1, _HS.ovaries = 1, _HS.makeup = 1, _HS.skill.vaginal = 100, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.skill.entertainment = 100, _HS.intelligence = 25, _HS.intelligenceImplant = 30, _HS.attrXX = 55, _HS.attrXY = 60, _HS.fetishKnown = 1, _HS.behavioralFlaw = "arrogant", _HS.eyewear = "corrective glasses">> +<<run eyeSurgery(_HS, "both", "blur")>> <<set $heroSlaves.push(_HS)>> /*corrected eye color, makeup, tweaked entertainskill, added 'arrogant' -BoneyM*/ <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Lilly", _HS.birthName = "Lilly", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 21, _HS.physicalAge = 21, _HS.visualAge = 21, _HS.ovaryAge = 21, _HS.health = 20, _HS.devotion = 30, _HS.height = 155, _HS.origEye = "green", _HS.origHColor = "black", _HS.pubicHColor = "black", _HS.origSkin = "extremely pale", _HS.hStyle = "long", _HS.boobs = 300, _HS.nipplesPiercing = 1, _HS.butt = 3, _HS.vagina = 3, _HS.vaginaLube = 1, _HS.vaginaPiercing = 1, _HS.vaginaTat = "degradation", _HS.anus = 3, _HS.ovaries = 1, _HS.skill.vaginal = 100, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.attrXY = 40, _HS.hips = 2>> +<<set _HS.slaveName = "Lilly", _HS.birthName = "Lilly", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 21, _HS.physicalAge = 21, _HS.visualAge = 21, _HS.ovaryAge = 21, _HS.health = 20, _HS.devotion = 30, _HS.height = 155, _HS.eye.origColor = "green", _HS.origHColor = "black", _HS.pubicHColor = "black", _HS.origSkin = "extremely pale", _HS.hStyle = "long", _HS.boobs = 300, _HS.nipplesPiercing = 1, _HS.butt = 3, _HS.vagina = 3, _HS.vaginaLube = 1, _HS.vaginaPiercing = 1, _HS.vaginaTat = "degradation", _HS.anus = 3, _HS.ovaries = 1, _HS.skill.vaginal = 100, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.attrXY = 40, _HS.hips = 2>> <<set $heroSlaves.push(_HS)>> <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Erica", _HS.birthName = "Erica", _HS.origin = "$He was sold into slavery after $his father was killed by political rivals.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 19, _HS.physicalAge = 19, _HS.visualAge = 19, _HS.ovaryAge = 19, _HS.health = -10, _HS.devotion = 15, _HS.weight = -20, _HS.height = 152, _HS.markings = "freckled", _HS.eyes = 1, _HS.origEye = "blue", _HS.origHColor = "blonde", _HS.pubicHColor = "blonde", _HS.origSkin = "fair", _HS.hLength = 30, _HS.hStyle = "shoulder length", _HS.boobs = 300, _HS.nipplesPiercing = 1, _HS.butt = 1, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.clit = 4, _HS.anus = 1, _HS.ovaries = 1, _HS.anusTat = "tribal patterns", _HS.skill.vaginal = 15, _HS.skill.oral = 15, _HS.skill.anal = 15, _HS.intelligence = random(96,99), _HS.intelligenceImplant = 30, _HS.attrXX = 80, _HS.attrXY = 40, _HS.fetishKnown = 1>> +<<set _HS.slaveName = "Erica", _HS.birthName = "Erica", _HS.origin = "$He was sold into slavery after $his father was killed by political rivals.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 19, _HS.physicalAge = 19, _HS.visualAge = 19, _HS.ovaryAge = 19, _HS.health = -10, _HS.devotion = 15, _HS.weight = -20, _HS.height = 152, _HS.markings = "freckled", _HS.eye.origColor = "blue", _HS.origHColor = "blonde", _HS.pubicHColor = "blonde", _HS.origSkin = "fair", _HS.hLength = 30, _HS.hStyle = "shoulder length", _HS.boobs = 300, _HS.nipplesPiercing = 1, _HS.butt = 1, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.clit = 4, _HS.anus = 1, _HS.ovaries = 1, _HS.anusTat = "tribal patterns", _HS.skill.vaginal = 15, _HS.skill.oral = 15, _HS.skill.anal = 15, _HS.intelligence = random(96,99), _HS.intelligenceImplant = 30, _HS.attrXX = 80, _HS.attrXY = 40, _HS.fetishKnown = 1>> <<set $heroSlaves.push(_HS)>> /*corrected eyes, changed skin to 'freckled', tweaked height downward, added pseudophallus clit, added origin -BoneyM*/ /% corrected skin to fair?, changed markings to 'freckled' Bane70 %/ @@ -71,13 +73,13 @@ /*Added origin, tweaked skills, added smart piercing set to submissive, removed buttslut -BoneyM*/ <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Eryma", _HS.birthName = "Eryma", _HS.origin = "$He is a former gladiator that wagered $his freedom and lost.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 24, _HS.physicalAge = 24, _HS.visualAge = 24, _HS.ovaryAge = 24, _HS.health = 100, _HS.devotion = -30, _HS.height = 175, _HS.race = "white", _HS.origEye = "blue", _HS.origHColor = "blonde", _HS.pubicHColor = "blonde", _HS.override_Skin = 1, _HS.origSkin = "sun tanned", _HS.hStyle = "long", _HS.boobs = 500, _HS.butt = 2, _HS.vaginaLube = 1, _HS.ovaries = 1, _HS.skill.combat = 1, _HS.intelligence = 20, _HS.intelligenceImplant = 30, _HS.attrXY = 40, _HS.fetish = "humiliation", _HS.behavioralFlaw = "arrogant">> +<<set _HS.slaveName = "Eryma", _HS.birthName = "Eryma", _HS.origin = "$He is a former gladiator that wagered $his freedom and lost.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 24, _HS.physicalAge = 24, _HS.visualAge = 24, _HS.ovaryAge = 24, _HS.health = 100, _HS.devotion = -30, _HS.height = 175, _HS.race = "white", _HS.eye.origColor = "blue", _HS.origHColor = "blonde", _HS.pubicHColor = "blonde", _HS.override_Skin = 1, _HS.origSkin = "sun tanned", _HS.hStyle = "long", _HS.boobs = 500, _HS.butt = 2, _HS.vaginaLube = 1, _HS.ovaries = 1, _HS.skill.combat = 1, _HS.intelligence = 20, _HS.intelligenceImplant = 30, _HS.attrXY = 40, _HS.fetish = "humiliation", _HS.behavioralFlaw = "arrogant">> <<set $heroSlaves.push(_HS)>> /*fighter*/ /*Added combat skill, changed eye color and rules, added origin, added arrogant -BoneyM*/ <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Amber", _HS.birthName = "Amber", _HS.origin = "$He is a former shut-in who built up enough debt to be sold into slavery after the death of $his parents.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 21, _HS.physicalAge = 21, _HS.visualAge = 21, _HS.ovaryAge = 21, _HS.health = 20, _HS.devotion = -100, _HS.weight = 40, _HS.origEye = "blue", _HS.origHColor = "red", _HS.pubicHColor = "red", _HS.origSkin = "pale", _HS.hStyle = "long", _HS.boobs = 800, _HS.face = 15, _HS.vaginaLube = 1, _HS.ovaries = 1, _HS.intelligence = 100, _HS.intelligenceImplant = 30, _HS.attrXX = 80, _HS.attrXY = 40, _HS.behavioralFlaw = "hates men", _HS.career = "a shut-in">> +<<set _HS.slaveName = "Amber", _HS.birthName = "Amber", _HS.origin = "$He is a former shut-in who built up enough debt to be sold into slavery after the death of $his parents.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 21, _HS.physicalAge = 21, _HS.visualAge = 21, _HS.ovaryAge = 21, _HS.health = 20, _HS.devotion = -100, _HS.weight = 40, _HS.eye.origColor = "blue", _HS.origHColor = "red", _HS.pubicHColor = "red", _HS.origSkin = "pale", _HS.hStyle = "long", _HS.boobs = 800, _HS.face = 15, _HS.vaginaLube = 1, _HS.ovaries = 1, _HS.intelligence = 100, _HS.intelligenceImplant = 30, _HS.attrXX = 80, _HS.attrXY = 40, _HS.behavioralFlaw = "hates men", _HS.career = "a shut-in">> <<set $heroSlaves.push(_HS)>> /*SJW*/ /*Tweaked obedience downwards, increased weight and face, added origin, changed eye color, changed fetish to bisexual and added 'hates men' flaw -BoneyM*/ @@ -95,12 +97,12 @@ /% added combat skill 'Shinobi' means ninja so $he would have combat skill by default %/ <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Lily", _HS.birthName = "Lily", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.health = 20, _HS.devotion = 10, _HS.weight = -20, _HS.height = 163, _HS.race = "white", _HS.origEye = "green", _HS.origHColor = "red", _HS.pubicHColor = "red", _HS.origSkin = "pale", _HS.hStyle = "long", _HS.waist = -55, _HS.boobs = 400, _HS.butt = 2, _HS.face = 55, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.anus = 1, _HS.ovaries = 1, _HS.skill.vaginal = 35, _HS.skill.oral = 35, _HS.skill.anal = 35, _HS.attrXY = 40>> +<<set _HS.slaveName = "Lily", _HS.birthName = "Lily", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.health = 20, _HS.devotion = 10, _HS.weight = -20, _HS.height = 163, _HS.race = "white", _HS.eye.origColor = "green", _HS.origHColor = "red", _HS.pubicHColor = "red", _HS.origSkin = "pale", _HS.hStyle = "long", _HS.waist = -55, _HS.boobs = 400, _HS.butt = 2, _HS.face = 55, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.anus = 1, _HS.ovaries = 1, _HS.skill.vaginal = 35, _HS.skill.oral = 35, _HS.skill.anal = 35, _HS.attrXY = 40>> <<set $heroSlaves.push(_HS)>> /*Added green eyes, increased face, changed waist -BoneyM*/ <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Terra", _HS.birthName = "Terra", _HS.ID = _i++, _HS.assignment = "be a servant", _HS.birthWeek = random(0,51), _HS.health = 20, _HS.devotion = -50, _HS.weight = -20, _HS.origEye = "amber", _HS.origHColor = "brown", _HS.override_H_Color = 1, _HS.override_Pubic_H_Color = 1, _HS.hColor = "purple", _HS.pubicHColor = "purple", _HS.origSkin = "pale", _HS.hStyle = "long", _HS.boobs = 400, _HS.butt = 3, _HS.vaginaLube = 1, _HS.ovaries = 1, _HS.clothes = "a nice maid outfit", _HS.attrXX = 80, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.behavioralFlaw = "hates men">> +<<set _HS.slaveName = "Terra", _HS.birthName = "Terra", _HS.ID = _i++, _HS.assignment = "be a servant", _HS.birthWeek = random(0,51), _HS.health = 20, _HS.devotion = -50, _HS.weight = -20, _HS.eye.origColor = "amber", _HS.origHColor = "brown", _HS.override_H_Color = 1, _HS.override_Pubic_H_Color = 1, _HS.hColor = "purple", _HS.pubicHColor = "purple", _HS.origSkin = "pale", _HS.hStyle = "long", _HS.boobs = 400, _HS.butt = 3, _HS.vaginaLube = 1, _HS.ovaries = 1, _HS.clothes = "a nice maid outfit", _HS.attrXX = 80, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.behavioralFlaw = "hates men">> <<set $heroSlaves.push(_HS)>> /*Maid*/ /*Added 'hates men', changed eyes to amber, made $him a servant -BoneyM*/ @@ -112,7 +114,7 @@ /*Added 'submissive' and 'bitchy' -BoneyM*/ <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Valentina", _HS.birthName = "Valentina", _HS.origin = "$He was once the bodyguard to a Russian drug lord, and was sold into slavery after his death by cocaine overdose.", _HS.ID = _i++, _HS.nationality = "Russian", _HS.birthWeek = random(0,51), _HS.actualAge = 29, _HS.physicalAge = 29, _HS.visualAge = 29, _HS.ovaryAge = 29, _HS.health = 100, _HS.devotion = 100, _HS.muscles = 100, _HS.height = 175, _HS.origEye = "green", _HS.override_Skin = 1, _HS.origSkin = "sun tanned", _HS.hLength = 30, _HS.hStyle = "shoulder length", _HS.boobs = 650, _HS.boobsImplant = 600, _HS.butt = 2, _HS.lips = 25, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.anus = 1, _HS.ovaries = 1, _HS.skill.oral = 15, _HS.skill.anal = 35, _HS.skill.combat = 1, _HS.intelligence = 30, _HS.attrXY = 40, _HS.fetish = "buttslut", _HS.fetishKnown = 1, _HS.custom.tattoo = "$He has a red star tattoo on $his back, and a hammer and sickle on $his right buttock.", _HS.custom.desc = "$He has a Slavic face with high cheekbones and a strong, pointed jaw. $He is a skilled martial artist.", _HS.faceShape = "masculine", _HS.career = "a bodyguard">> +<<set _HS.slaveName = "Valentina", _HS.birthName = "Valentina", _HS.origin = "$He was once the bodyguard to a Russian drug lord, and was sold into slavery after his death by cocaine overdose.", _HS.ID = _i++, _HS.nationality = "Russian", _HS.birthWeek = random(0,51), _HS.actualAge = 29, _HS.physicalAge = 29, _HS.visualAge = 29, _HS.ovaryAge = 29, _HS.health = 100, _HS.devotion = 100, _HS.muscles = 100, _HS.height = 175, _HS.eye.origColor = "green", _HS.override_Skin = 1, _HS.origSkin = "sun tanned", _HS.hLength = 30, _HS.hStyle = "shoulder length", _HS.boobs = 650, _HS.boobsImplant = 600, _HS.butt = 2, _HS.lips = 25, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.anus = 1, _HS.ovaries = 1, _HS.skill.oral = 15, _HS.skill.anal = 35, _HS.skill.combat = 1, _HS.intelligence = 30, _HS.attrXY = 40, _HS.fetish = "buttslut", _HS.fetishKnown = 1, _HS.custom.tattoo = "$He has a red star tattoo on $his back, and a hammer and sickle on $his right buttock.", _HS.custom.desc = "$He has a Slavic face with high cheekbones and a strong, pointed jaw. $He is a skilled martial artist.", _HS.faceShape = "masculine", _HS.career = "a bodyguard">> <<set $heroSlaves.push(_HS)>> /*Tweaked devotion up, changed eyes to green, corrected tattoo syntax, added combat skill -BoneyM*/ @@ -128,18 +130,18 @@ /*Tweaked devotion up, added arrogant -BoneyM*/ <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Elise", _HS.birthName = "Elise", _HS.origin = "$He is a spoiled former rich $girl who has been discarded by several former owners for $his attitude.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.health = 20, _HS.devotion = -40, _HS.height = 155, _HS.race = "white", _HS.origEye = "blue", _HS.origHColor = "red", _HS.pubicHColor = "red", _HS.origSkin = "pale", _HS.hLength = 10, _HS.boobs = 400, _HS.butt = 2, _HS.buttTat = "tribal patterns", _HS.vagina = 1, _HS.vaginaLube = 1, _HS.anus = 1, _HS.ovaries = 1, _HS.anusTat = "tribal patterns", _HS.intelligence = 20, _HS.intelligenceImplant = 30, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.behavioralFlaw = "arrogant", _HS.sexualFlaw = "hates penetration">> +<<set _HS.slaveName = "Elise", _HS.birthName = "Elise", _HS.origin = "$He is a spoiled former rich $girl who has been discarded by several former owners for $his attitude.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.health = 20, _HS.devotion = -40, _HS.height = 155, _HS.race = "white", _HS.eye.origColor = "blue", _HS.origHColor = "red", _HS.pubicHColor = "red", _HS.origSkin = "pale", _HS.hLength = 10, _HS.boobs = 400, _HS.butt = 2, _HS.buttTat = "tribal patterns", _HS.vagina = 1, _HS.vaginaLube = 1, _HS.anus = 1, _HS.ovaries = 1, _HS.anusTat = "tribal patterns", _HS.intelligence = 20, _HS.intelligenceImplant = 30, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.behavioralFlaw = "arrogant", _HS.sexualFlaw = "hates penetration">> <<set $heroSlaves.push(_HS)>> /*hates sex*/ /*Changed eye color, hard to pick between 'hates penetration' and 'arrogant', chose the latter because it seems more central to the character. -BoneyM*/ <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Santa", _HS.birthName = "Santa", _HS.origin = "$He claims that $he actually is Santa Claus.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 19, _HS.physicalAge = 19, _HS.visualAge = 19, _HS.ovaryAge = 19, _HS.health = 20, _HS.devotion = 10, _HS.height = 155, _HS.race = "white", _HS.origEye = "blue", _HS.origHColor = "strawberry blonde", _HS.pubicHColor = "strawberry blonde", _HS.origSkin = "white", _HS.hStyle = "long", _HS.boobs = 650, _HS.butt = 3, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.ovaries = 1, _HS.anusTat = "tribal patterns", _HS.intelligence = -50, _HS.intelligenceImplant = 30, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.behavioralFlaw = "odd", _HS.sexualFlaw = "hates penetration", _HS.custom.desc = "$He has a verbal tic that causes $him to say 'ho, ho, ho' frequently.", _HS.weight = 35, _HS.clothes = "a Santa dress">> +<<set _HS.slaveName = "Santa", _HS.birthName = "Santa", _HS.origin = "$He claims that $he actually is Santa Claus.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 19, _HS.physicalAge = 19, _HS.visualAge = 19, _HS.ovaryAge = 19, _HS.health = 20, _HS.devotion = 10, _HS.height = 155, _HS.race = "white", _HS.eye.origColor = "blue", _HS.origHColor = "strawberry blonde", _HS.pubicHColor = "strawberry blonde", _HS.origSkin = "white", _HS.hStyle = "long", _HS.boobs = 650, _HS.butt = 3, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.ovaries = 1, _HS.anusTat = "tribal patterns", _HS.intelligence = -50, _HS.intelligenceImplant = 30, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.behavioralFlaw = "odd", _HS.sexualFlaw = "hates penetration", _HS.custom.desc = "$He has a verbal tic that causes $him to say 'ho, ho, ho' frequently.", _HS.weight = 35, _HS.clothes = "a Santa dress">> <<set $heroSlaves.push(_HS)>> /*Changed eye color, added odd, tweaked vaginalSkill, added origin -BoneyM*/ <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Joan", _HS.birthName = "Joan", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 42, _HS.physicalAge = 42, _HS.visualAge = 42, _HS.ovaryAge = 42, _HS.health = 20, _HS.devotion = 15, _HS.height = 175, _HS.origEye = "blue", _HS.origHColor = "brown", _HS.pubicHColor = "brown", _HS.hStyle = "long", _HS.boobs = 1000, _HS.boobsImplant = 600, _HS.butt = 4, _HS.face = 15, _HS.lips = 35, _HS.lipsImplant = 10, _HS.vagina = 2, _HS.vaginaLube = 1, _HS.anus = 2, _HS.ovaries = 1, _HS.anusTat = "tribal patterns", _HS.skill.vaginal = 100, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.intelligence = 30, _HS.attrXX = 80, _HS.attrXY = 80, _HS.fetishKnown = 1>> +<<set _HS.slaveName = "Joan", _HS.birthName = "Joan", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 42, _HS.physicalAge = 42, _HS.visualAge = 42, _HS.ovaryAge = 42, _HS.health = 20, _HS.devotion = 15, _HS.height = 175, _HS.eye.origColor = "blue", _HS.origHColor = "brown", _HS.pubicHColor = "brown", _HS.hStyle = "long", _HS.boobs = 1000, _HS.boobsImplant = 600, _HS.butt = 4, _HS.face = 15, _HS.lips = 35, _HS.lipsImplant = 10, _HS.vagina = 2, _HS.vaginaLube = 1, _HS.anus = 2, _HS.ovaries = 1, _HS.anusTat = "tribal patterns", _HS.skill.vaginal = 100, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.intelligence = 30, _HS.attrXX = 80, _HS.attrXY = 80, _HS.fetishKnown = 1>> <<set $heroSlaves.push(_HS)>> /*heterochromia*/ /*Tweaked face upwards, changed eye color, changed health from 20 to 6 -BoneyM*/ @@ -169,13 +171,13 @@ /*Tweaked health upwards, corrected tattoo syntax, added combat skill -BoneyM*/ <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Slave", _HS.birthName = "Vanessa", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 23, _HS.physicalAge = 23, _HS.visualAge = 23, _HS.ovaryAge = 23, _HS.health = 20, _HS.devotion = -75, _HS.height = 157, _HS.origEye = "blue", _HS.origSkin = "pale", _HS.hStyle = "long", _HS.waist = -55, _HS.boobs = 1200, _HS.butt = 3, _HS.lipsTat = "permanent makeup", _HS.vagina = 1, _HS.vaginaLube = 1, _HS.vaginaPiercing = 1, _HS.anus = 1, _HS.ovaries = 1, _HS.skill.oral = 15, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.custom.tattoo = "$He has a barcode tattooed on $his abdomen, and 'cut here' lines on $his arms and legs.", _HS.sexualFlaw = "self hating">> +<<set _HS.slaveName = "Slave", _HS.birthName = "Vanessa", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 23, _HS.physicalAge = 23, _HS.visualAge = 23, _HS.ovaryAge = 23, _HS.health = 20, _HS.devotion = -75, _HS.height = 157, _HS.eye.origColor = "blue", _HS.origSkin = "pale", _HS.hStyle = "long", _HS.waist = -55, _HS.boobs = 1200, _HS.butt = 3, _HS.lipsTat = "permanent makeup", _HS.vagina = 1, _HS.vaginaLube = 1, _HS.vaginaPiercing = 1, _HS.anus = 1, _HS.ovaries = 1, _HS.skill.oral = 15, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.custom.tattoo = "$He has a barcode tattooed on $his abdomen, and 'cut here' lines on $his arms and legs.", _HS.sexualFlaw = "self hating">> <<set $heroSlaves.push(_HS)>> /*permashackles*/ /*Changed eyes to blue, added tattoos -BoneyM*/ <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Carol", _HS.birthName = "Carol", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.health = 20, _HS.devotion = 60, _HS.weight = -20, _HS.height = 155, _HS.origEye = "blue", _HS.origSkin = "pale", _HS.hLength = 30, _HS.hStyle = "shoulder length", _HS.boobs = 400, _HS.butt = 4, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.anus = 1, _HS.ovaries = 1, _HS.skill.vaginal = 15, _HS.skill.oral = 15, _HS.skill.anal = 15, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.custom.tattoo = "$He has a cherry blossom tattooed on $his forearm.", _HS.custom.desc = "$He is unnaturally flexible.">> +<<set _HS.slaveName = "Carol", _HS.birthName = "Carol", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.health = 20, _HS.devotion = 60, _HS.weight = -20, _HS.height = 155, _HS.eye.origColor = "blue", _HS.origSkin = "pale", _HS.hLength = 30, _HS.hStyle = "shoulder length", _HS.boobs = 400, _HS.butt = 4, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.anus = 1, _HS.ovaries = 1, _HS.skill.vaginal = 15, _HS.skill.oral = 15, _HS.skill.anal = 15, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.custom.tattoo = "$He has a cherry blossom tattooed on $his forearm.", _HS.custom.desc = "$He is unnaturally flexible.">> <<set $heroSlaves.push(_HS)>> /*red contacts*/ /*Reduced weight, changed eyes to blue, corrected tattoo syntax, added flexibility in customdesc, changed skin to pale -BoneyM*/ @@ -191,7 +193,7 @@ /*Changed $him to Arabic, corrected tattoo syntax, added entertain skill -BoneyM*/ <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Riya", _HS.birthName = "Riya", _HS.origin = "$He grew up in a well-to-do family and discovered $his fetish for servitude in college, and $he decided to become the world's best slave and slave trainer in one.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 21, _HS.physicalAge = 21, _HS.visualAge = 21, _HS.ovaryAge = 21, _HS.health = 20, _HS.devotion = 40, _HS.weight = -20, _HS.height = 155, _HS.race = "indo-aryan", _HS.origEye = "grey", _HS.origHColor = "black", _HS.pubicHColor = "black", _HS.origSkin = "brown", _HS.hStyle = "long", _HS.boobs = 500, _HS.butt = 3, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.clitPiercing = 3, _HS.ovaries = 1, _HS.earPiercing = 1, _HS.skill.oral = 15, _HS.skill.whoring = 15, _HS.skill.entertainment = 15, _HS.intelligence = 30, _HS.intelligenceImplant = 30, _HS.attrXX = 80, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.custom.tattoo = "$He has a barcode of $his identifying information tattooed on $his left shoulder.", _HS.career = "a slaver">> +<<set _HS.slaveName = "Riya", _HS.birthName = "Riya", _HS.origin = "$He grew up in a well-to-do family and discovered $his fetish for servitude in college, and $he decided to become the world's best slave and slave trainer in one.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 21, _HS.physicalAge = 21, _HS.visualAge = 21, _HS.ovaryAge = 21, _HS.health = 20, _HS.devotion = 40, _HS.weight = -20, _HS.height = 155, _HS.race = "indo-aryan", _HS.eye.origColor = "grey", _HS.origHColor = "black", _HS.pubicHColor = "black", _HS.origSkin = "brown", _HS.hStyle = "long", _HS.boobs = 500, _HS.butt = 3, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.clitPiercing = 3, _HS.ovaries = 1, _HS.earPiercing = 1, _HS.skill.oral = 15, _HS.skill.whoring = 15, _HS.skill.entertainment = 15, _HS.intelligence = 30, _HS.intelligenceImplant = 30, _HS.attrXX = 80, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.custom.tattoo = "$He has a barcode of $his identifying information tattooed on $his left shoulder.", _HS.career = "a slaver">> <<set $heroSlaves.push(_HS)>> /*Changed eyes to grey, reduced height and weight, added origin, smart piercing, entertain and whore skill (representing theoretical knowledge from being a trainer), added ear piercings -BoneyM*/ @@ -202,25 +204,26 @@ /*Changed eyes, added scar -BoneyM*/ <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Raven", _HS.birthName = "Raven", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 19, _HS.physicalAge = 19, _HS.visualAge = 19, _HS.ovaryAge = 19, _HS.health = 20, _HS.devotion = 20, _HS.weight = -20, _HS.race = "white", _HS.origEye = "green", _HS.override_H_Color = 1, _HS.origHColor = "black", _HS.hColor = "black with blue highlights", _HS.origSkin = "white", _HS.hStyle = "long", _HS.boobs = 400, _HS.butt = 2, _HS.lipsPiercing = 1, _HS.tonguePiercing = 1, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.ovaries = 1, _HS.nails = 2, _HS.skill.anal = 15, _HS.attrXY = 40, _HS.fetish = "submissive", _HS.fetishKnown = 1>> +<<set _HS.slaveName = "Raven", _HS.birthName = "Raven", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 19, _HS.physicalAge = 19, _HS.visualAge = 19, _HS.ovaryAge = 19, _HS.health = 20, _HS.devotion = 20, _HS.weight = -20, _HS.race = "white", _HS.eye.origColor = "green", _HS.override_H_Color = 1, _HS.origHColor = "black", _HS.hColor = "black with blue highlights", _HS.origSkin = "white", _HS.hStyle = "long", _HS.boobs = 400, _HS.butt = 2, _HS.lipsPiercing = 1, _HS.tonguePiercing = 1, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.ovaries = 1, _HS.nails = 2, _HS.skill.anal = 15, _HS.attrXY = 40, _HS.fetish = "submissive", _HS.fetishKnown = 1>> <<set $heroSlaves.push(_HS)>> /*likes toys*/ /*Reduced weight, changed eyes, added nail polish -BoneyM*/ <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Kino", _HS.birthName = "Kino", _HS.origin = "$He was formerly owned by someone who fancied themselves a geneticist, where $he acquired permanently discolored hair and odd fetishes.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 21, _HS.physicalAge = 21, _HS.visualAge = 21, _HS.ovaryAge = 21, _HS.health = 40, _HS.devotion = -75, _HS.height = 155, _HS.race = "white", _HS.origEye = "blue-green", _HS.override_H_Color = 1, _HS.origHColor = "blue", _HS.pubicHColor = "blue", _HS.override_Skin = 1, _HS.origSkin = "spray tanned", _HS.hLength = 30, _HS.hStyle = "short, spiky, with a long shoulder-length lock leading from $his temples down, one on each side", _HS.boobs = 650, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.anus = 1, _HS.ovaries = 1, _HS.skill.vaginal = 35, _HS.skill.oral = 35, _HS.skill.anal = 35, _HS.skill.combat = 1, _HS.intelligence = -30, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.custom.desc = "$He has a vertical scar through $his right eye, is a dabbling artist, and is an oviposition fetishist.", _HS.eyes = -2>> +<<set _HS.slaveName = "Kino", _HS.birthName = "Kino", _HS.origin = "$He was formerly owned by someone who fancied themselves a geneticist, where $he acquired permanently discolored hair and odd fetishes.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 21, _HS.physicalAge = 21, _HS.visualAge = 21, _HS.ovaryAge = 21, _HS.health = 40, _HS.devotion = -75, _HS.height = 155, _HS.race = "white", _HS.eye.origColor = "blue-green", _HS.override_H_Color = 1, _HS.origHColor = "blue", _HS.pubicHColor = "blue", _HS.override_Skin = 1, _HS.origSkin = "spray tanned", _HS.hLength = 30, _HS.hStyle = "short, spiky, with a long shoulder-length lock leading from $his temples down, one on each side", _HS.boobs = 650, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.anus = 1, _HS.ovaries = 1, _HS.skill.vaginal = 35, _HS.skill.oral = 35, _HS.skill.anal = 35, _HS.skill.combat = 1, _HS.intelligence = -30, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.custom.desc = "$He has a vertical scar through $his right eye, is a dabbling artist, and is an oviposition fetishist.">> +<<run eyeSurgery(_HS, "both", "blind")>> <<set $heroSlaves.push(_HS)>> /*Added combat skill, increased health, added origin -BoneyM*/ <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Vivienne", _HS.birthName = "Vivienne", _HS.origin = "$He is a former soldier who was sold into slavery after losing $his leg to an IED.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 39, _HS.physicalAge = 39, _HS.visualAge = 39, _HS.ovaryAge = 39, _HS.health = 20, _HS.devotion = 90, _HS.race = "white", _HS.origEye = "green", _HS.origHColor = "red", _HS.pubicHColor = "red", _HS.origSkin = "white", _HS.hStyle = "long", _HS.boobs = 400, _HS.butt = 3, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.anus = 1, _HS.skill.vaginal = 15, _HS.skill.oral = 15, _HS.skill.anal = 15, _HS.skill.combat = 1, _HS.intelligence = 25, _HS.intelligenceImplant = 30, _HS.attrXY = 1, _HS.fetishKnown = 1, _HS.backTat = "$He has a military tattoo on $his back.", _HS.custom.desc = "$His left leg is artificial, and $he has a number of scars on $his thigh and shoulder and a burn near $his temple.", _HS.career = "a soldier">> +<<set _HS.slaveName = "Vivienne", _HS.birthName = "Vivienne", _HS.origin = "$He is a former soldier who was sold into slavery after losing $his leg to an IED.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 39, _HS.physicalAge = 39, _HS.visualAge = 39, _HS.ovaryAge = 39, _HS.health = 20, _HS.devotion = 90, _HS.race = "white", _HS.eye.origColor = "green", _HS.origHColor = "red", _HS.pubicHColor = "red", _HS.origSkin = "white", _HS.hStyle = "long", _HS.boobs = 400, _HS.butt = 3, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.anus = 1, _HS.skill.vaginal = 15, _HS.skill.oral = 15, _HS.skill.anal = 15, _HS.skill.combat = 1, _HS.intelligence = 25, _HS.intelligenceImplant = 30, _HS.attrXY = 1, _HS.fetishKnown = 1, _HS.backTat = "$He has a military tattoo on $his back.", _HS.custom.desc = "$His left leg is artificial, and $he has a number of scars on $his thigh and shoulder and a burn near $his temple.", _HS.career = "a soldier">> <<run configureLimbs(_HS, "left leg", 2)>> <<set $heroSlaves.push(_HS)>> /*missing left leg, burn scar, low sex drive, fighter*/ /*Added customdesc, fixed tattoo syntax, added combat skill, eye color and origin -BoneyM*/ <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Lexi", _HS.birthName = "Lexi", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 21, _HS.physicalAge = 21, _HS.visualAge = 21, _HS.ovaryAge = 21, _HS.health = 20, _HS.devotion = 25, _HS.weight = -20, _HS.height = 157, _HS.race = "white", _HS.origEye = "blue", _HS.origHColor = "bleached blonde", _HS.pubicHColor = "bleached blonde", _HS.hStyle = "long", _HS.boobs = 400, _HS.butt = 2, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.anus = 1, _HS.ovaries = 1, _HS.skill.oral = 35, _HS.attrXY = 40, _HS.fetishKnown = 1>> +<<set _HS.slaveName = "Lexi", _HS.birthName = "Lexi", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 21, _HS.physicalAge = 21, _HS.visualAge = 21, _HS.ovaryAge = 21, _HS.health = 20, _HS.devotion = 25, _HS.weight = -20, _HS.height = 157, _HS.race = "white", _HS.eye.origColor = "blue", _HS.origHColor = "bleached blonde", _HS.pubicHColor = "bleached blonde", _HS.hStyle = "long", _HS.boobs = 400, _HS.butt = 2, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.anus = 1, _HS.ovaries = 1, _HS.skill.oral = 35, _HS.attrXY = 40, _HS.fetishKnown = 1>> <<set $heroSlaves.push(_HS)>> /*Changed eyes to blue -BoneyM*/ @@ -230,19 +233,19 @@ /*Fixed tattoo syntax -BoneyM "$He has hairy, unshaven armpits, bush and asscrack."*/ <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Maya", _HS.birthName = "Maya", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 28, _HS.physicalAge = 28, _HS.visualAge = 28, _HS.ovaryAge = 28, _HS.health = 40, _HS.devotion = 100, _HS.height = 190, _HS.markings = "freckled", _HS.race = "white", _HS.origEye = "green", _HS.origHColor = "red", _HS.pubicHColor = "red", _HS.origSkin = "light", _HS.hLength = 10, _HS.boobs = 800, _HS.butt = 2, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.anus = 1, _HS.ovaries = 1, _HS.skill.vaginal = 35, _HS.skill.oral = 35, _HS.skill.anal = 35, _HS.attrXY = 40, _HS.fetish = "cumslut", _HS.fetishKnown = 1, _HS.legsTat = "$His right thigh reads 'Fuck Me' in flowery script.", _HS.stampTat = "$He has a fairly generic tramp stamp.">> +<<set _HS.slaveName = "Maya", _HS.birthName = "Maya", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 28, _HS.physicalAge = 28, _HS.visualAge = 28, _HS.ovaryAge = 28, _HS.health = 40, _HS.devotion = 100, _HS.height = 190, _HS.markings = "freckled", _HS.race = "white", _HS.eye.origColor = "green", _HS.origHColor = "red", _HS.pubicHColor = "red", _HS.origSkin = "light", _HS.hLength = 10, _HS.boobs = 800, _HS.butt = 2, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.anus = 1, _HS.ovaries = 1, _HS.skill.vaginal = 35, _HS.skill.oral = 35, _HS.skill.anal = 35, _HS.attrXY = 40, _HS.fetish = "cumslut", _HS.fetishKnown = 1, _HS.legsTat = "$His right thigh reads 'Fuck Me' in flowery script.", _HS.stampTat = "$He has a fairly generic tramp stamp.">> <<set $heroSlaves.push(_HS)>> /*Corrected tattoo syntax, changed skin to freckled, eyes to green, increased height -BoneyM*/ /% Corrected skin to light?, and changed markings to freckled Bane70 %/ <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Alexis", _HS.birthName = "Alexis", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 25, _HS.physicalAge = 25, _HS.visualAge = 25, _HS.ovaryAge = 25, _HS.health = 20, _HS.devotion = 60, _HS.muscles = 20, _HS.height = 150, _HS.race = "mixed race", _HS.origEye = "hazel", _HS.origHColor = "black", _HS.pubicHColor = "black", _HS.origSkin = "ebony", _HS.hStyle = "long", _HS.boobs = 800, _HS.nipplesPiercing = 1, _HS.butt = 4, _HS.lips = 35, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.vaginaPiercing = 1, _HS.clit = 1, _HS.clitPiercing = 1, _HS.anus = 1, _HS.ovaries = 1, _HS.earPiercing = 2, _HS.nosePiercing = 1, _HS.eyebrowPiercing = 1, _HS.skill.vaginal = 15, _HS.skill.oral = 15, _HS.skill.anal = 15, _HS.intelligence = -20, _HS.energy = 100, _HS.attrXY = 75, _HS.attrXX = 75, _HS.fetishKnown = 1, _HS.custom.desc = "$He has a feminine personality despite $his high testosterone.", _HS.areolae = 2, _HS.nipples = "huge", _HS.voice = 1, _HS.navelPiercing = 1, _HS.tonguePiercing = 1>> +<<set _HS.slaveName = "Alexis", _HS.birthName = "Alexis", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 25, _HS.physicalAge = 25, _HS.visualAge = 25, _HS.ovaryAge = 25, _HS.health = 20, _HS.devotion = 60, _HS.muscles = 20, _HS.height = 150, _HS.race = "mixed race", _HS.eye.origColor = "hazel", _HS.origHColor = "black", _HS.pubicHColor = "black", _HS.origSkin = "ebony", _HS.hStyle = "long", _HS.boobs = 800, _HS.nipplesPiercing = 1, _HS.butt = 4, _HS.lips = 35, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.vaginaPiercing = 1, _HS.clit = 1, _HS.clitPiercing = 1, _HS.anus = 1, _HS.ovaries = 1, _HS.earPiercing = 2, _HS.nosePiercing = 1, _HS.eyebrowPiercing = 1, _HS.skill.vaginal = 15, _HS.skill.oral = 15, _HS.skill.anal = 15, _HS.intelligence = -20, _HS.energy = 100, _HS.attrXY = 75, _HS.attrXX = 75, _HS.fetishKnown = 1, _HS.custom.desc = "$He has a feminine personality despite $his high testosterone.", _HS.areolae = 2, _HS.nipples = "huge", _HS.voice = 1, _HS.navelPiercing = 1, _HS.tonguePiercing = 1>> <<set $heroSlaves.push(_HS)>> /*big clit*/ /*Changed eyes to hazel, increased clit, added a lot of piercings, changed fetish to nympho, fixed customdesc syntax -BoneyM*/ <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Anneliese", _HS.birthName = "Anneliese", _HS.origin = "$He is a former Head Girl that fetishizes $his own degradation.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 31, _HS.physicalAge = 31, _HS.visualAge = 31, _HS.ovaryAge = 31, _HS.health = 20, _HS.devotion = 100, _HS.race = "white", _HS.origEye = "blue", _HS.origHColor = "golden", _HS.pubicHColor = "golden", _HS.origSkin = "pale", _HS.hStyle = "long", _HS.boobs = 800, _HS.nipplesPiercing = 1, _HS.butt = 4, _HS.vagina = 2, _HS.vaginaLube = 1, _HS.vaginaPiercing = 2, _HS.anus = 2, _HS.ovaries = 1, _HS.earPiercing = 1, _HS.skill.vaginal = 100, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.clothes = "slutty jewelry", _HS.intelligence = random(96,99), _HS.intelligenceImplant = 30, _HS.attrXY = 40, _HS.fetish = "humiliation", _HS.fetishKnown = 1, _HS.custom.desc = "$He has the air of a princess.">> +<<set _HS.slaveName = "Anneliese", _HS.birthName = "Anneliese", _HS.origin = "$He is a former Head Girl that fetishizes $his own degradation.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 31, _HS.physicalAge = 31, _HS.visualAge = 31, _HS.ovaryAge = 31, _HS.health = 20, _HS.devotion = 100, _HS.race = "white", _HS.eye.origColor = "blue", _HS.origHColor = "golden", _HS.pubicHColor = "golden", _HS.origSkin = "pale", _HS.hStyle = "long", _HS.boobs = 800, _HS.nipplesPiercing = 1, _HS.butt = 4, _HS.vagina = 2, _HS.vaginaLube = 1, _HS.vaginaPiercing = 2, _HS.anus = 2, _HS.ovaries = 1, _HS.earPiercing = 1, _HS.skill.vaginal = 100, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.clothes = "slutty jewelry", _HS.intelligence = random(96,99), _HS.intelligenceImplant = 30, _HS.attrXY = 40, _HS.fetish = "humiliation", _HS.fetishKnown = 1, _HS.custom.desc = "$He has the air of a princess.">> <<set $heroSlaves.push(_HS)>> /*Changed eyes to blue, added origin, pierced ears, fixed customdesc syntax -BoneyM*/ @@ -263,7 +266,7 @@ /*Added barcode tattoo and origin -BoneyM*/ <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Emm", _HS.birthName = "Emm", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 24, _HS.physicalAge = 24, _HS.visualAge = 24, _HS.ovaryAge = 24, _HS.health = 20, _HS.devotion = 40, _HS.weight = 20, _HS.race = "white", _HS.origEye = "green", _HS.origHColor = "strawberry blonde", _HS.pubicHColor = "strawberry blonde", _HS.origSkin = "white", _HS.hStyle = "long", _HS.boobs = 650, _HS.butt = 5, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.anus = 1, _HS.ovaries = 1, _HS.earPiercing = 1, _HS.skill.vaginal = 15, _HS.skill.oral = 35, _HS.skill.whoring = 15, _HS.skill.entertainment = 15, _HS.attrXY = 40, _HS.fetish = "cumslut", _HS.fetishKnown = 1, _HS.custom.desc = "$He is friendly, clever, and quick.">> +<<set _HS.slaveName = "Emm", _HS.birthName = "Emm", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 24, _HS.physicalAge = 24, _HS.visualAge = 24, _HS.ovaryAge = 24, _HS.health = 20, _HS.devotion = 40, _HS.weight = 20, _HS.race = "white", _HS.eye.origColor = "green", _HS.origHColor = "strawberry blonde", _HS.pubicHColor = "strawberry blonde", _HS.origSkin = "white", _HS.hStyle = "long", _HS.boobs = 650, _HS.butt = 5, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.anus = 1, _HS.ovaries = 1, _HS.earPiercing = 1, _HS.skill.vaginal = 15, _HS.skill.oral = 35, _HS.skill.whoring = 15, _HS.skill.entertainment = 15, _HS.attrXY = 40, _HS.fetish = "cumslut", _HS.fetishKnown = 1, _HS.custom.desc = "$He is friendly, clever, and quick.">> <<set $heroSlaves.push(_HS)>> /*fluctuating weight*/ /*Increased weight, added entertain and whore skill, added ear piercing, changed eyes -BoneyM*/ @@ -284,18 +287,18 @@ /*Added nose piercing, reduced height, changed fetish to bisexual -BoneyM*/ <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Sammy", _HS.birthName = "Sammy", _HS.origin = "$He chose to be a slave because the romanticized view of it $he had turns $him on.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 19, _HS.physicalAge = 19, _HS.visualAge = 19, _HS.ovaryAge = 19, _HS.health = 20, _HS.devotion = 25, _HS.weight = 20, _HS.height = 155, _HS.race = "white", _HS.origEye = "blue", _HS.origHColor = "blonde", _HS.pubicHColor = "blonde", _HS.origSkin = "pale", _HS.hLength = 80, _HS.hStyle = "ass-length", _HS.boobs = 300, _HS.butt = 1, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.anus = 1, _HS.ovaries = 1, _HS.earPiercing = 1, _HS.skill.vaginal = 15, _HS.skill.oral = 100, _HS.intelligence = 20, _HS.intelligenceImplant = 30, _HS.attrXX = 80, _HS.attrXY = 40, _HS.fetish = "buttslut", _HS.fetishKnown = 1, _HS.custom.desc = "$He has fetishes for wedgies, spanking and herms.">> +<<set _HS.slaveName = "Sammy", _HS.birthName = "Sammy", _HS.origin = "$He chose to be a slave because the romanticized view of it $he had turns $him on.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 19, _HS.physicalAge = 19, _HS.visualAge = 19, _HS.ovaryAge = 19, _HS.health = 20, _HS.devotion = 25, _HS.weight = 20, _HS.height = 155, _HS.race = "white", _HS.eye.origColor = "blue", _HS.origHColor = "blonde", _HS.pubicHColor = "blonde", _HS.origSkin = "pale", _HS.hLength = 80, _HS.hStyle = "ass-length", _HS.boobs = 300, _HS.butt = 1, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.anus = 1, _HS.ovaries = 1, _HS.earPiercing = 1, _HS.skill.vaginal = 15, _HS.skill.oral = 100, _HS.intelligence = 20, _HS.intelligenceImplant = 30, _HS.attrXX = 80, _HS.attrXY = 40, _HS.fetish = "buttslut", _HS.fetishKnown = 1, _HS.custom.desc = "$He has fetishes for wedgies, spanking and herms.">> <<set $heroSlaves.push(_HS)>> /*laid back*/ /*Added origin, increased weight, pierced ears, added customdesc -BoneyM*/ <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Klara", _HS.birthName = "Klara", _HS.origin = "$He was forced into slavery and rather brutally broken in.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 21, _HS.physicalAge = 21, _HS.visualAge = 21, _HS.ovaryAge = 21, _HS.health = 20, _HS.devotion = -75, _HS.height = 175, _HS.race = "white", _HS.origEye = "blue", _HS.origSkin = "fair", _HS.hStyle = "long and braided", _HS.boobs = 800, _HS.butt = 4, _HS.vagina = 2, _HS.vaginaLube = 1, _HS.anus = 2, _HS.ovaries = 1, _HS.skill.vaginal = 100, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.skill.whoring = 35, _HS.skill.entertainment = 35, _HS.intelligence = -30, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.brand["right buttock"] = "Cum slut", _HS.custom.tattoo = "'bitch whore' is tattooed on $his inner left thigh.">> +<<set _HS.slaveName = "Klara", _HS.birthName = "Klara", _HS.origin = "$He was forced into slavery and rather brutally broken in.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 21, _HS.physicalAge = 21, _HS.visualAge = 21, _HS.ovaryAge = 21, _HS.health = 20, _HS.devotion = -75, _HS.height = 175, _HS.race = "white", _HS.eye.origColor = "blue", _HS.origSkin = "fair", _HS.hStyle = "long and braided", _HS.boobs = 800, _HS.butt = 4, _HS.vagina = 2, _HS.vaginaLube = 1, _HS.anus = 2, _HS.ovaries = 1, _HS.skill.vaginal = 100, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.skill.whoring = 35, _HS.skill.entertainment = 35, _HS.intelligence = -30, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.brand["right buttock"] = "Cum slut", _HS.custom.tattoo = "'bitch whore' is tattooed on $his inner left thigh.">> <<set $heroSlaves.push(_HS)>> /*Fixed typo in customdesc, increased whore and entertainskill, changed eye color -BoneyM*/ <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Lucy", _HS.birthName = "Lucy", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 21, _HS.physicalAge = 21, _HS.visualAge = 21, _HS.ovaryAge = 21, _HS.health = 20, _HS.devotion = 40, _HS.race = "white", _HS.origSkin = "white", _HS.origEye = "blue", _HS.override_H_Color = 1, _HS.origHColor = "brown", _HS.hColor = "pale blonde", _HS.hLength = 95, _HS.hStyle = "ass length", _HS.boobs = 300, _HS.butt = 3, _HS.buttTat = "degradation", _HS.vagina = 1, _HS.vaginaLube = 1, _HS.vaginaTat = "degradation", _HS.ovaries = 1, _HS.intelligence = -30, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.behavioralFlaw = "odd", _HS.height = 165>> +<<set _HS.slaveName = "Lucy", _HS.birthName = "Lucy", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 21, _HS.physicalAge = 21, _HS.visualAge = 21, _HS.ovaryAge = 21, _HS.health = 20, _HS.devotion = 40, _HS.race = "white", _HS.origSkin = "white", _HS.eye.origColor = "blue", _HS.override_H_Color = 1, _HS.origHColor = "brown", _HS.hColor = "pale blonde", _HS.hLength = 95, _HS.hStyle = "ass length", _HS.boobs = 300, _HS.butt = 3, _HS.buttTat = "degradation", _HS.vagina = 1, _HS.vaginaLube = 1, _HS.vaginaTat = "degradation", _HS.ovaries = 1, _HS.intelligence = -30, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.behavioralFlaw = "odd", _HS.height = 165>> <<set $heroSlaves.push(_HS)>> /*innuendo*/ /*Added odd, changed eye color -BoneyM*/ @@ -306,7 +309,7 @@ /*Couldn't find this slave in the thread or the submission page on the blog -BoneyM*/ <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Dharma", _HS.birthName = "Dharma", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 26, _HS.physicalAge = 26, _HS.visualAge = 26, _HS.ovaryAge = 26, _HS.health = 20, _HS.devotion = -100, _HS.height = 175, _HS.race = "white", _HS.origEye = "green", _HS.origHColor = "dark brown", _HS.pubicHColor = "dark brown", _HS.origSkin = "pale", _HS.hStyle = "long", _HS.waist = -55, _HS.boobs = 500, _HS.butt = 3, _HS.lips = 35, _HS.vagina = 2, _HS.vaginaLube = 1, _HS.anus = 2, _HS.analArea = 1, _HS.ovaries = 1, _HS.skill.vaginal = 15, _HS.skill.oral = 15, _HS.skill.anal = 15, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.behavioralFlaw = "arrogant", _HS.custom.tattoo = "$He has a henna tattoo on $his left forearm, and a butterfly tattoo on $his right calf.", _HS.custom.desc = "$He has high cheekbones on a heart shaped face.", _HS.faceShape = "cute", _HS.sexualQuirk = "size queen">> +<<set _HS.slaveName = "Dharma", _HS.birthName = "Dharma", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 26, _HS.physicalAge = 26, _HS.visualAge = 26, _HS.ovaryAge = 26, _HS.health = 20, _HS.devotion = -100, _HS.height = 175, _HS.race = "white", _HS.eye.origColor = "green", _HS.origHColor = "dark brown", _HS.pubicHColor = "dark brown", _HS.origSkin = "pale", _HS.hStyle = "long", _HS.waist = -55, _HS.boobs = 500, _HS.butt = 3, _HS.lips = 35, _HS.vagina = 2, _HS.vaginaLube = 1, _HS.anus = 2, _HS.analArea = 1, _HS.ovaries = 1, _HS.skill.vaginal = 15, _HS.skill.oral = 15, _HS.skill.anal = 15, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.behavioralFlaw = "arrogant", _HS.custom.tattoo = "$He has a henna tattoo on $his left forearm, and a butterfly tattoo on $his right calf.", _HS.custom.desc = "$He has high cheekbones on a heart shaped face.", _HS.faceShape = "cute", _HS.sexualQuirk = "size queen">> <<set $heroSlaves.push(_HS)>> /*Fetish was set to 'arrogant' instead of quirk, corrected tattoo syntax -BoneyM*/ @@ -323,7 +326,8 @@ /*Fixed customdesc syntax, added pierced ears, corrected hair color, added origin and arrogant -BoneyM*/ <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Xendra", _HS.birthName = "Xendra", _HS.origin = "$He was a hermit until $he became a slave, and went along with it out of boredom.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 21, _HS.physicalAge = 21, _HS.visualAge = 21, _HS.ovaryAge = 21, _HS.health = 40, _HS.devotion = 75, _HS.height = 175, _HS.race = "black", _HS.origEye = "brown", _HS.override_Eye_Color = 1, _HS.override_H_Color = 1, _HS.eyeColor = "purple", _HS.origHColor = "white", _HS.origSkin = "dark", _HS.hStyle = "long", _HS.boobs = 500, _HS.butt = 3, _HS.lips = 35, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.anus = 1, _HS.ovaries = 1, _HS.earPiercing = 1, _HS.skill.vaginal = 15, _HS.skill.oral = 15, _HS.skill.anal = 15, _HS.skill.combat = 1, _HS.intelligence = 100, _HS.intelligenceImplant = 30, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.behavioralFlaw = "bitchy", _HS.custom.tattoo = "$He has a pair of full sleeve tattoos.", _HS.custom.desc = "$He has many scars, and is skilled with plants.", _HS.career = "a shut-in">> +<<set _HS.slaveName = "Xendra", _HS.birthName = "Xendra", _HS.origin = "$He was a hermit until $he became a slave, and went along with it out of boredom.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 21, _HS.physicalAge = 21, _HS.visualAge = 21, _HS.ovaryAge = 21, _HS.health = 40, _HS.devotion = 75, _HS.height = 175, _HS.race = "black", _HS.eye.origColor = "brown", _HS.override_Eye_Color = 1, _HS.override_H_Color = 1, _HS.origHColor = "white", _HS.origSkin = "dark", _HS.hStyle = "long", _HS.boobs = 500, _HS.butt = 3, _HS.lips = 35, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.anus = 1, _HS.ovaries = 1, _HS.earPiercing = 1, _HS.skill.vaginal = 15, _HS.skill.oral = 15, _HS.skill.anal = 15, _HS.skill.combat = 1, _HS.intelligence = 100, _HS.intelligenceImplant = 30, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.behavioralFlaw = "bitchy", _HS.custom.tattoo = "$He has a pair of full sleeve tattoos.", _HS.custom.desc = "$He has many scars, and is skilled with plants.", _HS.career = "a shut-in">> +<<run setEyeColor(_HS, "purple")>> <<set $heroSlaves.push(_HS)>> /*toned, snuff, fighter*/ /*Increased health, added combatskill, bitchy and pierced ears, fixed tattoo and customdesc syntax, corrected skin color from 'white' to 'dark' -BoneyM*/ @@ -344,7 +348,8 @@ /*Added origin, reduced age, fetish was 'arrogant', changed it to quirk, fixed customdesc syntax. -BoneyM*/ <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Bitch", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.health = -20, _HS.devotion = -75, _HS.height = 155, _HS.origEye = "dark", _HS.pupil = "almond-shaped", _HS.origHColor = "dark", _HS.origSkin = "pale", _HS.waist = -55, _HS.boobs = 300, _HS.butt = 5, _HS.lips = 35, _HS.lipsPiercing = 1, _HS.tonguePiercing = 1, _HS.vaginaLube = 1, _HS.ovaries = 1, _HS.earPiercing = 1, _HS.eyebrowPiercing = 1, _HS.skill.oral = 35, _HS.intelligence = -60, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.custom.desc = "$He has a heart shaped face and many scars.", _HS.faceShape = "cute", _HS.hips = 3, _HS.markings = "beauty">> +<<set _HS.slaveName = "Bitch", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.health = -20, _HS.devotion = -75, _HS.height = 155, _HS.eye.origColor = "dark", _HS.origHColor = "dark", _HS.origSkin = "pale", _HS.waist = -55, _HS.boobs = 300, _HS.butt = 5, _HS.lips = 35, _HS.lipsPiercing = 1, _HS.tonguePiercing = 1, _HS.vaginaLube = 1, _HS.ovaries = 1, _HS.earPiercing = 1, _HS.eyebrowPiercing = 1, _HS.skill.oral = 35, _HS.intelligence = -60, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.custom.desc = "$He has a heart shaped face and many scars.", _HS.faceShape = "cute", _HS.hips = 3, _HS.markings = "beauty">> +<<run setEyeColorFull(_HS, "", "almond-shaped", "", "both")>> <<set $heroSlaves.push(_HS)>> /*Fixed customdesc syntax, changed eye color, added piercings, increased waist -BoneyM*/ @@ -366,7 +371,7 @@ /*Pierced ears, added origin, corrected customdesc syntax. -BoneyM*/ <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Jasmine", _HS.birthName = "Jasmine", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 21, _HS.physicalAge = 21, _HS.visualAge = 21, _HS.ovaryAge = 21, _HS.health = 20, _HS.devotion = 25, _HS.height = 175, _HS.origRace = "white", _HS.race = "black", _HS.origEye = "blue-green", _HS.override_H_Color = 1, _HS.override_Brow_H_Color = 1, _HS.override_Arm_H_Color = 1, _HS.override_Pubic_H_Color = 1, _HS.override_Skin = 1, _HS.origHColor = "fair blonde", _HS.eyebrowHColor = "blonde", _HS.pubicHColor = "blonde", _HS.underArmHColor = "blonde", _HS.origSkin = "brown", _HS.hStyle = "long", _HS.boobs = 400, _HS.butt = 2, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.ovaries = 1, _HS.attrXY = 40, _HS.fetish = "humiliation">> +<<set _HS.slaveName = "Jasmine", _HS.birthName = "Jasmine", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 21, _HS.physicalAge = 21, _HS.visualAge = 21, _HS.ovaryAge = 21, _HS.health = 20, _HS.devotion = 25, _HS.height = 175, _HS.origRace = "white", _HS.race = "black", _HS.eye.origColor = "blue-green", _HS.override_H_Color = 1, _HS.override_Brow_H_Color = 1, _HS.override_Arm_H_Color = 1, _HS.override_Pubic_H_Color = 1, _HS.override_Skin = 1, _HS.origHColor = "fair blonde", _HS.eyebrowHColor = "blonde", _HS.pubicHColor = "blonde", _HS.underArmHColor = "blonde", _HS.origSkin = "brown", _HS.hStyle = "long", _HS.boobs = 400, _HS.butt = 2, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.ovaries = 1, _HS.attrXY = 40, _HS.fetish = "humiliation">> <<set $heroSlaves.push(_HS)>> /*Changed eyes -BoneyM*/ @@ -377,12 +382,13 @@ /*Corrected hair color, added piercings, added 'hates penetration' -BoneyM*/ <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Fatiah", _HS.birthName = "Fatiah", _HS.origin = "$He was taken as a slave by a Sultan, who presented $him as a gift to a surveyor.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 21, _HS.physicalAge = 21, _HS.visualAge = 21, _HS.ovaryAge = 21, _HS.health = 80, _HS.devotion = 45, _HS.weight = 20, _HS.height = 257, _HS.race = "middle eastern", _HS.override_Brow_H_Color = 1, _HS.override_Arm_H_Color = 1, _HS.override_Pubic_H_Color = 1, _HS.origHColor = "black and oily", _HS.eyebrowHColor = "black", _HS.pubicHColor = "black", _HS.underArmHColor = "black", _HS.origSkin = "brown", _HS.hStyle = "long, but shaved on the left side", _HS.boobs = 1200, _HS.butt = 4, _HS.vaginaLube = 1, _HS.ovaries = 1, _HS.intelligence = -30, _HS.intelligenceImplant = 30, _HS.attrXY = 40, _HS.attrKnown = 0, _HS.eyes = -1, _HS.eyewear = "corrective glasses", _HS.clothes = "a niqab and abaya", _HS.hips = 2>> +<<set _HS.slaveName = "Fatiah", _HS.birthName = "Fatiah", _HS.origin = "$He was taken as a slave by a Sultan, who presented $him as a gift to a surveyor.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 21, _HS.physicalAge = 21, _HS.visualAge = 21, _HS.ovaryAge = 21, _HS.health = 80, _HS.devotion = 45, _HS.weight = 20, _HS.height = 257, _HS.race = "middle eastern", _HS.override_Brow_H_Color = 1, _HS.override_Arm_H_Color = 1, _HS.override_Pubic_H_Color = 1, _HS.origHColor = "black and oily", _HS.eyebrowHColor = "black", _HS.pubicHColor = "black", _HS.underArmHColor = "black", _HS.origSkin = "brown", _HS.hStyle = "long, but shaved on the left side", _HS.boobs = 1200, _HS.butt = 4, _HS.vaginaLube = 1, _HS.ovaries = 1, _HS.intelligence = -30, _HS.intelligenceImplant = 30, _HS.attrXY = 40, _HS.attrKnown = 0, _HS.eyewear = "corrective glasses", _HS.clothes = "a niqab and abaya", _HS.hips = 2>> +<<run eyeSurgery(_HS, "both", "blur")>> <<set $heroSlaves.push(_HS)>> /*Increased height, reduced weight, reduced butt, fixed customdesc syntax -BoneyM*/ <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "No Name", _HS.birthName = "No Name", _HS.origin = "A previous owner cultivated $his desire to escape slavery for his own amusement.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 21, _HS.physicalAge = 21, _HS.visualAge = 21, _HS.ovaryAge = 21, _HS.health = 50, _HS.devotion = -100, _HS.height = 165, _HS.weight = -20, _HS.muscles = 20, _HS.race = "mixed race", _HS.origEye = "blue", _HS.origHColor = "blonde", _HS.pubicHColor = "blonde", _HS.origSkin = "white", _HS.hStyle = "long", _HS.pubicHStyle = "neat", _HS.boobs = 300, _HS.nipplesPiercing = 1, _HS.butt = 3, _HS.vaginaLube = 1, _HS.clitPiercing = 3, _HS.clitSetting = "oral", _HS.anus = 2, _HS.ovaries = 1, _HS.skill.oral = 35, _HS.skill.anal = 35, _HS.intelligence = random(96,99), _HS.intelligenceImplant = 30, _HS.attrXY = 40, _HS.fetish = "cumslut", _HS.fetishKnown = 1, _HS.custom.desc = "$He is fit and athletic.", _HS.behavioralFlaw = "arrogant", _HS.hips = 1>> +<<set _HS.slaveName = "No Name", _HS.birthName = "No Name", _HS.origin = "A previous owner cultivated $his desire to escape slavery for his own amusement.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 21, _HS.physicalAge = 21, _HS.visualAge = 21, _HS.ovaryAge = 21, _HS.health = 50, _HS.devotion = -100, _HS.height = 165, _HS.weight = -20, _HS.muscles = 20, _HS.race = "mixed race", _HS.eye.origColor = "blue", _HS.origHColor = "blonde", _HS.pubicHColor = "blonde", _HS.origSkin = "white", _HS.hStyle = "long", _HS.pubicHStyle = "neat", _HS.boobs = 300, _HS.nipplesPiercing = 1, _HS.butt = 3, _HS.vaginaLube = 1, _HS.clitPiercing = 3, _HS.clitSetting = "oral", _HS.anus = 2, _HS.ovaries = 1, _HS.skill.oral = 35, _HS.skill.anal = 35, _HS.intelligence = random(96,99), _HS.intelligenceImplant = 30, _HS.attrXY = 40, _HS.fetish = "cumslut", _HS.fetishKnown = 1, _HS.custom.desc = "$He is fit and athletic.", _HS.behavioralFlaw = "arrogant", _HS.hips = 1>> <<set $heroSlaves.push(_HS)>> *//*hypno-anal/cum*/ /*Reduced weight, changed eyes, corrected customdesc syntax, added origin, increased rebelliousness, changed clitsetting to oral. -BoneyM*/ @@ -394,31 +400,31 @@ /*Corrected tattoo syntax, added origin and customdesc, increased health -BoneyM*/ <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Falcon", _HS.birthName = "Jamie", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 23, _HS.physicalAge = 23, _HS.visualAge = 23, _HS.ovaryAge = 23, _HS.health = 20, _HS.devotion = 25, _HS.race = "white", _HS.origEye = "blue", _HS.origHColor = "blonde", _HS.pubicHColor = "blonde", _HS.origSkin = "white", _HS.hStyle = "long", _HS.boobs = 400, _HS.butt = 3, _HS.lips = 35, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.ovaries = 1, _HS.skill.vaginal = 15, _HS.skill.oral = 35, _HS.clothes = "a slave gown", _HS.intelligence = 30, _HS.intelligenceImplant = 30, _HS.attrXX = 80, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.custom.desc = "$He has an implanted GPS tracker to find $him in case $his habit of stalking pretty girls gets the better of $him.">> +<<set _HS.slaveName = "Falcon", _HS.birthName = "Jamie", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 23, _HS.physicalAge = 23, _HS.visualAge = 23, _HS.ovaryAge = 23, _HS.health = 20, _HS.devotion = 25, _HS.race = "white", _HS.eye.origColor = "blue", _HS.origHColor = "blonde", _HS.pubicHColor = "blonde", _HS.origSkin = "white", _HS.hStyle = "long", _HS.boobs = 400, _HS.butt = 3, _HS.lips = 35, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.ovaries = 1, _HS.skill.vaginal = 15, _HS.skill.oral = 35, _HS.clothes = "a slave gown", _HS.intelligence = 30, _HS.intelligenceImplant = 30, _HS.attrXX = 80, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.custom.desc = "$He has an implanted GPS tracker to find $him in case $his habit of stalking pretty girls gets the better of $him.">> <<set $heroSlaves.push(_HS)>> /*proactive stalker hypnosis masseuse*/ /*Corrected birthname (was 'Jasmine'), changed eye color, added customdesc -BoneyM*/ <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Beatrice (No. 525)", _HS.birthName = "Beatrice", _HS.origin = "$He comes from old money and sold $himself into slavery to satisfy $his obsession with the practice, believing $his family would buy $him back out of slavery later.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 23, _HS.physicalAge = 23, _HS.visualAge = 23, _HS.ovaryAge = 23, _HS.health = 20, _HS.devotion = 30, _HS.height = 155, _HS.race = "white", _HS.origEye = "blue-green", _HS.override_H_Color = 1, _HS.origHColor = "red", _HS.hColor = "bright red", _HS.origSkin = "pure white", _HS.hLength = 80, _HS.hStyle = "long and wavy, and down past $his ass", _HS.waist = -55, _HS.boobs = 800, _HS.butt = 4, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.anus = 1, _HS.ovaries = 1, _HS.earPiercing = 1, _HS.skill.vaginal = 35, _HS.skill.oral = 35, _HS.skill.anal = 35, _HS.skill.whoring = 15, _HS.skill.entertainment = 15, _HS.clothes = "a slave gown", _HS.intelligence = 30, _HS.intelligenceImplant = 30, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.behavioralFlaw = "arrogant", _HS.custom.tattoo = "$He has a fine, intricate vine-like tattoo around $his right ankle.">> +<<set _HS.slaveName = "Beatrice (No. 525)", _HS.birthName = "Beatrice", _HS.origin = "$He comes from old money and sold $himself into slavery to satisfy $his obsession with the practice, believing $his family would buy $him back out of slavery later.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 23, _HS.physicalAge = 23, _HS.visualAge = 23, _HS.ovaryAge = 23, _HS.health = 20, _HS.devotion = 30, _HS.height = 155, _HS.race = "white", _HS.eye.origColor = "blue-green", _HS.override_H_Color = 1, _HS.origHColor = "red", _HS.hColor = "bright red", _HS.origSkin = "pure white", _HS.hLength = 80, _HS.hStyle = "long and wavy, and down past $his ass", _HS.waist = -55, _HS.boobs = 800, _HS.butt = 4, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.anus = 1, _HS.ovaries = 1, _HS.earPiercing = 1, _HS.skill.vaginal = 35, _HS.skill.oral = 35, _HS.skill.anal = 35, _HS.skill.whoring = 15, _HS.skill.entertainment = 15, _HS.clothes = "a slave gown", _HS.intelligence = 30, _HS.intelligenceImplant = 30, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.behavioralFlaw = "arrogant", _HS.custom.tattoo = "$He has a fine, intricate vine-like tattoo around $his right ankle.">> <<set $heroSlaves.push(_HS)>> /*contraception but breeder naturally, well trained*/ /*Fetish was 'arrogant', changed it to flaw. Added origin, whore and entertainskill. Changed eye color, corrected tattoo syntax, pierced ears, reduced weight -BoneyM*/ <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Yuuki", _HS.birthName = "Yuuki", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 21, _HS.physicalAge = 21, _HS.visualAge = 21, _HS.ovaryAge = 21, _HS.health = 20, _HS.devotion = 45, _HS.height = 145, _HS.race = "asian", _HS.override_Eye_Color = 1, _HS.override_H_Color = 1, _HS.origEye = "blue", _HS.origHColor = "blonde", _HS.pubicHColor = "blonde", _HS.origSkin = "fair", _HS.hStyle = "long and curly", _HS.waist = -55, _HS.boobs = 1000, _HS.butt = 5, _HS.vaginaLube = 1, _HS.ovaries = 1, _HS.skill.oral = 100, _HS.skill.entertainment = 35, _HS.intelligence = 30, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.behavioralFlaw = "bitchy", _HS.sexualFlaw = "crude ">> +<<set _HS.slaveName = "Yuuki", _HS.birthName = "Yuuki", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 21, _HS.physicalAge = 21, _HS.visualAge = 21, _HS.ovaryAge = 21, _HS.health = 20, _HS.devotion = 45, _HS.height = 145, _HS.race = "asian", _HS.override_Eye_Color = 1, _HS.override_H_Color = 1, _HS.eye.origColor = "blue", _HS.origHColor = "blonde", _HS.pubicHColor = "blonde", _HS.origSkin = "fair", _HS.hStyle = "long and curly", _HS.waist = -55, _HS.boobs = 1000, _HS.butt = 5, _HS.vaginaLube = 1, _HS.ovaries = 1, _HS.skill.oral = 100, _HS.skill.entertainment = 35, _HS.intelligence = 30, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.behavioralFlaw = "bitchy", _HS.sexualFlaw = "crude ">> <<set $heroSlaves.push(_HS)>> /*mischievous tease*/ /*Reduced height, added entertainskill, added bitchy, changed eyes -BoneyM*/ <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Elisa", _HS.birthName = "Elisa", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.health = 20, _HS.devotion = -55, _HS.muscles = 20, _HS.height = 145, _HS.race = "white", _HS.origEye = "bright blue", _HS.origHColor = "white-blonde", _HS.pubicHColor = "white-blonde", _HS.origSkin = "extremely pale", _HS.hStyle = "in a long braid", _HS.waist = -55, _HS.boobs = 500, _HS.butt = 4, _HS.face = 55, _HS.ovaries = 1, _HS.anusTat = "bleached", _HS.skill.combat = 1, _HS.intelligence = 30, _HS.intelligenceImplant = 30, _HS.attrXY = 40, _HS.fetish = "submissive", _HS.behavioralFlaw = "arrogant", _HS.sexualFlaw = "hates penetration", _HS.custom.desc = "An iron-willed, recently captured figure of a prominent anti-Free City guerrilla party, $he still clings strongly to traditional beliefs on Man's natural good, economic restriction, and monogamy. Excitable, girly, and sweet in comparison to $his natural brother, Martin, $he has a lovely singing voice. $He prays quite often, if allowed to.", _HS.mother = -9997, _HS.father = -9996>> +<<set _HS.slaveName = "Elisa", _HS.birthName = "Elisa", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.health = 20, _HS.devotion = -55, _HS.muscles = 20, _HS.height = 145, _HS.race = "white", _HS.eye.origColor = "bright blue", _HS.origHColor = "white-blonde", _HS.pubicHColor = "white-blonde", _HS.origSkin = "extremely pale", _HS.hStyle = "in a long braid", _HS.waist = -55, _HS.boobs = 500, _HS.butt = 4, _HS.face = 55, _HS.ovaries = 1, _HS.anusTat = "bleached", _HS.skill.combat = 1, _HS.intelligence = 30, _HS.intelligenceImplant = 30, _HS.attrXY = 40, _HS.fetish = "submissive", _HS.behavioralFlaw = "arrogant", _HS.sexualFlaw = "hates penetration", _HS.custom.desc = "An iron-willed, recently captured figure of a prominent anti-Free City guerrilla party, $he still clings strongly to traditional beliefs on Man's natural good, economic restriction, and monogamy. Excitable, girly, and sweet in comparison to $his natural brother, Martin, $he has a lovely singing voice. $He prays quite often, if allowed to.", _HS.mother = -9997, _HS.father = -9996>> <<set $heroSlaves.push(_HS)>> /*also hates pen*/ /*martin's sibling*/ <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Yvonne", _HS.birthName = "Yvonne", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 24, _HS.physicalAge = 24, _HS.visualAge = 24, _HS.ovaryAge = 24, _HS.health = 20, _HS.devotion = 100, _HS.height = 190, _HS.origEye = "hazel", _HS.origHColor = "blonde", _HS.pubicHColor = "blonde", _HS.origSkin = "light", _HS.hStyle = "long", _HS.waist = -55, _HS.boobs = 700, _HS.nipplesPiercing = 1, _HS.butt = 2, _HS.face = 55, _HS.vaginaLube = 1, _HS.clitPiercing = 3, _HS.clitSetting = "all", _HS.ovaries = 1, _HS.anusTat = "bleached", _HS.attrXY = 40, _HS.fetish = "pregnancy">> +<<set _HS.slaveName = "Yvonne", _HS.birthName = "Yvonne", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 24, _HS.physicalAge = 24, _HS.visualAge = 24, _HS.ovaryAge = 24, _HS.health = 20, _HS.devotion = 100, _HS.height = 190, _HS.eye.origColor = "hazel", _HS.origHColor = "blonde", _HS.pubicHColor = "blonde", _HS.origSkin = "light", _HS.hStyle = "long", _HS.waist = -55, _HS.boobs = 700, _HS.nipplesPiercing = 1, _HS.butt = 2, _HS.face = 55, _HS.vaginaLube = 1, _HS.clitPiercing = 3, _HS.clitSetting = "all", _HS.ovaries = 1, _HS.anusTat = "bleached", _HS.attrXY = 40, _HS.fetish = "pregnancy">> <<set $heroSlaves.push(_HS)>> <<set _HS = App.Entity.SlaveState.makeSkeleton()>> @@ -426,29 +432,30 @@ <<set $heroSlaves.push(_HS)>> <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Lilliana", _HS.birthName = "Zuzanna", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 25, _HS.physicalAge = 25, _HS.visualAge = 25, _HS.ovaryAge = 25, _HS.health = 13, _HS.devotion = 100, _HS.muscles = 100, _HS.height = 190, _HS.origEye = "white", _HS.eyes = -2, _HS.override_H_Color = 1, _HS.override_Brow_H_Color = 1, _HS.override_Arm_H_Color = 1, _HS.override_Pubic_H_Color = 1, _HS.origHColor = "white with red stripes", _HS.eyebrowHColor = "white", _HS.pubicHColor = "white", _HS.underArmHColor = "white", _HS.override_Skin = 1, _HS.origSkin = "sun tanned", _HS.hLength = 100, _HS.hStyle = "back in a large ass length braid", _HS.pubicHStyle = "bushy", _HS.waist = -55, _HS.boobs = 400, _HS.nipplesPiercing = 1, _HS.butt = 4, _HS.face = 15, _HS.faceImplant = 65, _HS.lipsPiercing = 1, _HS.tonguePiercing = 1, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.anus = 1, _HS.ovaries = 1, _HS.anusTat = "bleached", _HS.makeup = 2, _HS.nails = 1, _HS.earPiercing = 1, _HS.nosePiercing = 1, _HS.eyebrowPiercing = 1, _HS.skill.whoring = 15, _HS.skill.entertainment = 15, _HS.skill.combat = 1, _HS.clothes = "nice business attire", _HS.collar = "leather with cowbell", _HS.shoes = "heels", _HS.intelligence = -30, _HS.attrXY = 40, _HS.fetish = "boobs", _HS.fetishKnown = 1>> +<<set _HS.slaveName = "Lilliana", _HS.birthName = "Zuzanna", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 25, _HS.physicalAge = 25, _HS.visualAge = 25, _HS.ovaryAge = 25, _HS.health = 13, _HS.devotion = 100, _HS.muscles = 100, _HS.height = 190, _HS.eye.origColor = "white", _HS.override_H_Color = 1, _HS.override_Brow_H_Color = 1, _HS.override_Arm_H_Color = 1, _HS.override_Pubic_H_Color = 1, _HS.origHColor = "white with red stripes", _HS.eyebrowHColor = "white", _HS.pubicHColor = "white", _HS.underArmHColor = "white", _HS.override_Skin = 1, _HS.origSkin = "sun tanned", _HS.hLength = 100, _HS.hStyle = "back in a large ass length braid", _HS.pubicHStyle = "bushy", _HS.waist = -55, _HS.boobs = 400, _HS.nipplesPiercing = 1, _HS.butt = 4, _HS.face = 15, _HS.faceImplant = 65, _HS.lipsPiercing = 1, _HS.tonguePiercing = 1, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.anus = 1, _HS.ovaries = 1, _HS.anusTat = "bleached", _HS.makeup = 2, _HS.nails = 1, _HS.earPiercing = 1, _HS.nosePiercing = 1, _HS.eyebrowPiercing = 1, _HS.skill.whoring = 15, _HS.skill.entertainment = 15, _HS.skill.combat = 1, _HS.clothes = "nice business attire", _HS.collar = "leather with cowbell", _HS.shoes = "heels", _HS.intelligence = -30, _HS.attrXY = 40, _HS.fetish = "boobs", _HS.fetishKnown = 1>> +<<run eyeSurgery(_HS, "both", "blind")>> <<set $heroSlaves.push(_HS)>> /*Blind*/ <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Jenna", _HS.birthName = "Jenna", _HS.ID = _i++, _HS.assignment = "please you", _HS.birthWeek = random(0,51), _HS.actualAge = 19, _HS.physicalAge = 19, _HS.visualAge = 19, _HS.ovaryAge = 19, _HS.health = 30, _HS.devotion = 60, _HS.height = 145, _HS.origSkin = "pale", _HS.origEye = "violet", _HS.origHColor = "red-blonde", _HS.pubicHColor = "red-blonde", _HS.hStyle = "waist-length", _HS.waist = -55, _HS.boobs = 650, _HS.butt = 6, _HS.face = 55, _HS.lips = 35, _HS.vaginaLube = 1, _HS.clitPiercing = 3, _HS.clitSetting = "submissive", _HS.ovaries = 1, _HS.skill.oral = 100, _HS.clothes = "a string bikini", _HS.shoes = "heels", _HS.attrXY = 40, _HS.fetish = "submissive", _HS.fetishKnown = 1, _HS.custom.tattoo = "$His name is tattooed in flowing cursive script across $his upper back. ">> +<<set _HS.slaveName = "Jenna", _HS.birthName = "Jenna", _HS.ID = _i++, _HS.assignment = "please you", _HS.birthWeek = random(0,51), _HS.actualAge = 19, _HS.physicalAge = 19, _HS.visualAge = 19, _HS.ovaryAge = 19, _HS.health = 30, _HS.devotion = 60, _HS.height = 145, _HS.origSkin = "pale", _HS.eye.origColor = "violet", _HS.origHColor = "red-blonde", _HS.pubicHColor = "red-blonde", _HS.hStyle = "waist-length", _HS.waist = -55, _HS.boobs = 650, _HS.butt = 6, _HS.face = 55, _HS.lips = 35, _HS.vaginaLube = 1, _HS.clitPiercing = 3, _HS.clitSetting = "submissive", _HS.ovaries = 1, _HS.skill.oral = 100, _HS.clothes = "a string bikini", _HS.shoes = "heels", _HS.attrXY = 40, _HS.fetish = "submissive", _HS.fetishKnown = 1, _HS.custom.tattoo = "$His name is tattooed in flowing cursive script across $his upper back. ">> <<set $heroSlaves.push(_HS)>> <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "'Asspussy' Miss Julie O", _HS.birthName = "Leah", _HS.origin = "$He was sentenced to enslavement as a punishment for fraud and theft.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 42, _HS.physicalAge = 42, _HS.visualAge = 42, _HS.ovaryAge = 42, _HS.health = 70, _HS.devotion = 100, _HS.height = 155, _HS.markings = "none", _HS.origEye = "blue", _HS.origHColor = "blonde", _HS.pubicHColor = "blonde", _HS.origSkin = "pale", _HS.hLength = 40, _HS.hStyle = "fashionable for a Free Cities 3rd Grade Teacher, up in a tight bun", _HS.pubicHStyle = "bushy", _HS.waist = -55, _HS.vagina = 2, _HS.vaginaLube = 1, _HS.clit = 1, _HS.clitPiercing = 3, _HS.clitSetting = "anal", _HS.boobs = 650, _HS.boobsImplant = 200, _HS.nipples = "huge", _HS.butt = 3, _HS.face = 15, _HS.faceImplant = 65, _HS.anus = 1, _HS.ovaries = 1, _HS.anusPiercing = 2, _HS.anusTat = "bleached", _HS.makeup = 2, _HS.nails = 2, _HS.earPiercing = 1, _HS.skill.vaginal = 15, _HS.skill.oral = 15, _HS.clothes = "nice business attire", _HS.collar = "heavy gold", _HS.shoes = "heels", _HS.intelligence = -40, _HS.attrXY = 40, _HS.fetish = "buttslut", _HS.fetishKnown = 1, _HS.custom.desc = "$His pale skin is lightly freckled, and $his nipples are dark tan. $He used to be sexually repressed, and used to hate anal sex.">> +<<set _HS.slaveName = "'Asspussy' Miss Julie O", _HS.birthName = "Leah", _HS.origin = "$He was sentenced to enslavement as a punishment for fraud and theft.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 42, _HS.physicalAge = 42, _HS.visualAge = 42, _HS.ovaryAge = 42, _HS.health = 70, _HS.devotion = 100, _HS.height = 155, _HS.markings = "none", _HS.eye.origColor = "blue", _HS.origHColor = "blonde", _HS.pubicHColor = "blonde", _HS.origSkin = "pale", _HS.hLength = 40, _HS.hStyle = "fashionable for a Free Cities 3rd Grade Teacher, up in a tight bun", _HS.pubicHStyle = "bushy", _HS.waist = -55, _HS.vagina = 2, _HS.vaginaLube = 1, _HS.clit = 1, _HS.clitPiercing = 3, _HS.clitSetting = "anal", _HS.boobs = 650, _HS.boobsImplant = 200, _HS.nipples = "huge", _HS.butt = 3, _HS.face = 15, _HS.faceImplant = 65, _HS.anus = 1, _HS.ovaries = 1, _HS.anusPiercing = 2, _HS.anusTat = "bleached", _HS.makeup = 2, _HS.nails = 2, _HS.earPiercing = 1, _HS.skill.vaginal = 15, _HS.skill.oral = 15, _HS.clothes = "nice business attire", _HS.collar = "heavy gold", _HS.shoes = "heels", _HS.intelligence = -40, _HS.attrXY = 40, _HS.fetish = "buttslut", _HS.fetishKnown = 1, _HS.custom.desc = "$His pale skin is lightly freckled, and $his nipples are dark tan. $He used to be sexually repressed, and used to hate anal sex.">> <<set $heroSlaves.push(_HS)>> /*huge nips*/ <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Golden Cobra", _HS.birthName = "Auyala", _HS.origin = "$He was captured from West Central Africa.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 23, _HS.physicalAge = 23, _HS.visualAge = 23, _HS.ovaryAge = 23, _HS.health = 30, _HS.devotion = 100, _HS.muscles = 50, _HS.height = 190, _HS.nationality = "Central African", _HS.race = "black", _HS.eyes = 1, _HS.override_H_Color = 1, _HS.override_Brow_H_Color = 1, _HS.override_Arm_H_Color = 1, _HS.override_Pubic_H_Color = 1, _HS.origEye = "green", _HS.origHColor = "golden blonde with copper streaks", _HS.eyebrowHColor = "blonde", _HS.pubicHColor = "blonde", _HS.underArmHColor = "blonde", _HS.origSkin = "brown", _HS.hLength = 35, _HS.hStyle = "shoulder-length, plaited in cornrow braids; a single thin braid adorned with several colorful feathers and fearsome fang of unknown origin is hanging aside $his left eye", _HS.pubicHStyle = "in a strip", _HS.waist = -55, _HS.boobs = 1450, _HS.nipplesPiercing = 2, _HS.butt = 5, _HS.lips = 55, _HS.vagina = 2, _HS.vaginaLube = 1, _HS.clit = 2, _HS.clitPiercing = 2, _HS.clitSetting = "lesbian", _HS.anus = 2, _HS.ovaries = 1, _HS.anusTat = "bleached", _HS.earPiercing = 1, _HS.skill.vaginal = 100, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.skill.combat = 1, _HS.clothes = "slutty jewelry", _HS.collar = "heavy gold", _HS.shoes = "heels", _HS.intelligence = -30, _HS.attrXX = 80, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.behavioralFlaw = "arrogant", _HS.custom.tattoo = "$He has tattoo of cobra wrapping around $his neck, which head with wide open maw and inflated hood tattooed right at $his throat.", _HS.custom.desc = "$He has a streak of ritual scars resembling some very complex snake skin pattern running down $his spine from nape to tail-bone.">> +<<set _HS.slaveName = "Golden Cobra", _HS.birthName = "Auyala", _HS.origin = "$He was captured from West Central Africa.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 23, _HS.physicalAge = 23, _HS.visualAge = 23, _HS.ovaryAge = 23, _HS.health = 30, _HS.devotion = 100, _HS.muscles = 50, _HS.height = 190, _HS.nationality = "Central African", _HS.race = "black", _HS.override_H_Color = 1, _HS.override_Brow_H_Color = 1, _HS.override_Arm_H_Color = 1, _HS.override_Pubic_H_Color = 1, _HS.eye.origColor = "green", _HS.origHColor = "golden blonde with copper streaks", _HS.eyebrowHColor = "blonde", _HS.pubicHColor = "blonde", _HS.underArmHColor = "blonde", _HS.origSkin = "brown", _HS.hLength = 35, _HS.hStyle = "shoulder-length, plaited in cornrow braids; a single thin braid adorned with several colorful feathers and fearsome fang of unknown origin is hanging aside $his left eye", _HS.pubicHStyle = "in a strip", _HS.waist = -55, _HS.boobs = 1450, _HS.nipplesPiercing = 2, _HS.butt = 5, _HS.lips = 55, _HS.vagina = 2, _HS.vaginaLube = 1, _HS.clit = 2, _HS.clitPiercing = 2, _HS.clitSetting = "lesbian", _HS.anus = 2, _HS.ovaries = 1, _HS.anusTat = "bleached", _HS.earPiercing = 1, _HS.skill.vaginal = 100, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.skill.combat = 1, _HS.clothes = "slutty jewelry", _HS.collar = "heavy gold", _HS.shoes = "heels", _HS.intelligence = -30, _HS.attrXX = 80, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.behavioralFlaw = "arrogant", _HS.custom.tattoo = "$He has tattoo of cobra wrapping around $his neck, which head with wide open maw and inflated hood tattooed right at $his throat.", _HS.custom.desc = "$He has a streak of ritual scars resembling some very complex snake skin pattern running down $his spine from nape to tail-bone.">> <<set $heroSlaves.push(_HS)>> <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "'Top' Lillium", _HS.birthName = "Sarah", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 42, _HS.physicalAge = 42, _HS.visualAge = 42, _HS.ovaryAge = 42, _HS.health = 90, _HS.devotion = 100, _HS.muscles = 20, _HS.height = 190, _HS.origEye = "green", _HS.origHColor = "red", _HS.override_H_Color = 1, _HS.hColor = "deep red", _HS.origSkin = "fair", _HS.hLength = 20, _HS.hStyle = "short and pleasantly frames $his face", _HS.waist = -55, _HS.boobs = 900, _HS.butt = 4, _HS.vagina = 2, _HS.vaginaLube = 1, _HS.clitPiercing = 3, _HS.clitSetting = "all", _HS.anus = 2, _HS.ovaries = 1, _HS.skill.vaginal = 100, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.skill.whoring = 100, _HS.skill.entertainment = 100, _HS.skill.combat = 1, _HS.clothes = "nice business attire", _HS.collar = "heavy gold", _HS.shoes = "flats", _HS.energy = 100, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.custom.tattoo = "$He has a small, grinning harlequin tattoo on $his inner thigh.", _HS.custom.desc = "In place of $his left hand's pinkie finger is a large pink scar that crosses the entire back of $his hand.">> +<<set _HS.slaveName = "'Top' Lillium", _HS.birthName = "Sarah", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 42, _HS.physicalAge = 42, _HS.visualAge = 42, _HS.ovaryAge = 42, _HS.health = 90, _HS.devotion = 100, _HS.muscles = 20, _HS.height = 190, _HS.eye.origColor = "green", _HS.origHColor = "red", _HS.override_H_Color = 1, _HS.hColor = "deep red", _HS.origSkin = "fair", _HS.hLength = 20, _HS.hStyle = "short and pleasantly frames $his face", _HS.waist = -55, _HS.boobs = 900, _HS.butt = 4, _HS.vagina = 2, _HS.vaginaLube = 1, _HS.clitPiercing = 3, _HS.clitSetting = "all", _HS.anus = 2, _HS.ovaries = 1, _HS.skill.vaginal = 100, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.skill.whoring = 100, _HS.skill.entertainment = 100, _HS.skill.combat = 1, _HS.clothes = "nice business attire", _HS.collar = "heavy gold", _HS.shoes = "flats", _HS.energy = 100, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.custom.tattoo = "$He has a small, grinning harlequin tattoo on $his inner thigh.", _HS.custom.desc = "In place of $his left hand's pinkie finger is a large pink scar that crosses the entire back of $his hand.">> <<set $heroSlaves.push(_HS)>> <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Cammy", _HS.birthName = "Viktoriya", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 27, _HS.physicalAge = 27, _HS.visualAge = 27, _HS.ovaryAge = 27, _HS.health = 80, _HS.devotion = 70, _HS.muscles = 75, _HS.height = 145, _HS.race = "white", _HS.origEye = "blue", _HS.origHColor = "blonde", _HS.pubicHColor = "blonde", _HS.origSkin = "pale", _HS.hStyle = "tied back into two long braids", _HS.boobs = 800, _HS.butt = 2.5, _HS.face = 15, _HS.vaginaLube = 1, _HS.anus = 1, _HS.ovaries = 1, _HS.skill.vaginal = 35, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.skill.whoring = 15, _HS.skill.entertainment = 15, _HS.clothes = "a comfortable bodysuit", _HS.collar = "pretty jewelry", _HS.shoes = "heels", _HS.attrXY = 40, _HS.fetish = "cumslut", _HS.custom.desc = "$He has a long horizontal scar on $his left cheek.">> +<<set _HS.slaveName = "Cammy", _HS.birthName = "Viktoriya", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 27, _HS.physicalAge = 27, _HS.visualAge = 27, _HS.ovaryAge = 27, _HS.health = 80, _HS.devotion = 70, _HS.muscles = 75, _HS.height = 145, _HS.race = "white", _HS.eye.origColor = "blue", _HS.origHColor = "blonde", _HS.pubicHColor = "blonde", _HS.origSkin = "pale", _HS.hStyle = "tied back into two long braids", _HS.boobs = 800, _HS.butt = 2.5, _HS.face = 15, _HS.vaginaLube = 1, _HS.anus = 1, _HS.ovaries = 1, _HS.skill.vaginal = 35, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.skill.whoring = 15, _HS.skill.entertainment = 15, _HS.clothes = "a comfortable bodysuit", _HS.collar = "pretty jewelry", _HS.shoes = "heels", _HS.attrXY = 40, _HS.fetish = "cumslut", _HS.custom.desc = "$He has a long horizontal scar on $his left cheek.">> <<set $heroSlaves.push(_HS)>> <<set _HS = App.Entity.SlaveState.makeSkeleton()>> @@ -464,11 +471,11 @@ <<set $heroSlaves.push(_HS)>> <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Miss Maree", _HS.birthName = "Tina", _HS.origin = "A former headmistress, $he was sentenced to slavery after $he was caught training $his students to be lesbian trophy slaves.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 42, _HS.physicalAge = 42, _HS.visualAge = 42, _HS.ovaryAge = 42, _HS.health = 100, _HS.devotion = -50, _HS.weight = 20, _HS.height = 155, _HS.nationality = "American", _HS.origEye = "green", _HS.origHColor = "red", _HS.pubicHColor = "red", _HS.origSkin = "pale", _HS.hStyle = "in a large bun", _HS.pubicHStyle = "in a strip", _HS.waist = -55, _HS.boobs = 1500, _HS.areolae = 3, _HS.boobsTat = "advertisements", _HS.butt = 6, _HS.face = 15, _HS.lips = 35, _HS.lipsTat = "permanent makeup", _HS.vaginaLube = 1, _HS.bellyAccessory = "a corset", _HS.ovaries = 1, _HS.anusTat = "flowers", _HS.earPiercing = 1, _HS.stampTat = "scenes", _HS.skill.vaginal = 15, _HS.skill.oral = 15, _HS.collar = "leather with cowbell", _HS.shoes = "heels", _HS.intelligence = 100, _HS.intelligenceImplant = 30, _HS.attrXX = 80, _HS.attrXY = 0, _HS.fetishKnown = 1, _HS.behavioralFlaw = "bitchy", _HS.sexualFlaw = "hates men", _HS.custom.desc = "$He absolutely detests men.", _HS.career = "a principal">> +<<set _HS.slaveName = "Miss Maree", _HS.birthName = "Tina", _HS.origin = "A former headmistress, $he was sentenced to slavery after $he was caught training $his students to be lesbian trophy slaves.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 42, _HS.physicalAge = 42, _HS.visualAge = 42, _HS.ovaryAge = 42, _HS.health = 100, _HS.devotion = -50, _HS.weight = 20, _HS.height = 155, _HS.nationality = "American", _HS.eye.origColor = "green", _HS.origHColor = "red", _HS.pubicHColor = "red", _HS.origSkin = "pale", _HS.hStyle = "in a large bun", _HS.pubicHStyle = "in a strip", _HS.waist = -55, _HS.boobs = 1500, _HS.areolae = 3, _HS.boobsTat = "advertisements", _HS.butt = 6, _HS.face = 15, _HS.lips = 35, _HS.lipsTat = "permanent makeup", _HS.vaginaLube = 1, _HS.bellyAccessory = "a corset", _HS.ovaries = 1, _HS.anusTat = "flowers", _HS.earPiercing = 1, _HS.stampTat = "scenes", _HS.skill.vaginal = 15, _HS.skill.oral = 15, _HS.collar = "leather with cowbell", _HS.shoes = "heels", _HS.intelligence = 100, _HS.intelligenceImplant = 30, _HS.attrXX = 80, _HS.attrXY = 0, _HS.fetishKnown = 1, _HS.behavioralFlaw = "bitchy", _HS.sexualFlaw = "hates men", _HS.custom.desc = "$He absolutely detests men.", _HS.career = "a principal">> <<set $heroSlaves.push(_HS)>> <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Caroline", _HS.birthName = "Carl", _HS.ID = _i++, _HS.prestige = 1, _HS.prestigeDesc = "$He was once a rising Free Cities politician who argued for compulsory female enslavement, but $he became an addict, fell into debt, and was subsequently enslaved.", _HS.birthWeek = random(0,51), _HS.genes = "XY", _HS.actualAge = 44, _HS.physicalAge = 44, _HS.visualAge = 44, _HS.ovaryAge = 44, _HS.health = 60, _HS.devotion = 90, _HS.height = 145, _HS.heightImplant = -1, _HS.race = "white", _HS.nationality = "French", _HS.origEye = "blue", _HS.origHColor = "blonde", _HS.pubicHColor = "blonde", _HS.override_Skin = 1, _HS.origSkin = "spray tanned", _HS.hLength = 70, _HS.hStyle = "ass-length", _HS.waist = -55, _HS.heels = 1, _HS.boobs = 1100, _HS.boobsImplant = 400, _HS.nipplesPiercing = 1, _HS.areolae = 1, _HS.butt = 4, _HS.buttImplant = 2, _HS.face = 55, _HS.faceImplant = 65, _HS.lips = 55, _HS.lipsImplant = 2, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.preg = -2, _HS.anus = 2, _HS.anusTat = "bleached", _HS.makeup = 3, _HS.nails = 1, _HS.earPiercing = 1, _HS.navelPiercing = 1, _HS.legsTat = "degradation", _HS.stampTat = "degradation", _HS.skill.vaginal = 100, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.skill.whoring = 15, _HS.skill.entertainment = 35, _HS.drugs = "breast injections", _HS.addict = 1, _HS.clothes = "slutty jewelry", _HS.collar = "tight steel", _HS.intelligence = -90, _HS.intelligenceImplant = 30, _HS.attrXY = 40, _HS.fetish = "humiliation", _HS.behavioralFlaw = "arrogant", _HS.custom.tattoo = "$He has a tattoo down $his left arm, which reads 'Once a tall, muscular, handsome man with a big dick and big balls.'", _HS.custom.desc = "Since becoming a slave $he has been turned into a little bimbo.">> +<<set _HS.slaveName = "Caroline", _HS.birthName = "Carl", _HS.ID = _i++, _HS.prestige = 1, _HS.prestigeDesc = "$He was once a rising Free Cities politician who argued for compulsory female enslavement, but $he became an addict, fell into debt, and was subsequently enslaved.", _HS.birthWeek = random(0,51), _HS.genes = "XY", _HS.actualAge = 44, _HS.physicalAge = 44, _HS.visualAge = 44, _HS.ovaryAge = 44, _HS.health = 60, _HS.devotion = 90, _HS.height = 145, _HS.heightImplant = -1, _HS.race = "white", _HS.nationality = "French", _HS.eye.origColor = "blue", _HS.origHColor = "blonde", _HS.pubicHColor = "blonde", _HS.override_Skin = 1, _HS.origSkin = "spray tanned", _HS.hLength = 70, _HS.hStyle = "ass-length", _HS.waist = -55, _HS.heels = 1, _HS.boobs = 1100, _HS.boobsImplant = 400, _HS.nipplesPiercing = 1, _HS.areolae = 1, _HS.butt = 4, _HS.buttImplant = 2, _HS.face = 55, _HS.faceImplant = 65, _HS.lips = 55, _HS.lipsImplant = 2, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.preg = -2, _HS.anus = 2, _HS.anusTat = "bleached", _HS.makeup = 3, _HS.nails = 1, _HS.earPiercing = 1, _HS.navelPiercing = 1, _HS.legsTat = "degradation", _HS.stampTat = "degradation", _HS.skill.vaginal = 100, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.skill.whoring = 15, _HS.skill.entertainment = 35, _HS.drugs = "breast injections", _HS.addict = 1, _HS.clothes = "slutty jewelry", _HS.collar = "tight steel", _HS.intelligence = -90, _HS.intelligenceImplant = 30, _HS.attrXY = 40, _HS.fetish = "humiliation", _HS.behavioralFlaw = "arrogant", _HS.custom.tattoo = "$He has a tattoo down $his left arm, which reads 'Once a tall, muscular, handsome man with a big dick and big balls.'", _HS.custom.desc = "Since becoming a slave $he has been turned into a little bimbo.">> <<set $heroSlaves.push(_HS)>> <<if $seePreg != 0>> @@ -478,7 +485,7 @@ <</if>> <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Horsepussy", _HS.birthName = "Amber", _HS.origin = "$He was sold to you from the public slave market, and was probably kidnapped or otherwise forced into slavery.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 35, _HS.physicalAge = 35, _HS.visualAge = 35, _HS.ovaryAge = 35, _HS.health = 80, _HS.devotion = 55.7, _HS.height = 170, _HS.race = "white", _HS.nationality = "American", _HS.origEye = "blue", _HS.origSkin = "pale", _HS.hLength = 10, _HS.boobs = 500, _HS.butt = 5, _HS.vagina = 3, _HS.vaginaLube = 1, _HS.vaginaPiercing = 2, _HS.clitPiercing = 3, _HS.clitSetting = "vanilla", _HS.anus = 3, _HS.ovaries = 1, _HS.anusPiercing = 1, _HS.makeup = 1, _HS.brand["right buttock"] = "SLAVE", _HS.earPiercing = 1, _HS.skill.vaginal = 100, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.skill.whoring =100, _HS.skill.entertainment = 35, _HS.collar = "heavy gold", _HS.shoes = "heels", _HS.intelligence = 96, _HS.intelligenceImplant = 30, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.custom.tattoo = "$His nickname, 'Horsepussy,' is tattooed on $his forehead.", _HS.custom.desc = "$His pussy has been extensively surgically altered. $His labia are large and puffy, sticking out nearly an inch from $his crotch. $His cunt is exquisitely pink at the center, but $his large labia are dark at the edges, almost black.", _HS.labia = 3>> +<<set _HS.slaveName = "Horsepussy", _HS.birthName = "Amber", _HS.origin = "$He was sold to you from the public slave market, and was probably kidnapped or otherwise forced into slavery.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 35, _HS.physicalAge = 35, _HS.visualAge = 35, _HS.ovaryAge = 35, _HS.health = 80, _HS.devotion = 55.7, _HS.height = 170, _HS.race = "white", _HS.nationality = "American", _HS.eye.origColor = "blue", _HS.origSkin = "pale", _HS.hLength = 10, _HS.boobs = 500, _HS.butt = 5, _HS.vagina = 3, _HS.vaginaLube = 1, _HS.vaginaPiercing = 2, _HS.clitPiercing = 3, _HS.clitSetting = "vanilla", _HS.anus = 3, _HS.ovaries = 1, _HS.anusPiercing = 1, _HS.makeup = 1, _HS.brand["right buttock"] = "SLAVE", _HS.earPiercing = 1, _HS.skill.vaginal = 100, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.skill.whoring =100, _HS.skill.entertainment = 35, _HS.collar = "heavy gold", _HS.shoes = "heels", _HS.intelligence = 96, _HS.intelligenceImplant = 30, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.custom.tattoo = "$His nickname, 'Horsepussy,' is tattooed on $his forehead.", _HS.custom.desc = "$His pussy has been extensively surgically altered. $His labia are large and puffy, sticking out nearly an inch from $his crotch. $His cunt is exquisitely pink at the center, but $his large labia are dark at the edges, almost black.", _HS.labia = 3>> <<set $heroSlaves.push(_HS)>> <<set _HS = App.Entity.SlaveState.makeSkeleton()>> @@ -490,19 +497,19 @@ <<set $heroSlaves.push(_HS)>> <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "'Virago' Kissa", _HS.birthName = "", _HS.birthSurname = "", _HS.origin = "In spite of the great demand for $his kind, $he has apparently eluded enslavement until recently.", _HS.career = "a wanderer", _HS.ID = _i++, _HS.prestige = 1, _HS.prestigeDesc = "$He is a natural albino.", _HS.birthWeek = random(0,51), _HS.health = 100, _HS.devotion = 100, _HS.muscles = 50, _HS.height = 190, _HS.nationality = "Ugandan", _HS.race = "black", _HS.origEye = "pale grey", _HS.origHColor = "white", _HS.pubicHColor = "white", _HS.origSkin = "extremely pale", _HS.hLength = 100, _HS.hStyle = "extremely long and bushy", _HS.pubicHStyle = "bushy", _HS.waist = -55, _HS.boobs = 600, _HS.face = 55, _HS.lips = 35, _HS.vaginaLube = 1, _HS.clitPiercing = 3, _HS.clitSetting = "oral", _HS.ovaries = 1, _HS.anusTat = "bleached", _HS.skill.oral = 100, _HS.skill.whoring =100, _HS.skill.entertainment = 100, _HS.skill.combat = 3, _HS.rules.living = "luxurious", _HS.rules.speech = "permissive", _HS.rules.release = "permissive", _HS.collar = "pretty jewelry", _HS.shoes = "flats", _HS.intelligence = 100, _HS.intelligenceImplant = 30, _HS.attrXY = 40, _HS.fetish = "cumslut", _HS.fetishKnown = 1, _HS.behavioralFlaw = "odd", _HS.geneticQuirks = {albinism: 2}, _HS.custom.tattoo = "$His entire body is tattooed with a detailed map of $his arteries which, combined with $his albinism, gives $him a quasi-translucent quality.", _HS.custom.desc = "$His eyes are unsettling; though $his irises are a pale grey color, in some lights the whole eye takes on a red cast.">> +<<set _HS.slaveName = "'Virago' Kissa", _HS.birthName = "", _HS.birthSurname = "", _HS.origin = "In spite of the great demand for $his kind, $he has apparently eluded enslavement until recently.", _HS.career = "a wanderer", _HS.ID = _i++, _HS.prestige = 1, _HS.prestigeDesc = "$He is a natural albino.", _HS.birthWeek = random(0,51), _HS.health = 100, _HS.devotion = 100, _HS.muscles = 50, _HS.height = 190, _HS.nationality = "Ugandan", _HS.race = "black", _HS.eye.origColor = "pale grey", _HS.origHColor = "white", _HS.pubicHColor = "white", _HS.origSkin = "extremely pale", _HS.hLength = 100, _HS.hStyle = "extremely long and bushy", _HS.pubicHStyle = "bushy", _HS.waist = -55, _HS.boobs = 600, _HS.face = 55, _HS.lips = 35, _HS.vaginaLube = 1, _HS.clitPiercing = 3, _HS.clitSetting = "oral", _HS.ovaries = 1, _HS.anusTat = "bleached", _HS.skill.oral = 100, _HS.skill.whoring =100, _HS.skill.entertainment = 100, _HS.skill.combat = 3, _HS.rules.living = "luxurious", _HS.rules.speech = "permissive", _HS.rules.release = "permissive", _HS.collar = "pretty jewelry", _HS.shoes = "flats", _HS.intelligence = 100, _HS.intelligenceImplant = 30, _HS.attrXY = 40, _HS.fetish = "cumslut", _HS.fetishKnown = 1, _HS.behavioralFlaw = "odd", _HS.geneticQuirks = {albinism: 2}, _HS.custom.tattoo = "$His entire body is tattooed with a detailed map of $his arteries which, combined with $his albinism, gives $him a quasi-translucent quality.", _HS.custom.desc = "$His eyes are unsettling; though $his irises are a pale grey color, in some lights the whole eye takes on a red cast.">> <<set $heroSlaves.push(_HS)>> <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Annabelle", _HS.birthName = "Annabelle", _HS.origin = "$He came to be a slave not long after fleeing farm life for the Free Cities.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.health = 20, _HS.devotion = -65, _HS.height = 155, _HS.nationality = "American", _HS.race = "white", _HS.origEye = "blue", _HS.origHColor = "blonde", _HS.pubicHColor = "blonde", _HS.override_Skin = 1, _HS.origSkin = "sun tanned", _HS.hStyle = "braided into pigtails", _HS.pubicHStyle = "bushy", _HS.waist = -55, _HS.boobs = 500, _HS.butt = 4, _HS.vaginaLube = 1, _HS.anus = 1, _HS.ovaries = 1, _HS.skill.oral = 15, _HS.skill.anal = 15, _HS.skill.whoring = 15, _HS.attrXY = 40, _HS.behavioralFlaw = "hates women", _HS.custom.desc = "The pale skin within $his tan lines is lightly freckled.", _HS.markings = "freckles", _HS.career = "a farmer">> +<<set _HS.slaveName = "Annabelle", _HS.birthName = "Annabelle", _HS.origin = "$He came to be a slave not long after fleeing farm life for the Free Cities.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.health = 20, _HS.devotion = -65, _HS.height = 155, _HS.nationality = "American", _HS.race = "white", _HS.eye.origColor = "blue", _HS.origHColor = "blonde", _HS.pubicHColor = "blonde", _HS.override_Skin = 1, _HS.origSkin = "sun tanned", _HS.hStyle = "braided into pigtails", _HS.pubicHStyle = "bushy", _HS.waist = -55, _HS.boobs = 500, _HS.butt = 4, _HS.vaginaLube = 1, _HS.anus = 1, _HS.ovaries = 1, _HS.skill.oral = 15, _HS.skill.anal = 15, _HS.skill.whoring = 15, _HS.attrXY = 40, _HS.behavioralFlaw = "hates women", _HS.custom.desc = "The pale skin within $his tan lines is lightly freckled.", _HS.markings = "freckles", _HS.career = "a farmer">> <<set $heroSlaves.push(_HS)>> <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "'Vampire' Elvira", _HS.birthName = "Elvira", _HS.career = "a service worker", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 20, _HS.physicalAge = 20, _HS.visualAge = 20, _HS.ovaryAge = 20, _HS.health = 90, _HS.devotion = 100, _HS.height = 145, _HS.nationality = "Swedish", _HS.race = "white", _HS.origEye = "blue", _HS.origHColor = "red", _HS.pubicHColor = "red", _HS.override_Skin = 1, _HS.origSkin = "sun tanned", _HS.hLength = 85, _HS.hStyle = "ass-length", _HS.waist = -55, _HS.boobs = 650, _HS.boobsImplant = 200, _HS.nipplesPiercing = 2, _HS.butt = 3, _HS.buttImplant = 1, _HS.face = 55, _HS.faceImplant = 15, _HS.lips = 35, _HS.tonguePiercing = 1, _HS.vagina = 3, _HS.vaginaLube = 1, _HS.clitPiercing = 1, _HS.anus = 3, _HS.ovaries = 1, _HS.brand["right buttock"] = "your initials", _HS.skill.vaginal = 100, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.skill.whoring =100, _HS.skill.entertainment = 15, _HS.rules.living = "luxurious", _HS.clothes = "choosing her own clothes", _HS.collar = "heavy gold", _HS.intelligenceImplant = 30, _HS.energy = 100, _HS.attrXY = 40, _HS.fetishKnown = 1>> +<<set _HS.slaveName = "'Vampire' Elvira", _HS.birthName = "Elvira", _HS.career = "a service worker", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 20, _HS.physicalAge = 20, _HS.visualAge = 20, _HS.ovaryAge = 20, _HS.health = 90, _HS.devotion = 100, _HS.height = 145, _HS.nationality = "Swedish", _HS.race = "white", _HS.eye.origColor = "blue", _HS.origHColor = "red", _HS.pubicHColor = "red", _HS.override_Skin = 1, _HS.origSkin = "sun tanned", _HS.hLength = 85, _HS.hStyle = "ass-length", _HS.waist = -55, _HS.boobs = 650, _HS.boobsImplant = 200, _HS.nipplesPiercing = 2, _HS.butt = 3, _HS.buttImplant = 1, _HS.face = 55, _HS.faceImplant = 15, _HS.lips = 35, _HS.tonguePiercing = 1, _HS.vagina = 3, _HS.vaginaLube = 1, _HS.clitPiercing = 1, _HS.anus = 3, _HS.ovaries = 1, _HS.brand["right buttock"] = "your initials", _HS.skill.vaginal = 100, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.skill.whoring =100, _HS.skill.entertainment = 15, _HS.rules.living = "luxurious", _HS.clothes = "choosing her own clothes", _HS.collar = "heavy gold", _HS.intelligenceImplant = 30, _HS.energy = 100, _HS.attrXY = 40, _HS.fetishKnown = 1>> <<set $heroSlaves.push(_HS)>> <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "'Creamy' Mayu", _HS.birthName = "Mayu", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 19, _HS.physicalAge = 19, _HS.visualAge = 19, _HS.ovaryAge = 19, _HS.health = 100, _HS.devotion = 100, _HS.weight = 20, _HS.height = 190, _HS.nationality = "Japanese", _HS.race = "asian", _HS.origEye = "blue", _HS.origHColor = "black", _HS.pubicHColor = "black", _HS.origSkin = "pale", _HS.hStyle = "long", _HS.waist = -55, _HS.boobs = 7500, _HS.nipples = "huge", _HS.areolae = 3, _HS.boobsTat = "bovine patterns", _HS.lactation = 2, _HS.lactationDuration = 2, _HS.butt = 7, _HS.buttTat = "bovine patterns", _HS.face = 15, _HS.faceImplant = 65, _HS.lips = 35, _HS.lipsTat = "bovine patterns", _HS.vagina = 2, _HS.vaginaLube = 1, _HS.vaginaTat = "bovine patterns", _HS.counter.births = 1, _HS.counter.birthsTotal = 1, _HS.anus = 1, _HS.ovaries = 1, _HS.anusTat = "bovine patterns", _HS.earPiercing = 1, _HS.shouldersTat = "bovine patterns", _HS.armsTat = "bovine patterns", _HS.legsTat = "bovine patterns", _HS.stampTat = "bovine patterns", _HS.skill.vaginal = 100, _HS.skill.oral = 100, _HS.rules.living = "luxurious", _HS.rules.speech = "permissive", _HS.rules.release = "permissive", _HS.rules.relationship = "permissive", _HS.clothes = "a nice maid outfit", _HS.collar = "leather with cowbell", _HS.shoes = "flats", _HS.intelligence = 30, _HS.attrXY = 40, _HS.fetish = "boobs", _HS.fetishKnown = 1, _HS.custom.desc = "$He is quite sweaty, often soaking though any clothing $he is wearing.">> +<<set _HS.slaveName = "'Creamy' Mayu", _HS.birthName = "Mayu", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 19, _HS.physicalAge = 19, _HS.visualAge = 19, _HS.ovaryAge = 19, _HS.health = 100, _HS.devotion = 100, _HS.weight = 20, _HS.height = 190, _HS.nationality = "Japanese", _HS.race = "asian", _HS.eye.origColor = "blue", _HS.origHColor = "black", _HS.pubicHColor = "black", _HS.origSkin = "pale", _HS.hStyle = "long", _HS.waist = -55, _HS.boobs = 7500, _HS.nipples = "huge", _HS.areolae = 3, _HS.boobsTat = "bovine patterns", _HS.lactation = 2, _HS.lactationDuration = 2, _HS.butt = 7, _HS.buttTat = "bovine patterns", _HS.face = 15, _HS.faceImplant = 65, _HS.lips = 35, _HS.lipsTat = "bovine patterns", _HS.vagina = 2, _HS.vaginaLube = 1, _HS.vaginaTat = "bovine patterns", _HS.counter.births = 1, _HS.counter.birthsTotal = 1, _HS.anus = 1, _HS.ovaries = 1, _HS.anusTat = "bovine patterns", _HS.earPiercing = 1, _HS.shouldersTat = "bovine patterns", _HS.armsTat = "bovine patterns", _HS.legsTat = "bovine patterns", _HS.stampTat = "bovine patterns", _HS.skill.vaginal = 100, _HS.skill.oral = 100, _HS.rules.living = "luxurious", _HS.rules.speech = "permissive", _HS.rules.release = "permissive", _HS.rules.relationship = "permissive", _HS.clothes = "a nice maid outfit", _HS.collar = "leather with cowbell", _HS.shoes = "flats", _HS.intelligence = 30, _HS.attrXY = 40, _HS.fetish = "boobs", _HS.fetishKnown = 1, _HS.custom.desc = "$He is quite sweaty, often soaking though any clothing $he is wearing.">> <<set $heroSlaves.push(_HS)>> <<set _HS = App.Entity.SlaveState.makeSkeleton()>> @@ -517,14 +524,14 @@ <<if $seeExtreme == 1>> <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Mouse", _HS.birthName = "Mouse", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 21, _HS.physicalAge = 21, _HS.visualAge = 21, _HS.ovaryAge = 21, _HS.health = 20, _HS.devotion = -50, _HS.weight = 20, _HS.height = 152, _HS.override_H_Color = 1, _HS.pubicHColor = "purple", _HS.origSkin = "pale", _HS.origEye = "blue", _HS.origHColor = "purple", _HS.hLength = 10, _HS.boobs = 1000, _HS.areolae = 1, _HS.butt = 5, _HS.lipsTat = "permanent makeup", _HS.vagina = 1, _HS.vaginaLube = 1, _HS.anus = 1, _HS.analArea = 1, _HS.ovaries = 1, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.voice = 0, _HS.nipples = "puffy">> +<<set _HS.slaveName = "Mouse", _HS.birthName = "Mouse", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 21, _HS.physicalAge = 21, _HS.visualAge = 21, _HS.ovaryAge = 21, _HS.health = 20, _HS.devotion = -50, _HS.weight = 20, _HS.height = 152, _HS.override_H_Color = 1, _HS.pubicHColor = "purple", _HS.origSkin = "pale", _HS.eye.origColor = "blue", _HS.origHColor = "purple", _HS.hLength = 10, _HS.boobs = 1000, _HS.areolae = 1, _HS.butt = 5, _HS.lipsTat = "permanent makeup", _HS.vagina = 1, _HS.vaginaLube = 1, _HS.anus = 1, _HS.analArea = 1, _HS.ovaries = 1, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.voice = 0, _HS.nipples = "puffy">> <<run App.Utils.removeHeroLimbs(_HS, "all")>> <<set $heroSlaves.push(_HS)>> /*Increased nipples and areolae, changed eye color, added mute -BoneyM*/ <<set _HS = App.Entity.SlaveState.makeSkeleton()>> <<set _HS.slaveName = "Box", _HS.birthName = "Box", _HS.origin = "When you took $him from $his previous owner, $he was locked into a beautiful rosewood box lined with red velvet, crying.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 21, _HS.physicalAge = 21, _HS.visualAge = 21, _HS.ovaryAge = 21, _HS.devotion = -75, _HS.weight = 20, _HS.eyes = -2, _HS.override_Brow_H_Color = 1, _HS.override_Arm_H_Color = 1, _HS.override_Pubic_H_Color = 1, _HS.eyebrowHColor = "blonde", _HS.pubicHColor = "blonde", _HS.underArmHColor = "blonde", _HS.origSkin = "pale", _HS.origHColor = "golden blonde", _HS.hStyle = "long", _HS.boobs = 400, _HS.butt = 2, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.anus = 1, _HS.ovaries = 1, _HS.skill.vaginal = 15, _HS.skill.oral = 15, _HS.skill.anal = 15, _HS.intelligence = -50, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.custom.desc = "$His amputation sites have titanium rings that go through to the bone. $He has been chemically blinded.">> -<<run App.Utils.removeHeroLimbs(_HS, "all")>> +<<run App.Utils.removeHeroLimbs(_HS, "all"), eyeSurgery(_HS, "both", "blind")>> <<set $heroSlaves.push(_HS)>> /* put some of $his custom description in $his origin (box stuff), tagged as amp, lowered obedience, increased weight but lowered health, changed skin color from white to pale */ @@ -536,7 +543,7 @@ <<if $seePreg != 0>> <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "'Fucknugget' Pillow", _HS.birthName = "Anika", _HS.origin = "$He sold $himself into slavery to escape life on the streets.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 37, _HS.physicalAge = 37, _HS.visualAge = 37, _HS.ovaryAge = 37, _HS.health = 80, _HS.devotion = 100, _HS.weight = 40, _HS.origRace = "white", _HS.override_Race = 1, _HS.race = "latina", _HS.origEye = "blue", _HS.origHColor = "red", _HS.pubicHColor = "red", _HS.hStyle = "long", _HS.waist = -100, _HS.boobs = 6260, _HS.boobsImplant = 4200, _HS.nipplesPiercing = 2, _HS.areolae = 3, _HS.boobsTat = "flowers", _HS.lactation = 2, _HS.lactationDuration = 2, _HS.butt = 12, _HS.buttImplant = 1, _HS.buttTat = "flowers", _HS.face = 55, _HS.faceImplant = 15, _HS.lips = 55, _HS.lipsImplant = 10, _HS.lipsPiercing = 2, _HS.lipsTat = "flowers", _HS.tonguePiercing = 2, _HS.vagina = 3, _HS.vaginaLube = 1, _HS.vaginaPiercing = 2, _HS.vaginaTat = "flowers", _HS.preg = 37, _HS.pregType = 1, _HS.pregWeek = 37, _HS.pregKnown = 1, _HS.belly = 13000, _HS.bellyPreg = 13000, _HS.counter.births = 2, _HS.counter.birthsTotal = 2, _HS.clitPiercing = 3, _HS.clitSetting = "boobs", _HS.anus = 2, _HS.ovaries = 1, _HS.anusPiercing = 2, _HS.anusTat = "flowers", _HS.makeup = 3, _HS.earPiercing = 2, _HS.nosePiercing = 2, _HS.eyebrowPiercing = 2, _HS.navelPiercing = 2, _HS.shouldersTat = "advertisements", _HS.stampTat = "flowers", _HS.skill.vaginal = 100, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.skill.whoring = 15, _HS.aphrodisiacs = 1, _HS.addict = 99, _HS.clothes = "restrictive latex", _HS.collar = "leather with cowbell", _HS.intelligence = -70, _HS.intelligenceImplant = 30, _HS.attrXY = 40, _HS.fetish = "boobs", _HS.fetishKnown = 1>> +<<set _HS.slaveName = "'Fucknugget' Pillow", _HS.birthName = "Anika", _HS.origin = "$He sold $himself into slavery to escape life on the streets.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 37, _HS.physicalAge = 37, _HS.visualAge = 37, _HS.ovaryAge = 37, _HS.health = 80, _HS.devotion = 100, _HS.weight = 40, _HS.origRace = "white", _HS.override_Race = 1, _HS.race = "latina", _HS.eye.origColor = "blue", _HS.origHColor = "red", _HS.pubicHColor = "red", _HS.hStyle = "long", _HS.waist = -100, _HS.boobs = 6260, _HS.boobsImplant = 4200, _HS.nipplesPiercing = 2, _HS.areolae = 3, _HS.boobsTat = "flowers", _HS.lactation = 2, _HS.lactationDuration = 2, _HS.butt = 12, _HS.buttImplant = 1, _HS.buttTat = "flowers", _HS.face = 55, _HS.faceImplant = 15, _HS.lips = 55, _HS.lipsImplant = 10, _HS.lipsPiercing = 2, _HS.lipsTat = "flowers", _HS.tonguePiercing = 2, _HS.vagina = 3, _HS.vaginaLube = 1, _HS.vaginaPiercing = 2, _HS.vaginaTat = "flowers", _HS.preg = 37, _HS.pregType = 1, _HS.pregWeek = 37, _HS.pregKnown = 1, _HS.belly = 13000, _HS.bellyPreg = 13000, _HS.counter.births = 2, _HS.counter.birthsTotal = 2, _HS.clitPiercing = 3, _HS.clitSetting = "boobs", _HS.anus = 2, _HS.ovaries = 1, _HS.anusPiercing = 2, _HS.anusTat = "flowers", _HS.makeup = 3, _HS.earPiercing = 2, _HS.nosePiercing = 2, _HS.eyebrowPiercing = 2, _HS.navelPiercing = 2, _HS.shouldersTat = "advertisements", _HS.stampTat = "flowers", _HS.skill.vaginal = 100, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.skill.whoring = 15, _HS.aphrodisiacs = 1, _HS.addict = 99, _HS.clothes = "restrictive latex", _HS.collar = "leather with cowbell", _HS.intelligence = -70, _HS.intelligenceImplant = 30, _HS.attrXY = 40, _HS.fetish = "boobs", _HS.fetishKnown = 1>> <<run App.Utils.removeHeroLimbs(_HS, "all")>> <<set $heroSlaves.push(_HS)>> <</if>> @@ -568,7 +575,7 @@ /*Tweaked smart piercing setting, corrected piercings -BoneyM*/ <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Fleshlight", _HS.birthName = "Fleshlight", _HS.origin = "Nothing remains of the person $he originally was, either mentally or physically.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 21, _HS.physicalAge = 21, _HS.visualAge = 21, _HS.ovaryAge = 21, _HS.health = 20, _HS.devotion = 60, _HS.race = "white", _HS.origEye = "blue", _HS.origHColor = "blonde", _HS.pubicHColor = "blonde", _HS.override_Skin = 1, _HS.origSkin = "spray tanned", _HS.hStyle = "long", _HS.waist = -55, _HS.boobs = 800, _HS.boobsImplant = 600, _HS.butt = 5, _HS.buttImplant = 2, _HS.lips = 55, _HS.lipsImplant = 2, _HS.lipsTat = "permanent makeup", _HS.vagina = 2, _HS.vaginaLube = 1, _HS.anus = 2, _HS.ovaries = 1, _HS.makeup = 3, _HS.nails = 3, _HS.skill.vaginal = 35, _HS.skill.oral = 35, _HS.skill.anal = 35, _HS.shoes = "heels", _HS.attrXY = 40, _HS.fetish = "mindbroken", _HS.fetishKnown = 1, _HS.custom.desc = "$He has many surgical scars and something seems off about $him.">> +<<set _HS.slaveName = "Fleshlight", _HS.birthName = "Fleshlight", _HS.origin = "Nothing remains of the person $he originally was, either mentally or physically.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 21, _HS.physicalAge = 21, _HS.visualAge = 21, _HS.ovaryAge = 21, _HS.health = 20, _HS.devotion = 60, _HS.race = "white", _HS.eye.origColor = "blue", _HS.origHColor = "blonde", _HS.pubicHColor = "blonde", _HS.override_Skin = 1, _HS.origSkin = "spray tanned", _HS.hStyle = "long", _HS.waist = -55, _HS.boobs = 800, _HS.boobsImplant = 600, _HS.butt = 5, _HS.buttImplant = 2, _HS.lips = 55, _HS.lipsImplant = 2, _HS.lipsTat = "permanent makeup", _HS.vagina = 2, _HS.vaginaLube = 1, _HS.anus = 2, _HS.ovaries = 1, _HS.makeup = 3, _HS.nails = 3, _HS.skill.vaginal = 35, _HS.skill.oral = 35, _HS.skill.anal = 35, _HS.shoes = "heels", _HS.attrXY = 40, _HS.fetish = "mindbroken", _HS.fetishKnown = 1, _HS.custom.desc = "$He has many surgical scars and something seems off about $him.">> <<run App.Medicine.Modification.addScar(_HS, "left breast", "surgical", 2)>> <<run App.Medicine.Modification.addScar(_HS, "right breast", "surgical", 2)>> <<run App.Medicine.Modification.addScar(_HS, "left buttock", "surgical", 2)>> @@ -587,11 +594,11 @@ <<if $familyTesting == 1>> <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Camille", _HS.birthName = "Camille", _HS.ID = _i++, _HS.origin = "$He is half of a famous musical duo, along with $his twin sister. They fled to the Free Cities.", _HS.career = "an aspiring pop star", _HS.prestige = 1, _HS.prestigeDesc = "$He is a famed singer; citizens would pay top prices to feel $his mouth around their dicks.", _HS.birthWeek = 16, _HS.actualAge = 23, _HS.physicalAge = 23, _HS.visualAge = 23, _HS.ovaryAge = 23, _HS.health = 40, _HS.weight = -10, _HS.muscles = 10, _HS.height = 170, _HS.nationality = "American", _HS.race = "white", _HS.origEye = "blue", _HS.origHColor = "blonde", _HS.origSkin = "pale", _HS.hLength = 60, _HS.hStyle = "neat, with thick luxurious bangs.", _HS.waist = -55, _HS.voice = 2, _HS.boobs = 300, _HS.boobShape = "perky", _HS.butt = 2, _HS.face = 100, _HS.lips = 25, _HS.earPiercing = 1, _HS.skill.oral = 15, _HS.skill.entertainment = 100, _HS.energy = 50, _HS.attrXX = 80, _HS.fetish = "boobs", _HS.fetishStrength = 70, _HS.behavioralFlaw = "arrogant", _HS.sexualFlaw = "hates men", _HS.custom.desc = "$He has an identical twin sister named Kennerly, from whom $he hates to be parted. They're from the former United States.", _HS.mother = -9999, _HS.father = -9998>> +<<set _HS.slaveName = "Camille", _HS.birthName = "Camille", _HS.ID = _i++, _HS.origin = "$He is half of a famous musical duo, along with $his twin sister. They fled to the Free Cities.", _HS.career = "an aspiring pop star", _HS.prestige = 1, _HS.prestigeDesc = "$He is a famed singer; citizens would pay top prices to feel $his mouth around their dicks.", _HS.birthWeek = 16, _HS.actualAge = 23, _HS.physicalAge = 23, _HS.visualAge = 23, _HS.ovaryAge = 23, _HS.health = 40, _HS.weight = -10, _HS.muscles = 10, _HS.height = 170, _HS.nationality = "American", _HS.race = "white", _HS.eye.origColor = "blue", _HS.origHColor = "blonde", _HS.origSkin = "pale", _HS.hLength = 60, _HS.hStyle = "neat, with thick luxurious bangs.", _HS.waist = -55, _HS.voice = 2, _HS.boobs = 300, _HS.boobShape = "perky", _HS.butt = 2, _HS.face = 100, _HS.lips = 25, _HS.earPiercing = 1, _HS.skill.oral = 15, _HS.skill.entertainment = 100, _HS.energy = 50, _HS.attrXX = 80, _HS.fetish = "boobs", _HS.fetishStrength = 70, _HS.behavioralFlaw = "arrogant", _HS.sexualFlaw = "hates men", _HS.custom.desc = "$He has an identical twin sister named Kennerly, from whom $he hates to be parted. They're from the former United States.", _HS.mother = -9999, _HS.father = -9998>> <<set $heroSlaves.push(_HS)>> <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Kennerly", _HS.birthName = "Kennerly", _HS.ID = _i++, _HS.origin = "$He is half of a famous musical duo, along with $his twin sister. They fled to the Free Cities.", _HS.career = "an aspiring pop star", _HS.prestige = 1, _HS.prestigeDesc = "$He is a famed singer; citizens would pay top prices to feel $his mouth around their dicks.", _HS.birthWeek = 16, _HS.actualAge = 23, _HS.physicalAge = 23, _HS.visualAge = 23, _HS.ovaryAge = 23, _HS.health = 40, _HS.weight = 10, _HS.height = 167, _HS.nationality = "American", _HS.race = "white", _HS.markings = "beauty mark", _HS.origEye = "blue", _HS.origHColor = "blonde", _HS.origSkin = "pale", _HS.hLength = 60, _HS.hStyle = "neat, with thick luxurious bangs.", _HS.waist = -55, _HS.voice = 2, _HS.boobs = 500, _HS.boobShape = "perky", _HS.butt = 2, _HS.face = 100, _HS.lips = 15, _HS.earPiercing = 1, _HS.navelPiercing = 1, _HS.skill.oral = 15, _HS.skill.entertainment = 100, _HS.energy = 50, _HS.attrXX = 80, _HS.fetish = "boobs", _HS.fetishStrength = 70, _HS.behavioralFlaw = "arrogant", _HS.sexualFlaw = "hates men", _HS.custom.desc = "$He has an identical twin sister named Camille, from whom $he hates to be parted. They're from the former United States.", _HS.mother = -9999, _HS.father = -9998>> +<<set _HS.slaveName = "Kennerly", _HS.birthName = "Kennerly", _HS.ID = _i++, _HS.origin = "$He is half of a famous musical duo, along with $his twin sister. They fled to the Free Cities.", _HS.career = "an aspiring pop star", _HS.prestige = 1, _HS.prestigeDesc = "$He is a famed singer; citizens would pay top prices to feel $his mouth around their dicks.", _HS.birthWeek = 16, _HS.actualAge = 23, _HS.physicalAge = 23, _HS.visualAge = 23, _HS.ovaryAge = 23, _HS.health = 40, _HS.weight = 10, _HS.height = 167, _HS.nationality = "American", _HS.race = "white", _HS.markings = "beauty mark", _HS.eye.origColor = "blue", _HS.origHColor = "blonde", _HS.origSkin = "pale", _HS.hLength = 60, _HS.hStyle = "neat, with thick luxurious bangs.", _HS.waist = -55, _HS.voice = 2, _HS.boobs = 500, _HS.boobShape = "perky", _HS.butt = 2, _HS.face = 100, _HS.lips = 15, _HS.earPiercing = 1, _HS.navelPiercing = 1, _HS.skill.oral = 15, _HS.skill.entertainment = 100, _HS.energy = 50, _HS.attrXX = 80, _HS.fetish = "boobs", _HS.fetishStrength = 70, _HS.behavioralFlaw = "arrogant", _HS.sexualFlaw = "hates men", _HS.custom.desc = "$He has an identical twin sister named Camille, from whom $he hates to be parted. They're from the former United States.", _HS.mother = -9999, _HS.father = -9998>> <<set $heroSlaves.push(_HS)>> <</if>> diff --git a/src/npc/databases/ddSlavesDatabase.tw b/src/npc/databases/ddSlavesDatabase.tw index e49cbbbb9e9e9950421d64cad2277f78151e660a..f8fe5db05176dd153c0202953fc59b81c249f371 100644 --- a/src/npc/databases/ddSlavesDatabase.tw +++ b/src/npc/databases/ddSlavesDatabase.tw @@ -34,7 +34,7 @@ /*Added brand to customtat, added origin -BoneyM*/ <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Sugar", _HS.birthName = "Sugar", _HS.genes = "XY", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 24, _HS.physicalAge = 24, _HS.visualAge = 24, _HS.ovaryAge = 24, _HS.health = 20, _HS.height = 175, _HS.origEye = "blue", _HS.origHColor = "platinum blonde", _HS.origSkin = "pale", _HS.hStyle = "long", _HS.waist = -55, _HS.boobs = 1400, _HS.boobsImplant = 1200, _HS.butt = 5, _HS.buttImplant = 4, _HS.lips = 55, _HS.lipsImplant = 2, _HS.vagina = -1, _HS.preg = -2, _HS.dick = 5, _HS.anus = 1, _HS.prostate = 1, _HS.balls = 1, _HS.scrotum = 1, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.clothes = "slutty jewelry", _HS.intelligence = -90, _HS.intelligenceImplant = 30, _HS.attrXX = 40, _HS.attrXY = 40, _HS.fetish = "cumslut", _HS.fetishKnown = 1, _HS.custom.desc = "$He is as dumb as a bag of hammers.">> +<<set _HS.slaveName = "Sugar", _HS.birthName = "Sugar", _HS.genes = "XY", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 24, _HS.physicalAge = 24, _HS.visualAge = 24, _HS.ovaryAge = 24, _HS.health = 20, _HS.height = 175, _HS.eye.origColor = "blue", _HS.origHColor = "platinum blonde", _HS.origSkin = "pale", _HS.hStyle = "long", _HS.waist = -55, _HS.boobs = 1400, _HS.boobsImplant = 1200, _HS.butt = 5, _HS.buttImplant = 4, _HS.lips = 55, _HS.lipsImplant = 2, _HS.vagina = -1, _HS.preg = -2, _HS.dick = 5, _HS.anus = 1, _HS.prostate = 1, _HS.balls = 1, _HS.scrotum = 1, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.clothes = "slutty jewelry", _HS.intelligence = -90, _HS.intelligenceImplant = 30, _HS.attrXX = 40, _HS.attrXY = 40, _HS.fetish = "cumslut", _HS.fetishKnown = 1, _HS.custom.desc = "$He is as dumb as a bag of hammers.">> <<set $heroSlaves.push(_HS)>> /*also buttslut*/ /*Added customdesc, changed eye color -BoneyM*/ @@ -57,7 +57,7 @@ /*Added bitchy, increased cock and balls size to average -BoneyM*/ <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Harry", _HS.birthName = "Harry", _HS.genes = "XY", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 20, _HS.physicalAge = 20, _HS.visualAge = 20, _HS.ovaryAge = 20, _HS.health = 20, _HS.devotion = 25, _HS.height = 175, _HS.heightImplant = 1, _HS.origEye = "blue", _HS.origHColor = "blonde", _HS.pubicHColor = "blonde", _HS.origSkin = "white", _HS.hStyle = "a medium length", _HS.boobs = 300, _HS.butt = 5, _HS.face = 15, _HS.faceImplant = 15, _HS.lipsTat = "permanent makeup", _HS.vagina = -1, _HS.preg = -2, _HS.dick = 2, _HS.anus = 2, _HS.prostate = 1, _HS.balls = 1, _HS.scrotum = 1, _HS.skill.oral = 15, _HS.skill.anal = 15, _HS.clothes = "attractive lingerie", _HS.intelligence = -20, _HS.attrXX = 40, _HS.attrXY = 40, _HS.fetish = "cumslut", _HS.fetishKnown = 1>> +<<set _HS.slaveName = "Harry", _HS.birthName = "Harry", _HS.genes = "XY", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 20, _HS.physicalAge = 20, _HS.visualAge = 20, _HS.ovaryAge = 20, _HS.health = 20, _HS.devotion = 25, _HS.height = 175, _HS.heightImplant = 1, _HS.eye.origColor = "blue", _HS.origHColor = "blonde", _HS.pubicHColor = "blonde", _HS.origSkin = "white", _HS.hStyle = "a medium length", _HS.boobs = 300, _HS.butt = 5, _HS.face = 15, _HS.faceImplant = 15, _HS.lipsTat = "permanent makeup", _HS.vagina = -1, _HS.preg = -2, _HS.dick = 2, _HS.anus = 2, _HS.prostate = 1, _HS.balls = 1, _HS.scrotum = 1, _HS.skill.oral = 15, _HS.skill.anal = 15, _HS.clothes = "attractive lingerie", _HS.intelligence = -20, _HS.attrXX = 40, _HS.attrXY = 40, _HS.fetish = "cumslut", _HS.fetishKnown = 1>> <<set $heroSlaves.push(_HS)>> /*light makeup tats*/ /*Added makeup tattoos, added facial surgery, changed eye color, added height and heightimplant -BoneyM*/ @@ -74,7 +74,7 @@ /*Increased height and balls size -BoneyM*/ <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Mackenzie", _HS.birthName = "Mackenzie", _HS.genes = "XY", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 21, _HS.physicalAge = 21, _HS.visualAge = 21, _HS.ovaryAge = 21, _HS.health = 40, _HS.devotion = 60, _HS.markings = "freckled", _HS.origEye = "blue", _HS.origHColor = "red", _HS.pubicHColor = "red", _HS.origSkin = "pale", _HS.hStyle = "long", _HS.boobs = 1800, _HS.nipplesPiercing = 1, _HS.butt = 4, _HS.lips = 35, _HS.vagina = -1, _HS.preg = -2, _HS.dick = 3, _HS.anus = 1, _HS.prostate = 1, _HS.balls = 2, _HS.scrotum = 2, _HS.skill.oral = 15, _HS.skill.anal = 15, _HS.intelligence = random(96,99), _HS.intelligenceImplant = 30, _HS.attrXX = 40, _HS.attrXY = 40, _HS.fetish = "submissive", _HS.fetishKnown = 1, _HS.custom.desc = "$He has a slim and perfectly feminine frame except for $his big feet and ears. $He's very intelligent and well learned.">> +<<set _HS.slaveName = "Mackenzie", _HS.birthName = "Mackenzie", _HS.genes = "XY", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 21, _HS.physicalAge = 21, _HS.visualAge = 21, _HS.ovaryAge = 21, _HS.health = 40, _HS.devotion = 60, _HS.markings = "freckled", _HS.eye.origColor = "blue", _HS.origHColor = "red", _HS.pubicHColor = "red", _HS.origSkin = "pale", _HS.hStyle = "long", _HS.boobs = 1800, _HS.nipplesPiercing = 1, _HS.butt = 4, _HS.lips = 35, _HS.vagina = -1, _HS.preg = -2, _HS.dick = 3, _HS.anus = 1, _HS.prostate = 1, _HS.balls = 2, _HS.scrotum = 2, _HS.skill.oral = 15, _HS.skill.anal = 15, _HS.intelligence = random(96,99), _HS.intelligenceImplant = 30, _HS.attrXX = 40, _HS.attrXY = 40, _HS.fetish = "submissive", _HS.fetishKnown = 1, _HS.custom.desc = "$He has a slim and perfectly feminine frame except for $his big feet and ears. $He's very intelligent and well learned.">> <<set $heroSlaves.push(_HS)>> /*intelligent, classy, devoted to Master*/ /*Increased ball size, changed eye color, changed skin to freckled, increased health, corrected customdesc syntax -BoneyM*/ @@ -85,18 +85,18 @@ <<set $heroSlaves.push(_HS)>> <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Nikole", _HS.birthName = "Nikole", _HS.genes = "XY", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 19, _HS.physicalAge = 19, _HS.visualAge = 19, _HS.ovaryAge = 19, _HS.health = 80, _HS.devotion = 100, _HS.race = "white", _HS.markings = "freckled", _HS.origEye = "green", _HS.origHColor = "red", _HS.pubicHColor = "red", _HS.origSkin = "pale", _HS.hLength = 60, _HS.hStyle = "long and in a ponytail", _HS.boobs = 200, _HS.butt = 5, _HS.lips = 35, _HS.vagina = -1, _HS.preg = -2, _HS.dick = 5, _HS.anus = 1, _HS.prostate = 1, _HS.balls = 3, _HS.scrotum = 3, _HS.anusTat = "bleached", _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.attrXX = 40, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.custom.tattoo = "$He has a tattoo of a black widow's hourglass pattern on $his ballsack.">> +<<set _HS.slaveName = "Nikole", _HS.birthName = "Nikole", _HS.genes = "XY", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 19, _HS.physicalAge = 19, _HS.visualAge = 19, _HS.ovaryAge = 19, _HS.health = 80, _HS.devotion = 100, _HS.race = "white", _HS.markings = "freckled", _HS.eye.origColor = "green", _HS.origHColor = "red", _HS.pubicHColor = "red", _HS.origSkin = "pale", _HS.hLength = 60, _HS.hStyle = "long and in a ponytail", _HS.boobs = 200, _HS.butt = 5, _HS.lips = 35, _HS.vagina = -1, _HS.preg = -2, _HS.dick = 5, _HS.anus = 1, _HS.prostate = 1, _HS.balls = 3, _HS.scrotum = 3, _HS.anusTat = "bleached", _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.attrXX = 40, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.custom.tattoo = "$He has a tattoo of a black widow's hourglass pattern on $his ballsack.">> <<set $heroSlaves.push(_HS)>> /% Put the freckles from custDesc to markings Bane70 %/ <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Exta", _HS.birthName = "Exta", _HS.genes = "XY", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 21, _HS.physicalAge = 21, _HS.visualAge = 21, _HS.ovaryAge = 21, _HS.health = 20, _HS.devotion = 60, _HS.muscles = 20, _HS.height = 190, _HS.origEye = "brown", _HS.origHColor = "blonde", _HS.pubicHColor = "blonde", _HS.origSkin = "white", _HS.hLength = 15, _HS.hStyle = "short, and in a boyish cut", _HS.boobs = 300, _HS.butt = 1, _HS.vagina = -1, _HS.preg = -2, _HS.dick = 2, _HS.prostate = 1, _HS.balls = 1, _HS.anusTat = "bleached", _HS.skill.oral = 15, _HS.skill.combat = 1, _HS.intelligence = 30, _HS.attrXX = 40, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.custom.tattoo = "$He has a raised circuitry pattern on the nape of $his neck.", _HS.sexualFlaw = "shamefast", _HS.career = "a businessman">> +<<set _HS.slaveName = "Exta", _HS.birthName = "Exta", _HS.genes = "XY", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 21, _HS.physicalAge = 21, _HS.visualAge = 21, _HS.ovaryAge = 21, _HS.health = 20, _HS.devotion = 60, _HS.muscles = 20, _HS.height = 190, _HS.eye.origColor = "brown", _HS.origHColor = "blonde", _HS.pubicHColor = "blonde", _HS.origSkin = "white", _HS.hLength = 15, _HS.hStyle = "short, and in a boyish cut", _HS.boobs = 300, _HS.butt = 1, _HS.vagina = -1, _HS.preg = -2, _HS.dick = 2, _HS.prostate = 1, _HS.balls = 1, _HS.anusTat = "bleached", _HS.skill.oral = 15, _HS.skill.combat = 1, _HS.intelligence = 30, _HS.attrXX = 40, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.custom.tattoo = "$He has a raised circuitry pattern on the nape of $his neck.", _HS.sexualFlaw = "shamefast", _HS.career = "a businessman">> <<set $heroSlaves.push(_HS)>> /*business skill*/ /*likes mods - gave internal testicles as such PM*/ <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Martin", _HS.birthName = "Martin", _HS.genes = "XY", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 19, _HS.physicalAge = 19, _HS.visualAge = 19, _HS.ovaryAge = 19, _HS.health = 20, _HS.devotion = -55, _HS.muscles = 20, _HS.height = 190, _HS.origEye = "bright blue", _HS.origHColor = "white", _HS.pubicHColor = "white", _HS.origSkin = "extremely pale", _HS.hLength = 15, _HS.hStyle = "short and in a boyish cut", _HS.waist = -55, _HS.boobs = 100, _HS.butt = 4, _HS.face = 55, _HS.vagina = -1, _HS.preg = -2, _HS.dick = 3, _HS.prostate = 1, _HS.balls = 3, _HS.scrotum = 3, _HS.anusTat = "bleached", _HS.skill.combat = 1, _HS.intelligence = 30, _HS.intelligenceImplant = 30, _HS.attrXX = 40, _HS.attrXY = 40, _HS.fetish = "submissive", _HS.behavioralFlaw = "arrogant", _HS.custom.desc = "An iron-willed, recently captured figure of a prominent anti-Free City guerrilla party, $he still clings strongly to traditional beliefs on Man's natural good, economic restriction, and monogamy. Excitable, girly, and sweet in comparison to $his natural sister, Elisa, $he has a lovely singing voice. $He prays quite often, if allowed to.", _HS.mother = -9997, _HS.father = -9996, _HS.sexualFlaw = "hates penetration">> +<<set _HS.slaveName = "Martin", _HS.birthName = "Martin", _HS.genes = "XY", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 19, _HS.physicalAge = 19, _HS.visualAge = 19, _HS.ovaryAge = 19, _HS.health = 20, _HS.devotion = -55, _HS.muscles = 20, _HS.height = 190, _HS.eye.origColor = "bright blue", _HS.origHColor = "white", _HS.pubicHColor = "white", _HS.origSkin = "extremely pale", _HS.hLength = 15, _HS.hStyle = "short and in a boyish cut", _HS.waist = -55, _HS.boobs = 100, _HS.butt = 4, _HS.face = 55, _HS.vagina = -1, _HS.preg = -2, _HS.dick = 3, _HS.prostate = 1, _HS.balls = 3, _HS.scrotum = 3, _HS.anusTat = "bleached", _HS.skill.combat = 1, _HS.intelligence = 30, _HS.intelligenceImplant = 30, _HS.attrXX = 40, _HS.attrXY = 40, _HS.fetish = "submissive", _HS.behavioralFlaw = "arrogant", _HS.custom.desc = "An iron-willed, recently captured figure of a prominent anti-Free City guerrilla party, $he still clings strongly to traditional beliefs on Man's natural good, economic restriction, and monogamy. Excitable, girly, and sweet in comparison to $his natural sister, Elisa, $he has a lovely singing voice. $He prays quite often, if allowed to.", _HS.mother = -9997, _HS.father = -9996, _HS.sexualFlaw = "hates penetration">> <<set $heroSlaves.push(_HS)>> /*also hates pen*/ /*elisa's sibling*/ @@ -108,7 +108,7 @@ /*wide dick*/ <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Selene", _HS.birthName = "Selene", _HS.genes = "XY", _HS.origin = "Once $he was an arcology security officer, lured to aphrodisiacs addiction and feminized by $his boss (and former wife), to whom $he was sold as a slave to satisfy her spousal maintenance after divorce.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 32, _HS.physicalAge = 32, _HS.visualAge = 32, _HS.ovaryAge = 32, _HS.health = 20, _HS.devotion = 40, _HS.muscles = 20, _HS.height = 175, _HS.race = "latina", _HS.origEye = "ice blue", _HS.origHColor = "ashen with black streaks", _HS.pubicHColor = "ashen", _HS.origSkin = "brown", _HS.hLength = 30, _HS.hStyle = "shoulder length", _HS.waist = -55, _HS.boobs = 1400, _HS.butt = 1, _HS.face = 55, _HS.lips = 35, _HS.vagina = -1, _HS.preg = -2, _HS.dick = 5, _HS.anus = 2, _HS.dickPiercing = 1, _HS.prostate = 1, _HS.balls = 2, _HS.scrotum = 2, _HS.anusTat = "bleached", _HS.earPiercing = 1, _HS.navelPiercing = 1, _HS.skill.anal = 100, _HS.skill.combat = 1, _HS.addict = 50, _HS.intelligence = 20, _HS.intelligenceImplant = 30, _HS.attrXX = 40, _HS.attrXY = 40, _HS.fetish = "buttslut", _HS.fetishKnown = 1, _HS.behavioralFlaw = "odd", _HS.custom.desc = "$He has a large police badge made of polished silver pinned right to the skin with several barbell piercings just above $his left nipple. $He wears two pairs of handcuffs as bracelets (one pair on each wrist); the handcuff keyholes are welded, so they cannot be unlocked and removed in any normal way.", _HS.career = "a security guard">> +<<set _HS.slaveName = "Selene", _HS.birthName = "Selene", _HS.genes = "XY", _HS.origin = "Once $he was an arcology security officer, lured to aphrodisiacs addiction and feminized by $his boss (and former wife), to whom $he was sold as a slave to satisfy her spousal maintenance after divorce.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 32, _HS.physicalAge = 32, _HS.visualAge = 32, _HS.ovaryAge = 32, _HS.health = 20, _HS.devotion = 40, _HS.muscles = 20, _HS.height = 175, _HS.race = "latina", _HS.eye.origColor = "ice blue", _HS.origHColor = "ashen with black streaks", _HS.pubicHColor = "ashen", _HS.origSkin = "brown", _HS.hLength = 30, _HS.hStyle = "shoulder length", _HS.waist = -55, _HS.boobs = 1400, _HS.butt = 1, _HS.face = 55, _HS.lips = 35, _HS.vagina = -1, _HS.preg = -2, _HS.dick = 5, _HS.anus = 2, _HS.dickPiercing = 1, _HS.prostate = 1, _HS.balls = 2, _HS.scrotum = 2, _HS.anusTat = "bleached", _HS.earPiercing = 1, _HS.navelPiercing = 1, _HS.skill.anal = 100, _HS.skill.combat = 1, _HS.addict = 50, _HS.intelligence = 20, _HS.intelligenceImplant = 30, _HS.attrXX = 40, _HS.attrXY = 40, _HS.fetish = "buttslut", _HS.fetishKnown = 1, _HS.behavioralFlaw = "odd", _HS.custom.desc = "$He has a large police badge made of polished silver pinned right to the skin with several barbell piercings just above $his left nipple. $He wears two pairs of handcuffs as bracelets (one pair on each wrist); the handcuff keyholes are welded, so they cannot be unlocked and removed in any normal way.", _HS.career = "a security guard">> <<set $heroSlaves.push(_HS)>> <<set _HS = App.Entity.SlaveState.makeSkeleton()>> @@ -116,7 +116,7 @@ <<set $heroSlaves.push(_HS)>> <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Mistress Izzy", _HS.birthName = "Isabella", _HS.genes = "XY", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.health = 70, _HS.devotion = 100, _HS.origEye = "black", _HS.origHColor = "sparkling and shiny golden red", _HS.pubicHColor = "blonde", _HS.override_Skin = 1, _HS.origSkin = "sun tanned", _HS.hLength = 60, _HS.hStyle = "in thick long heavy braids", _HS.waist = -100, _HS.boobs = 9200, _HS.boobsImplant = 6000, _HS.nipplesPiercing = 2, _HS.boobsTat = "bovine patterns", _HS.lactation = 2, _HS.lactationDuration = 2, _HS.counter.milk = 3010, _HS.butt = 8, _HS.buttImplant = 1, _HS.buttTat = "bovine patterns", _HS.face = 55, _HS.faceImplant = 65, _HS.lips = 55, _HS.lipsImplant = 2, _HS.lipsPiercing = 2, _HS.lipsTat = "bovine patterns", _HS.tonguePiercing = 2, _HS.vagina = 2, _HS.vaginaPiercing = 2, _HS.vaginaTat = "bovine patterns", _HS.preg = -2, _HS.clitPiercing = 3, _HS.anus = 2, _HS.dick = 5, _HS.prostate = 1, _HS.balls = 3, _HS.scrotum = 2, _HS.anusPiercing = 2, _HS.anusTat = "bovine patterns", _HS.makeup = 2, _HS.nails = 2, _HS.brand["right buttock"] = "SLUT",_HS.earPiercing = 2, _HS.nosePiercing = 2, _HS.eyebrowPiercing = 2, _HS.navelPiercing = 2, _HS.shouldersTat = "bovine patterns", _HS.armsTat = "bovine patterns", _HS.legsTat = "bovine patterns", _HS.stampTat = "bovine patterns", _HS.skill.vaginal = 35, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.skill.whoring = 100, _HS.skill.entertainment = 35, _HS.collar = "leather with cowbell", _HS.shoes = "heels", _HS.intelligence = 20, _HS.energy = 100, _HS.attrXX = 40, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.custom.tattoo = "$He has tattoos of teasing, enticing messages begging others to come taste $his addictive milk.", _HS.custom.desc = "$His musky milky aura drives men and women around $him giggly and dumb with lust.", _HS.horn = "cow horns">> +<<set _HS.slaveName = "Mistress Izzy", _HS.birthName = "Isabella", _HS.genes = "XY", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.health = 70, _HS.devotion = 100, _HS.eye.origColor = "black", _HS.origHColor = "sparkling and shiny golden red", _HS.pubicHColor = "blonde", _HS.override_Skin = 1, _HS.origSkin = "sun tanned", _HS.hLength = 60, _HS.hStyle = "in thick long heavy braids", _HS.waist = -100, _HS.boobs = 9200, _HS.boobsImplant = 6000, _HS.nipplesPiercing = 2, _HS.boobsTat = "bovine patterns", _HS.lactation = 2, _HS.lactationDuration = 2, _HS.counter.milk = 3010, _HS.butt = 8, _HS.buttImplant = 1, _HS.buttTat = "bovine patterns", _HS.face = 55, _HS.faceImplant = 65, _HS.lips = 55, _HS.lipsImplant = 2, _HS.lipsPiercing = 2, _HS.lipsTat = "bovine patterns", _HS.tonguePiercing = 2, _HS.vagina = 2, _HS.vaginaPiercing = 2, _HS.vaginaTat = "bovine patterns", _HS.preg = -2, _HS.clitPiercing = 3, _HS.anus = 2, _HS.dick = 5, _HS.prostate = 1, _HS.balls = 3, _HS.scrotum = 2, _HS.anusPiercing = 2, _HS.anusTat = "bovine patterns", _HS.makeup = 2, _HS.nails = 2, _HS.brand["right buttock"] = "SLUT",_HS.earPiercing = 2, _HS.nosePiercing = 2, _HS.eyebrowPiercing = 2, _HS.navelPiercing = 2, _HS.shouldersTat = "bovine patterns", _HS.armsTat = "bovine patterns", _HS.legsTat = "bovine patterns", _HS.stampTat = "bovine patterns", _HS.skill.vaginal = 35, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.skill.whoring = 100, _HS.skill.entertainment = 35, _HS.collar = "leather with cowbell", _HS.shoes = "heels", _HS.intelligence = 20, _HS.energy = 100, _HS.attrXX = 40, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.custom.tattoo = "$He has tattoos of teasing, enticing messages begging others to come taste $his addictive milk.", _HS.custom.desc = "$His musky milky aura drives men and women around $him giggly and dumb with lust.", _HS.horn = "cow horns">> <<set $heroSlaves.push(_HS)>> /*Dropped desc = $He has two cute horns protruding from $his forehead. A few addicted milkslaves of $his own tag along behind $him. */ @@ -125,11 +125,11 @@ <<set $heroSlaves.push(_HS)>> <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Aisha", _HS.birthName = "Aicha", _HS.genes = "XY", _HS.origin = "$He sold $himself into slavery to escape a life of boredom.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.health = -20, _HS.devotion = 45, _HS.height = 155, _HS.heightImplant = -1, _HS.race = "middle eastern", _HS.override_Eye_Color = 1, _HS.origEye = "blue", _HS.override_H_Color = 1, _HS.override_Brow_H_Color = 1, _HS.override_Arm_H_Color = 1, _HS.override_Pubic_H_Color = 1, _HS.origHColor = "peachy fading into a red ombre at the bottom", _HS.eyebrowHColor = "red", _HS.pubicHColor = "red", _HS.underArmHColor = "red", _HS.origSkin = "light", _HS.hLength = 30, _HS.hStyle = "shoulder-length in a hime cut", _HS.waist = -55, _HS.boobs = 250, _HS.butt = 3.5, _HS.face = 55, _HS.faceImplant = 65, _HS.vagina = -1, _HS.preg = -2, _HS.clitPiercing = 3, _HS.anus = 1, _HS.dick = 5, _HS.dickTat = "flowers", _HS.prostate = 1, _HS.balls = 2, _HS.scrotum = 2, _HS.anusPiercing = 1, _HS.anusTat = "flowers", _HS.brand["back"] = "your initials",_HS.earPiercing = 1, _HS.skill.oral = 15, _HS.skill.anal = 15, _HS.skill.entertainment = 15, _HS.clothes = "a comfortable bodysuit", _HS.collar = "pretty jewelry", _HS.shoes = "heels", _HS.intelligence = -30, _HS.attrXX = 40, _HS.attrXY = 40, _HS.custom.tattoo = "$He has tattooed petals trailing from the nape of $his neck down $his back, ending between $his butt cheeks.", _HS.custom.desc = "$His red pubic hair is waxed into the shape of a heart. $He has bright blue eyeshadow on $his bottom lids.", _HS.pubicHStyle = "waxed">> +<<set _HS.slaveName = "Aisha", _HS.birthName = "Aicha", _HS.genes = "XY", _HS.origin = "$He sold $himself into slavery to escape a life of boredom.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.health = -20, _HS.devotion = 45, _HS.height = 155, _HS.heightImplant = -1, _HS.race = "middle eastern", _HS.override_Eye_Color = 1, _HS.eye.origColor = "blue", _HS.override_H_Color = 1, _HS.override_Brow_H_Color = 1, _HS.override_Arm_H_Color = 1, _HS.override_Pubic_H_Color = 1, _HS.origHColor = "peachy fading into a red ombre at the bottom", _HS.eyebrowHColor = "red", _HS.pubicHColor = "red", _HS.underArmHColor = "red", _HS.origSkin = "light", _HS.hLength = 30, _HS.hStyle = "shoulder-length in a hime cut", _HS.waist = -55, _HS.boobs = 250, _HS.butt = 3.5, _HS.face = 55, _HS.faceImplant = 65, _HS.vagina = -1, _HS.preg = -2, _HS.clitPiercing = 3, _HS.anus = 1, _HS.dick = 5, _HS.dickTat = "flowers", _HS.prostate = 1, _HS.balls = 2, _HS.scrotum = 2, _HS.anusPiercing = 1, _HS.anusTat = "flowers", _HS.brand["back"] = "your initials",_HS.earPiercing = 1, _HS.skill.oral = 15, _HS.skill.anal = 15, _HS.skill.entertainment = 15, _HS.clothes = "a comfortable bodysuit", _HS.collar = "pretty jewelry", _HS.shoes = "heels", _HS.intelligence = -30, _HS.attrXX = 40, _HS.attrXY = 40, _HS.custom.tattoo = "$He has tattooed petals trailing from the nape of $his neck down $his back, ending between $his butt cheeks.", _HS.custom.desc = "$His red pubic hair is waxed into the shape of a heart. $He has bright blue eyeshadow on $his bottom lids.", _HS.pubicHStyle = "waxed">> <<set $heroSlaves.push(_HS)>> <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Laura", _HS.birthName = "Rolan", _HS.genes = "XY", _HS.ID = _i++, _HS.prestige = 1, _HS.prestigeDesc = "$He is a high-ranking spy who was captured while trying to obtain secrets about the defenses of one the Free Cities.", _HS.birthWeek = random(0,51), _HS.health = -10, _HS.devotion = 5, _HS.height = 155, _HS.race = "middle eastern", _HS.override_H_Color = 1, _HS.override_Eye_Color = 1, _HS.origEye = "blue", _HS.origHColor = "white", _HS.pubicHColor = "white", _HS.origSkin = "dark", _HS.hLength = 60, _HS.hStyle = "long and tied in a bun using a pearl chain", _HS.heels = 1, _HS.boobs = 200, _HS.butt = 2, _HS.vagina = -1, _HS.preg = -2, _HS.bellyAccessory = "a corset", _HS.dick = 2, _HS.prostate = 1, _HS.balls = 2, _HS.scrotum = 2, _HS.makeup = 1, _HS.nails = 1, _HS.earPiercing = 1, _HS.navelPiercing = 1, _HS.skill.oral = 15, _HS.collar = "pretty jewelry", _HS.shoes = "heels", _HS.intelligence = 100, _HS.intelligenceImplant = 30, _HS.attrXX = 40, _HS.attrXY = 40, _HS.career = "a spy">> +<<set _HS.slaveName = "Laura", _HS.birthName = "Rolan", _HS.genes = "XY", _HS.ID = _i++, _HS.prestige = 1, _HS.prestigeDesc = "$He is a high-ranking spy who was captured while trying to obtain secrets about the defenses of one the Free Cities.", _HS.birthWeek = random(0,51), _HS.health = -10, _HS.devotion = 5, _HS.height = 155, _HS.race = "middle eastern", _HS.override_H_Color = 1, _HS.override_Eye_Color = 1, _HS.eye.origColor = "blue", _HS.origHColor = "white", _HS.pubicHColor = "white", _HS.origSkin = "dark", _HS.hLength = 60, _HS.hStyle = "long and tied in a bun using a pearl chain", _HS.heels = 1, _HS.boobs = 200, _HS.butt = 2, _HS.vagina = -1, _HS.preg = -2, _HS.bellyAccessory = "a corset", _HS.dick = 2, _HS.prostate = 1, _HS.balls = 2, _HS.scrotum = 2, _HS.makeup = 1, _HS.nails = 1, _HS.earPiercing = 1, _HS.navelPiercing = 1, _HS.skill.oral = 15, _HS.collar = "pretty jewelry", _HS.shoes = "heels", _HS.intelligence = 100, _HS.intelligenceImplant = 30, _HS.attrXX = 40, _HS.attrXY = 40, _HS.career = "a spy">> <<set $heroSlaves.push(_HS)>> <<set _HS = App.Entity.SlaveState.makeSkeleton()>> @@ -137,25 +137,26 @@ <<set $heroSlaves.push(_HS)>> <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Bailey", _HS.birthName = "Bryan", _HS.genes = "XY", _HS.origin = "$He was sold to your predecessor by $his husband to pay off his extreme debt.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 22, _HS.physicalAge = 22, _HS.visualAge = 22, _HS.ovaryAge = 22, _HS.health = 50, _HS.devotion = -50, _HS.nationality = "American", _HS.race = "white", _HS.origEye = "blue", _HS.origHColor = "black", _HS.pubicHColor = "black", _HS.origSkin = "fair", _HS.hLength = 50, _HS.hStyle = "chest-length, styled up in schoolgirl pigtails with bangs", _HS.boobs = 700, _HS.boobsImplant = 400, _HS.butt = 2, _HS.lips = 35, _HS.vagina = -1, _HS.preg = -2, _HS.anus = 1, _HS.dick = 2, _HS.prostate = 1, _HS.balls = 2, _HS.scrotum = 2, _HS.makeup = 1, _HS.nails = 1, _HS.earPiercing = 1, _HS.skill.oral = 15, _HS.clothes = "a slutty maid outfit", _HS.shoes = "heels", _HS.intelligenceImplant = 30, _HS.attrXX = 40, _HS.attrXY = 40, _HS.fetish = "submissive", _HS.fetishKnown = 1>> +<<set _HS.slaveName = "Bailey", _HS.birthName = "Bryan", _HS.genes = "XY", _HS.origin = "$He was sold to your predecessor by $his husband to pay off his extreme debt.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 22, _HS.physicalAge = 22, _HS.visualAge = 22, _HS.ovaryAge = 22, _HS.health = 50, _HS.devotion = -50, _HS.nationality = "American", _HS.race = "white", _HS.eye.origColor = "blue", _HS.origHColor = "black", _HS.pubicHColor = "black", _HS.origSkin = "fair", _HS.hLength = 50, _HS.hStyle = "chest-length, styled up in schoolgirl pigtails with bangs", _HS.boobs = 700, _HS.boobsImplant = 400, _HS.butt = 2, _HS.lips = 35, _HS.vagina = -1, _HS.preg = -2, _HS.anus = 1, _HS.dick = 2, _HS.prostate = 1, _HS.balls = 2, _HS.scrotum = 2, _HS.makeup = 1, _HS.nails = 1, _HS.earPiercing = 1, _HS.skill.oral = 15, _HS.clothes = "a slutty maid outfit", _HS.shoes = "heels", _HS.intelligenceImplant = 30, _HS.attrXX = 40, _HS.attrXY = 40, _HS.fetish = "submissive", _HS.fetishKnown = 1>> <<set $heroSlaves.push(_HS)>> <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "'Mistress' Ingrid", _HS.birthName = "Ingrid", _HS.genes = "XY", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 42, _HS.physicalAge = 42, _HS.visualAge = 42, _HS.ovaryAge = 42, _HS.health = 100, _HS.devotion = 100, _HS.muscles = 20, _HS.height = 190, _HS.race = "white", _HS.nationality = "Norwegian", _HS.origEye = "blue", _HS.override_H_Color = 1, _HS.origHColor = "black", _HS.hColor = "onyx black", _HS.origSkin = "pale", _HS.hLength = 90, _HS.hStyle = "ass-length with Nordic braids throughout", _HS.waist = -55, _HS.boobs = 800, _HS.butt = 5, _HS.face = 55, _HS.lips = 35, _HS.preg = -2, _HS.clitPiercing = 3, _HS.dick = 4, _HS.prostate = 1, _HS.balls = 4, _HS.scrotum = 4, _HS.ovaries = 1, _HS.makeup = 2, _HS.nails = 2, _HS.skill.vaginal = 35, _HS.skill.oral = 35, _HS.skill.anal = 15, _HS.skill.whoring = 35, _HS.skill.entertainment = 35, _HS.skill.combat = 1, _HS.clothes = "a slave gown", _HS.collar = "pretty jewelry", _HS.shoes = "boots", _HS.intelligence = 25, _HS.intelligenceImplant = 30, _HS.energy = 100, _HS.attrXX = 40, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.custom.desc = "$He has the style of Gothic royalty, and the demeanor to match.">> +<<set _HS.slaveName = "'Mistress' Ingrid", _HS.birthName = "Ingrid", _HS.genes = "XY", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 42, _HS.physicalAge = 42, _HS.visualAge = 42, _HS.ovaryAge = 42, _HS.health = 100, _HS.devotion = 100, _HS.muscles = 20, _HS.height = 190, _HS.race = "white", _HS.nationality = "Norwegian", _HS.eye.origColor = "blue", _HS.override_H_Color = 1, _HS.origHColor = "black", _HS.hColor = "onyx black", _HS.origSkin = "pale", _HS.hLength = 90, _HS.hStyle = "ass-length with Nordic braids throughout", _HS.waist = -55, _HS.boobs = 800, _HS.butt = 5, _HS.face = 55, _HS.lips = 35, _HS.preg = -2, _HS.clitPiercing = 3, _HS.dick = 4, _HS.prostate = 1, _HS.balls = 4, _HS.scrotum = 4, _HS.ovaries = 1, _HS.makeup = 2, _HS.nails = 2, _HS.skill.vaginal = 35, _HS.skill.oral = 35, _HS.skill.anal = 15, _HS.skill.whoring = 35, _HS.skill.entertainment = 35, _HS.skill.combat = 1, _HS.clothes = "a slave gown", _HS.collar = "pretty jewelry", _HS.shoes = "boots", _HS.intelligence = 25, _HS.intelligenceImplant = 30, _HS.energy = 100, _HS.attrXX = 40, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.custom.desc = "$He has the style of Gothic royalty, and the demeanor to match.">> <<set $heroSlaves.push(_HS)>> <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "'Demon Whore' Yuzuki", _HS.birthName = "Yuri", _HS.genes = "XY", _HS.origin = "$His origins are unknown, but rumor has it that $he is a literal demon.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 19, _HS.physicalAge = 19, _HS.visualAge = 19, _HS.ovaryAge = 19, _HS.health = 60, _HS.devotion = 90.4, _HS.muscles = 20, _HS.height = 190, _HS.nationality = "Japanese", _HS.race = "asian", _HS.origEye = "green", _HS.origHColor = "black", _HS.pubicHColor = "black", _HS.origSkin = "pale", _HS.hStyle = "long", _HS.pubicHStyle = "in a strip", _HS.waist = -100, _HS.boobs = 10000, _HS.boobsImplant = 4800, _HS.areolae = 2, _HS.lactation = 2, _HS.lactationDuration = 2, _HS.butt = 9, _HS.face = 55, _HS.faceImplant = 65, _HS.lips = 35, _HS.vagina = 1, _HS.clitPiercing = 3, _HS.clitSetting = "humiliation", _HS.anus = 1, _HS.dick = 5, _HS.prostate = 1, _HS.balls = 5, _HS.scrotum = 4, _HS.ovaries = 1, _HS.makeup = 2, _HS.nails = 2, _HS.skill.vaginal = 15, _HS.skill.oral = 100, _HS.skill.anal = 15, _HS.skill.whoring = 15, _HS.skill.entertainment = 15, _HS.skill.combat = 1, _HS.clothes = "a string bikini", _HS.collar = "pretty jewelry", _HS.shoes = "boots", _HS.attrXX = 40, _HS.attrXY = 40, _HS.fetish = "humiliation", _HS.fetishKnown = 1, _HS.pupil = "demonic">> +<<set _HS.slaveName = "'Demon Whore' Yuzuki", _HS.birthName = "Yuri", _HS.genes = "XY", _HS.origin = "$His origins are unknown, but rumor has it that $he is a literal demon.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 19, _HS.physicalAge = 19, _HS.visualAge = 19, _HS.ovaryAge = 19, _HS.health = 60, _HS.devotion = 90.4, _HS.muscles = 20, _HS.height = 190, _HS.nationality = "Japanese", _HS.race = "asian", _HS.eye.origColor = "green", _HS.origHColor = "black", _HS.pubicHColor = "black", _HS.origSkin = "pale", _HS.hStyle = "long", _HS.pubicHStyle = "in a strip", _HS.waist = -100, _HS.boobs = 10000, _HS.boobsImplant = 4800, _HS.areolae = 2, _HS.lactation = 2, _HS.lactationDuration = 2, _HS.butt = 9, _HS.face = 55, _HS.faceImplant = 65, _HS.lips = 35, _HS.vagina = 1, _HS.clitPiercing = 3, _HS.clitSetting = "humiliation", _HS.anus = 1, _HS.dick = 5, _HS.prostate = 1, _HS.balls = 5, _HS.scrotum = 4, _HS.ovaries = 1, _HS.makeup = 2, _HS.nails = 2, _HS.skill.vaginal = 15, _HS.skill.oral = 100, _HS.skill.anal = 15, _HS.skill.whoring = 15, _HS.skill.entertainment = 15, _HS.skill.combat = 1, _HS.clothes = "a string bikini", _HS.collar = "pretty jewelry", _HS.shoes = "boots", _HS.attrXX = 40, _HS.attrXY = 40, _HS.fetish = "humiliation", _HS.fetishKnown = 1>> +<<run setEyeColorFull(_HS, "", "demonic", "", "both")>> <<set $heroSlaves.push(_HS)>> <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Fuckmeat", _HS.birthName = "Alva", _HS.genes = "XY", _HS.ID = _i++, _HS.prestige = 1, _HS.prestigeDesc = "$He is a famed Free Cities slut, and can please anyone.", _HS.birthWeek = random(0,51), _HS.actualAge = 19, _HS.physicalAge = 19, _HS.visualAge = 19, _HS.ovaryAge = 19, _HS.health = 100, _HS.devotion = 100, _HS.muscles = 20, _HS.height = 145, _HS.race = "white", _HS.nationality = "Swedish", _HS.origEye = "blue", _HS.origHColor = "blonde", _HS.pubicHColor = "blonde", _HS.origSkin = "pale", _HS.hLength = 0, _HS.hStyle = "shaved bald", _HS.pubicHStyle = "bushy", _HS.boobs = 1700, _HS.boobsTat = "rude words", _HS.butt = 8, _HS.buttTat = "rude words", _HS.face = 55, _HS.lips = 35, _HS.vagina = -1, _HS.vaginaTat = "rude words", _HS.preg = -2, _HS.anus = 3, _HS.dick = 2, _HS.dickTat = "rude words", _HS.prostate = 1, _HS.balls = 1, _HS.scrotum = 2, _HS.anusTat = "rude words", _HS.makeup = 3, _HS.nails = 3, _HS.brand["cheek"] = "a penis symbol",_HS.shouldersTat = "rude words", _HS.armsTat = "rude words", _HS.legsTat = "rude words", _HS.stampTat = "rude words", _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.skill.whoring = 100, _HS.skill.entertainment = 100, _HS.skill.combat = 1, _HS.diet = "muscle building", _HS.clothes = "harem gauze", _HS.collar = "heavy gold", _HS.shoes = "boots", _HS.energy = 100, _HS.attrXX = 40, _HS.attrXY = 40, _HS.fetishStrength = 0, _HS.fetishKnown = 1, _HS.custom.tattoo = "$He has a swastika tattooed on $his ballsack.">> +<<set _HS.slaveName = "Fuckmeat", _HS.birthName = "Alva", _HS.genes = "XY", _HS.ID = _i++, _HS.prestige = 1, _HS.prestigeDesc = "$He is a famed Free Cities slut, and can please anyone.", _HS.birthWeek = random(0,51), _HS.actualAge = 19, _HS.physicalAge = 19, _HS.visualAge = 19, _HS.ovaryAge = 19, _HS.health = 100, _HS.devotion = 100, _HS.muscles = 20, _HS.height = 145, _HS.race = "white", _HS.nationality = "Swedish", _HS.eye.origColor = "blue", _HS.origHColor = "blonde", _HS.pubicHColor = "blonde", _HS.origSkin = "pale", _HS.hLength = 0, _HS.hStyle = "shaved bald", _HS.pubicHStyle = "bushy", _HS.boobs = 1700, _HS.boobsTat = "rude words", _HS.butt = 8, _HS.buttTat = "rude words", _HS.face = 55, _HS.lips = 35, _HS.vagina = -1, _HS.vaginaTat = "rude words", _HS.preg = -2, _HS.anus = 3, _HS.dick = 2, _HS.dickTat = "rude words", _HS.prostate = 1, _HS.balls = 1, _HS.scrotum = 2, _HS.anusTat = "rude words", _HS.makeup = 3, _HS.nails = 3, _HS.brand["cheek"] = "a penis symbol",_HS.shouldersTat = "rude words", _HS.armsTat = "rude words", _HS.legsTat = "rude words", _HS.stampTat = "rude words", _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.skill.whoring = 100, _HS.skill.entertainment = 100, _HS.skill.combat = 1, _HS.diet = "muscle building", _HS.clothes = "harem gauze", _HS.collar = "heavy gold", _HS.shoes = "boots", _HS.energy = 100, _HS.attrXX = 40, _HS.attrXY = 40, _HS.fetishStrength = 0, _HS.fetishKnown = 1, _HS.custom.tattoo = "$He has a swastika tattooed on $his ballsack.">> <<set $heroSlaves.push(_HS)>> <<if $seeExtreme == 1>> <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Fjola", _HS.birthName = "Fjola", _HS.genes = "XY", _HS.origin = "$He was born into a slave ring that practiced heavy hormone manipulation to alter slaves from a very young age.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 21, _HS.physicalAge = 21, _HS.visualAge = 21, _HS.ovaryAge = 21, _HS.health = 20, _HS.devotion = 10, _HS.weight = 20, _HS.height = 160, _HS.origEye = "grey", _HS.origHColor = "black", _HS.pubicHColor = "black", _HS.origSkin = "pale", _HS.hLength = 30, _HS.hStyle = "curly and shoulder length", _HS.boobs = 1000, _HS.butt = 3, _HS.vagina = 1, _HS.preg = -2, _HS.dick = 2, _HS.anus = 1, _HS.skill.oral = 15, _HS.skill.anal = 15, _HS.intelligence = -40, _HS.intelligenceImplant = 30, _HS.attrXX = 40, _HS.attrXY = 40, _HS.fetish = "submissive", _HS.fetishKnown = 1, _HS.custom.desc = "$He has a small scar on $his cheek, and many larger ones on $his back.">> +<<set _HS.slaveName = "Fjola", _HS.birthName = "Fjola", _HS.genes = "XY", _HS.origin = "$He was born into a slave ring that practiced heavy hormone manipulation to alter slaves from a very young age.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 21, _HS.physicalAge = 21, _HS.visualAge = 21, _HS.ovaryAge = 21, _HS.health = 20, _HS.devotion = 10, _HS.weight = 20, _HS.height = 160, _HS.eye.origColor = "grey", _HS.origHColor = "black", _HS.pubicHColor = "black", _HS.origSkin = "pale", _HS.hLength = 30, _HS.hStyle = "curly and shoulder length", _HS.boobs = 1000, _HS.butt = 3, _HS.vagina = 1, _HS.preg = -2, _HS.dick = 2, _HS.anus = 1, _HS.skill.oral = 15, _HS.skill.anal = 15, _HS.intelligence = -40, _HS.intelligenceImplant = 30, _HS.attrXX = 40, _HS.attrXY = 40, _HS.fetish = "submissive", _HS.fetishKnown = 1, _HS.custom.desc = "$He has a small scar on $his cheek, and many larger ones on $his back.">> <<set $heroSlaves.push(_HS)>> /*tsundere, grey eyes, unhappy to be herm*/ /*Changed eye color, added customdesc and origin -BoneyM*/ @@ -167,20 +168,20 @@ /*Made a post-op to match the bio as closely as possible in-universe, added origin, added hates penetration. -BoneyM*/ <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Janine", _HS.birthName = "Janine", _HS.genes = "XY", _HS.origin = "$He was enslaved after $he fell into debt to you.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 27, _HS.physicalAge = 27, _HS.visualAge = 27, _HS.ovaryAge = 27, _HS.health = 90, _HS.devotion = 100, _HS.nationality = "German", _HS.origEye = "blue", _HS.origHColor = "golden blonde", _HS.pubicHColor = "blonde", _HS.origSkin = "pale", _HS.hLength = 10, _HS.hStyle = "flowing gently just past $his cheek, framing $his face beautifully", _HS.waist = -55, _HS.boobs = 500, _HS.butt = 3.5, _HS.face = 15, _HS.lips = 35, _HS.vagina = -1, _HS.preg = -2, _HS.dick = 1, _HS.anusTat = "bleached", _HS.skill.oral = 100, _HS.clothes = "a penitent nuns habit", _HS.collar = "tight steel", _HS.shoes = "heels", _HS.attrXX = 40, _HS.attrXY = 40, _HS.fetish = "submissive", _HS.fetishKnown = 1, _HS.custom.desc = "$He has a beauty mark just above $his lip, on an otherwise flawless face.">> +<<set _HS.slaveName = "Janine", _HS.birthName = "Janine", _HS.genes = "XY", _HS.origin = "$He was enslaved after $he fell into debt to you.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 27, _HS.physicalAge = 27, _HS.visualAge = 27, _HS.ovaryAge = 27, _HS.health = 90, _HS.devotion = 100, _HS.nationality = "German", _HS.eye.origColor = "blue", _HS.origHColor = "golden blonde", _HS.pubicHColor = "blonde", _HS.origSkin = "pale", _HS.hLength = 10, _HS.hStyle = "flowing gently just past $his cheek, framing $his face beautifully", _HS.waist = -55, _HS.boobs = 500, _HS.butt = 3.5, _HS.face = 15, _HS.lips = 35, _HS.vagina = -1, _HS.preg = -2, _HS.dick = 1, _HS.anusTat = "bleached", _HS.skill.oral = 100, _HS.clothes = "a penitent nuns habit", _HS.collar = "tight steel", _HS.shoes = "heels", _HS.attrXX = 40, _HS.attrXY = 40, _HS.fetish = "submissive", _HS.fetishKnown = 1, _HS.custom.desc = "$He has a beauty mark just above $his lip, on an otherwise flawless face.">> <<set $heroSlaves.push(_HS)>> <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Buck", _HS.birthName = "Buck", _HS.genes = "XY", _HS.origin = "$He was a soldier before being enslaved.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 23, _HS.physicalAge = 23, _HS.visualAge = 23, _HS.ovaryAge = 23, _HS.health = 90, _HS.devotion = -100, _HS.muscles = 50, _HS.height = 190, _HS.origEye = "blue", _HS.origHColor = "black", _HS.pubicHColor = "black", _HS.override_Skin = 1, _HS.origSkin = "spray tanned", _HS.hLength = 0, _HS.prostate = 1, _HS.hStyle = "shaved", _HS.waist = -55, _HS.boobs = 100, _HS.nipplesPiercing = 1, _HS.butt = 1, _HS.face = 15, _HS.vagina = -1, _HS.preg = -2, _HS.dick = 5, _HS.analArea = 1, _HS.prostate = 1, _HS.balls = 3, _HS.scrotum = 3, _HS.anusTat = "bleached", _HS.earPiercing = 1, _HS.nosePiercing = 1, _HS.navelPiercing = 1, _HS.skill.combat = 1, _HS.intelligence = -40, _HS.intelligenceImplant = 30, _HS.attrXX = 40, _HS.attrXY = 40, _HS.behavioralFlaw = "bitchy", _HS.career = "a soldier">> +<<set _HS.slaveName = "Buck", _HS.birthName = "Buck", _HS.genes = "XY", _HS.origin = "$He was a soldier before being enslaved.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 23, _HS.physicalAge = 23, _HS.visualAge = 23, _HS.ovaryAge = 23, _HS.health = 90, _HS.devotion = -100, _HS.muscles = 50, _HS.height = 190, _HS.eye.origColor = "blue", _HS.origHColor = "black", _HS.pubicHColor = "black", _HS.override_Skin = 1, _HS.origSkin = "spray tanned", _HS.hLength = 0, _HS.prostate = 1, _HS.hStyle = "shaved", _HS.waist = -55, _HS.boobs = 100, _HS.nipplesPiercing = 1, _HS.butt = 1, _HS.face = 15, _HS.vagina = -1, _HS.preg = -2, _HS.dick = 5, _HS.analArea = 1, _HS.prostate = 1, _HS.balls = 3, _HS.scrotum = 3, _HS.anusTat = "bleached", _HS.earPiercing = 1, _HS.nosePiercing = 1, _HS.navelPiercing = 1, _HS.skill.combat = 1, _HS.intelligence = -40, _HS.intelligenceImplant = 30, _HS.attrXX = 40, _HS.attrXY = 40, _HS.behavioralFlaw = "bitchy", _HS.career = "a soldier">> <<set $heroSlaves.push(_HS)>> /*dickskilled*/ <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "'Udders' Erika", _HS.birthName = "Erika", _HS.genes = "XY", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 28, _HS.physicalAge = 28, _HS.visualAge = 28, _HS.ovaryAge = 28, _HS.health = -10, _HS.devotion = 55, _HS.height = 145, _HS.origEye = "blue", _HS.origSkin = "fair", _HS.hStyle = "long", _HS.pubicHStyle = "in a strip", _HS.boobs = 1250, _HS.areolae = 2, _HS.boobsTat = "bovine patterns", _HS.lactation = 2, _HS.lactationDuration = 2, _HS.butt = 2, _HS.buttTat = "bovine patterns", _HS.lips = 55, _HS.lipsImplant = 10, _HS.lipsTat = "bovine patterns", _HS.vagina = -1, _HS.vaginaTat = "bovine patterns", _HS.preg = -3, _HS.clitPiercing = 3, _HS.clitSetting = "boobs", _HS.anus = 2, _HS.dick = 1, _HS.dickTat = "bovine patterns", _HS.prostate = 1, _HS.anusTat = "bovine patterns", _HS.nosePiercing = 2, _HS.shouldersTat = "bovine patterns", _HS.armsTat = "bovine patterns", _HS.legsTat = "bovine patterns", _HS.stampTat = "bovine patterns", _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.skill.entertainment = 35, _HS.collar = "leather with cowbell", _HS.attrXX = 40, _HS.attrXY = 40, _HS.fetish = "boobs", _HS.fetishKnown = 1, _HS.custom.desc = "Though $his vocal cords have been altered to keep $him from speaking, $he is still capable of the occasional moo.">> +<<set _HS.slaveName = "'Udders' Erika", _HS.birthName = "Erika", _HS.genes = "XY", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 28, _HS.physicalAge = 28, _HS.visualAge = 28, _HS.ovaryAge = 28, _HS.health = -10, _HS.devotion = 55, _HS.height = 145, _HS.eye.origColor = "blue", _HS.origSkin = "fair", _HS.hStyle = "long", _HS.pubicHStyle = "in a strip", _HS.boobs = 1250, _HS.areolae = 2, _HS.boobsTat = "bovine patterns", _HS.lactation = 2, _HS.lactationDuration = 2, _HS.butt = 2, _HS.buttTat = "bovine patterns", _HS.lips = 55, _HS.lipsImplant = 10, _HS.lipsTat = "bovine patterns", _HS.vagina = -1, _HS.vaginaTat = "bovine patterns", _HS.preg = -3, _HS.clitPiercing = 3, _HS.clitSetting = "boobs", _HS.anus = 2, _HS.dick = 1, _HS.dickTat = "bovine patterns", _HS.prostate = 1, _HS.anusTat = "bovine patterns", _HS.nosePiercing = 2, _HS.shouldersTat = "bovine patterns", _HS.armsTat = "bovine patterns", _HS.legsTat = "bovine patterns", _HS.stampTat = "bovine patterns", _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.skill.entertainment = 35, _HS.collar = "leather with cowbell", _HS.attrXX = 40, _HS.attrXY = 40, _HS.fetish = "boobs", _HS.fetishKnown = 1, _HS.custom.desc = "Though $his vocal cords have been altered to keep $him from speaking, $he is still capable of the occasional moo.">> <<set $heroSlaves.push(_HS)>> <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Danny 'The D'", _HS.slaveSurname = "Ildoe", _HS.birthName = "Danny 'The D'", _HS.birthSurname = "Ildoe", _HS.origin = "Born without limbs and abandoned by $his parents, $he was taken in by a posh family, given a massive cock, and trained to be the wealthy lady's perfect living sex toy.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 28, _HS.visualAge = 28, _HS.physicalAge = 28, _HS.ovaryAge = 28, _HS.health = 100, _HS.devotion = 100, _HS.muscles = 50, _HS.height = 94, _HS.origEye = "blue", _HS.origHColor = "black", _HS.pubicHColor = "black", _HS.override_Skin = 1, _HS.origSkin = "spray tanned", _HS.hLength = 10, _HS.hStyle = "short", _HS.waist = 55, _HS.boobs = 50, _HS.hips = -1, _HS.butt = 0, _HS.face = 45, _HS.vagina = -1, _HS.preg = 0, _HS.dick = 6, _HS.balls = 10, _HS.scrotum = 7, _HS.prostate = 2, _HS.anusTat = "bleached", _HS.energy = 95, _HS.intelligenceImplant = 30, _HS.attrXX = 100, _HS.attrXY = 0, _HS.skill.oral = 95, _HS.fetish = "submissive", _HS.fetishKnown = 1, _HS.behavioralQuirk = "advocate">> +<<set _HS.slaveName = "Danny 'The D'", _HS.slaveSurname = "Ildoe", _HS.birthName = "Danny 'The D'", _HS.birthSurname = "Ildoe", _HS.origin = "Born without limbs and abandoned by $his parents, $he was taken in by a posh family, given a massive cock, and trained to be the wealthy lady's perfect living sex toy.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 28, _HS.visualAge = 28, _HS.physicalAge = 28, _HS.ovaryAge = 28, _HS.health = 100, _HS.devotion = 100, _HS.muscles = 50, _HS.height = 94, _HS.eye.origColor = "blue", _HS.origHColor = "black", _HS.pubicHColor = "black", _HS.override_Skin = 1, _HS.origSkin = "spray tanned", _HS.hLength = 10, _HS.hStyle = "short", _HS.waist = 55, _HS.boobs = 50, _HS.hips = -1, _HS.butt = 0, _HS.face = 45, _HS.vagina = -1, _HS.preg = 0, _HS.dick = 6, _HS.balls = 10, _HS.scrotum = 7, _HS.prostate = 2, _HS.anusTat = "bleached", _HS.energy = 95, _HS.intelligenceImplant = 30, _HS.attrXX = 100, _HS.attrXY = 0, _HS.skill.oral = 95, _HS.fetish = "submissive", _HS.fetishKnown = 1, _HS.behavioralQuirk = "advocate">> <<run App.Utils.removeHeroLimbs(_HS, "all")>> <<set $heroSlaves.push(_HS)>> /* needed an amputated slave for debug reasons -prndev */ diff --git a/src/npc/databases/dfSlavesDatabase.tw b/src/npc/databases/dfSlavesDatabase.tw index 4dd5f79e2db8cbecd5c2337c93f67890abe7f156..041dd3614a4743b08493f9b60a75c6086eafefd2 100644 --- a/src/npc/databases/dfSlavesDatabase.tw +++ b/src/npc/databases/dfSlavesDatabase.tw @@ -2,22 +2,22 @@ <<set _i = 700000>> <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Cherry", _HS.birthName = "Cherry", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.health = 20, _HS.devotion = 75, _HS.actualAge = 18, _HS.physicalAge = 18, _HS.visualAge = 18, _HS.ovaryAge = 18, _HS.origEye = "light brown", _HS.pubicHColor = "black", _HS.origSkin = "white", _HS.origHColor = "black", _HS.hStyle = "long", _HS.pubicHStyle = "waxed", _HS.boobs = 500, _HS.nipplesPiercing = 1, _HS.butt = 3, _HS.lips = 35, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.vaginaPiercing = 2, _HS.preg = -2, _HS.ovaries = 1, _HS.skill.vaginal = 35, _HS.attrXY = 40, _HS.fetish = "submissive", _HS.fetishKnown = 1, _HS.lipsTat = "Two cherries are tattooed on $his left cheek.", _HS.buttTat = "Two cherries are tattooed on $his right butt cheek.", _HS.clitPiercing = 2, _HS.counter.birthsTotal = 1>> +<<set _HS.slaveName = "Cherry", _HS.birthName = "Cherry", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.health = 20, _HS.devotion = 75, _HS.actualAge = 18, _HS.physicalAge = 18, _HS.visualAge = 18, _HS.ovaryAge = 18, _HS.eye.origColor = "light brown", _HS.pubicHColor = "black", _HS.origSkin = "white", _HS.origHColor = "black", _HS.hStyle = "long", _HS.pubicHStyle = "waxed", _HS.boobs = 500, _HS.nipplesPiercing = 1, _HS.butt = 3, _HS.lips = 35, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.vaginaPiercing = 2, _HS.preg = -2, _HS.ovaries = 1, _HS.skill.vaginal = 35, _HS.attrXY = 40, _HS.fetish = "submissive", _HS.fetishKnown = 1, _HS.lipsTat = "Two cherries are tattooed on $his left cheek.", _HS.buttTat = "Two cherries are tattooed on $his right butt cheek.", _HS.clitPiercing = 2, _HS.counter.birthsTotal = 1>> /*vag implant, vibe nips*/ <<set $heroSlaves.push(_HS)>> <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Strawberry", _HS.birthName = "Strawberry", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 30, _HS.physicalAge = 30, _HS.visualAge = 30, _HS.ovaryAge = 30, _HS.health = 20, _HS.devotion = 40, _HS.height = 175, _HS.origEye = "dark brown", _HS.origHColor = "blonde", _HS.pubicHColor = "blonde", _HS.override_Skin = 1, _HS.origSkin = "sun tanned", _HS.hStyle = "long", _HS.pubicHStyle = "waxed", _HS.waist = -55, _HS.boobs = 1000, _HS.boobsImplant = 400, _HS.nipplesPiercing = 1, _HS.butt = 5, _HS.buttImplant = 2, _HS.lips = 35, _HS.lipsImplant = 10, _HS.vagina = 2, _HS.vaginaLube = 1, _HS.vaginaPiercing = 2, _HS.preg = -2, _HS.anus = 2, _HS.ovaries = 1, _HS.skill.vaginal = 35, _HS.skill.oral = 35, _HS.skill.anal = 35, _HS.attrXY = 40, _HS.fetish = "humiliation", _HS.fetishKnown = 1, _HS.lipsTat = "Strawberries are tattooed on $his left cheek.", _HS.buttTat = "Strawberries are tattooed on $his right buttock.", _HS.clitPiercing = 2, _HS.counter.birthsTotal = 2>> +<<set _HS.slaveName = "Strawberry", _HS.birthName = "Strawberry", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 30, _HS.physicalAge = 30, _HS.visualAge = 30, _HS.ovaryAge = 30, _HS.health = 20, _HS.devotion = 40, _HS.height = 175, _HS.eye.origColor = "dark brown", _HS.origHColor = "blonde", _HS.pubicHColor = "blonde", _HS.override_Skin = 1, _HS.origSkin = "sun tanned", _HS.hStyle = "long", _HS.pubicHStyle = "waxed", _HS.waist = -55, _HS.boobs = 1000, _HS.boobsImplant = 400, _HS.nipplesPiercing = 1, _HS.butt = 5, _HS.buttImplant = 2, _HS.lips = 35, _HS.lipsImplant = 10, _HS.vagina = 2, _HS.vaginaLube = 1, _HS.vaginaPiercing = 2, _HS.preg = -2, _HS.anus = 2, _HS.ovaries = 1, _HS.skill.vaginal = 35, _HS.skill.oral = 35, _HS.skill.anal = 35, _HS.attrXY = 40, _HS.fetish = "humiliation", _HS.fetishKnown = 1, _HS.lipsTat = "Strawberries are tattooed on $his left cheek.", _HS.buttTat = "Strawberries are tattooed on $his right buttock.", _HS.clitPiercing = 2, _HS.counter.birthsTotal = 2>> /*vibe nips, muscles*/ <<set $heroSlaves.push(_HS)>> <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Melon", _HS.birthName = "Melon", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 23, _HS.physicalAge = 23, _HS.visualAge = 23, _HS.ovaryAge = 23, _HS.health = 20, _HS.devotion = 50, _HS.height = 175, _HS.origEye = "blue", _HS.origHColor = "red", _HS.pubicHColor = "red", _HS.override_Skin = 1, _HS.origSkin = "sun tanned", _HS.hLength = 10, _HS.hStyle = "short", _HS.pubicHStyle = "waxed", _HS.boobs = 1800, _HS.boobsImplant = 800, _HS.nipplesPiercing = 1, _HS.butt = 4, _HS.lips = 35, _HS.lipsImplant = 10, _HS.vagina = 2, _HS.vaginaLube = 1, _HS.vaginaPiercing = 2, _HS.preg = -2, _HS.anus = 2, _HS.ovaries = 1, _HS.skill.vaginal = 15, _HS.skill.oral = 100, _HS.skill.anal = 15, _HS.attrXY = 40, _HS.fetish = "submissive", _HS.fetishKnown = 1, _HS.lipsTat = "Watermelons are tattooed on $his face.", _HS.buttTat = "Watermelons are tattooed on $his buttocks.", _HS.teeth = "removable", _HS.clitPiercing = 2, _HS.lipsPiercing = 2, _HS.counter.birthsTotal = 1>> +<<set _HS.slaveName = "Melon", _HS.birthName = "Melon", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 23, _HS.physicalAge = 23, _HS.visualAge = 23, _HS.ovaryAge = 23, _HS.health = 20, _HS.devotion = 50, _HS.height = 175, _HS.eye.origColor = "blue", _HS.origHColor = "red", _HS.pubicHColor = "red", _HS.override_Skin = 1, _HS.origSkin = "sun tanned", _HS.hLength = 10, _HS.hStyle = "short", _HS.pubicHStyle = "waxed", _HS.boobs = 1800, _HS.boobsImplant = 800, _HS.nipplesPiercing = 1, _HS.butt = 4, _HS.lips = 35, _HS.lipsImplant = 10, _HS.vagina = 2, _HS.vaginaLube = 1, _HS.vaginaPiercing = 2, _HS.preg = -2, _HS.anus = 2, _HS.ovaries = 1, _HS.skill.vaginal = 15, _HS.skill.oral = 100, _HS.skill.anal = 15, _HS.attrXY = 40, _HS.fetish = "submissive", _HS.fetishKnown = 1, _HS.lipsTat = "Watermelons are tattooed on $his face.", _HS.buttTat = "Watermelons are tattooed on $his buttocks.", _HS.teeth = "removable", _HS.clitPiercing = 2, _HS.lipsPiercing = 2, _HS.counter.birthsTotal = 1>> /*vibe nips, saliva implant*/ <<set $heroSlaves.push(_HS)>> <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Carambola", _HS.birthName = "Carambola", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 25, _HS.physicalAge = 25, _HS.visualAge = 25, _HS.ovaryAge = 25, _HS.health = 20, _HS.devotion = 90, _HS.height = 175, _HS.origEye = "light green", _HS.origHColor = "dark blonde", _HS.pubicHColor = "dark blonde", _HS.override_Skin = 1, _HS.origSkin = "sun tanned", _HS.hLength = 60, _HS.hStyle = "curly and long, and in pigtails", _HS.pubicHStyle = "waxed", _HS.boobs = 650, _HS.nipplesPiercing = 1, _HS.butt = 8, _HS.buttImplant = 4, _HS.lips = 35, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.vaginaPiercing = 2, _HS.preg = -2, _HS.anus = 3, _HS.ovaries = 1, _HS.skill.vaginal = 15, _HS.skill.oral = 15, _HS.skill.anal = 100, _HS.attrXY = 40, _HS.fetish = "buttslut", _HS.fetishKnown = 1, _HS.lipsTat = "Carambolas — starfruits — are tattooed on $his face.", _HS.buttTat = "Carambolas — starfruits — are tattooed on $his buttocks.", _HS.clitPiercing = 2, _HS.tonguePiercing = 1, _HS.clothes = "no clothing", _HS.collar = "bell collar", _HS.heels = 1>> +<<set _HS.slaveName = "Carambola", _HS.birthName = "Carambola", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 25, _HS.physicalAge = 25, _HS.visualAge = 25, _HS.ovaryAge = 25, _HS.health = 20, _HS.devotion = 90, _HS.height = 175, _HS.eye.origColor = "light green", _HS.origHColor = "dark blonde", _HS.pubicHColor = "dark blonde", _HS.override_Skin = 1, _HS.origSkin = "sun tanned", _HS.hLength = 60, _HS.hStyle = "curly and long, and in pigtails", _HS.pubicHStyle = "waxed", _HS.boobs = 650, _HS.nipplesPiercing = 1, _HS.butt = 8, _HS.buttImplant = 4, _HS.lips = 35, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.vaginaPiercing = 2, _HS.preg = -2, _HS.anus = 3, _HS.ovaries = 1, _HS.skill.vaginal = 15, _HS.skill.oral = 15, _HS.skill.anal = 100, _HS.attrXY = 40, _HS.fetish = "buttslut", _HS.fetishKnown = 1, _HS.lipsTat = "Carambolas — starfruits — are tattooed on $his face.", _HS.buttTat = "Carambolas — starfruits — are tattooed on $his buttocks.", _HS.clitPiercing = 2, _HS.tonguePiercing = 1, _HS.clothes = "no clothing", _HS.collar = "bell collar", _HS.heels = 1>> /*vibe nips, saliva implant lube*/ <<set $heroSlaves.push(_HS)>> @@ -27,23 +27,23 @@ <<set $heroSlaves.push(_HS)>> <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Green Grape", _HS.birthName = "Green Grape", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.health = 20, _HS.devotion = 40, _HS.actualAge = 18, _HS.physicalAge = 18, _HS.visualAge = 18, _HS.ovaryAge = 18, _HS.race = "mixed race", _HS.origEye = "green", _HS.origHColor = "black", _HS.pubicHColor = "black", _HS.origSkin = "pale", _HS.hStyle = "long", _HS.pubicHStyle = "waxed", _HS.boobs = 650, _HS.nipplesPiercing = 1, _HS.butt = 4, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.vaginaPiercing = 2, _HS.preg = -2, _HS.anus = 1, _HS.ovaries = 1, _HS.skill.vaginal = 35, _HS.skill.oral = 35, _HS.skill.anal = 35, _HS.attrXX = 80, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.lipsTat = "Green grapes are tattooed on $his face.", _HS.buttTat = "Green grapes are tattooed on $his buttocks.", _HS.mother = -9995, _HS.father = -9994, _HS.clitPiercing = 2, _HS.intelligence = -60>> +<<set _HS.slaveName = "Green Grape", _HS.birthName = "Green Grape", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.health = 20, _HS.devotion = 40, _HS.actualAge = 18, _HS.physicalAge = 18, _HS.visualAge = 18, _HS.ovaryAge = 18, _HS.race = "mixed race", _HS.eye.origColor = "green", _HS.origHColor = "black", _HS.pubicHColor = "black", _HS.origSkin = "pale", _HS.hStyle = "long", _HS.pubicHStyle = "waxed", _HS.boobs = 650, _HS.nipplesPiercing = 1, _HS.butt = 4, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.vaginaPiercing = 2, _HS.preg = -2, _HS.anus = 1, _HS.ovaries = 1, _HS.skill.vaginal = 35, _HS.skill.oral = 35, _HS.skill.anal = 35, _HS.attrXX = 80, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.lipsTat = "Green grapes are tattooed on $his face.", _HS.buttTat = "Green grapes are tattooed on $his buttocks.", _HS.mother = -9995, _HS.father = -9994, _HS.clitPiercing = 2, _HS.intelligence = -60>> /*vibe nips, implant link to sister*/ <<set $heroSlaves.push(_HS)>> <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Purple Grape", _HS.birthName = "Purple Grape", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 23, _HS.physicalAge = 23, _HS.visualAge = 23, _HS.ovaryAge = 23, _HS.health = 20, _HS.devotion = 40, _HS.race = "mixed race", _HS.origEye = "black", _HS.origHColor = "black", _HS.pubicHColor = "black", _HS.origSkin = "brown", _HS.hLength = 60, _HS.hStyle = "long", _HS.pubicHStyle = "waxed", _HS.boobs = 650, _HS.nipplesPiercing = 1, _HS.butt = 4, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.vaginaPiercing = 2, _HS.preg = -2, _HS.anus = 1, _HS.ovaries = 1, _HS.skill.vaginal = 35, _HS.skill.oral = 35, _HS.skill.anal = 35, _HS.attrXX = 80, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.lipsTat = "Purple grapes are tattooed on $his face.", _HS.buttTat = "Purple grapes are tattooed on $his buttocks.", _HS.mother = -9995, _HS.father = -9994, _HS.clitPiercing = 2, _HS.intelligence = -60>> +<<set _HS.slaveName = "Purple Grape", _HS.birthName = "Purple Grape", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 23, _HS.physicalAge = 23, _HS.visualAge = 23, _HS.ovaryAge = 23, _HS.health = 20, _HS.devotion = 40, _HS.race = "mixed race", _HS.eye.origColor = "black", _HS.origHColor = "black", _HS.pubicHColor = "black", _HS.origSkin = "brown", _HS.hLength = 60, _HS.hStyle = "long", _HS.pubicHStyle = "waxed", _HS.boobs = 650, _HS.nipplesPiercing = 1, _HS.butt = 4, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.vaginaPiercing = 2, _HS.preg = -2, _HS.anus = 1, _HS.ovaries = 1, _HS.skill.vaginal = 35, _HS.skill.oral = 35, _HS.skill.anal = 35, _HS.attrXX = 80, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.lipsTat = "Purple grapes are tattooed on $his face.", _HS.buttTat = "Purple grapes are tattooed on $his buttocks.", _HS.mother = -9995, _HS.father = -9994, _HS.clitPiercing = 2, _HS.intelligence = -60>> /*vibe nips, implant link to sister <<set $heroSlaves.push(_HS)>> <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Apple", _HS.birthName = "Apple", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 28, _HS.physicalAge = 28, _HS.visualAge = 28, _HS.ovaryAge = 28, _HS.health = 20, _HS.devotion = 75, _HS.muscles = 20, _HS.origEye = "dark brown", _HS.pubicHColor = "black", _HS.origSkin = "pale", _HS.origHColor = "black", _HS.hStyle = "long", _HS.pubicHStyle = "waxed", _HS.boobs = 500, _HS.nipplesPiercing = 1, _HS.butt = 3, _HS.lips = 55, _HS.lipsTat = "permanent makeup", _HS.vagina = 3, _HS.vaginaLube = 1, _HS.vaginaPiercing = 2, _HS.preg = -2, _HS.ovaries = 1, _HS.skill.vaginal = 15, _HS.skill.oral = 35, _HS.vaginalAccessory = "large dildo", _HS.buttplug = "large plug", _HS.attrXY = 40, _HS.fetish = "submissive", _HS.fetishKnown = 1, _HS.lipsTat = "Cored apples are tattooed on $his face.", _HS.buttTat = "Cored apples are tattooed $his on buttocks.", _HS.intelligence = -60, _HS.clitPiercing = 2>> +<<set _HS.slaveName = "Apple", _HS.birthName = "Apple", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 28, _HS.physicalAge = 28, _HS.visualAge = 28, _HS.ovaryAge = 28, _HS.health = 20, _HS.devotion = 75, _HS.muscles = 20, _HS.eye.origColor = "dark brown", _HS.pubicHColor = "black", _HS.origSkin = "pale", _HS.origHColor = "black", _HS.hStyle = "long", _HS.pubicHStyle = "waxed", _HS.boobs = 500, _HS.nipplesPiercing = 1, _HS.butt = 3, _HS.lips = 55, _HS.lipsTat = "permanent makeup", _HS.vagina = 3, _HS.vaginaLube = 1, _HS.vaginaPiercing = 2, _HS.preg = -2, _HS.ovaries = 1, _HS.skill.vaginal = 15, _HS.skill.oral = 35, _HS.vaginalAccessory = "large dildo", _HS.buttplug = "large plug", _HS.attrXY = 40, _HS.fetish = "submissive", _HS.fetishKnown = 1, _HS.lipsTat = "Cored apples are tattooed on $his face.", _HS.buttTat = "Cored apples are tattooed $his on buttocks.", _HS.intelligence = -60, _HS.clitPiercing = 2>> /*vibe nips, stupid, sensitive, no masturb implant*/ <<set $heroSlaves.push(_HS)>> <<if $seeExtreme == 1>> <<set _HS = App.Entity.SlaveState.makeSkeleton()>> - <<set _HS.slaveName = "Plum", _HS.birthName = "Plum", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 28, _HS.physicalAge = 28, _HS.visualAge = 28, _HS.ovaryAge = 28, _HS.health = 20, _HS.devotion = 75, _HS.muscles = 30, _HS.weight = 20, _HS.origEye = "brown", _HS.origHColor = "brown", _HS.origSkin = "pale", _HS.hLength = 20, _HS.hStyle = "short and wavy", _HS.pubicHStyle = "waxed", _HS.boobs = 400, _HS.nipplesPiercing = 1, _HS.butt = 2, _HS.lips = 35, _HS.vagina = 4, _HS.vaginaLube = 1, _HS.vaginaPiercing = 2, _HS.preg = -2, _HS.anus = 2, _HS.ovaries = 1, _HS.skill.vaginal = 15, _HS.skill.oral = 15, _HS.skill.anal = 15, _HS.vaginalAccessory = "large dildo", _HS.buttplug = "large plug", _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.lipsTat = "Cored plums are tattooed on $his face.", _HS.buttTat = "Cored plums are tattooed on $his buttocks.", _HS.custom.desc = "$He has massive C-clamp piercings in $his back that allow $him to act as furniture, and a truly enormous vagina.", _HS.clitPiercing = 2, _HS.corsetPiercing = 1, _HS.sexualFlaw = "self hating", _HS.clothes = "no clothing", _HS.vaginalAccessory = "long, huge dildo">> + <<set _HS.slaveName = "Plum", _HS.birthName = "Plum", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 28, _HS.physicalAge = 28, _HS.visualAge = 28, _HS.ovaryAge = 28, _HS.health = 20, _HS.devotion = 75, _HS.muscles = 30, _HS.weight = 20, _HS.eye.origColor = "brown", _HS.origHColor = "brown", _HS.origSkin = "pale", _HS.hLength = 20, _HS.hStyle = "short and wavy", _HS.pubicHStyle = "waxed", _HS.boobs = 400, _HS.nipplesPiercing = 1, _HS.butt = 2, _HS.lips = 35, _HS.vagina = 4, _HS.vaginaLube = 1, _HS.vaginaPiercing = 2, _HS.preg = -2, _HS.anus = 2, _HS.ovaries = 1, _HS.skill.vaginal = 15, _HS.skill.oral = 15, _HS.skill.anal = 15, _HS.vaginalAccessory = "large dildo", _HS.buttplug = "large plug", _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.lipsTat = "Cored plums are tattooed on $his face.", _HS.buttTat = "Cored plums are tattooed on $his buttocks.", _HS.custom.desc = "$He has massive C-clamp piercings in $his back that allow $him to act as furniture, and a truly enormous vagina.", _HS.clitPiercing = 2, _HS.corsetPiercing = 1, _HS.sexualFlaw = "self hating", _HS.clothes = "no clothing", _HS.vaginalAccessory = "long, huge dildo">> /*vibe nips, can act as furniture*/ <<set $heroSlaves.push(_HS)>> <</if>> diff --git a/src/npc/descriptions/eyes.js b/src/npc/descriptions/eyes.js new file mode 100644 index 0000000000000000000000000000000000000000..564f0f08def476ac990a7962b24faa9252ebcddb --- /dev/null +++ b/src/npc/descriptions/eyes.js @@ -0,0 +1,151 @@ +/** + * returned string fits in a sentence like this: + * She has {return}. + * + * @param {App.Entity.SlaveState} slave + * @returns {string} + */ +App.Desc.eyesType = function(slave) { + let r = ""; + if (hasBothEyes(slave)) { + if (getLeftEyeType(slave) !== getRightEyeType(slave)) { + r = `a ${App.Desc.eyeTypeToString(getRightEyeType(slave))} and a ${App.Desc.eyeTypeToString(getLeftEyeType(slave))} eye`; + } else { + r = `${App.Desc.eyeTypeToString(getRightEyeType(slave))} eyes`; + } + } else if (hasAnyEyes(slave)) { + if (hasRightEye(slave)) { + r = `a ${App.Desc.eyeTypeToString(getRightEyeType(slave))} eye`; + } else if (hasLeftEye(slave)) { + r = `a ${App.Desc.eyeTypeToString(getLeftEyeType(slave))} eye`; + } + } else { + r = "no eyes"; + } + + return r; +}; + +/** + * converts an eye type to a string + * @param {number} type + * @returns {string} + */ +App.Desc.eyeTypeToString = function(type) { + switch (type) { + case 1: + return "natural"; + case 2: + return "glass"; + case 3: + return "artificial"; + default: + return "unknown eye type: " + type; + } +}; + +/** + * Fits in a sentence like this: + * She has {return}. + * + * @param {App.Entity.SlaveState} slave + * @param {string} [adj] + * @param {string} [eye] + * @param {string} [eyes] + * @returns {string} + */ +App.Desc.eyesColor = function(slave, adj = "", eye = "eye", eyes = "eyes") { + let r = ""; + if (hasBothEyes(slave)) { + if (getLeftEyeColor(slave) !== getRightEyeColor(slave)) { + r = `${getRightEyeColor(slave)} and ${getLeftEyeColor(slave)} ${adj} ${eyes}`; + } else { + r = `${getRightEyeColor(slave)} ${adj} ${eyes}`; + } + } else if (hasAnyEyes(slave)) { + if (hasRightEye(slave)) { + r = `a ${getRightEyeColor(slave)} ${adj} ${eye}`; + } else if (hasLeftEye(slave)) { + r = `a ${getLeftEyeColor(slave)} ${adj} ${eye}`; + } + } else { + r = "no eyes"; + } + + return r; +}; + +/** + * Fits in a sentence like this: + * She has {return} eyes. + * Prefer App.Desc.eyesColor if possible as it works reliably with only one eye. + * Example where this is better: {return}-eyed gaze + * + * @param {App.Entity.SlaveState} slave + * @returns {string} Slave's eye color + */ +App.Desc.eyeColor = function(slave) { + "use strict"; + let r; + + if (!hasAnyEyes(slave)) { + r = "empty"; + } else if (hasBothEyes(slave)) { + if (hasVisibleHeterochromia(slave)) { + r = `heterochromatic ${getRightEyeColor(slave)} and ${getLeftEyeColor(slave)}`; + } else { + r = getLeftEyeColor(slave); + } + } else if (hasLeftEye(slave)) { + r = getLeftEyeColor(slave); + } else { + r = getRightEyeColor(slave); + } + return r; +}; + +/** + * returned string fits in a sentence like this: + * She has {return}. + * + * @param {App.Entity.SlaveState} slave + * @returns {string} + */ +App.Desc.eyesVision = function(slave) { + let r = ""; + if (hasBothEyes(slave)) { + if (getLeftEyeVision(slave) !== getRightEyeVision(slave)) { + r = `a ${App.Desc.eyeVisionToString(getRightEyeVision(slave))} and a ${App.Desc.eyeVisionToString(getLeftEyeVision(slave))} eye`; + } else { + r = `${App.Desc.eyeVisionToString(getRightEyeVision(slave))} eyes`; + } + } else if (hasAnyEyes(slave)) { + if (hasRightEye(slave)) { + r = `a ${App.Desc.eyeVisionToString(getRightEyeVision(slave))} eye`; + } else if (hasLeftEye(slave)) { + r = `a ${App.Desc.eyeVisionToString(getLeftEyeVision(slave))} eye`; + } + } else { + r = "no eyes"; + } + + return r; +}; + +/** + * converts an eye vision to a string + * @param {number} type + * @returns {string} + */ +App.Desc.eyeVisionToString = function(type) { + switch (type) { + case 0: + return "blind"; + case 1: + return "nearsighted"; + case 2: + return "normal"; + default: + return "unknown eye vision: " + type; + } +}; diff --git a/src/npc/descriptions/fButt.tw b/src/npc/descriptions/fButt.tw index 255722c9561b634bdbfaf157daf10c183fa2228e..a5014c26c8a5ee6e554cea6dd2e32353e7df5aa5 100644 --- a/src/npc/descriptions/fButt.tw +++ b/src/npc/descriptions/fButt.tw @@ -29,7 +29,7 @@ You call $him over so you can <</if>> <<if ($activeSlave.vaginaPiercing > 1)>> - $His pierced lips and clit have $his nice and wet. + $His pierced lips and clit have $him nice and wet. <<if ($activeSlave.dick !== 0)>> Metal glints all up and down $his cock. <</if>> diff --git a/src/npc/findSlave.tw b/src/npc/findSlave.tw index e61fae8de3c45bc1ef640553f4193ed36566e61f..bbc6da1bf1f9f9fb17c83b50a07a6cd8264456ae 100644 --- a/src/npc/findSlave.tw +++ b/src/npc/findSlave.tw @@ -25,7 +25,7 @@ After spending a minute trying to remember some details about one of your slaves <<link "Locate">> <<script>>$('#slaveList').empty().append(App.FindSlave.searchByExpression(State.temporary.dataSearch));<</script>> <</link>> -<br>//(Enter a conditional expression which evaluates to true for the slave you want to find, such as "slave.physicalAge >= 18 && slave.physicalAge < 21")// <br><br> +<br>//(Enter a conditional expression which evaluates to true for the slave you want to find, such as "slave.physicalAge >= 18 && slave.physicalAge < 21")//<br><br> <span id="slaveList"> /* results list gets populated here by jQuery */ diff --git a/src/npc/slaveStats.tw b/src/npc/slaveStats.tw index 697fa3a58dc13d5122264600a24dddc1d899e598..14cce3d7f2886760418437f9d94171f698026337 100644 --- a/src/npc/slaveStats.tw +++ b/src/npc/slaveStats.tw @@ -202,13 +202,9 @@ Income: <<= num($activeSlave.lastWeeksRepIncome)>> Override: $activeSlave.override_Pubic_H_Color <br><br>Eyes: - <br>Eyes: $activeSlave.eyes, - Color: $activeSlave.eyeColor, - Orig: $activeSlave.origEye, - Override: $activeSlave.override_Eye_Color + <br>Eyes: <<print JSON.stringify($activeSlave.eyes)>> + <br>Override: $activeSlave.override_Eye_Color <br>eyewear: $activeSlave.eyewear - <br>pupil: $activeSlave.pupil - <br>sclerae: $activeSlave.sclerae <br><br>Ears: Hearing: $activeSlave.hears, diff --git a/src/npc/startingGirls/moreCustomOptions.tw b/src/npc/startingGirls/moreCustomOptions.tw index c6fe0e642d37ca5a112303cdb35fc0542eda8600..d4c2c5715ae8b81aa00fc199a9a84f10480754f3 100644 --- a/src/npc/startingGirls/moreCustomOptions.tw +++ b/src/npc/startingGirls/moreCustomOptions.tw @@ -1,7 +1,7 @@ :: More customization options [nobr] <<set $activeSlave.hColor = $activeSlave.origHColor>> -<<set $activeSlave.eyeColor = $activeSlave.origEye>> +<<run resetEyeColor($activeSlave)>> <<set $activeSlave.origRace = $activeSlave.race>> <<set $activeSlave.eyebrowHColor = $activeSlave.hColor>> <<set $activeSlave.pubicHColor = $activeSlave.hColor>> @@ -22,9 +22,15 @@ <br>''Nationality:'' <<textbox "$activeSlave.nationality" $activeSlave.nationality "More customization options">> //This will not alter name or race.// <br>''Ethnicity:'' <<textbox "$activeSlave.race" $activeSlave.race "More customization options">> //This will not apply phenotypes.// <br>''Hair color:'' <<textbox "$activeSlave.origHColor" $activeSlave.origHColor "More customization options">> //This will also set eyebrow, pubic, and underarm hair color.// -<br>''Eye color:'' <<textbox "$activeSlave.origEye" $activeSlave.origEye "More customization options">> -<br>''Pupil shape:'' <<textbox "$activeSlave.pupil" $activeSlave.pupil "More customization options">> -<br>''Sclera color:'' <<textbox "$activeSlave.sclerae" $activeSlave.sclerae "More customization options">> +<br>''Eye color:'' <<textbox "$activeSlave.eye.origColor" $activeSlave.eye.origColor "More customization options">> +<<if def $pupil_temp>> + <<set $activeSlave.eye.left.pupil = $pupil_temp, $activeSlave.eye.right.pupil = $pupil_temp, delete $pupil_temp>> +<</if>> +<br>''Pupil shape:'' <<textbox "$pupil_temp" $activeSlave.eye.left.pupil "More customization options">> +<<if def $sclerae_temp>> + <<set $activeSlave.eye.left.sclera = $sclerae_temp, $activeSlave.eye.right.sclera = $sclerae_temp, delete $sclerae_temp>> +<</if>> +<br>''Sclera color:'' <<textbox "$sclerae_temp" $activeSlave.eye.left.sclera "More customization options">> <br>Custom tattoo: <<textbox "$activeSlave.custom.tattoo" $activeSlave.custom.tattoo "More customization options">> //Use complete, capitalized and punctuated sentences.// <br>Custom origin story: <<textbox "$activeSlave.origin" $activeSlave.origin "More customization options">> //Use complete, capitalized and punctuated sentences.// <br> diff --git a/src/npc/startingGirls/startingGirls.tw b/src/npc/startingGirls/startingGirls.tw index 6afdf4dfb26eb38bc969aea1586b5b014953fbfe..fe0be4eb769be113a222cb03d074d8565519a003 100644 --- a/src/npc/startingGirls/startingGirls.tw +++ b/src/npc/startingGirls/startingGirls.tw @@ -141,7 +141,7 @@ __You are customizing this slave:__ <<StartingGirlsWorkaround>> <</if>> -<<set $activeSlave.eyeColor = $activeSlave.origEye, $activeSlave.hColor = $activeSlave.origHColor, $activeSlave.skin = $activeSlave.origSkin>> +<<set resetEyeColor($activeSlave, "both"), $activeSlave.hColor = $activeSlave.origHColor, $activeSlave.skin = $activeSlave.origSkin>> <<if ($activeSlave.balls == 0)>> <<set $activeSlave.scrotum = 0>> <</if>> @@ -930,17 +930,30 @@ __You are customizing this slave:__ <</if>> <br> <<if $seeExtreme == 1>> - <<options $activeSlave.eyes>> - ''Vision:'' - <<option -2 "Blind">> Blind - <<option -1 "Nearsighted">> Nearsighted - <<optiondefault 0 "Normal">> Normal + ''Vision''<br> + <<options $activeSlave.eye.left.vision>> + ''Left:'' + <<option 0 "Blind">> Blind + <<option 1 "Nearsighted">> Nearsighted + <<optiondefault 2 "Normal">> Normal + <</options>><br> + <<options $activeSlave.eye.right.vision>> + ''Right:'' + <<option 0 "Blind">> Blind + <<option 1 "Nearsighted">> Nearsighted + <<optiondefault 2 "Normal">> Normal <</options>> <<else>> - <<options $activeSlave.eyes>> - ''Vision:'' - <<option -1 "Nearsighted">> Nearsighted - <<optiondefault 0 "Normal">> Normal + ''Vision''<br> + <<options $activeSlave.eye.left.vision>> + ''Left:'' + <<option 1 "Nearsighted">> Nearsighted + <<optiondefault 2 "Normal">> Normal + <</options>><br> + <<options $activeSlave.eye.right.vision>> + ''Right:'' + <<option 1 "Nearsighted">> Nearsighted + <<optiondefault 2 "Normal">> Normal <</options>> <</if>> @@ -1663,7 +1676,7 @@ __You are customizing this slave:__ <<link "Irish Rose">> <<set $archetyped = 1, $activeSlave.nationality = "Irish", $fixedNationality = "Irish">> <<StartingGirlsWorkaround>> - <<set $activeSlave.race = "white", $activeSlave.origEye = "green", $activeSlave.origSkin = "fair", $activeSlave.origHColor = "red", $activeSlave.markings = "heavily freckled">> + <<set $activeSlave.race = "white", $activeSlave.eye.origColor = "green", $activeSlave.origSkin = "fair", $activeSlave.origHColor = "red", $activeSlave.markings = "heavily freckled">> <<goto "Starting Girls">> <</link>> //A beautiful flower from the Emerald Isle// @@ -1671,7 +1684,7 @@ __You are customizing this slave:__ <<link "Cali Girl">> <<set $archetyped = 1, $activeSlave.nationality = "American", $fixedNationality = "American">> <<StartingGirlsWorkaround>> - <<set $activeSlave.origEye = "blue", $activeSlave.skin = "sun tanned", $activeSlave.override_Skin = 1, $activeSlave.origHColor = "blonde", $activeSlave.markings = "none", $activeSlave.face = 95, $activeSlave.muscles = 20, $activeSlave.weight = -20, $activeSlave.height = Math.round(Height.forAge(190, $activeSlave))>> + <<set $activeSlave.eye.origColor = "blue", $activeSlave.skin = "sun tanned", $activeSlave.override_Skin = 1, $activeSlave.origHColor = "blonde", $activeSlave.markings = "none", $activeSlave.face = 95, $activeSlave.muscles = 20, $activeSlave.weight = -20, $activeSlave.height = Math.round(Height.forAge(190, $activeSlave))>> <<goto "Starting Girls">> <</link>> //Tall, taut, and tan// @@ -1700,8 +1713,8 @@ __You are customizing this slave:__ <br> <<link "Onahole">> <<StartingGirlsWorkaround>> - <<set $activeSlave.skill.anal = 0, $activeSlave.skill.oral = 0, $activeSlave.skill.vaginal = 0, $activeSlave.skill.whoring = 0, $activeSlave.skill.entertainment = 0, $activeSlave.skill.combat = 0, $activeSlave.fetish = "mindbroken", $activeSlave.voice = 0, $activeSlave.eyes = 1, $activeSlave.hears = 0>> - <<run removeLimbs($activeSlave, "all")>> + <<set $activeSlave.skill.anal = 0, $activeSlave.skill.oral = 0, $activeSlave.skill.vaginal = 0, $activeSlave.skill.whoring = 0, $activeSlave.skill.entertainment = 0, $activeSlave.skill.combat = 0, $activeSlave.fetish = "mindbroken", $activeSlave.voice = 0, $activeSlave.hears = 0>> + <<run removeLimbs($activeSlave, "all"), eyeSurgery($activeSlave, "both", "normal")>> <<goto "Starting Girls">> <</link>> //A living cocksleeve// diff --git a/src/player/actions/fondleDick.tw b/src/player/actions/fondleDick.tw index ba4af96d43df41fd303bd59c2659b97eced8469a..e52d28cccf7197876475c79935f77f57bcb64663 100644 --- a/src/player/actions/fondleDick.tw +++ b/src/player/actions/fondleDick.tw @@ -24,9 +24,8 @@ You call $him over so you can fondle $his <<else>> hypertrophied dick <</if>> - +and <<if $activeSlave.scrotum > 0>> - and <<if $activeSlave.balls == 0>> soft scrotum. <<elseif $activeSlave.balls == 1>> @@ -43,7 +42,7 @@ You call $him over so you can fondle $his monstrous balls. <</if>> <<else>> - and soft perineum. + soft perineum. <</if>> <<if ($activeSlave.vaginaTat == "tribal patterns")>> diff --git a/src/player/actions/fondleVagina.tw b/src/player/actions/fondleVagina.tw index 20ed93b0e1690b1f4022e84270c36647d0099721..019308082d2cc948c076dadbfdc116759c6b3a22 100644 --- a/src/player/actions/fondleVagina.tw +++ b/src/player/actions/fondleVagina.tw @@ -312,7 +312,7 @@ You call $him over so you can fondle $his <<else>> pretty little clit <</if>> - and rub it with your fingertips as your hand nears it. $He looks into your eyes furtively while<<if hasAnyArms($activeSlave)>> $he grabs your wrist with $his hand and<</if>> $he squeezes $his thighs together as $he moans and shudders in an orgasm. + and rub it with your fingertips as your hand nears it. $He <<if canSee($activeSlave)>>looks into your eyes<<else>>faces you<</if>> furtively while<<if hasAnyArms($activeSlave)>> $he grabs your wrist with $his hand and<</if>> $he squeezes $his thighs together as $he moans and shudders in an orgasm. <</if>> $He dutifully <<if canSee($activeSlave)>>looks at you<<else>>faces<</if>> as you stop moving your hand. <<else>> diff --git a/src/player/electiveSurgery.tw b/src/player/electiveSurgery.tw index 38cd9accdd2d677deb17c3d78c02df39db20bb6e..d7dd3396a2204357eee952e7ed3347fc333449c8 100644 --- a/src/player/electiveSurgery.tw +++ b/src/player/electiveSurgery.tw @@ -59,7 +59,7 @@ You're @@.orange;$PC.actualAge years old.@@ <</if>> <br><br> -"Your skin is beautiful as is, but we can change it if you want," _heU says, pulling a large tanning bed-like cart out of a closet. "@@.yellowgreen;<<print cashFormat(2000)>>.@@ This thing just came out of testing. I assure you it doesn't cause cancer anymore! But still, mind your security systems. We won't be held accountable if you get arrested for trying to enter your penthouse." _HeU looks a little worrisome, "Now, there are some side effects, and we will have to keep you under special care for a few days. It's similar to a severe sunburn, across your entire body, all of it, even down there. Now don't give me that look, we have special ointments to soothe the pain and have a little fun with." _HeU tosses you a wink alongside a hesitant giggle. "Now all your typical skin tones are preprogrammed into it, and with a couple button presses... There! I unlocked the option for custom hues. Now this thing is going to recolor your skin pigment permanently, so you might want to take it seriously. It'll all be on you if I choke with laughter<<if $PC.dick != 0>> sucking on your big polka-dotted cock<<else>> going down on your polka-dotted pussy<</if>>!" +"Your skin is beautiful as is, but we can change it if you want," _heU says, pulling a large tanning bed-like cart out of a closet. "@@.yellowgreen;<<print cashFormat(2000)>>.@@ This thing just came out of testing. I assure you it doesn't cause cancer anymore! But still, mind your security systems. We won't be held accountable if you get arrested for trying to enter your penthouse." _HeU looks a little worrisome, "Now, there are some side effects, and we will have to keep you under special care for a few days. It's similar to a severe sunburn, across your entire body, all of it, even down there. Now don't give me that look, we have special ointments to soothe the pain and have a little fun with." _HeU tosses you a wink alongside a hesitant giggle. "Now all your typical skin tones are preprogrammed into it, and with a couple button presses... There! I unlocked the option for custom hues. Now this thing is going to recolor your skin pigment permanently, so you might want to take it seriously. It'll all be on you if I choke with laughter <<if $PC.dick != 0>>sucking on your big polka-dotted cock<<else>>going down on your polka-dotted pussy<</if>>!" <br> You have @@.orange;$PC.skin skin.@@<<if $PC.skin != $PC.origSkin>> Your original skin tone was $PC.origSkin.<</if>> <br> @@ -362,7 +362,7 @@ You have @@.orange;$PC.skin skin.@@<<if $PC.skin != $PC.origSkin>> Your original <<if $PC.title > 0>> | [[Remove your male half completely|PC Surgery Degradation][$PC.ballsImplant = 0, $PC.balls = 0, $PC.scrotum = 0, $PC.dick = 0, $PC.prostate = 0, $PC.storedCum += 10, $PC.title = 0, generatePlayerPronouns($PC), cashX(forceNeg(25000), "PCmedical"), $surgeryType = "herm2truefemale"]] <<else>> - | [[Remove your female half completely|PC Surgery Degradation][$PC.vagina = -1, $PC.vaginaLube = 0, $PC.ovaries = 0, $PC.preg = 0, WombFlush($PC), $PC.boobs = 100, $PC.boobsBonus = 0, $PC.boobsImplant = 0, $PC.title = 1, generatePlayerPronouns($PC), cashX(forceNeg(25000), "PCmedical"), $surgeryType = "herm2truemale"]] + | [[Remove your female half completely|PC Surgery Degradation][$PC.vagina = -1, $PC.vaginaLube = 0, $PC.ovaries = 0, $PC.preg = 0, WombFlush($PC), $PC.boobs = 100, $PC.boobsImplant = 0, $PC.title = 1, generatePlayerPronouns($PC), cashX(forceNeg(25000), "PCmedical"), $surgeryType = "herm2truemale"]] <</if>> <<elseif $PC.dick != 0>> You have @@.orange;male genitalia@@ and a @@.orange;<<if $PC.title > 0>>masculine<<else>>feminine<</if>> appearance.@@ "We'll store some of your sperm for you, should you decide to lose your maleness, and have it shipped to your arcology. Who you decide to use it on, well... That's up to you!" diff --git a/src/player/pcSurgeryDegradation.tw b/src/player/pcSurgeryDegradation.tw index 4dc627cad3034dc0615f9548977d99be9226e428..48515a7cec732f3750606cb5587e1fdf74cbb0e2 100644 --- a/src/player/pcSurgeryDegradation.tw +++ b/src/player/pcSurgeryDegradation.tw @@ -94,7 +94,7 @@ After a few hours, you awaken in the recovery wing with a sore chest. <<if $PC.belly >= 10000 || $PC.boobs >= 1400>>Struggling to sit<<else>>Sitting<</if>> up, you immediately notice a new weight on your chest. Pulling the covers off yourself, you observe your new, soft C-cup boobs in the mirror-covered wall across from your bed. "So do you like them?", asks the surgeon's assistant, seating _himselfU behind you and wrapping _hisU hands around to your heaving breasts. "With these, you should be able to compete with any girls around you." _HeU begins groping your breasts, feeling the added mass for any oddities. "I know you're still a little sore, but bear with it." _HeU moves on to your nipples and begins teasing them. <<if $PC.lactation > 0>>_HeU lets out a surprised squeak when a gush of milk escapes your breasts and a moan escapes your lips. "<<if $PC.pregKnown == 1>>Should have expected that with the pregnancy and all.<<else>>You did recently have a child didn't you? Or have you just been enjoying your nipples too much?<</if>> Either way, this is a good thing. Your breasts work."<</if>> You can't help but moan under your building arousal as _heU massages and teases your new tits. "Enjoying yourself are we? Let me finish you off." _HeU sneaks a hand down to your <<if $PC.dick != 0>>stiff prick and begins stroking its length, quickly bringing you to orgasm and relieving you of your built up tension.<<else>>stiff clit and begins teasing it as well, quickly bringing you to orgasm and relieving you of your built up tension.<</if>> _HeU states, while licking _hisU fingers, "I always did enjoy the way you taste. Feel free to rest as long as you need before departing. If you need, or want, me, I'll be around." Satisfied, you lie back down to sleep off the rest of the anesthesia before returning to your arcology. <<case "buttReductionImplant">> - After a few hours, you awaken in the recovery wing, face-down in a bed made to accommodate as person with your body type, with a sore ass. You push yourself up and look at the mass under the cover behind you that is your rear, taking note of how much smaller it is now than when you arrived. "So do you like it?", asks the surgeon's assistant, seating _himselfU beside you and bringing _hisU hands to your butt. "Size isn't everything in an ass, shape is important too." _HeU begins groping your bottom, feeling around for any oddities. "I know you're still a little sore, but bear with it. There, everything feels good, now rest up and you'll be set! Feel free to rest as long as you need before departing. If you need, or want, me, I'll be around." Groggy, you lie back down to sleep off the rest of the anesthesia before returning to your arcology. + After a few hours, you awaken in the recovery wing, face-down in a bed made to accommodate a person with your body type, with a sore ass. You push yourself up and look at the mass under the cover behind you that is your rear, taking note of how much smaller it is now than when you arrived. "So do you like it?", asks the surgeon's assistant, seating _himselfU beside you and bringing _hisU hands to your butt. "Size isn't everything in an ass, shape is important too." _HeU begins groping your bottom, feeling around for any oddities. "I know you're still a little sore, but bear with it. There, everything feels good, now rest up and you'll be set! Feel free to rest as long as you need before departing. If you need, or want, me, I'll be around." Groggy, you lie back down to sleep off the rest of the anesthesia before returning to your arcology. <<case "buttShrinkage">> After a few hours, you awaken in the recovery wing, face-down in a bed made to accommodate a person with your body type, with a sore ass. You push yourself up and look at the mass under the cover behind you that is your rear, taking note of how much smaller it is now than when you arrived. "So do you like it?", asks the surgeon's assistant, seating _himselfU beside you and bringing _hisU hands to your butt. "Size isn't everything in an ass, shape is important too, though I think you've got a good balance. We didn't need to do much reshaping." _HeU begins groping your bottom, feeling around for any oddities. "I know you're still a little sore, but bear with it. There, everything feels good, now rest up and you'll be set! Feel free to rest as long as you need before departing. If you need, or want, me, I'll be around." Groggy, you lie back down to sleep off the rest of the anesthesia before returning to your arcology. diff --git a/src/pregmod/breederProposal.tw b/src/pregmod/breederProposal.tw index 74544b71a800f1b362107fa0b8856d517f3b3fa8..99e59b87b982a06988d13c4ba2e92a974cc99449 100644 --- a/src/pregmod/breederProposal.tw +++ b/src/pregmod/breederProposal.tw @@ -46,21 +46,21 @@ Within the hour, you are called before <<if $eugenicsFullControl == 1>>what's le "An interesting proposal, given your lack of equipment, though we would be much more open to listen to your request if you were heavy with one of our children. <span id="result"> <br><<link "Agree to being used as a breeder for the sake of your proposal">> - <<replace "#result">> - "Good choice, _girlP; your proposal is more important than your dignity after all, isn't it? A selection of eligible donors will be provided to you; take your pick and bear our children. Or use a test tube, if that's more to your tastes." - <<set $failedElite -= 50, $playerBred = 1, $propOutcome = 1>> - <<InitStandards>> - <<set $nextButton = "Continue">><<UpdateNextButton>> /* unlock Continue button */ - <</replace>> - <</link>> - <<if $failedElite <= 0>> - <br><<link "Decline being used as a breeder and leverage your standing">> <<replace "#result">> - "Yes, you have done much to further our cause. We respect the 'balls' on you, despite your lack of them. Very well, we shall set the standards for what shall qualify as breeding stock and our standards will be delivered to you shortly." - <<set $propOutcome = 1>> + "Good choice, _girlP; your proposal is more important than your dignity after all, isn't it? A selection of eligible donors will be provided to you; take your pick and bear our children. Or use a test tube, if that's more to your tastes." + <<set $failedElite -= 50, $playerBred = 1, $propOutcome = 1>> <<InitStandards>> <<set $nextButton = "Continue">><<UpdateNextButton>> /* unlock Continue button */ <</replace>> + <</link>> + <<if $failedElite <= 0>> + <br><<link "Decline being used as a breeder and leverage your standing">> + <<replace "#result">> + "Yes, you have done much to further our cause. We respect the 'balls' on you, despite your lack of them. Very well, we shall set the standards for what shall qualify as breeding stock and our standards will be delivered to you shortly." + <<set $propOutcome = 1>> + <<InitStandards>> + <<set $nextButton = "Continue">><<UpdateNextButton>> /* unlock Continue button */ + <</replace>> <</link>> <<else>> <br><<link "Decline being used as a breeder and withdraw your proposal">> @@ -78,12 +78,12 @@ Within the hour, you are called before <<if $eugenicsFullControl == 1>>what's le "We have read your proposal and propose the following: You are not well liked among us, and your medical records show you are quite capable of carrying a child. If you will carry our children, we will grant your proposal, otherwise, leave and never ask us this again." <span id="result"> <br><<link "Agree to being used as a breeder to complete the deal">> - <<replace "#result">> - "Your contributions will be appreciated. We shall convene to decide the qualifications for a slave to become a breeder. We will inform you of them when we send the list of eligible donors to breed you. Or send you a test tube, if that's more to your tastes." - <<set $failedElite -= 50, $playerBred = 1, $propOutcome = 1>> - <<InitStandards>> - <<set $nextButton = "Continue">><<UpdateNextButton>> /* unlock Continue button */ - <</replace>> + <<replace "#result">> + "Your contributions will be appreciated. We shall convene to decide the qualifications for a slave to become a breeder. We will inform you of them when we send the list of eligible donors to breed you. Or send you a test tube, if that's more to your tastes." + <<set $failedElite -= 50, $playerBred = 1, $propOutcome = 1>> + <<InitStandards>> + <<set $nextButton = "Continue">><<UpdateNextButton>> /* unlock Continue button */ + <</replace>> <</link>> <br><<link "Decline being used as a breeder and withdraw your proposal">> <<replace "#result">> @@ -99,12 +99,12 @@ Within the hour, you are called before <<if $eugenicsFullControl == 1>>what's le Your medical records say you have working female sex organs, and we respect your choice to not use them. But have you considered carrying another member's child? It will be extremely lucrative for you and go a long way to furthering our objectives." <span id="result"> <br><<link "Agree to being used as a breeder">> - <<replace "#result">> - "Your contributions will be appreciated. We shall convene to decide the qualifications for a slave to become a breeder. We will inform you of them when we send the list of eligible donors to breed you. Or send you a test tube, if that's more to your tastes." - <<set $playerBred = 1, $propOutcome = 1>> - <<InitStandards>> - <<set $nextButton = "Continue">><<UpdateNextButton>> /* unlock Continue button */ - <</replace>> + <<replace "#result">> + "Your contributions will be appreciated. We shall convene to decide the qualifications for a slave to become a breeder. We will inform you of them when we send the list of eligible donors to breed you. Or send you a test tube, if that's more to your tastes." + <<set $playerBred = 1, $propOutcome = 1>> + <<InitStandards>> + <<set $nextButton = "Continue">><<UpdateNextButton>> /* unlock Continue button */ + <</replace>> <</link>> <br><<link "Decline being used as a breeder">> <<replace "#result">> diff --git a/src/pregmod/csec.tw b/src/pregmod/csec.tw index 8e7b06e47f9537f554ded8ec9931f028703cf3b6..c88c20fd20f7a74b87de0bd1241f919ba39bc6e7 100644 --- a/src/pregmod/csec.tw +++ b/src/pregmod/csec.tw @@ -128,7 +128,7 @@ /* normally fetuses before 34 week will not survive */ <</if>> <</if>> -<<set _afterSize = WombGetVolume($activeSlave)>> /* not really needed right now, but better to add alredy for future usage. To not forget later.*/ +<<set _afterSize = WombGetVolume($activeSlave)>> /* not really needed right now, but better to add already for future usage. To not forget later.*/ <<set $diffSize = _beforeSize / (1 + _afterSize)>> /* 1 used to avoid divide by zero error.*/ <<set _incubated = 0>> diff --git a/src/pregmod/editGenetics.tw b/src/pregmod/editGenetics.tw index 0e769b45a9e6ea0911a76fab9524b21e774629a7..20d3c162903144a333911f2a11ba3b6006d88767 100644 --- a/src/pregmod/editGenetics.tw +++ b/src/pregmod/editGenetics.tw @@ -51,7 +51,7 @@ <tr> <th>Skin</th><td class="editor string-editor" data-param="origSkin"><%- s.origSkin %></td> <th>Skin markings</th><td class="editor choice-editor" data-param="markings" data-choices="none, beauty mark, birthmark, freckles, heavily freckled"><%- s.markings %></td> - <th>Eyes</th><td class="editor string-editor" data-param="origEye"><%- s.origEye %></td> + <th>Eyes</th><td class="editor string-editor" data-param="eye.origColor"><%- s.eye.origColor %></td> <th>Hair</th><td class="editor string-editor" data-param="origHColor"><%- s.origHColor %></td> </tr> <tr> diff --git a/src/pregmod/eliteSlave.tw b/src/pregmod/eliteSlave.tw index 04204962c9b09db8ed2494bfe6e0023d832cddaf..aa53801c3ee2dabe65e5babfe7de91efd29405ab 100644 --- a/src/pregmod/eliteSlave.tw +++ b/src/pregmod/eliteSlave.tw @@ -93,7 +93,7 @@ You check to see if any potential breeding slaves are on auction. <<if $eliteAuc <<if $arcologies[0].FSPhysicalIdealist > 20>> <<set $activeSlave.height += 5>> <</if>> -<<set $activeSlave.eyes = 1>> +<<run eyeSurgery($activeSlave, "both", "normal")>> <<set $activeSlave.hears = 0>> <<if ($activeSlave.weight < -30)>> <<set $activeSlave.waist = random(-55,0)>> diff --git a/src/pregmod/eliteTakeOver.tw b/src/pregmod/eliteTakeOver.tw index 20762df4e7a6c626022debc280aaa97f5b9c7845..ae81330e42b6956afa232de5a58b241bc2eedaa8 100644 --- a/src/pregmod/eliteTakeOver.tw +++ b/src/pregmod/eliteTakeOver.tw @@ -106,8 +106,7 @@ You look up from your desk as the locked door to your office unseals, and a doze give in. <</replace>> <</link>> - <br> - <br> + <br><br> <<link "Confirm">> <<goto "eliteTakeOverFight">> <</link>> diff --git a/src/pregmod/eliteTakeOverFight.tw b/src/pregmod/eliteTakeOverFight.tw index 841880527a4b56f5874237dfdbfc708e8bc9ccee..dda107b70bfac4308d353a796ede2180759df7fc 100644 --- a/src/pregmod/eliteTakeOverFight.tw +++ b/src/pregmod/eliteTakeOverFight.tw @@ -52,7 +52,7 @@ <</switch>> <<if $finalChoice == "give in">> - <<if $PC.pregSource == -1 || $PC.pregSource == -6>> Screw their plans, you're out of here. <</if>>With a "Bang!" you drop dead. + <<if $PC.pregSource == -1 || $PC.pregSource == -6>>Screw their plans, you're out of here. <</if>>With a "Bang!" you drop dead. <<set $ui = "start">> <br><br> ''GAME OVER'' @@ -282,7 +282,7 @@ <</link>> <<elseif $eliteLeft <= 9 && $rep >= 10000>> Some of the citizens waiting outside your penthouse to see you hear the ruckus and rush inside, worried. Time seems to freeze for a few seconds, while the remaining Elite recover from their terror and the citizens digest the gory scene in front of them. - The newcomers are quick to take your side. In little time the elites, outgunned and outnumbered, are neutralized. + The newcomers are quick to take your side. In little time the Elites, outgunned and outnumbered, are neutralized. <br>One of the more courageous citizens approaches you and asks "<<= properTitle()>>, what should we do with them?" <br> <<link "Open fire">> diff --git a/src/pregmod/eliteTakeOverResult.tw b/src/pregmod/eliteTakeOverResult.tw index fa416f5bbf976de120643232de24e84527a3f723..6af38b3488ae78c689d6bdbc635cf3f866baf616 100644 --- a/src/pregmod/eliteTakeOverResult.tw +++ b/src/pregmod/eliteTakeOverResult.tw @@ -20,7 +20,7 @@ <</if>> <<case 1>> <<if random(0,100) > 50>> - An Elite bites down on a cyanide pill hidden in a false tooth and + An Elite bites down on a cyanide pill hidden in a false tooth and <<if random(0,100) > 75>> takes the coward's way out (how predictable), frothing at the mouth. <<set $eliteDead += 1>> diff --git a/src/pregmod/fSlaveSelfImpreg.tw b/src/pregmod/fSlaveSelfImpreg.tw index b443255910b4679128ccea6a61789f8295c270ce..1d5c632e77c30404419f04cf5df818ec3e77872f 100644 --- a/src/pregmod/fSlaveSelfImpreg.tw +++ b/src/pregmod/fSlaveSelfImpreg.tw @@ -82,7 +82,7 @@ <<elseif (_coop)>> $activeSlave.slaveName is calm and docile as you place $him on a bench, and produce a sample container and syringe. With no other option, $he throws back $his head and enjoys the stimulation as your personal assistant, at your instruction, begins stimulating $him to orgasm. When $he ejaculates, you carefully catch every drop in the sample cup, load the syringe, and inject the contents directly against $his cervix. <<else>> - Although $activeSlave.slaveName frantically squirms in a futile attempt to resist as you place $him on a bench, and produce a sample cup and syringe. Without limbs to aid $his escape, $he can only <<if ($activeSlave.eyes <= -2)>>blindly wait<<else>>watch<</if>> in helpless horror as the vasodilators you inject bring $his manhood to complete erectness and your personal assistant, at your instruction, begins stimulating $him. $He sobs in helpless despair as $his rigid shaft begins to throb, filling the cup with a terribly potent load of $his seed; $he frantically shakes $his head, face streaked with tears, as you dip the syringe into the cup, withdraw the plunger, insert it into $his exposed <<if $activeSlave.mpreg == 1>>ass<<else>>vagina<</if>>, and shoot the contents directly against the opening to $his womb. + Although $activeSlave.slaveName frantically squirms in a futile attempt to resist as you place $him on a bench, and produce a sample cup and syringe. Without limbs to aid $his escape, $he can only <<if !canSee($activeSlave)>>blindly wait<<else>>watch<</if>> in helpless horror as the vasodilators you inject bring $his manhood to complete erectness and your personal assistant, at your instruction, begins stimulating $him. $He sobs in helpless despair as $his rigid shaft begins to throb, filling the cup with a terribly potent load of $his seed; $he frantically shakes $his head, face streaked with tears, as you dip the syringe into the cup, withdraw the plunger, insert it into $his exposed <<if $activeSlave.mpreg == 1>>ass<<else>>vagina<</if>>, and shoot the contents directly against the opening to $his womb. <</if>> <<elseif (_coop)>> <<if (_enjoy)>> diff --git a/src/pregmod/huskSlaveSwap.tw b/src/pregmod/huskSlaveSwap.tw index 7f39b22c635c9f3bcb318701f168fd2087a81539..6acde5a79280105abb8e38a2962302b3464409a0 100644 --- a/src/pregmod/huskSlaveSwap.tw +++ b/src/pregmod/huskSlaveSwap.tw @@ -8,7 +8,7 @@ You strap $slaves[_m].slaveName, and the body to which $he will be transferred, into the remote surgery and stand back as it goes to work. <<BodySwap $slaves[_m] $activeSlave>> <<set _gps = $genePool.findIndex(function(s) { return s.ID == $slaves[_m].ID; })>> -<<set $genePool[_gps].race = $slaves[_m].race, $genePool[_gps].origRace = $slaves[_m].origRace, $genePool[_gps].skin = $slaves[_m].skin, $genePool[_gps].markings = $slaves[_m].markings, $genePool[_gps].origEye = $slaves[_m].origEye, $genePool[_gps].origHColor = $slaves[_m].origHColor, $genePool[_gps].origSkin = $slaves[_m].origSkin, $genePool[_gps].face = $slaves[_m].face, $genePool[_gps].pubicHStyle = $slaves[_m].pubicHStyle, $genePool[_gps].underArmHStyle = $slaves[_m].underArmHStyle, $genePool[_gps].eyebrowHStyle = $slaves[_m].eyebrowHStyle>> /* special exception to swap genePool since the temporary body lacks an entry. Otherwise we could just call the widget using the genePool entries */ +<<set $genePool[_gps].race = $slaves[_m].race, $genePool[_gps].origRace = $slaves[_m].origRace, $genePool[_gps].skin = $slaves[_m].skin, $genePool[_gps].markings = $slaves[_m].markings, $genePool[_gps].eye.origColor = $slaves[_m].eye.origColor, $genePool[_gps].origHColor = $slaves[_m].origHColor, $genePool[_gps].origSkin = $slaves[_m].origSkin, $genePool[_gps].face = $slaves[_m].face, $genePool[_gps].pubicHStyle = $slaves[_m].pubicHStyle, $genePool[_gps].underArmHStyle = $slaves[_m].underArmHStyle, $genePool[_gps].eyebrowHStyle = $slaves[_m].eyebrowHStyle>> /* special exception to swap genePool since the temporary body lacks an entry. Otherwise we could just call the widget using the genePool entries */ <br><br> After an honestly impressive procedure, $slaves[_m].slaveName is recovering nicely. diff --git a/src/pregmod/incubator.tw b/src/pregmod/incubator.tw index 1734d8746103ee7102709e538e58623f3af9d41f..1246f3eadb1c592d45ea3efb89134ea77186a43f 100644 --- a/src/pregmod/incubator.tw +++ b/src/pregmod/incubator.tw @@ -338,9 +338,9 @@ Target age for release: <<textbox "$targetAge" $targetAge "Incubator">> [[Minimu <<setLocalPronouns $tanks[$i]>> <br><br>@@.pink;$tanks[$i].slaveName@@ occupies this tank. <<if $geneticMappingUpgrade >= 1>> - $He is a <<if $tanks[$i].genes == "XX">>female<<else>>male<</if>> of $tanks[$i].race descent with $tanks[$i].eyeColor eyes, $tanks[$i].hColor hair and $tanks[$i].skin skin. Given $his parentage, $he is considered $tanks[$i].nationality. + $He is a <<if $tanks[$i].genes == "XX">>female<<else>>male<</if>> of $tanks[$i].race descent with <<print App.Desc.eyesColor($tanks[$i])>>, $tanks[$i].hColor hair and $tanks[$i].skin skin. Given $his parentage, $he is considered $tanks[$i].nationality. <<else>> - $He appears to be <<if $tanks[$i].genes == "XX">>a natural girl<<else>>a natural boy<</if>>, with $tanks[$i].hColor hair<<if $tanks[$i].eyes != -2>> and $tanks[$i].eyeColor eyes.<<else>>. $He most likely will be blind.<</if>> + $He appears to be <<if $tanks[$i].genes == "XX">>a natural girl<<else>>a natural boy<</if>>, with $tanks[$i].hColor hair<<if getBestVision($tanks[$i]) === 0>> and <<print App.Desc.eyesColor($tanks[$i])>>.<<else>>. $He most likely will be blind.<</if>> <</if>> Statistical projections indicates that once released $he will be around <<= heightToEitherUnit($tanks[$i].height + random(-5,5))>> tall. Most likely $he will be <<if $tanks[$i].weight <= 30 && $tanks[$i].weight >= -30>> @@ -549,7 +549,7 @@ Target age for release: <<textbox "$targetAge" $targetAge "Incubator">> [[Minimu <<goto "Incubator">> <</link>> <</if>> - <<if $tanks[$i].eyes <= -2 && $tankOrgans.eyes != 1>> + <<if getBestVision($tanks[$i]) === 0 && $tankOrgans.eyes != 1>> <br>$He appears to be blind: <<link "Prepare eyes">> <<run cashX(-10000, "incubator", $tanks[$i])>> diff --git a/src/pregmod/managePersonalAffairs.tw b/src/pregmod/managePersonalAffairs.tw index 201ca748aa308d61e59ad406d14a8093dd67c4c2..6769847984529e211a1f641d1d7cc9bb58076333 100644 --- a/src/pregmod/managePersonalAffairs.tw +++ b/src/pregmod/managePersonalAffairs.tw @@ -10,7 +10,7 @@ <</if>> You pause for a moment from your busy day to day life to return to <<if $masterSuite != 0>>$masterSuiteName<<else>>your room<</if>> to consider some things about yourself. -<br>You take yourself in a full length mirror. You are <<if $PC.race == "amerindian" || $PC.race == "asian" || $PC.race == "indo-aryan">>an<<else>>a<</if>> $PC.race <<if $PC.dick != 0 && $PC.vagina != -1>>futanari<<elseif $PC.dick != 0>>man<<else>>woman<</if>> with<<if $PC.markings == "freckles">> freckled<<elseif $PC.markings == "heavily freckled">> heavily freckled<</if>> <<print $PC.skin>> skin, $PC.hColor hair, $PC.eye.right.iris eyes and a perfect $PC.faceShape face. +<br>You take yourself in a full length mirror. You are <<if $PC.race == "amerindian" || $PC.race == "asian" || $PC.race == "indo-aryan">>an<<else>>a<</if>> $PC.race <<if $PC.dick != 0 && $PC.vagina != -1>>futanari<<elseif $PC.dick != 0>>man<<else>>woman<</if>> with<<if $PC.markings == "freckles">> freckled<<elseif $PC.markings == "heavily freckled">> heavily freckled<</if>> <<print $PC.skin>> skin, $PC.hColor hair, <<print App.Desc.eyesColor($PC)>> and a perfect $PC.faceShape face. <<if $PC.actualAge >= 65>> You're @@.orange;$PC.actualAge@@ and definitely feeling it.<<if $PC.visualAge > $PC.actualAge>> You've taken measures to @@.lime;look an older $PC.visualAge,@@ though perhaps it might be time to undo it.<<elseif $PC.visualAge < $PC.actualAge>> You've taken measures to @@.lime;look a younger $PC.visualAge,@@ now if only your body agreed with your looks.<</if>> <<elseif $PC.actualAge >= 50>> @@ -32,52 +32,121 @@ Around back, <br><<if $playerSurgery == 0>>[[Visit your plastic surgeon.|Elective Surgery][$playerSurgery = 4]]<<elseif $playerSurgery == 1>>Your favorite plastic surgeon is booked solid for the next week.<<else>>Your favorite plastic surgeon is booked solid for the next $playerSurgery weeks.<</if>> <br>You have a number of contact lenses in various colors available. -<br> - <<if $PC.eye.origColor == $PC.eye.right.iris>>You aren't wearing contacts to change the color of your eyes.<<else>>[[Remove lenses|Manage Personal Affairs][$PC.eye.left.iris = $PC.eye.origColor, $PC.eye.right.iris = $PC.eye.origColor]]<</if>> - <<if $PC.eye.right.iris != "blue">>| [[Blue|Manage Personal Affairs][$PC.eye.left.iris = "blue", $PC.eye.right.iris = "blue"]]<</if>> - <<if $PC.eye.right.iris != "black">>| [[Black|Manage Personal Affairs][$PC.eye.left.iris = "black", $PC.eye.right.iris = "black"]]<</if>> - <<if $PC.eye.right.iris != "brown">>| [[Brown|Manage Personal Affairs][$PC.eye.left.iris = "brown", $PC.eye.right.iris = "brown"]]<</if>> - <<if $PC.eye.right.iris != "green">>| [[Green|Manage Personal Affairs][$PC.eye.left.iris = "green", $PC.eye.right.iris = "green"]]<</if>> - <<if $PC.eye.right.iris != "turquoise">>| [[Turquoise|Manage Personal Affairs][$PC.eye.left.iris = "turquoise", $PC.eye.right.iris = "turquoise"]]<</if>> - <<if $PC.eye.right.iris != "sky-blue">>| [[Sky-Blue|Manage Personal Affairs][$PC.eye.left.iris = "sky-blue", $PC.eye.right.iris = "sky-blue"]]<</if>> - <<if $PC.eye.right.iris != "hazel">>| [[Hazel|Manage Personal Affairs][$PC.eye.left.iris = "hazel", $PC.eye.right.iris = "hazel"]]<</if>> - <<if $PC.eye.right.iris != "pale-grey">>| [[Pale-Grey|Manage Personal Affairs][$PC.eye.left.iris = "pale-grey", $PC.eye.right.iris = "pale-grey"]]<</if>> - <<if $PC.eye.right.iris != "white">>| [[White|Manage Personal Affairs][$PC.eye.left.iris = "white", $PC.eye.right.iris = "white"]]<</if>> - <<if $PC.eye.right.iris != "pink">>| [[Pink|Manage Personal Affairs][$PC.eye.left.iris = "pink", $PC.eye.right.iris = "pink"]]<</if>> - <<if $PC.eye.right.iris != "amber">>| [[Amber|Manage Personal Affairs][$PC.eye.left.iris = "amber", $PC.eye.right.iris = "amber"]]<</if>> - <<if $PC.eye.right.iris != "red">>| [[Red|Manage Personal Affairs][$PC.eye.left.iris = "red", $PC.eye.right.iris = "red"]]<</if>> - <<if $PC.eye.right.iris != "yellow">>| [[Yellow|Manage Personal Affairs][$PC.eye.left.iris = "yellow", $PC.eye.right.iris = "yellow"]]<</if>> - <<if $PC.eye.right.iris != "orange">>| [[Orange|Manage Personal Affairs][$PC.eye.left.iris = "orange", $PC.eye.right.iris = "orange"]]<</if>> - <br> - <<if $PC.eye.right.pupil == "circular">>You aren't wearing contacts to change the shape of your pupils.<<else>>[[Remove lenses|Manage Personal Affairs][$PC.eye.left.pupil = "circular, $PC.eye.right.pupil != "circular"<</if>> - <<if $PC.eye.right.pupil != "catlike">>| [[Catlike|Manage Personal Affairs][$PC.eye.left.pupil = "catlike", $PC.eye.right.pupil != "catlike"]]<</if>> - <<if $PC.eye.right.pupil != "serpent-like">>| [[Serpent-Like|Manage Personal Affairs][$PC.eye.left.pupil = "serpent-like", $PC.eye.right.pupil != "serpent-like"]]<</if>> - <<if $PC.eye.right.pupil != "devilish">>| [[Devilish|Manage Personal Affairs][$PC.eye.left.pupil = "devilish", $PC.eye.right.pupil != "devilish"]]<</if>> - <<if $PC.eye.right.pupil != "demonic">>| [[Demonic|Manage Personal Affairs][$PC.eye.left.pupil = "demonic", $PC.eye.right.pupil != "demonic"]]<</if>> - <<if $PC.eye.right.pupil != "hypnotic">>| [[Hypnotic|Manage Personal Affairs][$PC.eye.left.pupil = "hypnotic", $PC.eye.right.pupil != "hypnotic"]]<</if>> - <<if $PC.eye.right.pupil != "heart-shaped">>| [[Heart-Shaped|Manage Personal Affairs][$PC.eye.left.pupil = "heart-shaped", $PC.eye.right.pupil != "heart-shaped"]]<</if>> - <<if $PC.eye.right.pupil != "wide-eyed">>| [[Wide-Eyed|Manage Personal Affairs][$PC.eye.left.pupil = "wide-eyed", $PC.eye.right.pupil != "wide-eyed"]]<</if>> - <<if $PC.eye.right.pupil != "almond-shaped">>| [[Almond-Shaped|Manage Personal Affairs][$PC.eye.left.pupil = "almond-shaped", $PC.eye.right.pupil != "almond-shaped"]]<</if>> - <<if $PC.eye.right.pupil != "bright">>| [[Bright|Manage Personal Affairs][$PC.eye.left.pupil = "bright", $PC.eye.right.pupil != "bright"]]<</if>> - <<if $PC.eye.right.pupil != "teary">>| [[Teary|Manage Personal Affairs][$PC.eye.left.pupil = "teary", $PC.eye.right.pupil != "teary"]]<</if>> - <<if $PC.eye.right.pupil != "vacant">>| [[Vacant|Manage Personal Affairs][$PC.eye.left.pupil = "vacant", $PC.eye.right.pupil != "vacant"]]<</if>> - <<if $PC.eye.right.pupil != "star-shaped">>| [[Star-Shaped|Manage Personal Affairs][$PC.eye.left.pupil = "star-shaped", $PC.eye.right.pupil != "star-shaped"]]<</if>> - <<if $PC.eye.right.pupil != "goat-like">>| [[Goat-Like|Manage Personal Affairs][$PC.eye.left.pupil = "goat-like", $PC.eye.right.pupil != "goat-like"]]<</if>> - <br> - <<if $PC.eye.right.sclerae == "white">>You aren't wearing contacts to change the color of your sclerae.<<else>>[[Remove lenses|Manage Personal Affairs][$PC.eye.left.sclerae = "white", $PC.eye.right.sclerae == "white"]]<</if>> - <<if $PC.eye.right.sclerae != "blue">>| [[Blue|Manage Personal Affairs][$PC.eye.left.sclerae = "blue", $PC.eye.right.sclerae == "blue"]]<</if>> - <<if $PC.eye.right.sclerae != "black">>| [[Black|Manage Personal Affairs][$PC.eye.left.sclerae = "black", $PC.eye.right.sclerae == "black"]]<</if>> - <<if $PC.eye.right.sclerae != "brown">>| [[Brown|Manage Personal Affairs][$PC.eye.left.sclerae = "brown", $PC.eye.right.sclerae == "brown"]]<</if>> - <<if $PC.eye.right.sclerae != "green">>| [[Green|Manage Personal Affairs][$PC.eye.left.sclerae = "green", $PC.eye.right.sclerae == "green"]]<</if>> - <<if $PC.eye.right.sclerae != "turquoise">>| [[Turquoise|Manage Personal Affairs][$PC.eye.left.sclerae = "turquoise", $PC.eye.right.sclerae == "turquoise"]]<</if>> - <<if $PC.eye.right.sclerae != "sky-blue">>| [[Sky-Blue|Manage Personal Affairs][$PC.eye.left.sclerae = "sky-blue", $PC.eye.right.sclerae == "sky-blue"]]<</if>> - <<if $PC.eye.right.sclerae != "hazel">>| [[Hazel|Manage Personal Affairs][$PC.eye.left.sclerae = "hazel", $PC.eye.right.sclerae == "hazel"]]<</if>> - <<if $PC.eye.right.sclerae != "pale-grey">>| [[Pale-Grey|Manage Personal Affairs][$PC.eye.left.sclerae = "pale-grey", $PC.eye.right.sclerae == "pale-grey"]]<</if>> - <<if $PC.eye.right.sclerae != "pink">>| [[Pink|Manage Personal Affairs][$PC.eye.left.sclerae = "pink", $PC.eye.right.sclerae == "pink"]]<</if>> - <<if $PC.eye.right.sclerae != "amber">>| [[Amber|Manage Personal Affairs][$PC.eye.left.sclerae = "amber", $PC.eye.right.sclerae == "amber"]]<</if>> - <<if $PC.eye.right.sclerae != "red">>| [[Red|Manage Personal Affairs][$PC.eye.left.sclerae = "red", $PC.eye.right.sclerae == "red"]]<</if>> - <<if $PC.eye.right.sclerae != "yellow">>| [[Yellow|Manage Personal Affairs][$PC.eye.left.sclerae = "yellow", $PC.eye.right.sclerae == "yellow"]]<</if>> - <<if $PC.eye.right.sclerae != "orange">>| [[Orange|Manage Personal Affairs][$PC.eye.left.sclerae = "orange", $PC.eye.right.sclerae == "orange"]]<</if>> +You current eye color is <<print App.Desc.eyeColor($PC)>>. + +/* This a simplified version of the slave code in salon.tw, when adding missing/glass eyes, copy the code from there */ +/* remove lenses */ +<<set _n = 0>> +<<if getLeftEyeColor($PC) !== getGeneticEyeColor($PC, "left")>> + <<set _n++>> + [[Remove left lens|Manage Personal Affairs][resetEyeColor($PC, "left")]] +<</if>> +<<if getRightEyeColor($PC) !== getGeneticEyeColor($PC, "right")>> + <<set _n++>> + <<if _n > 0>>|<</if>> + [[Remove right lens|Manage Personal Affairs][resetEyeColor($PC, "right")]] +<</if>> +<<if _n === 2>> + | [[Remove both lenses|Manage Personal Affairs][resetEyeColor($PC, "both")]] +<</if>> + +//Change what your eyes look like:// + +<br> +Side: +[[Left|Salon][$artificialEyeSide = "left"]] +| [[Right|Salon][$artificialEyeSide = "right"]] +| [[Both|Salon][$artificialEyeSide = "both"]] + +<br> +Iris: +[[Amber|Salon][$artificialEyeColor = "amber"]] +| [[Black|Salon][$artificialEyeColor = "black"]] +| [[Blue|Salon][$artificialEyeColor = "blue"]] +| [[Brown|Salon][$artificialEyeColor = "brown"]] +| [[Green|Salon][$artificialEyeColor = "green"]] +| [[Hazel|Salon][$artificialEyeColor = "hazel"]] +| [[Orange|Salon][$artificialEyeColor = "orange"]] +| [[Pale-Grey|Salon][$artificialEyeColor = "pale-grey"]] +| [[Pink|Salon][$artificialEyeColor = "pink"]] +| [[Red|Salon][$artificialEyeColor = "red"]] +| [[Sky-Blue|Salon][$artificialEyeColor = "sky-blue"]] +| [[Turquoise|Salon][$artificialEyeColor = "turquoise"]] +| [[White|Salon][$artificialEyeColor = "white"]] +| [[Yellow|Salon][$artificialEyeColor = "yellow"]] + +<br> +Pupil: +[[Circular|Salon][$artificialEyeShape = "circular"]] +| [[Almond-Shaped|Salon][$artificialEyeShape = "almond-shaped"]] +| [[Bright|Salon][$artificialEyeShape = "bright"]] +| [[Catlike|Salon][$artificialEyeShape = "catlike"]] +| [[Demonic|Salon][$artificialEyeShape = "demonic"]] +| [[Devilish|Salon][$artificialEyeShape = "devilish"]] +| [[Goat-Like|Salon][$artificialEyeShape = "goat-like"]] +| [[Heart-Shaped|Salon][$artificialEyeShape = "heart-shaped"]] +| [[Hypnotic|Salon][$artificialEyeShape = "hypnotic"]] +| [[Serpent-Like|Salon][$artificialEyeShape = "serpent-like"]] +| [[Star-Shaped|Salon][$artificialEyeShape = "star-shaped"]] +| [[Teary|Salon][$artificialEyeShape = "teary"]] +| [[Vacant|Salon][$artificialEyeShape = "vacant"]] +| [[Wide-Eyed|Salon][$artificialEyeShape = "wide-eyed"]] + +<br> +Sclera: +[[White|Salon][$artificialEyeFill = "white"]] +| [[Amber|Salon][$artificialEyeFill = "amber"]] +| [[Black|Salon][$artificialEyeFill = "black"]] +| [[Blue|Salon][$artificialEyeFill = "blue"]] +| [[Brown|Salon][$artificialEyeFill = "brown"]] +| [[Green|Salon][$artificialEyeFill = "green"]] +| [[Hazel|Salon][$artificialEyeFill = "hazel"]] +| [[Orange|Salon][$artificialEyeFill = "orange"]] +| [[Pale-Grey|Salon][$artificialEyeFill = "pale-grey"]] +| [[Pink|Salon][$artificialEyeFill = "pink"]] +| [[Red|Salon][$artificialEyeFill = "red"]] +| [[Sky-Blue|Salon][$artificialEyeFill = "sky-blue"]] +| [[Turquoise|Salon][$artificialEyeFill = "turquoise"]] +| [[Yellow|Salon][$artificialEyeFill = "yellow"]] + +<<if ndef $artificialEyeColor>> + <<set $artificialEyeColor = "", $artificialEyeShape = "", $artificialEyeFill = "">> +<</if>> + +<<if $artificialEyeSide != "" && $artificialEyeColor != "">> + <br> + <<link "Take" "Manage Personal Affairs">> + /* apply modifications */ + <<run setEyeColorFull($PC, $artificialEyeColor, $artificialEyeShape, $artificialEyeFill, $artificialEyeSide)>> + <<run cashX(forceNeg($modCost), "slaveMod", $PC)>> + + /* reset variables */ + <<set $artificialEyeSide = "", $artificialEyeColor = "", $artificialEyeShape = "", $artificialEyeFill = "">> + <</link>> + + /* make the following easier to read */ + <<set _both = $artificialEyeSide === "both">> + + $him $artificialEyeColor + <<if _both>> + lenses + <<else>> + a lens + <</if>> + <<if $artificialEyeShape != "" || $artificialEyeFill != "">> + with + <<if $artificialEyeShape != "" >> + $artificialEyeShape <<if _both>> pupils <<else>> pupil <</if>> + <</if>> + <<if $artificialEyeShape != "" && $artificialEyeFill != "">> + and + <</if>> + <<if $artificialEyeFill != "" >> + $artificialEyeFill <<if _both>> sclerae <<else>> sclera <</if>> + <</if>> + <</if>>? +<</if>> + <br>You have a selection of hair dyes available. <br> <<if $PC.origHColor == $PC.hColor>>Your hair is its natural color.<<else>>[[Remove dye|Manage Personal Affairs][$PC.hColor = $PC.origHColor]]<</if>> diff --git a/src/pregmod/organFarmOptions.tw b/src/pregmod/organFarmOptions.tw index 935efd9b5153eeb750df8627db1bdfe639cc75bd..93e569fa714402ec571e0304bb5dfb478bf1ebf0 100644 --- a/src/pregmod/organFarmOptions.tw +++ b/src/pregmod/organFarmOptions.tw @@ -266,7 +266,7 @@ The fabricator is ready to grow an organ for $him. Extract tissue to begin growi <<set _newOrgan.ID = $activeSlave.ID>> <<set $organs.push(_newOrgan)>> <<goto "Remote Surgery">> - <</link>> //Costs <<print cashFormat(10000)>> and is imperfect — eyes will lack natural color// + <</link>> //Costs <<print cashFormat(10000)>>, currently eyes can only be implanted in pairs.// <</if>> <<if $slaveOrgans.ears != 1>> <br> @@ -1941,18 +1941,7 @@ The fabricator is ready to grow an organ for $him. Extract tissue to begin growi <</link>> <</if>> <<case "eyes">> - <<if $activeSlave.eyes > -2 && $activeSlave.eyesImplant == 0>> - <br> - ERROR: this slave has working eyes. - <<link "Discard" "Remote Surgery">> - <<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "eyes"; })>> - <<if _ofo != -1>> - <<set $completedOrgans.deleteAt(_ofo)>> - <<else>> - @@.red;Organ not found for deletion!@@ - <</if>> - <</link>> - <<elseif $activeSlave.eyesImplant == 1>> + <<if hasBothCyberneticEyes($activeSlave)>> <br> <<link "Remove ocular implants and implant" "Surgery Degradation">> <<run cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)>> @@ -1962,8 +1951,7 @@ The fabricator is ready to grow an organ for $him. Extract tissue to begin growi <<else>> @@.red;Organ not found for deletion!@@ <</if>> - <<set $activeSlave.eyes = 1>> - <<set $activeSlave.eyeColor = $activeSlave.origEye>> + <<run eyeSurgery($activeSlave, "both", "normal")>> <<set $activeSlave.health -= 20>> <<if $organFarmUpgrade == 2>> <<set $activeSlave.chem += 20>> @@ -1979,7 +1967,7 @@ The fabricator is ready to grow an organ for $him. Extract tissue to begin growi @@.red;Organ not found for deletion!@@ <</if>> <</link>> - <<else>> + <<elseif getBestVision($activeSlave) === 0>> <br> <<link "Implant" "Surgery Degradation">> <<run cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)>> @@ -1989,9 +1977,7 @@ The fabricator is ready to grow an organ for $him. Extract tissue to begin growi <<else>> @@.red;Organ not found for deletion!@@ <</if>> - <<set $activeSlave.eyes = 1>> - <<set $activeSlave.eyeColor = $activeSlave.origEye>> - /* no way to salvage original eye color */ + <<run eyeSurgery($activeSlave, "both", "normal")>> <<set $activeSlave.health -= 20>> <<if $organFarmUpgrade == 2>> <<set $activeSlave.chem += 20>> @@ -2007,6 +1993,18 @@ The fabricator is ready to grow an organ for $him. Extract tissue to begin growi @@.red;Organ not found for deletion!@@ <</if>> <</link>> + <<else>> + <br> + ERROR: this slave has working eyes. + <<link "Discard" "Remote Surgery">> + <<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "eyes"; })>> + <<if _ofo != -1>> + <<set $completedOrgans.deleteAt(_ofo)>> + <<else>> + @@.red;Organ not found for deletion!@@ + <</if>> + <</link>> + <</if>> <<case "ears">> <<if $activeSlave.earShape == "normal" && $activeSlave.earT != "none">> diff --git a/src/pregmod/pcAppearanceIntro.tw b/src/pregmod/pcAppearanceIntro.tw index d14482e98a56e75908468e8b272393b89fa61ad2..72e1d46e9c0d423cc33e6a3cb7b85cc2784eb5b0 100644 --- a/src/pregmod/pcAppearanceIntro.tw +++ b/src/pregmod/pcAppearanceIntro.tw @@ -244,9 +244,8 @@ You have $PC.origSkin skin. @@.orange;What color are your eyes?@@ <br> -<<set $PC.eye.left.iris = $PC.eye.right.iris>> -You have $PC.eye.right.iris eyes. -<br><<textbox "$PC.eye.right.iris" $PC.eye.right.iris "PC Appearance Intro">> +You have $PC.eye.origColor eyes. +<br><<textbox "$PC.eye.origColor" $PC.eye.origColor "PC Appearance Intro">> <br><br> @@ -256,5 +255,4 @@ You have $PC.hColor hair. <br><<textbox "$PC.hColor" $PC.hColor "PC Appearance Intro">> <br><br> -[[Finish player character customization|PC Experience Intro]] - +[[Finish player character customization|PC Experience Intro][resetEyeColor($PC)]] diff --git a/src/pregmod/rePregInventor.tw b/src/pregmod/rePregInventor.tw index bd5b6a06af276211ec5a921aa6a660f8ddb1a735..8a0b83ddf11c09d26e1ee17be43459569e50a18c 100644 --- a/src/pregmod/rePregInventor.tw +++ b/src/pregmod/rePregInventor.tw @@ -121,10 +121,10 @@ <</if>> <</if>> <br><br> - <<if $activeSlave.eyesImplant == 1>> - $His pretty $activeSlave.eyeColor bionic eyes flash a shade cooler than normal and you can tell $he's struggling to accept your decision. + <<if hasAnyCyberneticEyes($activeSlave)>> + $His pretty <<print App.Desc.eyesColor($activeSlave, "bionic")>> flash a shade cooler than normal and you can tell $he's struggling to accept your decision. <<else>> - You can see tears brimming in $his <<= App.Desc.eyesColor($activeSlave)>>. + You can see tears brimming in $his <<print App.Desc.eyesColor($activeSlave)>>. <</if>> You kiss $him on the head, make sweet love to $him to improve $his mood, then have $him escorted out of your office. <<= VCheck.Vaginal()>> @@ -418,7 +418,7 @@ <<elseif $arcologies[0].FSEgyptianRevivalist > 60>> dressed in <<if hasAnyLegs($activeSlave)>>ankle-length<<else>>long<</if>> tarkhans made of brass and turquoise colored beads, <<elseif $arcologies[0].FSEdoRevivalist > 60>> - dressed in skimpy noh theatre costumes, + dressed in skimpy noh theater costumes, <<elseif $arcologies[0].FSArabianRevivalist > 60>> their sinful figures made modest by roomy abayas, <<elseif $arcologies[0].FSChineseRevivalist > 60>> @@ -515,7 +515,7 @@ around a stripper pole, and performing a slow, effortless body inversion, $his massive upside down belly rotating just a split second slower than the rest of $him. $He rotates some more and then flips back into a normal standing position, leaning over $his stomach and once again slightly crushing $his now visibly exhausted servants as $he performs a mock bow. <br><br> <<if canTalk($activeSlave)>> - "That it wa<<s>> worth it!" $he <<say>>s, finishing $his earlier statement. "So, what do you think?" $he asks. $He seems not even slightly out of breath. + "That it wa<<s>> worth it!" $he <<say>>s, finishing $his earlier statement. "<<S>>o, what do you think?" $he asks. $He seems not even slightly out of breath. <<elseif hasAnyArms($activeSlave)>> $He motions to you, communicating the last part of $his earlier message: "that it was worth it!" $He then indicates that $he is waiting for your opinion. You note that $he hasn't even broken a sweat. <<else>> @@ -627,7 +627,7 @@ <</if>> <br><br> <<if canTalk($activeSlave)>> - "Hi, <<Master>>," $he <<say>>s. "//Oooooh...// you have no idea how good this feel<<s>>. My aching belly i<<s>> warmed all through — well? Why don't you come in and I'll e<<x>>plain thing<<s>>." + "Hi, <<Master>>," $he <<say>>s. "//Oooooh...// you have no idea how good thi<<s>> feel<<s>>. My aching belly i<<s>> warmed all through — well? Why don't you come in and I'll e<<x>>plain thing<<s>>." <<elseif hasAnyArms($activeSlave)>> $He motions to you in more formal greetings and then lets out an involuntary moan of pleasure, rubbing at the sides of $his tremendous belly. $He beckons you to enter the pool. <<else>> @@ -680,7 +680,7 @@ <<if hasAnyArms($activeSlave)>> $He motions to you, explaining that the pool is designed to grow to accommodate and support its users, then smiles. You realize that, between the feeling of $his heavy, slick mass pressing into you and the rejuvenating effect of the gel, <<if $PC.dick != 0>> - you're hard as a rock and + you're hard as a rock<<if $PC.vagina > -1>>, your pussy is absolutely weeping,<</if>> and <<else>> your pussy is absolutely weeping and you are <</if>> @@ -697,10 +697,10 @@ <</if>> <br><br> Your arousal gives you an idea, and you push back on your hyperbroodmother's colossal belly. $He steps away from you until $he is in the center of the pool, a look of confusion on $his face. You take control of the remote and then manipulate the reticulating frame supporting the pool such that it lifts the floor, slowly rendering both you and your colossal-bellied breeder knee deep in the warm gel. You hunker down into an aggressive, combative stance and - <<if $activeSlave.eyesImplant == 1>> - $his synthetic eyes flash white for a moment as a look of understanding dawns on $his face. + <<if hasAnyCyberneticEyes($activeSlave)>> + $his <<print App.Desc.eyesColor($activeSlave, "synthetic")>> flash white for a moment as a look of understanding dawns on $his face. <<else>> - a look of understanding lights up in $his eyes. + a look of understanding lights up in $his <<print App.Desc.eyesColor($activeSlave)>>. <</if>> <<if !canTalk($activeSlave)>> <<if hasAnyArms($activeSlave)>> @@ -709,7 +709,7 @@ $He waves $his stubs in mock dismay as you prepare to wrestle $him in the pool of goop. <</if>> <<else>> - "Oh no," $he <<say>>s in mock dismay<<if $activeSlave.skill.combat > 0>>, lowering $his guard<</if>>. "My <<Master>> i<<s>> going to wre<<s>>tle me into <<s>>ubmi<<ss>>ion in thi<<s>> hot, heavy goo pool. Whatever will I do?" + "Oh no," $he <<say>>s in mock dismay<<if $activeSlave.skill.combat > 0>>, lowering $his guard<</if>>. "My <<Master>> i<<s>> going to wre<<s>>tle me into <<s>>ubmi<<ss>>ion in thi<<s>> hot, heavy, goo pool. Whatever will I do?" <</if>> You circle around $him, slowly approaching $him, and $he uses the pool's mobility assistance tools to rotate $his body so that $he can just barely keep you in $his gaze, drizzling gel over $his belly as $he keeps it between you and $him to use as a protective barrier. When you're close enough to touch the apex of $his fecund body, you leap forward through the gel, diving to one side and disappearing under it. Your momentum carries you a reasonable distance despite the resistance of the thick substance and you pop back up directly behind $him. You grab $him under $his armpits, pressing your <<if $PC.dick != 0>> diff --git a/src/pregmod/seFCTVremote.tw b/src/pregmod/seFCTVremote.tw index acd3ab1e9594f02560c51c50be9168d534b3627c..71828667c7962c3e0a22a22c044a0441a040584f 100644 --- a/src/pregmod/seFCTVremote.tw +++ b/src/pregmod/seFCTVremote.tw @@ -133,13 +133,8 @@ $He unboxes the new remote and turns $his back to you, eagerly demonstrating how At the touch of a button, $his drone whirs to a stop and begins to fall to the floor. Before it hits, you touch a second and a dart hits $him in the neck. $He collapses into darkness. <br><br> As the tech wakes up $he finds $himself resting on your couch, with you looking - /*<<if hasAnyEyes($activeSlave)>> + <<if hasAnyEyes($activeSlave)>> into $his eye<<if hasBothEyes($activeSlave)>>s<</if>> - <<else>> - at $him @Arkerthan - <</if>>*/ - <<if $activeSlave.eyes > -2>> - into $his eyes <<else>> at $him <</if>> diff --git a/src/pregmod/testGenetics.tw b/src/pregmod/testGenetics.tw index aa29f07550ca72e59a06a1f3fd50b4ba89129ca3..772a5bf26760754e04fbe1bf124a8e487ba674bf 100644 --- a/src/pregmod/testGenetics.tw +++ b/src/pregmod/testGenetics.tw @@ -16,7 +16,7 @@ All slave array slaves MUST be present in genePool or else there is a malfunctio <</for>> </table> -<<set _neededProperties = ['genes', 'origSkin', 'origEye', 'origHColor', 'nationality', 'origRace', 'face', 'faceShape', 'markings', 'intelligence', 'underArmHStyle', 'pubicHStyle']>> +<<set _neededProperties = ['genes', 'origSkin', 'eye.origColor', 'origHColor', 'nationality', 'origRace', 'face', 'faceShape', 'markings', 'intelligence', 'underArmHStyle', 'pubicHStyle']>> <table><caption style="background-color: rgba(127, 127, 127, 0.2)">slaves</caption> <tr><th>index</th><th>name</th><th>ID</th><th>origin</th><th>assignment</th></tr> <<for _i = 0; _i < $slaves.length; _i++>> @@ -24,7 +24,17 @@ All slave array slaves MUST be present in genePool or else there is a malfunctio <<set _error = $genePool.every(function(g) { return $slaves[_i].ID !== g.ID; })>> <<if _error>><<set _errorCause = "Doesn't exist in the gene pool">><</if>> <<if !_error>> - <<set _missingProperties = _neededProperties.filter(function(p) { return !(p in _s);})>> + <<set _missingProperties = _neededProperties.filter(function(p) { + p = p.split("."); + let c = _s; + for (const r of p) { + if (!(r in c)) { + return true; + } + c = c[r]; + } + return false; + })>> <<if _missingProperties.length > 0>> <<set _error = true, _errorCause = "Missing properties: " + _missingProperties.join(", ")>> <</if>> diff --git a/src/pregmod/widgets/bodySwapReaction.tw b/src/pregmod/widgets/bodySwapReaction.tw index 736ccefd8bba9de3d696d5d00d3598ec0b8c6da5..e9e1a91cdabafc08b89495d2958bd5bdb2f90b2a 100644 --- a/src/pregmod/widgets/bodySwapReaction.tw +++ b/src/pregmod/widgets/bodySwapReaction.tw @@ -2,13 +2,13 @@ <<widget "BodySwapReaction">> -<<if $args[0].eyes <= -2 && $args[1].eyes > -2>> +<<if getBestVision($args[0]) === 0 && getBestVision($args[1]) > 0>> <<set _sight = -2>> /* now blind */ -<<elseif $args[0].eyes == -1 && $args[1].eyes > -1>> +<<elseif getBestVision($args[0]) === 1 && getBestVision($args[1]) > 1>> <<set _sight = -1>> /* now nearsighted */ -<<elseif $args[0].eyes > -2 && $args[1].eyes <= -2>> +<<elseif getBestVision($args[0]) > 0 && getBestVision($args[1]) === 0>> <<set _sight = 2>> /* now not blind */ -<<elseif $args[0].eyes > -1 && $args[1].eyes == -1>> +<<elseif getBestVision($args[0]) > 1 && getBestVision($args[1]) === 1>> <<set _sight = 1>> /* now not nearsighted */ <<else>> <<set _sight = 0>> /* no change */ diff --git a/src/pregmod/widgets/bodyswapWidgets.tw b/src/pregmod/widgets/bodyswapWidgets.tw index 21fbb7f7aa655203880be27a8d0d5aef05ff7347..c7b50b6ccc27d802ed71d96c77a651e24b23001a 100644 --- a/src/pregmod/widgets/bodyswapWidgets.tw +++ b/src/pregmod/widgets/bodyswapWidgets.tw @@ -21,10 +21,7 @@ <<set $args[0].skin = $args[1].skin>> <<set $args[0].origSkin = $args[1].origSkin>> <<set $args[0].markings = $args[1].markings>> -<<set $args[0].eyes = $args[1].eyes>> -<<set $args[0].eyesImplant = $args[1].eyesImplant>> -<<set $args[0].origEye = $args[1].origEye>> -<<set $args[0].eyeColor = $args[1].eyeColor>> +<<set $args[0].eye = $args[1].eye>> <<set $args[0].hears = $args[1].hears>> <<set $args[0].earImplant = $args[1].earImplant>> <<set $args[0].earShape = $args[1].earShape>> diff --git a/src/pregmod/widgets/pregmodWidgets.tw b/src/pregmod/widgets/pregmodWidgets.tw index 250ad8fe4bbc4f7dc8aa4326e8649ab627ac0dd2..45130d592787a078291e7ccb5c66fb7b8af87a86 100644 --- a/src/pregmod/widgets/pregmodWidgets.tw +++ b/src/pregmod/widgets/pregmodWidgets.tw @@ -596,6 +596,27 @@ <</if>> <</if>> +<<if $releaseID < 1059>> + <<set $args[0].eye = new App.Entity.EyeState()>> + <<run setGeneticEyeColor($args[0], $args[0].origEye)>> + <<if $args[0].eyes === -4>> + <<run eyeSurgery($args[0], "both", "remove")>> + <<else>> + <<if $args[0].eyesImplant === 1>> + <<run eyeSurgery($args[0], "both", "cybernetic")>> + <</if>> + <<if $args[0].eyes === -3>><<run eyeSurgery($args[0], "both", "glass")>> + <<elseif $args[0].eyes === -2>><<run eyeSurgery($args[0], "both", "blind")>> + <<elseif $args[0].eyes === -1>><<run eyeSurgery($args[0], "both", "blur")>> + <</if>> + <<run setEyeColorFull($args[0], $args[0].eyeColor, $args[0].pupil, $args[0].sclerae, "both")>> + <<if typeof $args[0].geneticQuirks.heterochromia === "string">> + <<run setEyeColor($args[0].geneticQuirks.heterochromia, "left")>> + <</if>> + <</if>> + <<run delete $args[0].eyes, delete $args[0].eyesImplant, delete $args[0].eyeColor, delete $args[0].origEye, delete $args[0].pupil, delete $args[0].sclerae>> +<</if>> + <</widget>> <<widget "setLocalPronouns">> diff --git a/src/uncategorized/BackwardsCompatibility.tw b/src/uncategorized/BackwardsCompatibility.tw index 364e97cf5c4dbe67943488c61e00a87e625061e3..9afd11140694ed64abbf942682e6879b4b1383c5 100644 --- a/src/uncategorized/BackwardsCompatibility.tw +++ b/src/uncategorized/BackwardsCompatibility.tw @@ -144,6 +144,11 @@ <<run delete $customSlave.combatSkills>> <</if>> +<<if $releaseID < 1059>> + <<set $customSlave.eye = new App.Entity.SlaveState()>> + <<run delete $customSlave.eyes>> +<</if>> + <<if def $servantMilkersJobs>> <<unset $servantMilkersJobs>> <</if>> @@ -3144,7 +3149,6 @@ Setting missing global variables: <<if ndef $lastWeeksCashIncome>> <<setupLastWeeksCash>> <</if>> - <<if ndef $lastWeeksRepIncome>> <<setupLastWeeksRep>> <</if>> @@ -3364,50 +3368,52 @@ Setting missing slave variables: <</if>> <</if>> -<<if ndef _Slave.eyeColor>> - <<set _Slave.eyeColor = _Slave.eyes>> - <<set _Slave.eyes = 1>> +<<if $releaseID < 1059>> <<if ndef _Slave.eyeColor>> - <<set _Slave.eyeColor = "brown">> + <<set _Slave.eyeColor = _Slave.eyes>> + <<set _Slave.eyes = 1>> + <<if ndef _Slave.eyeColor>> + <<set _Slave.eyeColor = "brown">> + <</if>> <</if>> -<</if>> -<<if ndef _Slave.pupil>> - <<if _Slave.eyeColor == "catlike">> - <<set _Slave.pupil = "catlike">> - <<set _Slave.eyeColor = "brown">> - <<elseif _Slave.eyeColor == "serpent-like">> - <<set _Slave.pupil = "serpent-like">> - <<set _Slave.eyeColor = "brown">> - <<elseif _Slave.eyeColor == "devilish">> - <<set _Slave.pupil = "devilish">> - <<set _Slave.eyeColor = "brown">> - <<elseif _Slave.eyeColor == "demonic">> - <<set _Slave.pupil = "demonic">> - <<set _Slave.eyeColor = "brown">> - <<elseif _Slave.eyeColor == "hypnotic">> - <<set _Slave.pupil = "hypnotic">> - <<set _Slave.eyeColor = "brown">> - <<elseif _Slave.eyeColor == "heart-shaped">> - <<set _Slave.pupil = "heart-shaped">> - <<set _Slave.eyeColor = "brown">> - <<elseif _Slave.eyeColor == "wide-eyed">> - <<set _Slave.pupil = "wide-eyed">> - <<set _Slave.eyeColor = "brown">> - <<elseif _Slave.eyeColor == "almond-shaped">> - <<set _Slave.pupil = "almond-shaped">> - <<set _Slave.eyeColor = "brown">> - <<elseif _Slave.eyeColor == "bright">> - <<set _Slave.pupil = "bright">> - <<set _Slave.eyeColor = "brown">> - <<elseif _Slave.eyeColor == "teary">> - <<set _Slave.pupil = "teary">> - <<set _Slave.eyeColor = "brown">> - <<elseif _Slave.eyeColor == "vacant">> - <<set _Slave.pupil = "vacant">> - <<set _Slave.eyeColor = "brown">> - <<else>> - <<set _Slave.pupil = "circular">> + <<if ndef _Slave.pupil>> + <<if _Slave.eyeColor == "catlike">> + <<set _Slave.pupil = "catlike">> + <<set _Slave.eyeColor = "brown">> + <<elseif _Slave.eyeColor == "serpent-like">> + <<set _Slave.pupil = "serpent-like">> + <<set _Slave.eyeColor = "brown">> + <<elseif _Slave.eyeColor == "devilish">> + <<set _Slave.pupil = "devilish">> + <<set _Slave.eyeColor = "brown">> + <<elseif _Slave.eyeColor == "demonic">> + <<set _Slave.pupil = "demonic">> + <<set _Slave.eyeColor = "brown">> + <<elseif _Slave.eyeColor == "hypnotic">> + <<set _Slave.pupil = "hypnotic">> + <<set _Slave.eyeColor = "brown">> + <<elseif _Slave.eyeColor == "heart-shaped">> + <<set _Slave.pupil = "heart-shaped">> + <<set _Slave.eyeColor = "brown">> + <<elseif _Slave.eyeColor == "wide-eyed">> + <<set _Slave.pupil = "wide-eyed">> + <<set _Slave.eyeColor = "brown">> + <<elseif _Slave.eyeColor == "almond-shaped">> + <<set _Slave.pupil = "almond-shaped">> + <<set _Slave.eyeColor = "brown">> + <<elseif _Slave.eyeColor == "bright">> + <<set _Slave.pupil = "bright">> + <<set _Slave.eyeColor = "brown">> + <<elseif _Slave.eyeColor == "teary">> + <<set _Slave.pupil = "teary">> + <<set _Slave.eyeColor = "brown">> + <<elseif _Slave.eyeColor == "vacant">> + <<set _Slave.pupil = "vacant">> + <<set _Slave.eyeColor = "brown">> + <<else>> + <<set _Slave.pupil = "circular">> + <</if>> <</if>> <</if>> @@ -3758,8 +3764,10 @@ Setting missing slave variables: <<set _Slave.height = random(185,200)>> <</if>> -<<if _Slave.eyeColor == "no default value">> - <<set _Slave.eyeColor = _Slave.origEye>> +<<if $releaseID < 1059>> + <<if _Slave.eyeColor == "no default value">> + <<set _Slave.eyeColor = _Slave.origEye>> + <</if>> <</if>> <<if ndef _Slave.birthSurname>> @@ -3953,22 +3961,24 @@ Updating gene pool records: <</if>> <</if>> - <<if ndef _Slave.eyesImplant>> - <<set _Slave.eyesImplant = 0>> - <</if>> - <<if _Slave.origEye == "implant">> - <<set _Slave.eyesImplant = 1>> - <<set _oldEyes = $genePool.find(function(s) { return s.ID = _Slave.ID; })>> - <<set _Slave.origEye = _oldEyes.origEye>> - <</if>> - <<if _Slave.origEye == "none">> - <<set _Slave.eyes = -3>> - <<set _oldEyes = $genePool.find(function(s) { return s.ID = _Slave.ID; })>> - <<set _Slave.origEye = _oldEyes.origEye>> - <</if>> - <<if _Slave.eyeColor == "empty">> - <<set _Slave.eyeColor = _Slave.origEye>> - <<set _Slave.eyes = -4>> + <<if $releaseID < 1059>> + <<if ndef _Slave.eyesImplant>> + <<set _Slave.eyesImplant = 0>> + <</if>> + <<if _Slave.origEye == "implant">> + <<set _Slave.eyesImplant = 1>> + <<set _oldEyes = $genePool.find(function(s) { return s.ID = _Slave.ID; })>> + <<set _Slave.origEye = _oldEyes.origEye>> + <</if>> + <<if _Slave.origEye == "none">> + <<set _Slave.eyes = -3>> + <<set _oldEyes = $genePool.find(function(s) { return s.ID = _Slave.ID; })>> + <<set _Slave.origEye = _oldEyes.origEye>> + <</if>> + <<if _Slave.eyeColor == "empty">> + <<set _Slave.eyeColor = _Slave.origEye>> + <<set _Slave.eyes = -4>> + <</if>> <</if>> <<if ndef _Slave.custom>> <<set _Slave.custom = {}>> <</if>> diff --git a/src/uncategorized/RESS.tw b/src/uncategorized/RESS.tw index fbeded4c5956b2afdba60c44d9bd17f34b733d2f..c92d6167d25fbc310b25fd2f9f035b99ad3bd45b 100644 --- a/src/uncategorized/RESS.tw +++ b/src/uncategorized/RESS.tw @@ -6905,7 +6905,7 @@ brought in to you. This time <<EventNameLink>> has been sent to deliver it. $He <br><<link "Punish $him for $his forgetfulness">> <<EventNameDelink $activeSlave>> <<replace "#result">> - You're not close to the penthouse kitchen area, so it takes you some time to make your way there. By the time you<<if $PC.dick == 0>> don a strap-on and<</if>> get there, the poor <<if $activeSlave.pregKnown == 1>>pregnant <</if>>$girl is pounding weakly against the refrigerator door to try to get someone's attention. $He looks relieved when you open the door, but $his relief turns to ashes when you shut the door behind you. $He shivers with cold and fear as you sternly point out the release, high up on the door, and then demand $his hands. You bind them together and loop them over the release before hoisting $his legs off the ground so that $his back is against the cold metal door and all $his weight is hanging off the release by $his arm<<if hasBothArms($activeSlave)>>s<</if>>. $He doesn't struggle until you tell $him $he can leave — if $he can get the release open like this. $He tries, but $he can't get enough leverage; $his spastic efforts get weaker as you pull $his <<if ($activeSlave.butt > 5)>>massive ass<<elseif ($activeSlave.butt > 2)>>big butt<<else>>nice little butt<</if>> away from the door and line <<if $PC.dick == 0>>the strap-on<<else>>your cock<</if>> up with $his <<if ($activeSlave.anus > 2)>>loose asspussy<<elseif ($activeSlave.anus > 1)>>asshole<<else>>tight little asshole<</if>>. Teeth chattering, legs shaking with cold, $he takes a buttfuck in the cold cooler, hanging from what $he should have used to let $himself out. When you finish, you hit it yourself and drop $his legs, letting $him unhook $himself and flee to the warmth outside. $He @@.gold;begs your pardon@@ abjectly as $he rubs $his <<if $activeSlave.belly >= 5000>> _belly $activeSlave.skin belly <<else>>$activeSlave.skin shoulders <</if>>to warm $himself up<<if $PC.dick == 0>><<else>>, ignoring the cum <<if ($activeSlave.anus > 2)>>leaking out of $his fucked-out anus<<elseif ($activeSlave.anus > 1)>>leaking out of $his now-gaped backdoor<<else>>filling $his still-tight anus<</if>><</if>>. + You're not close to the penthouse kitchen area, so it takes you some time to make your way there. By the time you<<if $PC.dick == 0>> don a strap-on and<</if>> get there, the poor <<if $activeSlave.pregKnown == 1>>pregnant <</if>>$girl is pounding weakly against the refrigerator door to try to get someone's attention. $He looks relieved when you open the door, but $his relief turns to ashes when you shut the door behind you. $He shivers with cold and fear as you sternly point out the release, high up on the door, and then demand $his hands. You bind them together and loop them over the release before hoisting $his legs off the ground so that $his back is against the cold metal door and all $his weight is hanging off the release by $his arm<<if hasBothArms($activeSlave)>>s<</if>>. $He doesn't struggle until you tell $him $he can leave — if $he can get the release open like this. $He tries, but $he can't get enough leverage; $his spastic efforts get weaker as you pull $his <<if ($activeSlave.butt > 5)>>massive ass<<elseif ($activeSlave.butt > 2)>>big butt<<else>>nice little butt<</if>> away from the door and line <<if $PC.dick == 0>>the strap-on<<else>>your cock<</if>> up with $his <<if ($activeSlave.anus > 2)>>loose asspussy<<elseif ($activeSlave.anus > 1)>>asshole<<else>>tight little asshole<</if>>. Teeth chattering, legs shaking with cold, $he takes a buttfuck in the cold cooler, hanging from what $he should have used to let $himself out. When you finish, you hit it yourself and drop $his legs, letting $him unhook $himself and flee to the warmth outside. $He @@.gold;begs your pardon@@ abjectly as $he rubs $his <<if $activeSlave.belly >= 5000>> _belly $activeSlave.skin belly <<else>>$activeSlave.skin shoulders <</if>>to warm $himself up<<if $PC.dick > 0>>, ignoring the cum <<if ($activeSlave.anus > 2)>>leaking out of $his fucked-out anus<<elseif ($activeSlave.anus > 1)>>leaking out of $his now-gaped backdoor<<else>>filling $his still-tight anus<</if>><</if>>. <<set $activeSlave.trust -= 5>> <<= VCheck.Anal()>> <</replace>> @@ -6955,7 +6955,7 @@ brought in to you. This time <<EventNameLink>> has been sent to deliver it. $He <<= VCheck.Anal()>> <</if>> <</if>> - The amount of air you can pull through the snorkel just isn't enough to facilitate the throes of your lovemaking, so by the time you're done, $he's so exhausted $he can barely float to the edge of the pool. Fortunately $his lovely tits make for quite the floatation device, so you gently guide $him to the shallow end<<if $PC.dick || $activeSlave.balls>>, leaving a trail of cum in your wake<</if>>. + The amount of air you can pull through the snorkel just isn't enough to facilitate the throes of your lovemaking, so by the time you're done, $he's so exhausted $he can barely float to the edge of the pool. Fortunately $his lovely tits make for quite the flotation device, so you gently guide $him to the shallow end<<if $PC.dick || $activeSlave.balls>>, leaving a trail of cum in your wake<</if>>. <<set $activeSlave.trust += 4>> <</replace>> <</link>><<if canDoVaginal($activeSlave) && ($activeSlave.vagina == 0)>>//This option will take $his virginity//<<elseif !canDoVaginal($activeSlave) && ($activeSlave.anus == 0)>> //This option will take $his anal virginity//<</if>> @@ -7919,12 +7919,13 @@ brought in to you. This time <<EventNameLink>> has been sent to deliver it. $He <<set $slaves.forEach(function(s) { if (s.devotion <= 20) { s.trust -= 10; } })>> <</replace>> <</link>> - <<if $activeSlave.eyes != -2>> + <<if getBestVision($activeSlave) > 0>> <br><<link "Blind the would-be escapee">> <<EventNameDelink $activeSlave>> <<replace "#result">> The simple thing to do would be to sedate $activeSlave.slaveName and haul $him to the remote surgery for $his punishment. That would deny $him the added weight of terror, however, and would stop your other slaves from learning by the sight of it. So, you restrain $him, pronounce judgment, and drag $his struggling, weeping form through the penthouse to the surgery. You make sure to point out all the things $he'll never get to see again. $activeSlave.slaveName is @@.mediumorchid;filled with implacable hatred@@ by this terrible punishment, and $his @@.red;health is slightly damaged@@ by the surgery. However, every single one of your other slaves not already obedient to you is @@.gold;utterly terrified@@ by the example set. - <<set $activeSlave.devotion -= 50, $activeSlave.trust -= 50, $activeSlave.health -= 20, $activeSlave.eyes = -2, $activeSlave.eyeColor = "dulled " + $activeSlave.eyeColor>> + <<set $activeSlave.devotion -= 50, $activeSlave.trust -= 50, $activeSlave.health -= 20>> + <<run eyeSurgery($activeSlave, "both", "blind")>> <<set $slaves.forEach(function(s) { if (s.devotion <= 20) { s.trust -= 10; } })>> <</replace>> <</link>> @@ -9782,12 +9783,9 @@ brought in to you. This time <<EventNameLink>> has been sent to deliver it. $He <<link "Make an example by forcing $him to take a massive dose">> <<EventNameDelink $activeSlave>> <<replace "#result">> - You take $him by the shoulders<<if $activeSlave.eyes > -2>>, - look into $his eyes, + You take $him by the shoulders<<if hasAnyEyes($activeSlave)>>, + look into $his eye<<if hasBothEyes($activeSlave)>>s<</if>>, <</if>> - /*<<if hasAnyEyes($activeSlave)>>, - look into $his eye<<if hasBothEyes($activeSlave)>>s<</if>>, @Arkerthan - <</if>>*/ and tell $him you'll fix things so $he doesn't mind so much. $He looks hopeful, even when you tell $him to take $his pill. $He does, and you hand $him another. And another. $He's crying with dread by the fourth pill, knowing that this is $his punishment for complaining. $His pupils dilate, $he begins to breathe hard, and $his $activeSlave.skin skin flushes badly. $He tries to beg you to fuck $him but can't seem to find the words. $He begins to masturbate compulsively, so hard that $he collapses to the kitchen floor with $his first spastic orgasm. <<if ($activeSlave.chastityPenis == 1)>> $His cock is painfully compressed by $his chastity cage, but it does nothing to stop $his frantic efforts to come. @@ -12392,7 +12390,7 @@ brought in to you. This time <<EventNameLink>> has been sent to deliver it. $He <<EventNameDelink $activeSlave>> <<replace "#result">> You stand up from your desk and approach $him very closely without touching $him. Looking straight - /*<<if hasAnyEyes($activeSlave)>> + <<if hasAnyEyes($activeSlave)>> into $his eye<<if hasBothEyes($activeSlave)>>s<</if>>, which are <<if canSee($activeSlave)>> @@ -12400,10 +12398,9 @@ brought in to you. This time <<EventNameLink>> has been sent to deliver it. $He <<else>> gazing in your general direction <</if>> - <<else>> @Arkerthan + <<else>> at $him <</if>>, - */ into $his eyes, which are fixed helplessly on you, you tell $him that you'll let $him say whatever it is $he needs to say to you, but only if $he's very quiet. $He <<if canSee($activeSlave)>>looks at you with huge eyes but<</if>> nods vigorously. $He waits until you lean into $him, making $him shiver at your proximity, before putting $his <<if $activeSlave.lips > 70>> @@ -15637,8 +15634,11 @@ brought in to you. This time <<EventNameLink>> has been sent to deliver it. $He sphincter, <</if>> a gasp of air into $his lungs, and a slight shiver. There is a flaw at the corner of $his mouth that might be transitory pleasure, but a look - /*<<if canSee($activeSlave)>>into $his eye<<if hasBothEyes($activeSlave)>>s<</if>><<else>>at $his face<</if>> @Arkerthan*/ - into $his eyes + <<if canSee($activeSlave)>> + into $his eye<<if hasBothEyes($activeSlave)>>s<</if>> + <<else>> + at $his face + <</if>> confirms that it is not so. <</replace>> <</link>><<if canDoVaginal($activeSlave) && ($activeSlave.vagina == 0)>>//This option will take $his virginity//<<elseif !canDoVaginal($activeSlave) && ($activeSlave.anus == 0)>> //This option will take $his anal virginity//<</if>> @@ -17529,14 +17529,15 @@ brought in to you. This time <<EventNameLink>> has been sent to deliver it. $He <</if>> <</if>> <br><br> - There's a momentary flaw in $his rhythm, a catch in $his breath as $he realizes what you're doing, but $he gets right back into it, displaying $his pleasure with nothing more than a ghost of a smile/*<<if canSee($activeSlave) || canHear($activeSlave)>> + There's a momentary flaw in $his rhythm, a catch in $his breath as $he realizes what you're doing, but $he gets right back into it, displaying $his pleasure with nothing more than a ghost of a smile + <<if canSee($activeSlave) || canHear($activeSlave)>> and a <<if canSee($activeSlave)>> - widening of $his eye<<if hasBothEyes($activeSlave)>>s<</if>>as $he looks you up and down @Arkerthan + widening of $his eye<<if hasBothEyes($activeSlave)>>s<</if>>as $he looks you up and down <<else>> slight perk of $his ears as $he tracks your motion <</if>> - <</if>>*/. + <</if>>. $He doesn't shove $himself against you; that would be coarse. Instead $he dances alluringly, just out of your grasp. Taking the dominant role, you encircle $him in your arms and draw $him in close, $his heat perceptible against your skin before the very first graze of $his $activeSlave.skin body against yours. $He continues to dance gorgeously as $he helps you out of your clothes. <br><br> When you're nude, $he turns $his back to you and starts to grind, letting you feel $his @@ -18002,8 +18003,9 @@ brought in to you. This time <<EventNameLink>> has been sent to deliver it. $He <<set $activeSlave.health -= 20>> <<set $activeSlave.race = $arcologies[0].FSSubjugationistRace>> <<set $activeSlave.skin = randomRaceSkin($arcologies[0].FSSubjugationistRace)>> - <<set $activeSlave.eyeColor = randomRaceEye($arcologies[0].FSSubjugationistRace)>> + <<run setEyeColor($activeSlave, randomRaceEye($arcologies[0].FSSubjugationistRace))>> <<set $activeSlave.hColor = randomRaceHair($arcologies[0].FSSubjugationistRace)>> + <<set $activeSlave.override_Skin = 1, $activeSlave.override_Eye_Color = 1, $activeSlave.override_H_Color = 1>> <</replace>> <</link>><<if ($activeSlave.anus == 0) || ($activeSlave.vagina == 0)>> //This option will take $his virginity and ignore $his chastity//<</if>> <br><<link "No surgery today, but give $him something to think about">> @@ -19773,7 +19775,7 @@ brought in to you. This time <<EventNameLink>> has been sent to deliver it. $He <<else>> anal pain <</if>> - of your coupling. Judging by the empty look in $his eyes that persists past $his dismissal from your office, $he might @@.gold;not feel any better@@ about the age difference but you've definitely @@.hotpink;fucked $him into compliance.@@ + of your coupling. Judging by the <<if !canSee($activeSlave)>>exceptionally <</if>>empty look in $his eyes that persists past $his dismissal from your office, $he might @@.gold;not feel any better@@ about the age difference but you've definitely @@.hotpink;fucked $him into compliance.@@ <<set $activeSlave.devotion += 4, $activeSlave.trust -= 4>> <<if canDoVaginal($activeSlave)>> <<= VCheck.Vaginal()>> @@ -19824,7 +19826,7 @@ brought in to you. This time <<EventNameLink>> has been sent to deliver it. $He <</if>> <</if>> <</replace>> - <</link>> //This option will render $activeSlave.slaveName pregnant//<<if canDoVaginal($activeSlave) && ($activeSlave.vagina == 0)>> // and take $his virginity//<<elseif !canDoVaginal($activeSlave) && ($activeSlave.anus == 0)>> //and take $his anal virginity//<</if>> + <</link>> //This option will render $activeSlave.slaveName pregnant//<<if canDoVaginal($activeSlave) && ($activeSlave.vagina == 0)>> //and take $his virginity//<<elseif !canDoVaginal($activeSlave) && ($activeSlave.anus == 0)>> //and take $his anal virginity//<</if>> <</if>> <<case "devoted educated slave">> diff --git a/src/uncategorized/RETS.tw b/src/uncategorized/RETS.tw index 24b8934053dfc121e9bd271f85bc5e44db446c58..70eeceeefb8d4f3d53447b98898b812c8c33b691 100644 --- a/src/uncategorized/RETS.tw +++ b/src/uncategorized/RETS.tw @@ -599,7 +599,7 @@ You look in on your slaves as a group of them heads for bed. $subSlave.slaveName <<else>> skinny <</if>> -waist to cup _his2 <<if $subSlave.dick > 0>>cock<<elseif $subSlave.vagina == -1>>asshole<<else>>pussy<</if>> possessively with one hand.<<if $subSlave.eyes != -4>> $subSlave.slaveName closes _his2 <<= App.Desc.eyesColor($subSlave)>>.<</if>> +waist to cup _his2 <<if $subSlave.dick > 0>>cock<<elseif $subSlave.vagina == -1>>asshole<<else>>pussy<</if>> possessively with one hand.<<if hasAnyEyes($activeSlave)>> $subSlave.slaveName closes _his2 <<= App.Desc.eyesColor($subSlave)>>.<</if>> <br><br> $activeSlave.slaveName chuckles into $subSlave.slaveName's ear, crooning, <<if $subSlave.bellyPreg >= 120000>> diff --git a/src/uncategorized/addCustomDescriptors.tw b/src/uncategorized/addCustomDescriptors.tw index 8f90521a1d598bcb9d5f2850b38cc6b8f32066e1..31cb869d385e453ff42349e27d2c13808141ed54 100644 --- a/src/uncategorized/addCustomDescriptors.tw +++ b/src/uncategorized/addCustomDescriptors.tw @@ -127,13 +127,18 @@ Custom hair color: <<textbox "$activeSlave.hColor" $activeSlave.hColor "Add cust <br> //For best results, use a short, uncapitalized and unpunctuated description; for example: 'black with purple highlights'// <br><br> -<<if $activeSlave.eyeColor != $activeSlave.origEye>> - $He is wearing $activeSlave.eyeColor lenses. +<<if getLenseCount($activeSlave) > 0>> + $He is wearing <<print App.Desc.eyesColor($activeSlave, "", "lense", "lenses")>>. <<else>> - $He has $activeSlave.eyeColor eyes. + $He has <<print App.Desc.eyesColor($activeSlave)>>. +<</if>><br> +<<if hasLeftEye($activeSlave)>> + Custom left eye color: <<textbox "$activeSlave.eye.left.iris" $activeSlave.eye.left.iris "Add custom descriptors">><br> <</if>> -Custom eye color: <<textbox "$activeSlave.eyeColor" $activeSlave.eyeColor "Add custom descriptors">> -<br> //For best results, use a short, uncapitalized and unpunctuated description; for example: 'blue'// +<<if hasRightEye($activeSlave)>> + Custom right eye color: <<textbox "$activeSlave.eye.right.iris" $activeSlave.eye.right.iris "Add custom descriptors">><br> +<</if>> + //For best results, use a short, uncapitalized and unpunctuated description; for example: 'blue'// <br><br> Change $his custom tattoo: <<textbox "$activeSlave.custom.tattoo" $activeSlave.custom.tattoo "Add custom descriptors">> <br> //For best results, use complete sentences; for example: '$He has blue stars tattooed along $his cheekbones.'// diff --git a/src/uncategorized/clubReport.tw b/src/uncategorized/clubReport.tw index 9a93171e6667fed8c948bd1238ce507cff4d0d94..5035045e066ad674f5c97214fd42df4f13d98ada 100644 --- a/src/uncategorized/clubReport.tw +++ b/src/uncategorized/clubReport.tw @@ -56,7 +56,7 @@ <<elseif (_FLsFetish == 2)>> Every day $he gets to enjoy hundreds of stares on $his skin, and @@.lightsalmon;becomes more of an exhibitionist.@@ <</if>> - <<if $DJ.eyes <= -2>> + <<if getBestVision($DJ) === 0>> $His lack of eyesight doesn't slow $him down; rather, it strengthens $his other senses. $His tracks have a distinct sound, since $he experiences noise as $his sight. <</if>> <<if ($DJ.skill.entertainment <= 10)>> diff --git a/src/uncategorized/completeCatalog.tw b/src/uncategorized/completeCatalog.tw index 7a3cd0054a03b7ba9e973c1287be7cf876776606..f5b325328aa404888476c6f4b8850179529d4528 100644 --- a/src/uncategorized/completeCatalog.tw +++ b/src/uncategorized/completeCatalog.tw @@ -25,7 +25,7 @@ <<set $activeSlave.origRace = $activeSlave.race>> <</if>> <<if $activeSlave.override_Eye_Color != 1>> - <<set $activeSlave.eyeColor = getGeneticEyeColor($activeSlave)>> + <<run resetEyeColor($activeSlave, "both")>> <</if>> <<if $activeSlave.override_H_Color != 1>> <<set $activeSlave.hColor = getGeneticHairColor($activeSlave)>> diff --git a/src/uncategorized/costsWidgets.tw b/src/uncategorized/costsWidgets.tw index 8294ebf8ef4ed74bf707977f1c03f6315aaff89e..a0429d5e60b72489e94ce9ac39285835cdbceee3 100644 --- a/src/uncategorized/costsWidgets.tw +++ b/src/uncategorized/costsWidgets.tw @@ -228,12 +228,12 @@ <br> <i>Increased living expenses due to lack of sight:</i> @@.yellowgreen;<<print cashFormat(50)>>@@ <<set _individualCosts += 50>> - <<elseif $args[0].eyes <= -1 && $args[0].eyewear != "corrective glasses" && $args[0].eyewear != "corrective contacts">> - <br> <i>Increased living expenses due to poor vision:</i> - @@.yellowgreen;<<print cashFormat(25)>>@@ - <<set _individualCosts += 25>> - <<elseif ($args[0].eyewear == "blurring glasses") || ($args[0].eyewear == "blurring contacts")>> - <br> <i>Increased living expenses due to blurred vision:</i> + <<elseif !canSeePerfectly($args[0])>> + <<if getBestVision($args[0] < 2)>> + <br> <i>Increased living expenses due to poor vision:</i> + <<else>> + <br> <i>Increased living expenses due to blurred vision:</i> + <</if>> @@.yellowgreen;<<print cashFormat(25)>>@@ <<set _individualCosts += 25>> <</if>> diff --git a/src/uncategorized/customSlave.tw b/src/uncategorized/customSlave.tw index 5cc040be217bc9db0d02c02ba1f1a893db0d26fb..153a0f39d139578d5b06fbddae5b4ce09bc95682 100644 --- a/src/uncategorized/customSlave.tw +++ b/src/uncategorized/customSlave.tw @@ -1141,30 +1141,24 @@ Skin tone: <span id = "skin"> <br> <span id = "eyes"> -<<if $seeExtreme == 1>> - <<if $customSlave.eyes == 1>>Normal vision. - <<elseif $customSlave.eyes == -1>>Nearsighted. - <<else>>Blind. - <</if>> -<<else>> - <<if $customSlave.eyes == 1>>Normal vision. - <<else>>Nearsighted. - <</if>> +<<if getBestVision($customSlave) === 2>>Normal vision. +<<elseif getBestVision($customSlave) === 1>>Nearsighted. +<<else>>Blind. <</if>> </span> <<link "Normal Vision">> - <<set $customSlave.eyes = 1>> + <<run eyeSurgery($customSlave, "both", "fix")>> <<CustomSlaveEyes>> <</link>> | <<link "Nearsighted">> - <<set $customSlave.eyes = -1>> + <<run eyeSurgery($customSlave, "both", "blur")>> <<CustomSlaveEyes>> <</link>> <<if $seeExtreme == 1>> | <<link "Blind">> - <<set $customSlave.eyes = -2>> + <<run eyeSurgery($customSlave, "both", "blind")>> <<CustomSlaveEyes>> <</link>> <</if>> @@ -1351,7 +1345,7 @@ Nationality: $customSlave.nationality. <br><br> <<link "Reset custom order form">> - <<set $customSlave = {age: 19, health: 0, muscles: 0, lips: 15, heightMod: "normal", weight: 0, face: 0, race: "white", skin: "left natural", boobs: 500, butt: 3, sex: 1, virgin: 0, dick: 2, balls: 2, clit: 0, labia: 0, vaginaLube: 1, analVirgin: 0, skills: 15, skill: {whore: 15, combat: 0}, intelligence: 0, intelligenceImplant: 0, nationality: "Stateless", arm: {left: new App.Entity.LimbState(), right: new App.Entity.LimbState()}, leg: {left: new App.Entity.LimbState(), right: new App.Entity.LimbState()}, eyes: 1, hears: 0}>> + <<set $customSlave = {age: 19, health: 0, muscles: 0, lips: 15, heightMod: "normal", weight: 0, face: 0, race: "white", skin: "left natural", boobs: 500, butt: 3, sex: 1, virgin: 0, dick: 2, balls: 2, clit: 0, labia: 0, vaginaLube: 1, analVirgin: 0, skills: 15, skill: {whore: 15, combat: 0}, intelligence: 0, intelligenceImplant: 0, nationality: "Stateless", arm: {left: new App.Entity.LimbState(), right: new App.Entity.LimbState()}, leg: {left: new App.Entity.LimbState(), right: new App.Entity.LimbState()}, eye: new App.Entity.EyeState(), hears: 0}>> <<goto "Custom Slave">> <</link>> diff --git a/src/uncategorized/freeRangeDairyAssignmentScene.tw b/src/uncategorized/freeRangeDairyAssignmentScene.tw index acfe4ef9b68ea9b54bba7f44a84bdb14147e6a5b..a9194244ee13df7d11ba407c73460f911dd68e11 100644 --- a/src/uncategorized/freeRangeDairyAssignmentScene.tw +++ b/src/uncategorized/freeRangeDairyAssignmentScene.tw @@ -42,15 +42,15 @@ While <<if canWalk($activeSlave) >>walking<<else>>being carried<</if>> to $his d <<setLocalPronouns $slaves[_frdas] 2>> <<set _aroused = true>> <br> The hyper-endowed cum-cow $slaves[_frdas].slaveName is the pride of $dairyName. _He2 is limply hanging on _his2 milking chair, panting heavily because of the constant suction on _his2 dick. _He2 is obviously nearing climax. Soon, - /*<<if hasAnyNaturalEyes($slaves[_frdas])>> + <<if hasAnyNaturalEyes($slaves[_frdas])>> _his2 <<if hasBothNaturalEyes($slaves[_frdas])>> eyes bulge <<else>> eye bulges <</if>> - and @Arkerthan - <</if>>*/ + and + <</if>> _his2 muscles tense. <<if $dairyStimulatorsSetting == 1>> <<if $slaves[_frdas].prostate != 0>> diff --git a/src/uncategorized/industrialDairyAssignmentScene.tw b/src/uncategorized/industrialDairyAssignmentScene.tw index 11f85da6c30157cba53733af47816f01a04aa870..87706ae8439dad5212d902ec86c0d121b0c58486 100644 --- a/src/uncategorized/industrialDairyAssignmentScene.tw +++ b/src/uncategorized/industrialDairyAssignmentScene.tw @@ -330,7 +330,7 @@ When $activeSlave.slaveName reports to the dairy, it's to the <<if canSee($activ <</if>> A visor lowers onto $his face to keep $his mind at least minimally stimulated. <<if canHear($activeSlave) && !canSee($activeSlave)>> - It will play audio from + It will play audio from <<else>> It will display garish <</if>> diff --git a/src/uncategorized/multiImplant.tw b/src/uncategorized/multiImplant.tw index 54953383c66a93dcc62b0be20d5dd791cd298d1c..853b25a7d4b19d247e7f81197553e29befb38b8e 100644 --- a/src/uncategorized/multiImplant.tw +++ b/src/uncategorized/multiImplant.tw @@ -140,11 +140,9 @@ You head down to your <<if $surgeryUpgrade == 1>>heavily upgraded and customized /* order here is important, do not change it without good reason */ /* eyes */ <<if _slaveOrgans.eyes != 0>> - <<if ($activeSlave.eyes <= -2) && $activeSlave.eyesImplant == 0>> + <<if !hasAnyCyberneticEyes($activeSlave) && getBestVision($activeSlave) === 0>> <<run cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)>> - <<set $activeSlave.eyes = 1>> - <<set $activeSlave.eyeColor = $activeSlave.origEye>> - /* no way to salvage original eye color */ + <<run eyeSurgery($activeSlave, "both", "normal")>> <<set $activeSlave.health -= 20>> <<if $organFarmUpgrade == 2>> <<set $activeSlave.chem += 20>> @@ -152,16 +150,10 @@ You head down to your <<if $surgeryUpgrade == 1>>heavily upgraded and customized <<set $surgeryType = "unblind">> <br><hr> <<include "Surgery Degradation">> - <<elseif $activeSlave.eyesImplant == 1>> - <<run cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)>> - <<set $activeSlave.eyes = 1>> - <<set $activeSlave.eyeColor = $activeSlave.origEye>> - <<set $activeSlave.health -= 20>> - <<if $organFarmUpgrade == 2>> - <<set $activeSlave.chem += 20>> - <</if>> - <<set $surgeryType = "newEyes">> - <<include "Surgery Degradation">> + <<elseif hasBothCyberneticEyes($activeSlave)>> + <br><hr> + @@.red;Could not implant eyes on $activeSlave.slaveName: $he has ocular implants installed, visit the remote surgery to install manually.@@ + <<set $completedOrgans.push(_slaveOrgans.eyes)>> <<else>> <br><hr> @@.red;Could not implant eyes on $activeSlave.slaveName: $he is not blind.@@ @@ -1015,8 +1007,9 @@ You head down to your <<if $surgeryUpgrade == 1>>heavily upgraded and customized <br><hr> <<switch _p.id>> <<case "ocular">> - <<if $activeSlave.eyes < -1>> - <<set $activeSlave.eyesImplant = 1, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20, $surgeryType = "ocular implant">> + <<if getBestVision($activeSlave) === 0>> + <<run eyeSurgery($activeSlave, "both", "cybernetic"), cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)>> + <<set $activeSlave.health -= 20, $surgeryType = "ocular implant">> <<include "Surgery Degradation">> <<else>> //Since $he has working eyes the <<= setup.prosthetics.ocular.name>> will be put into storage.// diff --git a/src/uncategorized/newSlaveIntro.tw b/src/uncategorized/newSlaveIntro.tw index 26260c957d97c76824b91c6c2ed049073a2fcfae..2b5642e5e0163c9cc11ac106e74bf535e3b5b291 100644 --- a/src/uncategorized/newSlaveIntro.tw +++ b/src/uncategorized/newSlaveIntro.tw @@ -852,7 +852,7 @@ The legalities completed, ''__@@.pink;<<= SlaveFullName($activeSlave)>>@@__'' << <<if canDoAnal($activeSlave)>> | <<link "Put $him in $his place">> <<replace "#introResult">> - You stand up and tell $him to strip. $He hesitates, staring at you in dawning apprehension, until $he <<if canSee($activeSlave)>>sees<<else>>realizes<</if>> that you're stepping into a strap-on. $He unconsciously takes a step backward, but that's as far as $he gets before you cover the ground between you, grab $him by the throat, and push $his back until $he falls onto the couch. You drag the head of the fake phallus down over $his pussylips, and $he shivers, but you keep going, telling $him that you'll only be fucking $him there when $he's good. When $he's bad, you'll assfuck $him. $His eyes fly open and $he tries to struggle, but you give $him a warning slap and then push yourself home. $He starts to cry, more from hopelessness than anal pain, knowing that @@.mediumorchid;you're a slaveowner like any other,@@ more likely to @@.gold;abuse $him@@ than be sympathetic. + You stand up and tell $him to strip. $He hesitates, staring at you in dawning apprehension, until $he <<if canSee($activeSlave)>>sees<<else>>realizes<</if>> that you're stepping into a strap-on. $He unconsciously takes a step backward, but that's as far as $he gets before you cover the ground between you, grab $him by the throat, and push $his back until $he falls onto the couch. You drag the head of the fake phallus down over $his pussylips, and $he shivers, but you keep going, telling $him that you'll only be fucking $him there when $he's good. When $he's bad, you'll assfuck $him. <<if hasBothEyes($activeSlave)>>$His eyes fly open and $he <<else>> $He <</if>> tries to struggle, but you give $him a warning slap and then push yourself home. $He starts to cry, more from hopelessness than anal pain, knowing that @@.mediumorchid;you're a slaveowner like any other,@@ more likely to @@.gold;abuse $him@@ than be sympathetic. <</replace>> <<set $activeSlave.devotion -= 5>> <<set $activeSlave.trust -= 5>> @@ -1351,7 +1351,7 @@ The legalities completed, ''__@@.pink;<<= SlaveFullName($activeSlave)>>@@__'' << <br> <<link "Sterilize $him">> <<replace "#introResult">> - You drag $him to the remote surgery and strap $him face-up with $his<<if $activeSlave.bellyPreg >= 1500>> pregnant<</if>> stomach bare. $He doesn't understand what's coming for a while, even as $his belly is carefully cleaned and disinfected. $He begins to panic at the <<if canSee($activeSlave)>>sight<<elseif canHear($activeSlave)>>sound<<else>>touch<</if>> of the approaching surgical manipulators, cringing as they cut into $his<<if $activeSlave.bellyPreg >= 1500>> rounded<</if>> abdomen. $He squeals in horror as $his<<if $activeSlave.preg > $activeSlave.pregData.normalBirth/1.33>> swollen womb, still moving with life,<<elseif $activeSlave.bellyPreg >= 1500>> pregnant womb<<else>> womb<</if>> and ovaries are extracted before $his eyes. + You drag $him to the remote surgery and strap $him face-up with $his<<if $activeSlave.bellyPreg >= 1500>> pregnant<</if>> stomach bare. $He doesn't understand what's coming for a while, even as $his belly is carefully cleaned and disinfected. $He begins to panic at the <<if canSee($activeSlave)>>sight<<elseif canHear($activeSlave)>>sound<<else>>touch<</if>> of the approaching surgical manipulators, cringing as they cut into $his<<if $activeSlave.bellyPreg >= 1500>> rounded<</if>> abdomen. $He squeals in horror as $his<<if $activeSlave.preg > $activeSlave.pregData.normalBirth/1.33>> swollen womb, still moving with life,<<elseif $activeSlave.bellyPreg >= 1500>> pregnant womb<<else>> womb<</if>> and ovaries are extracted<<if canSee($activeSlave)>> before $his eyes<</if>>. <<if $activeSlave.fetish == "pregnancy" && $activeSlave.pregKnown == 1>> <<if ($activeSlave.preg > $activeSlave.pregData.normalBirth/1.6) && (canSee($activeSlave))>> $He watches $his exposed womb with absolute terror in $his eyes. A small handprint bulges against the organ; $he sobs once before $his mind @@.red;shatters at the sight.@@ @@ -1773,7 +1773,7 @@ The legalities completed, ''__@@.pink;<<= SlaveFullName($activeSlave)>>@@__'' << <br> <<link "Make sure $he knows pregnant women can still enjoy sex.">> <<replace "#introResult">> - You introduce $him to obedience and proper manners regarding $his <<= WrittenMaster($activeSlave)>> before sending $him off for a physical. That night, $he's returned to your room, and finds you doing business on a tablet in bed. $He looks doubtful, but obeys when you direct $him to get into bed<<if $PC.dick == 0>>, even after $he realizes you're wearing a strap-on<</if>>. You turn out the light and spoon $him from behind, kissing $his neck and ears, cupping $his swollen breasts, and running your hands across $his pregnant belly with its taut $activeSlave.skin skin. $He's awkward at first but $his body responds to the tenderness. Before long $he's humping $his pussy back and forth against <<if $PC.dick != 0>>your cock<<else>>the strap-on<</if>>. You begin to gently work <<if $PC.dick != 0>>your dickhead<<else>>its tip<</if>> up $his used pussy. $He's unsure of $himself, but you keep $him nice and relaxed. After several minutes of gentle loving, $he's nothing but a satisfied puddle in your arms. $He believes that $he can @@.mediumaquamarine;trust@@ you won't harm $him or $his child. + You introduce $him to obedience and proper manners regarding $his <<= WrittenMaster($activeSlave)>> before sending $him off for a physical. That night, $he's returned to your room, and finds you doing business on a tablet in bed. $He looks doubtful, but obeys when you direct $him to get into bed<<if $PC.dick == 0>>, even after $he realizes you're wearing a strap-on<</if>>. You turn out the light and spoon $him from behind, kissing $his neck and ears, cupping $his swollen breasts, and running your hands across $his pregnant belly with its taut $activeSlave.skin skin. $He's awkward at first but $his body responds to the tenderness. Before long $he's humping $his pussy back and forth against <<if $PC.dick != 0>>your cock<<else>>the strap-on<</if>>. You begin to gently work <<if $PC.dick != 0>>your dickhead<<else>>its tip<</if>> up $his used pussy. $He's unsure of $himself, but you keep $him nice and relaxed. After several minutes of gentle loving, $he's nothing but a satisfied puddle in your arms. $He believes that $he can @@.mediumaquamarine;trust@@ you won't harm $him or $his child<<if $activeSlave.pregType > 1>>ren<</if>>. <</replace>> <<set $activeSlave.trust += 5>> <<= VCheck.Vaginal()>> @@ -2131,13 +2131,13 @@ The legalities completed, ''__@@.pink;<<= SlaveFullName($activeSlave)>>@@__'' << As you release $him $he swings up with difficulty, but @@.hotpink;$he seems very pleased@@ to stay plugged for now. <<set $activeSlave.devotion += 5>> <<else>> - <<if $activeSlave.eyes <= -2>>$His face swells<<else>>$His eyes swell<</if>> with shock, but $he does not flinch or make a sound. When $he seems full enough, you shut off the valve, deciding to leave $him plugged for now. $He waddles off @@.hotpink;without apparent resentment@@ of this treatment. + <<if !hasBothEyes($activeSlave)>>$His face swells<<else>>$His eyes swell<</if>> with shock, but $he does not flinch or make a sound. When $he seems full enough, you shut off the valve, deciding to leave $him plugged for now. $He waddles off @@.hotpink;without apparent resentment@@ of this treatment. <<set $activeSlave.devotion += 4>> <</if>> <<else>> <<if $activeSlave.fetish == "cumslut">> <<if $activeSlave.fetishKnown == 0>> - <<if $activeSlave.eyes <= -2>>$His face swells<<else>>$His eyes swell<</if>> with profound horror at the realization of what is happening, and begin to leak tears as $he realizes that having $his body swell with semen is getting $him horny. @@.green;$He's a cum fetishist!@@ + <<if !hasBothEyes($activeSlave)>>$His face swells<<else>>$His eyes swell<</if>> with profound horror at the realization of what is happening, and begin to leak tears as $he realizes that having $his body swell with semen is getting $him horny. @@.green;$He's a cum fetishist!@@ <<set $activeSlave.fetishKnown = 1>> <<else>> $He groans with guilty pleasure, feeling $his muscles ache and $his torso swell. $He does not orgasm from $his "meal," but feels much more pleasure than $he's willing to admit. @@ -2186,9 +2186,9 @@ The legalities completed, ''__@@.pink;<<= SlaveFullName($activeSlave)>>@@__'' << <<link "Threaten $him with the Industrial Dairy">> <<setNonlocalPronouns $seeDicks>> <<replace "#introResult">> - You tell $him that it's in $his interests to be a good $girl. $He does not react immediately, perhaps wondering if you think such a trite statement will have a real impact, but then you <<if canSee($activeSlave)>>point at<<else>>direct $him towards<</if>> a wallscreen behind $him. $He turns, and beholds a live feed from the Industrial Dairy. + You tell $him that it's in $his interests to be a good $girl. $He does not react immediately, perhaps wondering if you think such a trite statement will have a real impact, but then you <<if canSee($activeSlave)>>point at<<else>>direct $him towards<</if>> a wallscreen behind $him. $He turns, and beholds a live feed from the Industrial Dairy. <<if canSee($activeSlave)>> - $He gazes spellbound at the interleaved row of bodies intertwined with machines in embraces far more intimate than any lover could hope to match. The gently heaving masses of breastflesh hold $his fascinated and horrified attention until one of the machines fortuitously chooses this moment to cycle its occupant's anal hydration regimen. + $He gazes spellbound at the interleaved row of bodies intertwined with machines in embraces far more intimate than any lover could hope to match. The gently heaving masses of breastflesh hold $his fascinated and horrified attention until one of the machines fortuitously chooses this moment to cycle its occupant's anal hydration regimen. <<elseif canHear($activeSlave)>> $He listens entranced by the steady rhythm of the machines collecting their occupants' bodily fluids. The muffled moans and groans of the restrained slaves hold $his fascinated and horrified attention until one of the machines fortuitously chooses this moment to cycle its occupant's anal hydration regimen. <<else>> @@ -2236,7 +2236,7 @@ The legalities completed, ''__@@.pink;<<= SlaveFullName($activeSlave)>>@@__'' << <br> <<link "Give $him all the cum $he can drink">> <<replace "#introResult">> - You securely restrain your new slave; for both $his own safety and so $he can't object to $his meal. You reassure $him and order $him to close $his eyes and open wide for a treat. <<if $activeSlave.eyes <= -2>>Blind as $he is<<else>>Since $his eyes are contentedly closed<</if>>, $he doesn't see you reach for one of the phallus-tipped feeding tubes located throughout your penthouse. Before $he knows what's happening, you've forced the cocktube firmly into $his gaping maw and anchored it to $his head, causing $his entire body to tense up <<if $activeSlave.devotion <= 20>>in panic <</if>>once more. + You securely restrain your new slave; for both $his own safety and so $he can't object to $his meal. You reassure $him <<if hasAnyEyes($activeSlave)>> and order $him to close $his eyes <</if>> and open wide for a treat. <<if canSee($activeSlave)>>Since $his eyes are contentedly closed<<else>>Blind as $he is<</if>>, $he doesn't see you reach for one of the phallus-tipped feeding tubes located throughout your penthouse. Before $he knows what's happening, you've forced the cocktube firmly into $his gaping maw and anchored it to $his head, causing $his entire body to tense up <<if $activeSlave.devotion <= 20>>in panic <</if>>once more. <br><br> You pause to examine the tap, making sure it is set to cum, before releasing the valve and unleashing a steady flow. The feeder bucks against $his face as thick, white liquid rushes downward towards the helpless slave. <<if $activeSlave.devotion > 20>> @@ -2250,13 +2250,13 @@ The legalities completed, ''__@@.pink;<<= SlaveFullName($activeSlave)>>@@__'' << You stroke $his gurgling stomach slowly, before turning off the valve, unfastening $his binds and leaving your @@.hotpink;very pleased@@ cum balloon to savor $his meal. You'll make sure to set aside enough cum from your cumslaves for $him to drink $himself stupid with, and, glancing over your shoulder, find $him eagerly masturbating to $his cum filled gut. $He'll probably intend to keep $himself filled to the brim, which is fine by you. <<set $activeSlave.devotion += 5>> <<else>> - <<if $activeSlave.eyes <= -2>>$His face swells<<else>>$His eyes swell<</if>> with horror, but $he does not flinch or make a sound. $His belly also swells, from a few months of apparent pregnancy, to 'spent too much time at the buffet', till it finally stops wobbling, grows taut and forces $his belly button into an outie. Satisfied, you shut off the valve, deciding to leave $him to consider $his cum filled middle. Time passes. $His <<if $activeSlave.eyes <= -2>>blind face is distant<<else>>eyes are glazed over<</if>>, but $he tolerates you slowly stroking $his stomach @@.hotpink;without apparent resentment.@@ You'll make sure to keep $him like this for the time being. + <<if !hasBothEyes($activeSlave)>>$His face swells<<else>>$His eyes swell<</if>> with horror, but $he does not flinch or make a sound. $His belly also swells, from a few months of apparent pregnancy, to 'spent too much time at the buffet', till it finally stops wobbling, grows taut and forces $his belly button into an outie. Satisfied, you shut off the valve, deciding to leave $him to consider $his cum filled middle. Time passes. $His <<if canSee($activeSlave)>>eyes are glazed over<<else>>blind face is distant<</if>>, but $he tolerates you slowly stroking $his stomach @@.hotpink;without apparent resentment.@@ You'll make sure to keep $him like this for the time being. <<set $activeSlave.devotion += 4>> <</if>> <<else>> <<if $activeSlave.fetish == "cumslut">> <<if $activeSlave.fetishKnown == 0>> - <<if $activeSlave.eyes <= -2>>$His face tenses<<else>>$His eyes swell<</if>> with profound horror at the realization of what is filling $him with a constant irresistible pressure, and $he begins to leak tears as $he realizes that $his rapidly swelling body is getting $him horny. @@.green;$He's a cum fetishist!@@ + <<if !hasBothEyes($activeSlave)>>$His face tenses<<else>>$His eyes swell<</if>> with profound horror at the realization of what is filling $him with a constant irresistible pressure, and $he begins to leak tears as $he realizes that $his rapidly swelling body is getting $him horny. @@.green;$He's a cum fetishist!@@ <<set $activeSlave.fetishKnown = 1>> <<else>> $His belly steadily swells from a few months of apparent pregnancy, to "spent too much time at the buffet", till it finally stops wobbling, grows taut and forces $his belly button into an outie. Your cow groans not only with the weight and quickly mounting pressure, but with guilt as well. $He does not orgasm from $his gluttonous "meal," but feels much more pleasure than $he's willing to admit. @@ -2277,11 +2277,11 @@ The legalities completed, ''__@@.pink;<<= SlaveFullName($activeSlave)>>@@__'' << <br> <<link "Give $him all the milk $he can drink">> <<replace "#introResult">> - You securely restrain your new slave; for both $his own safety and so $he can't object to $his meal. You reassure $him and order $him to close $his eyes and open wide for a treat. <<if $activeSlave.eyes <= -2>>Blind as $he is<<else>>Since $his eyes are contentedly closed<</if>>, $he doesn't see you reach for one of the phallus-tipped feeding tubes located throughout your penthouse. Before $he knows what's happening, you've forced the cocktube firmly into $his gaping maw and anchored it to $his head, causing $his entire body to tense up <<if $activeSlave.devotion <= 20>>in panic <</if>>once more. + You securely restrain your new slave; for both $his own safety and so $he can't object to $his meal. You reassure $him <<if hasAnyEyes($activeSlave)>> and order $him to close $his eyes <</if>> and open wide for a treat. <<if canSee($activeSlave)>>Since $his eyes are contentedly closed<<else>>Blind as $he is<</if>>, $he doesn't see you reach for one of the phallus-tipped feeding tubes located throughout your penthouse. Before $he knows what's happening, you've forced the cocktube firmly into $his gaping maw and anchored it to $his head, causing $his entire body to tense up <<if $activeSlave.devotion <= 20>>in panic <</if>>once more. <br><br> You pause to examine the tap, making sure it is set to milk, before releasing the valve and unleashing a steady flow. The feeder bucks against $his face as creamy, white liquid rushes downward towards the helpless slave. <<if $activeSlave.behavioralFlaw == "gluttonous">> - <<if $activeSlave.eyes <= -2>>$His face swells<<else>>$His eyes swell<</if>> with horror, but $he does not flinch or make a sound. $His belly also swells, from a few months of apparent pregnancy, to 'spent too much time at the buffet', till it finally stops wobbling, grows taut and forces $his belly button into an outie. Satisfied, you shut off the valve, deciding to leave $him to consider $his milk filled middle. Time passes. $His<<if $activeSlave.eyes <= -2>> blind face is distant<<else>> eyes are glazed over<</if>>, but $he tolerates you slowly stroking $his stomach @@.hotpink;without apparent resentment.@@ You'll make sure to keep $him like this for the time being. + <<if !hasBothEyes($activeSlave)>>$His face swells<<else>>$His eyes swell<</if>> with horror, but $he does not flinch or make a sound. $His belly also swells, from a few months of apparent pregnancy, to "spent too much time at the buffet", till it finally stops wobbling, grows taut and forces $his belly button into an outie. Satisfied, you shut off the valve, deciding to leave $him to consider $his milk filled middle. Time passes. $His<<if canSee($activeSlave)>> eyes are glazed over<<else>> blind face is distant<</if>>, but $he tolerates you slowly stroking $his stomach @@.hotpink;without apparent resentment.@@ You'll make sure to keep $him like this for the time being. <<set $activeSlave.devotion += 5>> <<else>> $He gasps in horror, and starts to struggle frantically against $his bonds, <<if $activeSlave.voice != 0>>struggling to scream in panic.<<else>>$his whole body begging to scream.<</if>> However, as the fluid reaches $him, $he seems to despair and resigns $himself to $his fate. As $his belly swells, you find yourself comparing $him first to a binge eater, then some of the chubbier citizens you've seen, a large pregnancy, and finally a water balloon ready to burst. You stop the flow, and rest a hand on $his heaving stomach. $His @@.gold;terrified@@ breathing and distant expression are clearly due to the pain, not lust, but it's also now quite clear to $him who is in charge here. You have little intent on letting $his stomach empty and will be setting aside enough milk to keep $him bloated into submission. @@ -2300,7 +2300,7 @@ The legalities completed, ''__@@.pink;<<= SlaveFullName($activeSlave)>>@@__'' << <<link "Threaten $him with the Arcade">> <<setNonlocalPronouns $seeDicks>> <<replace "#introResult">> - You tell $him that it's in $his best interests to be a good $girl. $He does not react immediately, perhaps wondering if you think such a trite statement will have a real impact, but then you <<if canSee($activeSlave)>>point at<<else>>direct $him towards<</if>> a wallscreen behind $him. $He turns, and beholds a live feed from $arcadeName. + You tell $him that it's in $his best interests to be a good $girl. $He does not react immediately, perhaps wondering if you think such a trite statement will have a real impact, but then you <<if canSee($activeSlave)>>point at<<else>>direct $him towards<</if>> a wallscreen behind $him. $He turns, and beholds a live feed from $arcadeName. <<if canSee($activeSlave)>> $He gazes at the row of butts sticking out of the wall at dick height, not quite realizing what $he's seeing. Then $he notices that there are citizens pumping away in front of two of the butts, and $he understands. <<elseif canHear($activeSlave)>> diff --git a/src/uncategorized/pRivalryActions.tw b/src/uncategorized/pRivalryActions.tw index e7e0be82389a7e727685fbe6d3036d87e1438d89..8a4ce82adf268f8d9b482d734a579677b8c841cc 100644 --- a/src/uncategorized/pRivalryActions.tw +++ b/src/uncategorized/pRivalryActions.tw @@ -1144,7 +1144,7 @@ Your inter-arcology war with the arcology owner behind the Daughters of Liberty <<set $hostage.counter.vaginal += 50>> <<set $hostage.counter.anal += 50>> <<set $hostage.counter.mammary += 50>> - <<set $hostage.eyes = -2>> + <<run eyeSurgery($hostage, "both", "blind")>> <<set $hostage.earPiercing = 2>> <<set $hostage.nosePiercing = 2>> <<set $hostage.nipplesPiercing = 2>> diff --git a/src/uncategorized/peHeadgirlConcubine.tw b/src/uncategorized/peHeadgirlConcubine.tw index 4f6b51ef6e5df0c9a266515ff15d7b467dbfc0d9..051be39aa72de5534a2cdcac72c838546a9aeeaa 100644 --- a/src/uncategorized/peHeadgirlConcubine.tw +++ b/src/uncategorized/peHeadgirlConcubine.tw @@ -396,13 +396,13 @@ and it's also obvious that they've been filling the few minutes they've been wai <</if>> while taking $his turn getting instructions. $He manages to ask your permission to make a couple of last-minute changes to slaves' assignments for the day. Having thus given your leadership guidance, you jump up for a shower, crooking a finger to indicate that they should follow. They @@.hotpink;trail obediently after you,@@ a bit sore, their holes dripping <<if ($HeadGirl.vagina > -1) || ($HeadGirl.vagina > -1)>> - <<if ($PC.dick != 0) || ($HeadGirl.balls > 0) || ($Concubine.balls > 0)>> + <<if ($PC.balls > 0) || ($HeadGirl.balls > 0) || ($Concubine.balls > 0)>> cum, pussyjuice, and lube. <<else>> pussyjuice and lube. <</if>> <<else>> - <<if ($PC.dick != 0) || ($HeadGirl.balls > 0) || ($Concubine.balls > 0)>> + <<if ($PC.balls > 0) || ($HeadGirl.balls > 0) || ($Concubine.balls > 0)>> cum and lube. <<else>> lube. diff --git a/src/uncategorized/pePitFight.tw b/src/uncategorized/pePitFight.tw index 007a173b650129b3060b36618074853e69128f55..e0d4f4b1f88c9fa6f2b7b7a9295d64729874d137 100644 --- a/src/uncategorized/pePitFight.tw +++ b/src/uncategorized/pePitFight.tw @@ -132,7 +132,7 @@ Across the ring, $his opponent's owner nods civilly to you and examines $activeS <<if !canSee($slaves[$i])>> $His lack of eyesight means certain death. -<<elseif (($slaves[$i].eyes == -1) && ($slaves[$i].eyewear != "corrective glasses") && ($slaves[$i].eyewear != "corrective contacts")) || ($slaves[$i].eyes == 1 && ($slaves[$i].eyewear == "blurring glasses" || $slaves[$i].eyewear == "blurring contacts"))>> +<<elseif !canSeePerfectly($slaves[$i])>> $His poor eyesight makes $him a weaker fighter. <</if>> diff --git a/src/uncategorized/prestigiousSlave.tw b/src/uncategorized/prestigiousSlave.tw index c0db336893e2f52cc20d1d4fb031bc750ac2399e..4a838c57bad7050dceb6b90c8d1d3bb294bdc0b7 100644 --- a/src/uncategorized/prestigiousSlave.tw +++ b/src/uncategorized/prestigiousSlave.tw @@ -200,7 +200,7 @@ You check to see if any especially prestigious slaves are on auction. <<if $pres <<set $activeSlave.devotion = random(-90,-80)>> <<set $activeSlave.trust = random(-45,-25)>> <<set $activeSlave.health = random(40,60)>> - <<set $activeSlave.eyes = -1>> + <<run eyeSurgery($activeSlave, "both", "blur")>> <<set $activeSlave.custom.desc = "$His eyes are unsettling; though $his irises are a pale grey color, in some lights the whole eye takes on a red cast.">> <<case "old-timer">> @@ -669,7 +669,7 @@ You check to see if any especially prestigious slaves are on auction. <<if $pres <<set $activeSlave.devotion = random(-90,-80)>> <<set $activeSlave.trust = random(-45,-25)>> <<set $activeSlave.health = random(40,60)>> - <<set $activeSlave.eyes = -1>> + <<run eyeSurgery($activeSlave, "both", "blur")>> <<set $activeSlave.custom.desc = "$His eyes are unsettling; though $his irises are a pale grey color, in some lights the whole eye takes on a red cast.">> <<case "d old-timer">> diff --git a/src/uncategorized/reAWOL.tw b/src/uncategorized/reAWOL.tw index 8be35ca1d2174440fa9a170b59fb78c14a97c54b..70a21fbc1f5a6662836276476e195b2b21837478 100644 --- a/src/uncategorized/reAWOL.tw +++ b/src/uncategorized/reAWOL.tw @@ -28,7 +28,7 @@ <<set $activeSlave.health = random(60,80)>> <<set $activeSlave.muscles = 50>> <<set $activeSlave.weight = random(-10,10)>> -<<set $activeSlave.eyes = 1>> +<<run eyeSurgery($activeSlave, "both", "normal")>> <<set $activeSlave.hears = 0>> <<set $activeSlave.anus = 0>> <<set $activeSlave.skill.anal = 0>> diff --git a/src/uncategorized/reBoomerang.tw b/src/uncategorized/reBoomerang.tw index 2259d449d7a688ee12cad341ebb9e0b16728cdb0..d568e9d8675c4b58dc5aa35a57c817e137c51a23 100644 --- a/src/uncategorized/reBoomerang.tw +++ b/src/uncategorized/reBoomerang.tw @@ -332,6 +332,24 @@ brings up the relevant feeds. There's a naked body crumpled pathetically against <<set $activeSlave.health = random(-70, -60)>> <<set $activeSlave.behavioralFlaw = "odd">> <<set $activeSlave.sexualFlaw = either("idealistic", "repressed", "self hating", "shamefast")>> +<<case "sex double">> + You sold $him to a film studio to act as a double for a famous actress where $he was used for a sex scene. "They didn't <<s>>top after the <<sh>>oot. They just kept fucking me and fucking me until they ju<<s>>t to<<ss>>ed me a<<s>>ide, <<s>>in<<c>>e that bitch + <<if $seePreg != 0 && $activeSlave.ovaries == 1 && ($activeSlave.preg == 0 || $activeSlave.preg == -1) && $activeSlave.bellyImplant < 0>> + 'i<<s>>n't a bloated whore like you'. Like I even had a choi<<c>>e in getting pregnant." + <<else>> + 'i<<s>>n't a blown out whore like you'." + <</if>> + <<set $activeSlave.vagina = 3>> + <<set $activeSlave.anus = 3>> + <<if $seePreg != 0>><<if $activeSlave.ovaries>><<set $activeSlave.preg = random(5,_pregWeeks-1), $activeSlave.pregType = 1, $activeSlave.pregSource = 0, $activeSlave.pregWeek = $activeSlave.preg, $activeSlave.pregKnown = 1, SetBellySize($activeSlave)>><</if>><</if>> +<<case "monster movie">> + You sold $him to a film studio to act as a double for a famous actress where $he was used installed with a massive fake pregnancy for the ending. "It'<<s>> too big... Can't breath right... Wa<<s>> going to be <<s>>old... <<S>>in<<c>>e I wa<<s>> a di<<s>>po<<s>>able prop... I'd rather be your prop." $He returns to wheezing against the solid mass bulging from $his middle. + <<set $activeSlave.health = random(-70, -60)>> + <<if $seeHyperPreg != 1>> + <<set $activeSlave.bellyImplant = 120000, $activeSlave.belly = 120000>> + <<else>> + <<set $activeSlave.bellyImplant = 300000, $activeSlave.belly = 300000>> + <</if>> <<default>> <<switch _buyer>> <<case "housekeeper">> diff --git a/src/uncategorized/reFSAcquisition.tw b/src/uncategorized/reFSAcquisition.tw index b029be5062ed722c04dde13ae03d396ca06810aa..080e2b1a6ff9772a06169ee9b1ba45a022c1b86f 100644 --- a/src/uncategorized/reFSAcquisition.tw +++ b/src/uncategorized/reFSAcquisition.tw @@ -1623,7 +1623,7 @@ The call comes in from an office, and you suppress the urge to check whether $as <<case "Edo Revivalist">> $He arrives with doubt already clouding $his eyes. It seems $he passed one of the arcology's seedier bars on $his way up to your penthouse; the sight of roaring patrons swilling cheap sake and manhandling whores in loose kimonos does not seem to have been part of $his expectations. As the enslavement process winds on, $he reflexively begins to look around for a means of escape, and slowly collapses into $himself as $he realizes there is none. <<case "Arabian Revivalist">> - Your estimation of $him rises through the enslavement process: $he doffs and discards $his conservative business wear without complaint, and stands nude before you, obeying instructions without fuss. There is an indecipherable glint in $his $activeSlave.eyeColor eyes: nerves? Excitement? Challenge, even? Perhaps $he even feels this is an adventure. And that, it will certainly be. + Your estimation of $him rises through the enslavement process: $he doffs and discards $his conservative business wear without complaint, and stands nude before you, obeying instructions without fuss. There is an indecipherable glint in $his <<print App.Desc.eyesColor($activeSlave)>>: nerves? Excitement? Challenge, even? Perhaps $he even feels this is an adventure. And that, it will certainly be. <<case "Chinese Revivalist">> $He arrives in a simple, sturdy suit, which $he obviously wore in the correct anticipation of immediately removing and never seeing again. $He cooperates with the enslavement process as best $he can, $his glance confident and watchful. $He's obviously calculating how to get ahead within this new place, and $he pays particularly close attention as the ebb and flow of business through your office brings your various slaves into $his view for the first time. <</switch>> @@ -1750,4 +1750,4 @@ The call comes in from an office, and you suppress the urge to check whether $as </span> -<</if>> \ No newline at end of file +<</if>> diff --git a/src/uncategorized/reMalefactor.tw b/src/uncategorized/reMalefactor.tw index aac45fc372e911b7c795b44b6c391d8095d39f89..5889d4ccc9f87472fc823e4fca387c69e09a1fb8 100644 --- a/src/uncategorized/reMalefactor.tw +++ b/src/uncategorized/reMalefactor.tw @@ -315,7 +315,7 @@ <</if>> <<set $activeSlave.race = _fakeRace>> <<set $activeSlave.skin = randomRaceSkin(_fakeRace)>> -<<set $activeSlave.eyeColor = randomRaceEye(_fakeRace)>> +<<run setEyeColor($activeSlave, randomRaceEye(_fakeRace))>> <<set $activeSlave.hColor = randomRaceHair(_fakeRace)>> <<set $activeSlave.override_Race = 1, $activeSlave.override_Skin = 1, $activeSlave.override_H_Color = 1, $activeSlave.override_Eye_Color = 1>> diff --git a/src/uncategorized/reNickname.tw b/src/uncategorized/reNickname.tw index fc0921fb9c029aad3fbac2751a1e25e10a5a33a2..0a661e97003476be98dbe114c6692de24554ee4f 100644 --- a/src/uncategorized/reNickname.tw +++ b/src/uncategorized/reNickname.tw @@ -194,7 +194,7 @@ <<if ($activeSlave.intelligence+$activeSlave.intelligenceImplant > 50)>> <<set $qualifiedNicknames.push("smart")>> <</if>> -<<if ($activeSlave.eyes <= -2)>> +<<if getBestVision($activeSlave) === 0>> <<set $qualifiedNicknames.push("blind")>> <</if>> <<if ($activeSlave.hears <= -2)>> diff --git a/src/uncategorized/reRecruit.tw b/src/uncategorized/reRecruit.tw index c8b57f031a73410e83db20932ea4f342edcddae0..c7cd0d3a5cc7f96849dac2736e9d662ee71a41ae 100644 --- a/src/uncategorized/reRecruit.tw +++ b/src/uncategorized/reRecruit.tw @@ -234,7 +234,7 @@ <<set $activeSlave.pregWeek = $activeSlave.preg>> <<set $activeSlave.pregKnown = 1>> <<run SetBellySize($activeSlave)>> -<<set $activeSlave.eyes = -2>> +<<run eyeSurgery($activeSlave, "both", "blind")>> <<set $activeSlave.weight = -100>> <<set $activeSlave.fetish = "none">> <<set $activeSlave.fetishKnown = 0>> @@ -939,7 +939,7 @@ <<set $activeSlave.sexualFlaw = "idealistic">> <<set $activeSlave.custom.tattoo = "$He has beautifully detailed set of angel wings tattooed on $his back.">> <<set $activeSlave.voice = 3>> -<<set $activeSlave.origEye = "blue">> +<<set $activeSlave.eye.origColor = "blue">> <<set $activeSlave.origHColor = "blonde">> <<set $activeSlave.origSkin = "pale">> <<run applyGeneticColor($activeSlave)>> @@ -984,7 +984,7 @@ <<set $activeSlave.sexualFlaw = "judgemental">> <<set $activeSlave.custom.tattoo = "$He has beautifully detailed set of angel wings tattooed on $his back.">> <<set $activeSlave.voice = random(2,3)>> -<<set $activeSlave.origEye = "amber">> +<<set $activeSlave.eye.origColor = "amber">> <<set $activeSlave.origHColor = "black">> <<set $activeSlave.origSkin = "pale">> <<run applyGeneticColor($activeSlave)>> @@ -1442,7 +1442,7 @@ <<set $activeSlave.voice = 3>> <<set $activeSlave.boobShape = "perky">> <<set $activeSlave.origSkin = "light">> -<<set $activeSlave.origEye = "blue">> +<<set $activeSlave.eye.origColor = "blue">> <<set $activeSlave.origHColor = "blonde">> <<run applyGeneticColor($activeSlave)>> <<set $activeSlave.teeth = "normal">> @@ -1603,7 +1603,7 @@ <<set $activeSlave.weight = -70>> <<set $activeSlave.boobs = 100>> <<set $activeSlave.origHColor = "silver">> -<<set $activeSlave.origEye = "blue">> +<<set $activeSlave.eye.origColor = "blue">> <<set $activeSlave.origSkin = "dark">> <<run applyGeneticColor($activeSlave)>> <<if $activeSlave.actualAge < 13>> @@ -2352,7 +2352,7 @@ Your desk flags a video message as coming from an influential old world business <br><br> The $girl speaks in a ridiculously high, bubblegum voice and bounces indignantly around $his father's luxurious office as $he rants, barely acknowledging your presence on the other end of the call. "Daddy <<s>>ay<<s>> that I'm <<s>>pending too much of hi<<s>> money but what the hell i<<s>> all of hi<<s>> money for if he'<<s>> not <<s>>pending it on hi<<s>> little $girl?" <br><br> -$He pauses, looking directly at you for the first time, though you get the sense that $he seems more interested in your own luxurious surroundings. "Daddy told me all about you arcology type<<s>>, <<s>>o I know what you're all about. Anyway<<s>>, I don't care about freedom and <<s>>tuff if you treat me like the perfect prince<<ss>> I am." +$He pauses, looking directly at you for the first time, though you get the sense that $he seems more interested in your own luxurious surroundings. "Daddy told me all about you arcology type<<s>>, <<s>>o I know what you're all about. Anyway<<s>>, I don't care about freedom and <<s>>tuff if you treat me like the perfect prin<<c>>e<<ss>> I am." <br><br> "<<S>>o, could you en<<s>>lave me or whatever?" @@ -2779,19 +2779,27 @@ He explains that one of his servant <<= $girl>>s was impregnated by his fool of <</replace>> <</link>> <</if>> -<<if $recruit == "wandering homeless">> +<<switch $recruit>> +<<case "spoiled daughter">> + <br><<link "Contact $his father">> + <<run repX(1000, "event")>> + <<replace "#result">> + Hanging up, you decide to inform the brat's father of the $girl's suicidally stupid scheme. The grateful businessman thanks you for your kindness and promises to ground $him for "two weeks", seemingly sharing his $daughter's naïveté. Although people will gossip as to whether you did this out of the goodness of your heart, or out of recognition of his $daughter's allegedly poor value as human property, the businessman will be sure to @@.green;tell his associates it was the former.@@ + <</replace>> + <</link>> +<<case "wandering homeless">> <br><<link "A quick fuck couldn't hurt">> - <<run cashX(forceNeg(1), "personalBusiness")>> - <<replace "#result">> - You take $him up on $his offer, - <<if $PC.dick != 0>> - grab $his wiggling hips, and hilt your dick in $his tight ass. $He's clueless when it comes to anal, so the experience isn't too enjoyable for you. You leave $him with a <<print cashFormat(1)>> tip, a load of cum in $his butt, and a smile on $his face over getting any money at all. - <<else>> - pull out a strap-on you carry for just such an occasion, grab $his wiggling hips, and hilt yourself in $his tight ass. $He's clueless when it comes to anal, so the experience isn't too enjoyable for you. You leave $him with a <<print cashFormat(1)>> tip, a sore rear, and a smile on $his face over getting any money at all. - <</if>> - <</replace>> + <<run cashX(forceNeg(1), "personalBusiness")>> + <<replace "#result">> + You take $him up on $his offer, + <<if $PC.dick != 0>> + grab $his wiggling hips, and hilt your dick in $his tight ass. $He's clueless when it comes to anal, so the experience isn't too enjoyable for you. You leave $him with a <<print cashFormat(1)>> tip, a load of cum in $his butt, and a smile on $his face over getting any money at all. + <<else>> + pull out a strap-on you carry for just such an occasion, grab $his wiggling hips, and hilt yourself in $his tight ass. $He's clueless when it comes to anal, so the experience isn't too enjoyable for you. You leave $him with a <<print cashFormat(1)>> tip, a sore rear, and a smile on $his face over getting any money at all. + <</if>> + <</replace>> <</link>> -<</if>> +<</switch>> <<if $cheatMode == 1>> <br><br>DEBUG: [[Go back to Nonrandom Event|Nonrandom Event][$activeSlave = 0, $eventSlave = 0]] diff --git a/src/uncategorized/reRelativeRecruiter.tw b/src/uncategorized/reRelativeRecruiter.tw index 6d0a17b58a64a762d198282a9cc1bc72b828c6d7..0b8f8d2184c87b875fa45e371dca9ce919785fb5 100644 --- a/src/uncategorized/reRelativeRecruiter.tw +++ b/src/uncategorized/reRelativeRecruiter.tw @@ -864,6 +864,7 @@ You look up the _relationType. _He2 costs <<print cashFormat($slaveCost)>>, a ba <<set $activeSlave = Object.assign($activeSlave, clone($genePool[$j]))>> <<run Enunciate($eventSlave)>> +<span id="artFrame"> /* 000-250-006 */ <<if $seeImages == 1>> <<if $imageChoice == 1>> @@ -873,6 +874,7 @@ You look up the _relationType. _He2 costs <<print cashFormat($slaveCost)>>, a ba <</if>> <</if>> /* 000-250-006 */ +</span> <<if (random(0,99) < $seeDicks)>> <<if random(1,100) > 60>> @@ -1195,6 +1197,20 @@ You look up the $activeSlave.relation. _He2 costs <<print cashFormat($slaveCost) <span id="result"> <<link "Buy _him2">> + <<replace "#artFrame">> + /* 000-250-006 */ + <<if $seeImages == 1>> + <div class="imageColumn"> + <div class="imageRef medImg"> + <<= SlaveArt($activeSlave, 2, 0)>> + </div> + <div class="imageRef medImg"> + <<= SlaveArt($eventSlave, 2, 0)>> + </div> + </div> + <</if>> + /* 000-250-006 */ + <</replace>> <<replace "#result">> /* update $slaves[$i] (eventSlave) before calling any widgets */ <<set $slaves[$i].relation = relationTargetWord($activeSlave)>> diff --git a/src/uncategorized/remoteSurgery.tw b/src/uncategorized/remoteSurgery.tw index 3d9e8a53d76c95f72a1dea8bc6934addeedabd17..0cd8d6f7f82b8f77a57cccb050ab6ae91ab3c16e 100644 --- a/src/uncategorized/remoteSurgery.tw +++ b/src/uncategorized/remoteSurgery.tw @@ -127,37 +127,78 @@ $His $activeSlave.faceShape face is <</if>> <br> -<<if $activeSlave.eyesImplant == 1>> - $He has artificial eyes. -<<elseif $activeSlave.eyes < -2>> - $He has no eyes. -<<elseif $activeSlave.eyes == -2>> - $He is blind. -<<else>> - $He has working - <<if $activeSlave.eyes == -1>> - eyes, but is nearsighted. - [[Correct eyesight|Surgery Degradation][$activeSlave.eyes = 1, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 10, $surgeryType = "eyeFix"]] - <<elseif $activeSlave.eyes == 1>> - eyes and good vision. - <<if ($seeExtreme == 1) && $activeSlave.indentureRestrictions < 1>> - [[Blur vision|Surgery Degradation][$activeSlave.eyes = -1, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 10, $surgeryType = "eyeBlur"]] - <</if>> +$He has <<print App.Desc.eyesType($activeSlave)>><<if hasAnyEyes($activeSlave)>>, +they are <<print App.Desc.eyesVision($activeSlave)>> +<</if>>. +/* eye blur and fix */ +<<if hasAnyEyes($activeSlave)>> + <<set _n = 0>> + <<if getLeftEyeVision($activeSlave) === 2 && getLeftEyeType($activeSlave) === 1>> + <<set _n++>> + [[Blur left eye|Surgery Degradation][eyeSurgery($activeSlave, "left", "blur"), cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 5, $surgeryType = "eyeBlur"]] + <</if>> + <<if getRightEyeVision($activeSlave) === 2 && getRightEyeType($activeSlave) === 1>> + <<set _n++>> + [[Blur right eye|Surgery Degradation][eyeSurgery($activeSlave, "right", "blur"), cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 5, $surgeryType = "eyeBlur"]] + <</if>> + <<if _n === 2>> + [[Blur both eyes|Surgery Degradation][eyeSurgery($activeSlave, "both", "blur"), cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 10, $surgeryType = "eyeBlur"]] + <</if>> + <<set _n = 0>> + <<if getLeftEyeVision($activeSlave) === 1 && getLeftEyeType($activeSlave) === 1>> + <<set _n++>> + [[Fix left eye|Surgery Degradation][eyeSurgery($activeSlave, "left", "fix"), cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 5, $surgeryType = "eyeFix"]] + <</if>> + <<if getRightEyeVision($activeSlave) === 1 && getRightEyeType($activeSlave) === 1>> + <<set _n++>> + [[Fix right eye|Surgery Degradation][eyeSurgery($activeSlave, "right", "fix"), cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 5, $surgeryType = "eyeFix"]] + <</if>> + <<if _n === 2>> + [[Fix both eyes|Surgery Degradation][eyeSurgery($activeSlave, "both", "fix"), cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 10, $surgeryType = "eyeFix"]] <</if>> <</if>> <<if ($seeExtreme == 1)>> <<if $activeSlave.indentureRestrictions < 1>> - <<if $activeSlave.eyes > -3>> - <<if $activeSlave.eyes > -2>> - | [[Blind|Surgery Degradation][$activeSlave.eyes = -2,$activeSlave.eyeColor = "dulled " + $activeSlave.origEye,$activeSlave.eyeColor = $activeSlave.origEye,cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 10,$surgeryType = "blind"]] + /* blind */ + <<set _n = 0>> + <<if getLeftEyeVision($activeSlave) > 0 && getLeftEyeType($activeSlave) === 1>> + <<set _n++>> + | [[Blind left eye|Surgery Degradation][eyeSurgery($activeSlave, "left", "blind"), cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 5, $surgeryType = "blind"]] + <</if>> + <<if getRightEyeVision($activeSlave) > 0 && getRightEyeType($activeSlave) === 1>> + <<set _n++>> + | [[Blind right eye|Surgery Degradation][eyeSurgery($activeSlave, "right", "blind"), cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 5, $surgeryType = "blind"]] + <</if>> + <<if _n === 2>> + | [[Blind both eyes|Surgery Degradation][eyeSurgery($activeSlave, "both", "blind"), cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 10, $surgeryType = "blind"]] + <</if>> + /* remove */ + <<set _n = 0>> + <<if hasLeftEye($activeSlave)>> + <<set _n++>> + | [[Remove left eye|Surgery Degradation][eyeSurgery($activeSlave, "left", "remove"), cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 10, $surgeryType = "remove eyes"]] + <</if>> + <<if hasRightEye($activeSlave)>> + <<set _n++>> + | [[Remove right eye|Surgery Degradation][eyeSurgery($activeSlave, "right", "remove"), cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 10, $surgeryType = "remove eyes"]] + <</if>> + <<if _n === 2>> + | [[Remove both eyes|Surgery Degradation][eyeSurgery($activeSlave, "both", "remove"), cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20, $surgeryType = "remove eyes"]] + <</if>> + /* implant */ + <<if isProstheticAvailable($activeSlave, "ocular")>> + <<set _n = 0>> + <<if !hasLeftEye($activeSlave)>> + <<set _n++>> + | [[Give left eye ocular implant|Surgery Degradation][eyeSurgery($activeSlave, "left", "cybernetic"), cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 10, $surgeryType = "ocular implant"]] <</if>> - | [[Remove eyes|Surgery Degradation][cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20, $surgeryType = "remove eyes", surgeryAmp($activeSlave, "right eye"), surgeryAmp($activeSlave, "left eye")]] - /* eyes are set in Surgery Degradation */ - <<if (canSee($activeSlave))>>//This will greatly restrict $him//<</if>> - <<else>> - <<if isProstheticAvailable($activeSlave, "ocular")>> - | [["Give " + $him + " ocular implants"|Surgery Degradation][$activeSlave.eyesImplant = 1, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20, $surgeryType = "ocular implant"]] + <<if !hasRightEye($activeSlave)>> + <<set _n++>> + | [[Give right eye ocular implant|Surgery Degradation][eyeSurgery($activeSlave, "right", "cybernetic"), cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 10, $surgeryType = "ocular implant"]] + <</if>> + <<if _n === 2>> + | [[Give ocular implants|Surgery Degradation][eyeSurgery($activeSlave, "both", "cybernetic"), cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20, $surgeryType = "ocular implant"]] <</if>> <</if>> <</if>> @@ -1513,40 +1554,40 @@ Alter $his race: <<if $activeSlave.indentureRestrictions < 1>> $He is $activeSlave.race<<if $activeSlave.race != $activeSlave.origRace>>, but was originally $activeSlave.origRace<</if>>. Surgically alter $him to look more: <<if $activeSlave.race != "white">> - [[White|Surgery Degradation][$activeSlave.race = "white", $activeSlave.skin = randomRaceSkin($activeSlave.race), $activeSlave.hColor = randomRaceHair($activeSlave.race), $activeSlave.eyeColor = randomRaceEye($activeSlave.race), cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20,$surgeryType = "race"]] | + [[White|Surgery Degradation][$activeSlave.race = "white", $activeSlave.skin = randomRaceSkin($activeSlave.race), $activeSlave.hColor = randomRaceHair($activeSlave.race), setEyeColor($activeSlave, randomRaceEye($activeSlave.race)), cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20,$surgeryType = "race"]] | <</if>> <<if $activeSlave.race != "latina">> - [[Latina|Surgery Degradation][$activeSlave.race = "latina", $activeSlave.skin = randomRaceSkin($activeSlave.race), $activeSlave.hColor = randomRaceHair($activeSlave.race), $activeSlave.eyeColor = randomRaceEye($activeSlave.race), cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20,$surgeryType = "race"]] | + [[Latina|Surgery Degradation][$activeSlave.race = "latina", $activeSlave.skin = randomRaceSkin($activeSlave.race), $activeSlave.hColor = randomRaceHair($activeSlave.race), setEyeColor($activeSlave, randomRaceEye($activeSlave.race)), cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20,$surgeryType = "race"]] | <</if>> <<if $activeSlave.race != "black">> - [[Black|Surgery Degradation][$activeSlave.race = "black", $activeSlave.skin = randomRaceSkin($activeSlave.race), $activeSlave.hColor = randomRaceHair($activeSlave.race), $activeSlave.eyeColor = randomRaceEye($activeSlave.race), cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20,$surgeryType = "race"]] | + [[Black|Surgery Degradation][$activeSlave.race = "black", $activeSlave.skin = randomRaceSkin($activeSlave.race), $activeSlave.hColor = randomRaceHair($activeSlave.race), setEyeColor($activeSlave, randomRaceEye($activeSlave.race)), cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20,$surgeryType = "race"]] | <</if>> <<if $activeSlave.race != "asian">> - [[Asian|Surgery Degradation][$activeSlave.race = "asian", $activeSlave.skin = randomRaceSkin($activeSlave.race), $activeSlave.hColor = randomRaceHair($activeSlave.race), $activeSlave.eyeColor = randomRaceEye($activeSlave.race), cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20,$surgeryType = "race"]] | + [[Asian|Surgery Degradation][$activeSlave.race = "asian", $activeSlave.skin = randomRaceSkin($activeSlave.race), $activeSlave.hColor = randomRaceHair($activeSlave.race), setEyeColor($activeSlave, randomRaceEye($activeSlave.race)), cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20,$surgeryType = "race"]] | <</if>> <<if $activeSlave.race != "middle eastern">> - [[Middle Eastern|Surgery Degradation][$activeSlave.race = "middle eastern", $activeSlave.skin = randomRaceSkin($activeSlave.race), $activeSlave.hColor = randomRaceHair($activeSlave.race), $activeSlave.eyeColor = randomRaceEye($activeSlave.race), cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20,$surgeryType = "race"]] | + [[Middle Eastern|Surgery Degradation][$activeSlave.race = "middle eastern", $activeSlave.skin = randomRaceSkin($activeSlave.race), $activeSlave.hColor = randomRaceHair($activeSlave.race), setEyeColor($activeSlave, randomRaceEye($activeSlave.race)), cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20,$surgeryType = "race"]] | <</if>> <<if $activeSlave.race != "indo-aryan">> - [[Indo-Aryan|Surgery Degradation][$activeSlave.race = "indo-aryan", $activeSlave.skin = randomRaceSkin($activeSlave.race), $activeSlave.hColor = randomRaceHair($activeSlave.race), $activeSlave.eyeColor = randomRaceEye($activeSlave.race), cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20,$surgeryType = "race"]] | + [[Indo-Aryan|Surgery Degradation][$activeSlave.race = "indo-aryan", $activeSlave.skin = randomRaceSkin($activeSlave.race), $activeSlave.hColor = randomRaceHair($activeSlave.race), setEyeColor($activeSlave, randomRaceEye($activeSlave.race)), cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20,$surgeryType = "race"]] | <</if>> <<if $activeSlave.race != "pacific islander">> - [[Pacific Islander|Surgery Degradation][$activeSlave.race = "pacific islander", $activeSlave.skin = randomRaceSkin($activeSlave.race), $activeSlave.hColor = randomRaceHair($activeSlave.race), $activeSlave.eyeColor = randomRaceEye($activeSlave.race), cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20,$surgeryType = "race"]] | + [[Pacific Islander|Surgery Degradation][$activeSlave.race = "pacific islander", $activeSlave.skin = randomRaceSkin($activeSlave.race), $activeSlave.hColor = randomRaceHair($activeSlave.race), setEyeColor($activeSlave, randomRaceEye($activeSlave.race)), cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20,$surgeryType = "race"]] | <</if>> <<if $activeSlave.race != "malay">> - [[Malay|Surgery Degradation][$activeSlave.race = "malay", $activeSlave.skin = randomRaceSkin($activeSlave.race), $activeSlave.hColor = randomRaceHair($activeSlave.race), $activeSlave.eyeColor = randomRaceEye($activeSlave.race), cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20,$surgeryType = "race"]] | + [[Malay|Surgery Degradation][$activeSlave.race = "malay", $activeSlave.skin = randomRaceSkin($activeSlave.race), $activeSlave.hColor = randomRaceHair($activeSlave.race), setEyeColor($activeSlave, randomRaceEye($activeSlave.race)), cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20,$surgeryType = "race"]] | <</if>> <<if $activeSlave.race != "amerindian">> - [[Amerindian|Surgery Degradation][$activeSlave.race = "amerindian", $activeSlave.skin = randomRaceSkin($activeSlave.race), $activeSlave.hColor = randomRaceHair($activeSlave.race), $activeSlave.eyeColor = randomRaceEye($activeSlave.race), cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20,$surgeryType = "race"]] | + [[Amerindian|Surgery Degradation][$activeSlave.race = "amerindian", $activeSlave.skin = randomRaceSkin($activeSlave.race), $activeSlave.hColor = randomRaceHair($activeSlave.race), setEyeColor($activeSlave, randomRaceEye($activeSlave.race)), cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20,$surgeryType = "race"]] | <</if>> <<if $activeSlave.race != "southern european">> - [[Southern European|Surgery Degradation][$activeSlave.race = "southern european", $activeSlave.skin = randomRaceSkin($activeSlave.race), $activeSlave.hColor = randomRaceHair($activeSlave.race), $activeSlave.eyeColor = randomRaceEye($activeSlave.race), cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20,$surgeryType = "race"]] | + [[Southern European|Surgery Degradation][$activeSlave.race = "southern european", $activeSlave.skin = randomRaceSkin($activeSlave.race), $activeSlave.hColor = randomRaceHair($activeSlave.race), setEyeColor($activeSlave, randomRaceEye($activeSlave.race)), cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20,$surgeryType = "race"]] | <</if>> <<if $activeSlave.race != "semitic">> - [[Semitic|Surgery Degradation][$activeSlave.race = "semitic", $activeSlave.skin = randomRaceSkin($activeSlave.race), $activeSlave.hColor = randomRaceHair($activeSlave.race), $activeSlave.eyeColor = randomRaceEye($activeSlave.race), cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20,$surgeryType = "race"]] | + [[Semitic|Surgery Degradation][$activeSlave.race = "semitic", $activeSlave.skin = randomRaceSkin($activeSlave.race), $activeSlave.hColor = randomRaceHair($activeSlave.race), setEyeColor($activeSlave, randomRaceEye($activeSlave.race)), cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20,$surgeryType = "race"]] | <</if>> <<if $activeSlave.race != "mixed race">> - [[Mixed Race|Surgery Degradation][$activeSlave.race = "mixed race", $activeSlave.skin = randomRaceSkin($activeSlave.race), $activeSlave.hColor = randomRaceHair($activeSlave.race), $activeSlave.eyeColor = randomRaceEye($activeSlave.race), cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20,$surgeryType = "race"]] + [[Mixed Race|Surgery Degradation][$activeSlave.race = "mixed race", $activeSlave.skin = randomRaceSkin($activeSlave.race), $activeSlave.hColor = randomRaceHair($activeSlave.race), setEyeColor($activeSlave, randomRaceEye($activeSlave.race)), cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20,$surgeryType = "race"]] <</if>> <<else>> //$His indenture forbids elective surgery// diff --git a/src/uncategorized/reputation.tw b/src/uncategorized/reputation.tw index 7b3b9d164b8480ee48aae042728aeb10a044d795..76053863c80763aeafe52aee8be5a9e3c80e89cf 100644 --- a/src/uncategorized/reputation.tw +++ b/src/uncategorized/reputation.tw @@ -358,7 +358,7 @@ _enduringRep = $enduringRep>> <<elseif $arcologies[0].FSSlimnessEnthusiast != "unset">> <<if $PC.boobs >= 1000>> Society finds big breasts unsightly and you are no exception; your <<if $PC.boobsImplant > 0>>chest balloons<<else>>fat tits<</if>> @@.red;harm@@ your public image. - <<run repX(forceNeg(10*$PC.boobsBonus), "PCappearance")>> + <<run repX(forceNeg(($PC.boobs/100)*3), "PCappearance")>> <</if>> <<if $PC.butt >= 5>> Society finds big butts unsightly and you are no exception; your <<if $PC.buttImplant > 0>>inflated ass<<else>>fat ass<</if>> @@.red;harms@@ your public image. diff --git a/src/uncategorized/saLiveWithHG.tw b/src/uncategorized/saLiveWithHG.tw index b898eb3af00aa1128c0ff7425dfe4b4fab689e37..5b24622594fefecc4cb348b886bcdacaeb541f9a 100644 --- a/src/uncategorized/saLiveWithHG.tw +++ b/src/uncategorized/saLiveWithHG.tw @@ -764,27 +764,30 @@ <</if>> <</if>> <</if>> - <<if $slaves[$i].eyes <= -3>> - <<if !hasEyeColorRule($slaves[$i],$defaultRules)>> - <<if ($slaves[$i].eyeColor != $HeadGirl.eyeColor, $slaves[$i].eyes == -3)>> - <<set $slaves[$i].eyeColor = $HeadGirl.eyeColor>> - $HeadGirl.slaveName gives $slaves[$i].slaveName $slaves[$i].eyeColor glass eyes, to match _his2 own eyes, since with nymphomania comes narcissism. - <</if>> - <</if>> - <<elseif $slaves[$i].eyesImplant == 1>> - <<if !hasEyeColorRule($slaves[$i],$defaultRules)>> - <<if ($slaves[$i].eyeColor != $HeadGirl.eyeColor)>> - <<set $slaves[$i].eyeColor = $HeadGirl.eyeColor>> - $HeadGirl.slaveName changes $slaves[$i].slaveName $slaves[$i].eyeColor eye lenses, to match _his2 own eyes, since with nymphomania comes narcissism. - <</if>> - <</if>> - <<else>> - <<if !hasEyeColorRule($slaves[$i],$defaultRules)>> - <<if ($slaves[$i].eyeColor != $HeadGirl.eyeColor)>> - <<set $slaves[$i].eyeColor = $HeadGirl.eyeColor>> - $HeadGirl.slaveName gives $slaves[$i].slaveName $slaves[$i].eyeColor contact lenses, to match _his2 own eyes, since with nymphomania comes narcissism. - <</if>> - <</if>> + + <<if !hasEyeColorRule($slaves[$i], $defaultRules)>> + /* HG wants sub slave to have same eye color as her */ + /* make sure the sub slave has both eyes, missing ones are replaced with glass */ + <<if !hasLeftEye($slaves[$i])>> + <<run eyeSurgery($slaves[$i], "left", "glass")>> + <</if>> + <<if !hasRightEye($slaves[$i])>> + <<run eyeSurgery($slaves[$i]), "right", "glass">> + <</if>> + + /* get eye colors, HG can be expected to have at least one working eye due to job requirements */ + <<set _left = hasLeftEye($HeadGirl) ? getLeftEyeColor($HeadGirl) : getRightEyeColor($HeadGirl)>> + <<set _right = hasRightEye($HeadGirl) ? getRightEyeColor($HeadGirl) : _left>> + + /* make sure the slave has the same eye color as the HG */ + <<if getLeftEyeColor($slaves[$i]) !== _left>> + <<run setEyeColor($slaves[$i], _left, "left")>> + $HeadGirl.slaveName <<if getLeftEyeType($slaves[$i] === 3)>> changes <<else>> gives <</if>> $slaves[$i].slaveName _left <<if getLeftEyeType($slaves[$i]) === 3>> eye lenses <<elseif getLeftEyeType($slaves[$i]) === 2>> glass eyes <<else>> contact lenses <</if>>, to match _his2 own left eye, since with nymphomania comes narcissism. + <</if>> + <<if getRightEyeColor($slaves[$i]) !== _right>> + <<run setEyeColor($slaves[$i], _right, "right")>> + $HeadGirl.slaveName <<if getRightEyeType($slaves[$i] === 3)>> changes <<else>> gives <</if>> $slaves[$i].slaveName _right <<if getLeftRightType($slaves[$i]) === 3>> eye lenses <<elseif getLeftRightType($slaves[$i]) === 2>> glass eyes <<else>> contact lenses <</if>>, to match _his2 own right eye, since with nymphomania comes narcissism. + <</if>> <</if>> <</if>> diff --git a/src/uncategorized/saLongTermEffects.tw b/src/uncategorized/saLongTermEffects.tw index 4efa182534b205ceda41ef2d1a1a06e86c7a46ad..69ddc3c8570217c76c7c5f42c99e200618a7e611 100644 --- a/src/uncategorized/saLongTermEffects.tw +++ b/src/uncategorized/saLongTermEffects.tw @@ -6032,7 +6032,7 @@ <<if $slaves[$i].fuckdoll == 0 && $slaves[$i].fetish != "mindbroken">> <<set _visionFlag = 0>> - <<if $slaves[$i].eyes <= -2>> + <<if getBestVision($slaves[$i]) === 0>> <<if $slaves[$i].hears <= -2>> <<if $slaves[$i].devotion > 50>> Even though $he is blind and deaf, $he is devoted enough to you to allow $himself to lower $his guard. $He becomes @@.mediumaquamarine;trusting@@ of your ability to keep $him safe. @@ -6086,8 +6086,8 @@ <</if>> <</if>> <<set _visionFlag = -2>> - <<elseif $slaves[$i].eyes == -1>> - <<if ($slaves[$i].eyewear != "corrective glasses") && ($slaves[$i].eyewear != "corrective contacts")>> + <<elseif getBestVision($slaves[$i]) === 1>> + <<if !canSeePerfectly($slaves[$i])>> <<if $slaves[$i].devotion > 50>> $His vision may be clouded but it doesn't get in the way of $his devotion to you. <<elseif $slaves[$i].devotion > 20>> @@ -6102,8 +6102,8 @@ <</if>> <<set _visionFlag = -1>> <</if>> - <<elseif $slaves[$i].eyes == 1>> - <<if ($slaves[$i].eyewear == "blurring glasses") || ($slaves[$i].eyewear == "blurring contacts")>> + <<elseif getBestVision($slaves[$i]) === 2>> + <<if !canSeePerfectly($slaves[$i])>> <<if $slaves[$i].devotion > 50>> $He tolerates the annoyance of blurred vision induced by $his eyewear. <<elseif $slaves[$i].devotion > 20>> @@ -7683,10 +7683,10 @@ <</if>> <<else>> /* FUCKDOLL PHYSICAL EFFECTS */ - <<if $slaves[$i].eyes > 0>> + <<if getBestVision($slaves[$i]) > 0>> <<if $slaves[$i].fuckdoll > random(20,100)>> $His suit blinds $him, and $his @@.mediumorchid;vision worsens@@ from long disuse. - <<set $slaves[$i].eyes = -1>> + <<run eyeSurgery($slaves[$i], "both", "blind")>> <</if>> <</if>> <<if $slaves[$i].hears >= 0>> diff --git a/src/uncategorized/salon.tw b/src/uncategorized/salon.tw index c460b2846a383a5f297231e8394dfdffc008bb09..fc540e02f2386bb1b15cfb8859ca87d944492f8a 100644 --- a/src/uncategorized/salon.tw +++ b/src/uncategorized/salon.tw @@ -26,33 +26,29 @@ /* EYES */ <br><br> -<<if $activeSlave.pupil == "">> - <<set $activeSlave.pupil = "circular">> -<</if>> -<<if $activeSlave.sclerae == "">> - <<set $activeSlave.sclerae = "white">> -<</if>> -<<if $activeSlave.eyesImplant == 1>> - $He has artificial eyes, and $he +<<if getBestVision($activeSlave) === 0>> + $He is blind, and <<if $activeSlave.eyewear == "none">> has no eyewear. <<else>> is wearing $activeSlave.eyewear. [[Remove|Salon][$activeSlave.eyewear = "none"]] <</if>> - //Blurring options are annoying and impede performance on some assignments.// <br> Give $him: [[Cosmetic glasses|Salon][$activeSlave.eyewear = "glasses",cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - <br> -<<elseif $activeSlave.eyes < -1>> - $He is blind, and +<<elseif anyVisionEquals($activeSlave, 1)>> + $He is nearsighted, and $he <<if $activeSlave.eyewear == "none">> has no eyewear. <<else>> is wearing $activeSlave.eyewear. [[Remove|Salon][$activeSlave.eyewear = "none"]] <</if>> + //Nearsightedness will impede performance on some assignments.// <br> Give $him: [[Cosmetic glasses|Salon][$activeSlave.eyewear = "glasses",cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] -<<elseif $activeSlave.eyes > -1>> + | [[Corrective glasses|Salon][$activeSlave.eyewear = "corrective glasses",cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] + | [[Corrective contacts|Salon][$activeSlave.eyewear = "corrective contacts",cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] + <br> +<<else>> $His vision is normal, and $he <<if $activeSlave.eyewear == "none">> has no eyewear. @@ -64,121 +60,159 @@ Give $him: [[Cosmetic glasses|Salon][$activeSlave.eyewear = "glasses",cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] | [[Blurring glasses|Salon][$activeSlave.eyewear = "blurring glasses",cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] | [[Blurring contacts|Salon][$activeSlave.eyewear = "blurring contacts",cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] +<</if>> + +<br> +Custom glass eyes and cosmetic lenses: +$He has <<print App.Desc.eyesType($activeSlave)>><<if hasAnyEyes($activeSlave)>>, they are <<print App.Desc.eyeColor($activeSlave)>><</if>>. + +/* remove lenses */ +<<set _n = 0>> +<<if hasLeftEye($activeSlave) && getLeftEyeColor($activeSlave) !== getGeneticEyeColor($activeSlave, "left")>> + <<set _n++>> + [[Remove left lens|Salon][resetEyeColor($activeSlave, "left")]] +<</if>> +<<if hasRightEye($activeSlave) && getRightEyeColor($activeSlave) !== getGeneticEyeColor($activeSlave, "right")>> + <<set _n++>> + <<if _n > 0>>|<</if>> + [[Remove right lens|Salon][resetEyeColor($activeSlave, "right")]] +<</if>> +<<if _n === 2>> + | [[Remove both lenses|Salon][resetEyeColor($activeSlave, "both")]] +<</if>> +/* remove glass eyes */ +<<set _n = 0>> +<<if getLeftEyeType($activeSlave) === 2>> + <<set _n++>> + [[Remove left glass eye|Salon][eyeSurgery($activeSlave, "left", "remove")]] +<</if>> +<<if getRightEyeType($activeSlave) === 2>> + <<set _n++>> + <<if _n > 0>>|<</if>> + [[Remove right glass eye|Salon][eyeSurgery($activeSlave, "right", "remove")]] +<</if>> +<<if _n === 2>> + | [[Remove both glass eyes|Salon][eyeSurgery($activeSlave, "both", "remove")]] +<</if>> + +<<if hasBothEyes($activeSlave)>> + //Change what $his eyes look like:// +<<elseif hasAnyEyes($activeSlave)>> + //Change what $his eye looks like or give $him a new glass eye:// <<else>> - $He is nearsighted, and $he - <<if $activeSlave.eyewear == "none">> - has no eyewear. - <<else>> - is wearing $activeSlave.eyewear. [[Remove|Salon][$activeSlave.eyewear = "none"]] - <</if>> - //Nearsightedness will impede performance on some assignments.// - <br> - Give $him: [[Cosmetic glasses|Salon][$activeSlave.eyewear = "glasses",cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Corrective glasses|Salon][$activeSlave.eyewear = "corrective glasses",cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Corrective contacts|Salon][$activeSlave.eyewear = "corrective contacts",cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - <br> + //Choose what kind of glass eyes you want $him to have:// <</if>> -<<if $activeSlave.eyesImplant == 0>> +<br> +Side: +[[Left|Salon][$artificialEyeSide = "left"]] +| [[Right|Salon][$artificialEyeSide = "right"]] +| [[Both|Salon][$artificialEyeSide = "both"]] + +<br> +Iris: +[[Amber|Salon][$artificialEyeColor = "amber"]] +| [[Black|Salon][$artificialEyeColor = "black"]] +| [[Blue|Salon][$artificialEyeColor = "blue"]] +| [[Brown|Salon][$artificialEyeColor = "brown"]] +| [[Green|Salon][$artificialEyeColor = "green"]] +| [[Hazel|Salon][$artificialEyeColor = "hazel"]] +| [[Orange|Salon][$artificialEyeColor = "orange"]] +| [[Pale-Grey|Salon][$artificialEyeColor = "pale-grey"]] +| [[Pink|Salon][$artificialEyeColor = "pink"]] +| [[Red|Salon][$artificialEyeColor = "red"]] +| [[Sky-Blue|Salon][$artificialEyeColor = "sky-blue"]] +| [[Turquoise|Salon][$artificialEyeColor = "turquoise"]] +| [[White|Salon][$artificialEyeColor = "white"]] +| [[Yellow|Salon][$artificialEyeColor = "yellow"]] + +<br> +Pupil: +[[Circular|Salon][$artificialEyeShape = "circular"]] +| [[Almond-Shaped|Salon][$artificialEyeShape = "almond-shaped"]] +| [[Bright|Salon][$artificialEyeShape = "bright"]] +| [[Catlike|Salon][$artificialEyeShape = "catlike"]] +| [[Demonic|Salon][$artificialEyeShape = "demonic"]] +| [[Devilish|Salon][$artificialEyeShape = "devilish"]] +| [[Goat-Like|Salon][$artificialEyeShape = "goat-like"]] +| [[Heart-Shaped|Salon][$artificialEyeShape = "heart-shaped"]] +| [[Hypnotic|Salon][$artificialEyeShape = "hypnotic"]] +| [[Serpent-Like|Salon][$artificialEyeShape = "serpent-like"]] +| [[Star-Shaped|Salon][$artificialEyeShape = "star-shaped"]] +| [[Teary|Salon][$artificialEyeShape = "teary"]] +| [[Vacant|Salon][$artificialEyeShape = "vacant"]] +| [[Wide-Eyed|Salon][$artificialEyeShape = "wide-eyed"]] + +<br> +Sclera: +[[White|Salon][$artificialEyeFill = "white"]] +| [[Amber|Salon][$artificialEyeFill = "amber"]] +| [[Black|Salon][$artificialEyeFill = "black"]] +| [[Blue|Salon][$artificialEyeFill = "blue"]] +| [[Brown|Salon][$artificialEyeFill = "brown"]] +| [[Green|Salon][$artificialEyeFill = "green"]] +| [[Hazel|Salon][$artificialEyeFill = "hazel"]] +| [[Orange|Salon][$artificialEyeFill = "orange"]] +| [[Pale-Grey|Salon][$artificialEyeFill = "pale-grey"]] +| [[Pink|Salon][$artificialEyeFill = "pink"]] +| [[Red|Salon][$artificialEyeFill = "red"]] +| [[Sky-Blue|Salon][$artificialEyeFill = "sky-blue"]] +| [[Turquoise|Salon][$artificialEyeFill = "turquoise"]] +| [[Yellow|Salon][$artificialEyeFill = "yellow"]] + +<<if $artificialEyeSide != "" && $artificialEyeColor != "">> <br> - Custom cosmetic lenses: - <<if $activeSlave.eyes > -3>> - <<if $activeSlave.geneticQuirks.heterochromia != 0 && $activeSlave.geneticQuirks.heterochromia != 1 && $activeSlave.geneticQuirks.heterochromia != $activeSlave.origEye>> - $He has one $activeSlave.eyeColor eye and one $activeSlave.geneticQuirks.heterochromia eye. - <<else>> - $His eyes are $activeSlave.eyeColor. + <<link "Give" "Salon">> + /* make sure the eye(s) exists: give glass eye if there is none */ + <<if ($artificialEyeSide === "left" || $artificialEyeSide === "both") && getLeftEyeType($activeSlave) === 0>> + <<run eyeSurgery($activeSlave, "left", "glass")>> <</if>> - <<if $activeSlave.origEye != $activeSlave.eyeColor>> - [[Remove lenses|Salon][$activeSlave.eyeColor = $activeSlave.origEye]] or //choose new ones:// - <<else>> - //Choose $his cosmetic lenses:// + <<if ($artificialEyeSide === "right" || $artificialEyeSide === "both") && getRightEyeType($activeSlave) === 0>> + <<run eyeSurgery($activeSlave, "right", "glass")>> <</if>> - <<elseif $activeSlave.eyes == -3>> - $His glass eyes are $activeSlave.eyeColor. [[Remove glass eyes|Salon][$activeSlave.eyes = -4]] or //choose new ones:// - <<else>> - $He has no eyes. //Choose what kind of glass eyes you want $him to have:// - <</if>> - <br> - Iris: - [[Amber|Salon][$artificialEyeColor = "amber"]] - | [[Black|Salon][$artificialEyeColor = "black"]] - | [[Blue|Salon][$artificialEyeColor = "blue"]] - | [[Brown|Salon][$artificialEyeColor = "brown"]] - | [[Green|Salon][$artificialEyeColor = "green"]] - | [[Hazel|Salon][$artificialEyeColor = "hazel"]] - | [[Orange|Salon][$artificialEyeColor = "orange"]] - | [[Pale-Grey|Salon][$artificialEyeColor = "pale-grey"]] - | [[Pink|Salon][$artificialEyeColor = "pink"]] - | [[Red|Salon][$artificialEyeColor = "red"]] - | [[Sky-Blue|Salon][$artificialEyeColor = "sky-blue"]] - | [[Turquoise|Salon][$artificialEyeColor = "turquoise"]] - | [[White|Salon][$artificialEyeColor = "white"]] - | [[Yellow|Salon][$artificialEyeColor = "yellow"]] + /* apply modifications */ + <<run setEyeColorFull($activeSlave, $artificialEyeColor, $artificialEyeShape, $artificialEyeFill, $artificialEyeSide)>> + <<run cashX(forceNeg($modCost), "slaveMod", $activeSlave)>> - <br> - Pupil: - [[Circular|Salon][$artificialEyeShape = "circular"]] - | [[Almond-Shaped|Salon][$artificialEyeShape = "almond-shaped"]] - | [[Bright|Salon][$artificialEyeShape = "bright"]] - | [[Catlike|Salon][$artificialEyeShape = "catlike"]] - | [[Demonic|Salon][$artificialEyeShape = "demonic"]] - | [[Devilish|Salon][$artificialEyeShape = "devilish"]] - | [[Goat-Like|Salon][$artificialEyeShape = "goat-like"]] - | [[Heart-Shaped|Salon][$artificialEyeShape = "heart-shaped"]] - | [[Hypnotic|Salon][$artificialEyeShape = "hypnotic"]] - | [[Serpent-Like|Salon][$artificialEyeShape = "serpent-like"]] - | [[Star-Shaped|Salon][$artificialEyeShape = "star-shaped"]] - | [[Teary|Salon][$artificialEyeShape = "teary"]] - | [[Vacant|Salon][$artificialEyeShape = "vacant"]] - | [[Wide-Eyed|Salon][$artificialEyeShape = "wide-eyed"]] + /* reset variables */ + <<set $artificialEyeSide = "", $artificialEyeColor = "", $artificialEyeShape = "", $artificialEyeFill = "">> + <</link>> - <br> - Sclera: - [[White|Salon][$artificialEyeFill = "white"]] - | [[Amber|Salon][$artificialEyeFill = "amber"]] - | [[Black|Salon][$artificialEyeFill = "black"]] - | [[Blue|Salon][$artificialEyeFill = "blue"]] - | [[Brown|Salon][$artificialEyeFill = "brown"]] - | [[Green|Salon][$artificialEyeFill = "green"]] - | [[Hazel|Salon][$artificialEyeFill = "hazel"]] - | [[Orange|Salon][$artificialEyeFill = "orange"]] - | [[Pale-Grey|Salon][$artificialEyeFill = "pale-grey"]] - | [[Pink|Salon][$artificialEyeFill = "pink"]] - | [[Red|Salon][$artificialEyeFill = "red"]] - | [[Sky-Blue|Salon][$artificialEyeFill = "sky-blue"]] - | [[Turquoise|Salon][$artificialEyeFill = "turquoise"]] - | [[Yellow|Salon][$artificialEyeFill = "yellow"]] - - <<if $artificialEyeColor != "">> - <br> - <<if $activeSlave.eyes == -4>> - [[Give|Salon][$activeSlave.eyes = -3, $activeSlave.eyeColor = ($artificialEyeColor), $activeSlave.pupil = ($artificialEyeShape), $activeSlave.sclerae = ($artificialEyeFill), cashX(forceNeg($modCost), "slaveMod", $activeSlave), $artificialEyeColor = "", $artificialEyeShape = "", $artificialEyeFill = ""]] - <<else>> - [[Give|Salon][$activeSlave.eyeColor = ($artificialEyeColor), $activeSlave.pupil = ($artificialEyeShape), $activeSlave.sclerae = ($artificialEyeFill), cashX(forceNeg($modCost), "slaveMod", $activeSlave), $artificialEyeColor = "", $artificialEyeShape = "", $artificialEyeFill = ""]] - <</if>> - $him $artificialEyeColor - <<if $activeSlave.eyes <= -3>> + /* make the following easier to read */ + <<set _both = $artificialEyeSide === "both", + _leftGlass = !hasLeftEye($activeSlave) || getLeftEyeType($activeSlave) === 2, + _rightGlass = !hasRightEye($activeSlave) || getRightEyeType($activeSlave) === 2>> + + $him $artificialEyeColor + <<if _both>> + <<if _leftGlass && _rightGlass>> glass eyes + <<elseif _leftGlass || _rightGlass>> + a glass eye and a $artificialEyeColor lens <<else>> lenses <</if>> - <<if $artificialEyeShape != "" || $artificialEyeFill != "">> - with - <<if $artificialEyeShape != "" >> - $artificialEyeShape pupils - <</if>> - <<if $artificialEyeShape != "" && $artificialEyeFill != "">> - and - <</if>> - <<if $artificialEyeFill != "" >> - $artificialEyeFill sclera - <</if>> - <</if>>? //This will be applied in addition to eyewear choices.// + <<else>> + a + <<if ($artificialEyeSide === "left" && _leftGlass) || ($artificialEyeSide === "right" && _rightGlass)>> + glass eye + <<else>> + lens + <</if>> <</if>> - -<<else>> - $His eyes are artificial and can't be set here. + <<if $artificialEyeShape != "" || $artificialEyeFill != "">> + with + <<if $artificialEyeShape != "" >> + $artificialEyeShape <<if _both>> pupils <<else>> pupil <</if>> + <</if>> + <<if $artificialEyeShape != "" && $artificialEyeFill != "">> + and + <</if>> + <<if $artificialEyeFill != "" >> + $artificialEyeFill <<if _both>> sclerae <<else>> sclera <</if>> + <</if>> + <</if>>? //This is independent from eyewear choices.// <</if>> /* EARS */ diff --git a/src/uncategorized/seCustomSlaveDelivery.tw b/src/uncategorized/seCustomSlaveDelivery.tw index 3d61716ff903e659439f622e345e3bb5212a86fe..5561998ab01218d884d02aaf18022b68e4cfd9dc 100644 --- a/src/uncategorized/seCustomSlaveDelivery.tw +++ b/src/uncategorized/seCustomSlaveDelivery.tw @@ -192,7 +192,8 @@ <<set $activeSlave.skill.entertainment = $customSlave.skill.whore>> <<set $activeSlave.skill.whoring = $customSlave.skill.whore>> <<set $activeSlave.skill.combat = $customSlave.skill.combat>> -<<set $activeSlave.eyes = $customSlave.eyes>> +<<set $activeSlave.eye.left.vision = $customSlave.eye.left.vision>> +<<set $activeSlave.eye.right.vision = $customSlave.eye.right.vision>> <<set $activeSlave.hears = $customSlave.hears>> <<set $activeSlave.smells = $customSlave.smells>> <<set $activeSlave.tastes = $customSlave.tastes>> diff --git a/src/uncategorized/seExpiration.tw b/src/uncategorized/seExpiration.tw index 13bc72a4159765bd5249c60b78c919b70a0489ec..eb3775fb2f37c6994f70f864b9894946e7e614b3 100644 --- a/src/uncategorized/seExpiration.tw +++ b/src/uncategorized/seExpiration.tw @@ -84,8 +84,14 @@ $activeSlave.slaveName's indentured servitude is ending this week, meaning that <<link "Enslave $him">> <<replace "#result">> $He's beside $himself with joy when you accept $his plea and enslave $him. $He's given you the finest proof of loyalty a slave possibly can, having tasted a moment of freedom under the law, and thrown it away with utter contempt. - <<if $activeSlave.eyes > -4>> - $His <<= App.Desc.eyesColor($activeSlave)>> <<if canSee($activeSlave)>>watch you<<else>>are wide<</if>> with + <<if hasAnyEyes($activeSlave)>> + $His <<= App.Desc.eyesColor($activeSlave)>> + <<if hasBothEyes($activeSlave)>> + <<if canSee($activeSlave)>>watch you<<else>>are wide<</if>> + <<else>> + <<if canSee($activeSlave)>>watches you<<else>>is wide<</if>> + <</if>> + with <<else>> $His face shows <</if>> diff --git a/src/uncategorized/seIndependenceDay.tw b/src/uncategorized/seIndependenceDay.tw index f5000f0e56a19573d1f115c5273a8e5a0d39fdb0..c11d01e6d8c29646414b9b209cbbebc0d1db8557 100644 --- a/src/uncategorized/seIndependenceDay.tw +++ b/src/uncategorized/seIndependenceDay.tw @@ -328,7 +328,8 @@ In the Free Cities, Independence Day falls on the day when the Free City achieve <</if>> <<elseif $arcologies[0].FSHedonisticDecadence != "unset">> <<if $arcologies[0].FSHedonisticDecadence >= 90>> - You implore your citizens to sit back with a nice cold drink, a big plate of their favorite foods and a perfectly plush slavegirl between their legs. + <<setNonlocalPronouns $seeDicks>> + You implore your citizens to sit back with a nice cold drink, a big plate of their favorite foods, and a perfectly plush slave<<= _girlU>> between their legs. <<elseif $arcologies[0].FSHedonisticDecadence >= 40>> You ask your citizens to relax and take a load off, to enjoy life while they have the chance. <</if>> diff --git a/src/uncategorized/seLethalPit.tw b/src/uncategorized/seLethalPit.tw index 2921e2e5b8a19c1ddddd901fe5cdf05c401720ce..41a99af4f302eac19a6d2c7af0cd346fe345f26a 100644 --- a/src/uncategorized/seLethalPit.tw +++ b/src/uncategorized/seLethalPit.tw @@ -214,7 +214,7 @@ You review the rules — the <<if $pitAnimal == 0>>combatants<<else>>slave<</if> <<if !canSee(_fighterOne)>> $His lack of eyesight is certain death. -<<elseif ((_fighterOne.eyes == -1) && (_fighterOne.eyewear != "corrective glasses") && (_fighterOne.eyewear != "corrective contacts")) || (_fighterOne.eyes == 1 && (_fighterOne.eyewear == "blurring glasses" || _fighterOne.eyewear == "blurring contacts"))>> +<<elseif !canSeePerfectly(_fighterOne)>> $His poor eyesight makes $him a weaker combatant. <</if>> @@ -366,7 +366,7 @@ You review the rules — the <<if $pitAnimal == 0>>combatants<<else>>slave<</if> <<if !canSee(_fighterTwo)>> _His2 lack of eyesight is certain death. - <<elseif ((_fighterTwo.eyes == -1) && (_fighterTwo.eyewear != "corrective glasses") && (_fighterTwo.eyewear != "corrective contacts")) || (_fighterTwo.eyes == 1 && (_fighterTwo.eyewear == "blurring glasses" || _fighterTwo.eyewear == "blurring contacts"))>> + <<elseif !canSeePerfectly(_fighterOne)>> _His2 poor eyesight makes _him2 a weaker combatant. <</if>> diff --git a/src/uncategorized/seNicaeaAnnouncement.tw b/src/uncategorized/seNicaeaAnnouncement.tw index 183bf55aeb2314fad33a77fb81ea8b4f5c8b6cc7..2f2963c1dc6e0cb20504695bdf1368ab19e376a0 100644 --- a/src/uncategorized/seNicaeaAnnouncement.tw +++ b/src/uncategorized/seNicaeaAnnouncement.tw @@ -9,7 +9,7 @@ Religion is full of politics. <br><br> -The Chattel Religionist faith was always going to be a ferociously controversial thing. The old world faiths it borrows from condemned it as sinful at best and heretical at worst, right from the start, and they've done their feeble best against it ever since. Secular old world institutions regard it with a predictable mixture of disdain and fear. Lately, however, the young faith has started to suffer from another common malady of new religions for the first time: internal dissention. Just who is a Chattel Religionist? The faith has no governing body, no standard holy text, and no creed held in common. So far, any slaveowner has been able to define themselves as a Chattel Religionist by adopting some old world religious tropes adapted to modern slavery, and by calling themselves a Chattel Religionist. That's it. This loose, welcoming basis has often been a strength. It appeals to many potential converts among Free Cities slaveowners, and it's been difficult to have internal disputes when there are no rules to fight over. +The Chattel Religionist faith was always going to be a ferociously controversial thing. The old world faiths it borrows from condemned it as sinful at best and heretical at worst, right from the start, and they've done their feeble best against it ever since. Secular old world institutions regard it with a predictable mixture of disdain and fear. Lately, however, the young faith has started to suffer from another common malady of new religions for the first time: internal dissension. Just who is a Chattel Religionist? The faith has no governing body, no standard holy text, and no creed held in common. So far, any slaveowner has been able to define themselves as a Chattel Religionist by adopting some old world religious tropes adapted to modern slavery, and by calling themselves a Chattel Religionist. That's it. This loose, welcoming basis has often been a strength. It appeals to many potential converts among Free Cities slaveowners, and it's been difficult to have internal disputes when there are no rules to fight over. <br><br> Some prominent Chattel Religionists, however, are now arguing that Chattel Religionism can and should do more. You're conversing with one such advocate now, via video call. "Chattel Religionism could be truly great," <<if _advocate == "male">>he<<else>>she<</if>> argues vigorously. "It isn't now. We'll never accomplish anything without minimal unity and direction. There's too much play-acting and not enough evangelical fire." <<if _advocate == "male">>He<<else>>She<</if>> rotates the camera, letting you see the view <<if _advocate == "male">> diff --git a/src/uncategorized/seNonlethalPit.tw b/src/uncategorized/seNonlethalPit.tw index d11777e4fbaecf71a0c1639d4522cf36af6a3f11..1e6e26a5b5e8085d50ee0fa4f7778d84562c0547 100644 --- a/src/uncategorized/seNonlethalPit.tw +++ b/src/uncategorized/seNonlethalPit.tw @@ -198,7 +198,7 @@ <<if !canSee(_fighterOne)>> $His lack of eyesight means certain defeat. - <<elseif ((_fighterOne.eyes == -1) && (_fighterOne.eyewear != "corrective glasses") && (_fighterOne.eyewear != "corrective contacts")) || (_fighterOne.eyes == 1 && (_fighterOne.eyewear == "blurring glasses" || _fighterOne.eyewear == "blurring contacts"))>> + <<elseif !canSeePerfectly($activeSlave)>> $His poor eyesight makes $him a weaker fighter. <</if>> @@ -338,7 +338,7 @@ <<if !canSee(_fighterTwo)>> _His2 lack of eyesight means certain defeat. - <<elseif ((_fighterTwo.eyes == -1) && (_fighterTwo.eyewear != "corrective glasses") && (_fighterTwo.eyewear != "corrective contacts")) || (_fighterTwo.eyes == 1 && (_fighterTwo.eyewear == "blurring glasses" || _fighterTwo.eyewear == "blurring contacts"))>> + <<elseif !canSeePerfectly(_fighterTwo)>> _His2 poor eyesight makes _him2 a weaker fighter. <</if>> diff --git a/src/uncategorized/seWeddingDouble.tw b/src/uncategorized/seWeddingDouble.tw index ca82cf0921f20809dbc80399183f590711d7969c..8f410cef652f53635cd1998b6dba6ba9d59b9be3 100644 --- a/src/uncategorized/seWeddingDouble.tw +++ b/src/uncategorized/seWeddingDouble.tw @@ -1461,7 +1461,7 @@ <<if ((_slave1.fetish == "mindbroken") && (_slave2.fetish == "mindbroken")) || ((_slave1.devotion+_slave1.trust >= 175) && (_slave2.devotion+_slave2.trust >= 175)) || ((_slave1.devotion < -20 && _slave1.trust > 20) && (_slave2.devotion < -20 && _slave2.trust > 20)) || ((_slave1.devotion < -20) && (_slave2.devotion < -20)) || ((_slave1.devotion >= -20 && _slave2.devotion >= -20))>> <<if _slave1.fetish == "mindbroken">> /* TODO: rewrite for slaves that can't walk */ - They spent the day before resting and preparing themselves, if you can call sitting around mindlessly preparing. They spend most of the daylong party at the center of a nonstop gangbang, occasionally moaning as more of a physical reaction than anything. The theory is that they'll be bound to you as your slave <<if $wife == _wife2>>$wives<<else>>spouses<</if>> from this day onward, so they must get the promiscuity that is a sex slave's responsibility out of the way now. Whatever their opinions on the idea, your guests take part with enthusiasm, completely unhampered by your slave's utter emptiness. Many brought their own slaves to participate, too. _slave1.slaveName and _slave2.slaveName spend hours with numerous cocks inside them, with attending slaves using their mouths on any erogenous zones they can reach. When the moment of the ceremony nears, they are extracted and taken off to be bathed. + They spent the day before resting and preparing themselves, if you can call sitting around mindlessly preparing. They spend most of the day-long party at the center of a nonstop gangbang, occasionally moaning as more of a physical reaction than anything. The theory is that they'll be bound to you as your slave <<if $wife == _wife2>>$wives<<else>>spouses<</if>> from this day onward, so they must get the promiscuity that is a sex slave's responsibility out of the way now. Whatever their opinions on the idea, your guests take part with enthusiasm, completely unhampered by your slave's utter emptiness. Many brought their own slaves to participate, too. _slave1.slaveName and _slave2.slaveName spend hours with numerous cocks inside them, with attending slaves using their mouths on any erogenous zones they can reach. When the moment of the ceremony nears, they are extracted and taken off to be bathed. <br><br> They return shortly, looking exhausted but otherwise uncaring. They're naked still, their skin clean, and are <<if !hasAnyLegs(_slave1) && !hasAnyLegs(_slave2)>>carried<<else>>led<</if>> to you for the ceremony by other slaves. The only evident signs that they've had sex with more than a hundred people today is their asses, which look rather well traveled, and their tiredness. They can't conceal their tiredness, and lean against you subconsciously. <<if $assistantName == "your personal assistant">>Your personal assistant<<else>>$assistantName<</if>> reads the short recitation for them, and you place a simple steel ring <<if hasAnyArms(_slave1) && hasAnyArms(_slave2)>> @@ -1489,7 +1489,7 @@ Once the ceremony is complete, you scoop up your new slave <<if $wife == _wife2>>$wives<<else>>spouses<</if>> to carry them back into the master bedroom. They rest their heads against your <<if $PC.boobs >= 300>>breasts<<elseif $PC.title == 0>>flat chest<<else>>strong chest<</if>> as you cradle them in your arms, and by the time they're home, they're fast asleep. You set them gently down on the bed and curl up behind them, feeling the animal warmth of their bodies as the exhausted slaves' chest rise and fall with their breathing. <<elseif _slave1.devotion+_slave1.trust >= 175>> /* TODO: rewrite for slaves that can't walk */ - They spent the day before resting and preparing themselves, and this was a necessary precaution. They spend most of the daylong party at the center of a nonstop gangbang. The theory is that they'll be bound to you as your slave <<if $wife == _wife2>>$wives<<else>>spouses<</if>> from this day onward, so they must get the promiscuity that is a sex slave's responsibility out of the way now. Whatever their opinions on the idea, @@.green;your guests take part with enthusiasm,@@ many having brought their own slaves to participate, too. _slave1.slaveName and _slave2.slaveName spend hours with numerous cocks inside them, with attending slaves using their mouths on any erogenous zones they can reach. When the moment of the ceremony nears, they're extracted and taken off to be bathed. + They spent the day before resting and preparing themselves, and this was a necessary precaution. They spend most of the day-long party at the center of a nonstop gangbang. The theory is that they'll be bound to you as your slave <<if $wife == _wife2>>$wives<<else>>spouses<</if>> from this day onward, so they must get the promiscuity that is a sex slave's responsibility out of the way now. Whatever their opinions on the idea, @@.green;your guests take part with enthusiasm,@@ many having brought their own slaves to participate, too. _slave1.slaveName and _slave2.slaveName spend hours with numerous cocks inside them, with attending slaves using their mouths on any erogenous zones they can reach. When the moment of the ceremony nears, they're extracted and taken off to be bathed. <br><br> They return shortly, looking exhausted but rather proud of themselves for getting through all that. They're naked still, their skin clean, and <<if !hasAnyLegs(_slave1) && !hasAnyLegs(_slave2)>>are carried<<else>>come confidently<</if>> to stand by you for the ceremony. The only evident signs that they've had sex with more than a hundred people today is their asses, which look rather well-traveled, and their tiredness. They do their best to conceal how ready to sleep they are, but they lean against you a little. <<if $assistantName == "your personal assistant">>Your personal assistant<<else>>$assistantName<</if>> reads the short recitation for them, and you place a simple steel ring <<if hasAnyArms(_slave1) && hasAnyArms(_slave2)>> @@ -1517,7 +1517,7 @@ Once the ceremony is complete, you scoop up your new slave <<if $wife == _wife2>>$wives<<else>>spouses<</if>> to carry them back into the master bedroom. They rest their heads against your <<if $PC.boobs >= 300>>breasts<<elseif $PC.title == 0>>flat chest<<else>>strong chest<</if>> as you cradle them in your arms, and by the time they're home, they're fast asleep. You set them gently down on the bed and curl up behind them, feeling the animal warmth of their bodies as the exhausted slave's chest rises and falls with their breathing. <<elseif _slave1.devotion < -20 && _slave1.trust > 20>> /* TODO: rewrite for slaves that can't walk */ - They spent the day before resting and trying to ready themselves, and this was a necessary precaution. They spend most of the daylong party at the center of a nonstop gangbang, screaming mixed cries of pleasure and horror. The theory is that they'll be bound to you as your slave <<if $wife == _wife2>>$wives<<else>>spouses<</if>> from this day onward, so they must get the promiscuity that is a sex slave's responsibility out of the way now. Whatever their opinions on the idea, your guests take part with enthusiasm, completely unhampered by your slave's utter unwillingness. Many brought their own slaves to participate, too. _slave1.slaveName and _slave2.slaveName spend hours with numerous cocks inside them, with attending slaves using their mouths on any erogenous zones they can reach. When the moment of the ceremony nears, they're extracted and taken off to be bathed. + They spent the day before resting and trying to ready themselves, and this was a necessary precaution. They spend most of the day-long party at the center of a nonstop gangbang, screaming mixed cries of pleasure and horror. The theory is that they'll be bound to you as your slave <<if $wife == _wife2>>$wives<<else>>spouses<</if>> from this day onward, so they must get the promiscuity that is a sex slave's responsibility out of the way now. Whatever their opinions on the idea, your guests take part with enthusiasm, completely unhampered by your slave's utter unwillingness. Many brought their own slaves to participate, too. _slave1.slaveName and _slave2.slaveName spend hours with numerous cocks inside them, with attending slaves using their mouths on any erogenous zones they can reach. When the moment of the ceremony nears, they're extracted and taken off to be bathed. <br><br> They return shortly, looking exhausted and annoyed. They're naked still, their skin clean, and come reluctantly to stand by you for the ceremony, glaring at you the whole time. The only evident signs that they've had sex with more than a hundred people today is their asses, which look rather well traveled, and their tiredness. They do their best to conceal their tiredness and look stronger than they are, choosing to struggle to stand instead of leaning against you. <<if $assistantName == "your personal assistant">>Your personal assistant<<else>>$assistantName<</if>> reads the short recitation for them, and you place a simple steel ring <<if hasAnyArms(_slave1) && hasAnyArms(_slave2)>> @@ -1545,7 +1545,7 @@ Once the ceremony is complete, you scoop up your new, protesting, slave <<if $wife == _wife2>>$wives<<else>>spouses<</if>> to carry them back into the master bedroom. They rest their heads against your <<if $PC.boobs >= 300>>breasts<<elseif $PC.title == 0>>flat chest<<else>>strong chest<</if>>, simply too tired to care anymore. By the time they're home, they're fast asleep. You set them gently down on the bed and curl up behind them, feeling the animal warmth of their bodies as the exhausted slaves' chest rise and fall with their breathing. They squirms slightly in their sleep to the unwelcome feeling of your arm around them. <<elseif _slave1.devotion < -20>> /* TODO: rewrite for slaves that can't walk */ - They spent the day before resting and crying to themselves, and this was a necessary precaution. They spend most of the daylong party at the center of a nonstop gangbang, screaming mixed cries of pleasure and horror. The theory is that they'll be bound to you as your slave <<if $wife == _wife2>>$wives<<else>>spouses<</if>> from this day onward, so they must get the promiscuity that is a sex slave's responsibility out of the way now. Whatever their opinions on the idea, your guests take part with enthusiasm, completely unhampered by your slave's utter unwillingness. Many brought their own slaves to participate, too. _slave1.slaveName and _slave2.slaveName spend hours with numerous cocks inside them, with attending slaves using their mouths on any erogenous zones they can reach. When the moment of the ceremony nears, they're extracted and taken off to be bathed. + They spent the day before resting and crying to themselves, and this was a necessary precaution. They spend most of the day-long party at the center of a nonstop gangbang, screaming mixed cries of pleasure and horror. The theory is that they'll be bound to you as your slave <<if $wife == _wife2>>$wives<<else>>spouses<</if>> from this day onward, so they must get the promiscuity that is a sex slave's responsibility out of the way now. Whatever their opinions on the idea, your guests take part with enthusiasm, completely unhampered by your slave's utter unwillingness. Many brought their own slaves to participate, too. _slave1.slaveName and _slave2.slaveName spend hours with numerous cocks inside them, with attending slaves using their mouths on any erogenous zones they can reach. When the moment of the ceremony nears, they're extracted and taken off to be bathed. <br><br> They return shortly, looking exhausted and depressed. They're naked still, their skin clean, and come reluctantly to stand by you for the ceremony, just wanting it to be over. The only evident signs that they've had sex with more than a hundred people today is their asses, which look rather well traveled, and their tiredness. They do their best to conceal their tiredness out of fear of punishment, and they lean against you for support despite their feelings on the wedding and you. <<if $assistantName == "your personal assistant">>Your personal assistant<<else>>$assistantName<</if>> reads the short recitation for them, and you place a simple steel ring <<if hasAnyArms(_slave1) && hasAnyArms(_slave2)>> @@ -1573,7 +1573,7 @@ Once the ceremony is complete, you scoop up your new slave <<if $wife == _wife2>>$wives<<else>>spouses<</if>> to carry them back into the master bedroom. They rest their head against your <<if $PC.boobs >= 300>>breasts<<elseif $PC.title == 0>>flat chest<<else>>strong chest<</if>>, simply too tired to care anymore. By the time they're home, they're fast asleep. You set them gently down on the bed and curl up behind them, feeling the animal warmth of their bodies as the exhausted slaves' chest rise and fall with their breathing. <<else>> /* TODO: rewrite for slaves that can't walk */ - They spent the day before resting and reluctantly preparing themselves, and this was a necessary precaution. They spend most of the daylong party at the center of a nonstop gangbang, moaning and wincing as they takes cock after cock. The theory is that they'll be bound to you as your slave <<if $wife == _wife2>>$wives<<else>>spouses<</if>> from this day onward, so they must get the promiscuity that is a sex slave's responsibility out of the way now. Whatever their opinions on the idea, your guests take part with enthusiasm, completely unhampered by your slave's lack of passion. Many brought their own slaves to participate, too. _slave1.slaveName and _slave2.slaveName spend hours with numerous cocks inside them, with attending slaves using their mouths on any erogenous zones they can reach. When the moment of the ceremony nears, they're extracted and taken off to be bathed. + They spent the day before resting and reluctantly preparing themselves, and this was a necessary precaution. They spend most of the day-long party at the center of a nonstop gangbang, moaning and wincing as they takes cock after cock. The theory is that they'll be bound to you as your slave <<if $wife == _wife2>>$wives<<else>>spouses<</if>> from this day onward, so they must get the promiscuity that is a sex slave's responsibility out of the way now. Whatever their opinions on the idea, your guests take part with enthusiasm, completely unhampered by your slave's lack of passion. Many brought their own slaves to participate, too. _slave1.slaveName and _slave2.slaveName spend hours with numerous cocks inside them, with attending slaves using their mouths on any erogenous zones they can reach. When the moment of the ceremony nears, they're extracted and taken off to be bathed. <br><br> They return shortly, looking exhausted. They're naked still, their skin clean, and come to stand by you for the ceremony. The only evident signs that they've had sex with more than a hundred people today is their asses, which look rather well traveled, and their tiredness. They do their best to conceal it, leaning against you despite the lack of love between you. /* TODO: double check the devotion requirements for this, rewrite as needed */ @@ -1605,31 +1605,31 @@ <<else>> /* TODO: this section will need a major rewrite */ <<if _slave1.fetish == "mindbroken">> - _slave1.slaveName spent the day before resting and preparing $himself, if you can call sitting around mindlessly preparing. $He spends most of the daylong party at the center of a nonstop gangbang, occasionally moaning as more of a physical reaction than anything. The theory is that $he'll be bound to you as your slave $wife from this day onward, so $he must get the promiscuity that is a sex slave's responsibility out of the way now. Whatever their opinions on the idea, your guests take part with enthusiasm, completely unhampered by your slave's utter emptiness. Many brought their own slaves to participate, too. _slave1.slaveName spends hours with numerous cocks inside $him, with attending slaves using their mouths on any erogenous zones they can reach. When the moment of the ceremony nears, $he's extracted and taken off to be bathed. + _slave1.slaveName spent the day before resting and preparing $himself, if you can call sitting around mindlessly preparing. $He spends most of the day-long party at the center of a nonstop gangbang, occasionally moaning as more of a physical reaction than anything. The theory is that $he'll be bound to you as your slave $wife from this day onward, so $he must get the promiscuity that is a sex slave's responsibility out of the way now. Whatever their opinions on the idea, your guests take part with enthusiasm, completely unhampered by your slave's utter emptiness. Many brought their own slaves to participate, too. _slave1.slaveName spends hours with numerous cocks inside $him, with attending slaves using their mouths on any erogenous zones they can reach. When the moment of the ceremony nears, $he's extracted and taken off to be bathed. <br><br> $He returns shortly, looking exhausted but otherwise uncaring. $He's naked still, $his skin clean and _slave1.skin, and is led to you for the ceremony by another slave. The only evident signs that $he's had sex with more than a hundred people today is $his ass, which looks rather well traveled, and $his tiredness. $He can't conceal $his tiredness, and leans against you subconsciously. <<if $assistantName == "your personal assistant">>Your personal assistant<<else>>$assistantName<</if>> reads the short recitation for $him, and you place a simple steel ring <<if !hasAnyArms(_slave1)>>on a cord around $his neck, since $he lacks fingers to wear it on<<else>>on $his finger<</if>>. There is no ring for you, since this marriage does not bind you. <br><br> Once the ceremony is complete, you scoop up your new slave $wife to carry $him back into the master bedroom. $He rests $his head against your <<if $PC.boobs >= 300>>breasts<<elseif $PC.title == 0>>flat chest<<else>>strong chest<</if>> as you cradle $him in your arms, and by the time $he's home, $he's fast asleep. You set $him gently down on the bed and curl up behind $him, feeling the animal warmth of $his body as the exhausted slave's chest rises and falls with $his breathing. <<elseif _slave1.devotion+_slave1.trust >= 175>> - _slave1.slaveName spent the day before resting and preparing $himself, and this was a necessary precaution. $He spends most of the daylong party at the center of a nonstop gangbang. The theory is that $he'll be bound to you as your slave $wife from this day onward, so $he must get the promiscuity that is a sex slave's responsibility out of the way now. Whatever their opinions on the idea, @@.green;your guests take part with enthusiasm,@@ many having brought their own slaves to participate, too. _slave1.slaveName spends hours with numerous cocks inside $him, with attending slaves using their mouths on any erogenous zones they can reach. When the moment of the ceremony nears, $he's extracted and taken off to be bathed. + _slave1.slaveName spent the day before resting and preparing $himself, and this was a necessary precaution. $He spends most of the day-long party at the center of a nonstop gangbang. The theory is that $he'll be bound to you as your slave $wife from this day onward, so $he must get the promiscuity that is a sex slave's responsibility out of the way now. Whatever their opinions on the idea, @@.green;your guests take part with enthusiasm,@@ many having brought their own slaves to participate, too. _slave1.slaveName spends hours with numerous cocks inside $him, with attending slaves using their mouths on any erogenous zones they can reach. When the moment of the ceremony nears, $he's extracted and taken off to be bathed. <br><br> $He returns shortly, looking exhausted but rather proud of $himself for getting through all that. $He's naked still, $his skin clean and _slave1.skin, and comes confidently to stand by you for the ceremony. The only evident signs that $he's had sex with more than a hundred people today is $his ass, which looks rather well-traveled, and $his tiredness. $He does $his best to conceal how ready to sleep $he is, but $he leans against you a little. <<if $assistantName == "your personal assistant">>Your personal assistant<<else>>$assistantName<</if>> reads the short recitation for $him, and you place a simple steel ring <<if !hasAnyArms(_slave1)>>on a cord around $his neck, since $he lacks fingers to wear it on<<else>>on $his finger<</if>>. There is no ring for you, since this marriage does not bind you. <br><br> Once the ceremony is complete, you scoop up your new slave $wife to carry $him back into the master bedroom. $He rests $his head against your <<if $PC.boobs >= 300>>breasts<<elseif $PC.title == 0>>flat chest<<else>>strong chest<</if>> as you cradle $him in your arms, and by the time $he's home, $he's fast asleep. You set $him gently down on the bed and curl up behind $him, feeling the animal warmth of $his body as the exhausted slave's chest rises and falls with $his breathing. <<elseif _slave1.devotion < -20 && _slave1.trust > 20>> - _slave1.slaveName spent the day before resting and trying to ready $himself, and this was a necessary precaution. $He spends most of the daylong party at the center of a nonstop gangbang, screaming mixed cries of pleasure and horror. The theory is that $he'll be bound to you as your slave $wife from this day onward, so $he must get the promiscuity that is a sex slave's responsibility out of the way now. Whatever their opinions on the idea, your guests take part with enthusiasm, completely unhampered by your slave's utter unwillingness. Many brought their own slaves to participate, too. _slave1.slaveName spends hours with numerous cocks inside $him, with attending slaves using their mouths on any erogenous zones they can reach. When the moment of the ceremony nears, $he's extracted and taken off to be bathed. + _slave1.slaveName spent the day before resting and trying to ready $himself, and this was a necessary precaution. $He spends most of the day-long party at the center of a nonstop gangbang, screaming mixed cries of pleasure and horror. The theory is that $he'll be bound to you as your slave $wife from this day onward, so $he must get the promiscuity that is a sex slave's responsibility out of the way now. Whatever their opinions on the idea, your guests take part with enthusiasm, completely unhampered by your slave's utter unwillingness. Many brought their own slaves to participate, too. _slave1.slaveName spends hours with numerous cocks inside $him, with attending slaves using their mouths on any erogenous zones they can reach. When the moment of the ceremony nears, $he's extracted and taken off to be bathed. <br><br> $He returns shortly, looking exhausted and annoyed. $He's naked still, $his skin clean and _slave1.skin, and comes reluctantly to stand by you for the ceremony, glaring at you the whole time. The only evident signs that $he's had sex with more than a hundred people today is $his ass, which looks rather well traveled, and $his tiredness. $He does $his best to conceal $his tiredness and look stronger than $he is, choosing to struggle to stand instead of leaning against you. <<if $assistantName == "your personal assistant">>Your personal assistant<<else>>$assistantName<</if>> reads the short recitation for $him, and you place a simple steel ring <<if !hasAnyArms(_slave1)>>on a cord around $his neck, since $he lacks fingers to wear it on<<else>>on $his finger<</if>>. There is no ring for you, since this marriage does not bind you. <br><br> Once the ceremony is complete, you scoop up your new, protesting, slave $wife to carry $him back into the master bedroom. $He rests $his head against your <<if $PC.boobs >= 300>>breasts<<elseif $PC.title == 0>>flat chest<<else>>strong chest<</if>>, simply too tired to care anymore. By the time $he's home, $he's fast asleep. You set $him gently down on the bed and curl up behind $him, feeling the animal warmth of $his body as the exhausted slave's chest rises and falls with $his breathing. $He squirms slightly in $his sleep to the unwelcome feeling of your arm around $him. <<elseif _slave1.devotion < -20>> - _slave1.slaveName spent the day before resting and crying to $himself, and this was a necessary precaution. $He spends most of the daylong party at the center of a nonstop gangbang, screaming mixed cries of pleasure and horror. The theory is that $he'll be bound to you as your slave $wife from this day onward, so $he must get the promiscuity that is a sex slave's responsibility out of the way now. Whatever their opinions on the idea, your guests take part with enthusiasm, completely unhampered by your slave's utter unwillingness. Many brought their own slaves to participate, too. _slave1.slaveName spends hours with numerous cocks inside $him, with attending slaves using their mouths on any erogenous zones they can reach. When the moment of the ceremony nears, $he's extracted and taken off to be bathed. + _slave1.slaveName spent the day before resting and crying to $himself, and this was a necessary precaution. $He spends most of the day-long party at the center of a nonstop gangbang, screaming mixed cries of pleasure and horror. The theory is that $he'll be bound to you as your slave $wife from this day onward, so $he must get the promiscuity that is a sex slave's responsibility out of the way now. Whatever their opinions on the idea, your guests take part with enthusiasm, completely unhampered by your slave's utter unwillingness. Many brought their own slaves to participate, too. _slave1.slaveName spends hours with numerous cocks inside $him, with attending slaves using their mouths on any erogenous zones they can reach. When the moment of the ceremony nears, $he's extracted and taken off to be bathed. <br><br> $He returns shortly, looking exhausted and depressed. $He's naked still, $his skin clean and _slave1.skin, and comes reluctantly to stand by you for the ceremony, just wanting it to be over. The only evident signs that $he's had sex with more than a hundred people today is $his ass, which looks rather well traveled, and $his tiredness. $He does $his best to conceal $his tiredness out of fear of punishment, and $he leans against you for support despite $his feelings on the wedding and you. <<if $assistantName == "your personal assistant">>Your personal assistant<<else>>$assistantName<</if>> reads the short recitation for $him, and you place a simple steel ring <<if !hasAnyArms(_slave1)>>on a cord around $his neck, since $he lacks fingers to wear it on<<else>>on $his finger<</if>>. There is no ring for you, since this marriage does not bind you. <br><br> Once the ceremony is complete, you scoop up your new slave $wife to carry $him back into the master bedroom. $He rests $his head against your <<if $PC.boobs >= 300>>breasts<<elseif $PC.title == 0>>flat chest<<else>>strong chest<</if>>, simply too tired to care anymore. By the time $he's home, $he's fast asleep. You set $him gently down on the bed and curl up behind $him, feeling the animal warmth of $his body as the exhausted slave's chest rises and falls with $his breathing. <<else>> - _slave1.slaveName spent the day before resting and reluctantly preparing $himself, and this was a necessary precaution. $He spends most of the daylong party at the center of a nonstop gangbang, moaning and wincing as $he takes cock after cock. The theory is that $he'll be bound to you as your slave $wife from this day onward, so $he must get the promiscuity that is a sex slave's responsibility out of the way now. Whatever their opinions on the idea, your guests take part with enthusiasm, completely unhampered by your slave's lack of passion. Many brought their own slaves to participate, too. _slave1.slaveName spends hours with numerous cocks inside $him, with attending slaves using their mouths on any erogenous zones they can reach. When the moment of the ceremony nears, $he's extracted and taken off to be bathed. + _slave1.slaveName spent the day before resting and reluctantly preparing $himself, and this was a necessary precaution. $He spends most of the day-long party at the center of a nonstop gangbang, moaning and wincing as $he takes cock after cock. The theory is that $he'll be bound to you as your slave $wife from this day onward, so $he must get the promiscuity that is a sex slave's responsibility out of the way now. Whatever their opinions on the idea, your guests take part with enthusiasm, completely unhampered by your slave's lack of passion. Many brought their own slaves to participate, too. _slave1.slaveName spends hours with numerous cocks inside $him, with attending slaves using their mouths on any erogenous zones they can reach. When the moment of the ceremony nears, $he's extracted and taken off to be bathed. <br><br> $He returns shortly, looking exhausted. $He's naked still, $his skin clean and _slave1.skin, and comes to stand by you for the ceremony. The only evident signs that $he's had sex with more than a hundred people today is $his ass, which looks rather well traveled, and $his tiredness. $He does $his best to conceal it, leaning against you despite the lack of love between you. <<if $assistantName == "your personal assistant">>Your personal assistant<<else>>$assistantName<</if>> reads the short recitation for $him, and you place a simple steel ring <<if !hasAnyArms(_slave1)>>on a cord around $his neck, since $he lacks fingers to wear it on<<else>>on $his finger<</if>>. There is no ring for you, since this marriage does not bind you. <br><br> @@ -1637,31 +1637,31 @@ <</if>> _slave2.slaveName, meanwhile, <<if _slave2.fetish == "mindbroken">> - spent the day before resting and preparing _himself2, if you can call sitting around mindlessly preparing. _He2 spends most of the daylong party at the center of a nonstop gangbang, occasionally moaning as more of a physical reaction than anything. The theory is that _he2'll be bound to you as your slave _wife2 from this day onward, so _he2 must get the promiscuity that is a sex slave's responsibility out of the way now. Whatever their opinions on the idea, your guests take part with enthusiasm, completely unhampered by your slave's utter emptiness. Many brought their own slaves to participate, too. _slave2.slaveName spends hours with numerous cocks inside _him2, with attending slaves using their mouths on any erogenous zones they can reach. When the moment of the ceremony nears, _he2's extracted and taken off to be bathed. + spent the day before resting and preparing _himself2, if you can call sitting around mindlessly preparing. _He2 spends most of the day-long party at the center of a nonstop gangbang, occasionally moaning as more of a physical reaction than anything. The theory is that _he2'll be bound to you as your slave _wife2 from this day onward, so _he2 must get the promiscuity that is a sex slave's responsibility out of the way now. Whatever their opinions on the idea, your guests take part with enthusiasm, completely unhampered by your slave's utter emptiness. Many brought their own slaves to participate, too. _slave2.slaveName spends hours with numerous cocks inside _him2, with attending slaves using their mouths on any erogenous zones they can reach. When the moment of the ceremony nears, _he2's extracted and taken off to be bathed. <br><br> _He2 returns shortly, looking exhausted but otherwise uncaring. _He2's naked still, _his2 skin clean and _slave2.skin, and is led to you for the ceremony by another slave. The only evident signs that _he2's had sex with more than a hundred people today is _his2 ass, which looks rather well traveled, and _his2 tiredness. _He2 can't conceal _his2 tiredness, and leans against you subconsciously. <<if $assistantName == "your personal assistant">>Your personal assistant<<else>>$assistantName<</if>> reads the short recitation for _him2, and you place a simple steel ring <<if !hasAnyArms(_slave2)>>on a cord around _his2 neck, since _he2 lacks fingers to wear it on<<else>>on _his2 finger<</if>>. There is no ring for you, since this marriage does not bind you. <br><br> Once the ceremony is complete, you scoop up your new slave _wife2 to carry _him2 back into the master bedroom. _He2 rests _his2 head against your <<if $PC.boobs >= 300>>breasts<<elseif $PC.title == 0>>flat chest<<else>>strong chest<</if>> as you cradle _him2 in your arms, and by the time _he2's home, _he2's fast asleep. You set _him2 gently down on the bed and curl up behind _him2, feeling the animal warmth of _his2 body as the exhausted slave's chest rises and falls with _his2 breathing. <<elseif _slave2.devotion+_slave2.trust >= 175>> - spent the day before resting and preparing _himself2, and this was a necessary precaution. _He2 spends most of the daylong party at the center of a nonstop gangbang. The theory is that _he2'll be bound to you as your slave _wife2 from this day onward, so _he2 must get the promiscuity that is a sex slave's responsibility out of the way now. Whatever their opinions on the idea, @@.green;your guests take part with enthusiasm,@@ many having brought their own slaves to participate, too. _slave2.slaveName spends hours with numerous cocks inside _him2, with attending slaves using their mouths on any erogenous zones they can reach. When the moment of the ceremony nears, _he2's extracted and taken off to be bathed. + spent the day before resting and preparing _himself2, and this was a necessary precaution. _He2 spends most of the day-long party at the center of a nonstop gangbang. The theory is that _he2'll be bound to you as your slave _wife2 from this day onward, so _he2 must get the promiscuity that is a sex slave's responsibility out of the way now. Whatever their opinions on the idea, @@.green;your guests take part with enthusiasm,@@ many having brought their own slaves to participate, too. _slave2.slaveName spends hours with numerous cocks inside _him2, with attending slaves using their mouths on any erogenous zones they can reach. When the moment of the ceremony nears, _he2's extracted and taken off to be bathed. <br><br> _He2 returns shortly, looking exhausted but rather proud of _himself2 for getting through all that. _He2's naked still, _his2 skin clean and _slave2.skin, and comes confidently to stand by you for the ceremony. The only evident signs that _he2's had sex with more than a hundred people today is _his2 ass, which looks rather well-traveled, and _his2 tiredness. _He2 does _his2 best to conceal how ready to sleep _he2 is, but _he2 leans against you a little. <<if $assistantName == "your personal assistant">>Your personal assistant<<else>>$assistantName<</if>> reads the short recitation for _him2, and you place a simple steel ring <<if !hasAnyArms(_slave2)>>on a cord around _his2 neck, since _he2 lacks fingers to wear it on<<else>>on _his2 finger<</if>>. There is no ring for you, since this marriage does not bind you. <br><br> Once the ceremony is complete, you scoop up your new slave _wife2 to carry _him2 back into the master bedroom. _He2 rests _his2 head against your <<if $PC.boobs >= 300>>breasts<<elseif $PC.title == 0>>flat chest<<else>>strong chest<</if>> as you cradle _him2 in your arms, and by the time _he2's home, _he2's fast asleep. You set _him2 gently down on the bed and curl up behind _him2, feeling the animal warmth of _his2 body as the exhausted slave's chest rises and falls with _his2 breathing. <<elseif _slave2.devotion < -20 && _slave2.trust > 20>> - spent the day before resting and trying to ready _himself2, and this was a necessary precaution. _He2 spends most of the daylong party at the center of a nonstop gangbang, screaming mixed cries of pleasure and horror. The theory is that _he2'll be bound to you as your slave _wife2 from this day onward, so _he2 must get the promiscuity that is a sex slave's responsibility out of the way now. Whatever their opinions on the idea, your guests take part with enthusiasm, completely unhampered by your slave's utter unwillingness. Many brought their own slaves to participate, too. _slave2.slaveName spends hours with numerous cocks inside _him2, with attending slaves using their mouths on any erogenous zones they can reach. When the moment of the ceremony nears, _he2's extracted and taken off to be bathed. + spent the day before resting and trying to ready _himself2, and this was a necessary precaution. _He2 spends most of the day-long party at the center of a nonstop gangbang, screaming mixed cries of pleasure and horror. The theory is that _he2'll be bound to you as your slave _wife2 from this day onward, so _he2 must get the promiscuity that is a sex slave's responsibility out of the way now. Whatever their opinions on the idea, your guests take part with enthusiasm, completely unhampered by your slave's utter unwillingness. Many brought their own slaves to participate, too. _slave2.slaveName spends hours with numerous cocks inside _him2, with attending slaves using their mouths on any erogenous zones they can reach. When the moment of the ceremony nears, _he2's extracted and taken off to be bathed. <br><br> _He2 returns shortly, looking exhausted and annoyed. _He2's naked still, _his2 skin clean and _slave2.skin, and comes reluctantly to stand by you for the ceremony, glaring at you the whole time. The only evident signs that _he2's had sex with more than a hundred people today is _his2 ass, which looks rather well traveled, and _his2 tiredness. _He2 does _his2 best to conceal _his2 tiredness and look stronger than _he2 is, choosing to struggle to stand instead of leaning against you. <<if $assistantName == "your personal assistant">>Your personal assistant<<else>>$assistantName<</if>> reads the short recitation for _him2, and you place a simple steel ring <<if !hasAnyArms(_slave2)>>on a cord around _his2 neck, since _he2 lacks fingers to wear it on<<else>>on _his2 finger<</if>>. There is no ring for you, since this marriage does not bind you. <br><br> Once the ceremony is complete, you scoop up your new, protesting, slave _wife2 to carry _him2 back into the master bedroom. _He2 rests _his2 head against your <<if $PC.boobs >= 300>>breasts<<elseif $PC.title == 0>>flat chest<<else>>strong chest<</if>>, simply too tired to care anymore. By the time _he2's home, _he2's fast asleep. You set _him2 gently down on the bed and curl up behind _him2, feeling the animal warmth of _his2 body as the exhausted slave's chest rises and falls with _his2 breathing. _He2 squirms slightly in _his2 sleep to the unwelcome feeling of your arm around _him2. <<elseif _slave2.devotion < -20>> - spent the day before resting and crying to _himself2, and this was a necessary precaution. _He2 spends most of the daylong party at the center of a nonstop gangbang, screaming mixed cries of pleasure and horror. The theory is that _he2'll be bound to you as your slave _wife2 from this day onward, so _he2 must get the promiscuity that is a sex slave's responsibility out of the way now. Whatever their opinions on the idea, your guests take part with enthusiasm, completely unhampered by your slave's utter unwillingness. Many brought their own slaves to participate, too. _slave2.slaveName spends hours with numerous cocks inside _him2, with attending slaves using their mouths on any erogenous zones they can reach. When the moment of the ceremony nears, _he2's extracted and taken off to be bathed. + spent the day before resting and crying to _himself2, and this was a necessary precaution. _He2 spends most of the day-long party at the center of a nonstop gangbang, screaming mixed cries of pleasure and horror. The theory is that _he2'll be bound to you as your slave _wife2 from this day onward, so _he2 must get the promiscuity that is a sex slave's responsibility out of the way now. Whatever their opinions on the idea, your guests take part with enthusiasm, completely unhampered by your slave's utter unwillingness. Many brought their own slaves to participate, too. _slave2.slaveName spends hours with numerous cocks inside _him2, with attending slaves using their mouths on any erogenous zones they can reach. When the moment of the ceremony nears, _he2's extracted and taken off to be bathed. <br><br> _He2 returns shortly, looking exhausted and depressed. _He2's naked still, _his2 skin clean and _slave2.skin, and comes reluctantly to stand by you for the ceremony, just wanting it to be over. The only evident signs that _he2's had sex with more than a hundred people today is _his2 ass, which looks rather well traveled, and _his2 tiredness. _He2 does _his2 best to conceal _his2 tiredness out of fear of punishment, and _he2 leans against you for support despite _his2 feelings on the wedding and you. <<if $assistantName == "your personal assistant">>Your personal assistant<<else>>$assistantName<</if>> reads the short recitation for _him2, and you place a simple steel ring <<if !hasAnyArms(_slave2)>>on a cord around _his2 neck, since _he2 lacks fingers to wear it on<<else>>on _his2 finger<</if>>. There is no ring for you, since this marriage does not bind you. <br><br> Once the ceremony is complete, you scoop up your new slave _wife2 to carry _him2 back into the master bedroom. _He2 rests _his2 head against your <<if $PC.boobs >= 300>>breasts<<elseif $PC.title == 0>>flat chest<<else>>strong chest<</if>>, simply too tired to care anymore. By the time _he2's home, _he2's fast asleep. You set _him2 gently down on the bed and curl up behind _him2, feeling the animal warmth of _his2 body as the exhausted slave's chest rises and falls with _his2 breathing. <<else>> - spent the day before resting and reluctantly preparing _himself2, and this was a necessary precaution. _He2 spends most of the daylong party at the center of a nonstop gangbang, moaning and wincing as _he2 takes cock after cock. The theory is that _he2'll be bound to you as your slave _wife2 from this day onward, so _he2 must get the promiscuity that is a sex slave's responsibility out of the way now. Whatever their opinions on the idea, your guests take part with enthusiasm, completely unhampered by your slave's lack of passion. Many brought their own slaves to participate, too. _slave2.slaveName spends hours with numerous cocks inside _him2, with attending slaves using their mouths on any erogenous zones they can reach. When the moment of the ceremony nears, _he2's extracted and taken off to be bathed. + spent the day before resting and reluctantly preparing _himself2, and this was a necessary precaution. _He2 spends most of the day-long party at the center of a nonstop gangbang, moaning and wincing as _he2 takes cock after cock. The theory is that _he2'll be bound to you as your slave _wife2 from this day onward, so _he2 must get the promiscuity that is a sex slave's responsibility out of the way now. Whatever their opinions on the idea, your guests take part with enthusiasm, completely unhampered by your slave's lack of passion. Many brought their own slaves to participate, too. _slave2.slaveName spends hours with numerous cocks inside _him2, with attending slaves using their mouths on any erogenous zones they can reach. When the moment of the ceremony nears, _he2's extracted and taken off to be bathed. <br><br> _He2 returns shortly, looking exhausted. _He2's naked still, _his2 skin clean and _slave2.skin, and comes to stand by you for the ceremony. The only evident signs that _he2's had sex with more than a hundred people today is _his2 ass, which looks rather well traveled, and _his2 tiredness. _He2 does _his2 best to conceal it, leaning against you despite the lack of love between you. <<if $assistantName == "your personal assistant">>Your personal assistant<<else>>$assistantName<</if>> reads the short recitation for _him2, and you place a simple steel ring <<if !hasAnyArms(_slave2)>>on a cord around _his2 neck, since _he2 lacks fingers to wear it on<<else>>on _his2 finger<</if>>. There is no ring for you, since this marriage does not bind you. <br><br> @@ -2370,7 +2370,8 @@ <</link>> </span> <</if>> - <br><br> Then, you flip their veils over their heads so they can <<if $PC.dick != 0>>suck your dick<<if $PC.vagina != -1>> and <</if>><</if>><<if $PC.vagina != -1>>eat you out<</if>> in front of your guests, as the ceremony requires. + <br><br> + Then, you flip their veils over their heads so they can <<if $PC.dick != 0>>suck your dick<<if $PC.vagina != -1>> and <</if>><</if>><<if $PC.vagina != -1>>eat you out<</if>> in front of your guests, as the ceremony requires. <<if ((_slave1.fetish == "mindbroken") && (_slave2.fetish == "mindbroken")) || ((_slave1.devotion+_slave1.trust >= 175) && (_slave2.devotion+_slave2.trust >= 175)) || ((_slave1.devotion < -20 && _slave1.trust > 20) && (_slave2.devotion < -20 && _slave2.trust > 20)) || ((_slave1.devotion < -20) && (_slave2.devotion < -20)) || ((_slave1.devotion >= -20 && _slave2.devotion >= -20))>> They approach their task <<if _slave1.fetish == "mindbroken">> diff --git a/src/uncategorized/seWeddingSingle.tw b/src/uncategorized/seWeddingSingle.tw index 1a70f9347715a71961f5dda1af7c086881292b04..ae2adb05d20bfdd26983a12dd2462c0cd8698ff0 100644 --- a/src/uncategorized/seWeddingSingle.tw +++ b/src/uncategorized/seWeddingSingle.tw @@ -550,31 +550,31 @@ In the days leading up to your wedding, $slaves[_wedS].slaveName spent $his time The ceremony to bind <<= SlaveFullName($slaves[_wedS])>> to you as your slave $wife is an all day affair. <<if $slaves[_wedS].fetish == "mindbroken">> - $He spent the day before resting and preparing $himself, if you can call sitting around mindlessly preparing. $He spends most of the daylong party at the center of a nonstop gangbang, occasionally moaning as more of a physical reaction than anything. The theory is that $he'll be bound to you as your slave $wife from this day onward, so $he must get the promiscuity that is a sex slave's responsibility out of the way now. Whatever their opinions on the idea, your guests take part with enthusiasm, completely unhampered by your slave's utter emptiness. Many brought their own slaves to participate, too. $slaves[_wedS].slaveName spends hours with numerous cocks inside $him, with attending slaves using their mouths on any erogenous zones they can reach. When the moment of the ceremony nears, $he's extracted and taken off to be bathed. + $He spent the day before resting and preparing $himself, if you can call sitting around mindlessly preparing. $He spends most of the day-long party at the center of a nonstop gangbang, occasionally moaning as more of a physical reaction than anything. The theory is that $he'll be bound to you as your slave $wife from this day onward, so $he must get the promiscuity that is a sex slave's responsibility out of the way now. Whatever their opinions on the idea, your guests take part with enthusiasm, completely unhampered by your slave's utter emptiness. Many brought their own slaves to participate, too. $slaves[_wedS].slaveName spends hours with numerous cocks inside $him, with attending slaves using their mouths on any erogenous zones they can reach. When the moment of the ceremony nears, $he's extracted and taken off to be bathed. <br><br> $He returns shortly, looking exhausted but otherwise uncaring. $He's naked still, $his skin clean and $slaves[_wedS].skin, and is led to you for the ceremony by another slave. The only evident signs that $he's had sex with more than a hundred people today is $his ass, which looks rather well traveled, and $his tiredness. $He can't conceal $his tiredness, and leans against you subconsciously. <<if $assistantName == "your personal assistant">>Your personal assistant<<else>>$assistantName<</if>> reads the short recitation for $him, and you place a simple steel ring <<if !hasAnyArms($slaves[_wedS])>>on a cord around $his neck, since $he lacks fingers to wear it on<<else>>on $his finger<</if>>. There is no ring for you, since this marriage does not bind you. <br><br> Once the ceremony is complete, you scoop up your new slave $wife to carry $him back into the master bedroom. $He rests $his head against your <<if $PC.boobs >= 300>>breasts<<elseif $PC.title == 0>>flat chest<<else>>strong chest<</if>> as you cradle $him in your arms, and by the time $he's home, $he's fast asleep. You set $him gently down on the bed and curl up behind $him, feeling the animal warmth of $his body as the exhausted slave's chest rises and falls with $his breathing. <<elseif $slaves[_wedS].devotion+$slaves[_wedS].trust >= 175>> - $He spent the day before resting and preparing $himself, and this was a necessary precaution. $He spends most of the daylong party at the center of a nonstop gangbang. The theory is that $he'll be bound to you as your slave $wife from this day onward, so $he must get the promiscuity that is a sex slave's responsibility out of the way now. Whatever their opinions on the idea, @@.green;your guests take part with enthusiasm,@@ many having brought their own slaves to participate, too. $slaves[_wedS].slaveName spends hours with numerous cocks inside $him, with attending slaves using their mouths on any erogenous zones they can reach. When the moment of the ceremony nears, $he's extracted and taken off to be bathed. + $He spent the day before resting and preparing $himself, and this was a necessary precaution. $He spends most of the day-long party at the center of a nonstop gangbang. The theory is that $he'll be bound to you as your slave $wife from this day onward, so $he must get the promiscuity that is a sex slave's responsibility out of the way now. Whatever their opinions on the idea, @@.green;your guests take part with enthusiasm,@@ many having brought their own slaves to participate, too. $slaves[_wedS].slaveName spends hours with numerous cocks inside $him, with attending slaves using their mouths on any erogenous zones they can reach. When the moment of the ceremony nears, $he's extracted and taken off to be bathed. <br><br> $He returns shortly, looking exhausted but rather proud of $himself for getting through all that. $He's naked still, $his skin clean and $slaves[_wedS].skin, and comes confidently to stand by you for the ceremony. The only evident signs that $he's had sex with more than a hundred people today is $his ass, which looks rather well-traveled, and $his tiredness. $He does $his best to conceal how ready to sleep $he is, but $he leans against you a little. <<if $assistantName == "your personal assistant">>Your personal assistant<<else>>$assistantName<</if>> reads the short recitation for $him, and you place a simple steel ring <<if !hasAnyArms($slaves[_wedS])>>on a cord around $his neck, since $he lacks fingers to wear it on<<else>>on $his finger<</if>>. There is no ring for you, since this marriage does not bind you. <br><br> Once the ceremony is complete, you scoop up your new slave $wife to carry $him back into the master bedroom. $He rests $his head against your <<if $PC.boobs >= 300>>breasts<<elseif $PC.title == 0>>flat chest<<else>>strong chest<</if>> as you cradle $him in your arms, and by the time $he's home, $he's fast asleep. You set $him gently down on the bed and curl up behind $him, feeling the animal warmth of $his body as the exhausted slave's chest rises and falls with $his breathing. <<elseif $slaves[_wedS].devotion < -20 && $slaves[_wedS].trust > 20>> - $He spent the day before resting and trying to ready $himself, and this was a necessary precaution. $He spends most of the daylong party at the center of a nonstop gangbang, screaming mixed cries of pleasure and horror. The theory is that $he'll be bound to you as your slave $wife from this day onward, so $he must get the promiscuity that is a sex slave's responsibility out of the way now. Whatever their opinions on the idea, your guests take part with enthusiasm, completely unhampered by your slave's utter unwillingness. Many brought their own slaves to participate, too. $slaves[_wedS].slaveName spends hours with numerous cocks inside $him, with attending slaves using their mouths on any erogenous zones they can reach. When the moment of the ceremony nears, $he's extracted and taken off to be bathed. + $He spent the day before resting and trying to ready $himself, and this was a necessary precaution. $He spends most of the day-long party at the center of a nonstop gangbang, screaming mixed cries of pleasure and horror. The theory is that $he'll be bound to you as your slave $wife from this day onward, so $he must get the promiscuity that is a sex slave's responsibility out of the way now. Whatever their opinions on the idea, your guests take part with enthusiasm, completely unhampered by your slave's utter unwillingness. Many brought their own slaves to participate, too. $slaves[_wedS].slaveName spends hours with numerous cocks inside $him, with attending slaves using their mouths on any erogenous zones they can reach. When the moment of the ceremony nears, $he's extracted and taken off to be bathed. <br><br> $He returns shortly, looking exhausted and annoyed. $He's naked still, $his skin clean and $slaves[_wedS].skin, and comes reluctantly to stand by you for the ceremony, glaring at you the whole time. The only evident signs that $he's had sex with more than a hundred people today is $his ass, which looks rather well traveled, and $his tiredness. $He does $his best to conceal $his tiredness and look stronger than $he is, choosing to struggle to stand instead of leaning against you. <<if $assistantName == "your personal assistant">>Your personal assistant<<else>>$assistantName<</if>> reads the short recitation for $him, and you place a simple steel ring <<if !hasAnyArms($slaves[_wedS])>>on a cord around $his neck, since $he lacks fingers to wear it on<<else>>on $his finger<</if>>. There is no ring for you, since this marriage does not bind you. <br><br> Once the ceremony is complete, you scoop up your new, protesting, slave $wife to carry $him back into the master bedroom. $He rests $his head against your <<if $PC.boobs >= 300>>breasts<<elseif $PC.title == 0>>flat chest<<else>>strong chest<</if>>, simply too tired to care anymore. By the time $he's home, $he's fast asleep. You set $him gently down on the bed and curl up behind $him, feeling the animal warmth of $his body as the exhausted slave's chest rises and falls with $his breathing. $He squirms slightly in $his sleep to the unwelcome feeling of your arm around $him. <<elseif $slaves[_wedS].devotion < -20>> - $He spent the day before resting and crying to $himself, and this was a necessary precaution. $He spends most of the daylong party at the center of a nonstop gangbang, screaming mixed cries of pleasure and horror. The theory is that $he'll be bound to you as your slave $wife from this day onward, so $he must get the promiscuity that is a sex slave's responsibility out of the way now. Whatever their opinions on the idea, your guests take part with enthusiasm, completely unhampered by your slave's utter unwillingness. Many brought their own slaves to participate, too. $slaves[_wedS].slaveName spends hours with numerous cocks inside $him, with attending slaves using their mouths on any erogenous zones they can reach. When the moment of the ceremony nears, $he's extracted and taken off to be bathed. + $He spent the day before resting and crying to $himself, and this was a necessary precaution. $He spends most of the day-long party at the center of a nonstop gangbang, screaming mixed cries of pleasure and horror. The theory is that $he'll be bound to you as your slave $wife from this day onward, so $he must get the promiscuity that is a sex slave's responsibility out of the way now. Whatever their opinions on the idea, your guests take part with enthusiasm, completely unhampered by your slave's utter unwillingness. Many brought their own slaves to participate, too. $slaves[_wedS].slaveName spends hours with numerous cocks inside $him, with attending slaves using their mouths on any erogenous zones they can reach. When the moment of the ceremony nears, $he's extracted and taken off to be bathed. <br><br> $He returns shortly, looking exhausted and depressed. $He's naked still, $his skin clean and $slaves[_wedS].skin, and comes reluctantly to stand by you for the ceremony, just wanting it to be over. The only evident signs that $he's had sex with more than a hundred people today is $his ass, which looks rather well traveled, and $his tiredness. $He does $his best to conceal $his tiredness out of fear of punishment, and $he leans against you for support despite $his feelings on the wedding and you. <<if $assistantName == "your personal assistant">>Your personal assistant<<else>>$assistantName<</if>> reads the short recitation for $him, and you place a simple steel ring <<if !hasAnyArms($slaves[_wedS])>>on a cord around $his neck, since $he lacks fingers to wear it on<<else>>on $his finger<</if>>. There is no ring for you, since this marriage does not bind you. <br><br> Once the ceremony is complete, you scoop up your new slave $wife to carry $him back into the master bedroom. $He rests $his head against your <<if $PC.boobs >= 300>>breasts<<elseif $PC.title == 0>>flat chest<<else>>strong chest<</if>>, simply too tired to care anymore. By the time $he's home, $he's fast asleep. You set $him gently down on the bed and curl up behind $him, feeling the animal warmth of $his body as the exhausted slave's chest rises and falls with $his breathing. <<else>> - $He spent the day before resting and reluctantly preparing $himself, and this was a necessary precaution. $He spends most of the daylong party at the center of a nonstop gangbang, moaning and wincing as $he takes cock after cock. The theory is that $he'll be bound to you as your slave $wife from this day onward, so $he must get the promiscuity that is a sex slave's responsibility out of the way now. Whatever their opinions on the idea, your guests take part with enthusiasm, completely unhampered by your slave's lack of passion. Many brought their own slaves to participate, too. $slaves[_wedS].slaveName spends hours with numerous cocks inside $him, with attending slaves using their mouths on any erogenous zones they can reach. When the moment of the ceremony nears, $he's extracted and taken off to be bathed. + $He spent the day before resting and reluctantly preparing $himself, and this was a necessary precaution. $He spends most of the day-long party at the center of a nonstop gangbang, moaning and wincing as $he takes cock after cock. The theory is that $he'll be bound to you as your slave $wife from this day onward, so $he must get the promiscuity that is a sex slave's responsibility out of the way now. Whatever their opinions on the idea, your guests take part with enthusiasm, completely unhampered by your slave's lack of passion. Many brought their own slaves to participate, too. $slaves[_wedS].slaveName spends hours with numerous cocks inside $him, with attending slaves using their mouths on any erogenous zones they can reach. When the moment of the ceremony nears, $he's extracted and taken off to be bathed. <br><br> $He returns shortly, looking exhausted. $He's naked still, $his skin clean and $slaves[_wedS].skin, and comes to stand by you for the ceremony. The only evident signs that $he's had sex with more than a hundred people today is $his ass, which looks rather well traveled, and $his tiredness. $He does $his best to conceal it, leaning against you despite the lack of love between you. <<if $assistantName == "your personal assistant">>Your personal assistant<<else>>$assistantName<</if>> reads the short recitation for $him, and you place a simple steel ring <<if !hasAnyArms($slaves[_wedS])>>on a cord around $his neck, since $he lacks fingers to wear it on<<else>>on $his finger<</if>>. There is no ring for you, since this marriage does not bind you. <br><br> @@ -808,7 +808,8 @@ In the days leading up to your wedding, $slaves[_wedS].slaveName spent $his time <</link>> </span> <</if>> - <br><br> Then, you flip $his veil over $his head so $he can <<if $PC.dick != 0>>suck your dick<<if $PC.vagina != -1>> and <</if>><</if>><<if $PC.vagina != -1>>eat you out<</if>> in front of your guests, as the ceremony requires. $He approaches $his task + <br><br> + Then, you flip $his veil over $his head so $he can <<if $PC.dick != 0>>suck your dick<<if $PC.vagina != -1>> and <</if>><</if>><<if $PC.vagina != -1>>eat you out<</if>> in front of your guests, as the ceremony requires. $He approaches $his task <<if $slaves[_wedS].fetish == "mindbroken">> with robotic obedience. You climax promptly, <<if $PC.dick != 0>>shooting your cum down $his throat<<else>>covering $his face in girlcum<</if>>. Your guests and their attendant slaves applaud at the consummation, or rather, the first stage of the consummation. The balance will take place privately, however, and you scoop up your new slave $wife to carry $him back into the master bedroom. $He absentmindedly rests $his head against your <<if $PC.boobs >= 300>>breasts<<elseif $PC.title == 0>>flat chest<<else>>strong chest<</if>> as you cradle $him in your arms, gazing up at you with empty eyes. <<elseif $slaves[_wedS].devotion+$slaves[_wedS].trust >= 175>> diff --git a/src/uncategorized/seWeddingTriple.tw b/src/uncategorized/seWeddingTriple.tw index 29552eb99e4ed72790cd6d83dc95084bcf0aff36..cf1b20b2059ef408dc91b8015077d66262264b29 100644 --- a/src/uncategorized/seWeddingTriple.tw +++ b/src/uncategorized/seWeddingTriple.tw @@ -71,31 +71,31 @@ In the days leading up to your wedding, your <<if $wife == _wife2>>$wives<<else> The ceremony to bind <<= SlaveFullName($activeSlave)>> to you as your slave $wife is an all day affair. <<if $activeSlave.fetish == "mindbroken">> - $He spent the day before resting and preparing $himself, if you can call sitting around mindlessly preparing. $He spends most of the daylong party at the center of a nonstop gangbang, occasionally moaning as more of a physical reaction than anything. The theory is that $he'll be bound to you as your slave $wife from this day onward, so $he must get the promiscuity that is a sex slave's responsibility out of the way now. Whatever their opinions on the idea, your guests take part with enthusiasm, completely unhampered by your slave's utter emptiness. Many brought their own slaves to participate, too. $activeSlave.slaveName spends hours with numerous cocks inside $him, with attending slaves using their mouths on any erogenous zones they can reach. When the moment of the ceremony nears, $he's extracted and taken off to be bathed. + $He spent the day before resting and preparing $himself, if you can call sitting around mindlessly preparing. $He spends most of the day-long party at the center of a nonstop gangbang, occasionally moaning as more of a physical reaction than anything. The theory is that $he'll be bound to you as your slave $wife from this day onward, so $he must get the promiscuity that is a sex slave's responsibility out of the way now. Whatever their opinions on the idea, your guests take part with enthusiasm, completely unhampered by your slave's utter emptiness. Many brought their own slaves to participate, too. $activeSlave.slaveName spends hours with numerous cocks inside $him, with attending slaves using their mouths on any erogenous zones they can reach. When the moment of the ceremony nears, $he's extracted and taken off to be bathed. <br><br> $He returns shortly, looking exhausted but otherwise uncaring. $He's naked still, $his skin clean and $activeSlave.skin, and is led to you for the ceremony by another slave. The only evident signs that $he's had sex with more than a hundred people today is $his ass, which looks rather well traveled, and $his tiredness. $He can't conceal $his tiredness, and leans against you subconsciously. <<if $assistantName == "your personal assistant">>Your personal assistant<<else>>$assistantName<</if>> reads the short recitation for $him, and you place a simple steel ring <<if !hasAnyArms($activeSlave)>>on a cord around $his neck, since $he lacks fingers to wear it on<<else>>on $his finger<</if>>. There is no ring for you, since this marriage does not bind you. <br><br> Once the ceremony is complete, you scoop up your new slave $wife to carry $him back into the master bedroom. $He rests $his head against your <<if $PC.boobs >= 300>>breasts<<elseif $PC.title == 0>>flat chest<<else>>strong chest<</if>> as you cradle $him in your arms, and by the time $he's home, $he's fast asleep. You set $him gently down on the bed and curl up behind $him, feeling the animal warmth of $his body as the exhausted slave's chest rises and falls with $his breathing. <<elseif $activeSlave.devotion+$activeSlave.trust >= 175>> - $He spent the day before resting and preparing $himself, and this was a necessary precaution. $He spends most of the daylong party at the center of a nonstop gangbang. The theory is that $he'll be bound to you as your slave $wife from this day onward, so $he must get the promiscuity that is a sex slave's responsibility out of the way now. Whatever their opinions on the idea, @@.green;your guests take part with enthusiasm,@@ many having brought their own slaves to participate, too. $activeSlave.slaveName spends hours with numerous cocks inside $him, with attending slaves using their mouths on any erogenous zones they can reach. When the moment of the ceremony nears, $he's extracted and taken off to be bathed. + $He spent the day before resting and preparing $himself, and this was a necessary precaution. $He spends most of the day-long party at the center of a nonstop gangbang. The theory is that $he'll be bound to you as your slave $wife from this day onward, so $he must get the promiscuity that is a sex slave's responsibility out of the way now. Whatever their opinions on the idea, @@.green;your guests take part with enthusiasm,@@ many having brought their own slaves to participate, too. $activeSlave.slaveName spends hours with numerous cocks inside $him, with attending slaves using their mouths on any erogenous zones they can reach. When the moment of the ceremony nears, $he's extracted and taken off to be bathed. <br><br> $He returns shortly, looking exhausted but rather proud of $himself for getting through all that. $He's naked still, $his skin clean and $activeSlave.skin, and comes confidently to stand by you for the ceremony. The only evident signs that $he's had sex with more than a hundred people today is $his ass, which looks rather well-traveled, and $his tiredness. $He does $his best to conceal how ready to sleep $he is, but $he leans against you a little. <<if $assistantName == "your personal assistant">>Your personal assistant<<else>>$assistantName<</if>> reads the short recitation for $him, and you place a simple steel ring <<if !hasAnyArms($activeSlave)>>on a cord around $his neck, since $he lacks fingers to wear it on<<else>>on $his finger<</if>>. There is no ring for you, since this marriage does not bind you. <br><br> Once the ceremony is complete, you scoop up your new slave $wife to carry $him back into the master bedroom. $He rests $his head against your <<if $PC.boobs >= 300>>breasts<<elseif $PC.title == 0>>flat chest<<else>>strong chest<</if>> as you cradle $him in your arms, and by the time $he's home, $he's fast asleep. You set $him gently down on the bed and curl up behind $him, feeling the animal warmth of $his body as the exhausted slave's chest rises and falls with $his breathing. <<elseif $activeSlave.devotion < -20 && $activeSlave.trust > 20>> - $He spent the day before resting and trying to ready $himself, and this was a necessary precaution. $He spends most of the daylong party at the center of a nonstop gangbang, screaming mixed cries of pleasure and horror. The theory is that $he'll be bound to you as your slave $wife from this day onward, so $he must get the promiscuity that is a sex slave's responsibility out of the way now. Whatever their opinions on the idea, your guests take part with enthusiasm, completely unhampered by your slave's utter unwillingness. Many brought their own slaves to participate, too. $activeSlave.slaveName spends hours with numerous cocks inside $him, with attending slaves using their mouths on any erogenous zones they can reach. When the moment of the ceremony nears, $he's extracted and taken off to be bathed. + $He spent the day before resting and trying to ready $himself, and this was a necessary precaution. $He spends most of the day-long party at the center of a nonstop gangbang, screaming mixed cries of pleasure and horror. The theory is that $he'll be bound to you as your slave $wife from this day onward, so $he must get the promiscuity that is a sex slave's responsibility out of the way now. Whatever their opinions on the idea, your guests take part with enthusiasm, completely unhampered by your slave's utter unwillingness. Many brought their own slaves to participate, too. $activeSlave.slaveName spends hours with numerous cocks inside $him, with attending slaves using their mouths on any erogenous zones they can reach. When the moment of the ceremony nears, $he's extracted and taken off to be bathed. <br><br> $He returns shortly, looking exhausted and annoyed. $He's naked still, $his skin clean and $activeSlave.skin, and comes reluctantly to stand by you for the ceremony, glaring at you the whole time. The only evident signs that $he's had sex with more than a hundred people today is $his ass, which looks rather well traveled, and $his tiredness. $He does $his best to conceal $his tiredness and look stronger than $he is, choosing to struggle to stand instead of leaning against you. <<if $assistantName == "your personal assistant">>Your personal assistant<<else>>$assistantName<</if>> reads the short recitation for $him, and you place a simple steel ring <<if !hasAnyArms($activeSlave)>>on a cord around $his neck, since $he lacks fingers to wear it on<<else>>on $his finger<</if>>. There is no ring for you, since this marriage does not bind you. <br><br> Once the ceremony is complete, you scoop up your new, protesting, slave $wife to carry $him back into the master bedroom. $He rests $his head against your <<if $PC.boobs >= 300>>breasts<<elseif $PC.title == 0>>flat chest<<else>>strong chest<</if>>, simply too tired to care anymore. By the time $he's home, $he's fast asleep. You set $him gently down on the bed and curl up behind $him, feeling the animal warmth of $his body as the exhausted slave's chest rises and falls with $his breathing. $He squirms slightly in $his sleep to the unwelcome feeling of your arm around $him. <<elseif $activeSlave.devotion < -20>> - $He spent the day before resting and crying to $himself, and this was a necessary precaution. $He spends most of the daylong party at the center of a nonstop gangbang, screaming mixed cries of pleasure and horror. The theory is that $he'll be bound to you as your slave $wife from this day onward, so $he must get the promiscuity that is a sex slave's responsibility out of the way now. Whatever their opinions on the idea, your guests take part with enthusiasm, completely unhampered by your slave's utter unwillingness. Many brought their own slaves to participate, too. $activeSlave.slaveName spends hours with numerous cocks inside $him, with attending slaves using their mouths on any erogenous zones they can reach. When the moment of the ceremony nears, $he's extracted and taken off to be bathed. + $He spent the day before resting and crying to $himself, and this was a necessary precaution. $He spends most of the day-long party at the center of a nonstop gangbang, screaming mixed cries of pleasure and horror. The theory is that $he'll be bound to you as your slave $wife from this day onward, so $he must get the promiscuity that is a sex slave's responsibility out of the way now. Whatever their opinions on the idea, your guests take part with enthusiasm, completely unhampered by your slave's utter unwillingness. Many brought their own slaves to participate, too. $activeSlave.slaveName spends hours with numerous cocks inside $him, with attending slaves using their mouths on any erogenous zones they can reach. When the moment of the ceremony nears, $he's extracted and taken off to be bathed. <br><br> $He returns shortly, looking exhausted and depressed. $He's naked still, $his skin clean and $activeSlave.skin, and comes reluctantly to stand by you for the ceremony, just wanting it to be over. The only evident signs that $he's had sex with more than a hundred people today is $his ass, which looks rather well traveled, and $his tiredness. $He does $his best to conceal $his tiredness out of fear of punishment, and $he leans against you for support despite $his feelings on the wedding and you. <<if $assistantName == "your personal assistant">>Your personal assistant<<else>>$assistantName<</if>> reads the short recitation for $him, and you place a simple steel ring <<if !hasAnyArms($activeSlave)>>on a cord around $his neck, since $he lacks fingers to wear it on<<else>>on $his finger<</if>>. There is no ring for you, since this marriage does not bind you. <br><br> Once the ceremony is complete, you scoop up your new slave $wife to carry $him back into the master bedroom. $He rests $his head against your <<if $PC.boobs >= 300>>breasts<<elseif $PC.title == 0>>flat chest<<else>>strong chest<</if>>, simply too tired to care anymore. By the time $he's home, $he's fast asleep. You set $him gently down on the bed and curl up behind $him, feeling the animal warmth of $his body as the exhausted slave's chest rises and falls with $his breathing. <<else>> - $He spent the day before resting and reluctantly preparing $himself, and this was a necessary precaution. $He spends most of the daylong party at the center of a nonstop gangbang, moaning and wincing as $he takes cock after cock. The theory is that $he'll be bound to you as your slave $wife from this day onward, so $he must get the promiscuity that is a sex slave's responsibility out of the way now. Whatever their opinions on the idea, your guests take part with enthusiasm, completely unhampered by your slave's lack of passion. Many brought their own slaves to participate, too. $activeSlave.slaveName spends hours with numerous cocks inside $him, with attending slaves using their mouths on any erogenous zones they can reach. When the moment of the ceremony nears, $he's extracted and taken off to be bathed. + $He spent the day before resting and reluctantly preparing $himself, and this was a necessary precaution. $He spends most of the day-long party at the center of a nonstop gangbang, moaning and wincing as $he takes cock after cock. The theory is that $he'll be bound to you as your slave $wife from this day onward, so $he must get the promiscuity that is a sex slave's responsibility out of the way now. Whatever their opinions on the idea, your guests take part with enthusiasm, completely unhampered by your slave's lack of passion. Many brought their own slaves to participate, too. $activeSlave.slaveName spends hours with numerous cocks inside $him, with attending slaves using their mouths on any erogenous zones they can reach. When the moment of the ceremony nears, $he's extracted and taken off to be bathed. <br><br> $He returns shortly, looking exhausted. $He's naked still, $his skin clean and $activeSlave.skin, and comes to stand by you for the ceremony. The only evident signs that $he's had sex with more than a hundred people today is $his ass, which looks rather well traveled, and $his tiredness. $He does $his best to conceal it, leaning against you despite the lack of love between you. <<if $assistantName == "your personal assistant">>Your personal assistant<<else>>$assistantName<</if>> reads the short recitation for $him, and you place a simple steel ring <<if !hasAnyArms($activeSlave)>>on a cord around $his neck, since $he lacks fingers to wear it on<<else>>on $his finger<</if>>. There is no ring for you, since this marriage does not bind you. <br><br> @@ -330,7 +330,8 @@ In the days leading up to your wedding, your <<if $wife == _wife2>>$wives<<else> <</link>> </span> <</if>> - <br><br> Then, you flip $his veil over $his head so $he can <<if $PC.dick != 0>>suck your dick<<if $PC.vagina != -1>> and <</if>><</if>><<if $PC.vagina != -1>>eat you out<</if>> in front of your guests, as the ceremony requires. $He approaches $his task + <br><br> + Then, you flip $his veil over $his head so $he can <<if $PC.dick != 0>>suck your dick<<if $PC.vagina != -1>> and <</if>><</if>><<if $PC.vagina != -1>>eat you out<</if>> in front of your guests, as the ceremony requires. $He approaches $his task <<if $activeSlave.fetish == "mindbroken">> with robotic obedience. You climax promptly, <<if $PC.dick != 0>>shooting your cum down $his throat<<else>>covering $his face in girlcum<</if>>. Your guests and their attendant slaves applaud at the consummation, or rather, the first stage of the consummation. The balance will take place privately, however, and you scoop up your new slave $wife to carry $him back into the master bedroom. $He absentmindedly rests $his head against your <<if $PC.boobs >= 300>>breasts<<elseif $PC.title == 0>>flat chest<<else>>strong chest<</if>> as you cradle $him in your arms, gazing up at you with empty eyes. <<elseif $activeSlave.devotion+$activeSlave.trust >= 175>> diff --git a/src/uncategorized/sellSlave.tw b/src/uncategorized/sellSlave.tw index cae5087bfe47a5bba74430b98ca2e79a6c8287c8..8e08fa6306de5edcfa4b010368698d447bbfe10b 100644 --- a/src/uncategorized/sellSlave.tw +++ b/src/uncategorized/sellSlave.tw @@ -226,7 +226,7 @@ A reputable slave appraiser arrives promptly to inspect $him and certify $his qu <</if>> <</if>> -<<if $activeSlave.eyes <= -2>> +<<if getBestVision($activeSlave) === 0>> $His blindness is an obvious issue. <</if>> @@ -1149,6 +1149,43 @@ __Bids Received__ <</if>> <</if>> +<<if $activeSlave.vagina > 0 && $activeSlave.dick == 0 && $activeSlave.balls == 0>> + <<if $activeSlave.physicalAge >= 20 && $activeSlave.physicalAge < 25>> + <<if $activeSlave.visualAge >= 20 && $activeSlave.visualAge < 25>> + <<if $activeSlave.preg <= 0 && $activeSlave.bellyImplant <= 0>> + <<if $activeSlave.weight < 10 && $activeSlave.weight > -10>> + <<if $activeSlave.waist < 10 && $activeSlave.waist > -50>> + <<if $activeSlave.boobs >= 550 && $activeSlave.boobs < 1000>> + <<if $activeSlave.butt > 2 && $activeSlave.butt < 5>> + <<if $activeSlave.hips > 0 && $activeSlave.hips < 3>> + <<if $activeSlave.face >= 20>> + <<set _movieDouble = random(1,100)>> + <<if _movieDouble > 90 && $seePreg != 0>> + <br>''<<print cashFormat(700*Math.trunc(($slaveCost*1.35)/700))>>'' from a production studio interested in using $him as a double. + <<link "Accept bid" "Slave Sold">> + <<set _Price = 700*Math.trunc(($slaveCost*1.35)/700)>> + <<run cashX(_Price, "slaveTransfer", $activeSlave)>> + <<set $buyer = "monster movie">> + <</link>> + <<elseif _movieDouble > 70>> + <br>''<<print cashFormat(700*Math.trunc(($slaveCost*1.35)/700))>>'' from a production studio interested in using $him as a double. + <<link "Accept bid" "Slave Sold">> + <<set _Price = 700*Math.trunc(($slaveCost*1.35)/700)>> + <<run cashX(_Price, "slaveTransfer", $activeSlave)>> + <<set $buyer = "sex double">> + <</link>> + <</if>> + <</if>> + <</if>> + <</if>> + <</if>> + <</if>> + <</if>> + <</if>> + <</if>> + <</if>> +<</if>> + <<if $activeSlave.dick > 0>> <<if $activeSlave.skill.oral >= 100>> <<if $activeSlave.height < 160>> diff --git a/src/uncategorized/slaveAssignmentsReport.tw b/src/uncategorized/slaveAssignmentsReport.tw index 387f38d5c405b4bf50c907da9b7d936c56647918..f82ba3678cd1f11ef4c2ab2b4dfdc8a705496183 100644 --- a/src/uncategorized/slaveAssignmentsReport.tw +++ b/src/uncategorized/slaveAssignmentsReport.tw @@ -291,7 +291,7 @@ $NPCMarketShare.topClass = Math.trunc(($NPCSexSupply.topClass * 1000) / _topClas </td> </tr> <</if>> - + <tr align="right"> <td> Unsatisfied diff --git a/src/uncategorized/slaveMarkets.tw b/src/uncategorized/slaveMarkets.tw index bef7b6a493bbaf9efc8cfa09801b37f8138f462e..adfebccd2a3b254179a464081bd7aabdb69066a3 100644 --- a/src/uncategorized/slaveMarkets.tw +++ b/src/uncategorized/slaveMarkets.tw @@ -11,7 +11,7 @@ You visit the slave markets off the arcology plaza. It's always preferable to ex <<switch $slaveMarket>> <<case "heap">> - You're in the corner of the slave market occupied by "The Flesh Heap", a dumping ground, of sorts, for broken slaves. Be it brain death, drug overdose, coma or anything else, this market is willing to buy and sell them. Most of the worthwhile slaves have already been picked clean by pharmaceutical companies for drug testing, and the rest are practically nothing more than vegetables, but a handful remain just conscious enough to be profitable with effort as slaves. One should go in expecting only the worst quality possible, though if anything catches your eye, it will be rather cheap to purchase. + You're in the corner of the slave market occupied by "The Flesh Heap", a dumping ground, of sorts, for broken slaves. Be it brain death, drug overdose, coma, or anything else, this market is willing to buy and sell them. Most of the worthwhile slaves have already been picked clean by pharmaceutical companies for drug testing, and the rest are practically nothing more than vegetables, but a handful remain just conscious enough to be profitable with effort as slaves. One should go in expecting only the worst quality possible, though if anything catches your eye, it will be rather cheap to purchase. <<set _heap = random(1,4)>> <<if _heap == 1>> diff --git a/src/uncategorized/slaveShelter.tw b/src/uncategorized/slaveShelter.tw index 591948d4a1efd127ea02a82c48bf765a10b9a465..31046f5dee4ac6a201aea8b226dc34b4aae4807c 100644 --- a/src/uncategorized/slaveShelter.tw +++ b/src/uncategorized/slaveShelter.tw @@ -78,8 +78,8 @@ You contact the Slave Shelter to review the profile of the slave the Shelter is <<set $shelterSlave = $activeSlave>> <<set $shelterSlave.origin = "$His owner purposely blinded $him by dumping boiling water into $his eyes.">> <<set $shelterSlave.career = "a slave">> - <<set $shelterSlave.eyes = -2>> - <<set $shelterSlave.eyeColor = "milky white">> + <<run eyeSurgery($shelterSlave, "both", "blind")>> + <<run setEyeColor($shelterSlave, "milky white")>> <<set $shelterSlave.custom.desc = "$He has an obvious burn across $his eyes.">> <<set $shelterSlave.devotion = random(-100,-90)>> <<set $shelterSlave.trust = random(-100,-90)>> diff --git a/src/uncategorized/slaveSold.tw b/src/uncategorized/slaveSold.tw index 94e6c2b3510aee07d8d4602d1b35257c88734303..55f18e48ceabd8361bc3f6102084bf132fa39e63 100644 --- a/src/uncategorized/slaveSold.tw +++ b/src/uncategorized/slaveSold.tw @@ -1138,6 +1138,32 @@ Your other slaves lacking in manners consider being turned into a proper member of polite society @@.gold;a fate wore than death.@@ <</if>> +<<case "sex double">> + $activeSlave.slaveName soon makes $his debut on the big screen in a debaucherous gangbang in place of the popular lead. $He is a spitting image of the actress, even when coated in layers of semen. + <<for _ss = 0; _ss < $slaves.length; _ss++>> + <<if ($slaves[_ss].sexualFlaw == "attention whore")>> + <<run clearSummaryCache($slaves[_ss])>> + <<set $slaves[_ss].devotion -= 2>> + <<set _slaveImpact = 1>> + <</if>> + <</for>> + <<if (_slaveImpact == 1)>> + The attention whores among your slaves are @@.mediumorchid;envious@@ of $activeSlave.slaveName's good fortune. + <</if>> + +<<case "monster movie">> + $activeSlave.slaveName soon makes $his debut on the big screen in a thrilling horror movie. At its end, the male lead finds his partner, played by $him in this scene, glued to a wall with a massively distended middle filled to capacity with the monster's spawn. The camera slowly zooms in on $him as $he gives birth to a future sequel. + <<for _ss = 0; _ss < $slaves.length; _ss++>> + <<if ($slaves[_ss].sexualFlaw == "breeder")>> + <<run clearSummaryCache($slaves[_ss])>> + <<set $slaves[_ss].devotion -= 2>> + <<set _slaveImpact = 1>> + <</if>> + <</for>> + <<if (_slaveImpact == 1)>> + The pregnancy obsessed sluts among your slaves are @@.mediumorchid;envious@@ of $activeSlave.slaveName's new experience, even if it is fake. + <</if>> + <<case "peacekeepers">> $activeSlave.slaveName is delivered to General $peacekeepers.generalName's forces, to serve as a barracks whore. Several days later, the purchasing officer forwards a short shot of $activeSlave.slaveName <<if $peacekeepers.tastes == 0>> diff --git a/src/uncategorized/spaReport.tw b/src/uncategorized/spaReport.tw index 089f93be4e74d0e52e71925b81a69a1718efb2cb..db829ce050884a0b370a8807ef36c397afe2675e 100644 --- a/src/uncategorized/spaReport.tw +++ b/src/uncategorized/spaReport.tw @@ -56,7 +56,7 @@ <<else>> <<set $slaves[_FLs].skill.attendant += random(1,Math.ceil(($Attendant.intelligence+$Attendant.intelligenceImplant)/15) + 8)>> <</if>> - <<if ($Attendant.eyes <= -2)>> + <<if !canSee($Attendant)>> $His blindness allows $him to deeply connect with $his charges. <<set _idleBonus++>> <</if>> diff --git a/src/uncategorized/specialSlave.tw b/src/uncategorized/specialSlave.tw index 45591207dcb24e855c0740730f37fae52061a1e3..3c1c4e606643d9b5839aaed5e9e1d8bb75794ac4 100644 --- a/src/uncategorized/specialSlave.tw +++ b/src/uncategorized/specialSlave.tw @@ -21,7 +21,7 @@ <</if>> <<if $activeSlave.override_Eye_Color != 1>> - <<set $activeSlave.eyeColor = getGeneticEyeColor($activeSlave)>> + <<run resetEyeColor($activeSlave, "both")>> <</if>> <<if $activeSlave.override_H_Color != 1>> <<set $activeSlave.hColor = getGeneticHairColor($activeSlave)>> diff --git a/src/uncategorized/surgeryDegradation.tw b/src/uncategorized/surgeryDegradation.tw index f50aebae144368f0ebecc0e8159d322cd8db82bf..16d65537251b741fbb0f43fbdb46556238f0b426 100644 --- a/src/uncategorized/surgeryDegradation.tw +++ b/src/uncategorized/surgeryDegradation.tw @@ -232,7 +232,7 @@ As the remote surgery's long recovery cycle completes, <br><br>The Fuckdoll suit's systems connect to the arcology and run a full systems check. The reports waterfall down the nearest wallscreen, moving from the top of the Fuckdoll down. The simple brain activity sensor is showing elevated readings as $activeSlave.slaveName desperately tries to find $his bearings. <<if $activeSlave.hLength > 20>>The twin tails of hair sticking out of the suit material that covers $his scalp are waving from side to side slightly as $he struggles.<</if>> - <<if $activeSlave.eyes != 0>>The suit does not have holes for vision, worsening the disorientation.<</if>> + <<if getBestVision($activeSlave) > 0>>The suit does not have holes for vision, worsening the disorientation.<</if>> <<if $activeSlave.voice == 0>>$His breath rushes in and<<else>>Incoherent moans are coming<</if>> out of $his <<if $activeSlave.lips > 95>>facepussy<<else>>mouth insert<</if>>. The suit can stimulate every intimate area that it covers with vibration, electrostimulation, warmth, and cold, and $activeSlave.slaveName must be in agony as it tests these systems. @@ -264,7 +264,7 @@ As the remote surgery's long recovery cycle completes, <<run generatePronouns($activeSlave)>> <<setLocalPronouns $activeSlave>> If you were expecting a great return to humanity after extracting $him from $his Fuckdoll suit, you're to be disappointed. - <<if $activeSlave.eyes != 0>> + <<if getBestVision($activeSlave) > 0>> You're denied any reaction from $him to the sight of $himself in the mirror outside the recovery area, as $he's wearing a pair of very dark glasses $he'll have to keep on for a few hours yet. $He's been denied almost all vision for a long time, and though $his recovery included light therapy, $he's still very sensitive to it. <</if>> <<if $activeSlave.fetish == "mindbroken">> @@ -310,7 +310,7 @@ As the remote surgery's long recovery cycle completes, <<case "remove eyes">> Surgery doesn't take long, but since it was invasive there are @@.red;moderate health consequences.@@ As anesthesia wears off $he tries to open $his eyes and finds $he is unable to. <<if $activeSlave.fetish != "mindbroken" && $activeSlave.fuckdoll == 0>> - <<if $activeSlave.eyes > -2>> + <<if getBestVision($activeSlave) > 0>> <<if ($activeSlave.devotion > 50)>> When $he realizes why, $he begins to weep, not understanding what $he did to deserve this. After a short cry that trails off into a few sniffles, $he carries on. <<elseif ($activeSlave.devotion > 20)>> @@ -330,10 +330,10 @@ As the remote surgery's long recovery cycle completes, <</if>> <</if>> <</if>> - <<set $activeSlave.eyes = -4>> + /*<<run eyeSurgery($activeSlave, "both", "remove")>>*/ <<case "ocular implant">> - <<if $activeSlave.eyes <= -2>> + <<if getBestVision($activeSlave) > 0>> The implant surgery is @@.red;invasive@@ and $he spends some time in the autosurgery recovering. As soon as $he is allowed to open $his eyes and look around, $his gaze flicks from object to object with manic speed as $his new eyes deliver nearly overwhelming amount of visual information. Seeing the world as it is is a gift that those who do not need it cannot properly understand. <<if $activeSlave.fetish != "mindbroken" && $activeSlave.fuckdoll == 0>> <<set $activeSlave.devotion += 25, $activeSlave.trust += 25>> @@ -361,7 +361,7 @@ As the remote surgery's long recovery cycle completes, <</if>> <</if>> <</if>> - <<set $activeSlave.eyes = 1>> + /*<<run eyeSurgery($activeSlave, "both", "cybernetic")*/ <<case "newEyes">> The implant surgery is @@.red;invasive@@ and $he spends some time in the autosurgery recovering. As soon as $he is allowed to open $his eyes and look around, $he notices nothing has changed; though the next time $he looks in the mirror, $he'll see a pair of familiar <<= App.Desc.eyesColor($activeSlave)>> peering back at $him. @@ -609,7 +609,8 @@ As the remote surgery's long recovery cycle completes, <</if>> <<if $PC.dick != 0>> <span id="seed"> - <br><br> The implant is highly receptive to fresh sperm right now; it would be trivial to seed it with yours and force $him to bear hundreds of your children. + <br><br> + The implant is highly receptive to fresh sperm right now; it would be trivial to seed it with yours and force $him to bear hundreds of your children. <br><<link "Seed $his pregnancy implant with your genetic material">> <<replace "#seed">> You simply take $him on the spot, using $him to your liking and shooting a load deep into $his receptive pussy. The implant rewards $him upon successful fertilization, so $his moans of pleasure as you pull out of $him inform you $he'll soon <<if $activeSlave.broodmother == 2>>be greatly swollen<<else>>grow heavy<</if>> with @@.lime;your brood.@@ diff --git a/src/uncategorized/wardrobeUse.tw b/src/uncategorized/wardrobeUse.tw index dbb38fe3a63c0cdb8f409da54f5b17059228d68d..246a99cec738690005a62172e25e86a59d6de5b1 100644 --- a/src/uncategorized/wardrobeUse.tw +++ b/src/uncategorized/wardrobeUse.tw @@ -558,7 +558,8 @@ Anal accessory: ''$activeSlave.buttplug.'' <<elseif $activeSlave.fuckdoll == 1>> //<<ClothingDescription>>// - <br><br> There are no changes you can make to $him at this time. + <br><br> + There are no changes you can make to $him at this time. <</if>> /* CLOSES FUCKDOLL CHECK */ <br><br> diff --git a/src/utility/descriptionWidgetsPiercings.tw b/src/utility/descriptionWidgetsPiercings.tw index fd1db41e6079e9669f5bb5a662a8f28eb75f387c..91e83e21e8682b7fbfb53cfe8e40ff4e42a04d49 100644 --- a/src/utility/descriptionWidgetsPiercings.tw +++ b/src/utility/descriptionWidgetsPiercings.tw @@ -139,6 +139,8 @@ $He can barely enunciate <<if $activeSlave.lipsPiercing == 2>> past $his piercings; + <<else>> + with $his fat lips; <</if>> <<run Enunciate($activeSlave)>> <<if $writtenTitle === $titleEnunciate>> diff --git a/src/utility/descriptionWidgetsStyle.tw b/src/utility/descriptionWidgetsStyle.tw index 811c519d6dade645b205588e6f7a47a1b786225a..c31adf7081a0f3701bcc59becc044875706b0e98 100644 --- a/src/utility/descriptionWidgetsStyle.tw +++ b/src/utility/descriptionWidgetsStyle.tw @@ -3661,8 +3661,8 @@ $His <<case "a bunny outfit">> A pair of bunny ears sprout from a headband atop $his head. <</switch>> - <<if $activeSlave.eyesImplant == 1>> - $He has artificial eyes. + <<if hasAnyCyberneticEyes($activeSlave)>> + $He has artificial <<if hasBothCyberneticEyes($activeSlave)>>eyes<<else>>an eye<</if>>. <</if>> <<if ($activeSlave.eyewear == "corrective glasses") || ($activeSlave.eyewear == "blurring glasses") || ($activeSlave.eyewear == "glasses")>> $He's wearing a pair of @@ -3714,34 +3714,38 @@ $His <<default>> simple wire-frame glasses, <</switch>> - <<if $activeSlave.eyes > -1>> + <<if getBestVision($activeSlave) === 0>> + which, since $he is @@.red;blind,@@ are just for show. $He moves carefully as to not bump into things. + <<else>> <<if $activeSlave.eyewear == "blurring glasses">> - which are designed to blur $his vision, making $him clumsy. + <<if anyVisionEquals($activeSlave, 2)>> + which are designed to blur $his vision, making $him clumsy. + <<else>> + which do nothing to help $his @@.yellow;nearsightedness@@ and consequent clumsiness. + <</if>> + <<elseif $activeSlave.eyewear == "corrective glasses">> + <<if anyVisionEquals($activeSlave, 1)>> + which correct $his vision. + <<else>> + which are just for show. + <</if>> <<else>> which are just for show. <</if>> - <<elseif $activeSlave.eyes == -1>> - <<if $activeSlave.eyewear == "corrective glasses">> - which correct $his vision. - <<else>> - which do nothing to help $his @@.yellow;nearsightedness@@ and consequent clumsiness. - <</if>> - <<elseif $activeSlave.eyes < -1>> - which, since $he is @@.red;blind,@@ are just for show. $He moves carefully as to not bump into things. <</if>> <<else>> - <<if $activeSlave.eyes > -1>> + <<if !canSee($activeSlave)>> + $He is @@.red;blind,@@ and moves very carefully as a result. + <<elseif !canSeePerfectly($activeSlave)>> <<if $activeSlave.eyewear == "blurring contacts">> $He's wearing contacts designed to blur $his vision, making $him clumsy. + <<else>> + $He's @@.yellow;nearsighted,@@ and a bit clumsy as a result. <</if>> - <<elseif $activeSlave.eyes == -1>> + <<else>> <<if $activeSlave.eyewear == "corrective contacts">> $He's wearing contact lenses to correct $his @@.yellow;nearsightedness.@@ - <<else>> - $He's @@.yellow;nearsighted,@@ and a bit clumsy as a result. <</if>> - <<elseif $activeSlave.eyes < -1>> - $He is @@.red;blind,@@ and moves very carefully as a result. <</if>> <</if>> /* CLOSES EYEWEAR */ <<if ($activeSlave.earwear == "hearing aids") || ($activeSlave.earwear == "muffling ear plugs") || ($activeSlave.earwear == "deafening ear plugs")>> diff --git a/src/utility/extendedFamilyWidgets.tw b/src/utility/extendedFamilyWidgets.tw index 1872c453e6cf96a6c989495720a804ed36c65605..c97e6f8bf09fc27565e4d6abbc77cd38224439f9 100644 --- a/src/utility/extendedFamilyWidgets.tw +++ b/src/utility/extendedFamilyWidgets.tw @@ -240,7 +240,7 @@ <<set _uncles.push(_dadsiblings[$i])>> <</if>> <</for>> - + <<if _aunts.length > 0>> $He <<if _aunts.length > 2>> diff --git a/src/utility/slaveCreationWidgets.tw b/src/utility/slaveCreationWidgets.tw index e991469dab8ee3acd882f3f2fc6338583b476ee9..4a89c04dc660d1273707dec9a526de2b3877b70a 100644 --- a/src/utility/slaveCreationWidgets.tw +++ b/src/utility/slaveCreationWidgets.tw @@ -588,15 +588,9 @@ %/ <<widget "CustomSlaveEyes">> <<replace #eyes>> - <<if $seeExtreme == 1>> - <<if $customSlave.eyes <= -2>>Blind. - <<elseif $customSlave.eyes == -1>>Nearsighted. - <<else>>Normal. - <</if>> - <<else>> - <<if $customSlave.eyes == -1>>Nearsighted. - <<else>>Normal. - <</if>> + <<if getBestVision($customSlave) === 2>>Normal vision. + <<elseif getBestVision($customSlave) === 1>>Nearsighted. + <<else>>Blind. <</if>> <</replace>> <</widget>> @@ -787,7 +781,8 @@ <<if $activeSlave.boobShape == "saggy" || $activeSlave.boobShape == "downward-facing">> <<set $activeSlave.boobShape = "perky">> <</if>> - <<set $activeSlave.eyes = 1, $activeSlave.hears = 0, $activeSlave.voice = 2>> + <<run eyeSurgery($activeSlave, "both", "normal")>> + <<set $activeSlave.hears = 0, $activeSlave.voice = 2>> <<set $activeSlave.intelligenceImplant = 30, $activeSlave.intelligence = random(20,100)>> <<set $activeSlave.trust = 80, $activeSlave.devotion = 80>> <<set $activeSlave.health = random(80,95)>> @@ -843,11 +838,13 @@ <<set $activeSlave.vagina = random(3,4)>> <<set $activeSlave.physicalAge = $activeSlave.actualAge, $activeSlave.visualAge = $activeSlave.actualAge, $activeSlave.ovaryAge = $activeSlave.actualAge>> <<case "Attendant">> - <<set $activeSlave.devotion = 90, $activeSlave.trust = 90, $activeSlave.fetish = "submissive", $activeSlave.fetishStrength = 100, $activeSlave.eyes = either(-2, 1, 1), $activeSlave.preg = 0, $activeSlave.face = random(60,90), $activeSlave.career = either("a counselor", "a masseuse", "a therapist")>> + <<set $activeSlave.devotion = 90, $activeSlave.trust = 90, $activeSlave.fetish = "submissive", $activeSlave.fetishStrength = 100, $activeSlave.preg = 0, $activeSlave.face = random(60,90), $activeSlave.career = either("a counselor", "a masseuse", "a therapist")>> + <<run eyeSurgery($activeSlave, "both", either(0, 2, 2) === 2 ? "normal" : "blind")>> <<set $activeSlave.actualAge = random(26,$retirementAge-3)>> <<set $activeSlave.physicalAge = $activeSlave.actualAge, $activeSlave.visualAge = $activeSlave.actualAge, $activeSlave.ovaryAge = $activeSlave.actualAge>> <<case "Matron">> - <<set $activeSlave.devotion = 90, $activeSlave.trust = 90, $activeSlave.sexualQuirk = "caring", $activeSlave.eyes = 1, $activeSlave.counter.birthsTotal = random(2,4), $activeSlave.vagina = 3, $activeSlave.face = random(60,90), $activeSlave.career = either( "a nanny", "a practitioner")>> + <<set $activeSlave.devotion = 90, $activeSlave.trust = 90, $activeSlave.sexualQuirk = "caring", $activeSlave.counter.birthsTotal = random(2,4), $activeSlave.vagina = 3, $activeSlave.face = random(60,90), $activeSlave.career = either( "a nanny", "a practitioner")>> + <<run eyeSurgery($activeSlave, "both", "normal")>> <<set $activeSlave.actualAge = random(24,$retirementAge-3)>> <<set $activeSlave.physicalAge = $activeSlave.actualAge, $activeSlave.visualAge = $activeSlave.actualAge, $activeSlave.ovaryAge = $activeSlave.actualAge>> <<case "Stewardess">>