diff --git a/src/Mods/Catmod/events/nonRandom/projectNBubbles.js b/src/Mods/Catmod/events/nonRandom/projectNBubbles.js index 1fa6486698dd82d368f7c5a6aaca075f914582d7..fad7d0dc1bf3ea71d611345a03d10418f3f18939 100644 --- a/src/Mods/Catmod/events/nonRandom/projectNBubbles.js +++ b/src/Mods/Catmod/events/nonRandom/projectNBubbles.js @@ -12,7 +12,7 @@ App.Events.SEProjectNbubbles = class SEProjectNbubbles extends App.Events.BaseEv V.projectN.phase3 = App.Events.effectiveWeek(); App.Events.addParagraph(node, [`You check in on the genelab, and are pleased to see that project N is making a great deal of progress. What was once an indistinguishable fleshy mass in a tube of mysterious green liquid looks now more like a small, unconscious humanoid body, pink-fleshed and nude, with a set of pointy triangular ears atop its bald head that vaguely resemble a cat. Doctor Nieskowitz steps up to you as you examine the growing body, actually smiling for once.`]); - App.Events.addParagraph(node, [`"Ah, I see you've seen our latest progress. I'm quite proud of the team's work so far, you know - five months ago I would have said this kind of genetic splicing was simply impossible. But there's no better scientific feeling than proving yourself wrong, eh? Anyway, we've started to refer to the subject as 'Bubbles', on account of the-" The doctor is interrupted by a slight thrashing movement from the unconscious body, which produces a short span of bubbling within the tube's liquid. "- Well, that. But anyway, since you're funding the project and she'll be your property once we finish, I thought it best to ask you your opinion on the matter of a real name before we proceed any further."`]); + App.Events.addParagraph(node, [`"Ah, I see you've seen our latest progress. I'm quite proud of the team's work so far, you know – five months ago I would have said this kind of genetic splicing was simply impossible. But there's no better scientific feeling than proving yourself wrong, eh? Anyway, we've started to refer to the subject as 'Bubbles', on account of the–" The doctor is interrupted by a slight thrashing movement from the unconscious body, which produces a short span of bubbling within the tube's liquid. "...well, that. But anyway, since you're funding the project and she'll be your property once we finish, I thought it best to ask you your opinion on the matter of a real name before we proceed any further."`]); App.Events.addResponses(node, [ new App.Events.Result(`Bubbles is a good name`, bubbles), diff --git a/src/Mods/SecExp/buildings/riotControlCenter.js b/src/Mods/SecExp/buildings/riotControlCenter.js index 7c649a455e8bfb3a2c1c6b8b8712351e8dbaf320..8c15159d4104c08fb4c87315e43145a5801f8eab 100644 --- a/src/Mods/SecExp/buildings/riotControlCenter.js +++ b/src/Mods/SecExp/buildings/riotControlCenter.js @@ -139,7 +139,7 @@ App.Mods.SecExp.riotCenter = (function() { node.append("You sped up the project to its maximum."); } if (V.SecExp.buildings.riotCenter.brainImplant !== -1) { - App.UI.DOM.appendNewElement("div", node, `The great brain implant project is underway. Estimated time to completion: ${Math.trunc((100 - V.SecExp.buildings.riotCenter.brainImplant) / V.SecExp.buildings.riotCenter.brainImplantProject)}`); + App.UI.DOM.appendNewElement("div", node, `The great brain implant project is underway. Estimated time to completion: ${years(Math.trunc((100 - V.SecExp.buildings.riotCenter.brainImplant) / V.SecExp.buildings.riotCenter.brainImplantProject))}`); } } else { node.append("The great brain implant project is completed, rebellions against you will be extremely difficult to organize."); diff --git a/src/arcologyBuilding/ManageArcology.js b/src/arcologyBuilding/ManageArcology.js index e2014f0cb869a8788168498e65bb9b92ea54dbe3..a55cbfe253345fb67623040bed9784e092baf0d1 100644 --- a/src/arcologyBuilding/ManageArcology.js +++ b/src/arcologyBuilding/ManageArcology.js @@ -709,7 +709,7 @@ App.UI.manageArcology = function() { const text = []; - text.push(`Your army counts ${num(App.Mods.SecExp.unit.squads("human").reduce((acc, s) => acc + s.troops, 0) + SF)} total soldiers${(V.SF.Toggle && V.SF.Active >= 1) ? ` of which ${num(V.SF.ArmySize)} under the Special Force chain of command and the rest under your direct control` : ``}.`); + text.push(`Your army counts ${num(App.Mods.SecExp.unit.squads("human").reduce((acc, s) => acc + s.troops, 0) + SF)} total soldiers${(V.SF.Toggle && V.SF.Active >= 1) ? `, of which ${num(V.SF.ArmySize)} are under the Special Force chain of command and the rest under your direct control` : ``}.`); if (V.SecExp.settings.battle.enabled === 1 && count('battles') > 0) { text.push(`Your troops were involved in ${num(count('battles'))} battles, of which ${num(V.SecExp.battles.major)} were major engagements. You won`); diff --git a/src/art/webgl/art.js b/src/art/webgl/art.js index 0a0df4e8e950198092dccfd2541529bf1283f8a6..87487c064d29cfbc85b85a5c6db44d31b3bc7e2b 100644 --- a/src/art/webgl/art.js +++ b/src/art/webgl/art.js @@ -1489,7 +1489,7 @@ App.Art.applySurfaces = function(slave, scene, p) { App.Medicine.Modification.Brands.genitalSymbol.hasOwnProperty(text) || App.Medicine.Modification.Brands.silhouettes.hasOwnProperty(text) || App.Medicine.Modification.Brands.FS.hasOwnProperty(text)) { - return; + return; } } generateText(text, location, center, layers); diff --git a/src/endWeek/saPorn.js b/src/endWeek/saPorn.js index bd150b1ca283b00ca8c971b9f2cd2d924724159a..e98f6b5b5e93962fbe9def18e6e9ee67c9e7c2fb 100644 --- a/src/endWeek/saPorn.js +++ b/src/endWeek/saPorn.js @@ -217,7 +217,7 @@ App.SlaveAssignment.porn = function saPorn(slave) { if (slave.porn.focus !== "none") { const focusGenre = App.Porn.getGenreByFocusName(slave.porn.focus); if (!focusGenre || !focusGenre.valid(slave)) { - r += `${He} has been instructed to focus on ${slave.porn.focus} aspects of ${his} sex life to improve the porn ${he} produces, but ${he} <span class="red">can no longer do so.</span>`; + r += `${He} has been instructed to focus on ${slave.porn.focus} aspects of ${his} sex life to improve the porn ${he} produces, but ${he} <span class="red">can no longer do so.</span> `; slave.porn.focus = "none"; } } diff --git a/src/events/REFS/refsDeadBaron.js b/src/events/REFS/refsDeadBaron.js index 3d444f4f625b24503e83f0d6d3c5c987fe6d0984..e50677a16b403f495b48ead5c75bdda6555125ff 100644 --- a/src/events/REFS/refsDeadBaron.js +++ b/src/events/REFS/refsDeadBaron.js @@ -25,24 +25,24 @@ App.Events.refsDeadBaron = class refsDeadBaron extends App.Events.BaseEvent { } function executive() { - cashX(5000, "Baron Gift"); + cashX(5000, "event"); V.arcologies[0].prosperity -= 1; - cashX(-2000, "Costs of Administrative Change"); + cashX(-2000, "event"); repX(-2000, "event"); return `You select one of your loyal executives, an ultra-wealthy trader within the arcology who made a fortune in the sale of human bodies, for the new Barony. The man, a portly and unintimidating man that hides a razor-sharp mind behind his fat and an expensive suit, smiles full of teeth as you announce your decision to a waiting crowd of elites. After you go through the formalities and hand him the golden band that will represent his symbol of office, he shakes your hand vigorously, still smiling devilishly. The furious baronets, robbed of their title, do their best to obstruct the ceremony, and the decision to take the title from their family causes <span class="reputation dec">fear and concern</span> amongst Barons now insecure of their family's future. The next day, the newly-appointed Baron sends you a platter of expensive gifts and foreign candies, complimented with a <span class="cash inc">massive direct deposit to your bank account.</span> You can't help but feel that such a crafty fox might use his new power to <span class="prosperity dec">corner the market</span> in his barony, though.`; } function bureaucrat() { V.arcologies[0].prosperity += 3; - cashX(-2000, "Costs of Administrative Change"); + cashX(-2000, "event"); repX(-2000, "event"); - return `You select an unimportant but accomplished bureaucrat within the lower ranks of your administration, one of the cornerstone accountants that keeps the trains running on time. The rail-thin woman is clearly surprised that you'd choose her over a wealthier, more influential elite, but nevertheless accepts the golden band with overflowing joy. The furious baronets, robbed of their title, do their best to obstruct the ceremony, and the decision to take the title from their family causes <span class="reputation dec">fear and concern</span> amongst Barons now insecure of their family's future. Although she may not turn any eyebrows, you can tell without a fact that she'll <span class="prosperity inc">keep your arcology efficient and prosperous</span> – after all, if it collapses, then her 'guaranteed' barony vanishes too.`; + return `You select an unimportant but accomplished bureaucrat within the lower ranks of your administration, one of the cornerstone accountants that keeps the trains running on time. The rail-thin woman is clearly surprised that you'd choose her over a wealthier, more influential elite, but nevertheless accepts the golden band with overflowing joy. The furious baronets, robbed of their title, do their best to obstruct the ceremony, and the decision to take the title from their family causes <span class="reputation dec">fear and concern</span> amongst Barons now insecure of their family's future. Although she may not turn any eyebrows, you can tell without a fact that she'll <span class="prosperity inc">keep your arcology efficient and prosperous</span> – after all, if it collapses, then her "guaranteed" barony vanishes too.`; } function knight() { repX(+2500, "event"); V.arcologies[0].prosperity++; - cashX(-2000, "Costs of Administrative Change"); + cashX(-2000, "event"); repX(-2000, "event"); return `You select one of your Imperial Knights, a heavily scarred and muscular man who bears his rose-and-hawk coat of arms like a purple heart on his broad chest. The grizzled soldier is somewhat taken aback at your decision, but regains his composure almost immediately and accepts the golden band of a Baron with a scarred-over smirk. The furious baronets, robbed of their title, do their best to obstruct the ceremony, and the decision to take the title from their family causes <span class="reputation dec">fear and concern</span> amongst Barons now insecure of their family's future. The ex-Knight takes to his new duty with surprising gusto, and quickly proves himself an <span class="reputation inc">extraordinarily popular figure</span> among the commoners, who see the scarred and athletic figure both as proof that duty is rewarded in your arcology and as an example of what a proper Imperial noble should be – martial, confident, and nearly unbeatable in a duel.`; } diff --git a/src/events/scheduled/JobFulfillmentCenterDelivery.js b/src/events/scheduled/JobFulfillmentCenterDelivery.js index 27a24f662d8b96161cbad6a199c8d3a7c3de6542..51a23622c42d0114ec98f665acac10ae49be0f53 100644 --- a/src/events/scheduled/JobFulfillmentCenterDelivery.js +++ b/src/events/scheduled/JobFulfillmentCenterDelivery.js @@ -48,7 +48,7 @@ App.Events.JobFulfillmentCenterDelivery = class JobFulfillmentCenterDelivery ext function reject() { V.JFC.order = 1; V.JFC.reorder = 1; - return `The current slave is not to your satisfaction. No matter. There are always more slaves`; + return `The current slave is not to your satisfaction. No matter. There are always more slaves.`; } } }; diff --git a/src/npc/descriptions/style/hair.js b/src/npc/descriptions/style/hair.js index c73e42eb535c0e14b8fc8b800cfd7ecd8fb56f9d..ff871bdefd5d561021fc7400fa476c14275e6e98 100644 --- a/src/npc/descriptions/style/hair.js +++ b/src/npc/descriptions/style/hair.js @@ -167,7 +167,7 @@ App.Desc.hair = function(slave) { } r.push(`${His}`); if (slave.eyebrowHStyle === "bald") { - r.push(`brows do not grow hair. ${His} eyebrows would be ${slave.eyebrowHColor} in color if they did.`); + r.push(`brows do not grow hair, but would be ${slave.eyebrowHColor} in color if they did.`); } else if (slave.eyebrowHStyle === "shaved") { r.push(`eyebrows have`); if (slave.hStyle === "shaved") { diff --git a/src/pregmod/FCTV/FCTVshows.js b/src/pregmod/FCTV/FCTVshows.js index dfb0796af43343c75694191d6f2d2fbbd1dde60e..b751f03451f477bb7cb4a6c98050abb3b1644a68 100644 --- a/src/pregmod/FCTV/FCTVshows.js +++ b/src/pregmod/FCTV/FCTVshows.js @@ -2089,7 +2089,7 @@ App.Data.FCTV.channels = { const r = []; r.push(`aka the Pirate channel.`); r.push(`<p>You're greeted by a man with an eyepatch, a bushy black beard, and a crimson bandanna around his head. He's sitting behind a crude looking bamboo desk. Behind him is the backdrop of a sun rising over the ocean and two slaves in tight revealing sailor outfits swabbing the deck. The whole set looks like some sort of tropical pirate theme and you almost change the channel mistaking the show for a kids show when it catches up to you what the pirate is talking about.</p>`); - r.push(`<p>"- An' that be concludin' our special report on the dangers o' dealin' with old world customs agencies an' how to find a scallywag'll right proper let you sneak a bound wench through fer the right bribe. If'n you missed it or be needin' a refresher, catch our rebroadcast in 12 bells time. Now afore the turn of the hourglass we go to our weatherwench Lusty Pearl who's been keepin' a weather eye on the horizon. Lusty?"</p>`); + r.push(`<p>"– An' that be concludin' our special report on the dangers o' dealin' with old world customs agencies an' how to find a scallywag'll right proper let you sneak a bound wench through fer the right bribe. If'n you missed it or be needin' a refresher, catch our rebroadcast in 12 bells time. Now afore the turn of the hourglass we go to our weatherwench Lusty Pearl who's been keepin' a weather eye on the horizon. Lusty?"</p>`); r.push(`<p>The camera cuts to a young blonde girl with her hair braided back in rows. She's wearing a white blouse that's unbuttoned all the way down to her leather corset showing much of her very large rack while hiding little.</p>`); r.push(`<p>"Thank ye, Captain Castbeak!" she positively beams with energy as she bounces around, her barely contained breasts keeping your eye as she sways and jumps around the screen.</p>`); r.push(`<p>"Today we be keepin' an eye on the acid rain storms as they blow on through the upper Chinese and Mongolian regions on their way to the Bering Strait. If ye be located anywhere around here —" She stretches up with a short pointer that you now realize is part of a prosthetic limb attached to her right hand. "— batten down yer hatches an' wait fer the storm ta' blow over".</p>`);