diff --git a/devNotes/twine JS.txt b/devNotes/twine JS.txt index 9c0291cd03f3b7fabf5bdb7abfee68bf5d4d027b..7410a16019ab8dd868113fb115654934f8ee94d5 100644 --- a/devNotes/twine JS.txt +++ b/devNotes/twine JS.txt @@ -6830,10 +6830,6 @@ window.PoliteRudeTitle = function PoliteRudeTitle(slave) { return r; }; -window.EventNameDelink = function EventNameDelink(slave) { - $("#name").empty().text(SlaveFullName(slave)); -}; - window.SlaveTitle = function SlaveTitle(slave) { const V = State.variables; let r = ""; @@ -7184,6 +7180,446 @@ window.SlaveTitle = function SlaveTitle(slave) { return r; }; +window.DegradingName = function DegradingName(slave) { + const V = State.variables; + const leadershipPosition = [ + "be the Attendant", + "be the Stewardess", + "be the Milkmaid", + "be the DJ", + "be your Concubine", + "be the Madam", + "be the Schoolteacher", + "be the Wardeness", + "be the Nurse", + "be your Head Girl", + "guard you", + "recruit girls"]; + let names = []; + let suffixes = []; + + if (slave.fuckdoll > 0) { + slave.slaveName = "Fuckdoll No. " + slave.ID; + slave.slaveSurname = 0; + } else if (slave.assignment == "work in the dairy" && V.dairyRestraintsSetting >= 2) { + slave.slaveName = "Bioreactor No. " + slave.ID; + slave.slaveSurname = 0; + } else { + if (V.seeRace === 1) { + switch (slave.race) { + case "white": + names.push("Pale", "White"); + break; + case "asian": + names.push("Asian", "Yellow"); + break; + case "latina": + names.push("Brown", "Latina"); + break; + case "black": + names.push("Black", "Dark"); + break; + case "pacific islander": + names.push("Islander", "Sea"); + break; + case "malay": + names.push("Cinnamon", "Pinoy", "Spice"); + break; + case "southern european": + names.push("Mediterranean", "Olive"); + break; + case "amerindian": + names.push("Indian", "Reservation"); + break; + case "semitic": + names.push("Semitic"); + break; + case "middle eastern": + names.push("Arab", "Sand"); + break; + case "indo-aryan": + names.push("Brown", "Indian"); + break; + case "mixed race": + names.push("Mulatto", "Mutt"); + break; + } + } + names.push(slave.hColor); + if (slave.eyes === -2) { + names.push("Blind", "Eyeless", "Sightless"); + } + if (slave.boobs >= 2000) { + suffixes.push("Boob", "Boobs", "Titty"); + } + if (slave.boobs < 500 && slave.butt < 3) { + names.push("Girly", "Slim", "Thin"); + } + if (slave.boobs < 300) { + names.push("Flat"); + } + if (slave.anus > 2 || slave.vagina > 2) { + names.push("Gaping", "Hallway", "Slit", "Wideopen"); + } + if (slave.weight > 160) { + names.push("Cow", "Fat", "Whale", "Fatass", "Blimp"); + } else if (slave.weight > 30) { + names.push("Chubby", "Fat", "Whale"); + } else if (slave.weight <= -30) { + names.push("Bony", "Rail", "Skinny"); + } + if (slave.muscles > 30) { + names.push("Huge", "Muscles", "Ripped", "Strong"); + } + if (slave.fetishKnown === 1) { + if (slave.fetish == "buttslut") { + names.push("Anal", "Sodomy"); + } + if (slave.fetish == "cumslut") { + names.push("Cum", "Dicksuck", "Sucker"); + } + if (slave.fetish == "humiliation") { + names.push("Rape"); + } + if (slave.fetish == "masochist") { + names.push("Pain", "Rape", "Struggle"); + } + if (slave.fetish == "pregnancy") { + names.push("Fertile"); + } + } + if (slave.boobs*slave.lactation > 1000) { + names.push("Creamy", "Milky"); + suffixes.push("Cow"); + } + if (slave.oralSkill <= 30 && slave.analSkill <= 30) { + names.push("Cheap", "Fail", "Gutter"); + } + if (slave.nipples == "fuckable") { + names.push("Nipplefuck", "Nipplecunt"); + } else if (slave.nipples != "tiny" && slave.nipples != "cute") { + names.push("Pointy", "Titclit"); + suffixes.push("Nipples"); + } + if (slave.visualAge > 35) { + names.push("Mature"); + suffixes.push("Cougar", "MILF"); + } else if (slave.visualAge < 25) { + names.push("Girly", "Thin", "Young"); + } + if (slave.amp === 1) { + names.push("Stumpy"); + suffixes.push("Stumpy"); + } + if (slave.boobsImplant > 1000 || slave.buttImplant > 3) { + names.push("Fake", "Plastic", "Silicone"); + } + if (slave.dick > 5 && slave.balls > 5) { + names.push("Potent"); + suffixes.push("Cannon", "Daddy"); + } + if (slave.preg > 30) { + if (slave.broodmother === 2) { + names.push("Bursting", "Seeded"); + suffixes.push("Factory", "Nursery"); + } else if (slave.broodmother === 1) { + names.push("Bloated", "Stuffed"); + suffixes.push("Breeder", "Factory"); + } + } + if (slave.bellyPreg >= 450000) { + names.push("Bulging", "Squirming"); + } + if (slave.bellyPreg >= 5000) { + names.push("Preg"); + suffixes.push("Belly", "Mommy"); + } + if (slave.belly > 150000) { + suffixes.push("Balloon"); + } + if (slave.belly > 1500) { + suffixes.push("Belly"); + } + if (slave.dick > 0) { + if (slave.dick > 4) { + names.push("Dangle", "Hung"); + suffixes.push("Cock", "Dick"); + } + if (slave.balls === 0) { + names.push("Cut", "Gelded", "Soft"); + } else { + names.push("Erect", "Hard", "Stiff"); + } + } + if (slave.dick === 1) { + names.push("Micro", "Tiny"); + suffixes.push("Bitch"); + } + if (slave.height >= 185) { + names.push("Tall", "Top"); + suffixes.push("Tower"); + } else if (slave.height < 150) { + names.push("Stumpy", "Tiny"); + suffixes.push("Shortstack", "Stumpy"); + } + if (slave.whoreSkill > 95) { + names.push("Money", "Street"); + suffixes.push("Whore"); + } + if (slave.entertainSkill > 95) { + names.push("Easy", "Club"); + suffixes.push("Slut"); + } + if (slave.oralSkill > 95) { + names.push("Suck"); + suffixes.push("Throat"); + } + if (slave.vaginalSkill > 95) { + suffixes.push("Channel", "Kegel", "Pussy"); + } + if (slave.analSkill > 95) { + suffixes.push("Asspussy", "Sphincter"); + } + if (slave.intelligence > 1) { + names.push("Bright", "Clever", "Smart"); + if (slave.intelligenceImplant === 1) { + names.push("College", "Graduate", "Nerdy"); + } + } else if (slave.intelligence < -1) { + names.push("Cretin", "Dumb", "Retarded", "Stupid"); + } + if (slave.vagina === 1 && slave.vaginaSkill <= 10) { + names.push("Fresh", "New", "Tight"); + } + if (slave.devotion < -75) { + names.push("Angry", "Biter", "Caged"); + } else if (slave.devotion < -50) { + names.push("Cell", "Cuffs"); + } else if (slave.devotion < -20) { + names.push("Bag", "Box"); + } else if (slave.devotion <= 20) { + names.push("Sad", "Whiner"); + } else if (slave.devotion > 50) { + names.push("Prize"); + if (slave.visualAge > 35) { + names.push("Queen"); + } else if (slave.visualAge < 25) { + names.push("Princess"); + } + } + if (slave.trust < -50) { + names.push("Screaming"); + suffixes.push("Sobber"); + } else if (slave.trust < -20) { + names.push("Crying"); + suffixes.push("Meat", "Tears", "Thing", "Weeper"); + } else if (slave.trust < 20) { + names.push("Begging"); + } + + + if (slave.dick === 0) { + if (slave.vagina === -1) { + suffixes.push("Null"); + } else { + if (slave.visualAge < 25) { + suffixes.push("Girl"); + } + } + } else { + if (slave.vagina != -1) { + suffixes.push("Futa"); + } else { + if (slave.balls > 0) { + if (slave.boobs > 300 && slave.butt > 2) { /* SHEMALES: cock & balls, T&A above minimum */ + suffixes.push("Shemale"); + } else { + if (slave.shoulders < 1 && slave.muscles <= 30) { + if (slave.faceShape == "masculine" || slave.faceShape == "androgynous") { /* SISSIES: feminine shoulders or muscles, masculine faces */ + suffixes.push("Sissy"); + } else { /* TRAPS: feminine shoulders or muscles, feminine faces */ + suffixes.push("Trap"); + } + } else { /* BITCHES: masculine shoulders or muscles */ + suffixes.push("Bitch"); + } + } + } else { + if (slave.visualAge > 35) { + suffixes.push("DickMILF"); + } else if (slave.visualAge >= 25) { + suffixes.push("Dickslave"); + } else { + suffixes.push("Dickgirl"); + } + } + } + } + if (slave.anus > 0) { + suffixes.push("Anus", "Asshole", "Backdoor", "Butt", "Butthole"); + } + if (slave.anus === 1) { + suffixes.push("Tightass", "Tightbutt"); + } + if (slave.vagina > 0) { + suffixes.push("Cunt", "Pussy", "Vagina"); + } + if (slave.boobs < 500 && slave.butt < 3 && slave.dick > 0) { + suffixes.push("Bitch", "Bottom", "Sissy", "Trap"); + } + if (slave.energy > 95) { + suffixes.push("Fuck", "Fuckaddict", "Nympho", "Sexaddict"); + } + if (slave.fetishKnown === 1) { + if (slave.fetish == "humiliation") { + suffixes.push("Rapebait", "Showgirl"); + } + if (slave.fetish == "submissive") { + suffixes.push("Bottom", "Fuckee", "Rapebait"); + } + if (slave.fetish == "dom") { + suffixes.push("Dom", "Fucker", "Top"); + } + if (slave.fetish == "pregnancy") { + suffixes.push("Breeder", "Mommy"); + } + if (slave.fetish == "boobs") { + suffixes.push("Boob", "Boobie", "Tit", "Titty"); + } + } + if (slave.births >= 2) { + suffixes.push("Breeder"); + if (slave.births >= 5) { + suffixes.push("Broodmother"); + } + } + if (slave.areolae > 2) { + suffixes.push("Areolas", "Headlights"); + } + if (slave.lips > 40) { + suffixes.push("Lips", "Pillows"); + } + if (slave.labia > 1) { + suffixes.push("Curtains", "Flower", "Lips"); + } + if (slave.breedingMark === 1) { + suffixes.push("Breeder", "Oven", "Womb"); + } + if (slave.butt > 5) { + suffixes.push("Ass", "Bottom", "Butt"); + } + if (slave.vagina === 0) { + suffixes.push("Virgin"); + } + + slave.slaveName = jsEither(names); + } + if (leadershipPosition.includes(slave.assignment)) { + switch (slave.assignment) { + case "be the Attendant": + slave.slaveName = jsEither(["Bath", "Spa"]); + break; + case "be the Stewardess": + slave.slaveName = jsEither(["Servant", "Maid"]); + break; + case "be the Milkmaid": + if (V.cumSlaves > 3) { + slave.slaveName = jsEither(["Fucker", "Milker"]); + } else { + slave.slaveName = jsEither(["Dairy", "Farm"]); + } + break; + case "be the DJ": + slave.slaveName = jsEither(["Bass", "Booth"]); + break; + case "be your Concubine": + slave.slaveName = jsEither(["Bed", "Master"]); + break; + case "be the Madam": + slave.slaveName = jsEither(["Madam", "Pimp"]); + break; + case "be the Schoolteacher": + slave.slaveName = jsEither(["Classroom", "Teacher"]); + break; + case "be the Wardeness": + slave.slaveName = jsEither(["Jail", "Prison"]); + break; + case "be the Nurse": + slave.slaveName = jsEither(["Clinic", "Nurse"]); + break; + case "be your Head Girl": + slave.slaveName = jsEither(["Chief", "Head"]); + break; + case "guard you": + slave.slaveName = jsEither(["Battle", "Guard"]); + break; + case "recruit girls": + slave.slaveName = jsEither(["Cam", "Recruiter"]); + break; + } + } + let surname = jsEither(suffixes); + if (typeof surname == "string" && surname.toLowerCase() == slave.slaveName.toLowerCase()) { + DegradingName(slave); + } + slave.slaveSurname = surname; +}; + +window.SlaveSort = function SlaveSort(slaves, main=false) { + const V = State.variables; + if (main) { + switch (V.sortSlavesBy) { + case "name": + if (V.sortSlavesOrder == "ascending") + slaves = slaves.sort((a, b) => a.slaveName < b.slaveName ? -1 : 1); + else + slaves = slaves.sort((a, b) => a.slaveName > b.slaveName ? -1 : 1); + break; + case "assignment": + if (V.sortSlavesOrder == "ascending") + slaves = slaves.sort((a, b) => a.assignment < b.assignment ? -1 : 1); + else + slaves = slaves.sort((a, b) => a.assignment > b.assignment ? -1 : 1); + break; + case "seniority": + if (V.sortSlavesOrder == "ascending") + slaves = slaves.sort((a, b) => b.weekAcquired - a.weekAcquired); + else + slaves = slaves.sort((a, b) => a.weekAcquired - b.weekAcquired); + break; + case "actualAge": + if (V.sortSlavesOrder == "ascending") + slaves = slaves.sort((a, b) => a.actualAge - b.actualAge); + else + slaves = slaves.sort((a, b) => b.actualAge - a.actualAge); + break; + case "visualAge": + if (V.sortSlavesOrder == "ascending") + slaves = slaves.sort((a, b) => a.visualAge - b.visualAge); + else + slaves = slaves.sort((a, b) => b.visualAge - a.visualAge); + break; + case "physicalAge": + if (V.sortSlavesOrder == "physicalAge") + slaves = slaves.sort((a, b) => a.physicalAge - b.physicalAge); + else + slaves = slaves.sort((a, b) => b.physicalAge - a.physicalAge); + break; + default: + if (V.sortSlavesOrder == "ascending") + slaves = slaves.sort((a, b) => a.devotion - b.devotion); + else + slaves = slaves.sort((a, b) => b.devotion - a.devotion); + break; + } + V.slaveIndices = slaves2indices(); + } else { + V.slaveIndices = slaves2indices(); + filterInPlace(slaves, s => V.slaveIndices[s] !== undefined); + slaves.sort((a, b) => V.slaveIndices[a] - V.slaveIndices[b]); + } +}; + /*:: Summary Widgets JS [script]*/ window.SlaveStatClamp = function SlaveStatClamp(slave) { diff --git a/src/js/assayJS.tw b/src/js/assayJS.tw index bd1b9a9d81575da65bbcfe67cfff33e667354362..172de1fc76c7899782654ae068b16488b93fa9c0 100644 --- a/src/js/assayJS.tw +++ b/src/js/assayJS.tw @@ -470,10 +470,6 @@ window.PoliteRudeTitle = function PoliteRudeTitle(slave) { return r; }; -window.EventNameDelink = function EventNameDelink(slave) { - $("#name").empty().text(SlaveFullName(slave)); -}; - window.SlaveTitle = function SlaveTitle(slave) { const V = State.variables; let r = ""; @@ -824,6 +820,391 @@ window.SlaveTitle = function SlaveTitle(slave) { return r; }; +window.DegradingName = function DegradingName(slave) { + const V = State.variables; + const leadershipPosition = [ + "be the Attendant", + "be the Stewardess", + "be the Milkmaid", + "be the DJ", + "be your Concubine", + "be the Madam", + "be the Schoolteacher", + "be the Wardeness", + "be the Nurse", + "be your Head Girl", + "guard you", + "recruit girls"]; + let names = []; + let suffixes = []; + + if (slave.fuckdoll > 0) { + slave.slaveName = "Fuckdoll No. " + slave.ID; + slave.slaveSurname = 0; + } else if (slave.assignment == "work in the dairy" && V.dairyRestraintsSetting >= 2) { + slave.slaveName = "Bioreactor No. " + slave.ID; + slave.slaveSurname = 0; + } else { + if (V.seeRace === 1) { + switch (slave.race) { + case "white": + names.push("Pale", "White"); + break; + case "asian": + names.push("Asian", "Yellow"); + break; + case "latina": + names.push("Brown", "Latina"); + break; + case "black": + names.push("Black", "Dark"); + break; + case "pacific islander": + names.push("Islander", "Sea"); + break; + case "malay": + names.push("Cinnamon", "Pinoy", "Spice"); + break; + case "southern european": + names.push("Mediterranean", "Olive"); + break; + case "amerindian": + names.push("Indian", "Reservation"); + break; + case "semitic": + names.push("Semitic"); + break; + case "middle eastern": + names.push("Arab", "Sand"); + break; + case "indo-aryan": + names.push("Brown", "Indian"); + break; + case "mixed race": + names.push("Mulatto", "Mutt"); + break; + } + } + names.push(slave.hColor); + if (slave.eyes === -2) { + names.push("Blind", "Eyeless", "Sightless"); + } + if (slave.boobs >= 2000) { + suffixes.push("Boob", "Boobs", "Titty"); + } + if (slave.boobs < 500 && slave.butt < 3) { + names.push("Girly", "Slim", "Thin"); + } + if (slave.boobs < 300) { + names.push("Flat"); + } + if (slave.anus > 2 || slave.vagina > 2) { + names.push("Gaping", "Hallway", "Slit", "Wideopen"); + } + if (slave.weight > 160) { + names.push("Cow", "Fat", "Whale", "Fatass", "Blimp"); + } else if (slave.weight > 30) { + names.push("Chubby", "Fat", "Whale"); + } else if (slave.weight <= -30) { + names.push("Bony", "Rail", "Skinny"); + } + if (slave.muscles > 30) { + names.push("Huge", "Muscles", "Ripped", "Strong"); + } + if (slave.fetishKnown === 1) { + if (slave.fetish == "buttslut") { + names.push("Anal", "Sodomy"); + } + if (slave.fetish == "cumslut") { + names.push("Cum", "Dicksuck", "Sucker"); + } + if (slave.fetish == "humiliation") { + names.push("Rape"); + } + if (slave.fetish == "masochist") { + names.push("Pain", "Rape", "Struggle"); + } + if (slave.fetish == "pregnancy") { + names.push("Fertile"); + } + } + if (slave.boobs*slave.lactation > 1000) { + names.push("Creamy", "Milky"); + suffixes.push("Cow"); + } + if (slave.oralSkill <= 30 && slave.analSkill <= 30) { + names.push("Cheap", "Fail", "Gutter"); + } + if (slave.nipples == "fuckable") { + names.push("Nipplefuck", "Nipplecunt"); + } else if (slave.nipples != "tiny" && slave.nipples != "cute") { + names.push("Pointy", "Titclit"); + suffixes.push("Nipples"); + } + if (slave.visualAge > 35) { + names.push("Mature"); + suffixes.push("Cougar", "MILF"); + } else if (slave.visualAge < 25) { + names.push("Girly", "Thin", "Young"); + } + if (slave.amp === 1) { + names.push("Stumpy"); + suffixes.push("Stumpy"); + } + if (slave.boobsImplant > 1000 || slave.buttImplant > 3) { + names.push("Fake", "Plastic", "Silicone"); + } + if (slave.dick > 5 && slave.balls > 5) { + names.push("Potent"); + suffixes.push("Cannon", "Daddy"); + } + if (slave.preg > 30) { + if (slave.broodmother === 2) { + names.push("Bursting", "Seeded"); + suffixes.push("Factory", "Nursery"); + } else if (slave.broodmother === 1) { + names.push("Bloated", "Stuffed"); + suffixes.push("Breeder", "Factory"); + } + } + if (slave.bellyPreg >= 450000) { + names.push("Bulging", "Squirming"); + } + if (slave.bellyPreg >= 5000) { + names.push("Preg"); + suffixes.push("Belly", "Mommy"); + } + if (slave.belly > 150000) { + suffixes.push("Balloon"); + } + if (slave.belly > 1500) { + suffixes.push("Belly"); + } + if (slave.dick > 0) { + if (slave.dick > 4) { + names.push("Dangle", "Hung"); + suffixes.push("Cock", "Dick"); + } + if (slave.balls === 0) { + names.push("Cut", "Gelded", "Soft"); + } else { + names.push("Erect", "Hard", "Stiff"); + } + } + if (slave.dick === 1) { + names.push("Micro", "Tiny"); + suffixes.push("Bitch"); + } + if (slave.height >= 185) { + names.push("Tall", "Top"); + suffixes.push("Tower"); + } else if (slave.height < 150) { + names.push("Stumpy", "Tiny"); + suffixes.push("Shortstack", "Stumpy"); + } + if (slave.whoreSkill > 95) { + names.push("Money", "Street"); + suffixes.push("Whore"); + } + if (slave.entertainSkill > 95) { + names.push("Easy", "Club"); + suffixes.push("Slut"); + } + if (slave.oralSkill > 95) { + names.push("Suck"); + suffixes.push("Throat"); + } + if (slave.vaginalSkill > 95) { + suffixes.push("Channel", "Kegel", "Pussy"); + } + if (slave.analSkill > 95) { + suffixes.push("Asspussy", "Sphincter"); + } + if (slave.intelligence > 1) { + names.push("Bright", "Clever", "Smart"); + if (slave.intelligenceImplant === 1) { + names.push("College", "Graduate", "Nerdy"); + } + } else if (slave.intelligence < -1) { + names.push("Cretin", "Dumb", "Retarded", "Stupid"); + } + if (slave.vagina === 1 && slave.vaginaSkill <= 10) { + names.push("Fresh", "New", "Tight"); + } + if (slave.devotion < -75) { + names.push("Angry", "Biter", "Caged"); + } else if (slave.devotion < -50) { + names.push("Cell", "Cuffs"); + } else if (slave.devotion < -20) { + names.push("Bag", "Box"); + } else if (slave.devotion <= 20) { + names.push("Sad", "Whiner"); + } else if (slave.devotion > 50) { + names.push("Prize"); + if (slave.visualAge > 35) { + names.push("Queen"); + } else if (slave.visualAge < 25) { + names.push("Princess"); + } + } + if (slave.trust < -50) { + names.push("Screaming"); + suffixes.push("Sobber"); + } else if (slave.trust < -20) { + names.push("Crying"); + suffixes.push("Meat", "Tears", "Thing", "Weeper"); + } else if (slave.trust < 20) { + names.push("Begging"); + } + + + if (slave.dick === 0) { + if (slave.vagina === -1) { + suffixes.push("Null"); + } else { + if (slave.visualAge < 25) { + suffixes.push("Girl"); + } + } + } else { + if (slave.vagina != -1) { + suffixes.push("Futa"); + } else { + if (slave.balls > 0) { + if (slave.boobs > 300 && slave.butt > 2) { /* SHEMALES: cock & balls, T&A above minimum */ + suffixes.push("Shemale"); + } else { + if (slave.shoulders < 1 && slave.muscles <= 30) { + if (slave.faceShape == "masculine" || slave.faceShape == "androgynous") { /* SISSIES: feminine shoulders or muscles, masculine faces */ + suffixes.push("Sissy"); + } else { /* TRAPS: feminine shoulders or muscles, feminine faces */ + suffixes.push("Trap"); + } + } else { /* BITCHES: masculine shoulders or muscles */ + suffixes.push("Bitch"); + } + } + } else { + if (slave.visualAge > 35) { + suffixes.push("DickMILF"); + } else if (slave.visualAge >= 25) { + suffixes.push("Dickslave"); + } else { + suffixes.push("Dickgirl"); + } + } + } + } + if (slave.anus > 0) { + suffixes.push("Anus", "Asshole", "Backdoor", "Butt", "Butthole"); + } + if (slave.anus === 1) { + suffixes.push("Tightass", "Tightbutt"); + } + if (slave.vagina > 0) { + suffixes.push("Cunt", "Pussy", "Vagina"); + } + if (slave.boobs < 500 && slave.butt < 3 && slave.dick > 0) { + suffixes.push("Bitch", "Bottom", "Sissy", "Trap"); + } + if (slave.energy > 95) { + suffixes.push("Fuck", "Fuckaddict", "Nympho", "Sexaddict"); + } + if (slave.fetishKnown === 1) { + if (slave.fetish == "humiliation") { + suffixes.push("Rapebait", "Showgirl"); + } + if (slave.fetish == "submissive") { + suffixes.push("Bottom", "Fuckee", "Rapebait"); + } + if (slave.fetish == "dom") { + suffixes.push("Dom", "Fucker", "Top"); + } + if (slave.fetish == "pregnancy") { + suffixes.push("Breeder", "Mommy"); + } + if (slave.fetish == "boobs") { + suffixes.push("Boob", "Boobie", "Tit", "Titty"); + } + } + if (slave.births >= 2) { + suffixes.push("Breeder"); + if (slave.births >= 5) { + suffixes.push("Broodmother"); + } + } + if (slave.areolae > 2) { + suffixes.push("Areolas", "Headlights"); + } + if (slave.lips > 40) { + suffixes.push("Lips", "Pillows"); + } + if (slave.labia > 1) { + suffixes.push("Curtains", "Flower", "Lips"); + } + if (slave.breedingMark === 1) { + suffixes.push("Breeder", "Oven", "Womb"); + } + if (slave.butt > 5) { + suffixes.push("Ass", "Bottom", "Butt"); + } + if (slave.vagina === 0) { + suffixes.push("Virgin"); + } + + slave.slaveName = jsEither(names); + } + if (leadershipPosition.includes(slave.assignment)) { + switch (slave.assignment) { + case "be the Attendant": + slave.slaveName = jsEither(["Bath", "Spa"]); + break; + case "be the Stewardess": + slave.slaveName = jsEither(["Servant", "Maid"]); + break; + case "be the Milkmaid": + if (V.cumSlaves > 3) { + slave.slaveName = jsEither(["Fucker", "Milker"]); + } else { + slave.slaveName = jsEither(["Dairy", "Farm"]); + } + break; + case "be the DJ": + slave.slaveName = jsEither(["Bass", "Booth"]); + break; + case "be your Concubine": + slave.slaveName = jsEither(["Bed", "Master"]); + break; + case "be the Madam": + slave.slaveName = jsEither(["Madam", "Pimp"]); + break; + case "be the Schoolteacher": + slave.slaveName = jsEither(["Classroom", "Teacher"]); + break; + case "be the Wardeness": + slave.slaveName = jsEither(["Jail", "Prison"]); + break; + case "be the Nurse": + slave.slaveName = jsEither(["Clinic", "Nurse"]); + break; + case "be your Head Girl": + slave.slaveName = jsEither(["Chief", "Head"]); + break; + case "guard you": + slave.slaveName = jsEither(["Battle", "Guard"]); + break; + case "recruit girls": + slave.slaveName = jsEither(["Cam", "Recruiter"]); + break; + } + } + let surname = jsEither(suffixes); + if (typeof surname == "string" && surname.toLowerCase() == slave.slaveName.toLowerCase()) { + DegradingName(slave); + } + slave.slaveSurname = surname; +}; + window.SlaveSort = function SlaveSort(slaves, main=false) { const V = State.variables; if (main) { diff --git a/src/pregmod/SecForceEX/SpecialForceUpgradeDec.tw b/src/pregmod/SecForceEX/SpecialForceUpgradeDec.tw index 988baf9a0a8198824572888bc7af16d9d478c281..3f2b200d772c423a18da8d89f2415fa42a08a5f6 100644 --- a/src/pregmod/SecForceEX/SpecialForceUpgradeDec.tw +++ b/src/pregmod/SecForceEX/SpecialForceUpgradeDec.tw @@ -93,7 +93,7 @@ <<case 0>> Is well-stocked with high-quality personal weapons and light armour, but contains little in the way of exceptional armament. <<case 1>> - Has large stocks of the absolute latest personal weapons and light armour, and Has added first-generation exo-suits to improve soldier lethality. + Has large stocks of the absolute latest personal weapons and light armour, and has added first-generation exo-suits to improve soldier lethality. <<case 2>> Acquired advanced tactical helmets and second-generation exo-suits to further improve soldier lethality. <<case 3>> diff --git a/src/pregmod/newChildIntro.tw b/src/pregmod/newChildIntro.tw index ad1e0387cb57eb704d129f7f7057867f00dfaeee..d8279f16a9db46cd2964cf650e4d72b644891ad3 100644 --- a/src/pregmod/newChildIntro.tw +++ b/src/pregmod/newChildIntro.tw @@ -106,7 +106,7 @@ You completed the legalities before heading to $incubatorName, knowing the tank <<if $arcologies[0].FSDegradationist != "unset">> <br><<link "Have your PA assign her a degrading name">> <<replace "#naming">> - <<DegradingName $activeSlave>> + <<run DegradingName($activeSlave)>> <<set $activeSlave.birthName = $activeSlave.slaveName>> $assistantName registers the new girl as "<<print $activeSlave.slaveName>>" in your registry. <</replace>> diff --git a/src/uncategorized/addCustomDescriptors.tw b/src/uncategorized/addCustomDescriptors.tw index 248cb6f54b1f8d088fe435beccec6df9abf2dfcf..2a736e69c17e1da6abfd29974380c85ae4d017e4 100644 --- a/src/uncategorized/addCustomDescriptors.tw +++ b/src/uncategorized/addCustomDescriptors.tw @@ -97,7 +97,7 @@ You may enter custom descriptors for your slave's hair color, hair style, tattoo | <<link "Give her a random full feudal Japanese name">><<set $activeSlave.slaveName = setup.edoSlaveNames.random(), $activeSlave.slaveSurname = setup.edoSlaveSurnames.random()>><<goto "Rename">><</link>> <</if>> <<if $arcologies[0].FSDegradationist > -1>> - | <<link "Give her a degrading full name">><<DegradingName $activeSlave>><<goto "Rename">><</link>> + | <<link "Give her a degrading full name">><<run DegradingName($activeSlave)>><<goto "Rename">><</link>> <</if>> <<else>> //You must break her will further before you can successfully force a new name on her.// diff --git a/src/uncategorized/futureSociety.tw b/src/uncategorized/futureSociety.tw index f0f5de340ba29eb2ee0a7a2274632bacbcb0fc81..8e6b352842ee99600212677aeaca782271ebc3c5 100644 --- a/src/uncategorized/futureSociety.tw +++ b/src/uncategorized/futureSociety.tw @@ -547,7 +547,7 @@ You are spending <<print cashFormat($FSSpending)>> each week to support your soc <br> <<link "Rename all your slaves according to Degradationist custom">> <<for $i = 0; $i < $slaves.length; $i++>> - <<DegradingName $slaves[$i]>> + <<run DegradingName($slaves[$i])>> <</for>> <<replace "#mass">> <br>Slaves renamed.<br> diff --git a/src/utility/miscWidgets.tw b/src/utility/miscWidgets.tw index 13e0542dc34b9f562b6c317aad47ee8254220612..db16b0d2803e0632c773c57b7558c452990f455d 100644 --- a/src/utility/miscWidgets.tw +++ b/src/utility/miscWidgets.tw @@ -2033,389 +2033,6 @@ This experience */ <<widget "EventNameDelink">><<replace "#name">><<= SlaveFullName($args[0])>><</replace>><</widget>> -/* - Call as <<DegradingName $slave>> where $slave is any slave object - $args[0]: Slave - */ -<<widget "DegradingName">> -<<if $args[0].fuckdoll > 0>> - <<set $args[0].slaveName = "Fuckdoll No. " + random(1000,9999), $args[0].slaveSurname = 0>> -<<elseif ($args[0].assignment == "work in the dairy") && ($dairyRestraintsSetting >= 2)>> - <<set $args[0].slaveName = "Bioreactor No. " + random(1000,9999), $args[0].slaveSurname = 0>> -<<else>> - -<<set _names = []>> - -<<if ($seeRace == 1)>> -<<switch $args[0].race>> -<<case "white">> - <<set _names.push("Pale", "White")>> -<<case "asian">> - <<set _names.push("Asian", "Yellow")>> -<<case "latina">> - <<set _names.push("Brown", "Latina")>> -<<case "black">> - <<set _names.push("Black", "Dark")>> -<<case "pacific islander">> - <<set _names.push("Islander", "Sea")>> -<<case "malay">> - <<set _names.push("Cinnamon", "Pinoy", "Spice")>> -<<case "southern european">> - <<set _names.push("Mediterranean", "Olive")>> -<<case "amerindian">> - <<set _names.push("Indian", "Reservation")>> -<<case "semitic">> - <<set _names.push("Semitic")>> -<<case "middle eastern">> - <<set _names.push("Arab", "Sand")>> -<<case "indo-aryan">> - <<set _names.push("Brown", "Indian")>> -<<case "mixed race">> - <<set _names.push("Mulatto", "Mutt")>> -<</switch>> -<</if>> - -<<set _names.push($args[0].hColor)>> - -<<if ($args[0].eyes == -2)>> - <<set _names.push("Blind", "Eyeless", "Sightless")>> -<</if>> - -<<if ($args[0].boobs < 500) && ($args[0].butt < 3)>> - <<set _names.push("Girly", "Slim", "Thin")>> -<</if>> -<<if ($args[0].boobs < 300)>> - <<set _names.push("Flat")>> -<</if>> -<<if ($args[0].anus > 2) || ($args[0].vagina > 2)>> - <<set _names.push("Gaping", "Hallway", "Slit", "Wideopen")>> -<</if>> -<<if ($args[0].weight > 160)>> - <<set _names.push("Cow", "Fat", "Whale")>> -<<elseif ($args[0].weight > 30)>> - <<set _names.push("Chubby", "Fat", "Whale")>> -<<elseif ($args[0].weight <= -30)>> - <<set _names.push("Bony", "Rail", "Skinny")>> -<</if>> -<<if ($args[0].muscles > 30)>> - <<set _names.push("Huge", "Muscles", "Ripped", "Strong")>> -<</if>> -<<if ($args[0].fetish == "buttslut") && ($args[0].fetishKnown == 1)>> - <<set _names.push("Anal", "Sodomy")>> -<</if>> -<<if ($args[0].fetish == "cumslut") && ($args[0].fetishKnown == 1)>> - <<set _names.push("Cum", "Dicksuck", "Sucker")>> -<</if>> -<<if ($args[0].fetish == "humiliation") && ($args[0].fetishKnown == 1)>> - <<set _names.push("Rape")>> -<</if>> -<<if ($args[0].fetish == "masochist") && ($args[0].fetishKnown == 1)>> - <<set _names.push("Pain", "Rape", "Struggle")>> -<</if>> -<<if ($args[0].fetish == "pregnancy") && ($args[0].fetishKnown == 1)>> - <<set _names.push("Fertile")>> -<</if>> -<<if (($args[0].boobs*$args[0].lactation) > 1000)>> - <<set _names.push("Creamy", "Milky")>> -<</if>> -<<if ($args[0].oralSkill <= 30) && ($args[0].analSkill <= 30)>> - <<set _names.push("Cheap", "Fail", "Gutter")>> -<</if>> -<<if $args[0].nipples == "fuckable">> - <<set _names.push("Nipplefuck", "Nipplecunt")>> -<<elseif ($args[0].nipples != "tiny") && ($args[0].nipples != "cute")>> - <<set _names.push("Pointy", "Titclit")>> -<</if>> -<<if ($args[0].visualAge > 35)>> - <<set _names.push("Mature")>> -<</if>> -<<if ($args[0].visualAge < 25)>> - <<set _names.push("Girly", "Thin", "Young")>> -<</if>> -<<if ($args[0].amp == 1)>> - <<set _names.push("Stumpy")>> -<</if>> -<<if ($args[0].boobsImplant > 1000) || ($args[0].buttImplant > 3)>> - <<set _names.push("Fake", "Plastic", "Silicone")>> -<</if>> -<<if ($args[0].dick > 5) && ($args[0].balls > 5)>> - <<set $prefixes.push("Potent")>> -<</if>> -<<if ($args[0].broodmother == 2) && ($args[0].preg > 30)>> - <<set $prefixes.push("Bursting", "Seeded")>> -<</if>> -<<if ($args[0].broodmother == 1) && ($args[0].preg > 30)>> - <<set $prefixes.push("Bloated", "Stuffed")>> -<</if>> -<<if $args[0].bellyPreg >= 450000>> - <<set $prefixes.push("Bulging", "Squirming")>> -<</if>> -<<if ($args[0].bellyPreg >= 5000)>> - <<set _names.push("Preg")>> -<</if>> -<<if ($args[0].dick > 4)>> - <<set _names.push("Dangle", "Hung")>> -<</if>> -<<if ($args[0].dick > 0) && ($args[0].balls == 0)>> - <<set _names.push("Cut", "Gelded", "Soft")>> -<</if>> -<<if ($args[0].dick > 0) && ($args[0].balls > 0)>> - <<set _names.push("Erect", "Hard", "Stiff")>> -<</if>> -<<if ($args[0].dick == 1)>> - <<set _names.push("Micro", "Tiny")>> -<</if>> -<<if ($args[0].height >= 185)>> - <<set _names.push("Tall", "Top")>> -<</if>> -<<if ($args[0].height < 150)>> - <<set _names.push("Stumpy", "Tiny")>> -<</if>> -<<if ($args[0].whoreSkill > 95)>> - <<set _names.push("Money", "Street")>> -<</if>> -<<if ($args[0].entertainSkill > 95)>> - <<set _names.push("Easy", "Club")>> -<</if>> -<<if ($args[0].oralSkill > 95)>> - <<set _names.push("Suck")>> -<</if>> -<<if ($args[0].intelligence > 1)>> - <<set _names.push("Bright", "Clever", "Smart")>> - <<if ($args[0].intelligenceImplant == 1)>> - <<set _names.push("College", "Graduate", "Nerdy")>> - <</if>> -<<elseif ($args[0].intelligence < -1)>> - <<set _names.push("Cretin", "Dumb", "Retarded", "Stupid")>> -<</if>> -<<if ($args[0].vagina == 1) && ($args[0].vaginalSkill <= 10)>> - <<set _names.push("Fresh", "New", "Tight")>> -<</if>> -<<if ($args[0].devotion < -75)>> - <<set _names.push("Angry", "Biter", "Caged")>> -<<elseif ($args[0].devotion < -50)>> - <<set _names.push("Cell", "Cuffs")>> -<<elseif ($args[0].devotion < -20)>> - <<set _names.push("Bag", "Box")>> -<<elseif ($args[0].devotion <= 20)>> - <<set _names.push("Sad", "Whiner")>> -<</if>> -<<if ($args[0].trust < -50)>> - <<set _names.push("Screaming")>> -<<elseif ($args[0].trust < -20)>> - <<set _names.push("Crying")>> -<<elseif ($args[0].trust < 20)>> - <<set _names.push("Begging")>> -<</if>> - -<<set _suffixes = []>> - -<<if $args[0].dick == 0>> - <<if $args[0].vagina == -1>> /* NULLS */ - <<set _suffixes.push("Null")>> - <<else>> /* FEMALES */ - <<if $args[0].visualAge < 25>> - <<set _suffixes.push("Girl")>> - <</if>> - <</if>> -<<else>> - <<if $args[0].vagina != -1>> - <<set _suffixes.push("Futa")>> - <<else>> - <<if $args[0].balls > 0>> - <<if ($args[0].boobs > 300) && ($args[0].butt > 2)>> /* SHEMALES: cock & balls, T&A above minimum */ - <<set _suffixes.push("Shemale")>> - <<else>> - <<if ($args[0].shoulders < 1) && ($args[0].muscles <= 30)>> - <<if ($args[0].faceShape == "masculine") || ($args[0].faceShape == "androgynous")>> /* SISSIES: feminine shoulders or muscles, masculine faces */ - <<set _suffixes.push("Sissy")>> - <<else>> /* TRAPS: feminine shoulders or muscles, feminine faces */ - <<set _suffixes.push("Trap")>> - <</if>> - <<else>> /* BITCHES: masculine shoulders or muscles */ - <<set _suffixes.push("Bitch")>> - <</if>> - <</if>> - <<else>> - <<if $args[0].visualAge > 35>> - <<set _suffixes.push("DickMILF")>> - <<elseif $args[0].visualAge >= 25>> - <<set _suffixes.push("Dickslave")>> - <<else>> - <<set _suffixes.push("Dickgirl")>> - <</if>> - <</if>> - <</if>> -<</if>> - -<<if ($args[0].anus > 0)>> - <<set _suffixes.push("Anus", "Asshole", "Backdoor", "Butt", "Butthole")>> -<</if>> -<<if ($args[0].vagina > 0)>> - <<set _suffixes.push("Cunt", "Pussy", "Vagina")>> -<</if>> -<<if ($args[0].boobs < 500) && ($args[0].butt < 3) && ($args[0].dick > 0)>> - <<set _suffixes.push("Bitch", "Bottom", "Sissy", "Trap")>> -<</if>> -<<if ($args[0].energy > 95)>> - <<set _suffixes.push("Fuck", "Fuckaddict", "Nympho", "Sexaddict")>> -<</if>> -<<if ($args[0].weight > 160)>> - <<set _names.push("Blimp", "Fatass")>> -<</if>> -<<if ($args[0].fetish == "humiliation") && ($args[0].fetishKnown == 1)>> - <<set _suffixes.push("Rapebait", "Showgirl")>> -<</if>> -<<if ($args[0].fetish == "submissive") && ($args[0].fetishKnown == 1)>> - <<set _suffixes.push("Bottom", "Fuckee", "Rapebait")>> -<</if>> -<<if ($args[0].fetish == "dom") && ($args[0].fetishKnown == 1)>> - <<set _suffixes.push("Dom", "Fucker", "Top")>> -<</if>> -<<if ($args[0].fetish == "pregnancy") && ($args[0].fetishKnown == 1)>> - <<set _suffixes.push("Breeder", "Mommy")>> -<</if>> -<<if ($args[0].fetish == "boobs") && ($args[0].fetishKnown == 1)>> - <<set _suffixes.push("Boob", "Boobie", "Tit", "Titty")>> -<</if>> -<<if (($args[0].boobs*$args[0].lactation) > 1000)>> - <<set _suffixes.push("Cow")>> -<</if>> -<<if $args[0].births >= 5>> - <<set _suffixes.push("Broodmother")>> -<</if>> -<<if $args[0].births >= 2>> - <<set _suffixes.push("Breeder")>> -<</if>> -<<if ($args[0].nipples != "tiny") && ($args[0].nipples != "cute")>> - <<set _suffixes.push("Nipples")>> -<</if>> -<<if ($args[0].areolae > 2)>> - <<set _suffixes.push("Areolas", "Headlights")>> -<</if>> -<<if ($args[0].lips > 40)>> - <<set _suffixes.push("Lips", "Pillows")>> -<</if>> -<<if ($args[0].labia > 1)>> - <<set _suffixes.push("Curtains", "Flower", "Lips")>> -<</if>> -<<if ($args[0].visualAge > 35)>> - <<set _suffixes.push("Cougar", "MILF")>> -<</if>> -<<if ($args[0].amp == 1)>> - <<set _suffixes.push("Stumpy")>> -<</if>> -<<if ($args[0].bellyPreg > 5000)>> - <<set _suffixes.push("Belly", "Mommy")>> -<</if>> -<<if $args[0].belly >= 1500>> - <<set _suffixes.push("Belly")>> -<</if>> -<<if ($args[0].dick > 5) && ($args[0].balls > 5)>> - <<set _suffixes.push("Cannon", "Daddy")>> -<</if>> -<<if $args[0].breedingMark == 1>> - <<set _suffixes.push("Breeder", "Oven", "Womb")>> -<</if>> -<<if ($args[0].broodmother == 2) && ($args[0].preg > 30)>> - <<set _suffixes.push("Factory", "Nursery")>> -<</if>> -<<if ($args[0].broodmother == 1) && ($args[0].preg > 30)>> - <<set _suffixes.push("Breeder", "Factory")>> -<</if>> -<<if $args[0].belly > 150000>> - <<set _suffixes.push("Balloon")>> -<</if>> -<<if ($args[0].dick > 4)>> - <<set _suffixes.push("Cock", "Dick")>> -<</if>> -<<if ($args[0].dick == 1)>> - <<set _suffixes.push("Bitch")>> -<</if>> -<<if ($args[0].boobs >= 800)>> - <<set _suffixes.push("Boob", "Boobs", "Titty")>> -<</if>> -<<if ($args[0].butt > 5)>> - <<set _suffixes.push("Ass", "Bottom", "Butt")>> -<</if>> -<<if ($args[0].vagina == 0)>> - <<set _suffixes.push("Virgin")>> -<</if>> -<<if ($args[0].height >= 185)>> - <<set _suffixes.push("Tower")>> -<</if>> -<<if ($args[0].height < 150)>> - <<set _suffixes.push("Shortstack", "Stumpy")>> -<</if>> -<<if ($args[0].whoreSkill > 95)>> - <<set _suffixes.push("Whore")>> -<</if>> -<<if ($args[0].entertainSkill > 95)>> - <<set _suffixes.push("Slut")>> -<</if>> -<<if ($args[0].oralSkill > 95)>> - <<set _suffixes.push("Throat")>> -<</if>> -<<if ($args[0].vaginalSkill > 95)>> - <<set _suffixes.push("Channel", "Kegel", "Pussy")>> -<</if>> -<<if ($args[0].analSkill > 95)>> - <<set _suffixes.push("Asspussy", "Sphincter")>> -<</if>> -<<if ($args[0].anus == 1)>> - <<set _suffixes.push("Tightass", "Tightbutt")>> -<</if>> -<<if $args[0].devotion > 50>> - <<set _names.push("Prize")>> - <<if ($args[0].visualAge > 35)>> - <<set _suffixes.push("Queen")>> - <<elseif ($args[0].visualAge < 25)>> - <<set _names.push("Princess")>> - <</if>> -<</if>> -<<if ($args[0].trust < -50)>> - <<set _suffixes.push("Sobber")>> -<<elseif ($args[0].trust < -20)>> - <<set _suffixes.push("Meat", "Tears", "Thing", "Weeper")>> -<</if>> - -<<set $args[0].slaveName = _names.random()>> -<<switch $args[0].assignment>> -<<case "guard you">> - <<set $args[0].slaveName = either("Battle", "Guard")>> -<<case "recruit girls">> - <<set $args[0].slaveName = either("Cam", "Recruiter")>> -<<case "be the Madam">> - <<set $args[0].slaveName = either("Madam", "Pimp")>> -<<case "be the DJ">> - <<set $args[0].slaveName = either("Bass", "Booth")>> -<<case "be the Milkmaid">> - <<if $cumSlaves > 3>> - <<set $args[0].slaveName = either("Fucker", "Milker")>> - <</if>> -<<case "be the Milkmaid">> - <<set $args[0].slaveName = either("Dairy", "Farm")>> -<<case "be your Head Girl">> - <<set $args[0].slaveName = either("Chief", "Head")>> -<<case "be the Schoolteacher">> - <<set $args[0].slaveName = either("Classroom", "Teacher")>> -<<case "be the Attendant">> - <<set $args[0].slaveName = either("Bath", "Spa")>> -<<case "be the Wardeness">> - <<set $args[0].slaveName = either("Jail", "Prison")>> -<<case "be your concubine">> - <<set $args[0].slaveName = either("Bed", "Master")>> -<</switch>> - -<<set _surname = _suffixes.random()>> -<<if _surname == $args[0].slaveName.toLowerCase()>> - <<DegradingName $args[0]>> -<</if>> -<<set $args[0].slaveSurname = _surname>> - -<</if>> -<</widget>> - <<widget "CreateSimpleTabs">> <head> diff --git a/src/utility/slaveCreationWidgets.tw b/src/utility/slaveCreationWidgets.tw index 5a7051fae03bfc2fd0c5c8e788543eeaceff2ea7..c7f370a5a09efe5d7a0eb498cabfab5a229f8138 100644 --- a/src/utility/slaveCreationWidgets.tw +++ b/src/utility/slaveCreationWidgets.tw @@ -2483,7 +2483,7 @@ <</if>> <<elseif $arcologies[_market].FSDegradationist > 20>> They can be depended upon to be terrified into abject submission. - <<DegradingName $activeSlave>> + <<run DegradingName($activeSlave)>> <<if $activeSlave.trust > -10>> <<set $activeSlave.trust -= random(0,10)>> <</if>> diff --git a/src/utility/slaveGenerationWidgets.tw b/src/utility/slaveGenerationWidgets.tw index b26c54402fc864a9eb12a1c716519389d80f192e..88cfab7227152fa1d20c89065f31106f98e6c18f 100644 --- a/src/utility/slaveGenerationWidgets.tw +++ b/src/utility/slaveGenerationWidgets.tw @@ -28,7 +28,7 @@ <<elseif $arcologies[0].FSEdoRevivalist > 20>> <<set $args[0].slaveName = setup.edoSlaveNames.random(), $args[0].slaveSurname = setup.edoSlaveSurnames.random()>> <<elseif $arcologies[0].FSDegradationist != "unset">> - <<DegradingName $args[0]>> + <<run DegradingName($args[0])>> <</if>> <</if>>