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/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/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/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 b7cdf6087abe7f3530e236a158fa4c9eab89af06..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> `; } } @@ -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/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/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 43a9dd547fb01509be47f3428779788ffc9e4f6f..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); @@ -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/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 e09e803a2d4803c8181e8b735a635894c7adb9d3..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) { @@ -1369,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; @@ -1692,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/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/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/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/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/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/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 ad7f2aa81166e6b1ca7caa6f7ac0cc29d63e9def..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()>> @@ -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)>> 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 347f56a35c37871d76375b82a0e5fbf3a8912b25..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>> @@ -3363,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>> @@ -3757,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>> @@ -3952,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 508f26adfa9972a972b528cbd222b54fcb515572..c92d6167d25fbc310b25fd2f9f035b99ad3bd45b 100644 --- a/src/uncategorized/RESS.tw +++ b/src/uncategorized/RESS.tw @@ -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">> 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/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 3b00882385983d3e0047d7d9bfd25d2f03382ba3..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.@@ @@ -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. @@ -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. 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/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/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 aeaf5aa3bc223394885c8a150c44cbbd150229d0..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>> 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/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/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/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/sellSlave.tw b/src/uncategorized/sellSlave.tw index 504441cbd58905442ad94cf328efc2fcffc0c6ac..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>> 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/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 378ebcc8f686d10a333ad6a98b1b8caf00272324..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. 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/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">>