diff --git a/devNotes/limb functions.md b/devNotes/limb functions.md new file mode 100644 index 0000000000000000000000000000000000000000..fcfe49a8c728ca9166d5e46f2dd9b0f358d5aca7 --- /dev/null +++ b/devNotes/limb functions.md @@ -0,0 +1,89 @@ +## Basic documentation for the limb access functions coming with the new limb system. + +### ID system + +The new system uses new IDs instead of the old ones. +``` +limb new old +no limb: 0 1 +natural: 1 0 +basic: 2 -1 +sex: 3 -2 +beauty: 4 -3 +combat: 5 -4 +cybernetic: 6 -5 +``` + + +### Usage example: + +``` +<<if isAmputee($activeSlave)>> + Slave is full amputee. +<</if>> +``` + +Most functions can be used like this, though some are more specialized. + + +### Functions: + +`isAmputee(slave)`: + True if slave has no limbs, neither natural nor prosthetic. + +`hasAnyNaturalLimbs(slave)`: + True if slave has at least one natural limb. + +`hasAnyProstheticLimbs(slave)`: + True if slave has at least one prosthetic limb. + +`hasAnyLegs(slave)`: + True if slave has at least one leg. + +`hasAnyArms(slave)`: + True if slave has at least one arm. + +`hasAnyNaturalLegs(slave)`: + True if slave has at least one leg and all are natural. + +`hasBothLegs(slave)`: + True if slave has both legs. + +`hasBothArms(slave)`: + True if slave has both arms. + +`hasBothNaturalLegs(slave)`: + True if slave has both legs and they are natural. + +`hasBothNaturalArms(slave)`: + True if slave has both arms and they are natural. + +`hasLegAndArm(slave)`: + True if slave has at least one leg and at least one arm. + +`hasAllLimbs(slave)`: + True if slave has all limbs. + +`hasAllNaturalLimbs(slave)`: + True if slave has all limbs and all are natural. + +`idToDescription(id)`: + Returns a very short description of the specified limb ID. + 0: "amputated"; + 1: "healthy"; + 2: "modern prosthetic"; + 3: "advanced, sex-focused prosthetic"; + 4: "advanced, beauty-focused prosthetic"; + 5: "advanced, combat-focused prosthetic"; + 6: "highly advanced cybernetic"; + +`getLimbCount(slave, id)`: + Returns count of specified limb ID. + +`hasLimb(slave, limb)`: + True if slave has specified limb. + Allowed values for limb: "left arm", "right arm", "left leg", "right leg". + +`getLimbID(slave, limb)`: + Returns limb ID of the specified limb. + Allowed values for limb: "left arm", "right arm", "left leg", "right leg". diff --git a/src/facilities/nursery/longChildDescription.tw b/src/facilities/nursery/longChildDescription.tw index 9c6b3dd183d0877d4f17b8ecb81583a4d138401a..7ce18eb896f99d7ef458432160e4b792b566f93d 100644 --- a/src/facilities/nursery/longChildDescription.tw +++ b/src/facilities/nursery/longChildDescription.tw @@ -1119,9 +1119,7 @@ $He is $activeChild.counter.pitKills slaves have died by $his hand in pit fights. <</if>> -<<if $activeChild.corsetPiercing > 0>> - <<CorsetPiercingDescription>> -<</if>> +<<= App.Desc.piercing($activeChild, "corset")>> <<pregnancyDescription>> @@ -1282,9 +1280,9 @@ $He is The piercings on $his head run through $his suit, helping secure the material to $his head. <</if>> <<else>> - <<earPiercingDescription>> - <<nosePiercingDescription>> - <<eyebrowPiercingDescription>> + <<= App.Desc.mods($activeChild, "ear")>> + <<= App.Desc.mods($activeChild, "nose")>> + <<= App.Desc.mods($activeChild, "eyebrow")>> <<if ($activeChild.custom.tattoo != "") && (def $activeChild.custom.tattoo)>> <<print $activeChild.custom.tattoo>> <</if>> @@ -1317,12 +1315,13 @@ $He is <<if $activeChild.fuckdoll == 0>> <<nailsDescription>> - <<if $showBodyMods == 1>> - <<backTatDescription>> - <<shouldersTatDescription>> - <<armsTatDescription>> - <</if>> <</if>> +<<= App.Desc.mods($activeChild, "back")>> +<<= App.Desc.mods($activeChild, "shoulder")>> +<<= App.Desc.mods($activeChild, "upper arm")>> +<<= App.Desc.mods($activeChild, "lower arm")>> +<<= App.Desc.mods($activeChild, "hand")>> +<<= App.Desc.mods($activeChild, "wrist")>> <<if $activeChild.fuckdoll == 0>> <<if $activeChild.minorInjury != 0>> @@ -1338,15 +1337,11 @@ $He is <<BoobsDescription>> <<boobsShapeDescription>> <<boobsExtraDescription>> -<<if $showBodyMods == 1>> - <<boobsTatDescription>> -<</if>> -<<boobBrandDescription>> +<<= App.Desc.mods($activeChild, "chest")>> +<<= App.Desc.mods($activeChild, "breast")>> <<shouldersDescription>> <<nipplesDescription>> -<<if $showBodyMods == 1>> - <<nipplesPiercingDescription>> -<</if>> +<<= App.Desc.mods($activeChild, "nipple")>> <<areolaeDescription>> <<if $activeChild.inflation > 0>> /* to be obsoleted with phase 4 */ diff --git a/src/gui/mainMenu/AlphaDisclaimer.tw b/src/gui/mainMenu/AlphaDisclaimer.tw index 38da9745db0035671dc86a2568cdff8aee206155..04e654a51749a0fab1a6206d54f64e32e2cc2c44 100644 --- a/src/gui/mainMenu/AlphaDisclaimer.tw +++ b/src/gui/mainMenu/AlphaDisclaimer.tw @@ -1,13 +1,12 @@ :: Alpha disclaimer -<<set $ui = "start">>\ //version $ver mod version $pmodVer build $releaseID// @@.green;//Mod: expanded age ranges and other tweaks 2016-08-30//@@ @@.darkred;+SV@@ @@.green;//Mod: extra preg content and other crap//@@ ''This is an alpha.'' That means the game is missing content, is full of bugs, is imbalanced, and is generally in an incomplete state. The game will keep a start of turn autosave. If you encounter a bug, we strongly recommend you reload your start of turn autosave immediately. Please submit your feedback and bug reports at https://gitgud.io/pregmodfan/fc-pregmod/issues. Consider attaching a save file and screenshot of the problem. This Pregmod is a modification of the original <i>Free Cities</i> created by FCdev, which can be seen at https://freecitiesblog.blogspot.com/. -An in-game encyclopedia is available from the sidebar (or [[here|Encyclopedia][$nextButton = "Back", $nextLink = passage()]] if you'd prefer to have a look before starting), with answers to most basic gameplay questions. +An in-game encyclopedia is available from the sidebar, with answers to most basic gameplay questions. __Important note for new players, and a reminder for FC veterans:__ when the player is offered a set of choices, the ''Continue'' button at the top of the left sidebar will almost always remain available. Using this to decline all the options presented is //not cheating.// If it's available, it's supposed to be available. It represents the player character politely bowing out of the situation. @@ -17,4 +16,4 @@ If you enjoy FC and feel like using your real-life ¤ to express gratitude, you @@.yellow;This is a text-based game that includes descriptions of sexual activity, graphic violence, drug use, and other subjects not suitable for persons under the age of 18. This is a work of fiction; any resemblance to actual persons, places, or events is unintended.@@ -[[I am 18 or more years of age, I understand, and I wish to continue|Economy Intro]] +[[I am 18 or more years of age, I understand, and I wish to continue|Economy Intro]] \ No newline at end of file diff --git a/src/init/storyInit.tw b/src/init/storyInit.tw index ff8ce44da32dc0a09a661974246ae05b991bffb2..78a0739ef6d71080a268eafca41b1adfd56481cd 100644 --- a/src/init/storyInit.tw +++ b/src/init/storyInit.tw @@ -263,7 +263,7 @@ You should have received a copy of the GNU General Public License along with thi <<set $seeReportImages = 1>> <<set $lineSeparations = 1>> <<set $showSexualHistory = 1>> - <<set $showBodyMods = 0>> + <<set $showBodyMods = 1>> <<set $showImplantEffects = 1>> <<set $showClothing = 1>> <<set $showWardrobe = 1>> diff --git a/src/js/assayJS.js b/src/js/assayJS.js index 3b4aee4b3b5206c91871e270e5a48d258bd06436..e87d76bed37f660fe2f69029faba2593dbf07f67 100644 --- a/src/js/assayJS.js +++ b/src/js/assayJS.js @@ -1212,7 +1212,7 @@ window.DegradingName = function DegradingName(slave) { } else if (slave.visualAge < 25) { names.push("Girly", "Thin", "Young"); } - if (slave.amp === 1) { + if (isAmputee(slave)) { names.push("Stumpy"); suffixes.push("Stumpy"); } @@ -1749,18 +1749,14 @@ window.Deadliness = function Deadliness(slave) { deadliness -= 1; } - if (slave.amp === 0) { - if (!canWalk(slave)) { - deadliness -= 20; - } - } else if (slave.amp === 1) { + deadliness -= getLimbCount(slave, 0) * 5; + deadliness -= getLimbCount(slave, 2) * 0.25; + deadliness -= getLimbCount(slave, 3) * 0.25; + deadliness -= getLimbCount(slave, 4) * 0.25; + deadliness += getLimbCount(slave, 5) * 1.25; + deadliness += getLimbCount(slave, 6) * 2.5; + if (hasBothLegs(slave) && !canWalk(slave)) { deadliness -= 20; - } else if (slave.amp === -5) { - deadliness += 10; - } else if (slave.amp === -4) { - deadliness += 5; - } else { - deadliness -= 1; } if (!canSee(slave)) { diff --git a/src/js/describePiercings.js b/src/js/describePiercings.js new file mode 100644 index 0000000000000000000000000000000000000000..a527cf0037197db03853a5d3a5ec61a8e1de851e --- /dev/null +++ b/src/js/describePiercings.js @@ -0,0 +1,76 @@ +/** + * @param {App.Entity.SlaveState} slave + * @returns {string} Relevant slave tattoo, if present + */ +App.Desc.piercing = function(slave, surface) { + "use strict"; + const V = State.variables; + let r = ``; + /* eslint-disable no-unused-vars*/ + const { + he, him, his, hers, himself, boy, He, His + } = getPronouns(slave); + /* eslint-enable */ + if (V.showBodyMods !== 1) { + return; + } + switch (surface) { + case "ear": { + r += `<<earPiercingDescription>>`; + break; + } + case "nose": { + r += `<<nosePiercingDescription>>`; + break; + } + case "eyebrow": { + r += `<<eyebrowPiercingDescription>>`; + break; + } + case "lips": { + r += `<<lipsPiercingDescription>>`; + break; + } + case "tongue": { + r += `<<tonguePiercingDescription>>`; + break; + } + case "nipple": { + r += `<<nipplesPiercingDescription>>`; + break; + } + case "areolae": { + r += `<<areolaePiercingDescription>>`; + break; + } + case "navel": { + r += `<<navelPiercingDescription>>`; + break; + } + case "clit": { + r += `<<clitPiercingDescription>>`; + break; + } + case "vagina": { + r += `<<vaginaPiercingDescription>>`; + break; + } + case "dick": { + r += `<<dickPiercingDescription>>`; + break; + } + case "anus": { + r += `<<anusPiercingDescription>>`; + break; + } + case "corset": { // non anatomical + r += `<<CorsetPiercingDescription>>`; + break; + } + case "chastity": { // non anatomical + r += `<<chastityPiercingDescription>>`; + break; + } + } + return r; +}; diff --git a/src/js/describeTattoos.js b/src/js/describeTattoos.js new file mode 100644 index 0000000000000000000000000000000000000000..fad61cceddf5116594f764e40019cd0b8fbbd01c --- /dev/null +++ b/src/js/describeTattoos.js @@ -0,0 +1,64 @@ +/** + * @param {App.Entity.SlaveState} slave + * @returns {string} Relevant slave tattoo, if present + */ +App.Desc.tattoo = function(slave, surface) { + "use strict"; + const V = State.variables; + let r = ``; + /* eslint-disable no-unused-vars*/ + const { + he, him, his, hers, himself, boy, He, His + } = getPronouns(slave); + /* eslint-enable */ + if (V.showBodyMods !== 1) { + return; + } + switch (surface) { + case "shoulder": { + r += `<<shouldersTatDescription>>`; + break; + } + case "lips": { + r += `<<lipsTatDescription>>`; + break; + } + case "breast": { + r += `<<boobsTatDescription>>`; + break; + } + case "upper arm": { /* technically the old widget describes the ENTIRE arm, but we are going to display it here to preserve order */ + r += `<<armsTatDescription>>`; + break; + } + case "back": { + r += `<<backTatDescription>>`; + break; + } + case "lower back": { + r += `<<stampTatDescription>>`; + break; + } + case "buttock": { + r += `<<buttTatDescription>>`; + break; + } + case "vagina": { + r += `<<vaginaTatDescription>>`; + break; + } + case "dick": { + r += `<<dickTatDescription>>`; + break; + } + case "anus": { + r += `<<anusTatDescription>>`; + break; + } + case "thigh": { /* technically the old widget describes the ENTIRE leg, but we are going to display it here to preserve order */ + r += `<<legsTatDescription>>`; + break; + } + } + return r; +}; diff --git a/src/js/descriptionWidgets.js b/src/js/descriptionWidgets.js index 3322ea84ec84046e6e274827524f643bcd8b38e4..a61343d53ec2d9d5de5958e03827e7c8818e800c 100644 --- a/src/js/descriptionWidgets.js +++ b/src/js/descriptionWidgets.js @@ -581,7 +581,19 @@ App.Desc.ageAndHealth = function(slave) { * @returns {string} Slave's mods. */ App.Desc.mods = function(slave, surface) { - return App.Desc.brand(slave, surface) + App.Desc.scar(slave, surface); + const V = State.variables; + if (V.showBodyMods !== 1) { + return; + } + if (slave.fuckdoll !== 0 && !["vagina", "anus", "lips"].includes(surface)) { /* Fuckdoll vulva and anus alone are visibile, plus enormus lips */ + return; + } + return ( + App.Desc.piercing(slave, surface) + + App.Desc.tattoo(slave, surface) + + App.Desc.brand(slave, surface) + + App.Desc.scar(slave, surface) + ); }; /** diff --git a/src/js/economyJS.js b/src/js/economyJS.js index b717b1ef6680f2c0e65a31506c51d1da9caaae6e..d5ec91d01c0fd8d1f8c3fe37158dbb66d4cc08b2 100644 --- a/src/js/economyJS.js +++ b/src/js/economyJS.js @@ -750,10 +750,11 @@ window.getSlaveCost = function(s) { cost += 15; } if ((s.assignment !== Job.DAIRY || State.variables.dairyRestraintsSetting < 2) && (s.assignment !== Job.ARCADE)) { - if (s.amp !== 0) { - cost += (s.amp === 1) ? rulesCost : rulesCost / 2; - } else if (!canWalk(s)) { + if (!canWalk) { cost += rulesCost; + } else { + cost += getLimbCount(s, 0) * 0.25 * rulesCost; + cost += (getLimbCount(s, 2) + getLimbCount(s, 3) + getLimbCount(s, 4) + getLimbCount(s, 5) + getLimbCount(s, 6)) * 0.125 * rulesCost; } } diff --git a/src/js/eventSelectionJS.js b/src/js/eventSelectionJS.js index 5468c334d639bb16c532fc67caf4a4a99d3dc2d5..47042b1ad38389be979b626ef3d102b08a55a76e 100644 --- a/src/js/eventSelectionJS.js +++ b/src/js/eventSelectionJS.js @@ -1627,7 +1627,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) { } } - if (eventSlave.amp === 1) { + if (isAmputee(slave)) { if (eventSlave.devotion > 20) { if (eventSlave.anus > 0 && canDoAnal(eventSlave)) { State.variables.RESSevent.push("devoted amp"); diff --git a/src/js/slaveCostJS.js b/src/js/slaveCostJS.js index f28e30950ff7ffed695b3c5242db49e7a7ddae40..9c525f9778d2ae679ab8e2b244e988af6cc1165d 100644 --- a/src/js/slaveCostJS.js +++ b/src/js/slaveCostJS.js @@ -2259,9 +2259,7 @@ window.slaveCost = (function() { } else if (V.rep < 5000) { multiplier -= 0.1*(Object.getOwnPropertyNames(slave.brand).length); } - if (slave.amp === 1) { - multiplier -= 0.2; - } + multiplier -= getLimbCount(slave, 0) * 0.05; if (slave.eyes <= -2) { multiplier -= 0.2; } diff --git a/src/js/vignettes.js b/src/js/vignettes.js index 77b666cf4f6be8ee73b6908ddd1a395cc42b2885..4171d04b94f9804dfa471ffb6f9fe913daa9bf53 100644 --- a/src/js/vignettes.js +++ b/src/js/vignettes.js @@ -1158,13 +1158,14 @@ window.GetVignette = function GetVignette(slave) { }); } } - if (slave.amp === 1) { + if (isAmputee(slave)) { vignettes.push({ text: `${he} disappointed a customer who thought they would enjoy fucking a quadruple amputee, but found it revolting,`, type: "rep", effect: -1, }); - } else if (slave.amp === -1) { + } + if (getLimbCount(slave, 2) > 0) { vignettes.push({ text: `a strange customer was excited by the sight of ${his} prosthetic limbs,`, type: "rep", @@ -1180,7 +1181,8 @@ window.GetVignette = function GetVignette(slave) { type: "rep", effect: -1, }); - } else if (slave.amp === -2) { + } + if (getLimbCount(slave, 3) > 0) { vignettes.push({ text: `a customer was excited by ${his} vibrating fingertips,`, type: "rep", @@ -1196,7 +1198,8 @@ window.GetVignette = function GetVignette(slave) { type: "rep", effect: -1, }); - } else if (slave.amp === -3) { + } + if (getLimbCount(slave, 4) > 0) { vignettes.push({ text: `a strange customer was excited by the sight of ${his} artificial limbs,`, type: "rep", @@ -1212,7 +1215,8 @@ window.GetVignette = function GetVignette(slave) { type: "rep", effect: -1, }); - } else if (slave.amp === -4) { + } + if (getLimbCount(slave, 5) > 0) { vignettes.push({ text: `a customer was excited by the thought of having sex with a slave with p-limbs, but was scared off by ${his} combat p-limbs,`, type: "cash", @@ -1228,7 +1232,8 @@ window.GetVignette = function GetVignette(slave) { type: "cash", effect: -1, }); - } else if (slave.amp === -5) { + } + if (getLimbCount(slave, 6) > 0) { vignettes.push({ text: `a customer was fascinated by ${his} cybernetic limbs, and spent almost as much time examining them as they did having sex with ${him},`, type: "cash", @@ -3046,13 +3051,14 @@ window.GetVignette = function GetVignette(slave) { }); } } - if (slave.amp === 1) { + if (isAmputee(slave)) { vignettes.push({ text: `${he} disappointed a citizen who thought they would enjoy fucking a quadruple amputee, but found it revolting,`, type: "rep", effect: -1, }); - } else if (slave.amp === -1) { + } + if (getLimbCount(slave, 2) > 0) { vignettes.push({ text: `a strange citizen was excited by the sight of ${his} prosthetic limbs,`, type: "rep", @@ -3068,7 +3074,8 @@ window.GetVignette = function GetVignette(slave) { type: "rep", effect: -1, }); - } else if (slave.amp === -2) { + } + if (getLimbCount(slave, 3) > 0) { vignettes.push({ text: `a citizen was excited by ${his} vibrating fingertips,`, type: "rep", @@ -3084,7 +3091,8 @@ window.GetVignette = function GetVignette(slave) { type: "rep", effect: -1, }); - } else if (slave.amp === -3) { + } + if (getLimbCount(slave, 4) > 0) { vignettes.push({ text: `a strange citizen was excited by the sight of ${his} artificial limbs,`, type: "rep", @@ -3100,7 +3108,8 @@ window.GetVignette = function GetVignette(slave) { type: "rep", effect: -1, }); - } else if (slave.amp === -4) { + } + if (getLimbCount(slave, 5) > 0) { vignettes.push({ text: `a citizen was excited by the thought of having sex with a slave with p-limbs, but was scared off by ${his} combat p-limbs,`, type: "rep", @@ -3116,7 +3125,8 @@ window.GetVignette = function GetVignette(slave) { type: "rep", effect: -1, }); - } else if (slave.amp === -5) { + } + if (getLimbCount(slave, 6) > 0) { vignettes.push({ text: `a citizen was fascinated by ${his} cybernetic limbs, and spent almost as much time examining them as they did having sex with ${him},`, type: "rep", @@ -3857,7 +3867,7 @@ window.GetVignette = function GetVignette(slave) { effect: 1, }); } - if (slave.amp === 1) { + if (isAmputee(slave)) { vignettes.push({ text: `${he} was soaped up, tied to a pole, and used as a very inefficient mop. While being used to clean outside, ${he} certainly drew some stares,`, type: "rep", @@ -4094,7 +4104,7 @@ window.GetVignette = function GetVignette(slave) { type: "trust", effect: -1 }); - if ((V.canines.length > 0) && (slave.amp === 0)) { + if ((V.canines.length > 0) && hasAnyNaturalLegs(slave)) { vignettes.push({ text: `an over-excited dog left scratch marks on ${his} legs,`, type: "health", diff --git a/src/js/walkPastJS.js b/src/js/walkPastJS.js index 5d8a0051cd479f617aec1c7e4ec38ec437b8cf13..4a1dbad295f0fb02ccc5901159b74f8b37f5c788 100644 --- a/src/js/walkPastJS.js +++ b/src/js/walkPastJS.js @@ -122,14 +122,14 @@ window.loverSlave = function(activeSlave) { t += `having loud sex ${_fuckSpot}. ${name} is such a sexual addict that ${he} wants it all the time, and ${partnerName} does ${his2} best to help ${his2} ${activeSlaveRel} get off. `; if (canPenetrate(activeSlave) && _fuckSeed > 50) { if (canDoVaginal(_partnerSlave)) { - if (_partnerSlave.vagina === 0 && _partnerSlave.amp !== 1) { + if (_partnerSlave.vagina === 0 && hasBothLegs(_partnerSlave)) { t += `${name} has ${his} cock between ${partnerName}'s legs and is enjoying an enthusiastic thigh job.`; } else if (_partnerSlave.vagina === 0) { t += `${name} has ${his} cock between ${partnerName}'s labia and is enthusiastically teasing ${his} virgin lover.`; - } else if (_fuckSeed > 90 && _partnerSlave.amp !== 1) { + } else if (_fuckSeed > 90 && hasAllLimbs(_partnerSlave)) { t += `${name} has ${partnerName} on ${his2} knees and is enthusiastically fucking ${his2} pussy doggy style.`; - } else if (_fuckSeed > 80 && activeSlave.amp !== 1) { - t += `${name} has ${partnerName} pushed against the wall is is fucking ${his2} pussy from behind.`; + } else if (_fuckSeed > 80 && hasBothLegs(activeSlave)) { + t += `${name} has ${partnerName} pushed against the wall and is fucking ${his2} pussy from behind.`; } else if (_fuckSeed > 70) { t += `${partnerName} has ${name} on ${his2} back and is enthusiastically bouncing on ${his2} dick.`; } else if (_fuckSeed > 60) { @@ -140,10 +140,10 @@ window.loverSlave = function(activeSlave) { } else if (canDoAnal(_partnerSlave)) { if (_partnerSlave.anus === 0) { t += `${name} has ${his} cock sandwiched between ${partnerName}'s buttcheeks and is enthusiastically hotdogging ${his2} rear.`; - } else if (_fuckSeed > 90 && _partnerSlave.amp !== 1) { + } else if (_fuckSeed > 90 && hasAllLimbs(_partnerSlave)) { t += `${name} has ${partnerName} on ${his2} knees and is enthusiastically fucking ${his2} ass doggy style.`; - } else if (_fuckSeed > 80 && activeSlave.amp !== 1) { - t += `${name} has ${partnerName} pushed against the wall is is fucking ${his2} ass from behind.`; + } else if (_fuckSeed > 80 && hasBothLegs(activeSlave)) { + t += `${name} has ${partnerName} pushed against the wall and is fucking ${his2} ass from behind.`; } else if (_fuckSeed > 70) { t += `${partnerName} has ${name} on ${his} back and is enthusiastically bouncing on ${his} dick.`; } else if (_fuckSeed > 60) { diff --git a/src/npc/acquisition.tw b/src/npc/acquisition.tw index ff77c90cadffd1cf2a6d3860b1cf161eae72ea95..9bc7d522606d1b49932b77cf05bb23a21f54fc10 100644 --- a/src/npc/acquisition.tw +++ b/src/npc/acquisition.tw @@ -2,7 +2,7 @@ <<unset $slaveWithoutBonuses, $startingGirlCopied, $startingGirlRelation>> -<<set $fixedNationality = 0, $encyclopedia = " ">> +<<set $fixedNationality = 0, $showEncyclopedia = 0>> <<if $saveImported == 1>><<set _valueOwed = 5000>><<else>><<set _valueOwed = 50000>><</if>> <<if $freshPC == 1 || $saveImported == 0>> @@ -751,4 +751,4 @@ The previous owner seems to have left in something of a hurry. <</if>> <<script>>Save.autosave.save("Week Start Autosave")<</script>> <<goto "Main">> -<</link>> +<</link>> \ No newline at end of file diff --git a/src/npc/descriptions/boobs/boobs.js b/src/npc/descriptions/boobs/boobs.js index b3f7eeadbaa29bc741b0473586a20e1cbf11dd8e..7f0519fa4f69ba4b3c52cf9d592dee0db5fc3ea2 100644 --- a/src/npc/descriptions/boobs/boobs.js +++ b/src/npc/descriptions/boobs/boobs.js @@ -489,7 +489,14 @@ App.Desc.boobs = function() { } break; case "a chattel habit": - r += `${slave.slaveName}'s chattel habit's scapular covers ${his} shoulders and arms, but is open in front, leaving ${his} `; + r += `${slave.slaveName}'s chattel habit's scapular covers ${his} shoulders`; + if (hasAnyArms(slave)) { + r += ` and arm`; + if (hasBothArms(slave)) { + r += `s`; + } + } + r += `, but is open in front, leaving ${his} `; if (slave.boobs > 4000) { r += `${noun} completely bare. It tucks into a golden belt, though this is buried under ${his} breasts.`; } else if (slave.boobs > 300) { @@ -1292,7 +1299,7 @@ App.Desc.boobs = function() { } function walkingAbility(slave) { - if (slave.amp === 1) { + if (!hasAnyLegs(slave)) { return `${he} might not be able to walk, if ${he} still had legs.`; } else if (slave.muscles >= 5) { return `${his} ${musclesTone(slave)} back muscles get a workout just from supporting them. If they grow any larger, ${he} may not be able to walk.`; @@ -1348,7 +1355,7 @@ App.Desc.boobs = function() { if (V.showBoobCCs) { r += `, ${num(slave.boobs)} CCs each,`; } - if (slave.amp === 1) { + if (isAmputee(slave)) { r += ` are so immense it is safer to leave ${him} resting atop them. ${His} udders each weigh more than twice the rest of ${his} body, since ${his} body consists of nothing but ${his} head, torso, and breasts.`; } else { r += ` are so gargantuan that they effectively immobilize ${him}. ${He}'s most comfortable lying down.`; @@ -1385,17 +1392,37 @@ App.Desc.boobsExtra = function(slave, pronouns) { * @returns {string} */ function walkingRestrictions(dairyTest) { + let r = ''; if (slave.muscles > 95) { - return `However, ${he} is so powerfully built that ${he} can manage it with effort, using ${his} arms to support them.`; + r += `However, ${he} is so powerfully built that ${he} can manage it with effort, using ${his} `; + if (hasBothArms(slave)) { + r += `arms`; + } else if (hasAnyArms(slave)) { + r += `arm`; + } else { + r += `powerful back muscles`; + } + r += ` to support them.`; } else if (slave.muscles > 30) { - return `${He} can barely manage to get to ${his} feet unaided, and usually walks with ${his} arms crossed under ${his} tits to help take their weight.`; + r += `${He} can barely manage to get to ${his} feet unaided, and usually walks `; + if (hasAnyArms(slave)) { + if (hasBothArms(slave)) { + r += `with ${his} arms crossed under ${his} tits`; + } else { + r += `with ${his} arm placed under ${his} tits`; + } + r += ` to help take their weight.`; + } else { + r += `greatly hunched over to help take the weight of ${his} tits.`; + } } else if (slave.muscles > 5) { - return `${He} requires assistance to get to ${his} feet, and uses a stand to support them when ${he} must remain upright for more than a short time.`; + r += `${He} requires assistance to get to ${his} feet, and uses a stand to support them when ${he} must remain upright for more than a short time.`; } else if ((slave.assignment === App.Data.Facilities.dairy.jobs.cow.assignment) && (V.dairyRestraintsSetting > 1) && (dairyTest(slave))) { - return `The straps that secure ${him} to the milking machine have become less necessary since ${his} breasts grew to the point where they pin ${him} to it.`; + r += `The straps that secure ${him} to the milking machine have become less necessary since ${his} breasts grew to the point where they pin ${him} to it.`; } else { - return `${He} cannot get to ${his} feet unaided, and uses a wheeled stand to support ${his} boobs when ${he} must walk or remain upright.`; + r += `${He} cannot get to ${his} feet unaided, and uses a wheeled stand to support ${his} boobs when ${he} must walk or remain upright.`; } + return r; } /** @@ -1479,18 +1506,6 @@ App.Desc.boobsExtra = function(slave, pronouns) { return r.join(' '); }; -/** - * @param {App.Entity.SlaveState} slave - * @returns {string} - */ -App.Desc.boobsBrand = function(slave) { - if (State.variables.showBodyMods === 1) { - if (slave.fuckdoll === 0) { - return(App.Desc.mods(slave, "chest") + App.Desc.mods(slave, "breast")); - } - } -}; - /** * @param {App.Entity.SlaveState} slave * @param {App.Utils.Pronouns} pronouns @@ -1552,13 +1567,18 @@ App.Desc.nipples = function(slave, pronouns) { r += `in proportion with ${his} breasts: they're stiffly erect and `; if ((slave.dick > 0) && (slave.dick < 3)) { r += `bigger than ${his} girlcock.`; - } else if ((slave.height < 160) && (slave.amp !== 1)) { - r += `almost as large as ${his} little fists.`; + } else if ((slave.height < 160) && hasAnyArms(slave)) { + r += `almost as large as ${his} little `; + if (hasBothArms(slave)) { + r += `fists.`; + } else { + r += `fist.`; + } } else { - r += 'large enough to be jerked off.'; + r += `large enough to be jerked off.`; } } else { - r += 'enormously erect.'; + r += `enormously erect.`; } break; case "fuckable": @@ -1594,13 +1614,24 @@ App.Desc.nipples = function(slave, pronouns) { r += `in proportion with ${his} breasts: they've grown `; if ((slave.dick > 0) && (slave.dick < 3)) { r += `bigger than ${his} little girlcock.`; - } else if ((slave.height < 160) && (slave.amp !== 1)) { - r += `almost as large as ${his} little fists.`; + } else if ((slave.height < 160) && hasAnyArms(slave)) { + r += `almost as large as ${his} little `; + if (hasBothArms(slave)) { + r += `fists.`; + } else { + r += `fist.`; + } } else { r += `large enough to be jerked off.`; } + } else if (hasAnyArms(slave)) { + r += `the size of the last joint of ${his} thumb`; + if (hasBothArms(slave)) { + r += `s`; + } + r += ` when erect.`; } else { - r += `the size of the last joint of ${his} thumbs when erect.`; + r += `of significant size.`; } break; case "fuckable": @@ -1715,9 +1746,9 @@ App.Desc.areola = function(slave, pronouns) { r.push(`${His} motherly boobs point downward, though, leaving only the top of each ${slave.areolaeShape} visible.`); } } - } else { + } /*else { r.push(this.areolaePiercing(slave, pronouns)); - } + }*/ } if ((V.showClothing === 1) && (V.saleDescription === 0)) { if (slave.areolae > 1) { diff --git a/src/npc/descriptions/fAnus.tw b/src/npc/descriptions/fAnus.tw index 55b80c64e199573f49edcd463bae29d5ac13d782..7359c0ae7151714782741c7b8ee0c074ad29e42f 100644 --- a/src/npc/descriptions/fAnus.tw +++ b/src/npc/descriptions/fAnus.tw @@ -35,7 +35,7 @@ You call $him over so you can <<if !["flats", "flats with long stockings", "flats with short stockings", "none"].includes($activeSlave.shoes)>> As $he went past your desk, $his high heels and surgically altered legs enforced a gait that presented $his butt enticingly. <<else>> - As $he crawls along on all fours, $his anus is readily available. + As $he crawls along on <<if hasAllLimbs($activeSlave)>>all fours<<else>>the ground<</if>>, $his anus is readily available. <</if>> <</if>> @@ -62,12 +62,17 @@ You call $him over so you can $He is clearly unhappy at the idea of taking a dick up $his butt. $He obeys orders anyway, and lies there wincing and moaning as you<<if ($PC.dick == 0)>> don a strap-on and<</if>> fuck $his ass. You gently ease into $his butthole and slowly accelerate your thrusting into $his ass. However $he still squeals in pain as you continue pounding. @@.lime;$His tight little ass has been broken in,@@ and $he @@.gold;fears further anal pain.@@ <<set $activeSlave.trust -= 5>> <<else>> - $He is appalled at the idea of taking it up the ass<<if ($PC.dick == 0)>> and cries with fear as you don a strap-on<</if>>. $He does anyway though, sobbing into the cushions<<if $activeSlave.amp != 1>> while you hold $his arms behind $him<</if>>. You force yourself into $his butthole and continue thrusting your member into $his ass. $He sobs and cries with disgust while you pump into $his rear. The painful anal rape @@.mediumorchid;decreases $his devotion to you.@@ @@.lime;$His tight little ass has been broken in,@@ and $he is @@.gold;terrified of further anal pain.@@ + $He is appalled at the idea of taking it up the ass<<if ($PC.dick == 0)>> and cries with fear as you don a strap-on<</if>>. $He does anyway though, sobbing into the cushions<<if hasAnyArms($activeSlave)>> while you hold $his arm<<if hasBothArms($activeSlave)>>s<</if>> behind $him<</if>>. You force yourself into $his butthole and continue thrusting your member into $his ass. $He sobs and cries with disgust while you pump into $his rear. The painful anal rape @@.mediumorchid;decreases $his devotion to you.@@ @@.lime;$His tight little ass has been broken in,@@ and $he is @@.gold;terrified of further anal pain.@@ <<set $activeSlave.devotion -= 10, $activeSlave.trust -= 10>> <</if>> <<set $activeSlave.anus++>> <<elseif $activeSlave.fetish == "mindbroken">> - <<if ($activeSlave.amp != 1)>>You instruct $him to present $his anus. $He dully kneels and spreads $his buttocks<<if ($PC.dick == 0)>>as you don a strap-on<</if>>. You spit on $his hole and ram <<if ($PC.dick == 0)>>it<<else>>your cock<</if>> up $his butt.<<else>>Talking to a broken mind is pointless, so you simply set $him on the couch, spread $his buttocks with one hand, spit on $his hole, and ram <<if ($PC.dick == 0)>>it<<else>>your cock<</if>> up $his <<if $seeRace == 1>>$activeSlave.race <</if>>butt.<</if>> $His butthole spasms as you assrape $him, <<if ($PC.dick == 0)>>an amusing sight<<else>>squeezing your dick nicely<</if>>. + <<if hasAnyArms($activeSlave)>> + You instruct $him to present $his anus. $He dully <<if hasBothLegs($activeSlave)>>kneels<<else>>bends over<</if>> and spreads $his buttocks<<if ($PC.dick == 0)>>as you don a strap-on<</if>>. You spit on $his hole and ram <<if ($PC.dick == 0)>>it<<else>>your cock<</if>> up $his butt. + <<else>> + Talking to a broken mind is pointless, so you simply set $him on the couch, spread $his buttocks with one hand, spit on $his hole, and ram <<if ($PC.dick == 0)>>it<<else>>your cock<</if>> up $his <<if $seeRace == 1>>$activeSlave.race <</if>>butt. + <</if>> + $His butthole spasms as you assrape $him, <<if ($PC.dick == 0)>>an amusing sight<<else>>squeezing your dick nicely<</if>>. <<if ($activeSlave.dick != 0) && canAchieveErection($activeSlave)>> <<if $activeSlave.chastityPenis == 1>> Automatic responses give $him an erection, which $his chastity makes so uncomfortable that $he spasms. This cycle continues repeatedly, $his rectum squeezing unconsciously each time. @@ -82,7 +87,12 @@ You call $him over so you can $His cock is totally flaccid throughout. <</if>> <<elseif $activeSlave.devotion < -20>> - <<if ($activeSlave.amp != 1)>>You instruct $him to present $his anus<<if ($PC.dick == 0)>> as you don a strap-on<</if>>. Horrified, $he tries to back away, but you catch $him and throw $him on the couch next to your desk. $He tries to shield $his asshole, but you pin $his hands behind $him with one hand, spit on $his hole, and ram your <<if ($PC.dick == 0)>>fake dick<<else>>cock<</if>> up $his butt with the other hand.<<else>>You tell $him it's time for an assfuck. $He's horrified, but as an amputee can do nothing about it. You spit on $his hole and ram your <<if ($PC.dick == 0)>>fake dick<<else>>cock<</if>> up $his <<if $seeRace == 1>>$activeSlave.race <</if>>butt.<</if>> $His butthole spasms as you assrape $him, <<if ($PC.dick == 0)>>an amusing sight<<else>>squeezing your dick nicely<</if>>. + <<if !isAmputee($activeSlave)>> + You instruct $him to present $his anus<<if ($PC.dick == 0)>> as you don a strap-on<</if>>. Horrified, $he tries to back away, but you catch $him and throw $him on the couch next to your desk. $He tries to <<if hasAnyArms($activeSlave)>>shield $his asshole<<else>>back away<</if>>, but you pin <<if hasAnyArms($activeSlave)>>$his hand<<if hasBothArms($activeSlave)>>s<</if>> behind $him with one hand<<else>>$him down<</if>>, spit on $his hole, and ram your <<if ($PC.dick == 0)>>fake dick<<else>>cock<</if>> up $his butt with the other hand. + <<else>> + You tell $him it's time for an assfuck. $He's horrified, but as an amputee can do nothing about it. You spit on $his hole and ram your <<if ($PC.dick == 0)>>fake dick<<else>>cock<</if>> up $his <<if $seeRace == 1>>$activeSlave.race <</if>>butt. + <</if>> + $His butthole spasms as you assrape $him, <<if ($PC.dick == 0)>>an amusing sight<<else>>squeezing your dick nicely<</if>>. <<if ($activeSlave.dick != 0) && canAchieveErection($activeSlave)>> <<if $activeSlave.prostate == 0>> $He lacks a prostate, denying $him any real pleasure from this. $His dick stays flaccid as you rape $him. @@ -97,9 +107,19 @@ You call $him over so you can $His flaccid dick is ground into the back of the couch as you rape $him. <</if>> <<elseif ($activeSlave.devotion <= 20) && ($activeSlave.vagina < 0)>> - <<if ($activeSlave.amp != 1)>>You instruct $him to present $his anus<<if ($PC.dick == 0)>> as you don a strap-on<</if>>. $He knows a sissy slave takes it up the butt, and lies on the couch next to your desk with $his legs in the air, spreading $his buttocks with $his hands.<<else>>You tell $him it's time for an assfuck. $He's hesitant, but as an amputee can do nothing about it.<</if>> You take your time and fuck $his <<if $seeRace == 1>>$activeSlave.race <</if>>butthole for a good long while<<if ($activeSlave.chastityPenis != 1)>><<if ($activeSlave.dick != 0)>> so $his limp dick flops around<<elseif ($activeSlave.balls != 0)>> as $his erect dick waves in the air<</if>><</if>>. This gives you enough time to stroke $him until $he gets aroused despite $his discomfort with anal. $He doesn't orgasm, but $he's getting accustomed to $his asshole as a sexual organ. + <<if !isAmputee(slave)>> + You instruct $him to present $his anus<<if ($PC.dick == 0)>> as you don a strap-on<</if>>. $He knows a sissy slave takes it up the butt, and lies on the couch next to your desk with $his <<if !hasAnyLegs($activeSlave)>>hips<<else>>leg<<if hasBothLegs($activeSlave)>>s<</if>><</if>> in the air, spreading $his buttocks <<if !hasAnyArms($activeSlave)>>as best $he can<<else>>with $his hand<<if hasBothArms($activeSlave)>>s<</if>><</if>>. + <<else>> + You tell $him it's time for an assfuck. $He's hesitant, but as an amputee can do nothing about it. + <</if>> + You take your time and fuck $his <<if $seeRace == 1>>$activeSlave.race <</if>>butthole for a good long while<<if ($activeSlave.chastityPenis != 1)>><<if ($activeSlave.dick != 0)>> so $his limp dick flops around<<elseif ($activeSlave.balls != 0)>> as $his erect dick waves in the air<</if>><</if>>. This gives you enough time to stroke $him until $he gets aroused despite $his discomfort with anal. $He doesn't orgasm, but $he's getting accustomed to $his asshole as a sexual organ. <<elseif $activeSlave.devotion < 10>> - <<if ($activeSlave.amp != 1)>>You instruct $him to present $his <<if $seeRace == 1>>$activeSlave.race <</if>>anus<<if ($PC.dick == 0)>> as you don a strap-on<</if>>. $He hesitates but eventually lies on the couch next to your desk with $his legs in the air, spreading $his buttocks with $his hands.<<else>>You tell $him it's time for an assfuck. $He's hesitant, but as an amputee can do nothing about it.<</if>> You take your time and fuck $his butthole for a good long while. + <<if !isAmputee($activeSlave)>> + You instruct $him to present $his <<if $seeRace == 1>>$activeSlave.race <</if>>anus<<if ($PC.dick == 0)>> as you don a strap-on<</if>>. $He hesitates but eventually lies on the couch next to your desk with $his <<if !hasAnyLegs($activeSlave)>>hips<<else>>leg<<if hasBothLegs($activeSlave)>>s<</if>><</if>> in the air, spreading $his buttocks <<if !hasAnyArms($activeSlave)>>as best $he can<<else>>with $his hand<<if hasBothArms($activeSlave)>>s<</if>><</if>>. + <<else>> + You tell $him it's time for an assfuck. $He's hesitant, but as an amputee can do nothing about it. + <</if>> + You take your time and fuck $his butthole for a good long while. <<if ($activeSlave.anus == 1)>> $His ass is so tight that $he winces with anal pain <<elseif ($activeSlave.anus == 2)>> @@ -118,13 +138,13 @@ You call $him over so you can <</if>> $He gets aroused despite $his discomfort with anal, though $he doesn't orgasm. <<else>> - <<if ($activeSlave.amp != 1)>>$He kneels on the couch<<else>>You lay $him on the couch<</if>> with $his <<if $seeRace == 1>>$activeSlave.race <</if>>butt facing you, back strongly arched to angle $his rectum for more comfortable anal coupling. - <<if $activeSlave.amp != 1 && $activeSlave.prostate > 1 && $activeSlave.dick > 3>> + <<if hasAnyLegs($activeSlave)>>$He kneels on the couch<<else>>You lay $him on the couch<</if>> with $his <<if $seeRace == 1>>$activeSlave.race <</if>>butt facing you, back strongly arched to angle $his rectum for more comfortable anal coupling. + <<if hasAnyArms($activeSlave) && $activeSlave.prostate > 1 && $activeSlave.dick > 3>> <<if $PC.dick == 0>>While you don a strap-on, $he<<else>>$He<</if>> shoves $his slavering dick down and around towards $his ass and squeezes it, pushing a lot of $his precum out to lube $his own asshole. <<else>> <<if $PC.dick == 0>>You don a strap-on and let some saliva fall onto its head<<else>>You let some saliva fall onto your dickhead<</if>> before penetrating $him. <</if>> - You take your time and fuck $his butthole for a good long while. <<if ($activeSlave.anus == 1)>>$His ass is so tight that $he has to concentrate on relaxing for you.<<elseif ($activeSlave.anus == 2)>>$His experienced ass feels great.<<else>>$His asspussy is so loose you can pound it as hard as you like.<</if>> $He rubs $his <<if ($activeSlave.amp == 1)>>body against you as much as $he can manage<<elseif canAchieveErection($activeSlave)>>hard-on<<elseif ($activeSlave.dick != 0)>>soft dick<<elseif ($activeSlave.chastityVagina) || ($activeSlave.clit == 0)>>nipples<<elseif ($activeSlave.clit > 2)>>huge, stiff clit<<else>>clit<</if>>, and brings $himself to orgasm before you. <<if ($PC.dick == 0)>>The sight of $him gasping and shaking $his way through an anal orgasm brings you to climax yourself, and you shove yourself against the strap-on harness with enough force to give the slave's sensitized hole a final brutal stretching.<<else>>$His orgasmic rectal spasms squeeze your cock and you blow your load inside $his ass.<</if>> + You take your time and fuck $his butthole for a good long while. <<if ($activeSlave.anus == 1)>>$His ass is so tight that $he has to concentrate on relaxing for you.<<elseif ($activeSlave.anus == 2)>>$His experienced ass feels great.<<else>>$His asspussy is so loose you can pound it as hard as you like.<</if>> $He rubs $his <<if !hasAnyArms($activeSlave)>>body against you as much as $he can manage<<elseif canAchieveErection($activeSlave)>>hard-on<<elseif ($activeSlave.dick != 0)>>soft dick<<elseif ($activeSlave.chastityVagina) || ($activeSlave.clit == 0)>>nipples<<elseif ($activeSlave.clit > 2)>>huge, stiff clit<<else>>clit<</if>>, and brings $himself to orgasm before you. <<if ($PC.dick == 0)>>The sight of $him gasping and shaking $his way through an anal orgasm brings you to climax yourself, and you shove yourself against the strap-on harness with enough force to give the slave's sensitized hole a final brutal stretching.<<else>>$His orgasmic rectal spasms squeeze your cock and you blow your load inside $his ass.<</if>> <</if>> <<if ($activeSlave.bellyPreg >= 1500)>> diff --git a/src/npc/descriptions/fAssistedSex.tw b/src/npc/descriptions/fAssistedSex.tw index bbb578864705564d27736f9dee2151ba12adb8d6..6dbe615f0d79c336a02c4997b5bc2591d38388f5 100644 --- a/src/npc/descriptions/fAssistedSex.tw +++ b/src/npc/descriptions/fAssistedSex.tw @@ -6,29 +6,37 @@ You order $his servants forward so that $he can tease you with $his enormously swollen body. <<if $activeSlave.devotion > 95>> Smirking, $he leans backwards, - <<if $activeSlave.amp < 1>> + <<if hasBothArms($activeSlave)>> raising $his hands above $his head + <<elseif hasAnyArms($activeSlave)>> + raising $his hand above $his head <<else>> with two slender arms rising upward behind $him, making it look like $he has limbs once more <</if>> as a gaggle of $his trained menials slide underneath $his belly, lifting the monolithic organ off the ground and setting the tightly packed orb to wobbling. <<elseif ($activeSlave.trust < -20) && ($activeSlave.devotion > -10)>> Smiling nervously, $he leans backwards, - <<if $activeSlave.amp < 1>> + <<if hasBothArms($activeSlave)>> raising $his hands above $his head + <<elseif hasAnyArms($activeSlave)>> + raising $his hand above $his head <<else>> with two slender arms rising upward behind $him, making it look like $he has limbs once more <</if>> as a gaggle of $his trained menials slide underneath $his belly, lifting the monolithic organ off the ground and setting the tightly packed orb to wobbling. <<else>> - <<if $activeSlave.amp < 1>> - $he covers $his eyes with $his hands, + <<if hasBothArms($activeSlave)>> + $He covers $his <<if canSee($activeSlave)>>eyes<<else>>face<</if>> with $his hands, + <<elseif hasAnyArms($activeSlave)>> + $He tries to cover $his <<if canSee($activeSlave)>>eyes<<else>>face<</if>> with $his hand, <<else>> Two slender arms snake around from behind $him, almost making it look like $he has limbs once more. They cover $his quivering <<if canSee($activeSlave)>>eyes<<else>>expression<</if>> <</if>> as a gaggle of $his trained menials slide underneath $his belly, lifting the monolithic organ off the ground and setting the tightly packed orb to wobbling. - <<if $activeSlave.amp < 1>> + <<if hasBothArms($activeSlave)>> Two more servants take hold of $his arms, forcing $him to lift them above $his head. + <<elseif hasAnyArms($activeSlave)>> + Another servant takes hold of $his arm, forcing $him to lift it above $his head. <<else>> The hands covering $his <<if canSee($activeSlave)>>eyes<<else>>head<</if>> draw away, revealing $his crying face, then lift above $his head in a deliberately provocative pose. <</if>> diff --git a/src/npc/descriptions/fBellyFuck.tw b/src/npc/descriptions/fBellyFuck.tw index fd4c04afbcbb6f775d1a148af23a03a71ebe53e9..fa95e1a0564f186e7d9f091d25fd01706d7b64d5 100644 --- a/src/npc/descriptions/fBellyFuck.tw +++ b/src/npc/descriptions/fBellyFuck.tw @@ -16,7 +16,7 @@ You have $him brought to you so that you can fuck $his hyperpregnant body. massive belly, <</if>> and won't be a particularly able lover because of this, but enjoying $his immobility is half the point. -<<elseif $activeSlave.amp == 1>> +<<elseif !hasAnyLegs($activeSlave)>> $He has no limbs to stand on, so $he is left resting atop $his <<if $activeSlave.bellyPreg >= 1000000>> impossibly exploded baby bump. @@ -64,7 +64,7 @@ Once $he is situated in the center of your office, you walk a circle around $him trace a hand over the obliterated, stretched out expanse of slightly darker flesh where $his belly button used to be. <</if>> <<if $activeSlave.devotion > 95>> - $He purrs in response to your touch, leaning forward against $his belly and <<if $activeSlave.amp == 1>>wiggles<<else>>lifts $his toes off the ground as $he spreads $his legs<</if>> in preparation for you. + $He purrs in response to your touch, leaning forward against $his belly and <<if !hasAnyLegs($activeSlave)>>wiggles<<else>>lifts $his toes off the ground as $he <<if hasBothLegs($activeSlave)>>spreads $his legs<<else>>moves $his leg<</if>><</if>> in preparation for you. <<elseif ($activeSlave.trust < -20) && ($activeSlave.devotion > -10)>> $He groans at your touch. <<else>> diff --git a/src/npc/descriptions/fBoobs.tw b/src/npc/descriptions/fBoobs.tw index 86856b6f224153c92b05b39ec4926c16e252b6f9..bb56f45a614fa25fc6b9026221e1afc2710ea703 100644 --- a/src/npc/descriptions/fBoobs.tw +++ b/src/npc/descriptions/fBoobs.tw @@ -48,7 +48,7 @@ tits. <</if>> <</if>> -<<if ($activeSlave.nipplesPiercing > 1) && ($activeSlave.amp == 1)>> +<<if ($activeSlave.nipplesPiercing > 1) && !hasAnyLegs($activeSlave)>> You carry $him over, playing with the chain between $his nipples. <<elseif ($activeSlave.nipplesPiercing > 1)>> You pull $him over by the chain between $his nipples. @@ -94,7 +94,7 @@ tits. $His flat chest is completely covered by your pregnancy. Reach under yourself, you feel around until you find $his nipples. You tease $his flat chest until you're at you limit, thoroughly soaking $him, before dismounting and returning to your desk. <</if>> <</if>> -<<elseif ($activeSlave.amp == 1)>> +<<elseif isAmputee($activeSlave)>> <<if $PC.dick == 1>> $His limbless <<if $seeRace == 1>>$activeSlave.race <</if>>torso makes $him a unique appliance for mammary intercourse. You lay $him down on the ground on $his back, lube $his cleavage, and straddle $his torso. With your cock between $his breasts, you <<if ($activeSlave.boobs >= 650)>>squash $his tits together to form a nice lubricated channel,<<else>>hold your cock in place,<</if>> and ride back and forth on $him.<<if $PC.vagina == 1>> Your pussylips rub deliciously across $his sternum.<</if>> $He has some trouble breathing under the assault, but $he manages. And for the finale, $he's totally unable to avoid a perfect cumshot. <<elseif $PC.boobs != 0>> @@ -128,7 +128,7 @@ tits. You set $his nearly helpless body on the floor and then scoot your hips under the massive weight of $his tits. The heft feels nice against you, and you worm a naughty hand under there to play with yourself in the warm cave formed by your pelvis and $his udders. <</if>> <<elseif ($activeSlave.fetish == "boobs") && ($activeSlave.fetishStrength > 60) && ($activeSlave.fetishKnown == 1) && ($PC.dick == 1)>> - $He comes over hurriedly, already presenting $his breasts. $He gives you a titjob with $his lubricated cleavage while you sit at your desk, playing with $his own nipples and moaning with pleasure.<<if $PC.vagina == 1>> $He does $his best to push $his sternum hard against you, giving your pussy some stimulation, too.<</if>> As you get close to orgasm, you push $his hands away and take over, + $He comes over hurriedly, already presenting $his breasts. $He gives you a titjob with $his lubricated cleavage while you sit at your desk, playing with $his own nipples and moaning with pleasure.<<if $PC.vagina == 1>> $He does $his best to push $his sternum hard against you, giving your pussy some stimulation, too.<</if>> As you get close to orgasm, you push $his hand<<if hasBothArms($activeSlave)>>s<</if>> away and take over, <<if $activeSlave.nipples == "fuckable">> running your fingers around the lip of $his $activeSlave.nipples nipples. When you finish, you drive them in, hard, <<else>> @@ -169,12 +169,12 @@ tits. desk, and you've straddled $his face before $he can do anything more. You begin to grope $his breasts and pinch $his nipples to hardness as $he eats you out, your ministrations producing moans that feel quite nice against your clit. You maul $his boobs without mercy as you reach your climax, leaving $him to massage $his breasts gingerly as you get off $him. <</if>> <<elseif ($activeSlave.lactation > 0)>> - Since $he's producing milk, $he gets an emotional high from breastfeeding, and $he sits on the edge of your desk for a while so you can use $him as a beverage dispenser while you work. Once $he's empty, $he gets down to <<if ($PC.dick == 0)>>eat you out. As $he buries $his face between your legs, $he gently rolls $his sore nipples around in $his fingers, quietly moaning and whining.<<else>>give you a titjob. As you titfuck $him, $he gently rolls $his sore nipples around in $his fingers, quietly moaning and whining. Your cum covers $his <<if $seeRace == 1>>$activeSlave.race <</if>>face in no time, and $he's left with a spectacular mess to clean. $He laps it all up.<</if>> + Since $he's producing milk, $he gets an emotional high from breastfeeding, and $he sits on the edge of your desk for a while so you can use $him as a beverage dispenser while you work. Once $he's empty, $he gets down to <<if ($PC.dick == 0)>>eat you out.<<if hasAnyArms($activeSlave)>> As $he buries $his face between your legs, $he gently rolls $his sore nipples around in $his fingers, quietly moaning and whining.<</if>><<else>>give you a titjob.<<if hasAnyArms($activeSlave)>> As you titfuck $him, $he gently rolls $his sore nipples around in $his fingers, quietly moaning and whining.<</if>> Your cum covers $his <<if $seeRace == 1>>$activeSlave.race <</if>>face in no time, and $he's left with a spectacular mess to clean. $He laps it all up.<</if>> <<else>> <<if $PC.dick == 1>> $He massages and toys with $his chest for your benefit, languidly rubbing lubricant over not only $his cleavage but $his entire chest, making sure every <<if $showInches == 2>>inch<<else>>centimeter<</if>> of $his $activeSlave.skin breasts are nice and shiny. $He gives you a titjob with $his lubricated cleavage while you sit at your desk<<if $PC.vagina == 1>>, doing $his best to run $his hard nipples between your pussylips whenever $he can<</if>>. Your cum covers $his <<if $seeRace == 1>>$activeSlave.race <</if>>face, and $he carefully licks it all off while continuing to play with $his erect nipples. <<elseif $PC.boobs != 0>> - $He rubs lube over $his $activeSlave.skin breasts, flirting with you and sticking out $his chest, before lying down on the couch. You lie down atop $him with your breasts meshing with $hers and begin to slide up and down, titillating your nipples wonderfully. You find $his mouth quite willing to receive your insistent tongue, and while you make out, $he slips a hand down between your legs to give you a handjob, too. + $He rubs lube over $his $activeSlave.skin breasts, flirting with you and sticking out $his chest, before lying down on the couch. You lie down atop $him with your breasts meshing with $hers and begin to slide up and down, titillating your nipples wonderfully. You find $his mouth quite willing to receive your insistent tongue<<if hasAnyArms($activeSlave)>>, and while you make out, $he slips <<if hasBothArms($activeSlave)>>a<<else>>$his<</if>> hand down between your legs to give you a handjob, too<</if>>. <<else>> $He flirts with you and sticks out $his chest before lying down on the couch. You've straddled $his face before $he can do anything more, and $he begins to eat you out with enthusiasm. You begin to grope $his breasts and pinch $his nipples to hardness as $he gives you oral, your ministrations producing moans that feel quite nice against your clit. You maul $his boobs without mercy as you reach your climax, but $he loves it all. <</if>> @@ -199,7 +199,7 @@ tits. <<= induceLactation($activeSlave)>> <</if>> -<<if ($activeSlave.amp != 1)>> +<<if hasAnyLegs($activeSlave)>> <<switch $activeSlave.assignment>> <<case "work in the dairy">> $He goes off to carefully wash $his <<if $activeSlave.boobs > 1500>>acre of cleavage<<elseif $activeSlave.boobs > 500>>generous cleavage<<else>>chest<</if>> to keep production in $dairyName nice and sanitary. diff --git a/src/npc/descriptions/fButt.tw b/src/npc/descriptions/fButt.tw index 47d81b0fea8e0fa54003756fa1a0c894b92f6958..a11c1f158c2f371e538b37021408ffb41fb3bcb5 100644 --- a/src/npc/descriptions/fButt.tw +++ b/src/npc/descriptions/fButt.tw @@ -93,13 +93,13 @@ You call $him over so you can <<elseif ($activeSlave.devotion >= -20)>> $He is clearly unhappy at the idea of taking a dick up $his butt. $He obeys orders anyway, and lies there wincing and moaning as you<<if ($PC.dick == 0)>> don a strap-on and<</if>> fuck $his ass. @@.lime;$His tight little ass has been broken in,@@ and $he @@.gold;fears further anal pain.@@ <<else>> - $He is appalled at the idea of taking it up the ass<<if ($PC.dick == 0)>> and cries with fear as you don a strap-on<</if>>. $He does anyway though, sobbing into the cushions<<if $activeSlave.amp != 1>> while you hold $his arms behind $him<</if>>. You force yourself into $his butthole. $He sobs and cries with disgust while you continue thrusting into $his ass. The painful anal rape @@.mediumorchid;decreases $his devotion to you.@@ @@.lime;$His tight little ass has been broken in,@@ and $he is @@.gold;terrified of further anal pain.@@ + $He is appalled at the idea of taking it up the ass<<if ($PC.dick == 0)>> and cries with fear as you don a strap-on<</if>>. $He does anyway though, sobbing into the cushions<<if hasAnyArms($activeSlave)>> while you hold $his arm<<if hasBothArms($activeSlave)>>s<</if>> behind $him<</if>>. You force yourself into $his butthole. $He sobs and cries with disgust while you continue thrusting into $his ass. The painful anal rape @@.mediumorchid;decreases $his devotion to you.@@ @@.lime;$His tight little ass has been broken in,@@ and $he is @@.gold;terrified of further anal pain.@@ <<set $activeSlave.devotion -= 5>> <</if>> <<set $activeSlave.anus++>> <<= VCheck.Anal()>> <<elseif $activeSlave.devotion < -20>> - <<if ($PC.dick == 0)>>You don a cruelly large strap-on, and you do it so $he can <<if canSee($activeSlave)>>see<<elseif canHear($activeSlave)>>hear<<else>>notice<</if>> it. <</if>>$He tries to refuse you, so you throw $him across the back of the couch next to your desk with $his <<if $seeRace == 1>>$activeSlave.race <</if>>ass in the air. You finger $his anus <<if ($activeSlave.vagina != -1)>>while fucking $his pussy<<elseif ($activeSlave.amp != 1)>>while frotting $his thighs<</if>> for a bit and then switch to $his now-ready anus. $He sobs as you penetrate $his rectum. + <<if ($PC.dick == 0)>>You don a cruelly large strap-on, and you do it so $he can <<if canSee($activeSlave)>>see<<elseif canHear($activeSlave)>>hear<<else>>notice<</if>> it. <</if>>$He tries to refuse you, so you throw $him across the back of the couch next to your desk with $his <<if $seeRace == 1>>$activeSlave.race <</if>>ass in the air. You finger $his anus<<if ($activeSlave.vagina != -1)>> while fucking $his pussy<<elseif hasBothLegs($activeSlave)>> while frotting $his thighs<</if>> for a bit and then switch to $his now-ready anus. $He sobs as you penetrate $his rectum. <<if ($activeSlave.dick != 0) && canAchieveErection($activeSlave)>> <<if $activeSlave.prostate == 0>> $He lacks a prostate, denying $him any real pleasure. $His dick stays flaccid as you rape $him. @@ -127,7 +127,7 @@ You call $him over so you can <</if>> <<= VCheck.Both()>> <<else>> - <<if ($activeSlave.amp != 1)>>$He kneels on the floor<<else>>You lay $him on the floor<</if>> so you can take $him at will<<if ($PC.dick == 0)>>, and don a strap-on<</if>>. You finger $his <<if $seeRace == 1>>$activeSlave.race <</if>>ass while + <<if hasAnyLegs($activeSlave)>>$He kneels on the floor<<else>>You lay $him on the floor<</if>> so you can take $him at will<<if ($PC.dick == 0)>>, and don a strap-on<</if>>. You finger $his <<if $seeRace == 1>>$activeSlave.race <</if>>ass while <<if canDoVaginal($activeSlave)>> fucking $his pussy <<else>> diff --git a/src/npc/descriptions/fFuckdollWidgets.tw b/src/npc/descriptions/fFuckdollWidgets.tw index 79c857dafefacd780cd9310a1730db6341666b8b..4e667c48a8b9233f7c517b72942f6fb85d7339af 100644 --- a/src/npc/descriptions/fFuckdollWidgets.tw +++ b/src/npc/descriptions/fFuckdollWidgets.tw @@ -6,11 +6,11 @@ <<run clearSummaryCache($activeSlave)>> You decide to use the Fuckdoll's <<if $activeSlave.lips > 95>>facepussy<<else>>face hole<</if>>. <<if $activeSlave.fuckdoll <= 10>> - Since $he is not well adapted to life as a living sex toy yet, $he won't respond to position commands. So, you simply <<if $activeSlave.amp == 0>>shove $him into a kneeling position<<else>>set $him on the couch<</if>> and straddle $his face. + Since $he is not well adapted to life as a living sex toy yet, $he won't respond to position commands. So, you simply <<if hasBothLegs($activeSlave)>>shove $him into a kneeling position<<else>>set $him on the couch<</if>> and straddle $his face. <<elseif $activeSlave.fuckdoll <= 80>> - $He can follow intermediate commands, so you order $him into a position for use of $his face hole. $He obediently <<if $activeSlave.amp == 0>>gets to $his knees<<else>>cranes $his neck up<</if>> and sticks $his tongue out as far as it will go, wiggling it invitingly. You straddle $his face. + $He can follow intermediate commands, so you order $him into a position for use of $his face hole. $He obediently <<if hasBothLegs($activeSlave)>>gets to $his knees<<else>>cranes $his neck up<</if>> and sticks $his tongue out as far as it will go, wiggling it invitingly. You straddle $his face. <<else>> - $He can follow advanced commands, so you order $him into a position for use of $his face hole. $He instantly <<if $activeSlave.amp == 0>><<if $PC.dick == 1>>bends at the waist and turns $his head upward, placing $his throat horizontally and at waist height.<<else>>gets to $his knees and turns $his head upward at just the right angle for a pussy to ride $his face hole.<</if>><<else>>cranes $his neck up and sticks $his tongue out as far as it will go, wiggling it invitingly.<</if>> You straddle $his face. + $He can follow advanced commands, so you order $him into a position for use of $his face hole. $He instantly <<if hasAnyLegs($activeSlave)>><<if $PC.dick == 1>>bends at the waist and turns $his head upward, placing $his throat horizontally and at waist height.<<else>>gets to $his knees and turns $his head upward at just the right angle for a pussy to ride $his face hole.<</if>><<else>>cranes $his neck up and sticks $his tongue out as far as it will go, wiggling it invitingly.<</if>> You straddle $his face. <</if>> <<if $activeSlave.fuckdoll <= 20>> $He's not fully used to being surprised with face rape, so $he struggles, and $his difficulty breathing <<if $PC.dick == 1>>makes $his throat spasm around your dickhead<<else>>feels lovely on your cunt<</if>>. @@ -24,7 +24,7 @@ You decide to use the Fuckdoll's <<if $activeSlave.lips > 95>>facepussy<<else>>f <<else>> $He's so perfectly tuned that $he begins to orgasm from nothing more than oral stimulation, and $he continues to shiver with repeated orgasms as $he sucks. <</if>> -You climax, <<if $PC.dick == 1>>blowing your load down $his throat<<else>>giving $him a good amount of femcum to swallow<</if>>, and return $him to <<if $activeSlave.amp == 0>>a standing position<<else>>where $he was resting<</if>>. +You climax, <<if $PC.dick == 1>>blowing your load down $his throat<<else>>giving $him a good amount of femcum to swallow<</if>>, and return $him to <<if hasAnyLegs($activeSlave)>>a standing position<<else>>where $he was resting<</if>>. <<if $PC.dick == 1>> <<if $activeSlave.lips > 95>>$He gives sloppy blowjobs, $his lips being too big for much control, and strings of your cum beribbon $his suit. The Fuckdoll will be cleaned by another slave. <<else>>$He swallows repeatedly as $he returns to $his resting posture. @@ -43,11 +43,11 @@ You climax, <<if $PC.dick == 1>>blowing your load down $his throat<<else>>giving <<run clearSummaryCache($activeSlave)>> You decide to use the Fuckdoll's <<if $activeSlave.vagina > 3>>cavernous<<elseif $activeSlave.vagina == 3>>soft<<elseif $activeSlave.vagina == 2>>inviting<<elseif $activeSlave.vagina == 1>>tight<</if>> front hole. <<if $activeSlave.fuckdoll <= 10>> - Since $he is not well adapted to life as a living sex toy yet, $he won't respond to position commands. So, you simply <<if $activeSlave.amp == 0>>push $him down to lie on the couch<<else>>set $him on your desk<</if>> and shove <<if $PC.dick == 1>>your cock<<else>>a strap-on<</if>> inside $his vagina. + Since $he is not well adapted to life as a living sex toy yet, $he won't respond to position commands. So, you simply <<if hasAnyLegs($activeSlave)>>push $him down to lie on the couch<<else>>set $him on your desk<</if>> and shove <<if $PC.dick == 1>>your cock<<else>>a strap-on<</if>> inside $his vagina. <<elseif $activeSlave.fuckdoll <= 70>> - $He can follow intermediate commands, so you order $him into a position for use of $his front hole. $He obediently <<if $activeSlave.amp == 0>>gets down on all fours and <</if>>cocks $his hips, offering $his cunt until you insert <<if $PC.dick == 1>>your cock<<else>>a strap-on<</if>> into $his wet channel. + $He can follow intermediate commands, so you order $him into a position for use of $his front hole. $He obediently <<if hasAllLimbs($activeSlave)>>gets down on all fours and <<elseif hasAnyLegs($activeSlave)>>bends over and <</if>>cocks $his hips, offering $his cunt until you insert <<if $PC.dick == 1>>your cock<<else>>a strap-on<</if>> into $his wet channel. <<else>> - $He can follow advanced commands, so you bring $him over to your chair <<if $activeSlave.amp == 0>>and order $him to squat down onto your <<if $PC.dick == 1>>cock<<else>>strap-on<</if>> and ride.<<else>>and impale $him on <<if $PC.dick == 1>>your cock<<else>>your strap-on<</if>>, ordering $him to do $his feeble best to bounce.<</if>> + $He can follow advanced commands, so you bring $him over to your chair <<if hasAnyLegs($activeSlave)>>and order $him to squat down onto your <<if $PC.dick == 1>>cock<<else>>strap-on<</if>> and ride.<<else>>and impale $him on <<if $PC.dick == 1>>your cock<<else>>your strap-on<</if>>, ordering $him to do $his feeble best to bounce.<</if>> <</if>> <<if $activeSlave.fuckdoll <= 20>> $He's not fully used to being raped without warning, so $he struggles, $his muscles spasming delightfully. @@ -66,7 +66,7 @@ You decide to use the Fuckdoll's <<if $activeSlave.vagina > 3>>cavernous<<elseif <<else>> $He moans, <<if $activeSlave.lips > 95>>and the lips of $his facepussy quiver<<else>>struggling to force the sound past $his mouth insert<</if>>. <</if>> -You climax<<if $PC.dick == 1>>, your cum shooting forward to splash against $his womb,<</if>> and return $him to <<if $activeSlave.amp == 0>>a standing position<<else>>where $he was resting<</if>>. +You climax<<if $PC.dick == 1>>, your cum shooting forward to splash against $his womb,<</if>> and return $him to <<if hasAnyLegs($activeSlave)>>a standing position<<else>>where $he was resting<</if>>. <<if $PC.dick == 1>> <<if $activeSlave.vagina > 2>>Your cum flows out of $his gaping front hole and down the material of $his suit. <<elseif $activeSlave.vagina == 2>>Your cum drips out of $his well-fucked front hole and down the material of $his suit. @@ -106,11 +106,11 @@ You climax<<if $PC.dick == 1>>, your cum shooting forward to splash against $his You decide to use the Fuckdoll's fertile womb to grow a child. <<if $activeSlave.fuckdoll <= 10>> - Since $he is not well adapted to life as a living sex toy yet, $he won't respond to position commands. So, you simply <<if $activeSlave.amp == 0>>push $him down to lie on the couch<<else>>set $him on your desk<</if>> and shove <<if $PC.dick == 1>>your cock<<else>>a strap-on<</if>> inside $his <<if $activeSlave.mpreg == 1>>asshole<<else>>vagina<</if>>. + Since $he is not well adapted to life as a living sex toy yet, $he won't respond to position commands. So, you simply <<if hasAnyLegs($activeSlave)>>push $him down to lie on the couch<<else>>set $him on your desk<</if>> and shove <<if $PC.dick == 1>>your cock<<else>>a strap-on<</if>> inside $his <<if $activeSlave.mpreg == 1>>asshole<<else>>vagina<</if>>. <<elseif $activeSlave.fuckdoll <= 70>> - $He can follow intermediate commands, so you order $him into a position for use of $his <<if $activeSlave.mpreg == 1>>rear<<else>>front<</if>> hole. $He obediently <<if $activeSlave.amp == 0>>gets down on all fours and <</if>>cocks $his hips, offering $his <<if $activeSlave.mpreg == 1>>asspussy<<else>>cunt<</if>> until you insert your cock into $his <<if $activeSlave.mpreg == 1>>winking<<else>>wet<</if>> channel. + $He can follow intermediate commands, so you order $him into a position for use of $his <<if $activeSlave.mpreg == 1>>rear<<else>>front<</if>> hole. $He obediently <<if hasAllLimbs($activeSlave)>>gets down on all fours and <</if>>cocks $his hips, offering $his <<if $activeSlave.mpreg == 1>>asspussy<<else>>cunt<</if>> until you insert your cock into $his <<if $activeSlave.mpreg == 1>>winking<<else>>wet<</if>> channel. <<else>> - $He can follow advanced commands, so you bring $him over to your chair <<if $activeSlave.amp == 0>>and order $him to squat down onto your cock and ride.<<else>>and impale $him on your cock, ordering $him to do $his feeble best to bounce.<</if>> + $He can follow advanced commands, so you bring $him over to your chair <<if hasAnyLegs($activeSlave)>>and order $him to squat down onto your cock and ride.<<else>>and impale $him on your cock, ordering $him to do $his feeble best to bounce.<</if>> <</if>> <<if $activeSlave.fuckdoll <= 20>> $He's not fully used to being raped without warning, so $he struggles, $his muscles spasming delightfully. @@ -129,7 +129,7 @@ You decide to use the Fuckdoll's fertile womb to grow a child. <<else>> $He moans, <<if $activeSlave.lips > 95>>and the lips of $his facepussy quiver<<else>>struggling to force the sound past $his mouth insert<</if>>. <</if>> -You climax, your cum shooting forward to splash against $his womb, and return $he to <<if $activeSlave.amp == 0>>a standing position<<else>>where $he was resting<</if>> to allow your seed to find $his mark. +You climax, your cum shooting forward to splash against $his womb, and return $he to <<if hasAnyLegs($activeSlave)>>a standing position<<else>>where $he was resting<</if>> to allow your seed to find $his mark. <<if $activeSlave.mpreg == 1>> <<if $activeSlave.anus > 2>>Your cum flows out of $his gaping rear hole and down the material of $his suit. <<elseif $activeSlave.anus == 2>>Your cum drips out of $his well-fucked rear hole and down the material of $his suit. @@ -186,11 +186,11 @@ You repeat this ritual throughout the week, ensuring that $he will be an @@.lime <<run clearSummaryCache($activeSlave)>> You decide to use the Fuckdoll's <<if $activeSlave.anus > 3>>gaping<<elseif $activeSlave.anus == 3>>loose<<elseif $activeSlave.anus == 2>>relaxed<<elseif $activeSlave.anus == 1>>tight<</if>> rear hole. <<if $activeSlave.fuckdoll <= 10>> - Since $he is not well adapted to life as a living sex toy yet, $he won't respond to position commands. So, you simply <<if $activeSlave.amp == 0>>walk over to $him<<else>>flip $him over<</if>> and ram <<if $PC.dick == 1>>your cock<<else>>a strap-on<</if>> up $his rear hole. + Since $he is not well adapted to life as a living sex toy yet, $he won't respond to position commands. So, you simply <<if hasAnyLegs($activeSlave)>>walk over to $him<<else>>flip $him over<</if>> and ram <<if $PC.dick == 1>>your cock<<else>>a strap-on<</if>> up $his rear hole. <<elseif $activeSlave.fuckdoll <= 80>> - $He can follow intermediate commands, so you order $him to present $his rear hole. $He obediently <<if $activeSlave.amp == 0>>bends over, arches $his back, and<<else>>flips over and<</if>> winks $his anus until you insert <<if $PC.dick == 1>>your cock<<else>>a strap-on<</if>>. + $He can follow intermediate commands, so you order $him to present $his rear hole. $He obediently <<if hasAnyLegs($activeSlave)>>bends over, arches $his back, and<<else>>flips over and<</if>> winks $his anus until you insert <<if $PC.dick == 1>>your cock<<else>>a strap-on<</if>>. <<else>> - $He can follow advanced commands, so you bring $him over to your chair <<if $activeSlave.amp == 0>>and order $him to squat down onto your <<if $PC.dick == 1>>cock<<else>>strap-on<</if>> and slide $his anus up and down <<if $PC.dick == 1>>your<<else>>the<</if>> shaft.<<else>>and impale $him on <<if $PC.dick == 1>>your cock<<else>>your strap-on<</if>>, ordering $him to do $his feeble best to bounce.<</if>> + $He can follow advanced commands, so you bring $him over to your chair <<if hasAnyLegs($activeSlave)>>and order $him to squat down onto your <<if $PC.dick == 1>>cock<<else>>strap-on<</if>> and slide $his anus up and down <<if $PC.dick == 1>>your<<else>>the<</if>> shaft.<<else>>and impale $him on <<if $PC.dick == 1>>your cock<<else>>your strap-on<</if>>, ordering $him to do $his feeble best to bounce.<</if>> <</if>> <<if $activeSlave.fuckdoll <= 20>> $He's not fully used to having things suddenly forced up $his ass, so $he struggles, and $his sphincter spasms deliciously. @@ -209,7 +209,7 @@ You decide to use the Fuckdoll's <<if $activeSlave.anus > 3>>gaping<<elseif $act <<else>> $He moans, <<if $activeSlave.lips > 95>>and the lips of $his facepussy quiver<<else>>struggling to force the sound past $his mouth insert<</if>>. <</if>> -You climax<<if $PC.dick == 1>>, filling $his rectum with your cum,<</if>> and return $him to <<if $activeSlave.amp == 0>>a standing position<<else>>where $he was resting<</if>>. +You climax<<if $PC.dick == 1>>, filling $his rectum with your cum,<</if>> and return $him to <<if hasAnyLegs($activeSlave)>>a standing position<<else>>where $he was resting<</if>>. <<if $PC.dick == 1>> <<if $activeSlave.anus > 2>>Your cum flows out of $his gaped rear hole and down the material of $his suit. <<elseif $activeSlave.anus == 2>>Your cum drips out of $his loosened rear hole and down the material of $his suit. diff --git a/src/npc/descriptions/fLips.tw b/src/npc/descriptions/fLips.tw index 4cc6cba7f0e85ca26e26e77ee2cfec8d1fd01a53..475c6082959b2530e5dbc5249a23809d5ab80bc0 100644 --- a/src/npc/descriptions/fLips.tw +++ b/src/npc/descriptions/fLips.tw @@ -28,21 +28,21 @@ You tell $activeSlave.slaveName to <<switch $activeSlave.collar>> <<case "dildo gag">> - <<if ($activeSlave.amp != 1)>> + <<if hasAnyArms($activeSlave)>> $He removes the dildo from $his throat, leaving the ring gag in place. <<else>> As an amputee, $he requires your assistance to get the dildo out of $his throat. <</if>> Able to breathe through $his mouth for the first time in a while, $he gasps gratefully, knowing the respite will be brief. <<case "massive dildo gag">> - <<if ($activeSlave.amp != 1)>> + <<if hasAnyArms($activeSlave)>> $He struggles to remove the dildo from $his throat, leaving $his mouth agape. <<else>> As an amputee, $he requires your assistance to get the dildo out of $his throat. <</if>> Able to breathe through $his mouth for the first time in a while, $he gasps gratefully, knowing the respite will be brief. <<case "ball gag" "bit gag">> - <<if ($activeSlave.amp != 1)>> + <<if hasAnyArms($activeSlave)>> $He unfastens $his gag and pulls it from $his mouth. <<else>> As an amputee, $he requires your assistance to get the gag unfastened. @@ -72,7 +72,7 @@ You tell $activeSlave.slaveName to <</if>> <</if>> -<<if ($activeSlave.amp == 1)>> +<<if isAmputee($activeSlave)>> You set $his limbless torso on the <<if ($PC.dick != 0)>> edge of your desk with $him on $his back. $His head dangles off the edge of the desk, leaving $his <<if $seeRace == 1>>$activeSlave.race <</if>>mouth at the perfect angle for use. As an amputee $he has absolutely no control over the depth or quickness of oral sex, so you are careful not to hurt $him. Even so, you take $him to the edge of gagging, enjoying the sight of $his $activeSlave.skin throat bulging. Eventually you shoot your load directly down $his gullet. @@ -116,18 +116,18 @@ You tell $activeSlave.slaveName to <<elseif ($activeSlave.fetish == "cumslut") && ($activeSlave.fetishStrength > 60) && ($activeSlave.fetishKnown == 1) && ($activeSlave.dick != 0) && ($PC.dick != 0)>> $He comes over eagerly, with hunger <<if canSee($activeSlave)>>in $his eyes<<else>>on $his face<</if>>. $He gets to $his knees, hurriedly takes you into $his <<if $seeRace == 1>>$activeSlave.race <</if>>mouth, and gives the blowjob $his all. As a cumslut $he's almost desperate to get your cum into $his mouth and <<if ($activeSlave.chastityPenis == 1)>>(since $his cock is off limits) frantically rubs $his nipples and asspussy<<elseif canAchieveErection($activeSlave)>>jacks $himself off<<else>>rubs $his sadly limp member<</if>> in anticipation.<<if $PC.vagina == 1>> You have more than one variety of deliciousness for $him, and $he's careful not to neglect your wet cunt.<</if>> When you finish, $he sits back with an ecstatic look on $his face and lets your cum rest in $his mouth as $he climaxes into $his $activeSlave.skin hand. $He pours $his own cum from $his hand into $his mouth so it can mingle with yours. <<elseif ($activeSlave.fetish == "cumslut") && ($activeSlave.fetishStrength > 60) && ($activeSlave.fetishKnown == 1) && ($PC.dick != 0)>> - $He comes over eagerly, with hunger <<if canSee($activeSlave)>>in $his eyes<<else>>on $his face<</if>>. $He gets to $his knees, hurriedly takes you into $his <<if $seeRace == 1>>$activeSlave.race <</if>>mouth, and gives the blowjob $his all. As a cumslut $he's almost desperate to get your cum into $his mouth and rubs $himself in anticipation.<<if $PC.vagina == 1>> You have more than one variety of deliciousness for $him, and $he's careful not to neglect your wet cunt.<</if>> When you finish, $he sits back with an ecstatic look on $his face and lets your cum rest in $his mouth as $he climaxes. + $He comes over eagerly, with hunger <<if canSee($activeSlave)>>in $his eyes<<else>>on $his face<</if>>. $He gets to <<if hasAnyLegs($activeSlave)>>$his knee<<if hasBothLegs($activeSlave)>>s<</if>><<else>>the ground<</if>>, hurriedly takes you into $his <<if $seeRace == 1>>$activeSlave.race <</if>>mouth, and gives the blowjob $his all. As a cumslut $he's almost desperate to get your cum into $his mouth and rubs $himself in anticipation.<<if $PC.vagina == 1>> You have more than one variety of deliciousness for $him, and $he's careful not to neglect your wet cunt.<</if>> When you finish, $he sits back with an ecstatic look on $his face and lets your cum rest in $his mouth as $he climaxes. <<elseif $activeSlave.devotion < -20>> $He tries to back away, so you <<if ($PC.dick != 0)>> <<if $activeSlave.collar == "dildo gag">> - grab $him; $his <<if $seeRace == 1>>$activeSlave.race <</if>>mouth is already held invitingly open by $his gag, and $he's prevented from biting. You push $him down to $his knees with $his head against the couch next to your desk so you can give $him a good hard throat fuck. When you cum down $his $activeSlave.skin throat $he retches through $his tears. + grab $him; $his <<if $seeRace == 1>>$activeSlave.race <</if>>mouth is already held invitingly open by $his gag, and $he's prevented from biting. You push $him down to <<if hasAnyLegs($activeSlave)>>$his knee<<if hasBothLegs($activeSlave)>>s<</if>><<else>>the ground<</if>> with $his head against the couch next to your desk so you can give $him a good hard throat fuck. When you cum down $his $activeSlave.skin throat $he retches through $his tears. <<if $PC.vagina == 1>>$He has a mere moment to get $his breath back before you press your pussy against $his unwilling mouth.<</if>> <<elseif $activeSlave.collar == "massive dildo gag">> - grab $him; $his <<if $seeRace == 1>>$activeSlave.race <</if>>mouth is left agape, unable to close after being forced so widely open for so long, so $he is unlikely to bite. You push $him down to $his knees with $his head against the couch next to your desk so you can give $him a good hard throat fuck. When you cum down $his $activeSlave.skin throat $he retches through $his tears. + grab $him; $his <<if $seeRace == 1>>$activeSlave.race <</if>>mouth is left agape, unable to close after being forced so widely open for so long, so $he is unlikely to bite. You push $him down to <<if hasAnyLegs($activeSlave)>>$his knee<<if hasBothLegs($activeSlave)>>s<</if>><<else>>the ground<</if>> with $his head against the couch next to your desk so you can give $him a good hard throat fuck. When you cum down $his $activeSlave.skin throat $he retches through $his tears. <<if $PC.vagina == 1>>$He has a mere moment to get $his breath back before you press your pussy against $his unwilling mouth.<</if>> <<else>> - grab $him and force a ring gag into $his <<if $seeRace == 1>>$activeSlave.race <</if>>mouth. Once you have the straps secured behind $his head, $he's prevented from biting. You push $him down to $his knees with $his head against the couch next to your desk so you can give $him a good hard throat fuck. When you cum down $his $activeSlave.skin throat $he retches through $his tears. + grab $him and force a ring gag into $his <<if $seeRace == 1>>$activeSlave.race <</if>>mouth. Once you have the straps secured behind $his head, $he's prevented from biting. You push $him down to <<if hasAnyLegs($activeSlave)>>$his knee<<if hasBothLegs($activeSlave)>>s<</if>><<else>>the ground<</if>> with $his head against the couch next to your desk so you can give $him a good hard throat fuck. When you cum down $his $activeSlave.skin throat $he retches through $his tears. <<if $PC.vagina == 1>>$He has a mere moment to get $his breath back before you press your pussy against $his unwilling mouth.<</if>> <</if>> <<else>> @@ -138,14 +138,14 @@ You tell $activeSlave.slaveName to <<if ($PC.dick != 0)>> give you a blowjob. Deciding that $he isn't showing the necessary enthusiasm, you hold $his head and fuck $his <<if $seeRace == 1>>$activeSlave.race <</if>>face instead<<if $PC.vagina == 1>>, occasionally jerking your dick free to shove your pussy against $his face instead<</if>>. $He does $his best to follow your motions but still splutters and gags. You pull free to cum across $his $activeSlave.skin face and hair. <<else>> - eat you out. Deciding that $he isn't showing the necessary enthusiasm, you hold $his head and grind your pussy against $his <<if $seeRace == 1>>$activeSlave.race <</if>>face instead. $He does $his best to follow your motions but still splutters and gasps for air. You climax quickly and haul $him to $his feet, kissing the bewildered $girl full on the mouth. You can taste yourself on $his lips. + eat you out. Deciding that $he isn't showing the necessary enthusiasm, you hold $his head and grind your pussy against $his <<if $seeRace == 1>>$activeSlave.race <</if>>face instead. $He does $his best to follow your motions but still splutters and gasps for air. You climax quickly and haul $him <<if hasBothLegs($activeSlave)>>to $his feet<<else>>upright<</if>>, kissing the bewildered $girl full on the mouth. You can taste yourself on $his lips. <</if>> <<else>> $He licks $his lips <<if canSee($activeSlave)>>and looks you in the eyes <</if>>as $he gets to $his knees. $He <<if ($PC.dick != 0)>> gives you a long, deep blowjob. $He massages your balls<<if $PC.vagina == 1>> and pussy<</if>> with one hand and $his breasts with the other, giving you a show. $He sucks your head until you climax, letting your cock pop free of $his mouth to shoot pearly cum all across $his $activeSlave.skin face. <<else>> - eats you out like $he's starving, moaning into your pussy to show off $his arousal and add to your pleasure. $He massages your perineum with one hand and $his breasts with the other, giving you a show. $He slowly concentrates more and more attention on your clit until you climax convulsively. You pull $him to $his feet, kissing the compliant $girl full on the mouth. You can taste yourself on $his lips. + eats you out like $he's starving, moaning into your pussy to show off $his arousal and add to your pleasure. $He massages your perineum with one hand and $his breasts with the other, giving you a show. $He slowly concentrates more and more attention on your clit until you climax convulsively. You pull $him <<if hasBothLegs($activeSlave)>>to $his feet<<else>>upright<</if>>, kissing the compliant $girl full on the mouth. You can taste yourself on $his lips. <</if>> <</if>> diff --git a/src/npc/descriptions/fPoolSex.tw b/src/npc/descriptions/fPoolSex.tw index 1b8bf3d9332a615d29ef5e0427ac86ac4ffd9f27..edbb4b5515dacd21c40ae3e10c2750d5f340419c 100644 --- a/src/npc/descriptions/fPoolSex.tw +++ b/src/npc/descriptions/fPoolSex.tw @@ -5,8 +5,8 @@ You order $him to meet you in the spa for some quality time in the penthouse's rejuvenating gelatin pool. When you get there, $he's already in $his bathing attire, reclined at the side of the pool farthest from you with $his massive $activeSlave.skin stomach hanging over the edge and half sunk in the thick, steaming ooze, flushed and sweaty. <<if $activeSlave.devotion > 95>> - <<if $activeSlave.amp < 1>> - $He's resting $his head on one arm, but $he gives you a little wave with the other before setting it to rubbing the flank of one + <<if !isAmputee($activeSlave)>> + $He's resting $his head on one arm, but $he gives you a little wave <<if missingArms != 0>>anyway<<else>>with the other<</if>> before setting it to rubbing the flank of one <<if $activeSlave.boobs >= 20000>> massively overgrown tit <<elseif Math.floor($activeSlave.boobsImplant/$activeSlave.boobs) >= .60>> @@ -23,14 +23,14 @@ You order $him to meet you in the spa for some quality time in the penthouse's r <<if canSee($activeSlave)>>watches<<else>>waits patiently as<</if>> you strip down and change into your swimming outfit. When it's clear that you're ready to join $him, $he motions at the pool's holographic console and coos in delight as its mobility assistance devices kick in, rolling $him into the curative gel. You sink yourself into the pool, taking a moment to bask in the feeling of the warm, curative laced goo as it relaxes your muscles<<if $PC.preg > 30>> and soothes your stretched skin<</if>>, then wade toward your waiting slave. <br><br> $He smiles and beckons you toward $him, rubbing circles in the exploded sides of $his colossal belly, then gasps as you take a handful of the ooze and shove it right in $his face. $He sputters indignantly and then - <<if $activeSlave.amp < 1>> + <<if hasAnyArms($activeSlave)>> scoops up a handful $himself, flinging it at you. The two of you spend several minutes goo fighting before, eventually, you decide that your <<else>> wobbles back and forth, ineffectually trying to fight back as you cover $him in thick wads of gel, over and over. After several minutes of this, you decide that your <</if>> <<if $PC.dick == 1>> solid, quivering erection is in need of $his tender care. <<if canSee($activeSlave)>>Seeing<<else>>Sensing<</if>> the change in your demeanor, $he rolls back to recline at the pool's edge and, once you've joined $him, - <<if $activeSlave.amp < 1>> + <<if hasAnyArms($activeSlave)>> reaches down to masturbate your ooze lubricated dick. <<else>> rolls forward and reaches down to tease your cockhead with $his mouth<<if $activeSlave.boobs > 600>> and tits<</if>>. @@ -51,7 +51,7 @@ You order $him to meet you in the spa for some quality time in the penthouse's r <<if canDoVaginal($activeSlave)>><<= VCheck.Vaginal()>><<else>><<= VCheck.Anal()>><</if>> <<else>> ooze stimulated quim is in need of $his tender care. Seeing the change in your demeanor, $he rolls back to recline at the pool's edge and, once you've joined $him, - <<if $activeSlave.amp < 1>> + <<if hasAnyArms($activeSlave)>> reaches down to masturbate your pussy, squeezing and rubbing your clit. <<else>> rolls sideways and rubs your vulva as best $he can. @@ -64,7 +64,7 @@ You order $him to meet you in the spa for some quality time in the penthouse's r <</if>> <</if>> <<elseif ($activeSlave.trust < -20) && ($activeSlave.devotion > -10)>> - <<if $activeSlave.amp < 1>> + <<if hasAnyArms($activeSlave)>> $He's resting $his head on one arm, but $he nods at you in acknowledgment as <<else>> $He's resting on a small pile of pillows, enjoying the sensations against the flanks of $his colossal belly. $He nods as you enter, not stopping $his rubbing, and <<if canSee($activeSlave)>>watches<<else>>waits patiently as<</if>> @@ -72,14 +72,14 @@ You order $him to meet you in the spa for some quality time in the penthouse's r you strip down and change into your swimming outfit. When it's clear that you're ready to join $him, $he motions at the pool's holographic console and its mobility assistance devices kick in, rolling $him into the curative gel. You sink yourself into the pool, taking a moment to bask in the feeling of the warm, curative laced goo as it relaxes your muscles<<if $PC.preg > 30>> and soothes your stretched skin<</if>>, then wade toward your waiting slave. <br><br> $He smiles politely, rubbing circles in the exploded sides of $his colossal belly, then gasps as you take a handful of the ooze and shove it right in $his face. $He sputters indignantly and then - <<if $activeSlave.amp < 1>> + <<if hasAnyArms($activeSlave)>> scoops up a handful $himself, flinging it at you. The two of you spend several minutes goo fighting before, eventually, you decide that your <<else>> wobbles back and forth, ineffectually trying to fight back as you cover $him in thick wads of gel, over and over. After several minutes of this, you decide that your <</if>> <<if $PC.dick == 1>> solid, quivering erection is in need of $his tender care. <<if canSee($activeSlave)>>Seeing<<else>>Sensing<</if>> the change in your demeanor, $he rolls back to recline at the pool's edge and, once you've joined $him, - <<if $activeSlave.amp < 1>> + <<if hasAnyArms($activeSlave)>> reaches down to masturbate your ooze lubricated dick. <<else>> rolls forward and reaches down to tease your cockhead with $his mouth<<if $activeSlave.boobs > 600>> and tits<</if>>. @@ -100,7 +100,7 @@ You order $him to meet you in the spa for some quality time in the penthouse's r <<if canDoVaginal($activeSlave)>><<= VCheck.Vaginal()>><<else>><<= VCheck.Anal()>><</if>> <<else>> ooze stimulated quim is in need of $his tender care. Seeing the change in your demeanor, $he rolls back to recline at the pool's edge and, once you've joined $him, - <<if $activeSlave.amp < 1>> + <<if hasAnyArms($activeSlave)>> reaches down to masturbate your pussy, squeezing and rubbing your clit. <<else>> rolls sideways and rubs your vulva as best $he can. @@ -113,7 +113,7 @@ You order $him to meet you in the spa for some quality time in the penthouse's r <</if>> <</if>> <<else>> - <<if $activeSlave.amp < 1>> + <<if hasAnyArms($activeSlave)>> $He's resting $his head on one arm, but $he starts as you enter, watching tensely as <<else>> $He's resting on a small pile of pillows, savoring the sensations against the flanks of $his colossal belly and @@ -133,7 +133,7 @@ You order $him to meet you in the spa for some quality time in the penthouse's r $He smiles politely, rubbing circles in the exploded sides of $his colossal belly, then cries out in surprise as you take a handful of the ooze and shove it right in $his face. $He sputters, blushing, and wobbles back and forth, clearly trying not to react as you cover $him in thick wads of gel, over and over. After several minutes of this, you decide that your <<if $PC.dick == 1>> solid, quivering erection is in need of $his tender care. You force $him back into a reclining position at the pool's edge and order $him to - <<if $activeSlave.amp < 1>> + <<if hasAnyArms($activeSlave)>> masturbate your ooze lubricated dick. <<else>> tease your cockhead with $his mouth. @@ -154,7 +154,7 @@ You order $him to meet you in the spa for some quality time in the penthouse's r <<if canDoVaginal($activeSlave)>><<= VCheck.Vaginal()>><<else>><<= VCheck.Anal()>><</if>> <<else>> ooze stimulated quim is in need of $his tender care. You force $him back to recline at the pool's edge and, once you've joined $him, - <<if $activeSlave.amp < 1>> + <<if hasAnyArms($activeSlave)>> set $him to masturbating your pussy, squeezing and rubbing your clit. <<else>> set $him to rubbing your vulva with $his belly button. diff --git a/src/npc/descriptions/fVagina.tw b/src/npc/descriptions/fVagina.tw index 6b8187b1f9a72012d565b15494ebef71490f8e25..7cc4016bd145899d6a7d503787711607db5459a0 100644 --- a/src/npc/descriptions/fVagina.tw +++ b/src/npc/descriptions/fVagina.tw @@ -125,7 +125,7 @@ You call $him over so you can A position that will be awkward with the combined size of your rounded middles. <</if>> <<elseif (_fPosition <= 60)>> - doggy-style. You tell $him to get on the couch beside your desk on $his hands and knees. + doggy-style. You tell $him to get on the couch beside your desk on $his <<if hasAnyArms($activeSlave)>>hand<<if hasBothArms($activeSlave)>>s<</if>> and <</if>>knees. <<if $activeSlave.bellyPreg >= 600000>> As $he struggles to fit on the couch, you tell $him to just lean over $his immense pregnancy instead. <<elseif $activeSlave.belly >= 600000>> @@ -179,7 +179,7 @@ You call $him over so you can <<set $activeSlave.vagina++>> <<elseif ($activeSlave.fetish == "mindbroken")>> Since $his mind is gone, $he's yours to use as a human sex doll. You throw $him over the couch and amuse yourself with $him for a while; $his body retains its instinctual responses, at least. You finish inside $him and leave your toy for one of your other slaves to clean and maintain. -<<elseif ($activeSlave.amp == 1)>> +<<elseif isAmputee($activeSlave)>> Since $he's a quadruple amputee, $he's yours to use as a human sex toy. You set $him <<if ($PC.dick != 0)>> <<if $activeSlave.belly >= 300000>> @@ -270,7 +270,7 @@ You call $him over so you can <<elseif $activeSlave.belly >= 300000>> $He does $his best to not suffocate you with $his massive belly or knock you out with it as you thrust <<if _fSpeed > 75>>hard and fast<<elseif _fSpeed > 50>>firmly and vigorously<<elseif _fSpeed > 25>>steadily<<else>>slowly and tenderly<</if>> into $him. You get a face full of implant with each downward motion; <<else>> - $He puts $his hands on your chest and leans forward as you continue to thrust <<if _fSpeed > 75>>hard<<elseif _fSpeed > 50>>vigorously<<elseif _fSpeed > 25>>steadily<<else>>tenderly<</if>> upwards; + $He <<if hasAnyArms($activeSlave)>>puts $his hand<<if hasBothArms($activeSlave)>>s<</if>> on your chest and <</if>>leans forward as you continue to thrust <<if _fSpeed > 75>>hard<<elseif _fSpeed > 50>>vigorously<<elseif _fSpeed > 25>>steadily<<else>>tenderly<</if>> upwards; <</if>> <<elseif (_fPosition <= 60)>> /* doggy-style */ <<if $activeSlave.bellyPreg >= 300000>> @@ -282,11 +282,11 @@ You call $him over so you can <</if>> <<elseif (_fPosition <= 80)>> /* reverse cowgirl */ <<if $activeSlave.bellyPreg >= 300000>> - You may have to spread your legs extra wide to accommodate $his impressive baby bump, but the angle and pressure it puts on you feels amazing. $He puts $his hands on your chest and starts to lean back as you continue to thrust <<if _fSpeed > 75>>hard and fast<<elseif _fSpeed > 50>>firmly and vigorously<<elseif _fSpeed > 25>>steadily<<else>>slowly and tenderly<</if>> upwards, in return you caress $his distended sides; + You may have to spread your legs extra wide to accommodate $his impressive baby bump, but the angle and pressure it puts on you feels amazing. $He <<if hasAnyArms($activeSlave)>>puts $his hand<<if hasBothArms($activeSlave)>>s<</if>> on your chest and <</if>>starts to lean back as you continue to thrust <<if _fSpeed > 75>>hard and fast<<elseif _fSpeed > 50>>firmly and vigorously<<elseif _fSpeed > 25>>steadily<<else>>slowly and tenderly<</if>> upwards, in return you caress $his distended sides; <<elseif $activeSlave.belly >= 300000>> - You may have to spread your legs extra wide to accommodate $his impressive belly, but the angle and pressure it puts on you feels amazing. $He puts $his hands on your chest and starts to lean back as you continue to thrust <<if _fSpeed > 75>>hard and fast<<elseif _fSpeed > 50>>firmly and vigorously<<elseif _fSpeed > 25>>steadily<<else>>slowly and tenderly<</if>> upwards, in return you caress $his distended sides; + You may have to spread your legs extra wide to accommodate $his impressive belly, but the angle and pressure it puts on you feels amazing. $He <<if hasAnyArms($activeSlave)>>puts $his hand<<if hasBothArms($activeSlave)>>s<</if>> on your chest and <</if>>starts to lean back as you continue to thrust <<if _fSpeed > 75>>hard and fast<<elseif _fSpeed > 50>>firmly and vigorously<<elseif _fSpeed > 25>>steadily<<else>>slowly and tenderly<</if>> upwards, in return you caress $his distended sides; <<else>> - $He puts $his hands on your chest and starts to lean back as you continue to thrust <<if _fSpeed > 75>>hard and fast<<elseif _fSpeed > 50>>firmly and vigorously<<elseif _fSpeed > 25>>steadily<<else>>slowly and tenderly<</if>> upwards; + $He <<if hasAnyArms($activeSlave)>>puts $his hand<<if hasBothArms($activeSlave)>>s<</if>> on your chest and <</if>>starts to lean back as you continue to thrust <<if _fSpeed > 75>>hard and fast<<elseif _fSpeed > 50>>firmly and vigorously<<elseif _fSpeed > 25>>steadily<<else>>slowly and tenderly<</if>> upwards; <</if>> <<else>> /* wheelbarrow */ <<if $activeSlave.belly >= 600000>> @@ -342,7 +342,7 @@ You call $him over so you can <</if>> <<elseif $activeSlave.devotion <= 20>> <<if ($PC.dick != 0)>> - $He obeys, lying on the couch next to your desk with $his legs spread. You kneel on the ground and enter $him, a hand on each of $his legs to give you a good grip. <<if _fSpeed > 75>>The pounding is hard and fast<<elseif _fSpeed > 50>>You pound $him firmly and vigorously<<elseif _fSpeed > 25>>You fuck $him steadily and controlled<<else>>You fuck $him slowly and tenderly<</if>>, and $he gasps and <<if _fSpeed > 50>>whines<<else>>moans<</if>>. You reach a hand down to maul $his breasts. + $He obeys, lying on the couch next to your desk<<if hasAnyLegs($activeSlave)>> with $his leg<<if hasBothLegs($activeSlave)>>s spread<<else>> moved aside<</if>><</if>>. You kneel on the ground and enter $him<<if hasAnyLegs($activeSlave)>>, a hand on <<if hasBothLegs($activeSlave)>>each of $his legs<<else>>$his leg<</if>> to give you a good grip<</if>>. <<if _fSpeed > 75>>The pounding is hard and fast<<elseif _fSpeed > 50>>You pound $him firmly and vigorously<<elseif _fSpeed > 25>>You fuck $him steadily and controlled<<else>>You fuck $him slowly and tenderly<</if>>, and $he gasps and <<if _fSpeed > 50>>whines<<else>>moans<</if>>. You reach a hand down to maul $his breasts. <<if ($activeSlave.dick != 0) && canAchieveErection($activeSlave)>> <<if ($activeSlave.chastityPenis == 1)>> $He enjoys $himself, even though $his dick chastity keeps $him soft by making the beginnings of erection very uncomfortable. @@ -420,7 +420,7 @@ You call $him over so you can <<elseif $activeSlave.belly >= 300000>> $He does $his best to not suffocate you with $his massive belly or knock you out with it as you thrust <<if _fSpeed > 75>>hard and fast<<elseif _fSpeed > 50>>firmly and vigorously<<elseif _fSpeed > 25>>steadily<<else>>slowly and tenderly<</if>> into $him. You get a face full of implant with each downward motion; <<else>> - $He puts $his hands on your chest and leans forward as you continue to thrust <<if _fSpeed > 75>>hard<<elseif _fSpeed > 50>>vigorously<<elseif _fSpeed > 25>>steadily<<else>>tenderly<</if>> upwards; + $He <<if hasAnyArms($activeSlave)>>puts $his hand<<if hasBothArms($activeSlave)>>s<</if>> on your chest and <</if>>leans forward as you continue to thrust <<if _fSpeed > 75>>hard<<elseif _fSpeed > 50>>vigorously<<elseif _fSpeed > 25>>steadily<<else>>tenderly<</if>> upwards; <</if>> <<elseif (_fPosition <= 60)>> /* doggy-style */ <<if $activeSlave.bellyPreg >= 300000>> @@ -432,11 +432,11 @@ You call $him over so you can <</if>> <<elseif (_fPosition <= 80)>> /* reverse cowgirl */ <<if $activeSlave.bellyPreg >= 300000>> - You may have to spread your legs extra wide to accommodate $his impressive baby bump, but the angle and pressure it puts on you feels amazing. $He puts $his hands on your chest and starts to lean back as you continue to thrust <<if _fSpeed > 75>>hard and fast<<elseif _fSpeed > 50>>firmly and vigorously<<elseif _fSpeed > 25>>steadily<<else>>slowly and tenderly<</if>> upwards, in return you caress $his distended sides; + You may have to spread your legs extra wide to accommodate $his impressive baby bump, but the angle and pressure it puts on you feels amazing. $He <<if hasAnyArms($activeSlave)>>puts $his hand<<if hasBothArms($activeSlave)>>s<</if>> on your chest and <</if>>starts to lean back as you continue to thrust <<if _fSpeed > 75>>hard and fast<<elseif _fSpeed > 50>>firmly and vigorously<<elseif _fSpeed > 25>>steadily<<else>>slowly and tenderly<</if>> upwards, in return you caress $his distended sides; <<elseif $activeSlave.belly >= 300000>> - You may have to spread your legs extra wide to accommodate $his impressive belly, but the angle and pressure it puts on you feels amazing. $He puts $his hands on your chest and starts to lean back as you continue to thrust <<if _fSpeed > 75>>hard and fast<<elseif _fSpeed > 50>>firmly and vigorously<<elseif _fSpeed > 25>>steadily<<else>>slowly and tenderly<</if>> upwards, in return you caress $his distended sides; + You may have to spread your legs extra wide to accommodate $his impressive belly, but the angle and pressure it puts on you feels amazing. $He <<if hasAnyArms($activeSlave)>>puts $his hand<<if hasBothArms($activeSlave)>>s<</if>> on your chest and <</if>>starts to lean back as you continue to thrust <<if _fSpeed > 75>>hard and fast<<elseif _fSpeed > 50>>firmly and vigorously<<elseif _fSpeed > 25>>steadily<<else>>slowly and tenderly<</if>> upwards, in return you caress $his distended sides; <<else>> - $He puts $his hands on your chest and starts to lean back as you continue to thrust <<if _fSpeed > 75>>hard and fast<<elseif _fSpeed > 50>>firmly and vigorously<<elseif _fSpeed > 25>>steadily<<else>>slowly and tenderly<</if>> upwards; + $He <<if hasAnyArms($activeSlave)>>puts $his hand<<if hasBothArms($activeSlave)>>s<</if>> on your chest and <</if>>starts to lean back as you continue to thrust <<if _fSpeed > 75>>hard and fast<<elseif _fSpeed > 50>>firmly and vigorously<<elseif _fSpeed > 25>>steadily<<else>>slowly and tenderly<</if>> upwards; <</if>> <<else>> /* wheelbarrow */ <<if $activeSlave.belly >= 600000>> diff --git a/src/npc/takeoverTarget.tw b/src/npc/takeoverTarget.tw index ce9133bce802447c010193481a46f43298cbd541..18381ef8758271829fd63e84c743b8ee14021d4f 100644 --- a/src/npc/takeoverTarget.tw +++ b/src/npc/takeoverTarget.tw @@ -1,7 +1,5 @@ :: Takeover Target [nobr] -<<set $ui = "start", $showBodyMods = 1>> - Before you deploy the <<if $PC.rumor == "wealth">> financial reserves that @@ -221,4 +219,4 @@ Alternatively, arcologies are being built every day, and their owners' control i <<default>>@@.orange;Multiculturalism,@@ a celebration of the total liberty that was the original purpose of the Free Cities. <</switch>> <hr style="margin:0"> -<</for>> +<</for>> \ No newline at end of file diff --git a/src/pregmod/analyzePlayerPregnancy.tw b/src/pregmod/analyzePlayerPregnancy.tw index ccb6a29700cbe4644aa2a9a7f7b7e6fd5d6c29c5..5fe117839806a79222848748dfac99d369624b65 100644 --- a/src/pregmod/analyzePlayerPregnancy.tw +++ b/src/pregmod/analyzePlayerPregnancy.tw @@ -1,6 +1,11 @@ :: Analyze PC Pregnancy [nobr] -<<set $nextButton = "Continue", $nextLink = "Manage Personal Affairs">> +<<if lastVisited("Incubator") === 1>> + <<set $storedLink = "Incubator">> +<<elseif lastVisited("Manage Personal Affairs") === 1>> + <<set $storedLink = "Manage Personal Affairs">> +<</if>> +<<set $nextButton = "Continue", $nextLink = $storedLink>> <<set _WL = $PC.womb.length, _incubatorReservations = WombReserveCount($PC, "incubator"), _nurseryReservations = WombReserveCount($PC, "nursery")>> diff --git a/src/pregmod/analyzePregnancy.tw b/src/pregmod/analyzePregnancy.tw index 4b1ce967d7bc5cf3d39b3568df02e05628c7a167..133b7ad07bf4704b09da1e5bce2e92544985ab68 100644 --- a/src/pregmod/analyzePregnancy.tw +++ b/src/pregmod/analyzePregnancy.tw @@ -1,6 +1,12 @@ :: Analyze Pregnancy [nobr] -<<set $nextButton = "Continue", $nextLink = "Slave Interact">> +<<if lastVisited("Incubator") === 1>> + <<set $storedLink = "AS Dump">> +<<elseif lastVisited("Slave Interact") === 1>> + <<set $storedLink = "Slave Interact">> +<</if>> +<<set $nextButton = "Continue", $nextLink = $storedLink>> +<<setLocalPronouns $activeSlave>> <<set _WL = $activeSlave.womb.length, _incubatorReservations = WombReserveCount($activeSlave, "incubator"), _nurseryReservations = WombReserveCount($activeSlave, "nursery")>> diff --git a/src/pregmod/incubator.tw b/src/pregmod/incubator.tw index 6a54bce844fc3678589cdbd2100792a8b6a9c0dd..1734d8746103ee7102709e538e58623f3af9d41f 100644 --- a/src/pregmod/incubator.tw +++ b/src/pregmod/incubator.tw @@ -111,6 +111,9 @@ Reserve an eligible mother-to-be's child to be placed in a tank upon birth. Of $ <</if>> <<if (_reservedIncubator + _reservedNursery < _WL) && ($reservedChildren < $freeTanks)>> <br> + <<if $pregnancyMonitoringUpgrade == 1>> + <<print "[[Inspect pregnancy|Analyze Pregnancy][$i = " + _u + "; $activeSlave = $slaves[$i]]] | ">> + <</if>> <<print "[[Keep another child|Incubator][WombAddToGenericReserve($slaves[" + _u + "], 'incubator', 1)]]">> <<if _reservedIncubator > 0>> | <<print "[[Keep one less child|Incubator][WombCleanGenericReserve($slaves[" + _u + "], 'incubator', 1)]]">> @@ -123,6 +126,9 @@ Reserve an eligible mother-to-be's child to be placed in a tank upon birth. Of $ <</if>> <<elseif (_reservedIncubator == _WL) || ($reservedChildren == $freeTanks) || (_reservedIncubator + _reservedNursery == _WL)>> <br> + <<if $pregnancyMonitoringUpgrade == 1>> + <<print "[[Inspect pregnancy|Analyze Pregnancy][$i = " + _u + "; $activeSlave = $slaves[$i]]] | ">> + <</if>> <<print "[[Keep one less child|Incubator][WombCleanGenericReserve($slaves[" + _u + "], 'incubator', 1)]]">> <<if _reservedIncubator > 1>> | <<print "[[Keep none of " + $his + " children|Incubator][WombCleanGenericReserve($slaves[" + _u + "], 'incubator', 9999)]]">> @@ -132,10 +138,16 @@ Reserve an eligible mother-to-be's child to be placed in a tank upon birth. Of $ <<if _WL - _reservedNursery == 0>> //$His children are already reserved for $nurseryName// <br> + <<if $pregnancyMonitoringUpgrade == 1>> + <<print "[[Inspect pregnancy|Analyze Pregnancy][$i = " + _u + "; $activeSlave = $slaves[$i]]] | ">> + <</if>> <<print "[[Keep " + $his + " " + ((_WL > 1) ? "children" : "child") + " here instead|Incubator][WombChangeReserveType($slaves[" + _u + "], 'nursery', 'incubator')]]">> <<else>> You have <<if $freeTanks == 1>>an<</if>> @@.lime;available aging tank<<if $freeTanks > 1>>s<</if>>.@@ <br> + <<if $pregnancyMonitoringUpgrade == 1>> + <<print "[[Inspect pregnancy|Analyze Pregnancy][$i = " + _u + "; $activeSlave = $slaves[$i]]] | ">> + <</if>> <<print "[[Keep "+ ((_WL > 1) ? "a" : "the") +" child|Incubator][WombAddToGenericReserve($slaves[" + _u + "], 'incubator', 1)]]">> <<if (_WL > 1) && ($reservedChildren + _WL - _reservedIncubator) <= $freeTanks>> | <<print "[[Keep all of " + $his + " children|Incubator][WombAddToGenericReserve($slaves[" + _u + "], 'incubator', 9999)]]">> @@ -143,6 +155,9 @@ Reserve an eligible mother-to-be's child to be placed in a tank upon birth. Of $ <</if>> <<elseif $reservedChildren == $freeTanks>> <br> + <<if $pregnancyMonitoringUpgrade == 1>> + <<print "[[Inspect pregnancy|Analyze Pregnancy][$i = " + _u + "; $activeSlave = $slaves[$i]]] | ">> + <</if>> You have @@.red;no room for $his offspring.@@ <</if>> <<set _eligibility = 1>> @@ -181,6 +196,9 @@ Reserve an eligible mother-to-be's child to be placed in a tank upon birth. Of $ <</if>> <<if (_reservedIncubator < _WL) && ($reservedChildren < $freeTanks) && (_reservedIncubator - _reservedNursery > 0)>> <br> + <<if $pregnancyMonitoringUpgrade == 1>> + <<print "[[Inspect pregnancy|Analyze PC Pregnancy]] | ">> + <</if>> <<print "[[Keep another child|Incubator][WombAddToGenericReserve($PC, 'incubator', 1)]]">> <<if _reservedIncubator > 0>> | <<print "[[Keep one less child|Incubator][WombCleanGenericReserve($PC, 'incubator', 1)]]">> @@ -193,6 +211,9 @@ Reserve an eligible mother-to-be's child to be placed in a tank upon birth. Of $ <</if>> <<elseif (_reservedIncubator == _WL) || ($reservedChildren == $freeTanks) || (_reservedIncubator - _reservedNursery >= 0)>> <br> + <<if $pregnancyMonitoringUpgrade == 1>> + <<print "[[Inspect pregnancy|Analyze PC Pregnancy]] | ">> + <</if>> <<print "[[Keep one less child|Incubator][_reservedIncubator -= 1, $reservedChildren -= 1]]">> <<if _reservedIncubator > 1>> | <<print "[[Keep none of your children|Incubator][WombCleanGenericReserve($PC, 'incubator', 9999)]]">> @@ -205,6 +226,9 @@ Reserve an eligible mother-to-be's child to be placed in a tank upon birth. Of $ <<else>> You have <<if $freeTanks == 1>>an<</if>> @@.lime;available aging tank<<if $freeTanks > 1>>s<</if>>.@@ <br> + <<if $pregnancyMonitoringUpgrade == 1>> + <<print "[[Inspect pregnancy|Analyze PC Pregnancy]] | ">> + <</if>> <<print "[[Keep " + ((_WL > 1) ? "a" : "your") +" child|Incubator][WombAddToGenericReserve($PC, 'incubator', 1)]]">> <<if (_WL > 1) && ($reservedChildren + _WL - _reservedIncubator) <= $freeTanks>> | [[Keep all of your children|Incubator][WombAddToGenericReserve($PC, 'incubator', 9999)]] @@ -212,6 +236,9 @@ Reserve an eligible mother-to-be's child to be placed in a tank upon birth. Of $ <</if>> <<elseif $reservedChildren == $freeTanks>> <br> + <<if $pregnancyMonitoringUpgrade == 1>> + <<print "[[Inspect pregnancy|Analyze PC Pregnancy]] | ">> + <</if>> You have @@.red;no room for your offspring.@@ <</if>> <</if>> diff --git a/src/uncategorized/bodyModification.tw b/src/uncategorized/bodyModification.tw index 759b8a7ee50dad5a3597e18a66cbee019bd7e527..aee6e814ea371fba6b2faa395a918168eb77a89c 100644 --- a/src/uncategorized/bodyModification.tw +++ b/src/uncategorized/bodyModification.tw @@ -404,36 +404,21 @@ Piercings: $His smooth $activeSlave.skin skin is completely unpierced. <</if>> -<<if $activeSlave.earPiercing > 0 >><br> <<earPiercingDescription>><</if>> -<<if $activeSlave.nosePiercing > 0 >><br> <<nosePiercingDescription>><</if>> -<<if $activeSlave.eyebrowPiercing > 0 >><br> <<eyebrowPiercingDescription>><</if>> -<<if $activeSlave.lipsPiercing > 0 >><br> <<lipsPiercingDescription>><</if>> -<<if $activeSlave.tonguePiercing > 0 >><br> <<tonguePiercingDescription>><</if>> -<<if $activeSlave.nipplesPiercing > 0 >><br> <<nipplesPiercingDescription>><</if>> -<<if $activeSlave.areolaePiercing > 0 >><br> <<areolaePiercingDescription>><</if>> -<<if $activeSlave.navelPiercing > 0 >><br> <<navelPiercingDescription>><</if>> -<<if $activeSlave.corsetPiercing > 0 >><br> <<CorsetPiercingDescription>><</if>> -<<if $activeSlave.clitPiercing > 0 >><br> <<clitPiercingDescription>><</if>> -<<if $activeSlave.vaginaPiercing > 0 >><br> <<vaginaPiercingDescription>><</if>> -<<if $activeSlave.dickPiercing > 0 >><br> <<dickPiercingDescription>><</if>> -<<if $activeSlave.anusPiercing > 0 >><br> <<anusPiercingDescription>><</if>> - -<br><<chastityPiercingDescription>> - -/*<<earPiercingDescription>> -<<nosePiercingDescription>> -<<eyebrowPiercingDescription>> -<<lipsPiercingDescription>> -<<tonguePiercingDescription>> -<<nipplesPiercingDescription>> -<<areolaePiercingDescription>> -<<navelPiercingDescription>> -<<CorsetPiercingDescription>> -<<clitPiercingDescription>> -<<vaginaPiercingDescription>> -<<dickPiercingDescription>> -<<anusPiercingDescription>> -<<chastityPiercingDescription>>*/ +<<if $activeSlave.earPiercing > 0 >><br> <<= App.Desc.piercing($activeSlave, "ear")>><</if>> +<<if $activeSlave.nosePiercing > 0 >><br> <<= App.Desc.piercing($activeSlave, "nose")>><</if>> +<<if $activeSlave.eyebrowPiercing > 0 >><br> <<= App.Desc.piercing($activeSlave, "eyebrow")>><</if>> +<<if $activeSlave.lipsPiercing > 0 >><br> <<= App.Desc.piercing($activeSlave, "lips")>><</if>> +<<if $activeSlave.tonguePiercing > 0 >><br> <<= App.Desc.piercing($activeSlave, "tongue")>><</if>> +<<if $activeSlave.nipplesPiercing > 0 >><br> <<= App.Desc.piercing($activeSlave, "nipple")>><</if>> +<<if $activeSlave.areolaePiercing > 0 >><br> <<= App.Desc.piercing($activeSlave, "areolae")>><</if>> +<<if $activeSlave.navelPiercing > 0 >><br> <<= App.Desc.piercing($activeSlave, "navel")>><</if>> +<<if $activeSlave.corsetPiercing > 0 >><br> <<= App.Desc.piercing($activeSlave, "corset")>><</if>> +<<if $activeSlave.clitPiercing > 0 >><br> <<= App.Desc.piercing($activeSlave, "clit")>><</if>> +<<if $activeSlave.vaginaPiercing > 0 >><br> <<= App.Desc.piercing($activeSlave, "vagina")>><</if>> +<<if $activeSlave.dickPiercing > 0 >><br> <<= App.Desc.piercing($activeSlave, "dick")>><</if>> +<<if $activeSlave.anusPiercing > 0 >><br> <<= App.Desc.piercing($activeSlave, "anus")>><</if>> + +<br><<= App.Desc.piercing($activeSlave, "chastity")>> /* Apply piercings */ @@ -616,17 +601,17 @@ Choose piercing style: /* TATTOOS */ Tattoos: -<<if $activeSlave.shouldersTat != 0>> <br> <<shouldersTatDescription>><<set _hasTat = 1>><</if>> -<<if $activeSlave.lipsTat != 0>> <br> <<lipsTatDescription>><<set _hasTat = 1>><</if>> -<<if $activeSlave.boobsTat != 0>> <br> <<boobsTatDescription>><<set _hasTat = 1>><</if>> -<<if $activeSlave.armsTat != 0 && $activeSlave.amp != 1>> <br> <<armsTatDescription>><<set _hasTat = 1>><</if>> -<<if $activeSlave.backTat != 0>> <br> <<backTatDescription>><<set _hasTat = 1>><</if>> -<<if $activeSlave.stampTat != 0>> <br> <<stampTatDescription>><<set _hasTat = 1>><</if>> -<<if $activeSlave.buttTat != 0>> <br> <<buttTatDescription>><<set _hasTat = 1>><</if>> -<<if $activeSlave.vaginaTat != 0>> <br> <<vaginaTatDescription>><<set _hasTat = 1>><</if>> -<<if $activeSlave.dickTat != 0 && $activeSlave.dick > 0>> <br> <<dickTatDescription>><<set _hasTat = 1>><</if>> -<<if $activeSlave.anusTat != 0>> <br> <<anusTatDescription>><<set _hasTat = 1>><</if>> -<<if $activeSlave.legsTat != 0 && $activeSlave.amp != 1>> <br> <<legsTatDescription>><<set _hasTat = 1>><</if>> +<<if $activeSlave.shouldersTat != 0>> <br> <<= App.Desc.tattoo($activeSlave, "shoulder")>><<set _hasTat = 1>><</if>> +<<if $activeSlave.lipsTat != 0>> <br> <<= App.Desc.tattoo($activeSlave, "lips")>><<set _hasTat = 1>><</if>> +<<if $activeSlave.boobsTat != 0>> <br> <<= App.Desc.tattoo($activeSlave, "breast")>><<set _hasTat = 1>><</if>> +<<if $activeSlave.armsTat != 0 && $activeSlave.amp != 1>> <br> <<= App.Desc.tattoo($activeSlave, "upper arm")>><<set _hasTat = 1>><</if>> +<<if $activeSlave.backTat != 0>> <br> <<= App.Desc.tattoo($activeSlave, "back")>><<set _hasTat = 1>><</if>> +<<if $activeSlave.stampTat != 0>> <br> <<= App.Desc.tattoo($activeSlave, "lower back")>><<set _hasTat = 1>><</if>> +<<if $activeSlave.buttTat != 0>> <br> <<= App.Desc.tattoo($activeSlave, "buttock")>><<set _hasTat = 1>><</if>> +<<if $activeSlave.vaginaTat != 0>> <br> <<= App.Desc.tattoo($activeSlave, "vagina")>><<set _hasTat = 1>><</if>> +<<if $activeSlave.dickTat != 0 && $activeSlave.dick > 0>> <br> <<= App.Desc.tattoo($activeSlave, "dick")>><<set _hasTat = 1>><</if>> +<<if $activeSlave.anusTat != 0>> <br> <<= App.Desc.tattoo($activeSlave, "anus")>><<set _hasTat = 1>><</if>> +<<if $activeSlave.legsTat != 0 && $activeSlave.amp != 1>> <br> <<= App.Desc.tattoo($activeSlave, "thigh")>><<set _hasTat = 1>><</if>> <br> Choose a tattoo style: diff --git a/src/uncategorized/longSlaveDescription.tw b/src/uncategorized/longSlaveDescription.tw index a44ccee34901868783081e710115e6d4d63a91aa..4db8ac2a928c45453841e60bca829846400e0347 100644 --- a/src/uncategorized/longSlaveDescription.tw +++ b/src/uncategorized/longSlaveDescription.tw @@ -1926,9 +1926,7 @@ $He is $activeSlave.counter.pitKills slaves have died by $his hand in pit fights. <</if>> -<<if $activeSlave.corsetPiercing > 0>> - <<CorsetPiercingDescription>> -<</if>> +<<= App.Desc.piercing($activeSlave, "corset")>> <<pregnancyDescription>> @@ -1957,7 +1955,10 @@ $He is <</if>> <</if>> -<<legsTatDescription>> +<<= App.Desc.mods($activeSlave, "thigh")>> +<<= App.Desc.mods($activeSlave, "calf")>> +<<= App.Desc.mods($activeSlave, "ankle")>> +<<= App.Desc.mods($activeSlave, "foot")>> <<heelDescription>> <<skinDescription>> @@ -2079,9 +2080,9 @@ $He is The piercings on $his head run through $his suit, helping secure the material to $his head. <</if>> <<else>> - <<earPiercingDescription>> - <<nosePiercingDescription>> - <<eyebrowPiercingDescription>> + <<= App.Desc.mods($activeSlave, "ear")>> + <<= App.Desc.mods($activeSlave, "nose")>> + <<= App.Desc.mods($activeSlave, "eyebrow")>> <<if ($activeSlave.custom.tattoo != "") && (def $activeSlave.custom.tattoo)>> <<print $activeSlave.custom.tattoo>> <</if>> @@ -2115,12 +2116,13 @@ $He is <<if $activeSlave.fuckdoll == 0>> <<nailsDescription>> - <<if $showBodyMods == 1>> - <<backTatDescription>> - <<shouldersTatDescription>> - <<armsTatDescription>> - <</if>> <</if>> +<<= App.Desc.mods($activeSlave, "back")>> +<<= App.Desc.mods($activeSlave, "shoulder")>> +<<= App.Desc.mods($activeSlave, "upper arm")>> +<<= App.Desc.mods($activeSlave, "lower arm")>> +<<= App.Desc.mods($activeSlave, "hand")>> +<<= App.Desc.mods($activeSlave, "wrist")>> <<if $activeSlave.fuckdoll == 0>> <<if $activeSlave.minorInjury != 0>> @@ -2136,16 +2138,13 @@ $He is <<BoobsDescription>> <<boobsShapeDescription>> <<boobsExtraDescription>> -<<if $showBodyMods == 1>> - <<boobsTatDescription>> -<</if>> -<<boobBrandDescription>> +<<= App.Desc.mods($activeSlave, "chest")>> +<<= App.Desc.mods($activeSlave, "breast")>> <<shouldersDescription>> <<nipplesDescription>> -<<if $showBodyMods == 1>> - <<nipplesPiercingDescription>> -<</if>> +<<= App.Desc.mods($activeSlave, "nipple")>> <<areolaeDescription>> +<<= App.Desc.mods($activeSlave, "areolae")>> <<if $activeSlave.inflation > 0>> /* to be obsoleted with phase 4 */ <<BellyInflationDescription>> @@ -2154,6 +2153,7 @@ $He is <<else>> <<BellyDescription>> <</if>> +<<= App.Desc.mods($activeSlave, "navel")>> <<ButtDescription>> diff --git a/src/uncategorized/storyCaption.tw b/src/uncategorized/storyCaption.tw index 064927fa0acebc390b446d82e34c33d3a3e07d83..a7a5faf0c1061fc4f0c1f675fbec089c76ecadb0 100644 --- a/src/uncategorized/storyCaption.tw +++ b/src/uncategorized/storyCaption.tw @@ -5,7 +5,7 @@ <<if _Pass !== "Encyclopedia">> <br><br> <</if>> <<if $nextButton === "END WEEK">> <span id="endWeekButton"> <strong> - <<link [[($nextButton)|($nextLink)]]>><</link>> + <<link [[END WEEK|End Week]]>><</link>> </strong> </span> @@.cyan;[Ent]@@ <<if $rulesError && $rulesAssistantAuto == 1>> <br>@@.yellow; WARNING: some custom rules will change slave variables@@ @@ -13,9 +13,9 @@ <<else>> <strong> <<if _Pass !== "Encyclopedia">> /* must use link so spacebar shortcut will work */ - <<link "$nextButton">> <<set $ui = "main">> <<goto $nextLink>> <</link>> + <<link [[$nextButton|$nextLink][]]>><</link>> <<else>> - <<link [[($nextButton)|($nextLink)]]>><</link>> to Free Cities. + <<link [[Back to Free Cities|$nextLink]]>><</link>> <</if>> </strong> @@.cyan;[Space]@@ <</if>> @@ -105,7 +105,7 @@ <br>[[Game Mods|Encyclopedia][$encyclopedia = "Game Mods"]] <br>[[Credits|Encyclopedia][$encyclopedia = "Credits"]] <<elseif _Pass == "Starting Girls">> - <span id="cost"><<SlaveCostDescription>></span> + <span id="cost"><<SlaveCostDescription>></span> <br><br> <</if>> <<if $ui != "start" && _Pass !== "Encyclopedia">> <br> @@ -119,8 +119,8 @@ __@@.red;Cash@@__ | @@.red;<<print cashFormat($cash)>>@@ <</if>> - </span> + <<if _Pass == "Main">> <br> <<set _TCash2 = ($cash-$cashLastWeek)>> <span id="oldcash"> @@ -226,10 +226,8 @@ <</if>> <<if $sideBarOptions.Upkeep > 0>> <br> - <<if _Pass === "Main">> - [[Upkeep|Costs Budget]] | - <<else>> - Upkeep | + <<if _Pass === "Main">> [[Upkeep|Costs Budget]] | + <<else>> Upkeep | <</if>> @@.red;<<print cashFormat($costs)>>@@ <</if>> @@ -769,39 +767,34 @@ <</if>> <</if>> /* Closes nextButton !== "Continue" && nextButton !== " " */ +<</if>> - <<if _Pass === "Encyclopedia" || $showEncyclopedia === 0 || $encyclopedia === " " || $nextButton === "Continue">> - <<else>> - <<if $nextButton === " ">> <br> <</if>> - <br>//FCE:// [[$encyclopedia|Encyclopedia][$nextButton = "Back", $nextLink = _Pass]] - <</if>> +<<if _Pass !== "Encyclopedia" && ($showEncyclopedia > 0 || $nextButton !== "Continue")>> + <<if $nextButton === " ">> <br> <</if>> <<if $ui != "start">> <br> <</if>> + //''FCE'':// [[$encyclopedia|Encyclopedia][$nextButton = "Back", $nextLink = _Pass]] +<</if>> - <<if ($debugMode == 1)>> - <br><br>Debugging Tools<br> - <<link "Display Variables">><<checkvars>><</link>> - <br> - <<link "Display Changed Variables">> - <<set Config.history.maxStates = 2>> /* makes sure we store the current state so we can return to it */ - <<goto "Variable Difference">> - <</link>> - <br> - <<link "Bug Report">><<bugreport>><</link>> - <<if $debugModeCustomFunction > 0>> - <br> - <<textarea "_customEvalCode" "">> - <<link "Run Custom Function">> - <<if _customEvalCode>> - <<if _customEvalCode.charAt(0) != "(" || $nextLink == ")">> /* second condition is only there for sanityCheck */ - <<set _customEvalCode = "(" + _customEvalCode + ")">> - <</if>> - <<if typeof eval(_customEvalCode) === "function">> - <<run (eval(_customEvalCode))()>> - <</if>> +<<if $ui != "start" && _Pass !== "Encyclopedia" && $debugMode > 0>> + <br><br>Debugging Tools<br> <<link "Display Variables">><<checkvars>><</link>> + <br> <<link "Display Changed Variables">> + <<set Config.history.maxStates = 2>> /* makes sure we store the current state so we can return to it */ + <<goto "Variable Difference">> + <</link>> + + <br> <<link "Bug Report">><<bugreport>><</link>> + <<if $debugModeCustomFunction > 0>> + <br> <<textarea "_customEvalCode" "">> + <<link "Run Custom Function">> + <<if _customEvalCode>> + <<if _customEvalCode.charAt(0) != "(" || $nextLink == ")">> /* second condition is only there for sanityCheck */ + <<set _customEvalCode = "(" + _customEvalCode + ")">> <</if>> - <<goto _Pass>> - <</link>> - <</if>> - <br> <<link "Dump Game State">><<run App.Debug.dumpGameState()>><</link>> + <<if typeof eval(_customEvalCode) === "function">> + <<run (eval(_customEvalCode))()>> + <</if>> + <</if>> + <<goto _Pass>> + <</link>> <</if>> - + <br> <<link "Dump Game State">><<run App.Debug.dumpGameState()>><</link>> <</if>> \ No newline at end of file diff --git a/src/uncategorized/wardrobeUse.tw b/src/uncategorized/wardrobeUse.tw index 7e5f34bbfcd92b05443562aa881e1de20eae2999..1f0eb75d7cc5d1e15c0c199cfa121cbc790aa264 100644 --- a/src/uncategorized/wardrobeUse.tw +++ b/src/uncategorized/wardrobeUse.tw @@ -407,7 +407,7 @@ Collar: ''$activeSlave.collar.'' Torso accessory: ''$activeSlave.bellyAccessory.'' <br> -//<<waistDescription>><<pregnancyDescription>><<clothingCorsetDescription>><<CorsetPiercingDescription>>// +//<<waistDescription>><<pregnancyDescription>><<clothingCorsetDescription>><<= App.Desc.piercing($activeSlave, "corset")>>// <<options $activeSlave.bellyAccessory>> <<option "none" "None">> <<option "a corset" "Tight corset">> diff --git a/src/utility/descriptionWidgetsFlesh.tw b/src/utility/descriptionWidgetsFlesh.tw index 8ee62efc68f8be5dcc1e3b59dfcbf03e11a48e83..ec8c905f7d02877f8c7daeba567df1d330f07993 100644 --- a/src/utility/descriptionWidgetsFlesh.tw +++ b/src/utility/descriptionWidgetsFlesh.tw @@ -294,12 +294,6 @@ $He has <<print App.Desc.boobsExtra($activeSlave)>> <</widget>> - -<<widget "boobBrandDescription">> - <<print App.Desc.boobsBrand($activeSlave)>> -<</widget>> - - <<widget "nipplesDescription">> <<print App.Desc.nipples($activeSlave)>> <</widget>> @@ -1197,9 +1191,7 @@ $He has <</if>> -<<if $showBodyMods == 1>> - <<stampTatDescription>> -<</if>> +<<= App.Desc.mods($activeSlave, "lower back")>> $He's got a <<if $activeSlave.butt <= 1>> @@ -1398,9 +1390,7 @@ $He's got a <</if>> <</if>> -<<if $showBodyMods == 1>> - <<buttTatDescription>> -<</if>> +<<= App.Desc.mods($activeSlave, "buttock")>> <</widget>> @@ -1480,10 +1470,7 @@ $He's got a <<buttplugDescription>> -<<if $showBodyMods == 1>> - <<anusPiercingDescription>> - <<anusTatDescription>> -<</if>> +<<= App.Desc.mods($activeSlave, "anus")>> <<if $activeSlave.fuckdoll > 0>> As a Fuckdoll, @@ -3612,14 +3599,8 @@ $He's got a <</if>> <</if>> -<<if $activeSlave.fuckdoll == 0>> - <<if $showBodyMods == 1>> - <<dickTatDescription>> - <<dickPiercingDescription>> - <<= App.Desc.mods($activeSlave, "penis")>> - <<= App.Desc.mods($activeSlave, "testicle")>> - <</if>> -<</if>> +<<= App.Desc.mods($activeSlave, "dick")>> +<<= App.Desc.mods($activeSlave, "testicle")>> <</widget>> @@ -4021,13 +4002,8 @@ $He's got a <</if>> <</if>> -<<if $showBodyMods == 1>> - <<vaginaPiercingDescription>> - <<clitPiercingDescription>> - <<if $activeSlave.fuckdoll == 0>> - <<vaginaTatDescription>> - <</if>> -<</if>> +<<= App.Desc.mods($activeSlave, "vagina")>> +<<= App.Desc.mods($activeSlave, "clit")>> <<if $activeSlave.fuckdoll == 0>> <<if ($activeSlave.releaseRules == "permissive") || $activeSlave.releaseRules == "masturbation">> @@ -4396,7 +4372,6 @@ $His <<if $showBodyMods == 1>> <<if $activeSlave.fuckdoll == 0>> <<makeupDescription>> - <<lipsTatDescription>> <</if>> <</if>> @@ -4520,11 +4495,8 @@ $He has $He has no sense of taste, but this isn't immediately obvious just by looking at $his tongue. <</if>> -<<if $showBodyMods == 1>> - <<lipsPiercingDescription>> - <<tonguePiercingDescription>> -<</if>> - +<<= App.Desc.mods($activeSlave, "lips")>> +<<= App.Desc.mods($activeSlave, "tongue")>> <<if $activeSlave.fuckdoll > 0>> <<if $PC.dick == 1>>Sticking a dick<<else>>Sliding a dildo<</if>> into $his <<if $activeSlave.lips > 95>>facepussy<<else>>mouth insert<</if>> diff --git a/src/utility/descriptionWidgetsStyle.tw b/src/utility/descriptionWidgetsStyle.tw index 7cf0f56afbe28848596bc4a1a823dde6a4e590e5..7ea6398956cf10e1edccc7bf5280abf96496e6cb 100644 --- a/src/utility/descriptionWidgetsStyle.tw +++ b/src/utility/descriptionWidgetsStyle.tw @@ -877,7 +877,7 @@ $activeSlave.slaveName is <<footwearDescription>> <</if>> - <<chastityPiercingDescription>> + <<= App.Desc.piercing($activeSlave, "chastity")>> <<case "a Santa dress">> made of red felt with white fur @@ -4883,7 +4883,7 @@ $His end at mid-calf, leaving $his feet bare except for a set of jeweled toe-rings. <</switch>> - <<chastityPiercingDescription>> + <<= App.Desc.piercing($activeSlave, "chastity")>> <<default>> <<switch $activeSlave.shoes>> diff --git a/src/utility/descriptionWidgetsTattoos.tw b/src/utility/descriptionWidgetsTattoos.tw index 3b578fee44000876bf3de45477468793951b6016..be380ebb67f407408ff9c1ed9fc8654e27fbdecd 100644 --- a/src/utility/descriptionWidgetsTattoos.tw +++ b/src/utility/descriptionWidgetsTattoos.tw @@ -44,7 +44,6 @@ $activeSlave.shouldersTat <</switch>> <</if>> - <<= App.Desc.mods($activeSlave, "shoulder")>> <</if>> <</widget>> @@ -91,7 +90,6 @@ $activeSlave.lipsTat <</switch>> <</if>> - <<= App.Desc.mods($activeSlave, "lips")>> <</if>> <</widget>> @@ -135,8 +133,6 @@ $activeSlave.boobsTat <</switch>> <</if>> - /* App.Desc.boobsBrand handles boobBrands */ - /*<<= App.Desc.mods($activeSlave, "breast")>>*/ <</if>> <</widget>> @@ -224,10 +220,6 @@ $activeSlave.armsTat <</switch>> <</if>> - <<= App.Desc.mods($activeSlave, "upper arm")>> - <<= App.Desc.mods($activeSlave, "lower arm")>> - <<= App.Desc.mods($activeSlave, "hand")>> - <<= App.Desc.mods($activeSlave, "wrist")>> <</if>> <</widget>> @@ -309,7 +301,6 @@ $activeSlave.backTat <</switch>> <</if>> - <<= App.Desc.mods($activeSlave, "back")>> <</if>> <</widget>> @@ -359,7 +350,6 @@ $activeSlave.stampTat <</switch>> <</if>> - <<= App.Desc.mods($activeSlave, "lower back")>> <</if>> <</widget>> @@ -424,7 +414,6 @@ $activeSlave.buttTat <</switch>> <</if>> -<<= App.Desc.mods($activeSlave, "buttock")>> <</if>> <</widget>> @@ -590,9 +579,6 @@ $activeSlave.anusTat <</switch>> <</if>> -/* Just in case someone makes these someday: */ -<<= App.Desc.mods($activeSlave, "anus")>> -<<= App.Desc.mods($activeSlave, "asshole")>> <</widget>> <<widget "legsTatDescription">> @@ -633,9 +619,5 @@ $activeSlave.legsTat <</switch>> <</if>> - <<= App.Desc.mods($activeSlave, "thigh")>> - <<= App.Desc.mods($activeSlave, "calf")>> - <<= App.Desc.mods($activeSlave, "ankle")>> - <<= App.Desc.mods($activeSlave, "foot")>> <</if>> <</widget>>