Newer
Older
/**
* Details week-to-week changes in children in the Nursery
* @returns {string}
*/
App.Facilities.Nursery.childrenReport = function childrenReport() {
const
Matron = V.Matron,
nannies = App.Utils.sortedEmployees(App.Entity.facilities.nursery),
NL = App.Entity.facilities.nursery.employeesIDs().size,
CL = V.cribs.length;
let
r.push(`<span class="pink">${child.slaveName}</span> is growing steadily. ${He} will be ready for release in about ${years(child.growTime)}.`);
r.push(`<span class="pink">${child.slaveName}</span> is <span class="lime">ready for release.</span> ${He} will be removed from ${V.nurseryName} upon your approach.`);
}
if (child.actualAge >= 3) {
r.push(matronFetishEffects());
r.push(matronEducationEffects());
r.push(matronFitnessEffects());
r.push(nannyEducationEffects());
r.push(nannyFitnessEffects());
r.push(nannyFetishEffects());
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
}
// TODO: add friend / rivalry system
// TODO: add relations to friend system
for (let j = 0; j < CL; j++) {
const
c = V.cribs[j];
let
friend = 0,
rival = 0,
chance = jsRandom(1, 100);
if (c.actualAge >= 3) {
if (c.fetish === child.fetish) {
r += ``; // TODO:
friend++;
}
if (c.sexualQuirk === child.sexualQuirk || c.behavioralQuirk === child.behavioralQuirk) {
r += ``; // TODO:
friend++;
}
if (c.fetish === "sadist" || c.fetish === "dom") {
r += ``; // TODO:
rival++;
} else if (child.fetish === "sadist" || child.fetish === "dom") {
r += ``; // TODO:
rival++;
}
if (friend) {
if (rival) {
if (friend > rival) {
if (chance > 75) {
r += ``; // TODO:
child.relationship = 1;
child.relationshipTarget = c.ID;
c.relationship = 1;
c.relationshipTarget = child.ID;
}
}
} else {
if (chance > 60) {
r += ``; // TODO:
child.relationship = 1;
child.relationshipTarget = c.ID;
c.relationship = 1;
c.relationshipTarget = child.ID;
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
}
}
}
if (rival) {
if (friend) {
if (rival > friend) {
if (chance > 75) {
r += ``; // TODO:
}
}
} else {
if (chance > 60) {
r += ``; // TODO:
}
}
}
}
}
// TODO: rework these entirely
if (Matron || NL) {
if (V.nurseryWeight) {
const firstNanny = NL > 0 ? App.Entity.facilities.nursery.employees()[0] : null;
r += `<br>`;
if (V.nurseryWeightSetting === 1) {
if (child.weight < 200) {
child.weight += 5;
}
r += `${He} is being fed an excessive amount of food, causing <span class="red">rapid weight gain.</span> `;
} else if (V.nurseryWeightSetting === 2) {
if (child.weight > 10) {
child.weight--;
r += `${Matron ? Matron.slaveName : NL > 1 ? `A nanny` : firstNanny.slaveName} notices ${he} is overweight and <span class="green">decreases the amount of food ${he} eats.</span> `;
} else if (child.weight <= -10) {
child.weight++;
r += `${Matron ? Matron.slaveName : NL > 1 ? `A nanny` : firstNanny.slaveName} notices ${he} is underweight and <span class="green">increases the amount of food ${he} eats.</span> `;
} else {
r += `${He} is <span class="lime">currently a healthy weight;</span> efforts will be made to maintain it. `;
}
} else if (V.nurseryWeightSetting === 0) {
if (child.weight > -20) {
r += `${His} developing body <span class="red">quickly sheds its gained weight.</span> `;
child.weight -= 40;
}
}
} else {
if (child.weight > -20) {
child.weight -= 40;
r += `${His} developing body <span class="red">quickly sheds its gained weight.</span>`;
}
}
// TODO: rewrite these
if (V.nurseryMuscles) {
r += `${He} is being given anabolic steroids causing <span class="green">rapid muscle development.</span> `; // TODO: not happy with this
if (V.nurseryMusclesSetting === 2) {
if (child.muscles < 100) {
child.muscles += 5;
}
r += `${Matron ? Matron : NL > 1 ? `A nanny` : firstNanny.slaveName} notices ${he} is overly muscular and <span class="green">decreases ${his} steroid dosage.</span> `;
} else if (V.nurseryMusclesSetting === 1) {
if (child.muscles > 10) {
child.muscles--;
r += `${Matron ? Matron : NL > 1 ? `A nanny` : firstNanny.slaveName} notices ${he} is weak and <span class="green">increases ${his} steroid dosage.</span> `;
} else if (child.muscles < -10) {
child.muscles++;
r += `${He} has <span class="lime">a healthy musculature;</span> efforts will be made to maintain it. `;
} else {
r += `${His} developing body <span class="red">quickly loses its gained muscle.</span> `;
}
} else if (V.nurseryMusclesSetting === 0) {
if (child.muscles > -100) {
child.muscles -= 40;
r += `${His} developing body <span class="red">quickly loses its gained muscle.</span> `;
}
}
}
}
} else {
// TODO:
}
r += `<br>`;
}
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
function newChildFetish(fetish = "none") {
switch (fetish) {
case "submissive":
return `is now a submissive`;
case "cumslut":
return `is now a cumslut`;
case "humiliation":
return `now has a fetish for humiliation`;
case "buttslut":
return `is now a buttslut`;
case "boobs":
return `now has a fetish for all things breast-related`;
case "sadist":
return `now gets off on causing pain`;
case "masochist":
return `now gets off on pain`;
case "dom":
return `is now very sexually dominant`;
case "pregnancy":
return `has developed a facination for all things pregnancy-related`;
default:
throw `<span class="red">Something broke in newChildFetish(). Please report this.</span>`;
}
}
// MARK: Matron Effects
function matronFetishEffects() {
const chance = jsRandom(1, 100);
if (Matron.fetish !== "none") {
if (chance > 90) {
if (child.fetish === "none") {
child.fetish = Matron.fetish;
return `${child.slaveName} has taken a few cues from ${Matron.slaveName}, and ${newChildFetish(child.fetish)}.`;
} else {
if (chance > 95) {
child.fetish = Matron.fetish;
return `${Matron.slaveName} has rubbed off on ${child.slaveName}, in more ways than one. ${He} ${newChildFetish(child.fetish)}.`;
}
}
}
}
}
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
const
{ he2, him2, his2 } = getPronouns(Matron).appendSuffix('2'),
theChildren = CL > 1 ? `the children` : `${child.slaveName}`;
if (Matron.intelligence + Matron.intelligenceImplant > 65) {
child.intelligenceImplant += 3;
return `${Matron.slaveName} is so intelligent and well-educated that ${he2} is able to teach ${theChildren} very effectively, and so ${CL > 1 ? `${child.slaveName} gradually grows` : `they gradually grow`} smarter. `;
} else if (Matron.intelligenceImplant > 30) {
child.intelligenceImplant += 2;
return `${Matron.slaveName}'s education makes up for the fact that ${he2} isn't the brightest and allows ${him2} to teach ${theChildren} quite effectively, and so ${theChildren} grows a bit smarter. `;
} else if (Matron.intelligence > 50) {
child.intelligenceImplant += 2;
return `Though ${Matron.slaveName} has had little to no formal education, ${his2} natural brilliance allows ${him2} to teach ${theChildren} quite effectively, and so ${CL > 1 ? `${child.slaveName} grows` : `they grow`} a bit smarter. `;
} else {
child.intelligenceImplant++;
return `${Matron.slaveName} isn't the brightest and is only somewhat effective at teaching ${theChildren}, so ${CL > 1 ? `${child.slaveName} grows` : `they grow`} just a little bit smarter. `;
}
}
function matronFitnessEffects() {
// TODO:
return;
}
// MARK: Nanny Effects
function nannyFetishEffects() {
for (const slave of nannies) {
if (slave.fetish !== "none") {
if (chance > 85) {
if (child.fetish === "none") {
child.fetish = slave.fetish;
return `${slave.slaveName} has left quite an impression on ${child.slaveName}, and ${he} ${newChildFetish(child.fetish)}.`;
} else {
if (chance > 90) {
child.fetish = slave.fetish;
return `${child.slaveName} seems to have taken to ${slave.slaveName}'s example, and ${newChildFetish(child.fetish)}.`;
}
}
}
}
}
}
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
let
averageIntelligence = 0,
averageIntelligenceImplant = 0;
for (const nanny of nannies) {
averageIntelligence += nanny.intelligence;
averageIntelligenceImplant += nanny.intelligenceImplant;
}
const
firstNanny = nannies[0],
theNanniesAre = NL > 1 ? `The nannies are mostly` : `${firstNanny.slaveName} is`,
theChildren = CL > 1 ? `the children` : child.slaveName;
averageIntelligence = averageIntelligence / NL;
averageIntelligenceImplant = averageIntelligenceImplant / NL;
if (averageIntelligence + averageIntelligenceImplant > 65) {
child.intelligenceImplant += 3;
return `${theNanniesAre} very intelligent and well educated and are able to teach ${theChildren} very effectively. `;
} else if (averageIntelligence > 50) {
child.intelligenceImplant += 2;
return `${theNanniesAre} very intelligent and able to teach ${theChildren} quite effectively. `;
} else if (averageIntelligenceImplant > 25) {
child.intelligenceImplant += 2;
return `${theNanniesAre} very well educated and able to teach ${theChildren} quite effectively. `;
} else if (averageIntelligenceImplant > 15) {
child.intelligenceImplant++;
return `${theNanniesAre} well educated and able to teach ${theChildren} fairly effectively. `;
}
}
function nannyFitnessEffects() {
// TODO:
return;
}