diff --git a/devNotes/VersionChangeLog-Premod+LoliMod.txt b/devNotes/VersionChangeLog-Premod+LoliMod.txt index 4f8d207e7c7b1f4e3a14d30cdf5f1b92da5f5726..d0dcc8d898beaf33c8085c498b641184683954bc 100644 --- a/devNotes/VersionChangeLog-Premod+LoliMod.txt +++ b/devNotes/VersionChangeLog-Premod+LoliMod.txt @@ -2,6 +2,12 @@ 0.10.7.1-0.10.x +10/08/2018 + + 3 + -fixes + -several new sets of clothing from deepmurk + 10/07/2018 2 diff --git a/devNotes/twine JS.txt b/devNotes/twine JS.txt index f1e3586116f4dfb4ecd78dcdbe556b42b5c964ee..767b3989e937a44ea2075abe189a293b779ac6ec 100644 --- a/devNotes/twine JS.txt +++ b/devNotes/twine JS.txt @@ -15090,6 +15090,7 @@ window.DefaultRules = (function() { })(); /*:: Rules Assistant Options [script]*/ + // rewrite of the rules assistant options page in javascript // uses an object-oriented widget pattern // wrapped in a closure so as not to pollute the global namespace @@ -15509,7 +15510,7 @@ window.rulesAssistantOptions = (function() { render(element) { const greeting = document.createElement("p"); - greeting.innerHTML = `<em>${PCTitle()}, I will review your slaves and make changes that will have a beneficial effect. Apologies, ${PCTitle()}, but this function is... not fully complete. It may have some serious limitations. Please use the 'no default setting' option to identify areas I should not address.</em>`; + greeting.innerHTML = `<em>${properTitle()}, I will review your slaves and make changes that will have a beneficial effect. Apologies, ${properTitle()}, but this function is... not fully complete. It may have some serious limitations. Please use the 'no default setting' option to identify areas I should not address.</em>`; element.appendChild(greeting); return element; } @@ -16166,16 +16167,24 @@ window.rulesAssistantOptions = (function() { ["No default clothes setting", "no default setting"], ["Apron", "an apron"], ["Bangles", "slutty jewelry"], + ["Blue jeans and a t-shirt", "a t-shirt and jeans"], ["Bodysuit", "a comfortable bodysuit"], + ["Boy shorts", "boyshorts"], + ["Bra", "a bra"], + ["Button-up shirt and panties", "a button-up shirt and panties"], + ["Button-up shirt", "a button-up shirt"], ["Cheerleader outfit", "a cheerleader outfit"], ["Clubslut netting", "clubslut netting"], - ["Cybersuit", "a cybersuit"], ["Cutoffs and a t-shirt", "cutoffs and a t-shirt"], + ["Cybersuit", "a cybersuit"], ["Fallen nun", "a fallen nuns habit"], ["Halter top", "a halter top dress"], ["Hijab and abaya", "a hijab and abaya"], + ["Jean shorts", "cutoffs"], ["Kitty lingerie", "kitty lingerie"], ["Latex catsuit", "a latex catsuit"], + ["Leather pants and pasties", "leather pants and pasties"], + ["Leather pants", "leather pants"], ["Leotard", "a leotard"], ["Maid (nice)", "a nice maid outfit"], ["Maid (slutty)", "a slutty maid outfit"], @@ -16184,16 +16193,38 @@ window.rulesAssistantOptions = (function() { ["Nice lingerie", "attractive lingerie"], ["Nurse (nice)", "a nice nurse outfit"], ["Nurse (slutty)", "a slutty nurse outfit"], + ["One-piece swimsuit", "a one-piece swimsuit"], + ["Over-sized t-shirt and boy shorts", "an oversized t-shirt and boyshorts"], + ["Over-sized t-shirt", "an oversized t-shirt"], + ["Panties and t-shirt", "a t-shirt and panties"], + ["Panties", "panties"], + ["Pasties and panties", "panties and pasties"], + ["Scalemail bikini", "a scalemail bikini"], ["Schoolgirl", "a schoolgirl outfit"], ["Silken ballgown", "a ball gown"], ["Slave gown", "a slave gown"], ["Slutty outfit", "a slutty outfit"], + ["Spats and tank top", "spats and a tank top"], + ["Sport shorts and a sports bra", "sport shorts and a sports bra"], + ["Sport shorts and shirt", "sport shorts and a t-shirt"], + ["Sports bra", "a sports bra"], ["String bikini", "a string bikini"], - ["Scalemail bikini", "a scalemail bikini"], ["Succubus costume", "a succubus outfit"], ["Suit (nice)", "nice business sattire"], ["Suit (slutty)", "slutty business attire"], - ["Spats and tank top", "spats and a tank top"] + ["Sweater and panties", "a sweater and panties"], + ["Sweater", "a sweater"], + ["T-shirt", "a t-shirt"], + ["Tank-top and panties", "a tank-top and panties"], + ["Tank-top", "a tank-top"], + ["Thong and t-shirt", "a t-shirt and thong"], + ["Thong", "a thong"], + ["Tight blue jeans", "jeans"], + ["Tight jean shorts and a sweater", "a sweater and cutoffs"] + ["Tight leather pants and tube top", "leather pants and a tube top"], + ["Tight sport shorts", "sport shorts"], + ["Tube top and thong", "a tube top and thong"], + ["Tube top", "a tube top"] ]; const spclothes = [ ["Battlearmor", "battlearmor"], @@ -16201,15 +16232,24 @@ window.rulesAssistantOptions = (function() { ["Burkini", "a burkini"], ["Burqa", "a burqa"], ["Dirndl", "a dirndl"], - ["Hijab and blouse", "a blouse and hijab"], + ["Gothic Lolita Dress", "a gothic lolita dress"], + ["Hanbok", "a hanbok"], + ["Hijab and blouse", "a hijab and blouse"], ["Ku Klux Klan Robe", "a klan robe"], + ["Ku Klux Klan Robe (slutty)", "a slutty klan robe"], ["Lederhosen", "lederhosen"], ["Mounty outfit", "a mounty outfit"], ["Military uniform", "a military uniform"], ["Niqab and abaya", "a niqab and abaya"], + ["Police Uniform", "a police uniform"], + ["Pony outfit (nice)", "a nice pony outfit"], + ["Pony outfit (slutty)", "a slutty pony outfit"], ["Red Army uniform", "a red army uniform"], - ["Shimapan Panties", "shimapan panties"], + ["Shimapan Bra", "a striped bra"], + ["Shimapan Panties", "striped panties"], + ["Shimapan Underwear", "striped underwear"], ["Skimpy battledress", "battledress"], + ["Skimpy loincloth", "a skimpy loincloth"], ["Schutzstaffel uniform (nice)", "a schutzstaffel uniform"], ["Schutzstaffel uniform (slutty)", "a slutty schutzstaffel uniform"], ]; @@ -16868,7 +16908,7 @@ window.rulesAssistantOptions = (function() { this.setValue(this.value2string(current_rule.set.dietCum, current_rule.set.dietMilk)); }; } - + value2string(cum, milk) { return `cum: ${cum}, milk: ${milk}`; } @@ -16887,19 +16927,6 @@ window.rulesAssistantOptions = (function() { } } - class DietSolidFoodList extends List { - constructor() { - const pairs = [ - ["No default setting", "no default setting"], - ["Permitted", 1], - ["Forbidden", 0], - ]; - super("Solid food access", pairs); - this.setValue(current_rule.set.onDiet); - this.onchange = (value) => current_rule.set.onDiet = value; - } - } - class MuscleList extends List { constructor() { const pairs = [ @@ -18507,567 +18534,6 @@ window.rulesAssistantOptions = (function() { return rulesAssistantOptions; })(); -/*:: rules autosurgery js [script]*/ - -window.rulesAutosurgery = (function() { - "use strict"; - let V; - let r; - return rulesAutoSurgery; - - function rulesAutoSurgery(slave) { - V = State.variables; - r = ""; - const surgeries = []; - const thisSurgery = ProcessHGTastes(slave); - if (slave.health > 20) - CommitSurgery(slave, thisSurgery, surgeries); - if (surgeries.length > 0) - PrintResult(slave, thisSurgery, surgeries); - return r; - } - - function autoSurgerySelector(slave, ruleset) { - const surgery = {}; - ruleset.forEach(rule => { - Object.keys(rule) - .filter(key => key.startsWith("surgery_") && rule[key] !== "no default setting") - .forEach(key => { - surgery[key] = rule[key]; - }); - }); - return surgery; - } - - function ProcessHGTastes(slave) { - let thisSurgery; - switch (V.HGTastes) { - case 1: - thisSurgery = { - surgery_lactation: 0, - surgery_cosmetic: 1, - surgery_faceShape: "cute", - surgery_lips: 10, - surgery_hips: 0, - surgery_hipsImplant: 0, - surgery_butt: 0, - surgery_accent: 0, - surgery_shoulders: 0, - surgery_shouldersImplant: 0, - surgery_boobs: 0, - surgery_holes: 0 - }; - break ; - case 2: - thisSurgery = { - surgery_lactation: 0, - surgery_cosmetic: 1, - surgery_faceShape: "cute", - surgery_lips: 60, - surgery_hips: 0, - surgery_hipsImplant: 0, - surgery_butt: 4, - surgery_accent: 0, - surgery_shoulders: 0, - surgery_shouldersImplant: 0, - surgery_boobs: 1200, - surgery_holes: 0 - }; - break; - case 3: - thisSurgery = { - surgery_lactation: 0, - surgery_cosmetic: 1, - surgery_faceShape: "cute", - surgery_lips: 95, - surgery_hips: 0, - surgery_hipsImplant: 0, - surgery_butt: 8, - surgery_accent: 0, - surgery_shoulders: 0, - surgery_shouldersImplant: 0, - surgery_boobs: 10000, - surgery_holes: 2 - }; - break; - case 4: - thisSurgery = { - surgery_lactation: 1, - surgery_cosmetic: 1, - surgery_faceShape: "cute", - surgery_lips: 10, - surgery_hips: 3, - surgery_hipsImplant: 0, - surgery_butt: 0, - surgery_accent: 0, - surgery_shoulders: 0, - surgery_shouldersImplant: 0, - surgery_boobs: 0, - surgery_holes: 0 - }; - break; - default: - thisSurgery = autoSurgerySelector( - slave, - V.defaultRules - .filter(x => ruleApplied(slave, x) && x.set.autoSurgery === 1) - .map(x => x.set)); - if ((thisSurgery.surgery_hips !== "no default setting") && (thisSurgery.surgery_butt !== "no default setting")) { - if (slave.hips < -1) { - if (thisSurgery.surgery_butt > 2) - thisSurgery.surgery_butt = 2; - } else if (slave.hips < 0) { - if (thisSurgery.surgery_butt > 4) - thisSurgery.surgery_butt = 4; - } else if (slave.hips > 0) { - if (thisSurgery.surgery_butt > 8) - thisSurgery.surgery_butt = 8; - } else if (slave.hips > 1) { - true; - } else { - if (thisSurgery.surgery_butt > 6) - thisSurgery.surgery_butt = 6; - } - } - break; - } - return thisSurgery; - } - - function CommitSurgery(slave, thisSurgery, surgeries) { - if ((slave.eyes == -1) && (thisSurgery.surgery_eyes == 1)) { - surgeries.push("surgery to correct her vision"); - slave.eyes = 1; - V.cash -= V.surgeryCost; - if (V.PC.medicine >= 100) slave.health -= 5; - else slave.health -= 10; - - } else if ((slave.eyes == 1) && (thisSurgery.surgery_eyes == -1)) { - surgeries.push("surgery to blur her vision"); - slave.eyes = -1; - V.cash -= V.surgeryCost; - if (V.PC.medicine >= 100) slave.health -= 5; - else slave.health -= 10; - - } else if ((slave.hears == -1) && (thisSurgery.surgery_hears == 1)) { - surgeries.push("surgery to correct her hearing"); - slave.hears = 0; - V.cash -= V.surgeryCost; - if (V.PC.medicine >= 100) slave.health -= 5; - else slave.health -= 10; - - } else if ((slave.hears == 0) && (thisSurgery.surgery_hears == -1)) { - surgeries.push("surgery to muffle her hearing"); - slave.hears = -1; - V.cash -= V.surgeryCost; - if (V.PC.medicine >= 100) slave.health -= 5; - else slave.health -= 10; - - } else if ((slave.lactation == 2) && (thisSurgery.surgery_lactation == 0)) { - surgeries.push("surgery to remove her lactation implants"); - slave.lactation = 0; - V.cash -= V.surgeryCost; - if (V.PC.medicine >= 100) slave.health -= 5; - else slave.health -= 10; - - } else if (slave.lactation != 2 && (thisSurgery.surgery_lactation == 1)) { - surgeries.push("lactation inducing implanted drugs"); - slave.lactation = 2; - V.cash -= V.surgeryCost; - if (V.PC.medicine >= 100) slave.health -= 5; - else slave.health -= 10; - - } else if ((slave.prostate == 2) && (thisSurgery.surgery_prostate == 0)) { - surgeries.push("surgery to remove her prostate implant"); - slave.prostate = 0; - V.cash -= V.surgeryCost; - if (V.PC.medicine >= 100) slave.health -= 5; - else slave.health -= 10; - - } else if (slave.prostate == 1 && (thisSurgery.surgery_prostate == 1)) { - surgeries.push("a precum production enhancing drug implant"); - slave.prostate = 2; - V.cash -= V.surgeryCost; - if (V.PC.medicine >= 100) slave.health -= 5; - else slave.health -= 10; - - } else if ((slave.anus > 3) && (thisSurgery.surgery_cosmetic > 0)) { - surgeries.push("a restored anus"); - slave.anus = 3; - if (slave.analSkill > 10) - slave.analSkill -= 10; - V.cash -= V.surgeryCost; - if (V.PC.medicine >= 100) slave.health -= 5; - else slave.health -= 10; - - } else if ((slave.vagina > 3) && (thisSurgery.surgery_cosmetic > 0)) { - surgeries.push("a restored pussy"); - slave.vagina = 3; - if (slave.vaginalSkill > 10) - slave.vaginalSkill -= 10; - V.cash -= V.surgeryCost; - if (V.PC.medicine >= 100) slave.health -= 5; - else slave.health -= 10; - - } else if ((slave.faceImplant <= 15) && (slave.face <= 95) && (thisSurgery.surgery_cosmetic > 0)) { - surgeries.push("a nicer face"); - if (slave.faceShape == "masculine") slave.faceShape = "androgynous"; - slave.faceImplant += 25-5*Math.trunc(V.PC.medicine/50)-5*V.surgeryUpgrade; - slave.face = Math.clamp(slave.face+20,-100,100); - V.cash -= V.surgeryCost; - if (V.PC.medicine >= 100) slave.health -= 5; - else slave.health -= 10; - - } else if ((slave.faceImplant <= 15) && (slave.ageImplant != 1) && (slave.visualAge >= 25) && (thisSurgery.surgery_cosmetic > 0)) { - surgeries.push("an age lift"); - slave.ageImplant = 1; - slave.faceImplant += 25-5*Math.trunc(V.PC.medicine/50)-5*V.surgeryUpgrade; - if (slave.visualAge > 80) slave.visualAge -= 40; - else if (slave.visualAge >= 70) slave.visualAge -= 30; - else if (slave.visualAge > 50) slave.visualAge -= 20; - else if (slave.visualAge > 36) slave.visualAge -= 10; - else slave.visualAge -= 5; - V.cash -= V.surgeryCost; - if (V.PC.medicine >= 100) slave.health -= 5; - else slave.health -= 10; - - } else if (((slave.underArmHStyle != "bald" && slave.underArmHStyle != "hairless") || (slave.pubicHStyle != "bald" && slave.pubicHStyle != "hairless")) && (thisSurgery.surgery_bodyhair == 2)) { - surgeries.push("body hair removal"); - if (slave.underArmHStyle != "hairless") slave.underArmHStyle = "bald"; - if (slave.pubicHStyle != "hairless") slave.pubicHStyle = "bald"; - V.cash -= V.surgeryCost; - - } else if ((slave.bald == 0 || slave.hStyle != "bald" || slave.eyebrowHStyle != "bald") && (thisSurgery.surgery_hair == 2)) { - surgeries.push("hair removal"); - slave.eyebrowHStyle = "bald"; - slave.hStyle = "bald"; - slave.bald = 1; - V.cash -= V.surgeryCost; - - } else if ((slave.weight >= 10) && (thisSurgery.surgery_cosmetic > 0)) { - surgeries.push("liposuction"); - slave.weight -= 50; - V.cash -= V.surgeryCost; - if (V.PC.medicine >= 100) slave.health -= 5; - else slave.health -= 10; - - } else if ((slave.voice == 1) && (slave.voiceImplant == 0) && (thisSurgery.surgery_cosmetic > 0)) { - surgeries.push("a feminine voice"); - slave.voice += 1; - slave.voiceImplant += 1; - V.cash -= V.surgeryCost; - if (V.PC.medicine >= 100) slave.health -= 5; - else slave.health -= 10; - - } else if ((slave.waist >= -10) && (thisSurgery.surgery_cosmetic > 0)) { - surgeries.push("a narrower waist"); - slave.waist -= 20; - V.cash -= V.surgeryCost; - if (V.PC.medicine >= 100) slave.health -= 5; - else slave.health -= 10; - - } else if (((slave.boobShape == "saggy") || (slave.boobShape == "downward-facing")) && (thisSurgery.surgery_cosmetic > 0) && (slave.breastMesh != 1)) { - surgeries.push("a breast lift"); - slave.boobShape = "normal"; - V.cash -= V.surgeryCost; - if (V.PC.medicine >= 100) slave.health -= 5; - else slave.health -= 10; - - } else if (((slave.boobShape == "normal") || (slave.boobShape == "wide-set")) && (thisSurgery.surgery_cosmetic > 0) && (slave.breastMesh != 1)) { - if (slave.boobs > 800) - slave.boobShape = "torpedo-shaped"; - else - slave.boobShape = "perky"; - surgeries.push("more interestingly shaped breasts"); - V.cash -= V.surgeryCost; - if (V.PC.medicine >= 100) slave.health -= 5; - else slave.health -= 10; - - } else if ((thisSurgery.surgery_lips == 0) && (slave.lipsImplant > 0)) { - surgeries.push("surgery to remove her lip implants"); - slave.lips -= slave.lipsImplant; - slave.lipsImplant = 0; - if (slave.oralSkill > 10) - slave.oralSkill -= 10; - V.cash -= V.surgeryCost; - if (V.PC.medicine >= 100) slave.health -= 5; - else slave.health -= 10; - - } else if ((slave.lips <= 95) && (slave.lips < thisSurgery.surgery_lips)) { - if (thisSurgery.surgery_lips !== "no default setting") { - surgeries.push("bigger lips"); - slave.lipsImplant += 10; - slave.lips += 10; - if (slave.oralSkill > 10) - slave.oralSkill -= 10; - V.cash -= V.surgeryCost; - if (V.PC.medicine >= 100) slave.health -= 5; - else slave.health -= 10; - } - - } else if ((slave.faceImplant <= 45) && (slave.face <= 95) && (thisSurgery.surgery_cosmetic == 2)) { - surgeries.push("a nicer face"); - if (slave.faceShape == "masculine") slave.faceShape = "androgynous"; - slave.faceImplant += 25-5*Math.trunc(V.PC.medicine/50)-5*V.surgeryUpgrade; - slave.face = Math.clamp(slave.face+20,-100,100); - V.cash -= V.surgeryCost; - if (V.PC.medicine >= 100) slave.health -= 5; - else slave.health -= 10; - - } else if ((slave.hips < 1) && (slave.hips < thisSurgery.surgery_hips) && (V.surgeryUpgrade == 1)) { - surgeries.push("wider hips"); - slave.hips++; - slave.hipsImplant++; - V.cash -= V.surgeryCost; - if (V.PC.medicine >= 100) slave.health -= 5; - else slave.health -= 10; - - } else if ((slave.faceImplant <= 45) && (slave.ageImplant != 1) && (slave.visualAge >= 25) && (thisSurgery.surgery_cosmetic == 2)) { - surgeries.push("an age lift"); - slave.ageImplant = 1; - if (slave.visualAge > 80) { - slave.visualAge -= 40; - } else if (slave.visualAge >= 70) { - slave.visualAge -= 30; - } else if (slave.visualAge > 50) { - slave.visualAge -= 20; - } else if (slave.visualAge > 36) { - slave.visualAge -= 10; - } else { - slave.visualAge -= 5; - } - slave.faceImplant += 25-5*Math.trunc(V.PC.medicine/50)-5*V.surgeryUpgrade; - V.cash -= V.surgeryCost; - if (V.PC.medicine >= 100) slave.health -= 5; - else slave.health -= 10; - - } else if ((slave.waist >= -95) && (thisSurgery.surgery_cosmetic == 2) && (V.seeExtreme == 1)) { - surgeries.push("a narrower waist"); - slave.waist = Math.clamp(slave.waist-20,-100,100); - V.cash -= V.surgeryCost; - if (V.PC.medicine >= 100) slave.health -= 5; - else slave.health -= 10; - - } else if ((slave.voice < 3) && (slave.voiceImplant == 0) && (thisSurgery.surgery_cosmetic == 2)) { - surgeries.push("a bimbo's voice"); - slave.voice += 1; - slave.voiceImplant += 1; - V.cash -= V.surgeryCost; - if (V.PC.medicine >= 100) slave.health -= 5; - else slave.health -= 10; - - } else if ((thisSurgery.surgery_butt == 0) && (slave.buttImplant > 0)) { - surgeries.push("surgery to remove her butt implants"); - slave.butt -= slave.buttImplant; - slave.buttImplant = 0; - slave.buttImplantType = 0; - V.cash -= V.surgeryCost; - if (V.PC.medicine >= 100) slave.health -= 5; - else slave.health -= 10; - - } else if ((thisSurgery.surgery_boobs == 0) && (slave.boobsImplant > 0)) { - surgeries.push("surgery to remove her boob implants"); - slave.boobs -= slave.boobsImplant; - slave.boobsImplant = 0; - slave.boobsImplantType = 0; - V.cash -= V.surgeryCost; - if (V.PC.medicine >= 100) slave.health -= 5; - else slave.health -= 10; - } else if ((slave.butt <= 3) && (slave.butt < thisSurgery.surgery_butt)) { - if (thisSurgery.surgery_butt !== "no default setting") { - surgeries.push("a bigger butt"); - slave.buttImplant = 1; - slave.butt += 1; - V.cash -= V.surgeryCost; - if (V.PC.medicine >= 100) slave.health -= 5; - else slave.health -= 10; - } - } else if ((slave.boobs <= 600) && (slave.lactation < 2) && (slave.boobs+400 <= thisSurgery.surgery_boobs)) { - if (thisSurgery.surgery_boobs !== "no default setting") { - surgeries.push("bigger boobs"); - slave.boobsImplant += 400; - slave.boobs += 400; - V.cash -= V.surgeryCost; - if (V.PC.medicine >= 100) slave.health -= 5; - else slave.health -= 10; - } - } else if ((slave.boobs <= 600) && (slave.lactation < 2) && (slave.boobs+200 <= thisSurgery.surgery_boobs)) { - if (thisSurgery.surgery_boobs !== "no default setting") { - surgeries.push("modestly bigger boobs"); - slave.boobsImplant += 200; - slave.boobs += 200; - V.cash -= V.surgeryCost; - if (V.PC.medicine >= 100) slave.health -= 5; - else slave.health -= 10; - } - - } else if ((slave.butt <= 5) && (slave.butt < thisSurgery.surgery_butt)) { - if (thisSurgery.surgery_butt !== "no default setting") { - surgeries.push("a bigger butt"); - slave.buttImplant = 1; - slave.butt += 1; - V.cash -= V.surgeryCost; - if (V.PC.medicine >= 100) slave.health -= 5; - else slave.health -= 10; - } - - } else if ((slave.boobs <= 2000) && (slave.lactation < 2) && (slave.boobs+400 < thisSurgery.surgery_boobs)) { - if (thisSurgery.surgery_boobs !== "no default setting") { - surgeries.push("bigger boobs"); - slave.boobsImplant += 400; - slave.boobs += 400; - V.cash -= V.surgeryCost; - if (V.PC.medicine >= 100) slave.health -= 5; - else slave.health -= 10; - } - - } else if ((slave.anus > 0) && (V.surgeryUpgrade == 1) && (thisSurgery.surgery_holes == 2)) { - surgeries.push("a virgin anus"); - slave.anus = 0; - if (slave.analSkill > 10) { - slave.analSkill -= 10; - } - V.cash -= V.surgeryCost; - if (V.PC.medicine >= 100) slave.health -= 5; - else slave.health -= 10; - - } else if ((slave.vagina > 0) && (V.surgeryUpgrade == 1) && (thisSurgery.surgery_holes == 2)) { - surgeries.push("a virgin pussy"); - slave.vagina = 0; - if (slave.vaginalSkill > 10) - slave.vaginalSkill -= 10; - V.cash -= V.surgeryCost; - if (V.PC.medicine >= 100) slave.health -= 5; - else slave.health -= 10; - - } else if ((slave.hips < 2) && (slave.hips < thisSurgery.surgery_hips) && (V.surgeryUpgrade == 1)) { - surgeries.push("wider hips"); - slave.hips++; - slave.hipsImplant++; - V.cash -= V.surgeryCost; - if (V.PC.medicine >= 100) slave.health -= 5; - else slave.health -= 10; - - } else if ((slave.anus > 1) && (thisSurgery.surgery_holes == 1)) { - surgeries.push("a tighter anus"); - slave.anus = 1; - if (slave.analSkill > 10) { - slave.analSkill -= 10; - } - V.cash -= V.surgeryCost; - if (V.PC.medicine >= 100) slave.health -= 5; - else slave.health -= 10; - - } else if ((slave.vagina > 1) && (thisSurgery.surgery_holes == 1)) { - surgeries.push("a tighter pussy"); - slave.vagina = 1; - if (slave.vaginalSkill > 10) { - slave.vaginalSkill -= 10; - } - V.cash -= V.surgeryCost; - if (V.PC.medicine >= 100) slave.health -= 5; - else slave.health -= 10; - - } else if ((slave.butt <= 8) && (slave.butt < thisSurgery.surgery_butt)) { - if (thisSurgery.surgery_butt !== "no default setting") { - surgeries.push("a bigger butt"); - slave.buttImplant = 1; - slave.butt += 1; - V.cash -= V.surgeryCost; - if (V.PC.medicine >= 100) slave.health -= 5; - else slave.health -= 10; - } - - } else if ((slave.boobs <= 9000) && (slave.lactation < 2) && (slave.boobs < thisSurgery.surgery_boobs)) { - if (thisSurgery.surgery_boobs !== "no default setting") { - surgeries.push("bigger boobs"); - slave.boobsImplant += 200; - slave.boobs += 200; - V.cash -= V.surgeryCost; - if (V.PC.medicine >= 100) slave.health -= 5; - else slave.health -= 10; - } - - } else if ((slave.hips < 3) && (slave.hips < thisSurgery.surgery_hips) && (V.surgeryUpgrade == 1)) { - surgeries.push("wider hips"); - slave.hips++; - slave.hipsImplant++; - V.cash -= V.surgeryCost; - if (V.PC.medicine >= 100) slave.health -= 5; - else slave.health -= 10; - - } else if (slave.bellyImplant < 0 && V.bellyImplants > 0 && thisSurgery.surgery_bellyImplant == "install" && slave.womb.length == 0 && slave.broodmother == 0) { - slave.bellyImplant = 100; - slave.preg = -2; - V.cash -= V.surgeryCost; - if (slave.ovaries == 1 || slave.mpreg == 1) { - surgeries.push("belly implant"); - V.surgeryType = "bellyIn"; - if (V.PC.medicine >= 100) slave.health -= 5; - else slave.health -= 10; - } else { - surgeries.push("male belly implant"); - V.surgeryType = "bellyInMale"; - if (V.PC.medicine >= 100) slave.health -= 25; - else slave.health -= 50; - } - bellyIn(slave); - - } else if (slave.bellyImplant >= 0 && thisSurgery.surgery_bellyImplant == "remove") { - surgeries.push("belly implant removal"); - V.surgeryType = "bellyOut"; - if (V.PC.medicine >= 100) - slave.health -= 5; - else - slave.health -= 10; - slave.preg = 0; - slave.bellyImplant = -1; - V.cash -= V.surgeryCost; - } else if (slave.balls > 0 && slave.vasectomy === 0 && thisSurgery.surgery_vasectomy === true) { - surgeries.push("vasectomy"); - V.surgeryType = "vasectomy"; - if (V.PC.medicine >= 100) - slave.health -= 5; - else - slave.health -= 10; - slave.vasectomy = 1; - V.cash -= V.surgeryCost; - } else if (slave.balls > 0 && slave.vasectomy === 1 && thisSurgery.surgery_vasectomy === false) { - surgeries.push("undo vasectomy"); - V.surgeryType = "vasectomy undo"; - if (V.PC.medicine >= 100) - slave.health -=5; - else - slave.health -= 10; - slave.vasectomy = 0; - V.cash -= V.surgeryCost; - } - } - - function PrintResult(slave, thisSurgery, surgeries) { - let surgeriesDisplay = ""; - if (surgeries.length === 1) - surgeriesDisplay = surgeries[0]; - else { - surgeriesDisplay = surgeries.slice(0, surgeries.length - 1).join(", "); - surgeriesDisplay += ", and" + surgeries[surgeries.length - 1]; - } - r += `${V.assistantName === "your personal assistant" ? "Your personal assistant" : V.assistantName}, ordered to apply surgery, gives ${slave.slaveName} <span class="lime">${surgeriesDisplay}.</span>`; - } - - function bellyIn(slave) { - // less hacky version of calling surgery degradation silently - if (slave.devotion > 50) - slave.devotion += 4; - else if (slave.devotion >= -20) - slave.trust -= 5; - else { - slave.trust -= 5; - slave.devotion -= 5; - } - } -})(); - /*:: sexActJS [script]*/ /* @@ -21632,7 +21098,7 @@ window.SlaveSummaryUncached = (function(){ r += slave.actualAge; } if (slave.actualAge !== slave.physicalAge) { - r += ` w${slave.physicalAge}y-bdy`; + r += ` w ${slave.physicalAge}y-bdy`; } if (slave.visualAge !== slave.physicalAge) { r += ` Lks${slave.visualAge}`; @@ -23881,7 +23347,7 @@ window.SlaveSummaryUncached = (function(){ case "a scalemail bikini": r += `Scalemail bikini.`; break; - case "shimapan panties": + case "striped panties": r += `Shimapan panties.`; break; case "a monokini": @@ -24055,8 +23521,8 @@ window.SlaveSummaryUncached = (function(){ case "a klan robe": r += `Klan robe.`; break; - case "a blouse and hijab": - r += `Blouse and hijab.`; + case "a hijab and blouse": + r += `Hijab and blouse.`; break; case "a burqa": r += `Burqa.`; @@ -24064,6 +23530,123 @@ window.SlaveSummaryUncached = (function(){ case "kitty lingerie": r += `Kitty lingerie.`; break; + case "a tube top and thong": + r += `Tube top, thong.`; + break; + case "a button-up shirt and panties": + r += `Button-up shirt, panties.`; + break; + case "a gothic lolita dress": + r += `Gothic lolita dress.`; + break; + case "a hanbok": + r += `Hanbok.`; + break; + case "a bra": + r += `Nice bra.`; + break; + case "a button-up shirt": + r += `Nice button-up shirt.`; + break; + case "a nice pony outfit": + r += `Nice pony outfit.`; + break; + case "a sweater": + r += `Nice sweater.`; + break; + case "a tank-top": + r += `Nice tank-top.`; + break; + case "a thong": + r += `Nice thong.`; + break; + case "a tube top": + r += `Nice tube top.`; + break; + case "a one-piece swimsuit": + r += `Swimsuit.`; + break; + case "a police uniform": + r += `Police uniform.`; + break; + case "a striped bra": + r += `Striped bra.`; + break; + case "a skimpy loincloth": + r += `Skimpy loincloth.`; + break; + case "a slutty klan robe": + r += `Slutty klan robe.`; + break; + case "a slutty pony outfit": + r += `Slutty pony outfit.`; + break; + case "a sports bra": + r += `Sports bra.`; + break; + case "a sweater and panties": + r += `Sweater, panties.`; + break; + case "a t-shirt": + r += `T-shirt.`; + break; + case "a tank-top and panties": + r += `Tank-top, panties.`; + break; + case "a t-shirt and thong": + r += `Thong, t-shirt.`; + break; + case "an oversized t-shirt and boyshorts": + r += `Over-sized t-shirt, boy shorts.`; + break; + case "an oversized t-shirt": + r += `Nice over-sized t-shirt.`; + break; + case "a t-shirt and jeans": + r += `Blue jeans, t-shirt.`; + break; + case "boyshorts": + r += `Boy shorts.`; + break; + case "cutoffs": + r += `Jean shorts.`; + break; + case "leather pants and pasties": + r += `Leather pants, pasties.`; + break; + case "leather pants": + r += `Nice leather pants.`; + break; + case "panties": + r += `Nice panties.`; + break; + case "sport shorts and a t-shirt": + r += `Nice sport shorts, shirt.`; + break; + case "a t-shirt and panties": + r += `Panties, t-shirt.`; + break; + case "panties and pasties": + r += `Pasties, panties.`; + break; + case "striped underwear": + r += `Striped underwear`; + break; + case "sport shorts and a sports bra": + r += `Shorts, bra.`; + break; + case "jeans": + r += `Tight blue jeans.`; + break; + case "a sweater and cutoffs": + r += `Jean shorts, sweater.`; + break; + case "leather pants and a tube top": + r += `Leather pants, tube top.`; + break; + case "sport shorts": + r += `Shorts.`; + break; default: r += `Naked.`; break;