diff --git a/devNotes/encyclopedia.js b/devNotes/encyclopedia.js index 76fc5ad4c826635f0805a007b2e61bf6ede3d161..06b7902a75d6bde0554fdfb20a320f141d2374e4 100644 --- a/devNotes/encyclopedia.js +++ b/devNotes/encyclopedia.js @@ -282,139 +282,6 @@ App.Encyclopedia.UI = function() { r.push(link("sexually self neglectful", "Self Neglect")); r.addToLast("."); break; - // SLAVE BEHAVIORAL FLAWS - case "Flaws": - r.push(highlight("Unflinching"), "are negative slave qualities."); - r.push("They decrease slaves' value and performance at sexual assignments, and each flaw also has other, differing effects. Each flaw is associated with a corresponding"); - r.push(link("quirk", "Quirks"), ", and slave can have two flaws (a sexual flaw and a behavioral flaw), just like quirks. New slaves will often have flaws, and tough experiences can also cause them to appear."); - r.toParagraph(); - - r.push("Flaws can softened or removed either by orders given to the", link("Head Girl"), "or via personal attention provided by the player character."); - r.push("Flaws can also be naturally softened or removed by fetishes, and can resolve on their own if a slave is happy."); - r.toNode("div"); - break; - case "Anorexic": - r.push(highlight("Anorexic"), "is a behavioral", link("flaw", "Flaws"), "that can be softened into the"); - r.push(link("insecure"), link("quirk.", "Quirks")); - r.push("In addition to the standard penalties to value and performance on sexual assignments, anorexia can cause unexpected weight loss. Anorexics will enjoy dieting but dislike gaining weight, and may bilk attempts to make them fatten up."); - r.toNode("div"); - break; - case "Arrogant": - r.push(highlight("Arrogant"), "is a behavioral", link("flaw", "Flaws"), "that can be softened into the"); - r.push(link("confident"), link("quirk.", "Quirks")); - r.push("The", link("submissive", "Submissives"), "fetish fetish can do this naturally."); - r.push("In addition to the standard penalties to value and performance on sexual assignments, weekly", devotion(), "gains are limited."); - r.toNode("div"); - break; - case "Bitchy": - r.push(highlight("Bitchy"), "is a behavioral", link("flaw", "Flaws"), "that can be softened into the"); - r.push(link("cutting"), link("quirk.", "Quirks")); - r.push("The", link("humiliation", "Humiliation Fetishists"), "fetish fetish can do this naturally."); - r.push("In addition to the standard penalties to value and performance on sexual assignments, weekly", devotion(), "gains are limited."); - r.toNode("div"); - break; - case "Devout": - r.push(highlight("Devout"), "is a behavioral", link("flaw", "Flaws"), "that can be softened into the"); - r.push(link("sinful"), link("quirk.", "Quirks")); - r.push("A very powerful sex drive can do this naturally."); - r.push("In addition to the standard penalties to value and performance on sexual assignments, weekly", devotion(), "gains are limited."); - r.toNode("div"); - break; - case "Gluttonous": - r.push(highlight("Gluttonous"), "is a behavioral", link("flaw", "Flaws"), "that can be softened into the"); - r.push(link("fitness"), link("quirk.", "Quirks")); - r.push("In addition to the standard penalties to value and performance on sexual assignments, gluttons will enjoy gaining weight but dislike dieting, and may bilk attempts to make them lose weight."); - r.toNode("div"); - break; - case "Hates Men": - r.push(highlight("Hates men"), "is a behavioral", link("flaw", "Flaws"), "that can be softened into the"); - r.push(link("adores women"), link("quirk", "Quirks"), "by training,"); - r.push("a good", link("Attendant"), ", a powerful sex drive, or the", link("boob fetish.", "Boob Fetishists")); - r.push("Strong attraction to men or the", link("pregnancy fetish", "Pregnancy Fetishists"), "will soften it so she", link("adores men"), "instead."); - r.push("This flaw can also be removed by serving a player character or another slave with a dick."); - r.toNode("div"); - break; - case "Hates Women": - r.push(highlight("Hates women"), "is a behavioral", link("flaw", "Flaws"), "that can be softened into the"); - r.push(link("adores men"), link("quirk", "Quirks"), "by training,"); - r.push("a good", link("Attendant"), ", a powerful sex drive, or the", link("cumslut", "Cumsluts"), "fetish."); - r.push("Strong attraction to women or the", link("pregnancy fetish", "Pregnancy Fetishists"), "will soften it so she", link("Adores women"), "instead."); - r.push("This flaw can also be removed by serving a player character or another slave with a vagina."); - r.toNode("div"); - break; - case "Liberated": - r.push(highlight("Liberated"), "is a behavioral", link("flaw", "Flaws"), "that can be softened into the"); - r.push(link("advocate"), link("quirk.", "Quirks")); - r.push("The", link("submissive", "Submissives"), "fetish can do this naturally."); - r.push("In addition to the standard penalties to value and performance on sexual assignments, weekly", devotion(), "gains are limited."); - r.toNode("div"); - break; - case "Odd": - r.push(highlight("Odd"), "is a behavioral", link("flaw", "Flaws"), "that can be softened into the"); - r.push(link("funny"), link("quirk.", "Quirks")); - r.push("The", link("humiliation", "Humiliation Fetishists"), "fetish can do this naturally."); - r.push("In addition to the standard penalties to value and performance on sexual assignments, weekly", devotion(), "gains are limited."); - r.toParagraph(); - break; - // SLAVE SEXUAL FLAWS - case "Apathetic": - r.push(highlight("Apathetic"), "is a sexual", link("flaw", "Flaws"), "that can be softened into the"); - r.push(link("caring"), link("quirk", "Quirks"), "by training,"); - r.push("a good", link("Attendant"), ", a powerful sex drive, or the", link("submissive", "Humiliation Submissive"), "fetish."); - r.push("It can also be removed by the", link("dom", "Doms"), "fetish."); - r.toParagraph(); - break; - case "Crude": - r.push(highlight("Crude"), "is a sexual", link("flaw", "Flaws"), "that can be softened into the"); - r.push(link("unflinching"), link("quirk", "Quirks"), "by training,"); - r.push("a good", link("Attendant"), ", a powerful sex drive, or the", link("cumslut", "Cumsluts"), "fetish."); - r.toParagraph(); - break; - case "Hates Anal": - r.push(highlight("Hates anal"), "is a sexual", link("flaw", "Flaws"), "that can be softened into the"); - r.push(link("painal queen"), link("quirk", "Quirks"), "by training,"); - r.push("a good", link("Attendant"), ", a powerful sex drive, or the", link("buttslut", "Buttsluts"), "fetish."); - r.push("This flaw can also be removed by serving the player character."); - r.toParagraph(); - break; - case "Hates Oral": - r.push(highlight("Hates oral"), "is a sexual", link("flaw", "Flaws"), "that can be softened into the"); - r.push(link("gagfuck queen"), link("quirk", "Quirks"), "by training,"); - r.push("a good", link("Attendant"), ", a powerful sex drive, or the", link("cumslut", "Cumsluts"), "fetish."); - r.push("This flaw can also be removed by serving the player character."); - r.toParagraph(); - break; - case "Hates Penetration": - r.push(highlight("Hates penetration"), "is a sexual", link("flaw", "Flaws"), "that can be softened into the"); - r.push(link("strugglefuck queen"), link("quirk", "Quirks"), "by training,"); - r.push("a good", link("Attendant"), ", a powerful sex drive, or the", link("buttslut", "Buttsluts"), "fetish."); - r.push("This flaw can also be removed by serving the player character."); - r.toParagraph(); - break; - case "Idealistic": - r.push(highlight("Idealistic"), "is a sexual", link("flaw", "Flaws"), "that can be softened into the"); - r.push(link("romantic"), link("quirk", "Quirks"), "by training,"); - r.push("a good", link("Attendant"), ", a powerful sex drive, or the", link("submissive", "Humiliation Submissive"), "fetish."); - r.toParagraph(); - break; - case "Judgemental": - r.push(highlight("Judgemental"), "is a sexual", link("flaw", "Flaws"), "that can be softened into the"); - r.push(link("size queen", "Size Queen"), link("quirk", "Quirks"), "by training,"); - r.push("a good", link("Attendant"), ", a powerful sex drive, or the", link("submissive", "Humiliation Submissive"), "fetish."); - r.toParagraph(); - break; - case "Repressed": - r.push(highlight("Repressed"), "is a sexual", link("flaw", "Flaws"), "that can be softened into the"); - r.push(link("perverted"), link("quirk", "Quirks"), "by training,"); - r.push("a good", link("Attendant"), ", a powerful sex drive, or the", link("cumslut", "Cumsluts"), "fetish, or the", link("buttslut", "Buttsluts"), "fetish."); - r.toParagraph(); - break; - case "Shamefast": - r.push(highlight("Shamefast"), "is a sexual", link("flaw", "Flaws"), "that can be softened into the"); - r.push(link("tease"), link("quirk", "Quirks"), "by training,"); - r.push("a good", link("Attendant"), ", a powerful sex drive, or the", link("submissive", "Humiliation Submissive"), "fetish."); - r.toParagraph(); - break; // SLAVE PARAPHILIAS case "Paraphilias": r.push(highlight("Paraphilias"), "are intense forms of sexual", link("flaws"), "that cannot be softened."); diff --git a/js/003-data/slaveMods.js b/js/003-data/slaveMods.js index 7489c5bdec378b87002d512904cbb7dcafc7e807..31300e639686def408fe55c2bebb4b98d31a4598 100644 --- a/js/003-data/slaveMods.js +++ b/js/003-data/slaveMods.js @@ -506,7 +506,7 @@ App.Medicine.Modification.faceShape = new Map([ desc: `faces are moderately bad for attractiveness` }], ["masculine", { - desc: ``, + // TODO desc: ``, get requirements() { return V.seeDicks !== 0; } }] ]); @@ -530,7 +530,7 @@ App.Medicine.Modification.teeth = new Map([ desc: `have a negative impact on attractiveness, but less than crooked teeth, and will eventually straighten the slave's teeth. They can be applied to straight teeth or left on after they are no longer useful, if desired.` }], ["cosmetic braces", { - desc: `` + // TODO desc: `` }], ["removable", { desc: `teeth can pass as normal teeth and thus have no attractiveness impact, but do alter some sex scenes.`, @@ -548,18 +548,18 @@ App.Medicine.Modification.teeth = new Map([ sharp: true }], ["fangs", { - desc: ``, + // TODO desc: ``, sharp: true }], ["fang", { - desc: ``, + // TODO desc: ``, sharp: true }], ["baby", { - desc: ``, + // TODO desc: ``, }], ["mixed", { - desc: ``, + // TODO desc: ``, }], ]); /** diff --git a/src/gui/Encyclopedia/encyclopedia.tw b/src/gui/Encyclopedia/encyclopedia.tw index c640cdd55ac6460a3df0d4e2c7c32608d8c52e90..a2eaaff662e05a48208302a3d10e7c9257a157c7 100644 --- a/src/gui/Encyclopedia/encyclopedia.tw +++ b/src/gui/Encyclopedia/encyclopedia.tw @@ -47,7 +47,7 @@ $encyclopedia <br><br> <h3>Extras</h3> <<= App.Encyclopedia.Dialog.linkSC("Game Mods", "Game Mods")>> - <br><<= App.Encyclopedia.Dialog.linkSC("Lore")>> + <br><<= App.Encyclopedia.Dialog.linkSC("Lore", "Lore")>> <br><<= App.Encyclopedia.Dialog.linkSC("Credits", "Credits")>> </div> @@ -199,88 +199,6 @@ SLAVE FETISHES: <br><br>Submissives serving on public sexual assignment may become <<= App.Encyclopedia.Dialog.linkSC("sexually self neglectful", "Self Neglect")>>. -/********** -SLAVE BEHAVIORAL FLAWS -**********/ -<<case "Flaws">> - ''Flaws '' are negative slave qualities. They decrease slaves' value and performance at sexual assignments, and each flaw also has other, differing effects. Each flaw is associated with a corresponding <<= App.Encyclopedia.Dialog.linkSC("quirk", "Quirks")>>, and slave can have two flaws (a sexual flaw and a behavioral flaw), just like quirks. New slaves will often have flaws, and tough experiences can also cause them to appear. - - <br><br>The <<= App.Encyclopedia.Dialog.linkSC("Head Girl", "Head Girl")>> can be ordered to soften or remove flaws, and the player character can soften or remove flaws with personal attention. Flaws can also be naturally softened or removed by fetishes, and can resolve on their own if a slave is happy. - - -<<case "Anorexic">> - ''Anorexic '' is a behavioral <<= App.Encyclopedia.Dialog.linkSC("flaw", "Flaws")>> that can be softened into the <<= App.Encyclopedia.Dialog.linkSC("insecure", "Insecure")>> <<= App.Encyclopedia.Dialog.linkSC("quirk", "Quirks")>>. In addition to the standard penalties to value and performance on sexual assignments, anorexia can cause unexpected weight loss. Anorexics will enjoy dieting but dislike gaining weight, and may bilk attempts to make them fatten up. - - -<<case "Arrogant">> - ''Arrogant '' is a behavioral <<= App.Encyclopedia.Dialog.linkSC("flaw", "Flaws")>> that can be softened into the <<= App.Encyclopedia.Dialog.linkSC("confident", "Confident")>> <<= App.Encyclopedia.Dialog.linkSC("quirk", "Quirks")>>. The <<= App.Encyclopedia.Dialog.linkSC("submissive", "Submissives")>> fetish can do this naturally. In addition to the standard penalties to value and performance on sexual assignments, arrogance limits weekly @@.hotpink;<<= App.Encyclopedia.Dialog.linkSC("devotion", "From Rebellious to Devoted")>>@@ gains. - - -<<case "Bitchy">> - ''Bitchy '' is a behavioral <<= App.Encyclopedia.Dialog.linkSC("flaw", "Flaws")>> that can be softened into the <<= App.Encyclopedia.Dialog.linkSC("cutting", "Cutting")>> <<= App.Encyclopedia.Dialog.linkSC("quirk", "Quirks")>>. The <<= App.Encyclopedia.Dialog.linkSC("humiliation", "Humiliation Fetishists")>> fetish can do this naturally. In addition to the standard penalties to value and performance on sexual assignments, bitchiness limits weekly @@.hotpink;<<= App.Encyclopedia.Dialog.linkSC("devotion", "From Rebellious to Devoted")>>@@ gains. - - -<<case "Devout">> - ''Devout '' is a behavioral <<= App.Encyclopedia.Dialog.linkSC("flaw", "Flaws")>> that can be softened into the <<= App.Encyclopedia.Dialog.linkSC("sinful", "Sinful")>> <<= App.Encyclopedia.Dialog.linkSC("quirk", "Quirks")>>. A very powerful sex drive can do this naturally. In addition to the standard penalties to value and performance on sexual assignments, being devout limits weekly @@.hotpink;<<= App.Encyclopedia.Dialog.linkSC("devotion", "From Rebellious to Devoted")>>@@ gains. - - -<<case "Gluttonous">> - ''Gluttonous '' is a behavioral <<= App.Encyclopedia.Dialog.linkSC("flaw", "Flaws")>> that can be softened into the <<= App.Encyclopedia.Dialog.linkSC("fitness", "Fitness")>> <<= App.Encyclopedia.Dialog.linkSC("quirk", "Quirks")>>. In addition to the standard penalties to value and performance on sexual assignments, gluttons will enjoy gaining weight but dislike dieting, and may bilk attempts to make them lose weight. - - -<<case "Hates Men">> - ''Hates men '' is a behavioral <<= App.Encyclopedia.Dialog.linkSC("flaw", "Flaws")>> that can be softened into the <<= App.Encyclopedia.Dialog.linkSC("adores women", "Adores women")>> <<= App.Encyclopedia.Dialog.linkSC("quirk", "Quirks")>> by training, a good <<= App.Encyclopedia.Dialog.linkSC("Attendant", "Attendant")>>, a powerful sex drive, or the <<= App.Encyclopedia.Dialog.linkSC("boob fetish", "Boob Fetishists")>>. Strong attraction to men or the <<= App.Encyclopedia.Dialog.linkSC("pregnancy fetish", "Pregnancy Fetishists")>> will soften it so she <<= App.Encyclopedia.Dialog.linkSC("adores men", "Adores men")>> instead. This flaw can also be removed by serving a player character or another slave with a dick. - - -<<case "Hates Women">> - ''Hates women '' is a behavioral <<= App.Encyclopedia.Dialog.linkSC("flaw", "Flaws")>> that can be softened into the <<= App.Encyclopedia.Dialog.linkSC("adores men", "Adores men")>> <<= App.Encyclopedia.Dialog.linkSC("quirk", "Quirks")>> by training, a good <<= App.Encyclopedia.Dialog.linkSC("Attendant", "Attendant")>>, a powerful sex drive, or the <<= App.Encyclopedia.Dialog.linkSC("cumslut", "Cumsluts")>> fetish. Strong attraction to women or the <<= App.Encyclopedia.Dialog.linkSC("pregnancy fetish", "Pregnancy Fetishists")>> will soften it so she <<= App.Encyclopedia.Dialog.linkSC("adores women", "Adores women")>> instead. This flaw can also be removed by serving a player character or another slave with a vagina. - - -<<case "Liberated">> - ''Liberated '' is a behavioral <<= App.Encyclopedia.Dialog.linkSC("flaw", "Flaws")>> that can be softened into the <<= App.Encyclopedia.Dialog.linkSC("advocate", "Advocate")>> <<= App.Encyclopedia.Dialog.linkSC("quirk", "Quirks")>>. The <<= App.Encyclopedia.Dialog.linkSC("submissive", "Submissives")>> fetish can do this naturally. In addition to the standard penalties to value and performance on sexual assignments, being liberated limits weekly @@.hotpink;<<= App.Encyclopedia.Dialog.linkSC("devotion", "From Rebellious to Devoted")>>@@ gains. - - -<<case "Odd">> - ''Odd '' is a behavioral <<= App.Encyclopedia.Dialog.linkSC("flaw", "Flaws")>> that can be softened into the <<= App.Encyclopedia.Dialog.linkSC("funny", "Funny")>> <<= App.Encyclopedia.Dialog.linkSC("quirk", "Quirks")>>. The <<= App.Encyclopedia.Dialog.linkSC("humiliation", "Humiliation Fetishists")>> fetish can do this naturally. In addition to the standard penalties to value and performance on sexual assignments, being odd limits weekly @@.hotpink;<<= App.Encyclopedia.Dialog.linkSC("devotion", "From Rebellious to Devoted")>>@@ gains. - -/********** -SLAVE SEXUAL FLAWS -**********/ -<<case "Apathetic">> - ''Apathetic '' is a sexual <<= App.Encyclopedia.Dialog.linkSC("flaw", "Flaws")>> that can be softened into the <<= App.Encyclopedia.Dialog.linkSC("caring", "Caring")>> <<= App.Encyclopedia.Dialog.linkSC("quirk", "Quirks")>> by training, a good <<= App.Encyclopedia.Dialog.linkSC("Attendant", "Attendant")>>, a powerful sex drive, or the <<= App.Encyclopedia.Dialog.linkSC("submissive", "Humiliation Submissive")>> fetish. It can also be removed by the <<= App.Encyclopedia.Dialog.linkSC("dom", "Doms")>> fetish. - - -<<case "Crude">> - ''Crude '' is a sexual <<= App.Encyclopedia.Dialog.linkSC("flaw", "Flaws")>> that can be softened into the <<= App.Encyclopedia.Dialog.linkSC("unflinching", "Unflinching")>> <<= App.Encyclopedia.Dialog.linkSC("quirk", "Quirks")>> by training, a good <<= App.Encyclopedia.Dialog.linkSC("Attendant", "Attendant")>>, a powerful sex drive, or the <<= App.Encyclopedia.Dialog.linkSC("buttslut", "Buttsluts")>> fetish. - - -<<case "Hates Anal">> - ''Hates anal '' is a sexual <<= App.Encyclopedia.Dialog.linkSC("flaw", "Flaws")>> that can be softened into the <<= App.Encyclopedia.Dialog.linkSC("painal queen", "Painal Queen")>> <<= App.Encyclopedia.Dialog.linkSC("quirk", "Quirks")>> by training, a good <<= App.Encyclopedia.Dialog.linkSC("Attendant", "Attendant")>>, a powerful sex drive, or the <<= App.Encyclopedia.Dialog.linkSC("buttslut", "Buttsluts")>> fetish. This flaw can also be removed by serving the player character. - - -<<case "Hates Oral">> - ''Hates oral '' is a sexual <<= App.Encyclopedia.Dialog.linkSC("flaw", "Flaws")>> that can be softened into the <<= App.Encyclopedia.Dialog.linkSC("gagfuck queen", "Gagfuck Queen")>> <<= App.Encyclopedia.Dialog.linkSC("quirk", "Quirks")>> by training, a good <<= App.Encyclopedia.Dialog.linkSC("Attendant", "Attendant")>>, a powerful sex drive, or the <<= App.Encyclopedia.Dialog.linkSC("cumslut", "Cumsluts")>> fetish. This flaw can also be removed by serving the player character. - - -<<case "Hates Penetration">> - ''Hates penetration '' is a sexual <<= App.Encyclopedia.Dialog.linkSC("flaw", "Flaws")>> that can be softened into the <<= App.Encyclopedia.Dialog.linkSC("strugglefuck queen", "Strugglefuck Queen")>> <<= App.Encyclopedia.Dialog.linkSC("quirk", "Quirks")>> by training, a good <<= App.Encyclopedia.Dialog.linkSC("Attendant", "Attendant")>>, a powerful sex drive, or the <<= App.Encyclopedia.Dialog.linkSC("buttslut", "Buttsluts")>> fetish. This flaw can also be removed by serving the player character. - - -<<case "Idealistic">> - ''Idealistic '' is a sexual <<= App.Encyclopedia.Dialog.linkSC("flaw", "Flaws")>> that can be softened into the <<= App.Encyclopedia.Dialog.linkSC("romantic", "Romantic")>> <<= App.Encyclopedia.Dialog.linkSC("quirk", "Quirks")>> by training, a good <<= App.Encyclopedia.Dialog.linkSC("Attendant", "Attendant")>>, a powerful sex drive, or the <<= App.Encyclopedia.Dialog.linkSC("submissive", "Submissives")>> fetish. - - -<<case "Judgemental">> - ''Judgemental '' is a sexual <<= App.Encyclopedia.Dialog.linkSC("flaw", "Flaws")>> that can be softened into the ''<<= App.Encyclopedia.Dialog.linkSC("size queen", "Size Queen")>> '' <<= App.Encyclopedia.Dialog.linkSC("quirk", "Quirks")>> by training, a good <<= App.Encyclopedia.Dialog.linkSC("Attendant", "Attendant")>>, a powerful sex drive, or the <<= App.Encyclopedia.Dialog.linkSC("submissive", "Humiliation Submissive")>> fetish. - - -<<case "Repressed">> - ''Repressed '' is a sexual <<= App.Encyclopedia.Dialog.linkSC("flaw", "Flaws")>> that can be softened into the <<= App.Encyclopedia.Dialog.linkSC("perverted", "Perverted")>> <<= App.Encyclopedia.Dialog.linkSC("quirk", "Quirks")>> by training, a good <<= App.Encyclopedia.Dialog.linkSC("Attendant", "Attendant")>>, a powerful sex drive, the <<= App.Encyclopedia.Dialog.linkSC("cumslut", "Cumsluts")>> fetish, or the <<= App.Encyclopedia.Dialog.linkSC("buttslut", "Buttsluts")>> fetish. - - -<<case "Shamefast">> - ''Shamefast '' is a sexual <<= App.Encyclopedia.Dialog.linkSC("flaw", "Flaws")>> that can be softened into the <<= App.Encyclopedia.Dialog.linkSC("tease", "Tease")>> <<= App.Encyclopedia.Dialog.linkSC("quirk", "Quirks")>> by training, a good <<= App.Encyclopedia.Dialog.linkSC("Attendant", "Attendant")>>, a powerful sex drive, or the <<= App.Encyclopedia.Dialog.linkSC("humiliation", "Humiliation Fetishists")>> fetish. - /********** SLAVE PARAPHILIAS **********/ diff --git a/src/gui/Encyclopedia/encyclopediaBody.js b/src/gui/Encyclopedia/encyclopediaBody.js index ac7c2f42412d2c6cf888aa96a1ce73ddaca522c1..6e0b759dece6143a92245849e7c79cfff8febc68 100644 --- a/src/gui/Encyclopedia/encyclopediaBody.js +++ b/src/gui/Encyclopedia/encyclopediaBody.js @@ -1,6 +1,6 @@ App.Encyclopedia.addArticle("Body", function() { const fragment = new DocumentFragment(); - App.UI.DOM.appendNewElement("p", fragment, "Future room for lore text", "note"); + App.UI.DOM.appendNewElement("p", fragment, "Future room for lore text", ["note"]); App.UI.DOM.appendNewElement("div", fragment, "Choose a more particular entry below:"); return fragment; }, "body"); @@ -67,6 +67,20 @@ App.Encyclopedia.addArticle("Breasts", function() { return fragment; }, "body"); +App.Encyclopedia.addArticle("Butts", function() { + return App.UI.DOM.combineNodes( + `Slaves' `, + App.UI.DOM.makeElement("span", "butts", ["strong"]), + ` contribute to beauty. They can be enlarged with `, + App.Encyclopedia.Dialog.linkDOM("XX hormones", "Hormones (XX)"), + `, `, + App.Encyclopedia.Dialog.linkDOM("weight gain", "Weight"), + `, or surgery (which `, + App.Encyclopedia.Dialog.linkDOM("buttsluts", "Buttsluts"), + ` will be grateful for).` + ); +}, "body"); + App.Encyclopedia.addArticle("Clits", function() { const fragment = new DocumentFragment(); const r = []; @@ -319,21 +333,12 @@ App.Encyclopedia.addArticle("Skin Distinctions", function() { App.Encyclopedia.addArticle("Teeth", function() { const fragment = new DocumentFragment(); - let r = []; - r.push(`Slaves'`); - r.push(App.Encyclopedia.topic("teeth")); - r.push(`have a variety of impacts and can be customized in several ways.`); - App.Events.addParagraph(fragment, r); - r = []; + App.Events.addParagraph(fragment, [`Slaves'`, App.Encyclopedia.topic("teeth"), `have a variety of impacts and can be customized in several ways.`]); for (const [key, teeth] of App.Medicine.Modification.teeth) { - if (!teeth.hasOwnProperty("requirements") || teeth.requirements) { - r.push(App.UI.DOM.makeElement("span", capFirstChar(key), ["note"])); - r.push(teeth.desc); - App.Events.addNode(fragment, r, "div"); - r = []; + if (teeth.desc) { + App.Events.addNode(fragment, [App.UI.DOM.makeElement("span", capFirstChar(key), ["note"]), teeth.desc], "div"); } } - App.Events.addParagraph(fragment, r); return fragment; }, "body"); @@ -354,7 +359,7 @@ App.Encyclopedia.addArticle("Vaginas", function() { r.push(App.Encyclopedia.topic("vaginas")); r.push(`are a valuable commodity. Like `); r.push(App.UI.DOM.combineNodes( - App.Encyclopedia.Dialog.linkDOM("anuses", "Anuses"), + App.Encyclopedia.Dialog.linkDOM("anuses"), `, they appear in four degrees of tightness: virgin and three increasing levels of looseness. Tighter vaginas improve performance at sexual assignments, but most methods of learning ` )); diff --git a/src/gui/Encyclopedia/encyclopediaCommonAssignments.js b/src/gui/Encyclopedia/encyclopediaCommonAssignments.js index e3b538b516650fbce05f45dd6c8721386b4fd453..bcb2b007e9749a6991a648301eb3f4cd083e9dea 100644 --- a/src/gui/Encyclopedia/encyclopediaCommonAssignments.js +++ b/src/gui/Encyclopedia/encyclopediaCommonAssignments.js @@ -149,7 +149,7 @@ App.Encyclopedia.addArticle("Slave Assignments", function() { const frag = new DocumentFragment(); const r = []; r.push("Slave assignments are stratified into ordinary assignments and"); - r.push(App.UI.DOM.combineNodes(App.Encyclopedia.Dialog.linkDOM("leadership positions"), ".")); + r.push(App.UI.DOM.combineNodes(App.Encyclopedia.Dialog.linkDOM("leadership positions", "Leadership Positions"), ".")); App.Events.addParagraph(frag, r); App.UI.DOM.appendNewElement("p", frag, "Choose a more particular entry below:"); @@ -251,7 +251,7 @@ App.Encyclopedia.addArticle("Rest", function() { return frag; }, "assignmentCommon"); -App.Encyclopedia.addArticle("Sexual Servitude", App.Encyclopedia.Assignments.servitude, "assignmentCommon"); +App.Encyclopedia.addArticle("Sexual Servitude", App.Encyclopedia.Assignments.sexualServitude, "assignmentCommon"); App.Encyclopedia.addArticle("Servitude", function() { const frag = new DocumentFragment(); diff --git a/src/gui/Encyclopedia/encyclopediaGuide.js b/src/gui/Encyclopedia/encyclopediaGuide.js index bb79bec90055e80511e6013a2267a9818bdfd783..738a8f113465d4acf5fa6ffa8a38b50285c864d1 100644 --- a/src/gui/Encyclopedia/encyclopediaGuide.js +++ b/src/gui/Encyclopedia/encyclopediaGuide.js @@ -421,9 +421,9 @@ App.Encyclopedia.addArticle("Design Your Master", function() { r.push(App.Encyclopedia.Dialog.linkDOM("authority", "Security Expansion", "darkviolet")); } r.push("losses each week. You can spend your free time selling your body for"); - r.push(App.UI.DOM.makeElement("span", App.UI.DOM.combineNodes(App.Encyclopedia.Dialog.linkDOM("money", "Money"), ","), "cash")); + r.push(App.Encyclopedia.Dialog.linkDOM("money,", "Money", "cash")); r.push("at the cost of a large amount of"); - r.push(App.UI.DOM.makeElement("span", App.UI.DOM.combineNodes(App.Encyclopedia.Dialog.linkDOM("reputation", "Arcologies and Reputation"), "."), ["reputation", "inc"])); + r.push(App.Encyclopedia.Dialog.linkDOM("reputation", "Arcologies and Reputation", "reputation inc")); App.Events.addNode(ul, r, "li"); r = []; diff --git a/src/gui/Encyclopedia/encyclopediaRelatedLinks.tw b/src/gui/Encyclopedia/encyclopediaRelatedLinks.tw index 5c7f7c4140c364ab45cb7d2e4ebf69359d4d522e..23a948a4f50e6000fc49612f4c0c72ce47d08b21 100644 --- a/src/gui/Encyclopedia/encyclopediaRelatedLinks.tw +++ b/src/gui/Encyclopedia/encyclopediaRelatedLinks.tw @@ -53,32 +53,6 @@ SLAVE PARAPHILIAS | <<= App.Encyclopedia.Dialog.linkSC("Self Neglect", "Self Neglect")>> | <<= App.Encyclopedia.Dialog.linkSC("Fetishes", "Fetishes")>> -/********** -SLAVE FLAWS -**********/ -<<case "Anorexic" "Arrogant" "Bitchy" "Devout" "Flaws" "Gluttonous" "Hates Men" "Hates Women" "Liberated" "Odd" "Apathetic" "Crude" "Hates Anal" "Hates Oral" "Hates Penetration" "Idealistic" "Judgemental" "Repressed" "Shamefast">> - //Behavioral <<= App.Encyclopedia.Dialog.linkSC("Flaws", "Flaws")>>:// - <<= App.Encyclopedia.Dialog.linkSC("Anorexic", "Anorexic")>> - | <<= App.Encyclopedia.Dialog.linkSC("Arrogant", "Arrogant")>> - | <<= App.Encyclopedia.Dialog.linkSC("Bitchy", "Bitchy")>> - | <<= App.Encyclopedia.Dialog.linkSC("Devout", "Devout")>> - | <<= App.Encyclopedia.Dialog.linkSC("Gluttonous", "Gluttonous")>> - | <<= App.Encyclopedia.Dialog.linkSC("Hates men", "Hates Men")>> - | <<= App.Encyclopedia.Dialog.linkSC("Hates women", "Hates Women")>> - | <<= App.Encyclopedia.Dialog.linkSC("Liberated", "Liberated")>> - | <<= App.Encyclopedia.Dialog.linkSC("Odd", "Odd")>> - - <br>//Sexual <<= App.Encyclopedia.Dialog.linkSC("Flaws", "Flaws")>>:// - <<= App.Encyclopedia.Dialog.linkSC("Apathetic", "Apathetic")>> - | <<= App.Encyclopedia.Dialog.linkSC("Crude", "Crude")>> - | <<= App.Encyclopedia.Dialog.linkSC("Hates anal", "Hates Anal")>> - | <<= App.Encyclopedia.Dialog.linkSC("Hates oral", "Hates Oral")>> - | <<= App.Encyclopedia.Dialog.linkSC("Hates penetration", "Hates Penetration")>> - | <<= App.Encyclopedia.Dialog.linkSC("Idealistic", "Idealistic")>> - | <<= App.Encyclopedia.Dialog.linkSC("Judgemental", "Judgemental")>> - | <<= App.Encyclopedia.Dialog.linkSC("Repressed", "Repressed")>> - | <<= App.Encyclopedia.Dialog.linkSC("Shamefast", "Shamefast")>> - /********** SLAVE RELATIONSHIPS **********/ diff --git a/src/gui/Encyclopedia/encyclopediaSlaveFlaws.js b/src/gui/Encyclopedia/encyclopediaSlaveFlaws.js new file mode 100644 index 0000000000000000000000000000000000000000..00616393bb0e86b20f8970f7340d73f3624ad04f --- /dev/null +++ b/src/gui/Encyclopedia/encyclopediaSlaveFlaws.js @@ -0,0 +1,256 @@ +App.Encyclopedia.addArticle("Flaws", function() { + const f = new DocumentFragment(); + const r = new SpacedTextAccumulator(f); + r.push(App.UI.DOM.makeElement("span", "Unflinching", ["bold"]), "are negative slave qualities."); + r.push("They decrease slaves' value and performance at sexual assignments, and each flaw also has other, differing effects. Each flaw is associated with a corresponding"); + r.push(App.Encyclopedia.Dialog.linkDOM("quirk", "Quirks"), ", and slave can have two flaws (a sexual flaw and a behavioral flaw), just like quirks. New slaves will often have flaws, and tough experiences can also cause them to appear."); + r.toParagraph(); + + r.push("Flaws can softened or removed either by orders given to the", App.Encyclopedia.Dialog.linkDOM("Head Girl"), "or via personal attention provided by the player character."); + r.push("Flaws can also be naturally softened or removed by fetishes, and can resolve on their own if a slave is happy."); + r.toNode("div"); + + return f; +}, "slaveFlaws"); + +App.Encyclopedia.addArticle("Anorexic", function() { + const f = new DocumentFragment(); + const r = new SpacedTextAccumulator(f); + r.push(App.UI.DOM.makeElement("span", "Anorexic", ["bold"]), "is a behavioral", App.Encyclopedia.Dialog.linkDOM("flaw", "Flaws"), "that can be softened into the"); + r.push(App.Encyclopedia.Dialog.linkDOM("insecure"), App.UI.DOM.combineNodes(App.Encyclopedia.Dialog.linkDOM("quirk", "Quirks"), ".")); + r.push("In addition to the standard penalties to value and performance on sexual assignments, anorexia can cause unexpected weight loss. Anorexics will enjoy dieting but dislike gaining weight, and may bilk attempts to make them fatten up."); + r.toNode("div"); + + return f; +}, "slaveFlaws"); + +App.Encyclopedia.addArticle("Arrogant", function() { + const f = new DocumentFragment(); + const r = new SpacedTextAccumulator(f); + r.push(App.UI.DOM.makeElement("span", "Arrogant", ["bold"]), "is a behavioral", App.Encyclopedia.Dialog.linkDOM("flaw", "Flaws"), "that can be softened into the"); + r.push(App.Encyclopedia.Dialog.linkDOM("confident"), App.UI.DOM.combineNodes(App.Encyclopedia.Dialog.linkDOM("quirk", "Quirks"), ".")); + r.push("The", App.Encyclopedia.Dialog.linkDOM("submissive", "Submissives"), "fetish fetish can do this naturally."); + r.push("In addition to the standard penalties to value and performance on sexual assignments, weekly", App.Encyclopedia.Dialog.linkDOM("devotion", "From Rebellious to Devoted", "hotpink"), "gains are limited."); + r.toNode("div"); + + r.toNode("div"); + + return f; +}, "slaveFlaws"); + +App.Encyclopedia.addArticle("Bitchy", function() { + const f = new DocumentFragment(); + const r = new SpacedTextAccumulator(f); + r.push(App.UI.DOM.makeElement("span", "Bitchy", ["bold"]), "is a behavioral", App.Encyclopedia.Dialog.linkDOM("flaw", "Flaws"), "that can be softened into the"); + r.push(App.Encyclopedia.Dialog.linkDOM("cutting"), App.UI.DOM.combineNodes(App.Encyclopedia.Dialog.linkDOM("quirk", "Quirks"), ".")); + r.push("The", App.Encyclopedia.Dialog.linkDOM("humiliation", "Humiliation Fetishists"), "fetish fetish can do this naturally."); + r.push("In addition to the standard penalties to value and performance on sexual assignments, weekly", App.Encyclopedia.Dialog.linkDOM("devotion", "From Rebellious to Devoted", "hotpink"), "gains are limited."); + r.toNode("div"); + + return f; +}, "slaveFlaws"); + +App.Encyclopedia.addArticle("Devout", function() { + const f = new DocumentFragment(); + const r = new SpacedTextAccumulator(f); + r.push(App.UI.DOM.makeElement("span", "Devout", ["bold"]), "is a behavioral", App.Encyclopedia.Dialog.linkDOM("flaw", "Flaws"), "that can be softened into the"); + r.push(App.Encyclopedia.Dialog.linkDOM("sinful"), App.UI.DOM.combineNodes(App.Encyclopedia.Dialog.linkDOM("quirk", "Quirks"), ".")); + r.push("A very powerful sex drive can do this naturally."); + r.push("In addition to the standard penalties to value and performance on sexual assignments, weekly", App.Encyclopedia.Dialog.linkDOM("devotion", "From Rebellious to Devoted", "hotpink"), "gains are limited."); + r.toNode("div"); + + return f; +}, "slaveFlaws"); + +App.Encyclopedia.addArticle("Gluttonous", function() { + const f = new DocumentFragment(); + const r = new SpacedTextAccumulator(f); + r.push(App.UI.DOM.makeElement("span", "Gluttonous", ["bold"]), "is a behavioral", App.Encyclopedia.Dialog.linkDOM("flaw", "Flaws"), "that can be softened into the"); + r.push(App.Encyclopedia.Dialog.linkDOM("fitness"), App.UI.DOM.combineNodes(App.Encyclopedia.Dialog.linkDOM("quirk", "Quirks"), ".")); + r.push("In addition to the standard penalties to value and performance on sexual assignments, gluttons will enjoy gaining weight but dislike dieting, and may bilk attempts to make them lose weight."); + r.toNode("div"); + + return f; +}, "slaveFlaws"); + +App.Encyclopedia.addArticle("Hates men", function() { + const f = new DocumentFragment(); + const r = new SpacedTextAccumulator(f); + r.push(App.UI.DOM.makeElement("span", "Hates men", ["bold"]), "is a behavioral", App.Encyclopedia.Dialog.linkDOM("flaw", "Flaws"), "that can be softened into the"); + r.push(App.Encyclopedia.Dialog.linkDOM("adores women"), App.Encyclopedia.Dialog.linkDOM("quirk", "Quirks"), "by training,"); + r.push("a good", App.Encyclopedia.Dialog.linkDOM("Attendant"), ", a powerful sex drive, or the", App.Encyclopedia.Dialog.linkDOM("boob fetish.", "Boob Fetishists")); + r.push("Strong attraction to men or the", App.Encyclopedia.Dialog.linkDOM("pregnancy fetish", "Pregnancy Fetishists"), "will soften it so she", App.Encyclopedia.Dialog.linkDOM("adores men"), "instead."); + r.push("This flaw can also be removed by serving a player character or another slave with a dick."); + r.toNode("div"); + + return f; +}, "slaveFlaws"); + +App.Encyclopedia.addArticle("Hates women", function() { + const f = new DocumentFragment(); + const r = new SpacedTextAccumulator(f); + r.push(App.UI.DOM.makeElement("span", "Hates women", ["bold"]), "is a behavioral", App.Encyclopedia.Dialog.linkDOM("flaw", "Flaws"), "that can be softened into the"); + r.push(App.Encyclopedia.Dialog.linkDOM("adores men"), App.Encyclopedia.Dialog.linkDOM("quirk", "Quirks"), "by training,"); + r.push("a good", App.Encyclopedia.Dialog.linkDOM("Attendant"), ", a powerful sex drive, or the", App.Encyclopedia.Dialog.linkDOM("cumslut", "Cumsluts"), "fetish."); + r.push("Strong attraction to women or the", App.Encyclopedia.Dialog.linkDOM("pregnancy fetish", "Pregnancy Fetishists"), "will soften it so she", App.Encyclopedia.Dialog.linkDOM("Adores women"), "instead."); + r.push("This flaw can also be removed by serving a player character or another slave with a vagina."); + r.toNode("div"); + + return f; +}, "slaveFlaws"); + +App.Encyclopedia.addArticle("Liberated", function() { + const f = new DocumentFragment(); + const r = new SpacedTextAccumulator(f); + r.push(App.UI.DOM.makeElement("span", "Liberated", ["bold"]), "is a behavioral", App.Encyclopedia.Dialog.linkDOM("flaw", "Flaws"), "that can be softened into the"); + r.push(App.Encyclopedia.Dialog.linkDOM("advocate"), App.UI.DOM.combineNodes(App.Encyclopedia.Dialog.linkDOM("quirk", "Quirks"), ".")); + r.push("The", App.Encyclopedia.Dialog.linkDOM("submissive", "Submissives"), "fetish can do this naturally."); + r.push("In addition to the standard penalties to value and performance on sexual assignments, weekly", App.Encyclopedia.Dialog.linkDOM("devotion", "From Rebellious to Devoted", "hotpink"), "gains are limited."); + r.toNode("div"); + + return f; +}, "slaveFlaws"); + +App.Encyclopedia.addArticle("Odd", function() { + const f = new DocumentFragment(); + const r = new SpacedTextAccumulator(f); + r.push(App.UI.DOM.makeElement("span", "Odd", ["bold"]), "is a behavioral", App.Encyclopedia.Dialog.linkDOM("flaw", "Flaws"), "that can be softened into the"); + r.push(App.Encyclopedia.Dialog.linkDOM("funny"), App.UI.DOM.combineNodes(App.Encyclopedia.Dialog.linkDOM("quirk", "Quirks"), ".")); + r.push("The", App.Encyclopedia.Dialog.linkDOM("humiliation", "Humiliation Fetishists"), "fetish can do this naturally."); + r.push("In addition to the standard penalties to value and performance on sexual assignments, weekly", App.Encyclopedia.Dialog.linkDOM("devotion", "From Rebellious to Devoted", "hotpink"), "gains are limited."); + r.toParagraph(); + + return f; +}, "slaveFlaws"); + +App.Encyclopedia.addArticle("Apathetic", function() { + const f = new DocumentFragment(); + const r = new SpacedTextAccumulator(f); + r.push(App.UI.DOM.makeElement("span", "Apathetic", ["bold"]), "is a sexual", App.Encyclopedia.Dialog.linkDOM("flaw", "Flaws"), "that can be softened into the"); + r.push(App.Encyclopedia.Dialog.linkDOM("caring"), App.Encyclopedia.Dialog.linkDOM("quirk", "Quirks"), "by training,"); + r.push("a good", App.Encyclopedia.Dialog.linkDOM("Attendant"), ", a powerful sex drive, or the", App.Encyclopedia.Dialog.linkDOM("submissive", "Humiliation Submissive"), "fetish."); + r.push("It can also be removed by the", App.Encyclopedia.Dialog.linkDOM("dom", "Doms"), "fetish."); + r.toParagraph(); + + return f; +}, "slaveFlaws"); + +App.Encyclopedia.addArticle("Crude", function() { + const f = new DocumentFragment(); + const r = new SpacedTextAccumulator(f); + r.push(App.UI.DOM.makeElement("span", "Crude", ["bold"]), "is a sexual", App.Encyclopedia.Dialog.linkDOM("flaw", "Flaws"), "that can be softened into the"); + r.push(App.Encyclopedia.Dialog.linkDOM("unflinching"), App.Encyclopedia.Dialog.linkDOM("quirk", "Quirks"), "by training,"); + r.push("a good", App.Encyclopedia.Dialog.linkDOM("Attendant"), ", a powerful sex drive, or the", App.Encyclopedia.Dialog.linkDOM("cumslut", "Cumsluts"), "fetish."); + r.toParagraph(); + + return f; +}, "slaveFlaws"); + +App.Encyclopedia.addArticle("Hates anal", function() { + const f = new DocumentFragment(); + const r = new SpacedTextAccumulator(f); + r.push(App.UI.DOM.makeElement("span", "Hates anal", ["bold"]), "is a sexual", App.Encyclopedia.Dialog.linkDOM("flaw", "Flaws"), "that can be softened into the"); + r.push(App.Encyclopedia.Dialog.linkDOM("painal queen"), App.Encyclopedia.Dialog.linkDOM("quirk", "Quirks"), "by training,"); + r.push("a good", App.Encyclopedia.Dialog.linkDOM("Attendant"), ", a powerful sex drive, or the", App.Encyclopedia.Dialog.linkDOM("buttslut", "Buttsluts"), "fetish."); + r.push("This flaw can also be removed by serving the player character."); + r.toParagraph(); + + return f; +}, "slaveFlaws"); + +App.Encyclopedia.addArticle("Hates oral", function() { + const f = new DocumentFragment(); + const r = new SpacedTextAccumulator(f); + r.push(App.UI.DOM.makeElement("span", "Hates oral", ["bold"]), "is a sexual", App.Encyclopedia.Dialog.linkDOM("flaw", "Flaws"), "that can be softened into the"); + r.push(App.Encyclopedia.Dialog.linkDOM("gagfuck queen"), App.Encyclopedia.Dialog.linkDOM("quirk", "Quirks"), "by training,"); + r.push("a good", App.Encyclopedia.Dialog.linkDOM("Attendant"), ", a powerful sex drive, or the", App.Encyclopedia.Dialog.linkDOM("cumslut", "Cumsluts"), "fetish."); + r.push("This flaw can also be removed by serving the player character."); + r.toParagraph(); + + return f; +}, "slaveFlaws"); + +App.Encyclopedia.addArticle("Hates penetration", function() { + const f = new DocumentFragment(); + const r = new SpacedTextAccumulator(f); + r.push(App.UI.DOM.makeElement("span", "Hates penetration", ["bold"]), "is a sexual", App.Encyclopedia.Dialog.linkDOM("flaw", "Flaws"), "that can be softened into the"); + r.push(App.Encyclopedia.Dialog.linkDOM("strugglefuck queen"), App.Encyclopedia.Dialog.linkDOM("quirk", "Quirks"), "by training,"); + r.push("a good", App.Encyclopedia.Dialog.linkDOM("Attendant"), ", a powerful sex drive, or the", App.Encyclopedia.Dialog.linkDOM("buttslut", "Buttsluts"), "fetish."); + r.push("This flaw can also be removed by serving the player character."); + r.toParagraph(); + + return f; +}, "slaveFlaws"); + +App.Encyclopedia.addArticle("Idealistic", function() { + const f = new DocumentFragment(); + const r = new SpacedTextAccumulator(f); + r.push(App.UI.DOM.makeElement("span", "Idealistic", ["bold"]), "is a sexual", App.Encyclopedia.Dialog.linkDOM("flaw", "Flaws"), "that can be softened into the"); + r.push(App.Encyclopedia.Dialog.linkDOM("romantic"), App.Encyclopedia.Dialog.linkDOM("quirk", "Quirks"), "by training,"); + r.push("a good", App.Encyclopedia.Dialog.linkDOM("Attendant"), ", a powerful sex drive, or the", App.Encyclopedia.Dialog.linkDOM("submissive", "Humiliation Submissive"), "fetish."); + r.toParagraph(); + + return f; +}, "slaveFlaws"); + +App.Encyclopedia.addArticle("Judgemental", function() { + const f = new DocumentFragment(); + const r = new SpacedTextAccumulator(f); + r.push(App.UI.DOM.makeElement("span", "Judgemental", ["bold"]), "is a sexual", App.Encyclopedia.Dialog.linkDOM("flaw", "Flaws"), "that can be softened into the"); + r.push(App.Encyclopedia.Dialog.linkDOM("size queen", "Size Queen"), App.Encyclopedia.Dialog.linkDOM("quirk", "Quirks"), "by training,"); + r.push("a good", App.Encyclopedia.Dialog.linkDOM("Attendant"), ", a powerful sex drive, or the", App.Encyclopedia.Dialog.linkDOM("submissive", "Humiliation Submissive"), "fetish."); + r.toParagraph(); + + return f; +}, "slaveFlaws"); + +App.Encyclopedia.addArticle("Repressed", function() { + const f = new DocumentFragment(); + const r = new SpacedTextAccumulator(f); + r.push(App.UI.DOM.makeElement("span", "Repressed", ["bold"]), "is a sexual", App.Encyclopedia.Dialog.linkDOM("flaw", "Flaws"), "that can be softened into the"); + r.push(App.Encyclopedia.Dialog.linkDOM("perverted"), App.Encyclopedia.Dialog.linkDOM("quirk", "Quirks"), "by training,"); + r.push("a good", App.Encyclopedia.Dialog.linkDOM("Attendant"), ", a powerful sex drive, or the", App.Encyclopedia.Dialog.linkDOM("cumslut", "Cumsluts"), "fetish, or the", App.Encyclopedia.Dialog.linkDOM("buttslut", "Buttsluts"), "fetish."); + r.toParagraph(); + + return f; +}, "slaveFlaws"); + +App.Encyclopedia.addArticle("Shamefast", function() { + const f = new DocumentFragment(); + const r = new SpacedTextAccumulator(f); + r.push(App.UI.DOM.makeElement("span", "Shamefast", ["bold"]), "is a sexual", App.Encyclopedia.Dialog.linkDOM("flaw", "Flaws"), "that can be softened into the"); + r.push(App.Encyclopedia.Dialog.linkDOM("tease"), App.Encyclopedia.Dialog.linkDOM("quirk", "Quirks"), "by training,"); + r.push("a good", App.Encyclopedia.Dialog.linkDOM("Attendant"), ", a powerful sex drive, or the", App.Encyclopedia.Dialog.linkDOM("submissive", "Humiliation Submissive"), "fetish."); + r.toParagraph(); + + return f; +}, "slaveFlaws"); + +App.Encyclopedia.addCategory("slaveFlaws", function() { + const f = new DocumentFragment(); + let r = []; + r.push(App.Encyclopedia.Dialog.linkDOM("Anorexic")); + r.push(App.Encyclopedia.Dialog.linkDOM("Arrogant")); + r.push(App.Encyclopedia.Dialog.linkDOM("Bitchy")); + r.push(App.Encyclopedia.Dialog.linkDOM("Devout")); + r.push(App.Encyclopedia.Dialog.linkDOM("Gluttonous")); + r.push(App.Encyclopedia.Dialog.linkDOM("Hates men")); + r.push(App.Encyclopedia.Dialog.linkDOM("Hates women")); + r.push(App.Encyclopedia.Dialog.linkDOM("Liberated")); + r.push(App.Encyclopedia.Dialog.linkDOM("Odd")); + App.Events.addNode(f, ["Behavioral ", App.UI.DOM.combineNodes(App.Encyclopedia.Dialog.linkDOM("Flaws"), ":"), App.UI.DOM.generateLinksStrip(r)], "div"); + + r = []; + r.push(App.Encyclopedia.Dialog.linkDOM("Apathetic")); + r.push(App.Encyclopedia.Dialog.linkDOM("Crude")); + r.push(App.Encyclopedia.Dialog.linkDOM("Hates anal")); + r.push(App.Encyclopedia.Dialog.linkDOM("Hates oral")); + r.push(App.Encyclopedia.Dialog.linkDOM("Hates penetration")); + r.push(App.Encyclopedia.Dialog.linkDOM("Idealistic")); + r.push(App.Encyclopedia.Dialog.linkDOM("Judgemental")); + r.push(App.Encyclopedia.Dialog.linkDOM("Repressed")); + r.push(App.Encyclopedia.Dialog.linkDOM("Shamefast")); + App.Events.addNode(f, ["Sexual ", App.UI.DOM.combineNodes(App.Encyclopedia.Dialog.linkDOM("Flaws"), ":"), App.UI.DOM.generateLinksStrip(r)], "div"); + + return f; +}); diff --git a/src/gui/Encyclopedia/encyclopediaSlaveLeaders.js b/src/gui/Encyclopedia/encyclopediaSlaveLeaders.js index 91db03c7994c6ed90e32922e120e3aed8c599c64..7d61715f93f00ab4d2e120188ffd24f827c0fa8a 100644 --- a/src/gui/Encyclopedia/encyclopediaSlaveLeaders.js +++ b/src/gui/Encyclopedia/encyclopediaSlaveLeaders.js @@ -53,17 +53,17 @@ App.Encyclopedia.addArticle("Career Experience", function() { * @param {string} [note] */ function CareerBonus(career, bonus, list, note) { - const r = new SpacedTextAccumulator(); - const notLeader = ["Grateful", "Menial", "Servant", "Entertainment", "Sex work"].includes(career); - const applicable = notLeader ? App.Data.Careers.General[list] : App.Data.Careers.Leader[list]; - - r.push(App.UI.DOM.makeElement("span", career, ["underline"]), `which offers a ${career === "Grateful" || career === "Menial" ? 'potential' : ''} bonus to`, bonus, `includes slaves who were: ${toSentence(applicable)}.`); - r.toNode("div"); - if (note) { - r.push(note); - r.toNode("div"); - } - return r.container(); + const r = new SpacedTextAccumulator(); + const notLeader = ["Grateful", "Menial", "Servant", "Entertainment", "Sex work"].includes(career); + const applicable = notLeader ? App.Data.Careers.General[list] : App.Data.Careers.Leader[list]; + + r.push(App.UI.DOM.makeElement("span", career, ["underline"]), `which offers a ${career === "Grateful" || career === "Menial" ? 'potential' : ''} bonus to`, bonus, `includes slaves who were: ${toSentence(applicable)}.`); + r.toNode("div"); + if (note) { + r.push(note); + r.toNode("div"); + } + return r.container(); } }, "slaveLeaders"); @@ -96,14 +96,13 @@ App.Encyclopedia.addArticle("Matron", function() { // TODO: will still need more App.Encyclopedia.addArticle("Bodyguard", function() { const t = new DocumentFragment(); - let r; + let r = []; const link = (text, article, className) => App.Encyclopedia.Dialog.linkDOM(text, article, className); const reduceDeadliness = [link("Big breasts", "Breasts"), link("butts"), link("poor health", "Health"), link("excess weight", "Weight"), link("pregnancy")]; const bodyguardTrainees = ["her lover or wife if she has one", link("the Head Girl", "Head Girl"), link("the Wardeness", "Wardeness"), link("your Concubine.", "Concubine")]; App.UI.DOM.appendNewElement("div", t, "Slave bodyguards are best understood not as protection for a slaveowner's person, but rather as a projection of their skill at slave breaking.", ["note"]); - r = []; r.push("By giving a slave the means and position to easily kill her master, that master displays their total trust in them. The simple fact that an armed slave is near a slaveowner at all times is proof that that slaveowner has produced at least one slave that never wavers in her"); r.push(link("devotion.", "From Rebellious to Devoted", "hotpink")); r.push("After all, if she ever wavered, the slaveowner would likely be dead."); @@ -152,9 +151,8 @@ App.Encyclopedia.addArticle("Concubine", function() { App.Encyclopedia.addArticle("DJ", function() { const link = (text, article, className) => App.Encyclopedia.Dialog.linkDOM(text, article, className); const t = new DocumentFragment(); - let r; + let r = []; - r = []; r.push(`My name is Danni Diemen, and I'm here today to talk about the prettiest girls in the Free Cities. That's right, DJs! When a slave bitch says, "Sweetie, I'm not that kind of girl," she's lying. She's a slave, and she is that kind of girl! So, have your way with her.`); App.Events.addNode(t, r, "p", "note"); @@ -210,20 +208,22 @@ App.Encyclopedia.addArticle("Head Girl", function() { r.push("In addition, such a slave can be an example to lesser livestock."); App.Events.addNode(t, r, "div", "note"); + r = []; r.push("A good Head Girl will be", devotion("devoted"), "to her master and sexually skilled."); r.push("Experienced slaveowners have also found that an older slave girl is often more effective than a young one."); r.push("Since slavery is new, older slave girls will have spent part of their adult lives as free women, and have a deeper body of life experience to draw on."); App.Events.addNode(t, r, "p", "note"); + r = []; r.push("Naturally, some slaveowners form a strong emotional bond with their Head Girl."); r.push(trust("Trusting"), "and relying on a close companion can begin to resemble old world relationships."); r.push("It is a paradox of modern Free Cities life that such closeness is strongly frowned upon."); r.push("Rumors that a prominent person is emotionally involved with his or her Head Girl can be as socially devastating as rumors of infidelity were a hundred years ago."); App.Events.addNode(t, r, "p", "note"); - r.push("— Lawrence, W. G., Guide to Modern Slavery, 2037 Edition"); - App.Events.addNode(t, r, "p", "note"); + App.Events.addNode(t, ["— Lawrence, W. G., Guide to Modern Slavery, 2037 Edition"], "p", "note"); + r = []; r.push("A", App.UI.DOM.makeElement("span", "Head Girl", ["bold"])); r.push("can be selected from among your", devotion("devoted"), "slaves immediately."); r.push("Duties are numerous, but mostly involve training slaves."); @@ -231,6 +231,7 @@ App.Encyclopedia.addArticle("Head Girl", function() { r.push("Giving your", link("Head Girl a suite", "Head Girl Suite"), "and a personal slave will allow her to train an extra slave each week, an extremely powerful ability."); App.Events.addParagraph(t, r); + r = []; r.push(devotion(), App.UI.DOM.makeElement("span", "intelligence", ["cyan"]), "and age over 30 all help Head Girls do well."); r.push("Head Girls will do better if they are comfortable with the arcology's", link("lingua franca"), "."); r.push("Skills are required when teaching that skill, meaning that slaves without vaginas cannot teach vaginal skills."); @@ -244,9 +245,8 @@ App.Encyclopedia.addArticle("Head Girl", function() { App.Encyclopedia.addArticle("Madam", function() { const link = (text, article, className) => App.Encyclopedia.Dialog.linkDOM(text, article, className); const t = new DocumentFragment(); - let r; + let r = []; - r = []; r.push("Prostitution is indeed the oldest profession. It follows that the madam is probably the oldest managerial position."); App.Events.addNode(t, r, "div", "note"); @@ -287,9 +287,8 @@ App.Encyclopedia.addArticle("Milkmaid", function() { const devotion = (text="devotion", colour="hotpink") => link(text, "From Rebellious to Devoted", colour); const trust = (text="trust") => link(text, "Trust", "mediumaquamarine"); const t = new DocumentFragment(); - let r; + let r = []; - r = []; r.push("Most slaveowners get into dairy as a hobby. Why not? It's fun, tasty, and sexy. But sooner or later, almost everyone who starts out with a few low-volume milkers hears the call of mass production. After all, if it's hot to have one slave to use as the milking machine holds her down, it's hotter to have a whole row of moaning milkers at your mercy."); App.Events.addNode(t, r, "div"); @@ -310,7 +309,7 @@ App.Encyclopedia.addArticle("Milkmaid", function() { r.push("Having applicable", link("career experience", "Career Experience"), "and strong", link("muscles", "Musculature"), "allow a Milkmaid to help cows maintain their health."); r.push("If a Milkmaid is Funny or Caring, she can improve cow's", trust("trusting"), "resting point; if she has oral skills, she can improve their", devotion(), "resting point."); if (V.seeDicks !== 0) { - r.push("If she has a very large dick capable of erection, a Milkmaid can assist cows with ejaculation if the Dairy is not already stimulating prostates."); + r.push("If she has a very large dick capable of erection, a Milkmaid can assist cows with ejaculation if the Dairy is not already stimulating prostates."); } App.Events.addNode(t, r, "div"); @@ -335,9 +334,8 @@ App.Encyclopedia.addArticle("Recruiter", function() { const devotion = (text="devotion", colour="hotpink") => link(text, "From Rebellious to Devoted", colour); const rep = (text="reputation") => link(text, "Arcologies and Reputation", "green"); const t = new DocumentFragment(); - let r; + let r = []; - r = []; r.push("A", App.UI.DOM.makeElement("span", "Recruiter", ["bold"]), "can be selected from among your", devotion("devoted"), "slaves immediately."); r.push(App.UI.DOM.makeElement("span", "Intelligence", ["cyan"]), "entertainment skills, and luxurious living standards help a recruiter convince vulnerable people to submit to voluntary enslavement."); r.push("Each targetable group is also more sympathetic to an appropriate recruiter."); @@ -378,9 +376,8 @@ App.Encyclopedia.addArticle("Stewardess", function() { const devotion = (text="devotion", colour="hotpink") => link(text, "From Rebellious to Devoted", colour); const trust = (text="trust") => link(text, "Trust", "mediumaquamarine"); const t = new DocumentFragment(); - let r; + let r = []; - r = []; r.push("Throughout recorded history, wherever there have been mature slave societies, there have been slave overseers set over their peers by their masters. Naturally, these individuals have simultaneously been among the most"); r.push(trust("trusted")); r.push("to their masters, and among the most hated to their compatriots in slavery. They have perhaps the greatest interest in preservation of a slave society, since the masters have only the loss of property to fear by abolition; slave overseers would likely be less lucky."); diff --git a/src/gui/Encyclopedia/encyclopediaSlaveQuirks.js b/src/gui/Encyclopedia/encyclopediaSlaveQuirks.js index b009357c60c2c667e668d08748acd6555c6e6634..c840b8185d13b33500458c44e54899263cd18a8c 100644 --- a/src/gui/Encyclopedia/encyclopediaSlaveQuirks.js +++ b/src/gui/Encyclopedia/encyclopediaSlaveQuirks.js @@ -13,7 +13,7 @@ App.Encyclopedia.addArticle("Quirks", function() { return f; }, "slaveQuirks"); -App.Encyclopedia.addArticle("Adores Men", function() { +App.Encyclopedia.addArticle("Adores men", function() { const f = new DocumentFragment(); const r = new SpacedTextAccumulator(f); r.push(App.UI.DOM.makeElement("span", "Adores men", ["bold"]), "is a behavioral", App.Encyclopedia.Dialog.linkDOM("quirk", "Quirks"), "developed from the"); @@ -26,7 +26,7 @@ App.Encyclopedia.addArticle("Adores Men", function() { return f; }, "slaveQuirks"); -App.Encyclopedia.addArticle("Adores Women", function() { +App.Encyclopedia.addArticle("Adores women", function() { const f = new DocumentFragment(); const r = new SpacedTextAccumulator(f); r.push(App.UI.DOM.makeElement("span", "Adores women", ["bold"]), "is a behavioral", App.Encyclopedia.Dialog.linkDOM("quirk", "Quirks"), "developed from the"); @@ -122,7 +122,7 @@ App.Encyclopedia.addArticle("Sinful", function() { r.push(App.UI.DOM.makeElement("span", "Sinful", ["bold"]), "is a behavioral", App.Encyclopedia.Dialog.linkDOM("quirk", "Quirks"), "developed from the"); r.push(App.Encyclopedia.Dialog.linkDOM("devout"), App.UI.DOM.combineNodes(App.Encyclopedia.Dialog.linkDOM("flaw", "Flaws"), ".")); r.push("Slaves may naturally become", App.UI.DOM.combineNodes(App.Encyclopedia.Dialog.linkDOM("humiliation fetishists", "Humiliation Fetishists"), ".")); - r.push("In addition to the standard value and sexual assignment advantages, they get bonus", App.Encyclopedia.Dialog.linkDOM("devotion", "From Rebellious to Devoted", "hotpink"), "while performing", App.UI.DOM.combineNodes(App.Encyclopedia.Dialog.linkDOM("whoring."), ".")); + r.push("In addition to the standard value and sexual assignment advantages, they get bonus", App.Encyclopedia.Dialog.linkDOM("devotion", "From Rebellious to Devoted", "hotpink"), "while performing", App.UI.DOM.combineNodes(App.Encyclopedia.Dialog.linkDOM("whoring"), ".")); r.toNode("div"); return f; @@ -258,7 +258,7 @@ App.Encyclopedia.addCategory("slaveQuirks", function() { r.push(App.Encyclopedia.Dialog.linkDOM("Funny")); r.push(App.Encyclopedia.Dialog.linkDOM("Insecure")); r.push(App.Encyclopedia.Dialog.linkDOM("Sinful")); - App.Events.addNode(f, ["Behavioral", App.UI.DOM.combineNodes(App.Encyclopedia.Dialog.linkDOM("Quirks"), ":"), App.UI.DOM.generateLinksStrip(r)], "div"); + App.Events.addNode(f, ["Behavioral ", App.UI.DOM.combineNodes(App.Encyclopedia.Dialog.linkDOM("Quirks"), ":"), App.UI.DOM.generateLinksStrip(r)], "div"); r = []; r.push(App.Encyclopedia.Dialog.linkDOM("Caring")); @@ -270,7 +270,7 @@ App.Encyclopedia.addCategory("slaveQuirks", function() { r.push(App.Encyclopedia.Dialog.linkDOM("Strugglefuck Queen")); r.push(App.Encyclopedia.Dialog.linkDOM("Tease")); r.push(App.Encyclopedia.Dialog.linkDOM("Unflinching")); - App.Events.addNode(f, ["Sexual", App.UI.DOM.combineNodes(App.Encyclopedia.Dialog.linkDOM("Quirks"), ":"), App.UI.DOM.generateLinksStrip(r)], "div"); + App.Events.addNode(f, ["Sexual ", App.UI.DOM.combineNodes(App.Encyclopedia.Dialog.linkDOM("Quirks"), ":"), App.UI.DOM.generateLinksStrip(r)], "div"); return f; });