"README.md" did not exist on "9be6e635bb3b6699b07a2e24acb5d245e40394b2"
Newer
Older
/* intended to condense the clothing/toy/etc availability checks into something less asinine */
switch (string) {
/* no breaks needed because we always return */
case "attractive lingerie for a pregnant woman":
return (V.arcologies[0].FSRepopulationFocus > 0 || V.clothesBoughtMaternityLingerie === 1);
case "a bunny outfit":
return (V.arcologies[0].FSGenderFundamentalist > 0 || V.clothesBoughtBunny === 1);
case "body oil":
return (V.arcologies[0].FSPhysicalIdealist > 0 || V.clothesBoughtOil === 1);
case "chains":
return (V.arcologies[0].FSDegradationist > 0 || V.clothesBoughtChains === 1);
case "a chattel habit":
return (V.arcologies[0].FSChattelReligionist > 0 || V.clothesBoughtHabit === 1);
case "conservative clothing":
return (V.arcologies[0].FSPaternalist > 0 || V.clothesBoughtConservative === 1);
case "harem gauze":
return (V.arcologies[0].FSArabianRevivalist > 0 || V.clothesBoughtHarem === 1);
case "a huipil":
return (V.arcologies[0].FSAztecRevivalist > 0 || V.clothesBoughtHuipil === 1);
case "a kimono":
return (V.arcologies[0].FSEdoRevivalist > 0 || V.clothesBoughtKimono === 1 || V.continent === "Japan");
case "a maternity dress":
return (V.arcologies[0].FSRepopulationFocus > 0 || V.clothesBoughtMaternityDress === 1);
case "a slutty qipao":
return (V.arcologies[0].FSChineseRevivalist > 0 || V.clothesBoughtQipao === 1);
case "a long qipao":
return (V.arcologies[0].FSChineseRevivalist > 0 || V.clothesBoughtCultural === 1);
case "stretch pants and a crop-top":
return (V.arcologies[0].FSHedonisticDecadence > 0 || V.clothesBoughtLazyClothes === 1);
case "a toga":
return (V.arcologies[0].FSRomanRevivalist > 0 || V.clothesBoughtToga === 1);
case "Western clothing":
return (V.arcologies[0].FSPastoralist > 0 || V.clothesBoughtWestern === 1);
case "a courtesan dress":
return (V.arcologies[0].FSSlaveProfessionalism > 0 || V.clothesBoughtCourtesan === 1);
case "a bimbo outfit":
return (V.arcologies[0].FSIntellectualDependency > 0 || V.clothesBoughtBimbo === 1);
case "petite admi outfit":
return (V.arcologies[0].FSPetiteAdmiration > 0 || V.clothesBoughtPetite === 1);
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
case "battlearmor":
case "a military uniform":
case "a red army uniform":
case "battledress":
return (V.clothesBoughtMilitary === 1);
case "a biyelgee costume":
case "a dirndl":
case "lederhosen":
case "a mounty outfit":
case "a hanbok":
return (V.clothesBoughtCultural === 1);
case "a burqa":
case "a niqab and abaya":
return (V.clothesBoughtMiddleEastern === 1 || V.continent === "the Middle East");
case "a hijab and blouse":
return (V.clothesBoughtMiddleEastern === 1 || V.clothesBoughtConservative === 1 || V.continent === "the Middle East");
case "a burkini":
return (V.clothesBoughtMiddleEastern === 1 && V.clothesBoughtSwimwear === 1 || V.continent === "the Middle East");
case "a Santa dress":
return (V.clothesBoughtCostume === 1);
case "a klan robe":
case "a slutty klan robe":
case "a schutzstaffel uniform":
case "a slutty schutzstaffel uniform":
return (V.clothesBoughtPol === 1);
case "nice business attire":
case "a nice nurse outfit":
case "a police uniform":
return (V.clothesBoughtCareer === 1);
case "a nice maid outfit":
return (V.clothesBoughtCareer === 1 || V.PC.career === "servant");
case "a ball gown":
case "a gothic lolita dress":
return (V.clothesBoughtDresses === 1);
case "a cybersuit":
case "a latex catsuit":
return (V.clothesBoughtBodysuits === 1);
case "a button-up shirt and panties":
case "a button-up shirt":
case "cutoffs":
case "jeans":
case "leather pants and a tube top":
case "leather pants":
case "an oversized t-shirt":
case "a sweater and cutoffs":
case "a sweater and panties":
case "a sweater":
case "a t-shirt and jeans":
case "a t-shirt and panties":
case "a t-shirt":
case "a tank-top and panties":
case "a tank-top":
case "a tube top":
return (V.clothesBoughtCasual === 1);
case "boyshorts":
case "a bra":
case "kitty lingerie":
case "panties and pasties":
case "a skimpy loincloth":
case "a thong":
return (V.clothesBoughtUnderwear === 1);
case "leather pants and pasties":
case "a t-shirt and thong":
case "a tube top and thong":
case "an oversized t-shirt and boyshorts":
return (V.clothesBoughtUnderwear === 1 && V.clothesBoughtCasual === 1);
case "sport shorts and a sports bra":
case "sport shorts":
case "a sports bra":
return (V.clothesBoughtSports === 1);
case "sport shorts and a t-shirt":
return (V.clothesBoughtSports === 1 && V.clothesBoughtCasual === 1);
case "a nice pony outfit":
case "a slutty pony outfit":
return (V.clothesBoughtPony === 1);
case "a monokini":
case "a one-piece swimsuit":
return (V.clothesBoughtSwimwear === 1);
case "a striped bra":
case "striped panties":
case "striped underwear":
return (V.clothesBoughtPantsu === 1 || V.continent === "Japan");
case "platform shoes":
case "platform heels":
case "extreme platform heels":
return (V.arcologies[0].FSStatuesqueGlorification > 0 || V.shoesBoughtHeels === 1);
case "bowtie":
return (V.arcologies[0].FSGenderFundamentalist > 0 || V.clothesBoughtBunny === 1);
case "ancient Egyptian":
return (V.arcologies[0].FSEgyptianRevivalist > 0 || V.clothesBoughtEgypt === 1);
case "massive dildo gag":
return (V.toysBoughtGags === 1);
case "a small empathy belly":
case "a medium empathy belly":
case "a large empathy belly":
case "a huge empathy belly":
return (V.arcologies[0].FSRepopulationFocus > 0 || V.clothesBoughtBelly === 1);
case "bullet vibrator":
case "smart bullet vibrator":
case "long dildo":
case "long, large dildo":
case "long, huge dildo":
return (V.toysBoughtDildos === 1);
case "vibrator":
return (V.toysBoughtVaginalAttachments === 1);
case "long plug":
case "long, large plug":
case "long, huge plug":
return (V.toysBoughtButtPlugs === 1);
case "tail":
case "cat tail":
case "fox tail":
return (V.toysBoughtButtPlugTails === 1);
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
// "Normal" things:
case "an apron":
case "slutty jewelry":
case "clubslut netting":
case "cutoffs and a t-shirt":
case "a comfortable bodysuit":
case "a cheerleader outfit":
case "a fallen nuns habit":
case "a hijab and abaya":
case "a leotard":
case "a slutty maid outfit":
case "a mini dress":
case "attractive lingerie":
case "a slutty nurse outfit":
case "overalls":
case "panties":
case "a scalemail bikini":
case "a schoolgirl outfit":
case "a slutty outfit":
case "spats and a tank top":
case "a string bikini":
case "a succubus outfit":
case "slutty business attire":
case "no clothing":
case "a penitent nuns habit":
case "restrictive latex":
case "shibari ropes":
case "uncomfortable straps":
case "choosing her own clothes":
case "a halter top dress":
case "a slave gown":
return true;
};
window.isClothingAccessible = function(string) {
if (V.cheatMode === 1) {
return true;
}
let success = 0;
setup.clothes.forEach(item => {
if (item.value === string) {
if (!(item.hasOwnProperty("unlock")) && !(item.hasOwnProperty("fs"))) {
console.log(`${string} is free for everyone!`);
return true;
}
if (item.hasOwnProperty("fs")) {
if (V.arcologies[0][item.fs] > 0) {
console.log(`${string} is in FS!`);
return true;
}
}
if (item.hasOwnProperty("unlock")) {
let keys = Object.keys(item.unlock);
for (let key in keys) {
if (keys[key] === "continent" && V.continent === item.unlock[keys[key]]) {
} else if (V[keys[key]] > 0 ) {
console.log(`${string} because ${keys[key]} is true for us!`);
success = 1;
return true;
}
}
// special case where they must both be true
if (item.unlock.clothesBoughtSports && item.unlock.clothesBoughtCasual) {
if (V.clothesBoughtSports && V.clothesBoughtCasual) {
return true;
}
}
}
console.log("this sucks, we couldn't get: ");
console.log(item);
}
return false;
});
* @param {App.Entity.SlaveState} slave
* @param {string} prosthetic
* @returns {boolean}
*/
window.isProstheticAvailable = function(slave, prosthetic) {
return slave.readyProsthetics.findIndex(function(p) { return p.id === prosthetic; }) !== -1;
};
/**
* @param {App.Entity.SlaveState} slave
* @param {string} prosthetic
*/
window.addProsthetic = function(slave, prosthetic) {
if (!isProstheticAvailable(slave, prosthetic)) {
let limb = prostheticToLimb(prosthetic);
if (limb > 0) {
let p = {
id: prosthetic,
arm: {left: new App.Entity.LimbState(), right: new App.Entity.LimbState()},
leg: {left: new App.Entity.LimbState(), right: new App.Entity.LimbState()}
};
p.arm.left.type = limb;
p.arm.right.type = limb;
p.leg.left.type = limb;
p.leg.right.type = limb;
slave.readyProsthetics.push(p);
} else {
slave.readyProsthetics.push({id: prosthetic});
}
/**
* @param {App.Entity.SlaveState} slave
* @param {string} prosthetic
* @returns {{}}
*/
window.findProsthetic = function(slave, prosthetic) {
return slave.readyProsthetics.find(p => p.id === prosthetic);
};
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
/**
* @param {string} prosthetic
* @returns {number}
*/
window.prostheticToLimb = function(prosthetic) {
switch (prosthetic) {
case "basicL":
return 2;
case "sexL":
return 3;
case "beautyL":
return 4;
case "combatL":
return 5;
case "cyberneticL":
return 6;
default:
return 0;
}
};
/**
*
* @param {number} limb
* @returns {string}
*/
window.limbToProsthetic = function(limb) {
switch (limb) {
case 2:
return "basicL";
case 3:
return "sexL";
case 4:
return "beautyL";
case 5:
return "combatL";
case 6:
return "cyberneticL";
default:
return "";
}
};