diff --git a/src/endWeek/saTakeClasses.js b/src/endWeek/saTakeClasses.js new file mode 100644 index 0000000000000000000000000000000000000000..42e3dd510dee35d7f52945a7d95676c1ab29a7bc --- /dev/null +++ b/src/endWeek/saTakeClasses.js @@ -0,0 +1,403 @@ +window.saTakeClasses = (function saServeThePublic() { + "use strict"; + + let r; + + let he, him, his, hers, himself, girl, loli, He, His; + + let learning; + let teaching; + + return saTakeClasses; + + /** + * @param {App.Entity.SlaveState} slave + * @returns {string} + */ + function saTakeClasses(slave) { + r = ` `; + learning = 1; + teaching = 0; + ({ + he, him, his, hers, himself, girl, He, His, loli + } = getPronouns(slave)); + + jobPreface(slave); + if (slave.fetish !== "mindbroken") { + learningDisability(slave); + learningProgress(slave); + if (slave.lactation > 0) { + lactationBreak(slave); + } + skillLessons(slave); + generalLessons(slave); + if (slave.accent > 1 && slave.voice !== 0) { + speechLessons(slave); + } + graduation(slave); + } + return r; + } + + /** + * @param {App.Entity.SlaveState} slave + * + */ + function jobPreface(slave) { + if (slave.fetish === "mindbroken") { + r += `is no longer mentally capable and <span class="yellow">has been dropped from class.</span>`; + if (slave.assignment === "take classes") { + removeJob(slave, "take classes"); + } + } else { + r += `takes courses in slavery`; + if (V.schoolroomUpgradeSkills + V.schoolroomUpgradeRemedial + V.schoolroomUpgradeLanguage !== 0) { + r += `, using ${V.schoolroomName}'s improved educational materials,`; + } + if (slave.assignment === "learn in the schoolroom" && V.Schoolteacher !== 0) { + const schoolteacherPronouns = getPronouns(V.Schoolteacher); + teaching = (V.Schoolteacher.intelligence + V.Schoolteacher.intelligenceImplant); + if (V.Schoolteacher.visualAge > 35) { + teaching += 10; + } + if (setup.schoolteacherCareers.includes(V.Schoolteacher.career)) { + teaching += 10; + } + if (V.Schoolteacher.face > 40) { + teaching += 10; + } + if (jsRandom(1, 150) < teaching) { + learning += 1; + } + r += ` under ${V.Schoolteacher.slaveName}'s supervision;`; + if (slave.devotion > 20) { + r += ` ${he} is such an obedient slave that ${schoolteacherPronouns.pronoun} <span class="hotpink">encourages ${him}</span> to be the best slave ${he} can.`; + slave.devotion += 2; + } else if (slave.trust < -20) { + r += ` ${he} obeys out of fear, so ${schoolteacherPronouns.pronoun} <span class="hotpink">encourages ${him}</span> to be a better slave.`; + slave.devotion++; + } else { + r += ` ${he} is resistant, so ${schoolteacherPronouns.pronoun} ends up mostly <span class="gold">punishing ${him},</span> increasing ${his} <span class="mediumorchid">dislike for slavery.</span>`; + slave.devotion -= 2; + slave.trust -= 4; + } + } else { + r += ` under ${V.assistantName}'s supervision;`; + if (slave.devotion > 20) { + r += ` ${he} is such an obedient slave that ${V.assistantName} mostly <span class="hotpink">encourages ${him}.</span>`; + slave.devotion += 2; + } else if (slave.trust < -20) { + r += ` ${he} obeys out of fear, so ${V.assistantName} mostly <span class="hotpink">encourages ${him}</span> to be a better slave.`; + slave.devotion++; + } else { + r += ` ${he} is resistant, so ${V.assistantName} mostly <span class="gold">punishes ${him},</span> increasing ${his} <span class="mediumorchid">dislike for slavery.</span>`; + slave.devotion -= 2; + slave.trust -= 4; + } + } + } + } + + /** + * @param {App.Entity.SlaveState} slave + * + */ + function learningDisability(slave) { + if (!canHear(slave) && !canSee(slave)) { + r += ` With ${his} inability to hear and see, absorbing the content is extremely difficult.`; + learning -= 3; + } else if (!canHear(slave) || !canSee(slave)) { + r += ` With ${his} impairments, ${he} needs special lessons to properly learn.`; + learning -= 1; + } + } + + /** + * @param {App.Entity.SlaveState} slave + * + */ + function learningProgress(slave) { + if (V.schoolroomRemodelBimbo !== 1 || slave.assignment !== "learn in the schoolroom") { + if (slave.intelligence > 95) { + learning += 2; + } else if (slave.intelligence > 50) { + learning++; + } else if (slave.intelligence > 15) { + if (jsRandom(1, 100) < 70) { + learning++; + } + } else if (slave.intelligence >= -15) { + if (jsRandom(1, 100) < 50) { + learning++; + } + } else { + let slaveDensity = (50 + slave.intelligence); + if (V.schoolroomUpgradeRemedial === 1 && jsRandom(1, 100) < 50) { + slaveDensity = 55; + } + if (jsRandom(1, 100) > slaveDensity) { + learning++; + } + } + } else { + if (slave.intelligence < -95) { + learning += 2; + } else if (slave.intelligence < -50) { + learning++; + } else if (slave.intelligence < -15) { + if (jsRandom(1, 100) < 70) { + learning++; + } + } else if (slave.intelligence > 15) { + if (jsRandom(1, 100) < 50) { + learning++; + } + } else { + let slaveDensity = (-10 + slave.intelligence); + if (V.schoolroomUpgradeRemedial === 1 && jsRandom(1, 100) < 50) { + slaveDensity = 55; + } + if (jsRandom(1, 100) < slaveDensity) { + learning++; + } + } + } + r += ` ${He} is `; + if (slave.intelligence > 95) { + r += `a genius,`; + } else if (slave.intelligence > 50) { + r += `highly intelligent`; + } else if (slave.intelligence > 15) { + r += `of above average intelligence`; + } else if (slave.intelligence >= -15) { + r += `of average intelligence`; + } else if (slave.intelligence >= -50) { + r += `of below average intelligence`; + } else if (slave.intelligence >= -95) { + r += `quite stupid`; + } else { + r += `an imbecile,`; + } + if (slave.devotion > 95) { + r += ` and worshipful of you,`; + learning++; + } else if (slave.devotion > 50) { + r += ` and devoted to you,`; + if (jsRandom(1, 100) < 70) { + learning++; + } + } else if (slave.devotion > 20) { + r += ` and obedient to you,`; + if (jsRandom(1, 100) < 50) { + learning++; + } + } else if (slave.trust < -20) { + r += ` and frightened of you,`; + if (jsRandom(1, 100) < 40) { + learning++; + } + } else { + r += ` and neither likes you nor is afraid of you,`; + } + r += ` and ${he} `; + if (V.schoolroomRemodelBimbo !== 1 || slave.assignment !== "learn in the schoolroom") { + if (learning <= 1) { + r += `learns slowly`; + } else if (learning === 2) { + r += `does well with ${his} studies`; + } else { + r += `is perfectly studious`; + } + } else { + if (learning <= 1) { + r += `struggles with the lessons`; + } else if (learning === 2) { + r += `makes progress with the materials`; + } else { + r += `breezes through ${his} lessons`; + } + } + r += ` this week.`; + } + + /** + * @param {App.Entity.SlaveState} slave + * + */ + function lactationBreak(slave) { + // room for growth — do so during lactation rules expansion + if (slave.lactation === 1 && slave.assignment === "learn in the schoolroom" && V.Schoolteacher !== 0 && hasAnyArms(V.Schoolteacher)) { + r += ` With ${his} natural lactation, ${he} often finds ${himself} milked before the class by ${Schoolteacher.slaveName} both to serve as a lesson and to keep ${him} from becoming a milky mess.`; + slave.lactationDuration = 2; + slave.boobs -= slave.boobsMilk; + slave.boobsMilk = 0; + } + } + + /** + * @param {App.Entity.SlaveState} slave + * + */ + function skillLessons(slave) { + let undevoted = 0; // forces an obediance lesson to replace the first skill lesson + let skillIncrease = 0; + if (V.schoolroomRemodelBimbo !== 1 || slave.assignment !== "learn in the schoolroom") { + skillIncrease = (10 + Math.floor((slave.intelligence + slave.intelligenceImplant) / 32)); + } else { + skillIncrease = (10 + (Math.abs(Math.floor((slave.intelligence + slave.intelligenceImplant) / 32)))); + } + for (let lessons = 0; lessons < learning; lessons++) { + if (slave.devotion <= 20 && undevoted === 0) { + r += ` Since ${he} is wanting in basic obedience, ${he} suffers through courses on <span class="hotpink">$his place</span> in the Free Cities world.`; + slave.devotion += 10; + undevoted++; + } else if (slave.skill.oral <= 10) { + r += ` Since ${he} is orally incompetent, ${he} is taught basic gag reflex suppression exercises and other simple oral things.`; + r += ` ${SkillIncrease.Oral(slave, skillIncrease)}`; + } else if (slave.skill.vaginal <= 10 && slave.vagina > 0 && canDoVaginal(slave)) { + r += ` Since ${he} is unskilled at using ${his} pussy, ${he} is taught Kegel exercises and other simple vaginal skills.`; + r += ` ${SkillIncrease.Vaginal(slave, skillIncrease)}`; + } else if (slave.skill.vaginal <= 10 && slave.vagina >= 0) { + r += ` Since ${he} is unskilled at using ${his} pussy and not permitted to learn through practice, ${he} is taught Kegel exercises, vaginal basics and several new positions.`; + r += ` ${SkillIncrease.Vaginal(slave, skillIncrease)}`; + } else if (slave.skill.anal <= 10 && slave.anus > 0 && canDoAnal(slave)) { + r += ` Since ${he} is a novice at taking it up ${his} butt, ${he} is taught relaxation exercises and other simple anal basics.`; + r += ` ${SkillIncrease.Anal(slave, skillIncrease)}`; + } else if (slave.skill.anal <= 10 && slave.anus >= 0) { + r += ` Since ${he} is a novice at taking it up ${his} butt and not permitted to learn through practice, ${he} is taught relaxation exercises and other simple anal basics.`; + r += ` ${SkillIncrease.Anal(slave, skillIncrease)}`; + } else if (slave.skill.whoring <= 10) { + r += ` Since ${he} has little idea what's involved in selling ${his} body, ${he} is taught basic safety practices and other simple prostitution skills.`; + r += ` ${SkillIncrease.Whore(slave, skillIncrease)}`; + } else if (slave.skill.entertainment <= 10) { + r += ` Since ${his} entertainment value is limited to ${his} holes, ${he} is taught simple conversational skills and other courtesan's essentials.`; + r += ` ${SkillIncrease.Entertain(slave, skillIncrease)}`; + } else if (V.schoolroomUpgradeSkills === 1) { + if (slave.skill.oral <= 30) { + r += ` Having completed the basic sex slave curriculum, ${he} studies more advanced ways to use ${his} lips and tongue to please cocks, cunts, and asses.`; + r += ` ${SkillIncrease.Oral(slave, skillIncrease)}`; + } else if (slave.skill.whoring <= 30) { + r += ` Having completed the basic sex slave curriculum, ${he} studies intermediate prostitution, including how to stay as safe as possible and maximize ${his} efficiency.`; + r += ` ${SkillIncrease.Whore(slave, skillIncrease)}`; + } else if (slave.skill.entertainment <= 30) { + r += ` Having completed the basic sex slave curriculum, ${he} studies courtesanship, including social dynamics and flirtation more subtle than straightforward begging for sex.`; + r += ` ${SkillIncrease.Entertain(slave, skillIncrease)}`; + } else if (slave.skill.vaginal <= 30 && slave.vagina >= 0) { + r += ` Having completed the basic sex slave curriculum, ${he} studies more advanced techniques and exotic positions to make use of ${his} `; + if (slave.vagina === 0) { + r += `virgin pussy for use in ${his} first time.`; + } else { + r += `pussy.`; + } + r += ` ${SkillIncrease.Vaginal(slave, skillIncrease)}`; + } else if (slave.skill.anal <= 30) { + r += ` Having completed the basic sex slave curriculum, ${he} studies more advanced techniques and exotic positions to make use of ${his} `; + if (slave.anus === 0) { + r += `virgin ass for use in ${his} first time.`; + } else { + r += `ass.`; + } + r += ` ${SkillIncrease.Anal(slave, skillIncrease)}`; + } + } + } + } + + /** + * @param {App.Entity.SlaveState} slave + * + */ + function generalLessons(slave) { + if (slave.intelligenceImplant > -15 && V.schoolroomRemodelBimbo === 1 && slave.assignment === "learn in the schoolroom") { + r += ` ${He} makes some progress `; + if (slave.intelligenceImplant < 0) { + r += `towards ${his} special education.`; + } else { + r += `in undoing ${his} education.`; + } + slave.intelligenceImplant -= Math.max(1, learning); + if (slave.intelligenceImplant <= -15) { + slave.intelligenceImplant = -15; + r += ` ${He} has completed ${his} special education, and for most purposes ${he} has become <span class="orangered">less intelligent.</span>`; + } + } else if (slave.intelligenceImplant < 30 && slave.assignment === "learn in the schoolroom") { + r += ` ${He} makes some progress `; + if (slave.intelligenceImplant < 15) { + r += `towards a basic education.`; + } else { + r += `in furthering ${his} education.`; + } + slave.intelligenceImplant += Math.max(1, learning); + if (slave.intelligenceImplant >= 30) { + slave.intelligenceImplant = 30; + r += ` ${He} has completed ${his} advanced education, and for most purposes ${he} has become <span class="deepskyblue">more intelligent.</span>`; + } + } else if (slave.intelligenceImplant < 15 && slave.assignment === "take classes") { + r += ` ${He} makes some progress towards a basic education.`; + slave.intelligenceImplant += Math.max(1, learning); + if (slave.intelligenceImplant >= 15) { + slave.intelligenceImplant = 15; + r += ` ${He} has completed a course of slave education, and for most purposes ${he} has become <span class="deepskyblue">more intelligent.</span>`; + } + } + } + + /** + * @param {App.Entity.SlaveState} slave + * + */ + function speechLessons(slave) { + if (slave.intelligenceImplant >= 15 || slave.intelligenceImplant < 0) { + if (slave.intelligence > jsRandom(-110, 110)) { + if (V.schoolroomUpgradeLanguage === 0) { + if (slave.accent > 3 && (V.week - slave.weekAcquired > 24)) { + r += ` ${He} has <span class="green">learned some ${V.language},</span> and can make ${his} point with some gesturing, though ${he} speaks ${V.language} horribly.`; + slave.accent--; + if (slave.speechRules === "language lessons") { + slave.speechRules = "accent elimination"; + } + } else if (slave.accent === 3) { + r += ` ${He} has <span class="green">learned functional ${V.language},</span> and can make ${himself} understood, though ${his} ${aNational(slave.nationality)} accent is still quite heavy.`; + slave.accent--; + } + } else { + if (slave.accent > 3) { + if (V.week - slave.weekAcquired > 16) { + r += ` ${He} has <span class="green">learned some ${V.language},</span> and can make ${his} point with some gesturing, though ${he} speaks ${V.language} horribly.`; + slave.accent--; + if (slave.speechRules === "language lessons") { + slave.speechRules = "accent elimination"; + } + } + } else if (slave.accent >= 2) { + r += ` ${He} has <span class="green">learned decent ${V.language},</span> though ${he} retains enough of ${his} ${aNational(slave.nationality)} accent to make ${his} voice distinctly sexy.`; + slave.accent--; + } + } + } + } + } + + /** + * @param {App.Entity.SlaveState} slave + * + */ + function graduation(slave) { + if (slave.intelligenceImplant >= 15 && slave.assignment === "take classes") { + if ((slave.voice === 0) || (slave.accent <= 1) || ((V.schoolroomUpgradeLanguage === 0 && slave.accent <= 2))) { + if ((slave.skill.oral > 30) || (V.schoolroomUpgradeSkills === 0 && slave.skill.oral > 10)) { + if ((slave.skill.whoring > 30) || (V.schoolroomUpgradeSkills === 0 && slave.skill.whoring > 10)) { + if ((slave.skill.entertainment > 30) || (V.schoolroomUpgradeSkills === 0 && slave.skill.entertainment > 10)) { + if ((slave.skill.anal > 30) || (V.schoolroomUpgradeSkills === 0 && slave.skill.anal > 10)) { + if ((slave.skill.vaginal > 30) || (V.schoolroomUpgradeSkills === 0 && slave.skill.vaginal > 10) || (slave.vagina < 0)) { + r += ` ${He} can learn little from further classes, so <span class="yellow">${his} assignment has defaulted to rest.</span>`; + removeJob(slave, "take classes"); + } + } + } + } + } + } + } + } +})(); diff --git a/src/facilities/schoolroom/schoolroomFramework.js b/src/facilities/schoolroom/schoolroomFramework.js index 93ad65caa75fa4404590284cf683815e173e250a..21fab0dd8ade0dd6542f25747c5229264275fe9a 100644 --- a/src/facilities/schoolroom/schoolroomFramework.js +++ b/src/facilities/schoolroom/schoolroomFramework.js @@ -41,7 +41,8 @@ App.Entity.Facilities.SchoolroomStudentJob = class extends App.Entity.Facilities } const maxSkill = 10 + this.facility.upgrade("Skills") * 20; // maximal skill value the school can teach - if ((slave.intelligenceImplant >= 30) && (slave.voice === 0 || slave.accent + this.facility.upgrade("Language") <= 2) && + if (((slave.intelligenceImplant >= 30 && V.schoolroomRemodelBimbo !== 1) || (slave.intelligenceImplant <= -15 && V.schoolroomRemodelBimbo === 1)) && + (slave.voice === 0 || slave.accent + this.facility.upgrade("Language") <= 2) && (slave.skill.oral > maxSkill) && (slave.skill.whoring > maxSkill) && (slave.skill.entertainment > maxSkill) && (slave.skill.anal > maxSkill) && ((slave.vagina < 0) || (slave.skill.vaginal > maxSkill))) { r.push(`${slave.slaveName} has nothing left to learn.`); diff --git a/src/init/storyInit.tw b/src/init/storyInit.tw index f9979189983220a2751f48b3be0753cfaa791959..8b97158118390249ba6498bfb204ed32fab7be9a 100644 --- a/src/init/storyInit.tw +++ b/src/init/storyInit.tw @@ -545,6 +545,7 @@ You should have received a copy of the GNU General Public License along with thi <<set $schoolroomUpgradeSkills = 0>> <<set $schoolroomUpgradeLanguage = 0>> <<set $schoolroomUpgradeRemedial = 0>> +<<set $schoolroomRemodelBimbo = 0>> <<set $schoolroom = 0>> <<set $schoolroomName = "the Schoolroom">> <<set $schoolroomNameCaps = "The Schoolroom">> diff --git a/src/js/DefaultRules.js b/src/js/DefaultRules.js index 2d9f015bcc4d3d2b1c389bd26f945d8d15de77a7..d352ff81fdc563468ea6b47bac18cd27f8a8015a 100644 --- a/src/js/DefaultRules.js +++ b/src/js/DefaultRules.js @@ -229,7 +229,7 @@ window.DefaultRules = (function() { case "learn in the schoolroom": if ((V.SchlRiIDs.length < V.schoolroom && slave.fetish !== "mindbroken" && (slave.devotion >= -20 || slave.trust < -50 || (slave.devotion >= -50 && slave.trust < -20)))) { - if ((slave.intelligenceImplant < 30) || (slave.voice !== 0 && slave.accent + V.schoolroomUpgradeLanguage > 2) || (slave.skill.oral <= 10 + V.schoolroomUpgradeSkills * 20) || (slave.skill.whoring <= 10 + V.schoolroomUpgradeSkills * 20) || (slave.skill.entertainment <= 10 + V.schoolroomUpgradeSkills * 20) || (slave.skill.anal < 10 + V.schoolroomUpgradeSkills * 20) || ((slave.vagina >= 0) && (slave.skill.vaginal < 10 + V.schoolroomUpgradeSkills * 20))) { + if (((slave.intelligenceImplant < 30 && V.schoolroomRemodelBimbo !== 1) || (slave.intelligenceImplant > -15 && V.schoolroomRemodelBimbo === 1)) || (slave.voice !== 0 && slave.accent + V.schoolroomUpgradeLanguage > 2) || (slave.skill.oral <= 10 + V.schoolroomUpgradeSkills * 20) || (slave.skill.whoring <= 10 + V.schoolroomUpgradeSkills * 20) || (slave.skill.entertainment <= 10 + V.schoolroomUpgradeSkills * 20) || (slave.skill.anal < 10 + V.schoolroomUpgradeSkills * 20) || ((slave.vagina >= 0) && (slave.skill.vaginal < 10 + V.schoolroomUpgradeSkills * 20))) { break; } else { RAFacilityRemove(slave, rule); // before deleting rule.setAssignment diff --git a/src/js/slaveListing.js b/src/js/slaveListing.js index 83175eb5e59ffe27e0e378c6bb084cc9b5aaf358..4a6e684e00ed800d221b5e3b211ed62842cccc4b 100644 --- a/src/js/slaveListing.js +++ b/src/js/slaveListing.js @@ -260,7 +260,7 @@ App.UI.SlaveList.render = function() { } else if (slave.assignment === "learn in the schoolroom") { let lessons = []; let i; - if (!slave.intelligenceImplant >= 30) { + if ((V.schoolroomRemodelBimbo === 1 && slave.intelligenceImplant > -15) || (V.schoolroomRemodelBimbo === 0 && slave.intelligenceImplant < 30)) { lessons.push("general"); } if (!((slave.voice === 0) || (slave.accent <= 1) || ((V.schoolroomUpgradeLanguage === 0) && (slave.accent <= 2)))) { diff --git a/src/js/slaveSummaryWidgets.js b/src/js/slaveSummaryWidgets.js index 26756f7809d38be388cd2756b0906eaa8c92ae4a..ad6050842684146a34259706af18212895533980 100644 --- a/src/js/slaveSummaryWidgets.js +++ b/src/js/slaveSummaryWidgets.js @@ -2484,6 +2484,8 @@ window.SlaveSummaryUncached = (function() { education = "(e+)"; } else if (slave.intelligenceImplant >= 15) { education = "(e)"; + } else if (slave.intelligenceImplant <= -15) { + education = "(e-)"; } if (intelligence >= 130) { naturalIntelligence = "I++++"; @@ -2628,6 +2630,8 @@ window.SlaveSummaryUncached = (function() { education = ", well educated"; } else if (slave.intelligenceImplant >= 15) { education = ", educated"; + } else if (slave.intelligenceImplant <= -15) { + education = ", hindered"; } if (intelligence >= 130) { naturalIntelligence = "Genius"; diff --git a/src/uncategorized/BackwardsCompatibility.tw b/src/uncategorized/BackwardsCompatibility.tw index be7c6f83744844c5083f5e8effb9a71130aa4527..604ace82835070fa9c36285f985c8d6fef24e2e6 100644 --- a/src/uncategorized/BackwardsCompatibility.tw +++ b/src/uncategorized/BackwardsCompatibility.tw @@ -785,6 +785,9 @@ <<if ndef $killChoice>> <<set $killChoice = -1>> <</if>> +<<if ndef $schoolroomRemodelBimbo>> + <<set $schoolroomRemodelBimbo = 0>> +<</if>> <<if ndef $incubator>> <<set $incubator = 0>> <</if>> diff --git a/src/uncategorized/fullReport.tw b/src/uncategorized/fullReport.tw index 36ca1e09dd460eb841628555ee68b1fcad820512..70e785c7c390db41eebfe1dd6e6d76c5ebc54834 100644 --- a/src/uncategorized/fullReport.tw +++ b/src/uncategorized/fullReport.tw @@ -23,7 +23,7 @@ <<set $servantMilkersMultiplier = 1>> <<include "SA get milked">> <<case "take classes">> - <<include "SA take classes">> + <<= saTakeClasses($slaves[$i])>> <<case "please you">> <<include "SA please you">> <<case "be a subordinate slave">> diff --git a/src/uncategorized/saTakeClasses.tw b/src/uncategorized/saTakeClasses.tw deleted file mode 100644 index fe8f9da10d3209507dfc71e24ed4ba602550c593..0000000000000000000000000000000000000000 --- a/src/uncategorized/saTakeClasses.tw +++ /dev/null @@ -1,261 +0,0 @@ -:: SA take classes [nobr] - -<<set _learning = 1>> - -<<if $slaves[$i].fetish == "mindbroken">> - is no longer mentally capable and @@.yellow;has been dropped from class.@@ - <<if $slaves[$i].assignment == "take classes">> - <<= removeJob($slaves[$i], "take classes")>> - <</if>> -<<elseif ($slaves[$i].assignment == "learn in the schoolroom")>> - <<if ($Schoolteacher != 0)>> - <<setLocalPronouns $Schoolteacher 2>> - <<set _teaching = $Schoolteacher.intelligence+$Schoolteacher.intelligenceImplant>> - <<if ($Schoolteacher.visualAge > 35)>> - <<set _teaching += 10>> - <</if>> - <<if setup.schoolteacherCareers.includes($Schoolteacher.career)>> - <<set _teaching += 10>> - <</if>> - <<if ($Schoolteacher.face > 40)>> - <<set _teaching += 10>> - <</if>> - <<if random(1,150) < _teaching>> - <<set _learning += 1>> - <</if>> - takes courses in slavery<<if $schoolroomUpgradeSkills + $schoolroomUpgradeRemedial + $schoolroomUpgradeLanguage != 0>>, using $schoolroomName's improved educational materials, <</if>> under $Schoolteacher.slaveName's supervision; - <<if ($slaves[$i].devotion > 20)>> - $he is such an obedient slave that _he2 @@.hotpink;encourages $him@@ to be the best slave $he can. - <<set $slaves[$i].devotion += 2>> - <<elseif ($slaves[$i].trust < -20)>> - $he obeys out of fear, so _he2 @@.hotpink;encourages $him@@ to be a better slave. - <<set $slaves[$i].devotion += 1>> - <<else>> - $he is resistant, so _he2 ends up mostly @@.gold;punishing $him,@@ increasing $his @@.mediumorchid;dislike for slavery.@@ - <<set $slaves[$i].devotion -= 2>> - <<set $slaves[$i].trust -= 4>> - <</if>> - <<else>> - takes courses in slavery<<if $schoolroomUpgradeSkills + $schoolroomUpgradeRemedial + $schoolroomUpgradeLanguage != 0>>, using $schoolroomName's improved educational materials, <</if>> under $assistantName's supervision; - <<if ($slaves[$i].devotion > 20)>> - $he is such an obedient slave that your assistant mostly @@.hotpink;encourages $him.@@ - <<set $slaves[$i].devotion += 2>> - <<elseif ($slaves[$i].trust < -20)>> - $he obeys out of fear, so your assistant mostly @@.hotpink;encourages $him.@@ - <<set $slaves[$i].devotion += 1>> - <<else>> - $he is resistant, so your assistant mostly @@.gold;punishes $him,@@ increasing $his @@.mediumorchid;dislike for slavery.@@ - <<set $slaves[$i].devotion -= 2>> - <<set $slaves[$i].trust -= 4>> - <</if>> - <</if>> -<<else>> - takes courses in slavery<<if $schoolroomUpgradeSkills + $schoolroomUpgradeRemedial + $schoolroomUpgradeLanguage != 0>>, using $schoolroomName's improved educational materials, <</if>> under $assistantName's supervision; - <<if ($slaves[$i].devotion > 20)>> - $he is such an obedient slave that your assistant mostly @@.hotpink;encourages $him.@@ - <<set $slaves[$i].devotion += 2>> - <<elseif ($slaves[$i].trust < -20)>> - $he obeys out of fear, so your assistant mostly @@.hotpink;encourages $him.@@ - <<set $slaves[$i].devotion += 1>> - <<else>> - $he is resistant, so your assistant mostly @@.gold;punishes $him,@@ increasing $his @@.mediumorchid;dislike for slavery.@@ - <<set $slaves[$i].devotion -= 2>> - <<set $slaves[$i].trust -= 4>> - <</if>> -<</if>> - -<<if !canHear($slaves[$i]) && !canSee($slaves[$i])>> - With $his inability to hear and see, absorbing the content is extremely difficult. - <<set _learning = -2>> -<<elseif !canHear($slaves[$i]) || !canSee($slaves[$i])>> - With $his impairments, $he needs special lessons to properly learn. - <<set _learning = 0>> -<</if>> - -<<if $slaves[$i].fetish != "mindbroken">> - <<if ($slaves[$i].intelligence > 95)>> - $He is a genius, - <<set _learning += 1>> - <<elseif ($slaves[$i].intelligence > 50)>> - $He is highly intelligent - <<set _learning += 1>> - <<elseif ($slaves[$i].intelligence > 15)>> - $He is of above average intelligence - <<if (random(1,100) < 70)>> - <<set _learning += 1>> - <</if>> - <<elseif ($slaves[$i].intelligence >= -15)>> - $He is of average intelligence - <<if (random(1,100) < 50)>> - <<set _learning += 1>> - <</if>> - <<else>> - <<set _slaveDensity = 50 + $slaves[$i].intelligence>> - <<if ($schoolroomUpgradeRemedial == 1) && random(1,100) < 50>> - <<set _slaveDensity = 55>> - <</if>> - <<if (random(1,100) > _slaveDensity)>> - <<set _learning += 1>> - <</if>> - <<if ($slaves[$i].intelligence >= -50)>> - $He is of below average intelligence - <<elseif ($slaves[$i].intelligence >= -95)>> - $He is quite stupid - <<else>> - $He is an imbecile, - <</if>> - <</if>> - - <<if ($slaves[$i].devotion > 95)>> - and worshipful of you, - <<set _learning += 1>> - <<elseif ($slaves[$i].devotion > 50)>> - and devoted to you, - <<if (random(1,100) < 70)>> - <<set _learning += 1>> - <</if>> - <<elseif ($slaves[$i].devotion > 20)>> - and obedient to you, - <<if (random(1,100) < 50)>> - <<set _learning += 1>> - <</if>> - <<elseif ($slaves[$i].trust < -20)>> - and frightened of you, - <<if (random(1,100) < 50)>> - <<set _learning += 1>> - <</if>> - <<else>> - and neither likes you nor is afraid of you, - <</if>> - - <<if (_learning <= 1)>> - and $he learns slowly this week. - <<elseif (_learning == 2)>> - and $he does well with $his studies this week. - <<else>> - and $he is perfectly studious this week. - <</if>> - - <<if $slaves[$i].lactation == 1 && $slaves[$i].assignment == "learn in the schoolroom" && $Schoolteacher != 0 && !isAmputee($Schoolteacher)>> - With $his natural lactation, $he often finds $himself milked before the class by $Schoolteacher.slaveName both to serve as a lesson and to keep $him from becoming a milky mess. - <<set $slaves[$i].lactationDuration = 2, $slaves[$i].boobs -= $slaves[$i].boobsMilk, $slaves[$i].boobsMilk = 0>> - <</if>> - - <<set _seed = 0>> - <<set _skillIncrease = 10+Math.floor(($slaves[$i].intelligence+$slaves[$i].intelligenceImplant)/32)>> - <<for _j = 0; _j < _learning; _j++>> - <<if ($slaves[$i].devotion <= 20) && (_seed == 0)>> - Since $he is wanting in basic obedience, $he suffers through courses on @@.hotpink;$his place@@ in the Free Cities world. - <<set $slaves[$i].devotion += 10>> - <<set _seed = 1>> - <<elseif ($slaves[$i].skill.oral <= 10)>> - Since $he is orally incompetent, $he is taught basic gag reflex suppression exercises and other simple oral things. - <<= SkillIncrease.Oral($slaves[$i], _skillIncrease)>> - <<elseif ($slaves[$i].skill.vaginal <= 10) && ($slaves[$i].vagina > 0) && canDoVaginal($slaves[$i])>> - Since $he is unskilled at using $his pussy, $he is taught Kegel exercises and other simple vaginal skills. - <<= SkillIncrease.Vaginal($slaves[$i], _skillIncrease)>> - <<elseif ($slaves[$i].skill.vaginal <= 10) && ($slaves[$i].vagina >= 0)>> - Since $he is unskilled at using $his pussy and not permitted to learn through practice, $he is taught Kegel exercises, vaginal basics and several new positions. - <<= SkillIncrease.Vaginal($slaves[$i], _skillIncrease)>> - <<elseif ($slaves[$i].skill.anal <= 10) && ($slaves[$i].anus > 0) && canDoAnal($slaves[$i])>> - Since $he is a novice at taking it up $his butt, $he is taught relaxation exercises and other simple anal basics. - <<= SkillIncrease.Anal($slaves[$i], _skillIncrease)>> - <<elseif ($slaves[$i].skill.anal <= 10) && ($slaves[$i].anus >= 0)>> - Since $he is a novice at taking it up $his butt and not permitted to learn through practice, $he is taught relaxation exercises and other simple anal basics. - <<= SkillIncrease.Anal($slaves[$i], _skillIncrease)>> - <<elseif ($slaves[$i].skill.whoring <= 10)>> - Since $he has little idea what's involved in selling $his body, $he is taught basic safety practices and other simple prostitution skills. - <<= SkillIncrease.Whore($slaves[$i], _skillIncrease)>> - <<elseif ($slaves[$i].skill.entertainment <= 10)>> - Since $his entertainment value is limited to $his holes, $he is taught simple conversational skills and other courtesan's essentials. - <<= SkillIncrease.Entertain($slaves[$i], _skillIncrease)>> - <<elseif ($schoolroomUpgradeSkills == 1)>> - <<if ($slaves[$i].skill.oral <= 30)>> - Having completed the basic sex slave curriculum, $he studies more advanced ways to use $his lips and tongue to please cocks, cunts, and asses. - <<= SkillIncrease.Oral($slaves[$i], _skillIncrease)>> - <<elseif ($slaves[$i].skill.whoring <= 30)>> - Having completed the basic sex slave curriculum, $he studies intermediate prostitution, including how to stay as safe as possible and maximize $his efficiency. - <<= SkillIncrease.Whore($slaves[$i], _skillIncrease)>> - <<elseif ($slaves[$i].skill.entertainment <= 30)>> - Having completed the basic sex slave curriculum, $he studies courtesanship, including social dynamics and flirtation more subtle than straightforward begging for sex. - <<= SkillIncrease.Entertain($slaves[$i], _skillIncrease)>> - <<elseif ($slaves[$i].skill.vaginal <= 30) && ($slaves[$i].vagina >= 0)>> - Having completed the basic sex slave curriculum, $he studies more advanced techniques and exotic positions to make use of $his <<if $slaves[$i].vagina == 0>>virgin pussy for use in $his first time<<else>>pussy<</if>>. - <<= SkillIncrease.Vaginal($slaves[$i], _skillIncrease)>> - <<elseif ($slaves[$i].skill.anal <= 30)>> - Having completed the basic sex slave curriculum, $he studies more advanced techniques and exotic positions to make use of $his <<if $slaves[$i].vagina == 0>>virgin ass for use in $his first time<<else>>ass<</if>>. - <<= SkillIncrease.Anal($slaves[$i], _skillIncrease)>> - <</if>> - <</if>> - <</for>> - - <<if ($slaves[$i].intelligenceImplant < 30) && ($slaves[$i].assignment == "learn in the schoolroom")>> - $He makes some progress - <<if $slaves[$i].intelligenceImplant < 15>> - towards a basic education. - <<else>> - in furthering $his education. - <</if>> - <<set $slaves[$i].intelligenceImplant += 1*_learning>> - <<if ($slaves[$i].intelligenceImplant >= 30)>> - <<set $slaves[$i].intelligenceImplant = 30>> - $He has completed $his advanced education, and for most purposes $he has become @@.deepskyblue;more intelligent.@@ - <</if>> - <<elseif ($slaves[$i].intelligenceImplant < 15) && ($slaves[$i].assignment == "take classes")>> - $He makes some progress towards a basic education. - <<set $slaves[$i].intelligenceImplant += 1*_learning>> - <<if ($slaves[$i].intelligenceImplant >= 15)>> - <<set $slaves[$i].intelligenceImplant = 15>> - $He has completed a course of slave education, and for most purposes $he has become @@.deepskyblue;more intelligent.@@ - <</if>> - <</if>> - - <<if ($slaves[$i].intelligenceImplant >= 15)>> - <<if $slaves[$i].voice != 0>> - <<if ($slaves[$i].intelligence > random(-110,110))>> - <<if ($schoolroomUpgradeLanguage == 0)>> - <<if ($slaves[$i].accent > 3) && ($week-$slaves[$i].weekAcquired > 24)>> - $He has @@.green;learned some $language,@@ and can make $his point with some gesturing, though $he speaks $language horribly. - <<set $slaves[$i].accent -= 1>> - <<if $slaves[$i].speechRules == "language lessons">> - <<set $slaves[$i].speechRules = "accent elimination">> - <</if>> - <<elseif ($slaves[$i].accent == 3)>> - $He has @@.green;learned functional $language,@@ and can make $himself understood, though $his <<print aNational($slaves[$i].nationality)>> accent is still quite heavy. - <<set $slaves[$i].accent -= 1>> - <</if>> - <<else>> - <<if ($slaves[$i].accent > 3)>> - <<if ($week-$slaves[$i].weekAcquired > 16)>> - $He has @@.green;learned some $language,@@ and can make $his point with some gesturing, though $he speaks $language horribly. - <<set $slaves[$i].accent -= 1>> - <<if $slaves[$i].speechRules == "language lessons">> - <<set $slaves[$i].speechRules = "accent elimination">> - <</if>> - <</if>> - <<elseif ($slaves[$i].accent >= 2)>> - $He has @@.green;learned decent $language,@@ though $he retains enough of $his <<print aNational($slaves[$i].nationality)>> accent to make $his voice distinctly sexy. - <<set $slaves[$i].accent = 1>> - <</if>> - <</if>> - <</if>> - <</if>> - <</if>> - - <<if ($slaves[$i].intelligenceImplant >= 15) && ($slaves[$i].assignment == "take classes")>> - <<if ($slaves[$i].voice == 0) || ($slaves[$i].accent <= 1) || (($schoolroomUpgradeLanguage == 0) && ($slaves[$i].accent <= 2))>> - <<if ($slaves[$i].skill.oral > 30) || (($schoolroomUpgradeSkills == 0) && ($slaves[$i].skill.oral > 10))>> - <<if ($slaves[$i].skill.whoring > 30) || (($schoolroomUpgradeSkills == 0) && ($slaves[$i].skill.whoring > 10))>> - <<if ($slaves[$i].skill.entertainment > 30) || (($schoolroomUpgradeSkills == 0) && ($slaves[$i].skill.entertainment > 10))>> - <<if ($slaves[$i].skill.anal > 30) || (($schoolroomUpgradeSkills == 0) && ($slaves[$i].skill.anal > 10))>> - <<if ($slaves[$i].skill.vaginal > 30) || (($schoolroomUpgradeSkills == 0) && ($slaves[$i].skill.vaginal > 10)) || ($slaves[$i].vagina < 0)>> - $He can learn little from further classes, so @@.yellow;$his assignment has defaulted to rest.@@ - <<= removeJob($slaves[$i], "take classes")>> - <</if>> - <</if>> - <</if>> - <</if>> - <</if>> - <</if>> - <</if>> -<</if>> diff --git a/src/uncategorized/schoolroom.tw b/src/uncategorized/schoolroom.tw index eb63e853336aa985cc81de3a6520cd516c39297c..00bd71b96387145c1c5331e5b03aa5c4db008a5e 100644 --- a/src/uncategorized/schoolroom.tw +++ b/src/uncategorized/schoolroom.tw @@ -76,7 +76,7 @@ $schoolroomNameCaps is well-equipped, with wallscreens to display lessons. These $Schoolteacher.slaveName is alone in $schoolroomName, and has nothing to do but work on $his lesson plans. <<else>> None of your slaves are learning in $schoolroomName. - [[Decommission the schoolroom|Main][$schoolroom = 0, $schoolroomUpgradeSkills = 0, $schoolroomUpgradeLanguage = 0, $schoolroomUpgradeRemedial = 0, $schoolroomDecoration = "standard"]] + [[Decommission the schoolroom|Main][$schoolroom = 0, $schoolroomUpgradeSkills = 0, $schoolroomUpgradeLanguage = 0, $schoolroomUpgradeRemedial = 0, $schoolroomRemodelBimbo = 0, $schoolroomDecoration = "standard"]] <</if>> <<if $SchlRiIDs.length > 0>> @@ -104,10 +104,26 @@ $schoolroomNameCaps is well-equipped, with wallscreens to display lessons. These <</if>> <br> -<<if $schoolroomUpgradeRemedial == 1>> - $schoolroomNameCaps has been upgraded with advanced teaching tools to help even the stupidest slave learn at an acceptable pace. Intelligent slaves won't learn much faster as a result, but idiots will benefit a great deal. +<<if $schoolroomRemodelBimbo == 1>> + <<set _Tmult3 = Math.trunc(7500*$upgradeMultiplierArcology*$HackingSkillMultiplier)>> + $schoolroomNameCaps is designed with moronic slaves in mind and seeks to dumb down slaves by providing them a confusing, contradictory education that retards decision making skills and undoes existing schooling. [[Restore the curriculum to the standard|Schoolroom][cashX(forceNeg(_Tmult3), "capEx"), $schoolroomRemodelBimbo = 0]] //Costs <<print cashFormat(_Tmult3)>>// + <br> + <<if $schoolroomUpgradeRemedial == 1>> + $schoolroomNameCaps has been upgraded with advanced teaching tools to help even the smartest slave learn at an acceptable pace. Dumb slaves won't learn much faster as a result, but smarties will benefit a great deal. + <<else>> + $schoolroomNameCaps teaches woefully smart slaves using its modified methods. [[Purchase specialized materials to help smart slaves get on the right track|Schoolroom][cashX(forceNeg(_Tmult2), "capEx"), $schoolroomUpgradeRemedial = 1]] //Costs <<print cashFormat(_Tmult2)>>// + <</if>> <<else>> - $schoolroomNameCaps teaches idiots using standard methods. [[Purchase specialized materials to help stupid slaves learn good|Schoolroom][cashX(forceNeg(_Tmult2), "capEx"), $schoolroomUpgradeRemedial = 1]] //Costs <<print cashFormat(_Tmult2)>>// + <<if $arcologies[0].FSIntellectualDependency > 800>> /* temp disabled */ + <<set _Tmult3 = Math.trunc(7500*$upgradeMultiplierArcology*$HackingSkillMultiplier)>> + $schoolroomNameCaps is designed with intelligent slaves in mind and seeks to smarten slaves by providing them with an education. [[Redesign the curriculum to undo pesky educations and retard slaves while benefiting the most simple of minds|Schoolroom][cashX(forceNeg(_Tmult3), "capEx"), $schoolroomRemodelBimbo = 1]] //Costs <<print cashFormat(_Tmult3)>>// + <br> + <</if>> + <<if $schoolroomUpgradeRemedial == 1>> + $schoolroomNameCaps has been upgraded with advanced teaching tools to help even the stupidest slave learn at an acceptable pace. Intelligent slaves won't learn much faster as a result, but idiots will benefit a great deal. + <<else>> + $schoolroomNameCaps teaches idiots using standard methods. [[Purchase specialized materials to help stupid slaves learn good|Schoolroom][cashX(forceNeg(_Tmult2), "capEx"), $schoolroomUpgradeRemedial = 1]] //Costs <<print cashFormat(_Tmult2)>>// + <</if>> <</if>> <br><br> diff --git a/src/uncategorized/schoolroomReport.tw b/src/uncategorized/schoolroomReport.tw index 4dd48d0923cca94c4c10324ee4a821a28de2c657..db373d022f46ba22a1144e76961bd1e8e56a2533 100644 --- a/src/uncategorized/schoolroomReport.tw +++ b/src/uncategorized/schoolroomReport.tw @@ -68,7 +68,7 @@ <<set _idleBonus++>> <</if>> <<if ($Schoolteacher.intelligenceImplant >= 15)>> - Since $he's educated $himself, $he understands $his students. + Since $he's educated $himself, $he understands <<if $schoolroomRemodelBimbo != 0>>how best to apply the new lesson plan<<else>>$his students<</if>>. <<set _idleBonus++>> <</if>> <<if ($Schoolteacher.face > 40)>> @@ -166,7 +166,7 @@ <<set _restedSlaves++, _dI--, _DL-->> <<continue>> <<else>> - <<if ($slaves[$i].intelligenceImplant >= 30)>> + <<if ($slaves[$i].intelligenceImplant >= 30 && $schoolroomRemodelBimbo != 1) || ($slaves[$i].intelligenceImplant <= -15 && $schoolroomRemodelBimbo == 1)>> <<if ($slaves[$i].voice == 0) || ($slaves[$i].accent <= 1) || (($schoolroomUpgradeLanguage == 0) && ($slaves[$i].accent <= 2))>> <<if ($slaves[$i].skill.oral > 30) || (($schoolroomUpgradeSkills == 0) && ($slaves[$i].skill.oral > 10))>> <<if ($slaves[$i].skill.whoring > 30) || (($schoolroomUpgradeSkills == 0) && ($slaves[$i].skill.whoring > 10))>> @@ -201,7 +201,7 @@ <<else>> is studying in $schoolroomName. <</if>> - <br> $He <<include "SA take classes">> + <br> $He <<= saTakeClasses($slaves[$i])>> <br> <<= saChoosesOwnClothes($slaves[$i])>> <<include "SA rules">> @@ -214,8 +214,8 @@ <<else>> <<silently>> <<include "SA chooses own job">> - <<include "SA take classes">> - <<set _chosenClothes = saChoosesOwnClothes($slaves[$i])>> + <<run saTakeClasses($slaves[$i])>> + <<run saChoosesOwnClothes($slaves[$i])>> <<include "SA rules">> <<include "SA diet">> <<include "SA long term effects">>