diff --git a/devNotes/twine JS.txt b/devNotes/twine JS.txt index 66e280fbeea98694411e44088b2aeb62e3c2b945..59863b82c87b14187f76274cb32e4d4b5f156176 100644 --- a/devNotes/twine JS.txt +++ b/devNotes/twine JS.txt @@ -10484,7 +10484,7 @@ window.saChoosesOwnClothes = (function() { wardrobeAssignment.push({text: `and wears an one-piece swimsuit, since it's all ${he} can wear that won't be ruined by all the moisture in the spa.`, clothes: "a monokini"}); } if(isItemAccessible("one-piece swimsuit")) { - wardrobeAssignment.push({text: `and wears a modest swimsuit, since it's all ${he} can wear that won't be ruined by all the moisture in the spa.`, clothes: "one-piece swimsuit"}); + wardrobeAssignment.push({text: `and wears a one-piece swimsuit, since it's all ${he} can wear that won't be ruined by all the moisture in the spa.`, clothes: "one-piece swimsuit"}); } if(isItemAccessible("a burkini")) { wardrobeAssignment.push({text: `and wears a modest swimsuit, since it's all ${he} can wear that won't be ruined by all the moisture in the spa.`, clothes: "a burkini"}); @@ -10609,7 +10609,7 @@ window.saChoosesOwnClothes = (function() { wardrobeAssignment.push({text: `and wears normal clothing to not distract from ${his} lessons.`, clothes: "conservative clothing"}); } } else if((slave.assignment == "whore") || (slave.assignment == "work in the brothel")) { - if(slave.belly >= 5000 && isItemAccessible("attractive lingerie for a pregnant woman")) { + if(slave.belly >= 5000 && isItemAccessible("attractive lingerie for a pregnant woman")) { wardrobeAssignment.push({text: `and wears pretty lingerie to show off ${his} merchandise and accentuate ${his} pregnancy while still looking a little classy.`, clothes: "attractive lingerie for a pregnant woman"}); } wardrobeAssignment.push({text: `and wears pretty lingerie to show off ${his} merchandise and still look a little classy.`, clothes: "attractive lingerie"}); @@ -10865,7 +10865,7 @@ window.saChoosesOwnClothes = (function() { if(isItemAccessible("a ball gown")) { wardrobeTastes.push({text: `and chooses a formal dress that makes ${him} feel like royalty.`, clothes: "a ball gown"}); } - } else if(slave.behavioralQuirk == "devout") { + } else if(slave.behavioralFlaw == "devout") { wardrobeTastes.push({text: `and wears something more appropriate for a monastery than a whorehouse.`, clothes: "a penitent nuns habit"}); } @@ -22325,9 +22325,9 @@ window.SlaveSummaryUncached = (function(){ } r += " "; /* - ** No NCS, then do the standard, However because of the wrinkes of Incubators, as long as visual age is greater - ** than or equal to physical age, we do the old physical body/Looks for fresh out of the can NCS slaves. - */ + ** No NCS, then do the standard, However because of the wrinkes of Incubators, as long as visual age is greater + ** than or equal to physical age, we do the old physical body/Looks for fresh out of the can NCS slaves. + */ if (((slave.geneMods.NCS === 0) || (slave.visualAge >= slave.physicalAge))) { if (slave.actualAge !== slave.physicalAge) { r += `${slave.physicalAge} year old body. `; @@ -22337,14 +22337,14 @@ window.SlaveSummaryUncached = (function(){ } } else { /* - ** Now the rub. The use of physical Age for the year old body above, basically conflicts with the changes - ** that NCS introduces, so here to *distinguish* the changes, we use visual age with the 'year old body' - ** and appears, for example: Slave release from incubator at age 10, Her summary would show, 'Age 0. 10 - ** year old body.' But if she's given NCS a few weeks after release, while she's still before her first - ** birthday, it'll appear the same. But once her birthday fires, if we ran with the above code it would - ** say: 'Age 1. 11 year old body.' -- this conflicts with the way NCS works though, because she hasn't - ** visually aged, so our change here makes it say 'Age 1. Appears to have a 10 year old body.' - */ + ** Now the rub. The use of physical Age for the year old body above, basically conflicts with the changes + ** that NCS introduces, so here to *distinguish* the changes, we use visual age with the 'year old body' + ** and appears, for example: Slave release from incubator at age 10, Her summary would show, 'Age 0. 10 + ** year old body.' But if she's given NCS a few weeks after release, while she's still before her first + ** birthday, it'll appear the same. But once her birthday fires, if we ran with the above code it would + ** say: 'Age 1. 11 year old body.' -- this conflicts with the way NCS works though, because she hasn't + ** visually aged, so our change here makes it say 'Age 1. Appears to have a 10 year old body.' + */ r += `Appears to have a ${slave.visualAge} year old body. `; } if (slave.geneMods.NCS === 1) { @@ -26987,7 +26987,7 @@ window.GetVignette = function GetVignette(slave) { break; case "devout": vignettes.push({ - text: `a customer catches ${him} praying to ${himself} as they inserts themselves into ${him}, turning them off,`, + text: `a customer catches ${him} praying to ${himself} as they inserted themselves into ${him}, turning them off,`, type: "cash", effect: -1, }); @@ -28563,7 +28563,7 @@ window.GetVignette = function GetVignette(slave) { break; case "devout": vignettes.push({ - text: `a citizen catches ${him} praying to ${himself} as they inserts themsleves into ${him}, turning them off,`, + text: `a citizen catches ${him} praying to ${himself} as they inserted themsleves into ${him}, turning them off,`, type: "rep", effect: -1, }); @@ -29947,7 +29947,42 @@ window.GetVignette = function GetVignette(slave) { type: "health", effect: -1, }); - break; + break; + case "devout": + vignettes.push({ + text: `${he} spent nearly all of ${his} free time praying,`, + type: "cash", + effect: 0, + }); + break; + } + switch (slave.behavioralQuirk) { + case "fitness": + vignettes.push({ + text: `${he} spent a great deal of time working out,`, + type: "health", + effect: 1, + }); + vignettes.push({ + text: `${he} exercised to the point of physical exhaustion,`, + type: "health", + effect: -1, + }); + break; + case "insecure": + vignettes.push({ + text: `${he} relaxed by doing whatever other slaves were doing,`, + type: "cash", + effect: 0, + }); + break; + } + if (slave.fetish === "mindbroken") { + vignettes.push({ + text: `${he} spent ${his} time watching paint dry. No one bothered telling ${him} the wall wasn't newly painted,`, + type: "cash", + effect: 0, + }); } if (slave.devotion > 95) { vignettes.push({ @@ -30181,17 +30216,25 @@ window.nationalityToAccent = function nationalityToAccent(slave) { switch (slave.nationality) { case "Afghan": - slave.accent = (V.language === "Pashto") ? jsEither([0, 0, 0, 1]) : naturalAccent; + if (V.language === "Pashto") { + slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]); + } else if (V.language === "Dari") { + slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]); + } else if (V.language === "Persian") { + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); + } else { + slave.accent = naturalAccent; + } break; case "Albanian": slave.accent = naturalAccent; break; case "Algerian": - slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "American": if (V.language === "English") { - slave.accent = jsEither([0, 0, 0, 1]); + slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]); } else if (V.language === "Spanish" && slave.race === "latina") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); } else if (V.language === "Chinese" && slave.race === "asian") { @@ -30203,16 +30246,16 @@ window.nationalityToAccent = function nationalityToAccent(slave) { } break; case "Andorran": - slave.accent = (V.language === "Catalan") ? jsEither([0, 0, 0, 1]) : naturalAccent; + slave.accent = (V.language === "Catalan") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent; break; case "Angolan": - slave.accent = (V.language === "Portuguese") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Portuguese") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Antiguan": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Argentinian": - slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Armenian": if (V.language === "Russian") { @@ -30225,7 +30268,7 @@ window.nationalityToAccent = function nationalityToAccent(slave) { break; case "Aruban": if (V.language === "Dutch") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "English") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); } else if (V.language === "Portuguese") { @@ -30235,16 +30278,16 @@ window.nationalityToAccent = function nationalityToAccent(slave) { } break; case "Australian": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Austrian": if (V.language === "German") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "Serbian") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); } else if (V.language === "Slovene") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); - } else if (V.language === "Turkish" && slave.race === "middle eastern") { + } else if (V.language === "Turkish" && slave.race === "indo-aryan") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); } else { slave.accent = naturalAccent; @@ -30254,14 +30297,14 @@ window.nationalityToAccent = function nationalityToAccent(slave) { slave.accent = naturalAccent; break; case "Bahamian": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Bahraini": - slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Bangladeshi": if (V.language === "Bengali") { - slave.accent = jsEither([0, 0, 0, 1]); + slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]); } else if (V.language === "Hindi") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); } else { @@ -30269,16 +30312,16 @@ window.nationalityToAccent = function nationalityToAccent(slave) { } break; case "Barbadian": - slave.accent = naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Belarusian": - slave.accent = naturalAccent; + slave.accent = (V.language === "Russian") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Belgian": if (V.language === "Dutch") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "French") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "German") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); } else { @@ -30286,35 +30329,35 @@ window.nationalityToAccent = function nationalityToAccent(slave) { } break; case "Belizean": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Beninese": - slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Bermudian": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Bhutanese": - slave.accent = (V.language === "Dzongkha") ? jsEither([0, 0, 0, 1]) : naturalAccent; + slave.accent = (V.language === "Dzongkha") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent; break; case "Bissau-Guinean": - slave.accent = (V.language === "Portuguese") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Portuguese") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Bolivian": - slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Bosnian": slave.accent = naturalAccent; break; case "Brazilian": - slave.accent = (V.language === "Portuguese") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Portuguese") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "British": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Bruneian": if (V.language === "Malay") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "English") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); } else { @@ -30325,19 +30368,19 @@ window.nationalityToAccent = function nationalityToAccent(slave) { slave.accent = naturalAccent; break; case "Burkinabé": - slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Burmese": slave.accent = naturalAccent; break; case "Burundian": - slave.accent = (V.language === "Kirundi") ? jsEither([0, 0, 0, 1]) : naturalAccent; + slave.accent = (V.language === "Kirundi") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent; break; case "Cambodian": if (V.language === "Khmer") { - slave.accent = jsEither([0, 0, 0, 1]); + slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]); } else if (V.language === "Cham") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "French") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); } else { @@ -30345,31 +30388,31 @@ window.nationalityToAccent = function nationalityToAccent(slave) { } break; case "Cameroonian": - slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Canadian": if (V.language === "English") { - slave.accent = jsEither([0, 0, 0, 1]); + slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]); } else if (V.language === "French") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else { slave.accent = naturalAccent; } break; case "Cape Verdean": - slave.accent = (V.language === "Portuguese") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Portuguese") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Catalan": - slave.accent = (V.language === "Spanish") ? jsEither([0, 0, 0, 1]) : naturalAccent; + slave.accent = (V.language === "Spanish") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent; break; case "Central African": - slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Chadian": - slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Chilean": - slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Chinese": if (V.language === "Tibetan") { @@ -30383,7 +30426,7 @@ window.nationalityToAccent = function nationalityToAccent(slave) { } break; case "Colombian": - slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Comorian": if (V.language === "Arabic") { @@ -30396,38 +30439,38 @@ window.nationalityToAccent = function nationalityToAccent(slave) { break; case "Congolese": if (V.language === "Lingala") { - slave.accent = jsEither([0, 0, 0, 1]); + slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]); } else if (V.language === "Kikongo") { - slave.accent = jsEither([0, 0, 0, 1]); + slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]); } else if (V.language === "French") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else { slave.accent = naturalAccent; } break; case "a Cook Islander": if (V.language === "Cook Islands MÄori") { - slave.accent = jsEither([0, 0, 0, 1]); + slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]); } else if (V.language === "English") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else { slave.accent = naturalAccent; } break; case "Costa Rican": - slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Croatian": slave.accent = naturalAccent; break; case "Cuban": - slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Cypriot": if (V.language === "Greek") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "Turkish") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "English") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); } else { @@ -30435,28 +30478,34 @@ window.nationalityToAccent = function nationalityToAccent(slave) { } break; case "Czech": - slave.accent = naturalAccent; + if (V.language === "Slovak") { + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); + } else if (V.language === "Vietnamese" && slave.race === "asian") { + slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); + } else { + slave.accent = naturalAccent; + } break; case "Danish": slave.accent = naturalAccent; break; case "Djiboutian": - slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Dominican": - slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Dominiquais": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Dutch": slave.accent = naturalAccent; break; case "East Timorese": if (V.language === "Tetum") { - slave.accent = jsEither([0, 0, 0, 1]); + slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]); } else if (V.language === "Portuguese") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "Malay") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); } else { @@ -30464,22 +30513,22 @@ window.nationalityToAccent = function nationalityToAccent(slave) { } break; case "Ecuadorian": - slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Egyptian": - slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Emirati": - slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Equatoguinean": - slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Eritrean": if (V.language === "Tigrinya") { - slave.accent = jsEither([0, 0, 0, 1]); + slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]); } else if (V.language === "Arabic") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "English") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); } else { @@ -30491,7 +30540,7 @@ window.nationalityToAccent = function nationalityToAccent(slave) { break; case "Ethiopian": if (V.language === "Amharic") { - slave.accent = jsEither([0, 0, 0, 1]); + slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]); } else if (V.language === "Arabic") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); } else if (V.language === "Tigrinya") { @@ -30501,15 +30550,15 @@ window.nationalityToAccent = function nationalityToAccent(slave) { } break; case "Fijian": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Filipina": if (V.language === "Filipino") { - slave.accent = jsEither([0, 0, 0, 1]); + slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]); } else if (V.language === "English") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "Tagalog") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "Arabic") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); } else if (V.language === "Spanish") { @@ -30519,7 +30568,7 @@ window.nationalityToAccent = function nationalityToAccent(slave) { } break; case "Finnish": - slave.accent = (V.language === "Swedish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Swedish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "French": if (V.language === "English") { @@ -30537,26 +30586,26 @@ window.nationalityToAccent = function nationalityToAccent(slave) { } break; case "French Guianan": - slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "French Polynesian": - slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Gabonese": - slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Gambian": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Georgian": - slave.accent = (V.language === "Abkhaz") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Abkhaz") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "German": if (V.language === "English") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); } else if (V.language === "French") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); - } else if (V.language === "Turkish" && slave.race === "middle eastern") { + } else if (V.language === "Turkish" && slave.race === "indo-aryan") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); } else { slave.accent = naturalAccent; @@ -30564,7 +30613,7 @@ window.nationalityToAccent = function nationalityToAccent(slave) { break; case "Ghanan": if (V.language === "English") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "Hausa") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); } else if (V.language === "Arabic") { @@ -30577,37 +30626,37 @@ window.nationalityToAccent = function nationalityToAccent(slave) { slave.accent = naturalAccent; break; case "Greenlandic": - slave.accent = (V.language === "Danish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Danish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Grenadian": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Guamanian": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Guatemalan": - slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Guinean": - slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Guyanese": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Haitian": - slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Honduran": - slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Hungarian": slave.accent = naturalAccent; break; case "I-Kiribati": if (V.language === "Gilbertese") { - slave.accent = jsEither([0, 0, 0, 1]); + slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]); } else if (V.language === "English") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else { slave.accent = naturalAccent; } @@ -30623,19 +30672,25 @@ window.nationalityToAccent = function nationalityToAccent(slave) { break; case "Indian": if (V.language === "Hindi") { - slave.accent = jsEither([0, 0, 0, 1]); + slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]); } else if (V.language === "English") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else { slave.accent = naturalAccent; } break; case "Indonesian": - slave.accent = (V.language === "Malay") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + if (V.language === "Javanese") { + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); + } else if (V.language === "Malay") { + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); + } else { + slave.accent = naturalAccent; + } break; case "Iranian": if (V.language === "Persian") { - slave.accent = jsEither([0, 0, 0, 1]); + slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]); } else if (V.language === "Arabic") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); } else { @@ -30644,7 +30699,7 @@ window.nationalityToAccent = function nationalityToAccent(slave) { break; case "Iraqi": if (V.language === "Arabic") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "Kurdish") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); } else { @@ -30652,13 +30707,13 @@ window.nationalityToAccent = function nationalityToAccent(slave) { } break; case "Irish": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Israeli": if (V.language === "Hebrew") { - slave.accent = jsEither([0, 0, 0, 1]); + slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]); } else if (V.language === "Arabic") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else { slave.accent = naturalAccent; } @@ -30667,34 +30722,34 @@ window.nationalityToAccent = function nationalityToAccent(slave) { slave.accent = naturalAccent; break; case "Ivorian": - slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Jamaican": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Japanese": slave.accent = naturalAccent; break; case "Jordanian": - slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Kazakh": - slave.accent = (V.language === "Russian") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Russian") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Kenyan": slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 2, 2, 2, 3, 3]) : naturalAccent; break; case "Kittitian": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Korean": slave.accent = (V.language === "Chinese") ? jsEither([0, 1, 2, 2, 2, 3, 3]) : naturalAccent; break; case "Kosovan": if (V.language === "Albanian") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "Serbian") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else { slave.accent = naturalAccent; } @@ -30703,16 +30758,16 @@ window.nationalityToAccent = function nationalityToAccent(slave) { slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 2, 2, 2, 3, 3]) : naturalAccent; break; case "Kuwaiti": - slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Kyrgyz": - slave.accent = (V.language === "Russian") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Russian") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Laotian": if (V.language === "Lao") { - slave.accent = jsEither([0, 0, 0, 1]); + slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]); } else if (V.language === "Khmu") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "French") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); } else { @@ -30723,25 +30778,25 @@ window.nationalityToAccent = function nationalityToAccent(slave) { slave.accent = naturalAccent; break; case "Lebanese": - slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Liberian": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Libyan": - slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "a Liechtensteiner": - slave.accent = (V.language === "German") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "German") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Lithuanian": slave.accent = naturalAccent; break; case "Luxembourgian": if (V.language === "German") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "French") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else { slave.accent = naturalAccent; } @@ -30756,7 +30811,7 @@ window.nationalityToAccent = function nationalityToAccent(slave) { slave.accent = naturalAccent; break; case "Malaysian": - slave.accent = (V.language === "Malay") ? jsEither([0, 0, 0, 1]) : naturalAccent; + slave.accent = (V.language === "Malay") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent; break; case "Maldivian": slave.accent = naturalAccent; @@ -30766,61 +30821,67 @@ window.nationalityToAccent = function nationalityToAccent(slave) { break; case "Maltese": if (V.language === "English") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "Italian") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else { slave.accent = naturalAccent; } break; case "Marshallese": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Mauritanian": - slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Mauritian": if (V.language === "English") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "French") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else { slave.accent = naturalAccent; } break; case "Mexican": - slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + if (V.language === "Spanish") { + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); + } else if (V.language === "Nahuatl" && slave.race === "amerindian") { + slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); + } else { + slave.accent = naturalAccent; + } break; case "Micronesian": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Moldovan": - slave.accent = naturalAccent; + slave.accent = (V.language === "Russian") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Monégasque": - slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Mongolian": slave.accent = naturalAccent; break; case "Montenegrin": - slave.accent = naturalAccent; + slave.accent = (V.language === "Serbian") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Moroccan": slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 2, 2, 2, 3, 3]) : naturalAccent; break; case "Mosotho": - slave.accent = naturalAccent; + slave.accent = (V.language === "Sesotho") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent; break; case "Motswana": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Mozambican": - slave.accent = (V.language === "Portuguese") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Portuguese") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Namibian": if (V.language === "English") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "Afrikaans") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); } else { @@ -30828,34 +30889,52 @@ window.nationalityToAccent = function nationalityToAccent(slave) { } break; case "Nauruan": - slave.accent = naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Nepalese": - slave.accent = naturalAccent; + if (V.language === "Nepali") { + slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]); + } else if (V.language === "Maithili") { + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); + } else if (V.language === "Bhojpuri") { + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); + } else if (V.language === "English") { + slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); + } else { + slave.accent = naturalAccent; + } break; case "New Caledonian": - slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + if (V.language === "French") { + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); + } else if (V.language === "Nengone") { + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); + } else if (V.language === "Drehu") { + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); + } else { + slave.accent = naturalAccent; + } break; case "a New Zealander": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Ni-Vanuatu": if (V.language === "French") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "English") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else { slave.accent = naturalAccent; } break; case "Nicaraguan": - slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Nigerian": if (V.language === "English") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "Hausa") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "Arabic") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); } else { @@ -30864,9 +30943,9 @@ window.nationalityToAccent = function nationalityToAccent(slave) { break; case "Nigerien": if (V.language === "French") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "Hausa") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "Arabic") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); } else { @@ -30874,24 +30953,24 @@ window.nationalityToAccent = function nationalityToAccent(slave) { } break; case "Niuean": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Norwegian": slave.accent = naturalAccent; break; case "Omani": - slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Pakistani": slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 2, 2, 2, 3, 3]) : naturalAccent; break; case "Palauan": if (V.language === "English") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "Sonsorolese") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "Tobian") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "Japanese") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); } else { @@ -30899,19 +30978,19 @@ window.nationalityToAccent = function nationalityToAccent(slave) { } break; case "Palestinian": - slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Panamanian": - slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Papua New Guinean": slave.accent = naturalAccent; break; case "Paraguayan": - slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Peruvian": - slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Polish": slave.accent = naturalAccent; @@ -30921,7 +31000,7 @@ window.nationalityToAccent = function nationalityToAccent(slave) { break; case "Puerto Rican": if (V.language === "Spanish") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "English") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); } else { @@ -30929,7 +31008,7 @@ window.nationalityToAccent = function nationalityToAccent(slave) { } break; case "Qatari": - slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Romanian": slave.accent = naturalAccent; @@ -30938,41 +31017,41 @@ window.nationalityToAccent = function nationalityToAccent(slave) { slave.accent = naturalAccent; break; case "Rwandan": - slave.accent = (V.language === "Kinyarwanda") ? jsEither([0, 0, 0, 1]) : naturalAccent; + slave.accent = (V.language === "Kinyarwanda") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent; break; case "Sahrawi": - slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Saint Lucian": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Salvadoran": - slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Sammarinese": - slave.accent = (V.language === "Italian") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Italian") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Samoan": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "São Toméan": - slave.accent = (V.language === "Portuguese") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Portuguese") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Saudi": - slave.accent = (V.language === "Arabic") ? jsEither([0, 0, 0, 1]) : naturalAccent; + slave.accent = (V.language === "Arabic") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent; break; case "Scottish": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Senegalese": - slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Serbian": slave.accent = naturalAccent; break; case "Seychellois": if (V.language === "French") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "English") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); } else { @@ -30980,53 +31059,53 @@ window.nationalityToAccent = function nationalityToAccent(slave) { } break; case "Sierra Leonean": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Singaporean": if (V.language === "English") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "Chinese") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "Malay") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "Tamil") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else { slave.accent = naturalAccent; } break; case "Slovak": - slave.accent = naturalAccent; + slave.accent = (V.language === "Czech") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Slovene": slave.accent = naturalAccent; break; case "a Solomon Islander": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Somali": - slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "South African": if (V.language === "English") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "Afrikaans") { - slave.accent = jsEither([0, 0, 0, 1]); + slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]); } else { slave.accent = naturalAccent; } break; case "South Sudanese": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Spanish": slave.accent = (V.language === "Catalan") ? jsEither([0, 1, 2, 2, 2, 3, 3]) : naturalAccent; break; case "Sri Lankan": if (V.language === "Sinhalese") { - slave.accent = jsEither([0, 0, 0, 1]); + slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]); } else if (V.language === "Tamil") { - slave.accent = jsEither([0, 0, 0, 1]); + slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]); } else if (V.language === "English") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); } else { @@ -31037,10 +31116,20 @@ window.nationalityToAccent = function nationalityToAccent(slave) { slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 2, 2, 2, 3, 3]) : naturalAccent; break; case "Surinamese": - slave.accent = (V.language === "Dutch") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Dutch") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Swazi": - slave.accent = naturalAccent; + if (V.language === "English") { + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); + } else if (V.language === "Afrikaans") { + slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); + } else if (V.language === "Tsonga") { + slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); + } else if (V.language === "Zulu") { + slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); + } else { + slave.accent = naturalAccent; + } break; case "Swedish": if (V.language === "English") { @@ -31057,9 +31146,9 @@ window.nationalityToAccent = function nationalityToAccent(slave) { break; case "Swiss": if (V.language === "German") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "French") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "Italian") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); } else { @@ -31067,16 +31156,16 @@ window.nationalityToAccent = function nationalityToAccent(slave) { } break; case "Syrian": - slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Taiwanese": - slave.accent = (V.language === "Chinese") ? jsEither([0, 0, 0, 1]) : naturalAccent; + slave.accent = (V.language === "Chinese") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent; break; case "Tajik": slave.accent = (V.language === "Russian") ? jsEither([0, 1, 2, 2, 2, 3, 3]) : naturalAccent; break; case "Tanzanian": - slave.accent = (V.language === "Swahili") ? jsEither([0, 0, 0, 1]) : naturalAccent; + slave.accent = (V.language === "Swahili") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent; break; case "Thai": if (V.language === "Chinese") { @@ -31090,92 +31179,118 @@ window.nationalityToAccent = function nationalityToAccent(slave) { } break; case "Tibetan": - slave.accent = (V.language === "Chinese") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Chinese") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Togolese": - slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Tongan": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Trinidadian": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Tunisian": - slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Turkish": - slave.accent = naturalAccent; + if (V.language === "Arabic") { + slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); + } else if (V.language === "Kurdish") { + slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); + } else if (V.language === "Zaza") { + slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); + } else { + slave.accent = naturalAccent; + } break; case "Turkmen": slave.accent = (V.language === "Russian") ? jsEither([0, 1, 2, 2, 2, 3, 3]) : naturalAccent; break; case "Tuvaluan": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Ugandan": - slave.accent = (V.language === "Swahili") ? jsEither([0, 0, 0, 1]) : naturalAccent; + slave.accent = (V.language === "Swahili") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent; break; case "Ukrainian": slave.accent = (V.language === "Russian") ? jsEither([0, 1, 2, 2, 2, 3, 3]) : naturalAccent; break; case "Uruguayan": - slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Uzbek": slave.accent = (V.language === "Russian") ? jsEither([0, 1, 2, 2, 2, 3, 3]) : naturalAccent; break; case "Vatican": - slave.accent = (V.language === "Italian") ? jsEither([0, 0, 0, 1]) : naturalAccent; + if (V.language === "Italian") { + slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]); + } else if (V.language === "Latin") { + slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]); + } else if (V.language === "French") { + slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); + } else if (V.language === "German") { + slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); + } else { + slave.accent = naturalAccent; + } break; case "Venezuelan": - slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Vietnamese": - slave.accent = (V.language === "Chinese") ? jsEither([0, 1, 2, 2, 2, 3, 3]) : naturalAccent; + if (V.language === "Chinese") { + slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); + } else if (V.language === "English") { + slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); + } else if (V.language === "French") { + slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); + } else { + slave.accent = naturalAccent; + } break; case "Vincentian": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Yemeni": - slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Zairian": if (V.language === "Lingala") { - slave.accent = jsEither([0, 0, 0, 1]); + slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]); } else if (V.language === "Kikongo") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "Swahili") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "French") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else { slave.accent = naturalAccent; } break; case "Zambian": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Zimbabwean": - slave.accent = (V.language === "English" && slave.race === "white") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English" && slave.race === "white") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Ancient Chinese Revivalist": - slave.accent = (V.language === "Chinese") ? jsEither([0, 0, 0, 1]) : naturalAccent; + slave.accent = (V.language === "Chinese") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent; break; case "Ancient Egyptian Revivalist": - slave.accent = (V.language === "Ancient Egyptian") ? jsEither([0, 0, 0, 1]) : naturalAccent; + slave.accent = (V.language === "Ancient Egyptian") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent; break; case "Arabian Revivalist": - slave.accent = (V.language === "Arabic") ? jsEither([0, 0, 0, 1]) : naturalAccent; + slave.accent = (V.language === "Arabic") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent; break; case "Aztec Revivalist": - slave.accent = (V.language === "Nahuatl") ? jsEither([0, 0, 0, 1]) : naturalAccent; + slave.accent = (V.language === "Nahuatl") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent; break; case "Edo Revivalist": - slave.accent = (V.language === "Japanese") ? jsEither([0, 0, 0, 1]) : naturalAccent; + slave.accent = (V.language === "Japanese") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent; break; case "Roman Revivalist": - slave.accent = (V.language === "Latin") ? jsEither([0, 0, 0, 1]) : naturalAccent; + slave.accent = (V.language === "Latin") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent; break; default: slave.accent = naturalAccent; @@ -31183,7 +31298,7 @@ window.nationalityToAccent = function nationalityToAccent(slave) { } if (slave.nationality === V.language) { - slave.accent = jsEither([0, 0, 0, 0, 0, 0, 0, 0, 1]); + slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]); } }; @@ -32014,13 +32129,13 @@ window.GenerateNewSlave = (function(){ function generateCircumcision() { /* The default rate of 50* is wildly unrepresentative, and there is extreme regional variation. */ /* - What we want is the prevalence among newborns, since this game - happens about 20 years in the future, but we'll use this lacking - something better. - https://pophealthmetrics.biomedcentral.com/articles/10.1186/s12963-016-0073-5 - Right now we mostly just break it down by country. - It would be better to break it down by both country - and race if statistics are available. + What we want is the prevalence among newborns, since this game + happens about 20 years in the future, but we'll use this lacking + something better. + https://pophealthmetrics.biomedcentral.com/articles/10.1186/s12963-016-0073-5 + Right now we mostly just break it down by country. + It would be better to break it down by both country + and race if statistics are available. */ if (V.seeCircumcision == 0) { slave.foreskin = slave.dick + jsRandom(0,1); @@ -33344,7 +33459,7 @@ window.PGT = function() { if (S.PGT >= 4) armor0 = `reinforced, increasing survivability for the crew inside.`, armor1 = `The armor has been`; if (S.PGT >= 5) cannon = `A coaxial 30mm autocannon has been installed in the turret, along with automated .50 cal machine guns mounted over the front treads.`; if (S.PGT >= 6) laser = `Laser anti-missile countermeasures have been installed, destroying any subsonic ordinance fired at the Goliath.`; - if (S.PGT >= 7) PGTframe = `The frame has been reinforced, allowing the Goliath to carry more armor and gun.`; + if (S.PGT >= 7) PGTframe = `The frame has been reinforced, allowing the Goliath to carry more armor and guns.`; if (S.PGT >= 8) armor0 = `redesigned with sloping and state-of-the-art materials, allowing the Goliath to shrug off even the most advanced armor-piercing tank rounds.`; if (S.PGT >= 9) gun1 = `firing guided projectiles`; if (S.PGT >= 10) gun0 = `a twin-barreled railgun capable of rapidly`; @@ -33549,7 +33664,7 @@ window.Interactions = function() { if (V.SFTradeShow.CanAttend === -1 && (C.Talk + C.Fun !== 1)) { choice += `"Our interests should see a @@.yellowgreen;big boost@@, boss."`;} else { - choice += `"Your @@.yellowgreen;arcology's business prospects should see an improvement@@ this week, <<print PCTitle()>>.`; + choice += `"Your @@.yellowgreen;arcology's business prospects should see an improvement@@ this week, <<= properTitle()>>.`; }}} if (C.Talk + C.Fun > 0) time = `The Colonel is busy for the rest of the week, so the Lieutenant Colonel will assist you.`; @@ -33593,6 +33708,16 @@ window.progress = function(x,max) { return `${out}`; }; +window.SFInit = function() { + const V = State.variables; + V.SF = Object.assign({}, V.SF, {Active:1, Bonus:0, Depravity:0, Units:0, MWU:0, U:0, WG:0, SpecOps:0, SpecOpsLock:0, ROE:"hold", Target:"recruit", Regs:"strict", Caps:"The Special Force", Lower:"the special force", Subsidy:1}); + V.SFUnit = Object.assign({}, V.SFUnit, {Troops:40, Armoury:0, Firebase:0, AV:0, TV:0, Drones:0, Drugs:0, PGT:0, AA:0, TA:0, SpacePlane:0, GunS:0, Satellite:0, GiantRobot:0, MissileSilo:0, AircraftCarrier:0, Sub:0, HAT:0}); + V.SFColonel = Object.assign({}, V.SFColonel, {Core:"", Talk:0, Fun:0, Status:0}); + V.SFTradeShow = Object.assign({}, V.SFTradeShow, {History:0, CanAttend:0, Income:0, Revenue:0, Helots:0, TotalHelots:0, Mercs:0, TotalMercs:0}); + V.SatLaunched = 0, V.arcologies[0].SFRaid = 1,V.arcologies[0].SFRaidTarget = -1; + V.SF.Facility = Object.assign({}, V.SF.Facility, {Toggle:0, Active:0, LC:0, Workers:0, Max:5, Caps:"Special force support facility", Lower:"special force support facility", Decoration:"standard", Speed:0, Upgrade:0, IDs:[]}); +}; + /*:: DebugJS [script]*/ /* @@ -34927,7 +35052,91 @@ window.slaveMiscellaneousDatatypeCleanup = function slaveMiscellaneousDatatypeCl } }; -window.ArcologyDatatypeCleanup = function ArcologyDatatypeCleanup () { +window.PCDatatypeCleanup = function PCDatatypeCleanup() { + const V = State.variables; + const PC = V.PC; + + if (PC.title !== 0) { + PC.title = Math.clamp(+PC.title, 0, 1) || 1; + } + if (PC.dick !== 0) { + PC.dick = Math.clamp(+PC.dick, 0, 1) || 1; + } + PC.vagina = Math.clamp(+PC.vagina, 0, 1) || 0; + PC.belly = Math.max(+PC.belly, 0) || 0; + PC.pregMood = Math.clamp(+PC.pregMood, 0, 2) || 0; + PC.labor = Math.clamp(+PC.labor, 0, 1) || 0; + PC.births = Math.max(+PC.births, 0) || 0; + PC.boobs = Math.clamp(+PC.boobs, 0, 1) || 0; + PC.boobsBonus = Math.clamp(+PC.boobsBonus, -3, 3) || 0; + PC.boobsImplant = Math.clamp(+PC.boobsImplant, 0, 1) || 0; + PC.butt = Math.clamp(+PC.butt, 0, 3) || 0; + PC.buttImplant = Math.clamp(+PC.buttImplant, 0, 1) || 0; + PC.balls = Math.clamp(+PC.balls, 0, 3) || 0; + PC.ballsImplant = Math.clamp(+PC.ballsImplant, 0, 4) || 0; + PC.degeneracy = Math.max(+PC.degeneracy, 0) || 0; + PC.birthWeek = Math.clamp(+PC.birthWeek, 0, 51) || 0; + if (PC.sexualEnergy !== 0 ) { + PC.sexualEnergy = +PC.sexualEnergy || 4; + } + PC.refreshmentType = Math.clamp(+PC.refreshmentType, 0, 6) || 0; + PC.trading = Math.clamp(+PC.trading, -100, 100) || 0; + PC.warfare = Math.clamp(+PC.warfare, -100, 100) || 0; + PC.slaving = Math.clamp(+PC.slaving, -100, 100) || 0; + PC.engineering = Math.clamp(+PC.engineering, -100, 100) || 0; + PC.medicine = Math.clamp(+PC.medicine, -100, 100) || 0; + PC.hacking = Math.clamp(+PC.hacking, -100, 100) || 0; + PC.cumTap = Math.max(+PC.cumTap, 0) || 0; + PC.mother = +PC.mother || 0; + PC.father = +PC.father || 0; + PC.birthElite = Math.max(+PC.birthElite, 0) || 0; + PC.birthMaster = Math.max(+PC.birthMaster, 0) || 0; + PC.birthDegenerate = Math.max(+PC.birthDegenerate, 0) || 0; + PC.birthClient = Math.max(+PC.birthClient, 0) || 0; + PC.birthOther = Math.max(+PC.birthOther, 0) || 0; + PC.birthArcOwner = Math.max(+PC.birthArcOwner, 0) || 0; + PC.birthCitizen = Math.max(+PC.birthCitizen, 0) || 0; + PC.birthSelf = Math.max(+PC.birthSelf, 0) || 0; + PC.slavesFathered = Math.max(+PC.slavesFathered, 0) || 0; + PC.slavesKnockedUp = Math.max(+PC.slavesKnockedUp, 0) || 0; + PC.intelligence = 100; + PC.face = 100; + PC.actualAge = Math.clamp(+PC.actualAge, 14, 80) || 35; + PC.physicalAge = Math.clamp(+PC.physicalAge, 14, 80) || PC.actualAge; + PC.visualAge = Math.clamp(+PC.visualAge, 14, 80) || PC.actualAge; + PC.ovaryAge = Math.clamp(+PC.ovaryAge, 14, 80) || PC.physicalAge; + if (V.playerAging !== 0) { + V.playerAging = Math.clamp(+V.playerAging, 0, 2) || 2; + } + PC.newVag = Math.clamp(+PC.newVag, 0, 1) || 0; + PC.reservedChildren = Math.max(+PC.reservedChildren, 0) || 0; + PC.reservedChildrenNursery = Math.max(+PC.reservedChildrenNursery, 0) || 0; + PC.fertDrugs = Math.clamp(+PC.fertDrugs, 0, 1) || 0; + PC.forcedFertDrugs = Math.max(+PC.forcedFertDrugs, 0) || 0; + PC.staminaPills = Math.clamp(+PC.staminaPills, 0, 1) || 0; + PC.storedCum = Math.max(+PC.storedCum, 0) || 0; + PC.mpreg = 0; /* So knockMeUp() may be used with the PC */ + + if (PC.age !== undefined) { + delete PC.age; + } + if (PC.indenture !== undefined) { + delete PC.indenture; + } + if (PC.indentureRestrictions !== undefined) { + delete PC.indentureRestrictions; + } + + /* None of these are in use */ + PC.bellyPreg = PC.belly; + PC.ageImplant = 0; + PC.voiceImplant = 0; + PC.accent = 0; + PC.shoulders = 0; + PC.shouldersImplant = 0; +}; + +window.ArcologyDatatypeCleanup = function ArcologyDatatypeCleanup() { const V = State.variables; V.ACitizens = Math.max(+V.ACitizens, 0) || 0; @@ -34936,6 +35145,11 @@ window.ArcologyDatatypeCleanup = function ArcologyDatatypeCleanup () { V.ASlaveLimit = Math.max(+V.ASlaveLimit, 0) || 0; V.shelterAbuse = Math.max(+V.shelterAbuse, 0) || 0; + V.arcologies[0].prosperity = Math.max(+V.arcologies[0].prosperity, 0) || 0; + V.AProsperityCap = Math.max(+V.AProsperityCap, 0) || 0; + V.arcologies[0].ownership = Math.clamp(+V.arcologies[0].ownership, 0, 100) || 0; + V.arcologies[0].minority = Math.clamp(+V.arcologies[0].minority, 0, 100) || 0; + V.economy = Math.max(+V.economy, 20) || 100; V.difficultySwitch = Math.clamp(+V.difficultySwitch, 0, 1) || 0; V.localEcon = Math.max(+V.localEcon, 20) || V.economy; @@ -34981,14 +35195,4 @@ window.ArcologyDatatypeCleanup = function ArcologyDatatypeCleanup () { V.TCR.schoolProsperity = Math.clamp(+V.TCR.schoolProsperity, -10, 10) || 0; V.TFS.studentsBought = Math.max(+V.TFS.studentsBought, 0) || 0; V.TFS.schoolProsperity = Math.clamp(+V.TFS.schoolProsperity, -10, 10) || 0; - - V.arcologies[0].prosperity = Math.max(+V.arcologies[0].prosperity, 0) || 0; - V.AProsperityCap = Math.max(+V.AProsperityCap, 0) || 0; - V.arcologies[0].ownership = Math.clamp(+V.arcologies[0].ownership, 0, 100) || 0; - V.arcologies[0].minority = Math.clamp(+V.arcologies[0].minority, 0, 100) || 0; - - /* Will be moved when I get around to creating PCDatatypeCleanup */ - V.PC.actualAge = Math.clamp(+V.PC.actualAge, 14, 80) || 35; - V.PC.physicalAge = Math.clamp(+V.PC.physicalAge, 14, 80) || V.PC.actualAge; - V.PC.visualAge = Math.clamp(+V.PC.visualAge, 14, 80) || V.PC.actualAge; }; diff --git a/devTools/AutoGitVersionUploadBackground.sh b/devTools/AutoGitVersionUploadBackground.sh index 7bfa4379632db65cdd4023042452ebe04238bf4d..e0a78540509ff7e74570877c6250fef1bec9a9ec 100755 --- a/devTools/AutoGitVersionUploadBackground.sh +++ b/devTools/AutoGitVersionUploadBackground.sh @@ -1,8 +1,8 @@ -#!/bin/sh Additional packages required: megatools, MEGAcmd and git -U=anon@anon.anon P=13245 rdir=FC ldir='FC' outpt='bin/*.h*' login='-u $U -p $P' rpo=git@ssh.gitgud.io:pregmodfan/fc-pregmod.git build=0; echo "Fresh git clone? 0:y 1:n 2:na" && read Opt && clear && mega-login $U $P > /dev/null -while true; do - if [[ $Opt == 0 ]]; then build=1 && mkdir $ldir && git clone -q $rpo $ldir && cd $ldir - elif [[ $Opt > 0||$build < 1 ]]; then cd $ldir && git fetch -q origin && if [ `git rev-list HEAD...origin/pregmod-master --count` -gt 0 ]; then build=1 && git pull -q; fi #Check is a slight tweak of https://stackoverflow.com/a/17192101 and conversion into a single line check. +#!/bin/sh Additional packages required: megatools, MEGAcmd, minify and git +U=anon@anon.anon P=13245 sdr=/tmp/FC-Dev/devTools rdr=FC/ ldr=FC/ gen='bin/*.*' rpo=https://gitgud.io/pregmodfan/fc-pregmod.git preVC=00; echo "Fresh git clone? 0:y 1:n 2:na" && read Opt && clear && mega-login $U $P > /dev/null +while true;do if [ `ls $ldr|echo $?` -eq 0 ]; then cd $ldr;fi ;clear + if [[ $Opt == 0 ]]; then mkdir $ldr; git clone -q $rpo $ldr && cd $ldr && if [ `git log -n1 --abbrev-commit|grep -m1 commit|sed 's/commit //'` != $preVC ]; then build=1 && sed -Ei "s/preVC=$preVC/preVC=$(git log -n1 --abbrev-commit|grep -m1 commit|sed 's/commit //')/" $sdr/AutoGitVersionUploadBackground.sh;fi + elif [[ $Opt > 0 || $build < 1 ]]; then git fetch -q origin && if [ `git rev-list HEAD...origin/pregmod-master --count` -gt 0 ]; then build=1 && git pull -q && sed -Ei "s/preVC=$preVC/preVC=$(git log -n1 --abbrev-commit|grep -m1 commit|sed 's/commit //')/" $sdr/AutoGitVersionUploadBackground.sh;fi #A tweak of https://stackoverflow.com/a/17192101 and single line conversion. fi - if [[ $Opt > 1||$build > 0 ]]; then cd $ldir && rm $outpt; ./compile --insane > /dev/null && minify -o $outpt $outpt && mv $outpt "bin/FC-pregmod-$(git log -1 --format='%cd' --date='format:%d-%m-%Y-%H-%M')-$(git log -n1 --abbrev-commit|grep -m1 commit|sed 's/commit //')".html && mega-put $outpt $rdir && megals $login /Root/$rdir|sed -n '1!p'|sort -r|tail -n +11|paste -sd " " -|xargs megarm $login > /dev/null; fi -if [[ $build > 0 ]];then build=0;fi && if [[ $Opt != -1 ]];then Opt=-1;fi && clear && sleep 15m; done \ No newline at end of file + if [[ $Opt > 1 || $build > 0 ]]; then rm $gen; ./compile --insane && clear && minify -o $gen $gen && mv $gen bin/"FC-pregmod-$(git log -1 --format='%cd' --date='format:%d-%m-%Y-%H-%M')-$(git log -n1 --abbrev-commit|grep -m1 commit|sed 's/commit //')".html && mega-put $gen $rdr && megals -u $U -p $P /Root/$rdr|sed -n '1!p'|tail -n +10|paste -sd " " -|xargs megarm -u $U -p $P;clear;fi +if [[ $build > 0 ]];then build=0;fi ; if [[ $Opt != -1 ]];then Opt=-1;fi ;sleep 15m ;done \ No newline at end of file diff --git a/player variables documentation - Pregmod.txt b/player variables documentation - Pregmod.txt index a7ce3dab9606614ff3aa62dafd18c916ad82d222..f5ae18e6c5ab64036fee38530b6d89b5572e7268 100644 --- a/player variables documentation - Pregmod.txt +++ b/player variables documentation - Pregmod.txt @@ -171,6 +171,8 @@ Your career before becoming owner "escort" "servant" "gang" +"BlackHat" +"arcology owner" rumor: @@ -180,14 +182,6 @@ rumor: "social engineering" "luck" -indenture: - -no effect - -indentureRestrictions: - -no effect - birthWeek: your week of birth in a year @@ -196,7 +190,7 @@ accepts int between 0-51 age: (uncommon in events) -your age (deprecated) +your age (obsolete, not in use) 0 - young 1 - typical 2 - middle age @@ -386,18 +380,18 @@ actualAge: (uncommon in events) your actualAge -16+ +14+ physicalAge: your body's age -16+ +14+ visualAge: (uncommon in events) how old you look -16+ +14+ boobsImplant: @@ -425,6 +419,7 @@ how big your balls are (requires dick == 1) 0 - normal 1 - big 2 - huge +3 - massive ballsImplant: @@ -437,7 +432,7 @@ how big your balls are (requires dick == 1) ageImplant: -have your had age altering surgery +have you had age altering surgery, not yet in use 0 - no 1 - yes diff --git a/src/SecExp/attackOptions.tw b/src/SecExp/attackOptions.tw index 9cfa7d27dee6a726ac80ad3d46b7c1a7f662727a..4e45e01d9e69c47a56b493d734f65238ce90a864 100644 --- a/src/SecExp/attackOptions.tw +++ b/src/SecExp/attackOptions.tw @@ -171,9 +171,9 @@ approximately <strong><<print $estimatedMen>> men</strong> are coming, they seem <<if $expectedEquip <= 0>> <strong>poorly armed</strong>. Old rusty small arms are the norm with just a few barely working civilian vehicles. <<elseif $expectedEquip == 1>> - <strong>lightly armed</strong>. Mostly small arms with some repurposed civilian vehicles and a scattered few machine guns. There's no sign of heavy vehicles, artillery or aircraft. + <strong>lightly armed</strong>. Mostly small arms with some repurposed civilian vehicles and a few scattered machine guns. There's no sign of heavy vehicles, artillery or aircraft. <<elseif $expectedEquip == 2>> - <strong>decently armed</strong>. Good quality small arms, machine guns a few mortars. There seems to be some heavy military vehicles coming as well. + <strong>decently armed</strong>. Good quality small arms, machine guns and a few mortars. There seems to be some heavy military vehicles coming as well. <<elseif $expectedEquip == 3>> <strong>well armed</strong>. High quality small arms, snipers, demolitions teams, heavy duty machine guns and mortars. Heavy military vehicles are numerous and a few artillery pieces are accompanying the detachment. <<elseif $expectedEquip >= 4>> diff --git a/src/SpecialForce/Firebase.tw b/src/SpecialForce/Firebase.tw index 09691bf3a557b0a1b51d5f61877044b4d6a17a3a..06ef4777afcce5fcece72e5d2d00b6a0f4af0d86 100644 --- a/src/SpecialForce/Firebase.tw +++ b/src/SpecialForce/Firebase.tw @@ -1,133 +1,127 @@ :: Firebase [nobr] - + <<if ndef $Tour>> <<set $Tour = 0>> <</if>> - + <<if $Tour === 0>> - + <<= Count()>> <<if $SF.Lower != "the special force">> - + <<set $SF.Caps = $SF.Lower.replace("the ", "The ")>> <</if>> - + <<switch _Env>> <<case 4>> - + <<set _EnvCash2 = 450,_EnvCash3 = 200,_EnvCash4 = 100,_EnvProsp = 3>> - + <<case 3>> - + <<set _EnvCash2 = 500,_EnvCash3 = 250,_EnvCash4 = 150,_EnvProsp = 5>> - + <<case 2>> - + <<set _EnvCash2 = 550,_EnvCash3 = 300,_EnvCash4 = 200,_EnvProsp = 7>> - + <</switch>> <<set $nextButton = "Back to Main",$nextLink = "Main",$returnTo = "Firebase">> - + <<if $cheatMode > 0>> <<link "Cheat edit""CheatEdit">> <</link>> <br> <</if>> - + The firebase of $arcologies[0].name's <<textbox "$SF.Lower" $SF.Lower "Firebase">> is located in the lower levels, occupying unneeded warehouse space. It is not accessible to the general citizenry, but your personal elevator has express service to it. As you step off, two soldiers in combat armor manning the entry checkpoint tense before recognizing their Marshal and stepping aside with a sharp salute. - + <br><br><<if $SFTradeShow.CanAttend === 1 || ($SFColonel.Fun + $SFColonel.Talk >= 1)>> - + You make your way to the operations center, <<print SFC()>> is handling a minor issue. As you enter, she salutes. <<if $SFTradeShow.CanAttend == 1>> The Colonel is away at her merc meetup, so <<print SFC()>> will assist you.<</if>> - + <<elseif random(1,100) > 5>> - + You make your way to the operations center. The Colonel is - + <<if random(1,100) > 50>>glancing between her tablet and the large wallscreen, occasionally taking notes or barking orders. - + <<else>>examining a table with a map of the surrounding area, planning manuevers in the event of an attack.<</if>> - + She notices your entrance and turns her attention to you. - + <<if $SFColonel.Core == "brazen">> - + She gives a textbook salute. "<<= properTitle()>>, how can I help you?" - + <<else>> - + "Hey boss, what do you need?"<</if>> - + <<else>> - + You make your way to the operations center, finding it empty. A short walk takes you through the barracks to the Colonel's quarters. As you approach, the Colonel <<print ColonelQuarters()>> - + <</if>> - + <<if ndef $SFTradeShow.View && ($SFColonel.Fun + $SFColonel.Talk < 1)>> - + <br><br>Her expression changes as something jogs her memory. "Before we begin <<if $SFColonel.Core == "brazen">><<= properTitle()>><<else>>boss<</if>>, back when I was a merc me and a couple of my old friends would have a meetup every several months. Drinking, fucking, drugs... a little poker. It eventually grew into a whole thing, and now we bring our latest and greatest toys to show off, maybe make some money off selling the schematics. I'd like to continue going, for old times' sake." - + <br>[[Grant leave|Firebase][$SFTradeShow.CanAttend = 1,$SFTradeShow.View = 1]] - + <br>[[Request she remain on base|Firebase][$SFTradeShow.CanAttend = -2,$SFTradeShow.View = 0]]<br> - + <</if>> - + <<if $SFTradeShow.History >= 1 && (Math.trunc($week/24) === ($week/24)) && $SFTradeShow.CanAttend === -1>> - + <br><br>Her expression changes as something jogs her memory. "Before we begin <<if $SFColonel.Core == "brazen">><<= properTitle()>><<else>>boss<</if>>, that biannual merc meetup has come around again. You've already gave me leave to attend, but I just wanted to be sure I'm still clear to go." - + <br>[[Grant leave.|Firebase][$SFTradeShow.CanAttend = 1]] - + <br>[[Request she remain on site.|Firebase][$SFTradeShow.CanAttend = -1]]<br> - + <</if>> - + <<if $SFTradeShow.History >= 1 && ((Math.trunc(($week-1)/24) === ($week-1)/24) || (Math.trunc(($week-2)/24) === ($week-2)/24) || (Math.trunc(($week-3)/24) === ($week-3)/24))>> - - While at the recent merc meetup, the Colonel made @@.yellowgreen;<<print cashFormat(Math.ceil($SFTradeShow.Income))>>@@ selling generic schematics to her friends, <<print commaNum($SFTradeShow.Helots)>> menial slaves were won in a poker game, and <<print commaNum($SFTradeShow.TotalMercs)>> mercenaries were persuaded to join $SF.Lower. - + + While at the recent merc meetup, the Colonel made @@.yellowgreen;<<print cashFormat(Math.ceil($SFTradeShow.Income))>>@@ selling generic schematics to her friends, <<print commaNum($SFTradeShow.Helots)>> menial slaves were won in a poker game, and <<print commaNum($SFTradeShow.TotalMercs)>> mercenaries were persuaded to join $SF.Lower. + <br>Total earnings thus far: @@.yellowgreen;<<print cashFormat(Math.ceil($SFTradeShow.Revenue))>>@@ in income, <<print commaNum($SFTradeShow.TotalHelots)>> menial slaves and <<print commaNum($SFTradeShow.Mercs)>> mercenaries joined across $SFTradeShow.History meetups. - + <</if>> - + <<print Interactions()>> - + <<include "WC">> - <<if $SpecOpsLock < 1>> + <<if $SF.SpecOpsLock < 1>> <br><<switch $SF.SpecOps>> - + <<case 0>> - - <br>No soldiers are working undercover. [[Full time assignement|Firebase][$SpecOpsLock = 1]] - + <br>No soldiers are working undercover. [[Full time assignement|Firebase][$SF.SpecOpsLock = 1]] <br>[[Reassign soldiers|Firebase][$SF.SpecOps = -1]] - + <<case 1>> - - <br>A small section of soldiers are working undercover. [[Full time assignement|Firebase][$SpecOpsLock = 1]] - + <br>A small section of soldiers are working undercover. [[Full time assignement|Firebase][$SF.SpecOpsLock = 1]] <br>[[Reassign soldiers|Firebase][$SF.SpecOps = -1]] - + <<case 2>> - - <br>A large section of soldiers are working undercover. [[Full time assignement|Firebase][$SpecOpsLock = 1]] - + <br>A large section of soldiers are working undercover. [[Full time assignement|Firebase][$SF.SpecOpsLock = 1]] <br>[[Reassign soldiers|Firebase][$SF.SpecOps = -1]] - + <<default>> - + <br>Would you like to assign soldiers to undercover duty? - + <br>[[Do not assign soldiers to work undercover|Firebase][$SF.SpecOps = 0]] - + <br>[[Assign a small section of soldiers to work undercover|Firebase][$SF.SpecOps = 1]] - + <br>[[Assign a large section of soldiers to work undercover|Firebase][$SF.SpecOps = 2]] - + <</switch>> <<else>> - <br> <<if $SF.SpecOps < 1>>''Zero''<<elseif $SF.SpecOps < 2>>A ''small'' section<<else>>A ''large'' section<</if>> of the special force is assigned to undercover work. [[Re-alloclate the units|Firebase][$SpecOpsLock = 0]] + <br> <<if $SF.SpecOps < 1>>''Zero''<<elseif $SF.SpecOps < 2>>A ''small'' section<<else>>A ''large'' section<</if>> of the special force is assigned to undercover work. [[Re-alloclate the units|Firebase][$SF.SpecOpsLock = 0]] <</if>> - + <<if $SFUnit.Firebase > 5 && $secExp > 0 && $SFSupportLevel >= 4 && $maxUnits === 16 && $readiness <= 10>> - + <br><br>[[Provide the security force with their own section.|Firebase][$maxUnits += 4,$readiness = 10,$cash -= Math.ceil((750000*(1.15+($SF.Units/1000))*(1.15+($SFUnit.Firebase/10)))*_Env)]] - + @@.yellowgreen;<<print cashFormat(Math.ceil((750000*(1.15+($SF.Units/1000))*(1.15+($SFUnit.Firebase/10)))*_Env))>>@@ - + <</if>> <br> <<if $SF.Bonus < 1>> @@ -135,17 +129,17 @@ <<else>> You are providing @@.yellowgreen;<<print cashFormat(Math.ceil(_SFCashBonus))>>@@ in bonuses for basic FS acceptance amoungst $SF.Lower. [[Withdraw the bonuses.|Firebase][$SF.Bonus = 0]] <</if>> - + <<include "Upgrades">> - + <br><<link "Tour the firebase" "Firebase">><<set $Tour = 1>><</link>> - + <</if>> - + <<if $Tour === 1>> <<set $nextButton = " ">> - + <<=Count()>><<include "FlavourText">><br> - + [[Return to Operations|Firebase][$Tour = 0]] - + <</if>> \ No newline at end of file diff --git a/src/SpecialForce/FlavourText.tw b/src/SpecialForce/FlavourText.tw index 275fe243686e2984d9b93594add895a6842c4653..2bf9a81e2426090f47c5327d4fdaab5daf6d4c8c 100644 --- a/src/SpecialForce/FlavourText.tw +++ b/src/SpecialForce/FlavourText.tw @@ -35,7 +35,7 @@ nod respectfully, salute, or bow slightly, as they please. <</if>> You pass the briefing areas, the officers and sergeants of the force are conferring over planning tables and display screens regarding their upcoming deployments. - + <br><br><div style="margin-left:2em">The commanders are <<if $SF.Target === "recruit">> viewing lists of potential recruits for $SF.Lower. Mainly mercenaries and Old World soldiers who might be receptive to an offer of employment and residence within the arcology, in addition to some citizens of the arcology who wish to have some excitement in their lives. @@ -235,4 +235,4 @@ <<elseif passage() === "SF_Report">> <<include "SF_SupportFacilityReport">> <</if>> -<</if>>*/ +<</if>>*/ \ No newline at end of file diff --git a/src/SpecialForce/JS.js b/src/SpecialForce/JS.js index be12853a08415ba941d92583876ab09f048c793a..a20ade83d09898fe6f1e47d646c3d0eebcdc9699 100644 --- a/src/SpecialForce/JS.js +++ b/src/SpecialForce/JS.js @@ -200,7 +200,7 @@ window.PGT = function() { if (S.PGT >= 4) armor0 = `reinforced, increasing survivability for the crew inside.`, armor1 = `The armor has been`; if (S.PGT >= 5) cannon = `A coaxial 30mm autocannon has been installed in the turret, along with automated .50 cal machine guns mounted over the front treads.`; if (S.PGT >= 6) laser = `Laser anti-missile countermeasures have been installed, destroying any subsonic ordinance fired at the Goliath.`; - if (S.PGT >= 7) PGTframe = `The frame has been reinforced, allowing the Goliath to carry more armor and gun.`; + if (S.PGT >= 7) PGTframe = `The frame has been reinforced, allowing the Goliath to carry more armor and guns.`; if (S.PGT >= 8) armor0 = `redesigned with sloping and state-of-the-art materials, allowing the Goliath to shrug off even the most advanced armor-piercing tank rounds.`; if (S.PGT >= 9) gun1 = `firing guided projectiles`; if (S.PGT >= 10) gun0 = `a twin-barreled railgun capable of rapidly`; @@ -447,4 +447,14 @@ window.progress = function(x,max) { for (i=0;i<x;i++) out += `â–ˆâ`; for (i=0;i<z;i++) out += `<span style=\"opacity: 0;\">â–ˆ</span>â`;} return `${out}`; +}; + +window.SFInit = function() { + const V = State.variables; + V.SF = Object.assign({}, V.SF, {Active:1, Bonus:0, Depravity:0, Units:0, MWU:0, U:0, WG:0, SpecOps:0, SpecOpsLock:0, ROE:"hold", Target:"recruit", Regs:"strict", Caps:"The Special Force", Lower:"the special force", Subsidy:1}); + V.SFUnit = Object.assign({}, V.SFUnit, {Troops:40, Armoury:0, Firebase:0, AV:0, TV:0, Drones:0, Drugs:0, PGT:0, AA:0, TA:0, SpacePlane:0, GunS:0, Satellite:0, GiantRobot:0, MissileSilo:0, AircraftCarrier:0, Sub:0, HAT:0}); + V.SFColonel = Object.assign({}, V.SFColonel, {Core:"", Talk:0, Fun:0, Status:0}); + V.SFTradeShow = Object.assign({}, V.SFTradeShow, {History:0, CanAttend:0, Income:0, Revenue:0, Helots:0, TotalHelots:0, Mercs:0, TotalMercs:0}); + V.SatLaunched = 0, V.arcologies[0].SFRaid = 1,V.arcologies[0].SFRaidTarget = -1; + V.SF.Facility = Object.assign({}, V.SF.Facility, {Toggle:0, Active:0, LC:0, Workers:0, Max:5, Caps:"Special force support facility", Lower:"special force support facility", Decoration:"standard", Speed:0, Upgrade:0, IDs:[]}); }; \ No newline at end of file diff --git a/src/SpecialForce/NamingColonel.tw b/src/SpecialForce/NamingColonel.tw index d8f0e7f57e7c35115d0632c28b487facfa15d8a6..12d3e95c9c48b768c946a28397a956f057115685 100644 --- a/src/SpecialForce/NamingColonel.tw +++ b/src/SpecialForce/NamingColonel.tw @@ -141,4 +141,4 @@ <br><br>Oh, one last thing. I know you've got some kind of grand social experiment going on up there like all the other arco owners, and that's your own deal, but I'd appreciate it if you could keep that stuff out of the new barracks. I'll have a hard time approaching potential recruits and telling them they should come live in a Roman apartment, an Egyptian temple, a goddamn Japanese teahouse, or some of the other crazy shit I've seen in the past. They're hard, nasty people, and trust me, I can tell you from experience that changing that is just not going to happen. Like I said, though, I can hold them back a bit if you like. <br><br>Talk to you later, boss.// <<set $SF.Active = 2>> -<</if>> +<</if>> \ No newline at end of file diff --git a/src/SpecialForce/Proposal.tw b/src/SpecialForce/Proposal.tw index acae9e49da365f5857ef976f49abf0204073f007..b9acd01fc5eeaa4566fd64b79ba931c99c7307c1 100644 --- a/src/SpecialForce/Proposal.tw +++ b/src/SpecialForce/Proposal.tw @@ -16,30 +16,11 @@ <<elseif $PC.warfare >= 50||$PC.career === "arcology owner">> <<set _price = _price*.75>> <</if>> <br><<link "Prepare for an announcement.""Security Force Proposal">> <<replace "#result">> - You instruct $assistantName to announce to the arcology's citizenry that you will be making an important announcement in the near future regarding the security situation. Given the damage still present from the Daughters' attack, everyone will be tuning in. You also instruct your assistant to begin quietly investigating potential leadership figures for the force itself. - - <<run Object.assign($SF, {Active:1, Bonus:0, Depravity:0, Units:0, MWU:0, U:0, WG:0, SpecOps:0, SpecOpsLock:0, - ROE:"hold", Target:"recruit", Regs:"strict", Caps:"The Special Force", - Lower:"the special force", Subsidy:1})>> <<set $cash -= _price>> - <<set $SFUnit = Object.assign({}, $SFUnit, {Troops:40, Armoury:0, Firebase:0, AV:0, TV:0, Drones:0, - Drugs:0, PGT:0, AA:0, TA:0, SpacePlane:0, GunS:0, Satellite:0, GiantRobot:0, MissileSilo:0, - AircraftCarrier:0, Sub:0, HAT:0})>> <<set $arcologies[0].SFRaid = 1,$arcologies[0].SFRaidTarget = -1>> - <<set $SFColonel = Object.assign({}, $SFColonel, {Core:"", Talk:0, Fun:0, Status:0})>> - <<set $SFTradeShow = Object.assign({}, $SFTradeShow, {History:0, CanAttend:0, - Income:0, Revenue:0, Helots:0, TotalHelots:0, Mercs:0, TotalMercs:0})>> - <<set $SatLaunched = 0>> - <<set $SF.Facility = Object.assign({}, $SF.Facility, {Toggle:0, Active:0, LC:0, Workers:0, Max:5, Caps:"Special force support facility", Lower:"special force support facility", Decoration:"standard", Speed:0, Upgrade:0, IDs:[]})>> - <</replace>> <</link>><br>//Initial costs are @@.yellowgreen;<<print cashFormat(_price)>>@@ and upon establishment the force will have significant support costs until it is self-sufficient.// + <<set $cash -= _price>> <<= SFInit()>> + <</replace>> <</link>><br>//Initial costs are @@.yellowgreen;<<print cashFormat(_price)>>@@ and upon establishment the force will have significant support costs until it is self-sufficient.// <br><<link "The current measures are enough.""Next Week">> <<replace "#result">> <<run Object.assign(, $SF, {Active:0})>> <</replace>> <</link>> </span> <<elseif $SF.Active === 1>> <<include "Security Force Naming-Colonel">> -<<elseif $SF.Active !== -1 && passage() === "New Game Plus">> - <<run Object.assign($SF, {Active:-1, Bonus:0, Depravity:0, Units:0, MWU:0, U:0, WG:0, SpecOps:0, SpecOpsLock:0, ROE:"hold", Target:"recruit", Regs:"strict", Caps:"The Special Force", Lower:"the special force", Subsidy:1})>> - <<set $SFUnit = Object.assign({}, $SFUnit, {Troops:40, Armoury:0, Firebase:0, AV:0, TV:0, Drones:0, Drugs:0, PGT:0, AA:0, TA:0, SpacePlane:0, GunS:0, Satellite:0, GiantRobot:0, MissileSilo:0, AircraftCarrier:0, Sub:0, HAT:0})>> - <<set $SatLaunched = 0>> - <<set $arcologies[0].SFRaid = 1,$arcologies[0].SFRaidTarget = -1>> <<set $SFColonel = Object.assign({}, $SFColonel, {Core:"", Talk:0, Fun:0, Status:0})>> - <<set $SFTradeShow = Object.assign({}, $SFTradeShow, {History:0, CanAttend:0, Income:0, Revenue:0, Helots:0, TotalHelots:0, Mercs:0, TotalMercs:0})>> - <<run Object.assign($SF.Facility, {Toggle:0, Active:0, LC:0, Workers:0, Max:5, Caps:"Special force support facility", Lower:"special force support facility", Decoration:"standard", Speed:0, Upgrade:0, IDs:[]})>> <</if>> \ No newline at end of file diff --git a/src/SpecialForce/Report.tw b/src/SpecialForce/Report.tw index f9085771d5c7b7bddcfdb9bbcefdedac967382a5..822b22b262f83ba5f7643495df16bb9ecc68c302 100644 --- a/src/SpecialForce/Report.tw +++ b/src/SpecialForce/Report.tw @@ -41,7 +41,7 @@ <<set _FNGs += $SFUnit.TV,_Trade += 0.25*$SFUnit.TV,_unitMultiplier += 7.5*$SFUnit.TV+2*Math.pow($SFUnit.TV,2), _SFupkeep += 800*$SFUnit.TV>> <</if>> <<if $SFUnit.PGT > 0>> - <<set _Trade += 0.25*($SFUnit.PGT),_unitMultiplier += 15*$SFUnit.PGT+3*Math.pow($SFUnit.PGT,2),_SFupkeep += 5000+1000*$SFUnit.PGT>> + <<set _Trade += 0.25*($SFUnit.PGT),_unitMultiplier += 15*$SFUnit.PGT+3*Math.pow($SFUnit.PGT,2),_SFupkeep += 5000+1000*$SFUnit.PGT>> <</if>> <</if>> <<if $SFUnit.Firebase >= 2 && $SFUnit.Drones > 0>> @@ -59,13 +59,13 @@ <<set _FNGs += $SFUnit.SpacePlane,_Trade += 0.25*$SFUnit.SpacePlane,_unitMultiplier += 7.5*$SFUnit.SpacePlane+2*Math.pow($SFUnit.SpacePlane,2),_SFupkeep += 1000*$SFUnit.SpacePlane>> <</if>> <<if $SFUnit.GunS > 0>> - <<set _FNGs += $SFUnit.GunS,_Trade += 0.25*$SFUnit.GunS,_unitMultiplier += 12*$SFUnit.GunS+3*Math.pow($SFUnit.GunS,2),_SFupkeep += 3000+700*$SFUnit.GunS>> + <<set _FNGs += $SFUnit.GunS,_Trade += 0.25*$SFUnit.GunS,_unitMultiplier += 12*$SFUnit.GunS+3*Math.pow($SFUnit.GunS,2),_SFupkeep += 3000+700*$SFUnit.GunS>> <</if>> <<if $SFUnit.Satellite > 0>> - <<set _FNGs += $SFUnit.Satellite,_Trade += 0.25*$SFUnit.Satellite,_unitMultiplier += 15*$SFUnit.Satellite+5*Math.pow($SFUnit.Satellite,2)>> + <<set _FNGs += $SFUnit.Satellite,_Trade += 0.25*$SFUnit.Satellite,_unitMultiplier += 15*$SFUnit.Satellite+5*Math.pow($SFUnit.Satellite,2)>> <</if>> <<if $SFUnit.GiantRobot > 0>> - <<set _FNGs += $SFUnit.GiantRobot,_Trade += 0.25*$SFUnit.GiantRobot,_unitMultiplier += 15*$SFUnit.GiantRobot+5*Math.pow($SFUnit.GiantRobot,2),_SFupkeep += 10000+1500*$SFUnit.GiantRobot>> + <<set _FNGs += $SFUnit.GiantRobot,_Trade += 0.25*$SFUnit.GiantRobot,_unitMultiplier += 15*$SFUnit.GiantRobot+5*Math.pow($SFUnit.GiantRobot,2),_SFupkeep += 10000+1500*$SFUnit.GiantRobot>> <</if>> <<if $SFUnit.MissileSilo > 0>> <<set _Trade += 0.25*$SFUnit.MissileSilo,_unitMultiplier += 15*$SFUnit.MissileSilo+5*Math.pow($SFUnit.MissileSilo,2),_SFupkeep += 1000*$SFUnit.MissileSilo>> @@ -73,10 +73,10 @@ <</if>> <<if $SFUnit.AircraftCarrier > 0>> - <<set _FNGs += $SFUnit.AircraftCarrier,_Trade += 0.25*$SFUnit.AircraftCarrier,_unitMultiplier += 9*$SFUnit.AircraftCarrier+3*Math.pow($SFUnit.AircraftCarrier,2),_SFupkeep += 800*$SFUnit.AircraftCarrier>> + <<set _FNGs += $SFUnit.AircraftCarrier,_Trade += 0.25*$SFUnit.AircraftCarrier,_unitMultiplier += 9*$SFUnit.AircraftCarrier+3*Math.pow($SFUnit.AircraftCarrier,2),_SFupkeep += 800*$SFUnit.AircraftCarrier>> <</if>> <<if $SFUnit.Sub > 0>> - <<set _FNGs += $SFUnit.Sub,_Trade += 0.25*$SFUnit.Sub,_unitMultiplier += 7.5*$SFUnit.Sub+2*Math.pow($SFUnit.Sub,2),_SFupkeep += 900*$SFUnit.Sub>> + <<set _FNGs += $SFUnit.Sub,_Trade += 0.25*$SFUnit.Sub,_unitMultiplier += 7.5*$SFUnit.Sub+2*Math.pow($SFUnit.Sub,2),_SFupkeep += 900*$SFUnit.Sub>> <</if>> <<if $SFUnit.HAT > 0>> <<set _Trade += 0.25*$SFUnit.HAT,_unitMultiplier += 7.5*$SFUnit.HAT+2*Math.pow($SFUnit.HAT,2),_SFupkeep += 700*$SFUnit.HAT>> @@ -190,7 +190,7 @@ $SF.Caps managed to recruit <<print Math.round(_FNGs/2)>> new soldiers this week <<set _TradeShowAttendes = 200,_MenialSlavesPerAttendee = 5>> <<set _MenialSlaves = Math.ceil(random(1,((_TradeShowAttendes*_MenialSlavesPerAttendee)/10)))>> <<set _TSProfit = Math.ceil(500000*(1+($SF.Units/1000))*(1+($arcologies[0].prosperity/1000))*_Env)>> - During a break, The Colonel managed to sell some generic schematics to the _TradeShowAttendes attendes, some decided to also give her some menial slaves as a bonus.<br> + During a break, The Colonel managed to sell some generic schematics to the _TradeShowAttendes attendes, some decided to also give her some menial slaves as a bonus.<br> <<set $helots = $helots+_MenialSlaves>> <<set $SFTradeShow.Helots += _MenialSlaves,$SFTradeShow.TotalHelots += _MenialSlaves>> <<set $cash = $cash+_TSProfit,$SFTradeShow.Income += _TSProfit>> diff --git a/src/SpecialForce/TrickShotNight.tw b/src/SpecialForce/TrickShotNight.tw index 206a35ed7214682e4d2a6f5beb7cf00b20f155a4..970fb847aee847a69757b3d2702d6fb7e3b67823 100644 --- a/src/SpecialForce/TrickShotNight.tw +++ b/src/SpecialForce/TrickShotNight.tw @@ -1,4 +1,4 @@ -:: Trick Shot Night [nobr] +:: Trick Shot Night [nobr] <<set $nextButton = "Continue", $nextLink = "RIE Eligibility Check", $returnTo = "RIE Eligibility Check">> diff --git a/src/SpecialForce/Upgrades.tw b/src/SpecialForce/Upgrades.tw index 269032de2318c798cbf97ea87c9e23c185ff5af4..0502c070f2b00c1c585171c91ff10464b81e370f 100644 --- a/src/SpecialForce/Upgrades.tw +++ b/src/SpecialForce/Upgrades.tw @@ -1,19 +1,19 @@ :: Upgrades [nobr] - + <br><br>Total upgrade progress: <<print progress($SF.Units,_max)>> - + <<if $SF.MWU >= 1>> <br>Total multi week $SF.Lower upgrades: $SF.MWU <</if>> - + <<if $SF.U > 0 && $SF.MWU >= 0 && ($SF.Units !== _max)>> - - <br>[[Re-unlock upgrading.|Firebase][$SF.U = 0,$SF.MWU += 1,$cash -= Math.ceil(Math.abs($cash*.05*(1.25+($SF.Units/1000))))]] @@.yellowgreen;<<print cashFormat(Math.ceil(Math.abs($cash*.05*(1.25+($SF.Units/1000)))))>><</if>> - + + <br>[[Re-unlock upgrading.|Firebase][$SF.U = 0,$SF.MWU += 1,$cash -= Math.ceil(Math.abs($cash*.05*(1.25+($SF.Units/1000))))]] @@.yellowgreen;<<print cashFormat(Math.ceil(Math.abs($cash*.05*(1.25+($SF.Units/1000)))))>><</if>> + <<if ($SF.Units < 30 || $SF.Units !== _max) && $SF.U < 1>> <<set _T1 = $SF.Units >= 30>> - + <br>Which facility or equipment do you wish to upgrade this week? <br><br> - - - + + + <<if $SFUnit.Firebase < 5||_T1 && $SFUnit.Firebase < _FU>> <<set _cF = Math.ceil(100000*_Env*(1.15+($SF.Units/10))*(1.15+($SFUnit.Firebase/100)))>> @@ -31,327 +31,327 @@ <<else>>//More upgrades are required to unlock the next tier.// <</if>> <span style="float:right;"> <<print progress($SFUnit.Firebase)>> </span><br> - - - + + + <<if $SFUnit.Armoury < 5||_T1 && $SFUnit.Armoury < _AU>> - + <<set _cA = Math.ceil(40000*_Env*(1.15+($SF.Units/10))*(1.15+($SFUnit.Armoury/100)))>> - + <<if $cash >= _cA>> - + <<link "Upgrade Armory">> <<set $SF.U = 1, $SFUnit.Armoury++, $cash -= _cA>> <<goto "Firebase">><</link>> - + <<else>>//Cannot afford to upgrade the Armory.//<</if>> - + //Costs @@.yellowgreen;<<print cashFormat(_cA)>>@@ // - + <<elseif $SFUnit.Armoury == _AU>>//The Armory has been fully upgraded.// - + <<else>>//More upgrades are required to unlock the next tier.// - + <</if>> <span style="float:right;"> <<print progress($SFUnit.Armoury)>> </span><br> - - - + + + <<if $SFUnit.Drugs < 5||_T1 && $SFUnit.Drugs < _DrugsU>> - + <<set _cDrugs = Math.ceil(40000*_Env*(1.15+($SF.Units/10))*(1.15+($SFUnit.Drugs/100)))>> - + <<if $cash >= _cDrugs>> - + <<link "Upgrade Drug Lab">><<set $SF.U = 1, $SFUnit.Drugs++, $cash -= _cDrugs>> <<goto "Firebase">><</link>> - + <<else>>//Cannot afford to upgrade the Drug Lab.//<</if>> - + //Costs @@.yellowgreen;<<print cashFormat(_cDrugs)>>@@ // - + <<elseif $SFUnit.Drugs == _DrugsU>>//The Drug Lab has been fully upgraded.// - + <<else>>//More upgrades are required to unlock the next tier.// - + <</if>> <span style="float:right;"> <<print progress($SFUnit.Drugs)>> </span><br> - - - + + + <<if $SFUnit.Firebase >= 2 && ($SFUnit.Drones < 5 ||_T1 && $SFUnit.Drones < _DU)>> - + <<set _cDrones = Math.ceil(45000*_Env*(1.15+($SF.Units/10))*(1.15+($SFUnit.Drones/100))*HSM())>> - + <<if $cash >= _cDrones>> - + <<link "Upgrade Drone Bay">><<set $SF.U = 1, $SFUnit.Drones++, $cash -= _cDrones>> <<goto "Firebase">> <</link>> - + <<else>>//Cannot afford to upgrade the Drone Bay.//<</if>> - + //Costs @@.yellowgreen;<<print cashFormat(Math.ceil(45000*_Env*(1.15+($SF.Units/10))*(1.15+($SFUnit.Drones/100))*HSM()))>>@@ // <span style="float:right;"> <<print progress($SFUnit.Drones)>> </span> - + <<elseif $SFUnit.Drones == _DU>>//The Drone Bay has been fully upgraded.//<span style="float:right;"> <<print progress($SFUnit.Drones)>> </span> - + <<elseif _T1 && $SFUnit.Drones == 5>>//More upgrades are required to unlock the next tier.//<span style="float:right;"> <<print progress($SFUnit.Drones)>> </span><</if>> - - - + + + <<if $SFUnit.Firebase >= 1 && $terrain !== "oceanic">><br>''Garage'' - + <div style="margin-left:2em"><<if ($SFUnit.AV < 5||_T1 && $SFUnit.AV < _AVU)>> - + <<set _cAV = Math.ceil(60000*_Env*(1.15+($SF.Units/10))*(1.15+($SFUnit.AV/100)))>> - + <<if $cash >= _cAV>> - + <<link "Upgrade Attack Vehicle Fleet">><<set $SF.U = 1, $SFUnit.AV++, $cash -= _cAV>> <<goto "Firebase">><</link>> - + <<else>>//Cannot afford to upgrade the Attack Vehicle Fleet.//<</if>> - + //Costs @@.yellowgreen;<<print cashFormat(_cAV)>>@@//<span style="float:right;"><<print progress($SFUnit.AV)>></span> - + <<elseif $SFUnit.AV == _AVU>>//The Attack Vehicle Fleet has been fully upgraded.//<span style="float:right;"><<print progress($SFUnit.AV)>></span> - + <<else>>//More upgrades are required to unlock the next tier.//<span style="float:right;"><<print progress($SFUnit.AV)>></span> - + <</if>></div> - - - + + + <div style="margin-left:2em"><<if ($SFUnit.TV < 5||_T1 && $SFUnit.TV < _TVU)>> - + <<set _cTV = Math.ceil(60000*_Env*(1.15+($SF.Units/10))*(1.15+($SFUnit.TV/100)))>> - + <<if $cash >= _cTV>> - + <<link "Upgrade Transport Vehicle Fleet">><<set $SF.U = 1, $SFUnit.TV++, $cash -= _cTV>><<goto "Firebase">><</link>> - + <<else>>//Cannot afford to upgrade Transport Vehicle Fleet.//<</if>> - + //Costs @@.yellowgreen;<<print cashFormat(_cTV)>>@@//<span style="float:right;"><<print progress($SFUnit.TV)>> </span> - + <<elseif $SFUnit.TV == _TVU>>//The Transport Vehicle Fleet has been fully upgraded.//<span style="float:right;"><<print progress($SFUnit.TV)>></span> - + <<else>>//More upgrades are required to unlock the next tier.//<span style="float:right;"> <<print progress($SFUnit.TV)>> </span><</if>></div> - - - + + + <div style="margin-left:2em"><<if _T1 && $SFUnit.PGT < _PGTU>> - + <<set _cPGT = Math.ceil(735000*_Env*(1.15+($SF.Units/10))*(1.15+($SFUnit.PGT/100)))>> - + <<if $cash >= _cPGT>> - + <<link "Upgrade Prototype Goliath tank">><<set $SF.U = 1, $SFUnit.PGT++, $cash -= _cPGT>> <<goto "Firebase">><</link>> - + <<else>>//Cannot afford to upgrade Prototype Goliath Tank.//<</if>> - + //Costs @@.yellowgreen;<<print cashFormat(_cPGT)>>@@ //<span style="float:right;"> <<print progress($SFUnit.PGT)>> </span> - + <<elseif $SFUnit.PGT == _PGTU && $PC.warfare < 75>>//Your warfare skill is not high enough unlock the next upgrade.//<span style="float:right;"> <<print progress($SFUnit.PGT)>> </span> - + <<elseif $SFUnit.PGT == _PGTU>>//The Prototype Goliath Tank has been fully upgraded.//<span style="float:right;"> <<print progress($SFUnit.PGT)>> </span><</if>></div><</if>> - - - + + + <<if $SFUnit.Firebase >= 4>>''Hangar'' - + <div style="margin-left:2em"><<if $SFUnit.AA < 5||_T1 && $SFUnit.AA < _AAU>> - + <<set _cAA = Math.ceil(70000*_Env*(1.15+($SF.Units/10))*(1.15+($SFUnit.AA/100)))>> - + <<if $cash >= _cAA>> - + <<link "Upgrade Attack Aircraft Fleet">><<set $SF.U = 1, $SFUnit.AA++, $cash -= _cAA>> <<goto "Firebase">><</link>> - + <<else>>//Cannot afford to upgrade Attack Aircraft Fleet.//<</if>> - + //Costs @@.yellowgreen;<<print cashFormat(_cAA)>>@@ //<span style="float:right;"> <<print progress($SFUnit.AA)>> </span> - + <<elseif $SFUnit.AA == _AAU>>//The Attack Aircraft Fleet has been fully upgraded.//<span style="float:right;"> <<print progress($SFUnit.AA)>> </span> - + <<else>>//More upgrades are required to unlock the next tier.//<span style="float:right;"> <<print progress($SFUnit.AA)>> </span><</if>></div> - - - + + + <div style="margin-left:2em"><<if $SFUnit.TA < 5||_T1 && $SFUnit.TA < _TAU>> - + <<set _cTA = Math.ceil(70000*_Env*(1.15+($SF.Units/10))*(1.15+($SFUnit.TA/100)))>> - + <<if $cash >= _cTA>> - + <<link "Upgrade Transport Aircraft Fleet">><<set $SF.U = 1, $SFUnit.TA++, $cash -= _cTA>> <<goto "Firebase">><</link>> - + <<else>>//Cannot afford to upgrade the Transport Aircraft Fleet.//<</if>> - + //Costs @@.yellowgreen;<<print cashFormat(_cTA)>>@@ //<span style="float:right;"> <<print progress($SFUnit.TA)>> </span> - + <<elseif $SFUnit.TA == _TAU>>//The Transport Aircraft Fleet has been fully upgraded.//<span style="float:right;"> <<print progress($SFUnit.TA)>> </span> - + <<else>>//More upgrades are required to unlock the next tier.//<span style="float:right;"> <<print progress($SFUnit.TA)>> </span><</if>></div> - - - + + + <div style="margin-left:2em"><<if _T1 && $SFUnit.SpacePlane < _SPU>> - + <<set _cSP = Math.ceil(250000*_Env*(1.15+($SF.Units/10))*(1.15+($SFUnit.SpacePlane/100))*HSM())>> - + <<if $cash >= _cSP>> - + <<link "Upgrade Spaceplane">><<set $SF.U = 1, $SFUnit.SpacePlane++, $cash -= _cSP>> <<goto "Firebase">><</link>> - + <<else>>//Cannot afford to upgrade the Spaceplane.//<</if>> - + //Costs @@.yellowgreen;<<print cashFormat(_cSP)>>@@//<span style="float:right;"><<print progress($SFUnit.SpacePlane)>> </span> - + <<elseif $SFUnit.SpacePlane == _SPU && $PC.warfare < 75>>//Your warfare skill is not high enough unlock the next upgrade.//<span style="float:right;"> <<print progress($SFUnit.SpacePlane)>> </span> - + <<elseif $SFUnit.SpacePlane == _SPU>>//The Spaceplane has been fully upgraded.//<span style="float:right;"> <<print progress($SFUnit.SpacePlane)>> </span><</if>></div> - - - + + + <div style="margin-left:2em"><<if _T1 && $SFUnit.GunS < _GunSU>> - + <<set _cGunS = Math.ceil(350000*_Env*(1.15+($SF.Units/10))*(1.15+($SFUnit.GunS/100))*HSM())>> - + <<if $cash >= _cGunS>> - + <<link "Upgrade Gunship">><<set $SF.U = 1, $SFUnit.GunS++, $cash -= _cGunS>><<goto "Firebase">><</link>> - + <<else>>//Cannot afford to upgrade Gunship.//<</if>> - + //Costs @@.yellowgreen;<<print cashFormat(_cGunS)>>@@ //<span style="float:right;"> <<print progress($SFUnit.GunS)>> </span> - + <<elseif $SFUnit.GunS == _GunSU && $PC.warfare < 75>>//Your warfare skill is not high enough unlock the next upgrade.//<span style="float:right;"> <<print progress($SFUnit.GunS)>> </span> - + <<elseif $SFUnit.GunS == _GunSU>>//The Gunship has been fully upgraded.//<span style="float:right;"> <<print progress($SFUnit.GunS)>> </span><</if>></div><</if>> - - - + + + <<if _T1>>''Launch Bay'' - + <div style="margin-left:2em"><<if $SFUnit.Satellite < _SatU && $SatLaunched < 1>> - + <<set _cSat = Math.ceil(525000*_Env*(1.15+($SF.Units/10))*(1.15+($SFUnit.Satellite/100))*HSM())>> - + <<if $cash >= _cSat>> - + <<link "Upgrade Satellite">><<set $SF.U = 1, $SFUnit.Satellite++, $cash -= _cSat>> <<goto "Firebase">><</link>> - + <<else>>//Cannot afford to upgrade Satellite.//<</if>> - + //Costs @@.yellowgreen;<<print cashFormat(_cSat)>>@@//<span style="float:right;"><<print progress($SFUnit.Satellite)>> </span> - + <<elseif $SFUnit.Satellite == _SatU && $PC.warfare < 75>>//Your warfare skill is not high enough unlock the next upgrade.//<span style="float:right;"> <<print progress($SFUnit.Satellite)>> </span> - + <<else>>//The Satellite has been fully upgraded.//<span style="float:right;"><<print progress($SFUnit.Satellite)>></span><</if>></div> - - - + + + <<if $terrain !== "oceanic">> - + <div style="margin-left:2em"><<if $SFUnit.GiantRobot < _GRU>> - + <<set _cGR = Math.ceil(550000*_Env*(1.15+($SF.Units/10))*(1.15+($SFUnit.GiantRobot/100))*HSM())>> - + <<if $cash >= _cGR>> - + <<link "Upgrade Giant Robot">><<set $SF.U = 1, $SFUnit.GiantRobot++, $cash -= _cGR>> <<goto "Firebase">><</link>> - + <<else>>//Cannot afford to upgrade the Giant Robot.//<</if>> - + //Costs @@.yellowgreen;<<print cashFormat(_cGR)>>@@//<span style="float:right;"><<print progress($SFUnit.GiantRobot)>></span> - + <<elseif $SFUnit.GiantRobot == _GRU && $PC.warfare < 75>>//Your warfare skill is not high enough unlock the next upgrade.//<span style="float:right;"> <<print progress($SFUnit.GiantRobot)>> </span> - + <<else>>//The Giant Robot has been fully upgraded.//<span style="float:right;"> <<print progress($SFUnit.GiantRobot)>> </span><</if>></div><</if>> - - - + + + <div style="margin-left:2em"><<if $SFUnit.MissileSilo < _MSU>> - + <<set _cMS = Math.ceil(565000*_Env*(1.15+($SF.Units/10))*(1.15+($SFUnit.MissileSilo/100))*HSM())>> - + <<if $cash >= _cMS>> - + <<link "Upgrade Cruise Missile">><<set $SF.U = 1, $SFUnit.MissileSilo++, $cash -= _cMS>> <<goto "Firebase">><</link>> - + <<else>>//Cannot afford to upgrade Cruise Missile.//<</if>> - + //Costs @@.yellowgreen;<<print cashFormat(_cMS)>>@@ //<span style="float:right;"><<print progress($SFUnit.MissileSilo)>></span> - + <<elseif $SFUnit.MissileSilo == _MSU && $PC.warfare < 75>>//Your warfare skill is not high enough unlock the next upgrade.//<span style="float:right;"> <<print progress($SFUnit.MissileSilo)>> </span> - + <<else>>//The Cruise Missile has been fully upgraded.//<span style="float:right;"> <<print progress($SFUnit.MissileSilo)>> </span><</if>></div><</if>> - - - + + + <<if _T1 && ($terrain == "oceanic" || $terrain == "marine")>>''Naval Yard'' - + <div style="margin-left:2em"><<if $SFUnit.AircraftCarrier < _ACU>> - + <<set _cAC = Math.ceil(650000*_Env*(1.15+($SF.Units/10))*(1.15+($SFUnit.AircraftCarrier/100))*HSM())>> - + <<if $cash >= _cAC>> - + <<link "Upgrade Aircraft Carrier">><<set $SF.U = 1, $SFUnit.AircraftCarrier++, $cash -= _cAC>> <<goto "Firebase">><</link>> - + <<else>>//Cannot afford to upgrade Aircraft Carrier.//<</if>> - + //Costs @@.yellowgreen;<<print cashFormat(Math.ceil(650000*_Env*(1.15+($SF.Units/10))*(1.15+($SFUnit.AircraftCarrier/100))*HSM()))>>@@ //<span style="float:right;"> <<print progress($SFUnit.AircraftCarrier)>> </span> - + <<elseif $SFUnit.AircraftCarrier == _ACU && $PC.warfare < 75>>//Your warfare skill is not high enough unlock the next upgrade.//<span style="float:right;"> <<print progress($SFUnit.AircraftCarrier)>> </span> - + <<else>>//The Aircraft Carrier has been fully upgraded.//<span style="float:right;"> <<print progress($SFUnit.AircraftCarrier)>> </span><</if>></div> - - - + + + <div style="margin-left:2em"><<if $SFUnit.Sub < _SubU>> - + <<set _cSub = Math.ceil(700000*_Env*(1.15+($SF.Units/10))*(1.15+($SFUnit.Sub/100))*HSM())>> - + <<if $cash >= _cSub>> - + <<link "Upgrade Submarine">><<set $SF.U = 1, $SFUnit.Sub++, $cash -= _cSub>> <<goto "Firebase">><</link>> - + <<else>>//Cannot afford to upgrade Submarine//<</if>> - + //Costs @@.yellowgreen;<<print cashFormat(_cSub)>>@@ //<span style="float:right;"> <<print progress($SFUnit.Sub)>> </span> - + <<elseif $SFUnit.Sub == _SubU && $PC.warfare < 75>>//Your warfare skill is not high enough unlock the next upgrade.//<span style="float:right;"> <<print progress($SFUnit.Sub)>> </span> - + <<else>>//The Submarine has been fully upgraded.//<span style="float:right;"> <<print progress($SFUnit.Sub)>> </span><</if>></div> - - - + + + <div style="margin-left:2em"><<if $SFUnit.HAT < _HATU>> - + <<set _cHAT = Math.ceil(665000*_Env*(1.15+($SF.Units/10))*(1.15+($SFUnit.HAT/100)))>> - + <<if $cash >= _cHAT>> - + <<link "Upgrade Amphibious Transport">><<set $SF.U = 1, $SFUnit.HAT++, $cash -= _cHAT>><<goto "Firebase">><</link>> - + <<else>>//Cannot afford to upgrade Amphibious Transport.//<</if>> - + //Costs @@.yellowgreen;<<print cashFormat(_cHAT)>>@@ //<span style="float:right;"> <<print progress($SFUnit.HAT)>> </span> - + <<elseif $SFUnit.HAT == _HATU && $PC.warfare < 75>>//Your warfare skill is not high enough unlock the next upgrade.//<span style="float:right;"> <<print progress($SFUnit.HAT)>> </span> - + <<else>>//The Amphibious Transport has been fully upgraded.//<span style="float:right;"> <<print progress($SFUnit.HAT)>> </span><</if>></div> - + <</if>> - + <<if _T1 < 1>>//More firebase upgrades are required to unlock further upgrades.//<</if>> - + <</if>> - + /* <div style="margin-left:2em"><<if _T1 && $SF.Facility.Toggle > 0 && $SF.Facility.Active < 1>> - + <<set _cSFF = Math.ceil(735000*_Env*(1.15+($SF.Units/10))*(1.15+($SF.Facility.Active/100)))>> <<if $cash >= _cSFF>> - + <<link "Build $SF.Lower's support facility">><<set $SF.U = 1, $SF.Facility.Active++, $cash -= _cSFF>><<goto "Firebase">><</link>> <<else>>//Cannot afford to build $SF.Lower's support facility.//<</if>> - + //Costs @@.yellowgreen;<<print cashFormat(_cSFF)>>@@ // <</if>>*/ \ No newline at end of file diff --git a/src/cheats/PCCheatMenu.tw b/src/cheats/PCCheatMenu.tw index 1e21631262049e458e26260e4eee262755f41951..de1c4e92e3218014a5cde9db16a449931a768ff6 100644 --- a/src/cheats/PCCheatMenu.tw +++ b/src/cheats/PCCheatMenu.tw @@ -68,7 +68,7 @@ Title: ''<<if $tempSlave.title == 0>>Master<<else>>Mistress<</if>>'' <br>''Dick'': <<textbox "$tempSlave.dick" $tempSlave.dick>> <br>''Vagina'': <<textbox "$tempSlave.vagina" $tempSlave.vagina>> <<if $tempSlave.dick == 1>> - <br>''BallSize'': <<textbox "$tempSlave.balls" $tempSlave.balls>> //0 - normal 1 - big 2 - huge// + <br>''BallSize'': <<textbox "$tempSlave.balls" $tempSlave.balls>> //0: normal, 1: big, 2: huge// <br>''BallsImplant'': <<textbox "$tempSlave.ballsImplant" $tempSlave.ballsImplant>> //0: normal, 1: large, 2: huge, 3: enormous, 4: monstrous// <</if>> @@ -77,7 +77,7 @@ Title: ''<<if $tempSlave.title == 0>>Master<<else>>Mistress<</if>>'' <br>''Physical Age'': <<textbox "$tempSlave.physicalAge" $tempSlave.physicalAge>> <br>''Visual Age'': <<textbox "$tempSlave.visualAge" $tempSlave.visualAge>> <br>''Ovary Age'': <<textbox "$tempSlave.ovaryAge" $tempSlave.ovaryAge>> -<br>''Age Implant'': <<textbox "$tempSlave.ageImplant" $tempSlave.ageImplant>> //0: no surgery, 1: age altering surgery// +/*<br>''Age Implant'': <<textbox "$tempSlave.ageImplant" $tempSlave.ageImplant>> //0: no surgery, 1: age altering surgery// */ <br>''Player Aging'': <<textbox "$playerAging" $playerAging>> //0: no aging, 1: no aging, but birthdays, 2: aging// <<if $tempSlave.vagina == 1>> diff --git a/src/cheats/PCCheatMenuCheatDatatypeCleanup.tw b/src/cheats/PCCheatMenuCheatDatatypeCleanup.tw index ce3f062ab0d6228451dd28dcb83428d97eec89d5..c38f9f52ef490cddbe92195451b8753e4e245976 100644 --- a/src/cheats/PCCheatMenuCheatDatatypeCleanup.tw +++ b/src/cheats/PCCheatMenuCheatDatatypeCleanup.tw @@ -20,7 +20,6 @@ <<set $tempSlave.preg = Number($tempSlave.preg) || 0>> <<set $tempSlave.pregSource = Number($tempSlave.pregSource) || 0>> <<set $tempSlave.pregType = Number($tempSlave.pregType) || 0>> -<<set $tempSlave.pregMood = Number($tempSlave.pregMood) || 0>> <<set WombInit($tempSlave)>> /* just to make sure */ <<set $tempSlave.womb.length = 0>> /* simple way to delete all fetuses */ <<set WombImpregnate($tempSlave, $tempSlave.pregType, $tempSlave.pregSource, $tempSlave.preg)>> /* recreates fetuses */ @@ -31,41 +30,20 @@ <<set $tempSlave.belly = 0>> <<set $tempSlave.pregWeek = 0>> <</if>> -<<set $tempSlave.pregMood = Number($tempSlave.pregMood) || 0>> -<<set $tempSlave.boobs = ($tempSlave.boobs == 0 ? 0 : 1)>> +<<run PCDatatypeCleanup()>> + <<if $tempSlave.boobs == 0>> <<set $tempSlave.boobsBonus = 0>> <<set $tempSlave.boobsImplant = 0>> -<<else>> - <<set $tempSlave.boobsBonus = Number($tempSlave.boobsBonus) || 0>> - <<set $tempSlave.boobsImplant = Number($tempSlave.boobsImplant) || 0>> <</if>> -<<set $tempSlave.butt = Number($tempSlave.butt) || 0>> <<if $tempSlave.butt == 0>> <<set $tempSlave.buttImplant = 0>> -<<else>> - <<set $tempSlave.buttImplant = ($tempSlave.buttImplant == 0 ? 0 : 1)>> <</if>> -<<set $tempSlave.dick = ($tempSlave.dick == 0 ? 0 : 1)>> -<<set $tempSlave.vagina = ($tempSlave.vagina == 0 ? 0 : 1)>> -<<if $tempSlave.dick == 1>> - <<set $tempSlave.balls = Number($tempSlave.balls) || 0>> - <<set $tempSlave.ballsImplant = Number($tempSlave.ballsImplant) || 0>> -<<else>> +<<if $tempSlave.dick == 0>> <<set $tempSlave.balls = 0>> <<set $tempSlave.ballsImplant = 0>> <</if>> -<<set $tempSlave.ageImplant = Number($tempSlave.ageImplant) || 0>> -<<set $playerAging = Number($playerAging) || 0>> -<<set $tempSlave.ageImplant = Number($tempSlave.ageImplant) || 0>> -<<set $tempSlave.physicalAge = Number($tempSlave.physicalAge) || 14>> -<<set $tempSlave.visualAge = Number($tempSlave.visualAge) || 14>> -<<set $tempSlave.actualAge = Number($tempSlave.actualAge) || 14>> -<<set $tempSlave.ovaryAge = Number($tempSlave.ovaryAge) || 14>> -<<set $tempSlave.mother = Number($tempSlave.mother) || 0>> -<<set $tempSlave.father = Number($tempSlave.father) || 0>> - You perform the dark rituals, pray to the dark gods and sold your soul for the power to reshape your body and life at will. What a cheater! <<set $PC = clone($tempSlave)>> diff --git a/src/endWeek/saChoosesOwnClothes.tw b/src/endWeek/saChoosesOwnClothes.tw index 834934d48c87d17a74348ef7495d9d0a5d86c777..ca6daf6da03ab9e2e016222a269c5e08a9b6b19b 100644 --- a/src/endWeek/saChoosesOwnClothes.tw +++ b/src/endWeek/saChoosesOwnClothes.tw @@ -334,7 +334,7 @@ window.saChoosesOwnClothes = (function() { wardrobeAssignment.push({text: `and wears an one-piece swimsuit, since it's all ${he} can wear that won't be ruined by all the moisture in the spa.`, clothes: "a monokini"}); } if(isItemAccessible("one-piece swimsuit")) { - wardrobeAssignment.push({text: `and wears a modest swimsuit, since it's all ${he} can wear that won't be ruined by all the moisture in the spa.`, clothes: "one-piece swimsuit"}); + wardrobeAssignment.push({text: `and wears a one-piece swimsuit, since it's all ${he} can wear that won't be ruined by all the moisture in the spa.`, clothes: "one-piece swimsuit"}); } if(isItemAccessible("a burkini")) { wardrobeAssignment.push({text: `and wears a modest swimsuit, since it's all ${he} can wear that won't be ruined by all the moisture in the spa.`, clothes: "a burkini"}); @@ -459,7 +459,7 @@ window.saChoosesOwnClothes = (function() { wardrobeAssignment.push({text: `and wears normal clothing to not distract from ${his} lessons.`, clothes: "conservative clothing"}); } } else if((slave.assignment == "whore") || (slave.assignment == "work in the brothel")) { - if(slave.belly >= 5000 && isItemAccessible("attractive lingerie for a pregnant woman")) { + if(slave.belly >= 5000 && isItemAccessible("attractive lingerie for a pregnant woman")) { wardrobeAssignment.push({text: `and wears pretty lingerie to show off ${his} merchandise and accentuate ${his} pregnancy while still looking a little classy.`, clothes: "attractive lingerie for a pregnant woman"}); } wardrobeAssignment.push({text: `and wears pretty lingerie to show off ${his} merchandise and still look a little classy.`, clothes: "attractive lingerie"}); @@ -715,7 +715,7 @@ window.saChoosesOwnClothes = (function() { if(isItemAccessible("a ball gown")) { wardrobeTastes.push({text: `and chooses a formal dress that makes ${him} feel like royalty.`, clothes: "a ball gown"}); } - } else if(slave.behavioralQuirk == "devout") { + } else if(slave.behavioralFlaw == "devout") { wardrobeTastes.push({text: `and wears something more appropriate for a monastery than a whorehouse.`, clothes: "a penitent nuns habit"}); } diff --git a/src/events/intro/introSummary.tw b/src/events/intro/introSummary.tw index 74035467f331bf651991d2234fa5a3690e57cf82..87171c041b5149451318d36c7690400bd3255258 100644 --- a/src/events/intro/introSummary.tw +++ b/src/events/intro/introSummary.tw @@ -47,7 +47,7 @@ __''World Settings''__ <br>Economic forecast: <<if $difficultySwitch == 0>> ''no change.'' //Vanilla// - <br>[[harder|Intro Summary][$difficultySwitch = 1, $econRate = 1]] + <br>[[Harder|Intro Summary][$difficultySwitch = 1, $econRate = 1]] <<elseif $econRate == 1>> ''slow decline''. //Easy// <br>[[Harder|Intro Summary][$econRate = 2]] | [[Easier|Intro Summary][$difficultySwitch = 0]] diff --git a/src/facilities/farmyard/farmyardAnimals.tw b/src/facilities/farmyard/farmyardAnimals.tw index 4a75ccffd78790022b902f9120fa3afd192a04b3..fddcc3b063fce4fd0abfe00b0f569089fa82bed6 100644 --- a/src/facilities/farmyard/farmyardAnimals.tw +++ b/src/facilities/farmyard/farmyardAnimals.tw @@ -143,4 +143,4 @@ <</if>> <br> <</if>> -<</if>> +<</if>> \ No newline at end of file diff --git a/src/facilities/nursery/nursery.tw b/src/facilities/nursery/nursery.tw index 339ced17038527204813591c4a40122e272b8275..5a699726559c454f2bb6c507964072ddebfc17d4 100644 --- a/src/facilities/nursery/nursery.tw +++ b/src/facilities/nursery/nursery.tw @@ -14,55 +14,55 @@ $nurseryNameCaps <<switch $nurseryDecoration>> <<case "Roman Revivalist">> - is run with the Roman dream in mind, with wide open windows exposing the babies to the elements. The sleek marble halls bring a sense of serenity and duty as wet nurses wander the halls. + is run with the Roman dream in mind, with wide open windows exposing the babies to the elements. The sleek marble halls bring a sense of serenity and duty as wet nurses wander the halls. <<case "Aztec Revivalist">> - is lined head to toe in illustrious Aztec gold. Tiny but notable subscripts lay in plaques to honor the mothers who died giving birth, the children of said mothers, alive or dead, are tirelessly watched over to tend to their every need. + is lined head to toe in illustrious Aztec gold. Tiny but notable subscripts lay in plaques to honor the mothers who died giving birth, the children of said mothers, alive or dead, are tirelessly watched over to tend to their every need. <<case "Egyptian Revivalist">> - is decorated by sleek, sandstone tablets, golden statues, and even grander Egyptian wall sculptures, many of them depicting the conception, birth, and raising of a child. Each babe is reverently wrapped in linen covers as they drift to sleep to the stories of mighty pharaohs and prosperous palaces. + is decorated by sleek, sandstone tablets, golden statues, and even grander Egyptian wall sculptures, many of them depicting the conception, birth, and raising of a child. Each babe is reverently wrapped in linen covers as they drift to sleep to the stories of mighty pharaohs and prosperous palaces. <<case "Edo Revivalist">> - is minimalistic in nature, but the errant paintings of cherry blossoms and vibrant Japanese maples give a certain peaceful air as the caretakers do their duties. + is minimalistic in nature, but the errant paintings of cherry blossoms and vibrant Japanese maples give a certain peaceful air as the caretakers do their duties. <<case "Arabian Revivalist">> - is decorated wall to wall with splendorous carvings and religious Hamsas meant to protect the fostering children. + is decorated wall to wall with splendorous carvings and religious Hamsas meant to protect the fostering children. <<case "Chinese Revivalist">> - is ripe with Chinese spirit. Depictions of colorful dragons and oriental designs grace the halls, rooms, and cribs of the babies who reside inside. + is ripe with Chinese spirit. Depictions of colorful dragons and oriental designs grace the halls, rooms, and cribs of the babies who reside inside. <<case "Chattel Religionist">> - is decorated with childish religious cartoons and artistic tapestries of slaves bowing in submission, their themes always subsiding varying degrees of sexual worship. The caretakers that wander the halls obediently wear their habits, and never waste a moment to tenderly lull the children to sleep with stories of their prophet. + is decorated with childish religious cartoons and artistic tapestries of slaves bowing in submission, their themes always subsiding varying degrees of sexual worship. The caretakers that wander the halls obediently wear their habits, and never waste a moment to tenderly lull the children to sleep with stories of their prophet. <<case "Degradationist">> - is bare and sullen. The cries of the neglected children destined for slavery trying to find comfort in their burlap coverings echo the halls, while those that await freedom are raised among luxury and are taught to look down on their less fortunate peers. + is bare and sullen. The cries of the neglected children destined for slavery trying to find comfort in their burlap coverings echo the halls, while those that await freedom are raised among luxury and are taught to look down on their less fortunate peers. <<case "Repopulation Focus">> - is designed to be very open and public; a showing testament to your arcology's repopulation efforts. For those old enough to support them, they are strapped with big, but body warming, empathy bellies as to remind them of their destiny. + is designed to be very open and public; a showing testament to your arcology's repopulation efforts. For those old enough to support them, they are strapped with big, but body warming, empathy bellies as to remind them of their destiny. <<case "Eugenics">> - is of utmost quality without a single pleasantry missing -- if the parents are of the elite blood of course. While there are rare stragglers of unworthy genes, the child populace overall is pampered with warm rooms and plentiful small toys. + is of utmost quality without a single pleasantry missing -- if the parents are of the elite blood of course. While there are rare stragglers of unworthy genes, the child populace overall is pampered with warm rooms and plentiful small toys. <<case "Asset Expansionist">> - is not so much decorated as it is intelligently staffed. Every passerby, slave or not, burns the image of their jiggling asses and huge, wobbling tits into the minds of the children. + is not so much decorated as it is intelligently staffed. Every passerby, slave or not, burns the image of their jiggling asses and huge, wobbling tits into the minds of the children. <<case "Transformation Fetishist">> - is kept simple and clean. From their toys down to the nursemaids, the babies are exposed to the wonders of body transformation whenever possible. + is kept simple and clean. From their toys down to the nursemaids, the babies are exposed to the wonders of body transformation whenever possible. <<case "Gender Radicalist">> - is decorated by cheery cartoon depictions of slaves of many shapes, sizes, and genitals, all of them undeniably feminine. The elated smiles and yips of the nurses getting reamed constantly instill the appreciation of nice, pliable buttholes. + is decorated by cheery cartoon depictions of slaves of many shapes, sizes, and genitals, all of them undeniably feminine. The elated smiles and yips of the nurses getting reamed constantly instill the appreciation of nice, pliable buttholes. <<case "Gender Fundamentalist">> - is simply designed and painted with soft feminine colors. The staff heavily encourage the children to play dress up and house, subtly sculpting their minds to proper gender norms and properly put them in line if they try to do otherwise. + is simply designed and painted with soft feminine colors. The staff heavily encourage the children to play dress up and house, subtly sculpting their minds to proper gender norms and properly put them in line if they try to do otherwise. <<case "Physical Idealist">> - is furnished with kiddy health books and posters; their caretakers making painstakingly sure that the importance is drilled into their heads at a young age. Their food is often littered with vitamins and supplements to keep the children growing strong. + is furnished with kiddy health books and posters; their caretakers making painstakingly sure that the importance is drilled into their heads at a young age. Their food is often littered with vitamins and supplements to keep the children growing strong. <<case "Supremacist">> - is designed and structured to give those of $arcologies[0].FSSupremacistRace ethnicity the limelight of the nursery, while the others stay sectioned off and neglected to the world. + is designed and structured to give those of $arcologies[0].FSSupremacistRace ethnicity the limelight of the nursery, while the others stay sectioned off and neglected to the world. <<case "Subjugationist">> - is made to foster and raise the young children of $arcologies[0].FSSubjugationistRace ethnicity. They are reminded of their place with every failure and are encouraged to submissively follow their stereotypes at a young ripe age. + is made to foster and raise the young children of $arcologies[0].FSSubjugationistRace ethnicity. They are reminded of their place with every failure and are encouraged to submissively follow their stereotypes at a young ripe age. <<case "Paternalist">> - is well-stocked and by Paternalistic customs, constantly swaddle the children with love and attention. With the warm colors and sound of child laughter, to the untrained eye, the children actually seem free. + is well-stocked and by Paternalistic customs, constantly swaddle the children with love and attention. With the warm colors and sound of child laughter, to the untrained eye, the children actually seem free. <<case "Pastoralist">> - is decorated to make the children grow up thinking that a life focused on breast milk, cum, and other human secretions are part of the norm. The milky tits swaying above their cow-patterned cribs certainly help with that. + is decorated to make the children grow up thinking that a life focused on breast milk, cum, and other human secretions are part of the norm. The milky tits swaying above their cow-patterned cribs certainly help with that. <<case "Maturity Preferentialist">> - decorations remind the kids to respect those curvy and mature. The older nurserymaids are always flattered whenever the children try to act like adults and take care of the younger toddlers for them. + decorations remind the kids to respect those curvy and mature. The older nurserymaids are always flattered whenever the children try to act like adults and take care of the younger toddlers for them. <<case "Youth Preferentialist">> - is making young children the center of attention, their rooms supplied with plenty of toys, blankets, and surrogate mothers at their beck and call. + is making young children the center of attention, their rooms supplied with plenty of toys, blankets, and surrogate mothers at their beck and call. <<case "Body Purist">> - is decorated to be very clean cut and sterilized with perfect corners and curves; symbolic of the human figure. Nurserymaids are encouraged to show off their natural assets to show the children what the appropriate body should be. + is decorated to be very clean cut and sterilized with perfect corners and curves; symbolic of the human figure. Nurserymaids are encouraged to show off their natural assets to show the children what the appropriate body should be. <<case "Slimness Enthusiast">> - constantly encourages the kids to try and keep their slim and cute physiques. They are given perfectly metered meals to make this possible. + constantly encourages the kids to try and keep their slim and cute physiques. They are given perfectly metered meals to make this possible. <<case "Hedonistic">> - would make any toddler drool in amazement. Meals and naps every other hour, cribs stalked with toys and blankets, and plush slaves carry them to and fro without preamble. A delicious layer of baby fat is the ideal figure of a baby, and they couldn't be happier. + would make any toddler drool in amazement. Meals and naps every other hour, cribs stalked with toys and blankets, and plush slaves carry them to and fro without preamble. A delicious layer of baby fat is the ideal figure of a baby, and they couldn't be happier. <<default>> - is as comfortable and child-friendly as it needs to be. They have everything they need to grow into a proper slave. + is as comfortable and child-friendly as it needs to be. They have everything they need to grow into a proper slave. <</switch>> <<if $nurserySlaves > 2>> @@ -227,7 +227,7 @@ Reserve an eligible mother-to-be's child to be placed in a room upon birth. Of $ <<else>> All $slaves[_u].reservedChildrenNursery of her children will be placed in $nurseryName. <</if>> - <<if ($slaves[_u].reservedChildren + $slaves[_u].reservedChildrenNursery < $slaves[_u].pregType) && ($reservedChildrenNursery < $freeCribs)>> + <<if ($slaves[_u].reservedChildren + $slaves[_u].reservedChildrenNursery < $slaves[_u].pregType) && ($reservedChildrenNursery < $freeCribs)>> <br> <<print "[[Keep another child|Nursery][$slaves[" + _u + "].reservedChildrenNursery += 1, $reservedChildrenNursery += 1]]">> <<if $slaves[_u].reservedChildrenNursery > 0>> diff --git a/src/init/storyInit.tw b/src/init/storyInit.tw index bf4afe9557e08c2ac86d9d921f1fa62b5b4aa6a7..6aeb2ca5706bb66f6a32e6a9f741f58a641d2bac 100644 --- a/src/init/storyInit.tw +++ b/src/init/storyInit.tw @@ -162,80 +162,9 @@ You should have received a copy of the GNU General Public License along with thi <<set $slaves[_i].vaginalCount = 0>> <</for>> <<set $slavesOriginal = []>> /* not used by pregmod */ - <<if ndef $PC.intelligence>> - <<set $PC.intelligence = 100>> - <</if>> - <<if ndef $PC.face>> - <<set $PC.face = 100>> - <</if>> - <<if ndef $PC.actualAge>> - <<if $PC.age == 1>> - <<set $PC.actualAge = 20>> - <<elseif $PC.age == 2>> - <<set $PC.actualAge = 35>> - <<elseif $PC.age == 3>> - <<set $PC.actualAge = 50>> - <</if>> - <</if>> - <<if ndef $PC.visualAge>> - <<set $PC.visualAge = $PC.actualAge>> - <</if>> - <<if ndef $PC.physicalAge>> - <<set $PC.physicalAge = $PC.actualAge>> - <</if>> - <<if ndef $PC.birthWeek>> - <<set $PC.birthWeek = 0>> - <</if>> <<if ndef $PC.markings>> <<set $PC.markings = "none">> <</if>> - <<if ndef $PC.mpreg>> /* for <<KnockMeUp $PC>> */ - <<set $PC.mpreg = 0>> - <</if>> - <<if ndef $PC.slavesKnockedUp>> - <<set $PC.slavesKnockedUp = 0>> - <</if>> - <<if ndef $PC.slavesFathered>> - <<set $PC.slavesFathered = 0>> - <</if>> - <<if ndef $PC.pronoun>> - <<if $PC.title == 1>> - <<set $PC.pronoun = "he", $PC.possessive = "his", $PC.object = "him">> - <<else>> - <<set $PC.pronoun = "she", $PC.possessive = "her", $PC.object = "her">> - <</if>> - <</if>> - <<if ndef $PC.pregKnown>> - <<if $PC.preg > 0>> - <<set $PC.pregKnown = 1>> - <<else>> - <<set $PC.pregKnown = 0>> - <</if>> - <</if>> - <<if ndef $PC.pregType>> - <<if $PC.preg > 0>> - <<set $PC.pregType = 1>> - <<else>> - <<set $PC.pregType = 0>> - <</if>> - <</if>> - <<if ndef $PC.belly>> - <<if $PC.preg > 0>> - <<set $PC.belly = getPregBellySize($PC)>> - <<else>> - <<set $PC.belly = 0>> - <</if>> - <</if>> - <<if ndef $PC.degeneracy>> - <<set $PC.degeneracy = 0>> - <</if>> - <<if ndef $PC.pregWeek>> - <<if $PC.preg > 0>> - <<set $PC.pregWeek = $PC.preg>> - <<else>> - <<set $PC.pregWeek = 0>> - <</if>> - <</if>> <<set $PC.reservedChildren = 0>> <<set $PC.reservedChildrenNursery = 0>> <<else>> @@ -243,7 +172,7 @@ You should have received a copy of the GNU General Public License along with thi <<set $slavesOriginal = []>> /* not used by pregmod */ <<set $genePool = []>> <<set $slaveIndices = slaves2indices()>> - <<set $missingTable = {}>> + <<set $missingTable = {}>> <<set $showMissingSlaves = false>> <<set $showMissingSlavesSD = false>> <</if>> diff --git a/src/js/datatypeCleanupJS.tw b/src/js/datatypeCleanupJS.tw index 96df97919002d1e265b1c349ef6ff142760ff0f0..67819770573fa1d87515a53ac5360700856697f4 100644 --- a/src/js/datatypeCleanupJS.tw +++ b/src/js/datatypeCleanupJS.tw @@ -597,7 +597,91 @@ window.slaveMiscellaneousDatatypeCleanup = function slaveMiscellaneousDatatypeCl } }; -window.ArcologyDatatypeCleanup = function ArcologyDatatypeCleanup () { +window.PCDatatypeCleanup = function PCDatatypeCleanup() { + const V = State.variables; + const PC = V.PC; + + if (PC.title !== 0) { + PC.title = Math.clamp(+PC.title, 0, 1) || 1; + } + if (PC.dick !== 0) { + PC.dick = Math.clamp(+PC.dick, 0, 1) || 1; + } + PC.vagina = Math.clamp(+PC.vagina, 0, 1) || 0; + PC.belly = Math.max(+PC.belly, 0) || 0; + PC.pregMood = Math.clamp(+PC.pregMood, 0, 2) || 0; + PC.labor = Math.clamp(+PC.labor, 0, 1) || 0; + PC.births = Math.max(+PC.births, 0) || 0; + PC.boobs = Math.clamp(+PC.boobs, 0, 1) || 0; + PC.boobsBonus = Math.clamp(+PC.boobsBonus, -3, 3) || 0; + PC.boobsImplant = Math.clamp(+PC.boobsImplant, 0, 1) || 0; + PC.butt = Math.clamp(+PC.butt, 0, 3) || 0; + PC.buttImplant = Math.clamp(+PC.buttImplant, 0, 1) || 0; + PC.balls = Math.clamp(+PC.balls, 0, 3) || 0; + PC.ballsImplant = Math.clamp(+PC.ballsImplant, 0, 4) || 0; + PC.degeneracy = Math.max(+PC.degeneracy, 0) || 0; + PC.birthWeek = Math.clamp(+PC.birthWeek, 0, 51) || 0; + if (PC.sexualEnergy !== 0 ) { + PC.sexualEnergy = +PC.sexualEnergy || 4; + } + PC.refreshmentType = Math.clamp(+PC.refreshmentType, 0, 6) || 0; + PC.trading = Math.clamp(+PC.trading, -100, 100) || 0; + PC.warfare = Math.clamp(+PC.warfare, -100, 100) || 0; + PC.slaving = Math.clamp(+PC.slaving, -100, 100) || 0; + PC.engineering = Math.clamp(+PC.engineering, -100, 100) || 0; + PC.medicine = Math.clamp(+PC.medicine, -100, 100) || 0; + PC.hacking = Math.clamp(+PC.hacking, -100, 100) || 0; + PC.cumTap = Math.max(+PC.cumTap, 0) || 0; + PC.mother = +PC.mother || 0; + PC.father = +PC.father || 0; + PC.birthElite = Math.max(+PC.birthElite, 0) || 0; + PC.birthMaster = Math.max(+PC.birthMaster, 0) || 0; + PC.birthDegenerate = Math.max(+PC.birthDegenerate, 0) || 0; + PC.birthClient = Math.max(+PC.birthClient, 0) || 0; + PC.birthOther = Math.max(+PC.birthOther, 0) || 0; + PC.birthArcOwner = Math.max(+PC.birthArcOwner, 0) || 0; + PC.birthCitizen = Math.max(+PC.birthCitizen, 0) || 0; + PC.birthSelf = Math.max(+PC.birthSelf, 0) || 0; + PC.slavesFathered = Math.max(+PC.slavesFathered, 0) || 0; + PC.slavesKnockedUp = Math.max(+PC.slavesKnockedUp, 0) || 0; + PC.intelligence = 100; + PC.face = 100; + PC.actualAge = Math.clamp(+PC.actualAge, 14, 80) || 35; + PC.physicalAge = Math.clamp(+PC.physicalAge, 14, 80) || PC.actualAge; + PC.visualAge = Math.clamp(+PC.visualAge, 14, 80) || PC.actualAge; + PC.ovaryAge = Math.clamp(+PC.ovaryAge, 14, 80) || PC.physicalAge; + if (V.playerAging !== 0) { + V.playerAging = Math.clamp(+V.playerAging, 0, 2) || 2; + } + PC.newVag = Math.clamp(+PC.newVag, 0, 1) || 0; + PC.reservedChildren = Math.max(+PC.reservedChildren, 0) || 0; + PC.reservedChildrenNursery = Math.max(+PC.reservedChildrenNursery, 0) || 0; + PC.fertDrugs = Math.clamp(+PC.fertDrugs, 0, 1) || 0; + PC.forcedFertDrugs = Math.max(+PC.forcedFertDrugs, 0) || 0; + PC.staminaPills = Math.clamp(+PC.staminaPills, 0, 1) || 0; + PC.storedCum = Math.max(+PC.storedCum, 0) || 0; + PC.mpreg = 0; /* So knockMeUp() may be used with the PC */ + + if (PC.age !== undefined) { + delete PC.age; + } + if (PC.indenture !== undefined) { + delete PC.indenture; + } + if (PC.indentureRestrictions !== undefined) { + delete PC.indentureRestrictions; + } + + /* None of these are in use */ + PC.bellyPreg = PC.belly; + PC.ageImplant = 0; + PC.voiceImplant = 0; + PC.accent = 0; + PC.shoulders = 0; + PC.shouldersImplant = 0; +}; + +window.ArcologyDatatypeCleanup = function ArcologyDatatypeCleanup() { const V = State.variables; V.ACitizens = Math.max(+V.ACitizens, 0) || 0; @@ -656,9 +740,4 @@ window.ArcologyDatatypeCleanup = function ArcologyDatatypeCleanup () { V.TCR.schoolProsperity = Math.clamp(+V.TCR.schoolProsperity, -10, 10) || 0; V.TFS.studentsBought = Math.max(+V.TFS.studentsBought, 0) || 0; V.TFS.schoolProsperity = Math.clamp(+V.TFS.schoolProsperity, -10, 10) || 0; - - /* Will be moved when I get around to creating PCDatatypeCleanup */ - V.PC.actualAge = Math.clamp(+V.PC.actualAge, 14, 80) || 35; - V.PC.physicalAge = Math.clamp(+V.PC.physicalAge, 14, 80) || V.PC.actualAge; - V.PC.visualAge = Math.clamp(+V.PC.visualAge, 14, 80) || V.PC.actualAge; }; diff --git a/src/js/generateNewSlaveJS.tw b/src/js/generateNewSlaveJS.tw index 07af35e96dff092a76df3cb70b81adf008525106..cb98f3fd60a1713914c3b22e37a4afb643f2fab2 100644 --- a/src/js/generateNewSlaveJS.tw +++ b/src/js/generateNewSlaveJS.tw @@ -271,13 +271,13 @@ window.GenerateNewSlave = (function(){ function generateCircumcision() { /* The default rate of 50* is wildly unrepresentative, and there is extreme regional variation. */ /* - What we want is the prevalence among newborns, since this game - happens about 20 years in the future, but we'll use this lacking - something better. - https://pophealthmetrics.biomedcentral.com/articles/10.1186/s12963-016-0073-5 - Right now we mostly just break it down by country. - It would be better to break it down by both country - and race if statistics are available. + What we want is the prevalence among newborns, since this game + happens about 20 years in the future, but we'll use this lacking + something better. + https://pophealthmetrics.biomedcentral.com/articles/10.1186/s12963-016-0073-5 + Right now we mostly just break it down by country. + It would be better to break it down by both country + and race if statistics are available. */ if (V.seeCircumcision == 0) { slave.foreskin = slave.dick + jsRandom(0,1); diff --git a/src/js/slaveGenerationJS.tw b/src/js/slaveGenerationJS.tw index 3c781254088c0d71ff001c1bcbcac7e39fd934d6..b66e8de51d5c7fd471c827297bfde017ced207b8 100644 --- a/src/js/slaveGenerationJS.tw +++ b/src/js/slaveGenerationJS.tw @@ -75,17 +75,25 @@ window.nationalityToAccent = function nationalityToAccent(slave) { switch (slave.nationality) { case "Afghan": - slave.accent = (V.language === "Pashto") ? jsEither([0, 0, 0, 1]) : naturalAccent; + if (V.language === "Pashto") { + slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]); + } else if (V.language === "Dari") { + slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]); + } else if (V.language === "Persian") { + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); + } else { + slave.accent = naturalAccent; + } break; case "Albanian": slave.accent = naturalAccent; break; case "Algerian": - slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "American": if (V.language === "English") { - slave.accent = jsEither([0, 0, 0, 1]); + slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]); } else if (V.language === "Spanish" && slave.race === "latina") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); } else if (V.language === "Chinese" && slave.race === "asian") { @@ -97,16 +105,16 @@ window.nationalityToAccent = function nationalityToAccent(slave) { } break; case "Andorran": - slave.accent = (V.language === "Catalan") ? jsEither([0, 0, 0, 1]) : naturalAccent; + slave.accent = (V.language === "Catalan") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent; break; case "Angolan": - slave.accent = (V.language === "Portuguese") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Portuguese") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Antiguan": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Argentinian": - slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Armenian": if (V.language === "Russian") { @@ -119,7 +127,7 @@ window.nationalityToAccent = function nationalityToAccent(slave) { break; case "Aruban": if (V.language === "Dutch") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "English") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); } else if (V.language === "Portuguese") { @@ -129,16 +137,16 @@ window.nationalityToAccent = function nationalityToAccent(slave) { } break; case "Australian": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Austrian": if (V.language === "German") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "Serbian") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); } else if (V.language === "Slovene") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); - } else if (V.language === "Turkish" && slave.race === "middle eastern") { + } else if (V.language === "Turkish" && slave.race === "indo-aryan") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); } else { slave.accent = naturalAccent; @@ -148,14 +156,14 @@ window.nationalityToAccent = function nationalityToAccent(slave) { slave.accent = naturalAccent; break; case "Bahamian": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Bahraini": - slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Bangladeshi": if (V.language === "Bengali") { - slave.accent = jsEither([0, 0, 0, 1]); + slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]); } else if (V.language === "Hindi") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); } else { @@ -163,16 +171,16 @@ window.nationalityToAccent = function nationalityToAccent(slave) { } break; case "Barbadian": - slave.accent = naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Belarusian": - slave.accent = naturalAccent; + slave.accent = (V.language === "Russian") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Belgian": if (V.language === "Dutch") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "French") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "German") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); } else { @@ -180,35 +188,35 @@ window.nationalityToAccent = function nationalityToAccent(slave) { } break; case "Belizean": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Beninese": - slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Bermudian": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Bhutanese": - slave.accent = (V.language === "Dzongkha") ? jsEither([0, 0, 0, 1]) : naturalAccent; + slave.accent = (V.language === "Dzongkha") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent; break; case "Bissau-Guinean": - slave.accent = (V.language === "Portuguese") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Portuguese") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Bolivian": - slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Bosnian": slave.accent = naturalAccent; break; case "Brazilian": - slave.accent = (V.language === "Portuguese") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Portuguese") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "British": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Bruneian": if (V.language === "Malay") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "English") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); } else { @@ -219,19 +227,19 @@ window.nationalityToAccent = function nationalityToAccent(slave) { slave.accent = naturalAccent; break; case "Burkinabé": - slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Burmese": slave.accent = naturalAccent; break; case "Burundian": - slave.accent = (V.language === "Kirundi") ? jsEither([0, 0, 0, 1]) : naturalAccent; + slave.accent = (V.language === "Kirundi") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent; break; case "Cambodian": if (V.language === "Khmer") { - slave.accent = jsEither([0, 0, 0, 1]); + slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]); } else if (V.language === "Cham") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "French") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); } else { @@ -239,31 +247,31 @@ window.nationalityToAccent = function nationalityToAccent(slave) { } break; case "Cameroonian": - slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Canadian": if (V.language === "English") { - slave.accent = jsEither([0, 0, 0, 1]); + slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]); } else if (V.language === "French") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else { slave.accent = naturalAccent; } break; case "Cape Verdean": - slave.accent = (V.language === "Portuguese") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Portuguese") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Catalan": - slave.accent = (V.language === "Spanish") ? jsEither([0, 0, 0, 1]) : naturalAccent; + slave.accent = (V.language === "Spanish") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent; break; case "Central African": - slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Chadian": - slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Chilean": - slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Chinese": if (V.language === "Tibetan") { @@ -277,7 +285,7 @@ window.nationalityToAccent = function nationalityToAccent(slave) { } break; case "Colombian": - slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Comorian": if (V.language === "Arabic") { @@ -290,38 +298,38 @@ window.nationalityToAccent = function nationalityToAccent(slave) { break; case "Congolese": if (V.language === "Lingala") { - slave.accent = jsEither([0, 0, 0, 1]); + slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]); } else if (V.language === "Kikongo") { - slave.accent = jsEither([0, 0, 0, 1]); + slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]); } else if (V.language === "French") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else { slave.accent = naturalAccent; } break; case "a Cook Islander": if (V.language === "Cook Islands MÄori") { - slave.accent = jsEither([0, 0, 0, 1]); + slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]); } else if (V.language === "English") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else { slave.accent = naturalAccent; } break; case "Costa Rican": - slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Croatian": slave.accent = naturalAccent; break; case "Cuban": - slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Cypriot": if (V.language === "Greek") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "Turkish") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "English") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); } else { @@ -329,28 +337,34 @@ window.nationalityToAccent = function nationalityToAccent(slave) { } break; case "Czech": - slave.accent = naturalAccent; + if (V.language === "Slovak") { + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); + } else if (V.language === "Vietnamese" && slave.race === "asian") { + slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); + } else { + slave.accent = naturalAccent; + } break; case "Danish": slave.accent = naturalAccent; break; case "Djiboutian": - slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Dominican": - slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Dominiquais": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Dutch": slave.accent = naturalAccent; break; case "East Timorese": if (V.language === "Tetum") { - slave.accent = jsEither([0, 0, 0, 1]); + slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]); } else if (V.language === "Portuguese") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "Malay") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); } else { @@ -358,22 +372,22 @@ window.nationalityToAccent = function nationalityToAccent(slave) { } break; case "Ecuadorian": - slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Egyptian": - slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Emirati": - slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Equatoguinean": - slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Eritrean": if (V.language === "Tigrinya") { - slave.accent = jsEither([0, 0, 0, 1]); + slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]); } else if (V.language === "Arabic") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "English") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); } else { @@ -385,7 +399,7 @@ window.nationalityToAccent = function nationalityToAccent(slave) { break; case "Ethiopian": if (V.language === "Amharic") { - slave.accent = jsEither([0, 0, 0, 1]); + slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]); } else if (V.language === "Arabic") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); } else if (V.language === "Tigrinya") { @@ -395,15 +409,15 @@ window.nationalityToAccent = function nationalityToAccent(slave) { } break; case "Fijian": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Filipina": if (V.language === "Filipino") { - slave.accent = jsEither([0, 0, 0, 1]); + slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]); } else if (V.language === "English") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "Tagalog") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "Arabic") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); } else if (V.language === "Spanish") { @@ -413,7 +427,7 @@ window.nationalityToAccent = function nationalityToAccent(slave) { } break; case "Finnish": - slave.accent = (V.language === "Swedish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Swedish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "French": if (V.language === "English") { @@ -431,26 +445,26 @@ window.nationalityToAccent = function nationalityToAccent(slave) { } break; case "French Guianan": - slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "French Polynesian": - slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Gabonese": - slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Gambian": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Georgian": - slave.accent = (V.language === "Abkhaz") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Abkhaz") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "German": if (V.language === "English") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); } else if (V.language === "French") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); - } else if (V.language === "Turkish" && slave.race === "middle eastern") { + } else if (V.language === "Turkish" && slave.race === "indo-aryan") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); } else { slave.accent = naturalAccent; @@ -458,7 +472,7 @@ window.nationalityToAccent = function nationalityToAccent(slave) { break; case "Ghanan": if (V.language === "English") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "Hausa") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); } else if (V.language === "Arabic") { @@ -471,37 +485,37 @@ window.nationalityToAccent = function nationalityToAccent(slave) { slave.accent = naturalAccent; break; case "Greenlandic": - slave.accent = (V.language === "Danish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Danish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Grenadian": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Guamanian": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Guatemalan": - slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Guinean": - slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Guyanese": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Haitian": - slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Honduran": - slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Hungarian": slave.accent = naturalAccent; break; case "I-Kiribati": if (V.language === "Gilbertese") { - slave.accent = jsEither([0, 0, 0, 1]); + slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]); } else if (V.language === "English") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else { slave.accent = naturalAccent; } @@ -517,19 +531,25 @@ window.nationalityToAccent = function nationalityToAccent(slave) { break; case "Indian": if (V.language === "Hindi") { - slave.accent = jsEither([0, 0, 0, 1]); + slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]); } else if (V.language === "English") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else { slave.accent = naturalAccent; } break; case "Indonesian": - slave.accent = (V.language === "Malay") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + if (V.language === "Javanese") { + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); + } else if (V.language === "Malay") { + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); + } else { + slave.accent = naturalAccent; + } break; case "Iranian": if (V.language === "Persian") { - slave.accent = jsEither([0, 0, 0, 1]); + slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]); } else if (V.language === "Arabic") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); } else { @@ -538,7 +558,7 @@ window.nationalityToAccent = function nationalityToAccent(slave) { break; case "Iraqi": if (V.language === "Arabic") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "Kurdish") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); } else { @@ -546,13 +566,13 @@ window.nationalityToAccent = function nationalityToAccent(slave) { } break; case "Irish": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Israeli": if (V.language === "Hebrew") { - slave.accent = jsEither([0, 0, 0, 1]); + slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]); } else if (V.language === "Arabic") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else { slave.accent = naturalAccent; } @@ -561,34 +581,34 @@ window.nationalityToAccent = function nationalityToAccent(slave) { slave.accent = naturalAccent; break; case "Ivorian": - slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Jamaican": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Japanese": slave.accent = naturalAccent; break; case "Jordanian": - slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Kazakh": - slave.accent = (V.language === "Russian") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Russian") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Kenyan": slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 2, 2, 2, 3, 3]) : naturalAccent; break; case "Kittitian": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Korean": slave.accent = (V.language === "Chinese") ? jsEither([0, 1, 2, 2, 2, 3, 3]) : naturalAccent; break; case "Kosovan": if (V.language === "Albanian") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "Serbian") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else { slave.accent = naturalAccent; } @@ -597,16 +617,16 @@ window.nationalityToAccent = function nationalityToAccent(slave) { slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 2, 2, 2, 3, 3]) : naturalAccent; break; case "Kuwaiti": - slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Kyrgyz": - slave.accent = (V.language === "Russian") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Russian") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Laotian": if (V.language === "Lao") { - slave.accent = jsEither([0, 0, 0, 1]); + slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]); } else if (V.language === "Khmu") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "French") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); } else { @@ -617,25 +637,25 @@ window.nationalityToAccent = function nationalityToAccent(slave) { slave.accent = naturalAccent; break; case "Lebanese": - slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Liberian": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Libyan": - slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "a Liechtensteiner": - slave.accent = (V.language === "German") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "German") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Lithuanian": slave.accent = naturalAccent; break; case "Luxembourgian": if (V.language === "German") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "French") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else { slave.accent = naturalAccent; } @@ -650,7 +670,7 @@ window.nationalityToAccent = function nationalityToAccent(slave) { slave.accent = naturalAccent; break; case "Malaysian": - slave.accent = (V.language === "Malay") ? jsEither([0, 0, 0, 1]) : naturalAccent; + slave.accent = (V.language === "Malay") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent; break; case "Maldivian": slave.accent = naturalAccent; @@ -660,61 +680,67 @@ window.nationalityToAccent = function nationalityToAccent(slave) { break; case "Maltese": if (V.language === "English") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "Italian") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else { slave.accent = naturalAccent; } break; case "Marshallese": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Mauritanian": - slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Mauritian": if (V.language === "English") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "French") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else { slave.accent = naturalAccent; } break; case "Mexican": - slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + if (V.language === "Spanish") { + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); + } else if (V.language === "Nahuatl" && slave.race === "amerindian") { + slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); + } else { + slave.accent = naturalAccent; + } break; case "Micronesian": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Moldovan": - slave.accent = naturalAccent; + slave.accent = (V.language === "Russian") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Monégasque": - slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Mongolian": slave.accent = naturalAccent; break; case "Montenegrin": - slave.accent = naturalAccent; + slave.accent = (V.language === "Serbian") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Moroccan": slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 2, 2, 2, 3, 3]) : naturalAccent; break; case "Mosotho": - slave.accent = naturalAccent; + slave.accent = (V.language === "Sesotho") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent; break; case "Motswana": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Mozambican": - slave.accent = (V.language === "Portuguese") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Portuguese") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Namibian": if (V.language === "English") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "Afrikaans") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); } else { @@ -722,34 +748,52 @@ window.nationalityToAccent = function nationalityToAccent(slave) { } break; case "Nauruan": - slave.accent = naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Nepalese": - slave.accent = naturalAccent; + if (V.language === "Nepali") { + slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]); + } else if (V.language === "Maithili") { + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); + } else if (V.language === "Bhojpuri") { + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); + } else if (V.language === "English") { + slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); + } else { + slave.accent = naturalAccent; + } break; case "New Caledonian": - slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + if (V.language === "French") { + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); + } else if (V.language === "Nengone") { + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); + } else if (V.language === "Drehu") { + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); + } else { + slave.accent = naturalAccent; + } break; case "a New Zealander": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Ni-Vanuatu": if (V.language === "French") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "English") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else { slave.accent = naturalAccent; } break; case "Nicaraguan": - slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Nigerian": if (V.language === "English") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "Hausa") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "Arabic") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); } else { @@ -758,9 +802,9 @@ window.nationalityToAccent = function nationalityToAccent(slave) { break; case "Nigerien": if (V.language === "French") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "Hausa") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "Arabic") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); } else { @@ -768,24 +812,24 @@ window.nationalityToAccent = function nationalityToAccent(slave) { } break; case "Niuean": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Norwegian": slave.accent = naturalAccent; break; case "Omani": - slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Pakistani": slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 2, 2, 2, 3, 3]) : naturalAccent; break; case "Palauan": if (V.language === "English") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "Sonsorolese") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "Tobian") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "Japanese") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); } else { @@ -793,19 +837,19 @@ window.nationalityToAccent = function nationalityToAccent(slave) { } break; case "Palestinian": - slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Panamanian": - slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Papua New Guinean": slave.accent = naturalAccent; break; case "Paraguayan": - slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Peruvian": - slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Polish": slave.accent = naturalAccent; @@ -815,7 +859,7 @@ window.nationalityToAccent = function nationalityToAccent(slave) { break; case "Puerto Rican": if (V.language === "Spanish") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "English") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); } else { @@ -823,7 +867,7 @@ window.nationalityToAccent = function nationalityToAccent(slave) { } break; case "Qatari": - slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Romanian": slave.accent = naturalAccent; @@ -832,41 +876,41 @@ window.nationalityToAccent = function nationalityToAccent(slave) { slave.accent = naturalAccent; break; case "Rwandan": - slave.accent = (V.language === "Kinyarwanda") ? jsEither([0, 0, 0, 1]) : naturalAccent; + slave.accent = (V.language === "Kinyarwanda") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent; break; case "Sahrawi": - slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Saint Lucian": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Salvadoran": - slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Sammarinese": - slave.accent = (V.language === "Italian") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Italian") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Samoan": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "São Toméan": - slave.accent = (V.language === "Portuguese") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Portuguese") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Saudi": - slave.accent = (V.language === "Arabic") ? jsEither([0, 0, 0, 1]) : naturalAccent; + slave.accent = (V.language === "Arabic") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent; break; case "Scottish": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Senegalese": - slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Serbian": slave.accent = naturalAccent; break; case "Seychellois": if (V.language === "French") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "English") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); } else { @@ -874,53 +918,53 @@ window.nationalityToAccent = function nationalityToAccent(slave) { } break; case "Sierra Leonean": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Singaporean": if (V.language === "English") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "Chinese") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "Malay") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "Tamil") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else { slave.accent = naturalAccent; } break; case "Slovak": - slave.accent = naturalAccent; + slave.accent = (V.language === "Czech") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Slovene": slave.accent = naturalAccent; break; case "a Solomon Islander": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Somali": - slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "South African": if (V.language === "English") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "Afrikaans") { - slave.accent = jsEither([0, 0, 0, 1]); + slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]); } else { slave.accent = naturalAccent; } break; case "South Sudanese": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Spanish": slave.accent = (V.language === "Catalan") ? jsEither([0, 1, 2, 2, 2, 3, 3]) : naturalAccent; break; case "Sri Lankan": if (V.language === "Sinhalese") { - slave.accent = jsEither([0, 0, 0, 1]); + slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]); } else if (V.language === "Tamil") { - slave.accent = jsEither([0, 0, 0, 1]); + slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]); } else if (V.language === "English") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); } else { @@ -931,10 +975,20 @@ window.nationalityToAccent = function nationalityToAccent(slave) { slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 2, 2, 2, 3, 3]) : naturalAccent; break; case "Surinamese": - slave.accent = (V.language === "Dutch") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Dutch") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Swazi": - slave.accent = naturalAccent; + if (V.language === "English") { + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); + } else if (V.language === "Afrikaans") { + slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); + } else if (V.language === "Tsonga") { + slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); + } else if (V.language === "Zulu") { + slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); + } else { + slave.accent = naturalAccent; + } break; case "Swedish": if (V.language === "English") { @@ -951,9 +1005,9 @@ window.nationalityToAccent = function nationalityToAccent(slave) { break; case "Swiss": if (V.language === "German") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "French") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "Italian") { slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); } else { @@ -961,16 +1015,16 @@ window.nationalityToAccent = function nationalityToAccent(slave) { } break; case "Syrian": - slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Taiwanese": - slave.accent = (V.language === "Chinese") ? jsEither([0, 0, 0, 1]) : naturalAccent; + slave.accent = (V.language === "Chinese") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent; break; case "Tajik": slave.accent = (V.language === "Russian") ? jsEither([0, 1, 2, 2, 2, 3, 3]) : naturalAccent; break; case "Tanzanian": - slave.accent = (V.language === "Swahili") ? jsEither([0, 0, 0, 1]) : naturalAccent; + slave.accent = (V.language === "Swahili") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent; break; case "Thai": if (V.language === "Chinese") { @@ -984,92 +1038,118 @@ window.nationalityToAccent = function nationalityToAccent(slave) { } break; case "Tibetan": - slave.accent = (V.language === "Chinese") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Chinese") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Togolese": - slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Tongan": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Trinidadian": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Tunisian": - slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Turkish": - slave.accent = naturalAccent; + if (V.language === "Arabic") { + slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); + } else if (V.language === "Kurdish") { + slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); + } else if (V.language === "Zaza") { + slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); + } else { + slave.accent = naturalAccent; + } break; case "Turkmen": slave.accent = (V.language === "Russian") ? jsEither([0, 1, 2, 2, 2, 3, 3]) : naturalAccent; break; case "Tuvaluan": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Ugandan": - slave.accent = (V.language === "Swahili") ? jsEither([0, 0, 0, 1]) : naturalAccent; + slave.accent = (V.language === "Swahili") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent; break; case "Ukrainian": slave.accent = (V.language === "Russian") ? jsEither([0, 1, 2, 2, 2, 3, 3]) : naturalAccent; break; case "Uruguayan": - slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Uzbek": slave.accent = (V.language === "Russian") ? jsEither([0, 1, 2, 2, 2, 3, 3]) : naturalAccent; break; case "Vatican": - slave.accent = (V.language === "Italian") ? jsEither([0, 0, 0, 1]) : naturalAccent; + if (V.language === "Italian") { + slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]); + } else if (V.language === "Latin") { + slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]); + } else if (V.language === "French") { + slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); + } else if (V.language === "German") { + slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); + } else { + slave.accent = naturalAccent; + } break; case "Venezuelan": - slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Vietnamese": - slave.accent = (V.language === "Chinese") ? jsEither([0, 1, 2, 2, 2, 3, 3]) : naturalAccent; + if (V.language === "Chinese") { + slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); + } else if (V.language === "English") { + slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); + } else if (V.language === "French") { + slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]); + } else { + slave.accent = naturalAccent; + } break; case "Vincentian": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Yemeni": - slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Zairian": if (V.language === "Lingala") { - slave.accent = jsEither([0, 0, 0, 1]); + slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]); } else if (V.language === "Kikongo") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "Swahili") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else if (V.language === "French") { - slave.accent = jsEither([0, 1, 1, 1, 2]); + slave.accent = jsEither([0, 1, 1, 1, 1, 2]); } else { slave.accent = naturalAccent; } break; case "Zambian": - slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Zimbabwean": - slave.accent = (V.language === "English" && slave.race === "white") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent; + slave.accent = (V.language === "English" && slave.race === "white") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent; break; case "Ancient Chinese Revivalist": - slave.accent = (V.language === "Chinese") ? jsEither([0, 0, 0, 1]) : naturalAccent; + slave.accent = (V.language === "Chinese") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent; break; case "Ancient Egyptian Revivalist": - slave.accent = (V.language === "Ancient Egyptian") ? jsEither([0, 0, 0, 1]) : naturalAccent; + slave.accent = (V.language === "Ancient Egyptian") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent; break; case "Arabian Revivalist": - slave.accent = (V.language === "Arabic") ? jsEither([0, 0, 0, 1]) : naturalAccent; + slave.accent = (V.language === "Arabic") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent; break; case "Aztec Revivalist": - slave.accent = (V.language === "Nahuatl") ? jsEither([0, 0, 0, 1]) : naturalAccent; + slave.accent = (V.language === "Nahuatl") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent; break; case "Edo Revivalist": - slave.accent = (V.language === "Japanese") ? jsEither([0, 0, 0, 1]) : naturalAccent; + slave.accent = (V.language === "Japanese") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent; break; case "Roman Revivalist": - slave.accent = (V.language === "Latin") ? jsEither([0, 0, 0, 1]) : naturalAccent; + slave.accent = (V.language === "Latin") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent; break; default: slave.accent = naturalAccent; @@ -1077,7 +1157,7 @@ window.nationalityToAccent = function nationalityToAccent(slave) { } if (slave.nationality === V.language) { - slave.accent = jsEither([0, 0, 0, 0, 0, 0, 0, 0, 1]); + slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]); } }; @@ -1633,4 +1713,4 @@ window.generatePronouns = function generatePronouns(slave) { slave.objectReflexive = "herself"; slave.noun = "girl"; } -}; +}; \ No newline at end of file diff --git a/src/js/slaveSummaryWidgets.tw b/src/js/slaveSummaryWidgets.tw index 271f157a5811c69bfbba69941df48c1a4916847d..dc26bcf5c594e445e9704ae33a90b471152f2e4a 100644 --- a/src/js/slaveSummaryWidgets.tw +++ b/src/js/slaveSummaryWidgets.tw @@ -2220,9 +2220,9 @@ window.SlaveSummaryUncached = (function(){ } r += " "; /* - ** No NCS, then do the standard, However because of the wrinkes of Incubators, as long as visual age is greater - ** than or equal to physical age, we do the old physical body/Looks for fresh out of the can NCS slaves. - */ + ** No NCS, then do the standard, However because of the wrinkes of Incubators, as long as visual age is greater + ** than or equal to physical age, we do the old physical body/Looks for fresh out of the can NCS slaves. + */ if (((slave.geneMods.NCS === 0) || (slave.visualAge >= slave.physicalAge))) { if (slave.actualAge !== slave.physicalAge) { r += `${slave.physicalAge} year old body. `; @@ -2232,14 +2232,14 @@ window.SlaveSummaryUncached = (function(){ } } else { /* - ** Now the rub. The use of physical Age for the year old body above, basically conflicts with the changes - ** that NCS introduces, so here to *distinguish* the changes, we use visual age with the 'year old body' - ** and appears, for example: Slave release from incubator at age 10, Her summary would show, 'Age 0. 10 - ** year old body.' But if she's given NCS a few weeks after release, while she's still before her first - ** birthday, it'll appear the same. But once her birthday fires, if we ran with the above code it would - ** say: 'Age 1. 11 year old body.' -- this conflicts with the way NCS works though, because she hasn't - ** visually aged, so our change here makes it say 'Age 1. Appears to have a 10 year old body.' - */ + ** Now the rub. The use of physical Age for the year old body above, basically conflicts with the changes + ** that NCS introduces, so here to *distinguish* the changes, we use visual age with the 'year old body' + ** and appears, for example: Slave release from incubator at age 10, Her summary would show, 'Age 0. 10 + ** year old body.' But if she's given NCS a few weeks after release, while she's still before her first + ** birthday, it'll appear the same. But once her birthday fires, if we ran with the above code it would + ** say: 'Age 1. 11 year old body.' -- this conflicts with the way NCS works though, because she hasn't + ** visually aged, so our change here makes it say 'Age 1. Appears to have a 10 year old body.' + */ r += `Appears to have a ${slave.visualAge} year old body. `; } if (slave.geneMods.NCS === 1) { diff --git a/src/js/vignettes.tw b/src/js/vignettes.tw index cf8ce1940d560158ace4861ce5821dcfa45112ee..1bba04613b188a0f30edb56d8ee963733813c87d 100644 --- a/src/js/vignettes.tw +++ b/src/js/vignettes.tw @@ -369,7 +369,7 @@ window.GetVignette = function GetVignette(slave) { break; case "devout": vignettes.push({ - text: `a customer catches ${him} praying to ${himself} as they inserts themselves into ${him}, turning them off,`, + text: `a customer catches ${him} praying to ${himself} as they inserted themselves into ${him}, turning them off,`, type: "cash", effect: -1, }); @@ -1945,7 +1945,7 @@ window.GetVignette = function GetVignette(slave) { break; case "devout": vignettes.push({ - text: `a citizen catches ${him} praying to ${himself} as they inserts themsleves into ${him}, turning them off,`, + text: `a citizen catches ${him} praying to ${himself} as they inserted themsleves into ${him}, turning them off,`, type: "rep", effect: -1, }); @@ -3321,7 +3321,7 @@ window.GetVignette = function GetVignette(slave) { type: "rep", effect: 0, }); - } else if (slave.assignment === "rest" || slave.assignment === "rest in the spa" || slave.assignment === "be the Attendant") { + } else if (slave.assignment === "rest" || slave.assignment === "rest in the spa") { switch (slave.behavioralFlaw) { case "anorexic": vignettes.push({ @@ -3329,7 +3329,42 @@ window.GetVignette = function GetVignette(slave) { type: "health", effect: -1, }); - break; + break; + case "devout": + vignettes.push({ + text: `${he} spent nearly all of ${his} free time praying,`, + type: "cash", + effect: 0, + }); + break; + } + switch (slave.behavioralQuirk) { + case "fitness": + vignettes.push({ + text: `${he} spent a great deal of time working out,`, + type: "health", + effect: 1, + }); + vignettes.push({ + text: `${he} exercised to the point of physical exhaustion,`, + type: "health", + effect: -1, + }); + break; + case "insecure": + vignettes.push({ + text: `${he} relaxed by doing whatever other slaves were doing,`, + type: "cash", + effect: 0, + }); + break; + } + if (slave.fetish === "mindbroken") { + vignettes.push({ + text: `${he} spent ${his} time watching paint dry. No one bothered telling ${him} the wall wasn't newly painted,`, + type: "cash", + effect: 0, + }); } if (slave.devotion > 95) { vignettes.push({ diff --git a/src/player/actions/fondleBoobs.tw b/src/player/actions/fondleBoobs.tw index 6ce6c47d94f0e997f1749095220a8be33c31bd95..a8f6dc6d70c79a8afd64de665844ed9b16d2032c 100644 --- a/src/player/actions/fondleBoobs.tw +++ b/src/player/actions/fondleBoobs.tw @@ -81,7 +81,7 @@ You call $him over so you can fondle $his playing with $his nipples between your fingers and thumbs, <</if>> <</if>> - teasing them and pulling them gently towards you, Moving your head close to $his breasts, you nuzzle on a nipple with your lips and even lick it delicately with your tongue. + teasing them and pulling them gently towards you. Moving your head close to $his breasts, you nuzzle on a nipple with your lips and even lick it delicately with your tongue. <<if $activeSlave.nipples != "fuckable">> Then you alternate, gently nibbling with your teeth on the other nipple. You squeeze the tips of $his<<if ($activeSlave.lactation > 0)>> milky<</if>> nipples with your thumbs and fingers and tweak them in your fingertips, then you dab $his nipples with your thumbs, flicking them in different directions. <<else>> @@ -93,7 +93,7 @@ You call $him over so you can fondle $his <<if ($activeSlave.boobs >= 20000)>> $his colossal tits, before sinking your body into their immense softness, <<elseif ($activeSlave.boobs >= 10000)>> - $his massive tits, before sinking into your arms around their soft mass, + $his massive tits, before sinking your arms into their soft mass, <<elseif ($activeSlave.boobs >= 5000)>> $his monster tits, bouncing their weighty mass in your hands, <<elseif ($activeSlave.boobs > 1000)>> @@ -120,7 +120,7 @@ You call $him over so you can fondle $his playing with $his hard, erect nipples between your fingers and thumbs, <</if>> <</if>> - teasing them and pulling them gently towards you, Moving your head close to $his breasts, you nuzzle on a nipple with your lips and even lick it delicately with your tongue. + teasing them and pulling them gently towards you. Moving your head close to $his breasts, you nuzzle on a nipple with your lips and even lick it delicately with your tongue. <<if $activeSlave.nipples != "fuckable">> Then you alternate, gently nibbling with your teeth on the other nipple. You squeeze the tips of $his<<if ($activeSlave.lactation > 0)>> milky<</if>> nipples with your thumbs and fingers and tweak them in your fingertips, then you dab $his nipples with your thumbs, flicking them in different directions. $He moans at your playing with $his breasts, $He rubs $himself while you do, getting intensely aroused at the expert way you move around $his tits and nipples. You continue, rolling $his $activeSlave.nipples nipples between your fingers and thumbs while $he gets increasingly frenzied at the continued stimulation. When it seems like $he's close, you give them a hard pull, sending $him gasping over the edge of ecstasy. <<else>> @@ -164,7 +164,7 @@ You call $him over so you can fondle $his <<if ($activeSlave.boobs >= 20000)>> colossal tits, before sinking your body into their immense softness, <<elseif ($activeSlave.boobs >= 10000)>> - massive tits, before sinking your arms around their soft mass, + massive tits, before sinking your arms into their soft mass, <<elseif ($activeSlave.boobs >= 5000)>> monster tits, bouncing their weighty mass in your hands, <<elseif ($activeSlave.boobs > 1000)>> @@ -191,7 +191,7 @@ You call $him over so you can fondle $his playing with $his hard, erect nipples between your fingers and thumbs, <</if>> <</if>> - teasing them and pulling them gently towards you, Moving your head close to $his breasts, you nuzzle on a nipple with your lips and even lick it delicately with your tongue. + teasing them and pulling them gently towards you. Moving your head close to $his breasts, you nuzzle on a nipple with your lips and even lick it delicately with your tongue. <<if $activeSlave.nipples != "fuckable">> Then you alternate, gently nibbling with your teeth on the other nipple. You squeeze the tips of $his<<if ($activeSlave.lactation > 0)>> milky<</if>> nipples with your thumbs and fingers and tweak them in your fingertips, then you dab $his nipples with your thumbs, flicking them in different directions. <<else>> diff --git a/src/pregmod/FSuckle.tw b/src/pregmod/FSuckle.tw index e8ac0bfa98b10720f4cdcb67d7437cafd2d8f61b..90ff37c92a62ad7dfe005f6826e110789b14303b 100644 --- a/src/pregmod/FSuckle.tw +++ b/src/pregmod/FSuckle.tw @@ -139,7 +139,7 @@ You <<if _mood == 2>>demand<<else>>beckon<</if>> $activeSlave.slaveName to <<elseif $activeSlave.weight > 95>> getting familiar with $his fat belly and <</if>> - letting go so that $his tits cover your face and <<if $PC.belly >= 5000>>belly<<else>>torso<</if>> in heavenly softness; $his + letting go so that $his tits cover your face and <<if $PC.belly >= 5000>>belly<<else>>torso<</if>> in heavenly softness, $his <<if $activeSlave.nipples != "fuckable">> <<if $activeSlave.nipples == "puffy">> exceedingly soft nipple already brushing against your lips, covering your face with excess milk as if begging for you to empty $him. @@ -154,7 +154,7 @@ You <<if _mood == 2>>demand<<else>>beckon<</if>> $activeSlave.slaveName to <<if $activeSlave.fetish == "mindbroken">> $He obeys without question and mechanically begins to <<if $PC.dick == 1>>jerk you off<<else>>finger you<</if>>. <<elseif $activeSlave.devotion >= -20>> - But it was unnecessary as $he already <<if $PC.dick == 1>>wrapped $his fingers around your needy cock<<else>>smelled your arousal<</if>> and began to apply $his ministrations to take care of you<<if $activeSlave.nipples == "inverted" || $activeSlave.nipples == "partially inverted">>, as the sensations to $his nipple add so much more to the already surrounding breastflesh<</if>>. You buck to $his touch, forcing $him to try and steady $his breasts as your baby bump jumps with life. + This proves unnecessary as, before you finish speaking, $he <<if $PC.dick == 1>>wraps $his fingers around your needy cock<<else>>smells your arousal<</if>> and begins to apply $his ministrations to take care of you<<if $activeSlave.nipples == "inverted" || $activeSlave.nipples == "partially inverted">>, as the sensations to $his nipple add so much more to the already surrounding breastflesh<</if>>. You buck to $his touch, forcing $him to try and steady $his breasts as your baby bump jumps with life. <<elseif $activeSlave.trust < -20>> $He begins to question your order, but quickly realizes that was a mistake as you grab $his hand and force it yo your crotch. Hastily, $he begins to stroke <<if $PC.dick == 1>>your dick<<else>>your pussy<</if>> until reassured that $he is pleasing you from your lusty moans and thrusting. $He does $his best, hoping to not anger you further as $he presses <<if $PC.dick == 1>>the head<<else>>your lower lips<</if>> against $his nearby nipple. <<else>> @@ -165,7 +165,7 @@ You <<if _mood == 2>>demand<<else>>beckon<</if>> $activeSlave.slaveName to <<if $activeSlave.fetish == "mindbroken">> $He obeys without question and mechanically begins to <<if $PC.dick == 1>>jerk you off<<else>>finger you<</if>>. <<elseif $activeSlave.devotion >= -20>> - But it was unnecessary as $he already <<if $PC.dick == 1>>noticed your hardening penis<<else>>smelled your arousal<</if>> and began to apply $his ministrations to take care of you<<if $activeSlave.nipples == "inverted" || $activeSlave.nipples == "partially inverted">>, as the sensations to $his nipple add so much more to the already surrounding breastflesh<</if>>. You respond further with a positive "Mmmhmm~", which calms $his worries as $he works on pleasuring you as much as $he can with one hand. + This proves unnecessary as, before you finish speaking, $he <<if $PC.dick == 1>>notices your hardening penis<<else>>smells your arousal<</if>> and begins to apply $his ministrations to take care of you<<if $activeSlave.nipples == "inverted" || $activeSlave.nipples == "partially inverted">>, as the sensations to $his nipple add so much more to the already surrounding breastflesh<</if>>. You respond further with a positive "Mmmhmm~", which calms $his worries as $he works on pleasuring you as much as $he can with one hand. <<elseif $activeSlave.trust < -20>> $He begins to question your order, but quickly realizes <<if $PC.dick == 1>>your penis is at full mast and prodding $his breastflesh<<else>>you're soaking wet and quivering with desire<</if>>. Cautiously, $he begins to stroke <<if $PC.dick == 1>>it<<else>>your pussy<</if>> until reassured that $he is pleasing you with a positive "Mmmhmm~". $He does $his best, hoping to not anger you in any way or make a mistake as $he presses <<if $PC.dick == 1>>the head<<else>>your lower lips<</if>> against $his nearby nipple. <<else>> @@ -291,7 +291,7 @@ You <<if _mood == 2>>demand<<else>>beckon<</if>> $activeSlave.slaveName to <</if>> <<if $activeSlave.boobs >= 20000>> - Such sensations hasten your breath making you take in more of $his womanly scent. You work with your lips and tongue to + Such sensations hasten your breath, making you take in more of $his womanly scent. You work with your lips and tongue to <<if $activeSlave.nipples == "inverted" || $activeSlave.nipples == "partially inverted">> tease out $his nipple and suckle with newfound gusto, <<elseif $activeSlave.nipples == "fuckable">> @@ -319,13 +319,13 @@ You <<if _mood == 2>>demand<<else>>beckon<</if>> $activeSlave.slaveName to <<else>> roll and prod <</if>> - with your tongue trying to get the most out of $his mammaries, you hasten $his breath and bring $him further pleasure<<if $activeSlave.nipples == "inverted">> as it slowly hardens and leaves its inverted state<</if>>. + with your tongue, trying to get the most out of $his mammaries, you hasten $his breath and bring $him further pleasure<<if $activeSlave.nipples == "inverted">> as it slowly hardens and leaves its inverted state<</if>>. <<if $activeSlave.nipples == "puffy">> - You note the texture of $his nipple; soft, more so even than the rest of $his boob. Your constant efforts of sucking and tongueplay are rewarded + You note the texture of $his nipple: soft, more so even than the rest of $his boob. Your constant efforts of sucking and tongueplay are rewarded <<elseif $activeSlave.nipples == "fuckable">> You feverishly thrash your tongue around in the bumpy enclosure, each strong movement sending shivers through $him, causing $him to gasp and moan, as well as rewarding you <<elseif $activeSlave.nipples != "inverted">> - You take in the texture of $his nipple; hard and bumpy. A stark contrast to the rest of $his boob; an undeniable ocean of softness. Your constant efforts of sucking and tongueplay are rewarded + You take in the texture of $his nipple: hard and bumpy, a stark contrast to the rest of $his boob - an undeniable ocean of softness. Your constant efforts of sucking and tongueplay are rewarded <<else>> Your constant efforts of sucking and tongueplay are rewarded <</if>> @@ -342,7 +342,7 @@ Milk continues to spill into your mouth as you suckle away at the <<else>> hardness, <</if>> -relishing the delicious treat one could have only received from a mother's bosom, at least so was the case before modern medicine decided to say something about it. Though it may as well be artificial, the act of breastfeeding continues to appease a fundamental emotional need that is arguably unique to the action. +relishing the delicious treat one could have only received from a mother's bosom; at least, so was the case before modern medicine decided to say something about it. Though it may as well be artificial, the act of breastfeeding continues to appease a fundamental emotional need that is arguably unique to the action. <<if _mood == 2>> It gives you undeniable emotional respite despite the mood caused by your pregnancy, even if it will only last as long as you stay with $him. <<elseif _mood == 1>> @@ -357,13 +357,13 @@ relishing the delicious treat one could have only received from a mother's bosom <<if $PC.dick == 1>> holds $his breast and jiggles it in an attempt to compliment your thrusts, adding even more sensation alongside your own efforts. With the milk adding lubrication to the sensual hole of $his nipple and the enclosed nature of $his sopping wet breastpussy itself adding suction, it's like you were enveloped inside of a highly advanced cock milking machine, each bump sending thrums of pleasure as your dick brushed against them. <<else>> - held $his breast and jiggled it in an attempt to compliment your thrusts, adding more sensation to your own efforts. The milk adding wetness to the sensual hole of $his nipple and the nature of $his sopping wet breastpussy itself adding suction felt like you were being enveloped by a world class pussy pump; each movement adding more suction and wetness than the last. + held $his breast and jiggled it in an attempt to compliment your thrusts, adding more sensation to your own efforts. The milk adding wetness to the sensual hole of $his nipple and the nature of $his sopping wet breastpussy itself adding suction felt like you were being enveloped by a world class pussy pump, each movement adding more suction and wetness than the last. <</if>> <<else>> - While you were busy suckling, $he was anything but idle; using $his hand as best as $he could to bring you the most pleasure $he is capable of. Though no lube was applied, $his ministrations were more than enough to take you to the knife's edge of orgasm more than once. In your <<if $PC.dick == 1>>already dazed state<<else>>lust addled haze<</if>>, $his fingers seem to send lightning along your nerves<<if $PC.dick == 1>>; the tips brushing across your shaft to tickle its head make you thrust instinctively. $His tugs, gentle yet firm<<else>>. $His fingertips brush across your labia to tickle your clit, making you buck instinctively. $His strokes, gentle yet decisive<</if>>, have an almost motherly feel to them. Such ministrations cannot help but prepare you to <<if $PC.dick == 1>>shoot your load<<else>>come<</if>> as hard as you can. + While you were busy suckling, $he was anything but idle, using $his hand as best as $he could to bring you the most pleasure $he is capable of. Though no lube was applied, $his ministrations were more than enough to take you to the knife's edge of orgasm more than once. In your <<if $PC.dick == 1>>already dazed state<<else>>lust addled haze<</if>>, $his fingers seem to send lightning along your nerves<<if $PC.dick == 1>>; the tips brushing across your shaft to tickle its head make you thrust instinctively. $His tugs, gentle yet firm<<else>>. $His fingertips brush across your labia to tickle your clit, making you buck instinctively. $His strokes, gentle yet decisive<</if>>, have an almost motherly feel to them. Such ministrations cannot help but prepare you to <<if $PC.dick == 1>>shoot your load<<else>>come<</if>> as hard as you can. <</if>> <<elseif $activeSlave.boobs >= 2000>> - While you were busy suckling, $he was anything but idle; using $his hand as best as $he could to bring you the most pleasure $he is is capable of. Though no lube was applied, $his ministrations were more than enough to take you to the knife's edge of orgasm more than once. $His hand continues to apply itself to your <<if $PC.dick == 1>>shaft, its fingertips brushing across your shaft to tickle its head and make you thrust instinctively. $His tugs<<else>>sex, $his fingertips seeming to send lightning along your nerves. As $he tickles your clit, you buck instinctively. $His strokes<</if>>, gentle yet firm, have an almost motherly feel to them. Such ministrations cannot help but prepare you to <<if $PC.dick == 1>>shoot your load<<else>>come<</if>> as hard as you can. + While you were busy suckling, $he was anything but idle, using $his hand as best as $he could to bring you the most pleasure $he is is capable of. Though no lube was applied, $his ministrations were more than enough to take you to the knife's edge of orgasm more than once. $His hand continues to apply itself to your <<if $PC.dick == 1>>shaft, its fingertips brushing across your shaft to tickle its head and make you thrust instinctively. $His tugs<<else>>sex, $his fingertips seeming to send lightning along your nerves. As $he tickles your clit, you buck instinctively. $His strokes<</if>>, gentle yet firm, have an almost motherly feel to them. Such ministrations cannot help but prepare you to <<if $PC.dick == 1>>shoot your load<<else>>come<</if>> as hard as you can. <</if>> The two of you put so much into seeking pleasure in the act that you both cum at once, $his great gasp coinciding with your <<if $PC.dick == 1>><<if $PC.balls > 1>>flood<<else>>jet<</if>> of jizz flying<<else>>own jet of pussy juice squirting<</if>> diff --git a/src/pregmod/widgets/pregmodWidgets.tw b/src/pregmod/widgets/pregmodWidgets.tw index f7894a891d055db46ce9b5af87b8a5b982e3f227..b0bfbacb98324b7032a6bc11fdac3d442d88cf99 100644 --- a/src/pregmod/widgets/pregmodWidgets.tw +++ b/src/pregmod/widgets/pregmodWidgets.tw @@ -1,7 +1,7 @@ :: pregmod widgets [nobr widget] <<widget "initPC">> - <<set $PC = {name: "Anonymous", surname: 0, title: 1, ID: -1, pronoun: "he", possessive: "him", object: "his", dick: 1, vagina: 0, preg: 0, pregType: 0, pregWeek: 0, pregKnown: 0, belly: 0, bellyPreg: 0, mpreg: 0, pregSource: 0, pregMood: 0, labor: 0, births: 0, boobsBonus: 0, degeneracy: 0, voiceImplant: 0, accent: 0, shoulders: 0, shouldersImplant: 0, boobs: 0, career: "capitalist", rumor: "wealth", indenture: -1, indentureRestrictions: 0, birthWeek: random(0,51), age: 2, sexualEnergy: 4, refreshment: "cigar", refreshmentType: 0, trading: 0, warfare: 0, slaving: 0, engineering: 0, medicine: 0, hacking: 0, cumTap: 0, race: "white", origRace: "white", skin: "white", origSkin: "white", markings: "none", eyeColor: "blue", origEye: "blue", hColor: "blonde", origHColor: "blonde", nationality: "Stateless", father: 0, mother: 0, sisters: 0, daughters: 0, birthElite: 0, birthMaster: 0, birthDegenerate: 0, birthClient: 0, birthOther: 0, birthArcOwner: 0, birthCitizen: 0, birthSelf: 0, slavesFathered: 0, slavesKnockedUp: 0, intelligence: 100, face: 100, actualAge: 35, physicalAge: 35, visualAge: 35, birthWeek: 0, boobsImplant: 0, butt: 0, buttImplant: 0, balls: 0, ballsImplant: 0, ageImplant: 0, newVag: 0, reservedChildren: 0, reservedChildrenNursery: 0, fertDrugs: 0, forcedFertDrugs: 0, staminaPills: 0, ovaryAge: 35, storedCum: 0}>> + <<set $PC = {name: "Anonymous", surname: 0, title: 1, ID: -1, pronoun: "he", possessive: "him", object: "his", dick: 1, vagina: 0, preg: 0, pregType: 0, pregWeek: 0, pregKnown: 0, belly: 0, bellyPreg: 0, mpreg: 0, pregSource: 0, pregMood: 0, labor: 0, births: 0, boobsBonus: 0, degeneracy: 0, voiceImplant: 0, accent: 0, shoulders: 0, shouldersImplant: 0, boobs: 0, career: "capitalist", rumor: "wealth", birthWeek: random(0,51), age: 2, sexualEnergy: 4, refreshment: "cigar", refreshmentType: 0, trading: 0, warfare: 0, slaving: 0, engineering: 0, medicine: 0, hacking: 0, cumTap: 0, race: "white", origRace: "white", skin: "white", origSkin: "white", markings: "none", eyeColor: "blue", origEye: "blue", pupil: "circular", sclerae: "white", hColor: "blonde", origHColor: "blonde", nationality: "Stateless", father: 0, mother: 0, sisters: 0, daughters: 0, birthElite: 0, birthMaster: 0, birthDegenerate: 0, birthClient: 0, birthOther: 0, birthArcOwner: 0, birthCitizen: 0, birthSelf: 0, slavesFathered: 0, slavesKnockedUp: 0, intelligence: 100, face: 100, actualAge: 35, physicalAge: 35, visualAge: 35, boobsImplant: 0, butt: 0, buttImplant: 0, balls: 0, ballsImplant: 0, ageImplant: 0, newVag: 0, reservedChildren: 0, reservedChildrenNursery: 0, fertDrugs: 0, forcedFertDrugs: 0, staminaPills: 0, ovaryAge: 35, storedCum: 0}>> <<set WombInit($PC)>> diff --git a/src/societies/aztec/slaveSacrifice.tw b/src/societies/aztec/slaveSacrifice.tw index 53ed77111004149b7303070112f27f815089e27b..2c218b43d7dc7dc904c519b9482c8deaaa4a9316 100644 --- a/src/societies/aztec/slaveSacrifice.tw +++ b/src/societies/aztec/slaveSacrifice.tw @@ -83,7 +83,7 @@ $He proceeds to drop into a massive tantrum for the lack of better ways to express $himself. <<if $HeadGirl != 0>>$HeadGirl.slaveName<<else>>Another, more obedient slave<</if>> removes $him as $he continues struggling, spitting and resisting as much as $he can. By the end of the week, it won't matter; $he'll be so hungry and horny that resistance will be the last thing on $his mind. <</if>> <</if>> - + <br> As tradition dictates, the purification of $his body will be used as penance to the goddess in an attempt to pay for the favors bestowed upon your arcology. First, one of your slaves is appointed to represent you as $his owner, who willingly gives the slave as sacrifice, and is put in charge of the slave's health while $he goes through the penance process. $activeSlave.slaveName is thoroughly bathed and $his whole body covered in blue paint, while $his mouth is covered in black paint, as payment for being a prostitute. /*Might need a clause here for other jobs besides "whore"*/ $He's taken to spend the night at the sexual servitude of another slave who will be sacrificed to Tezcatlipoca, god of the night sky. $He's <<if ($activeSlave.devotion > 20)>>fucked all night long <<else>>raped over and over again throughout the night <</if>>; $his holes dedicated to the sexual satisfaction of the slave who soon will face a much darker fate than $him to please the gods. <<if canDoVaginal($activeSlave) && canDoAnal($activeSlave)>> @@ -382,4 +382,4 @@ <<include "Remove activeSlave">> <</if>> -<<set $sacrificeType = 0>> +<<set $sacrificeType = 0>> \ No newline at end of file diff --git a/src/uncategorized/BackwardsCompatibility.tw b/src/uncategorized/BackwardsCompatibility.tw index f6ea32ebd7d01d8bb62f50565b955ff2eec32c9d..ddd803b34bf90cac9f21ec8c556d7640dbe7549f 100644 --- a/src/uncategorized/BackwardsCompatibility.tw +++ b/src/uncategorized/BackwardsCompatibility.tw @@ -212,42 +212,18 @@ /* pregmod stuff */ -<<if ndef $PC.intelligence>> - <<set $PC.intelligence = 100>> -<</if>> -<<if ndef $PC.face>> - <<set $PC.face = 100>> -<</if>> <<if ndef $PC.actualAge>> - <<if $PC.age == 1>> + <<if $PC.age === 1>> <<set $PC.actualAge = 20>> - <<elseif $PC.age == 2>> - <<set $PC.actualAge = 35>> - <<elseif $PC.age == 3>> + <<elseif $PC.age === 3>> <<set $PC.actualAge = 50>> + <<else>> + <<set $PC.actualAge = 35>> <</if>> <</if>> -<<if ndef $PC.birthWeek>> - <<set $PC.birthWeek = 0>> -<</if>> <<if ndef $PC.markings>> <<set $PC.markings = "none">> <</if>> -<<if ndef $PC.mpreg>> /* for <<KnockMeUp $PC>> */ - <<set $PC.mpreg = 0>> -<</if>> -<<if ndef $PC.slavesKnockedUp>> - <<set $PC.slavesKnockedUp = 0>> -<</if>> -<<if ndef $PC.slavesFathered>> - <<set $PC.slavesFathered = 0>> -<</if>> -<<if ndef $PC.reservedChildren>> - <<set $PC.reservedChildren = 0>> -<</if>> -<<if ndef $PC.reservedChildrenNursery>> - <<set $PC.reservedChildrenNursery = 0>> -<</if>> <<if ndef $PC.pronoun>> <<if $PC.title == 1>> <<set $PC.pronoun = "he", $PC.possessive = "his", $PC.object = "him">> @@ -283,12 +259,6 @@ <<set $PC.belly = 0>> <</if>> <</if>> -<<if ndef $PC.fertDrugs>> - <<set $PC.fertDrugs = 0>> -<</if>> -<<if ndef $PC.forcedFertDrugs>> - <<set $PC.forcedFertDrugs = 0>> -<</if>> <<if ndef $PC.skin>> <<set $PC.skin = "white">> <</if>> @@ -357,21 +327,10 @@ <<if ndef $PC.nationality>> <<set $PC.nationality = "Stateless">> <</if>> -<<if ndef $PC.ovaryAge>> - <<set $PC.ovaryAge = $PC.physicalAge>> -<</if>> -<<if ndef $PC.staminaPills>> - <<set $PC.staminaPills = 0>> -<</if>> -<<if ndef $PC.degeneracy>> - <<set $PC.degeneracy = 0>> -<</if>> -<<if ndef $PC.storedCum>> - <<set $PC.storedCum = 0>> -<</if>> <<if $PC.boobsBonus == -0.5>> <<set $PC.boobsBonus = -1>> <</if>> +<<run PCDatatypeCleanup()>> <<if ndef $universalRulesImmobileSlavesMaintainMuscles>> <<set $universalRulesImmobileSlavesMaintainMuscles = 0>> @@ -1112,7 +1071,11 @@ <<set $SF.Facility = Object.assign({}, $SF.Facility, {Toggle:0, Active:0, LC:0, Workers:0, Max:5, Caps:"Special force support facility", Lower:"special force support facility", Decoration:"standard", Speed:0, Upgrade:0, IDs:[]})>> <</if>> <<if def $SF>> - <<if $SF.Active >= 1 && passage() === "New Game Plus">> <<silently>> <<include "Security Force Proposal">> <</silently>> <</if>> + <<if def $SpecOpsLock>> + <<set $SF.SpecOpsLock = $SpecOpsLock>> + <<unset $SpecOpsLock>> + <</if>> + <<if $SF.Active >= 0 && passage() === "New Game Plus">> <<= SFInit()>> <<run Object.assign($SF, {Active:-1})>> <</if>> <<if ndef $SF.Facility>> <<set $SF.Facility = Object.assign({}, $SF.Facility, {Toggle:0, Active:0, LC:0, Workers:0, Max:5, Caps:"Special force support facility", Lower:"special force support facility", Decoration:"standard", Speed:0, Upgrade:0, IDs:[]})>> <</if>> @@ -2531,7 +2494,6 @@ Setting missing global variables: <</if>> <</if>> <<if $releaseID < 1031>> - <<set $PC.intelligence = 100>> <<if $traitor != 0>> <<if $traitor.intelligence == -3>> <<set $traitor.intelligence = -100>> @@ -3405,10 +3367,6 @@ Setting missing slave variables: <<HeroSlavesCleanup>> Done! -<<if ndef $PC.hacking>> - <<set $PC.hacking = 0>> -<</if>> - /* Sec Exp */ <<if $secExp == 1>> <br> diff --git a/src/uncategorized/REFI.tw b/src/uncategorized/REFI.tw index 098c53700fc9ece2b6f93156999869c4d7613e9e..3b100623855e7761854f77a789dede54fd6f9dce 100644 --- a/src/uncategorized/REFI.tw +++ b/src/uncategorized/REFI.tw @@ -227,7 +227,7 @@ $subSlave.slaveName gets inspected more regularly than your other slaves, since <<else>> on the edge of your desk. _He2 doesn't mind the hard surface, not when it means your gravid middle is pushing against _his2 _subBelly own <</if>> - as you languidly take _him2. + as you languidly take _him2. <<else>> so you take _him2 on the couch, spooning so that _his2 <<if $subSlave.belly >= 300000>> @@ -240,7 +240,7 @@ $subSlave.slaveName gets inspected more regularly than your other slaves, since <<else>> but _his2 eager hole just can't be permitted to have another of your loads at the moment, so _he2'll have to settle for some cuddling instead. You embrace _him2 on the couch, <<if $PC.belly >= 5000>> - as closely as you can with your own gravidity in the way and languidly fondle _him2; one arm wrapped around behind to _his2 breast and the other alternating between fecund bulges. The two of you share a deep kiss as your bellies run against each other. + as closely as you can with your own gravidity in the way and languidly fondle _him2; one arm wrapped around behind to _his2 breast and the other alternating between fecund bulges. The two of you share a deep kiss as your bellies run against each other. <<else>> spooning so that _his2 <<if $subSlave.belly >= 300000>> @@ -261,7 +261,7 @@ $subSlave.slaveName gets inspected more regularly than your other slaves, since <<else>> on the edge of your desk. _He2 doesn't mind the hard surface, not when it means your gravid middle is pushing against _his2 _subBelly own <</if>> - as you languidly take _him2. + as you languidly take _him2. <<else>> so you take _him2 on the couch, spooning so that _his2 <<if $subSlave.belly >= 300000>> @@ -274,7 +274,7 @@ $subSlave.slaveName gets inspected more regularly than your other slaves, since <<else>> but _his2 fertile hole is off limits at the moment, so _he2'll have to settle for some cuddling instead. You embrace _him2 on the couch, <<if $PC.belly >= 5000>> - as closely as you can with your own gravidity in the way and languidly fondle _him2; one arm wrapped around behind to _his2 breast and the other alternating between fecund bulges. The two of you share a deep kiss as your bellies run against each other. + as closely as you can with your own gravidity in the way and languidly fondle _him2; one arm wrapped around behind to _his2 breast and the other alternating between fecund bulges. The two of you share a deep kiss as your bellies run against each other. <<else>> spooning so that _his2 <<if $subSlave.belly >= 300000>> @@ -288,14 +288,14 @@ $subSlave.slaveName gets inspected more regularly than your other slaves, since <<else>> all hot and bothered. $subSlave.slaveName has been a good girl, <<if ($subSlave.mpreg == 1 && canDoAnal($subSlave) && $subSlave.anus > 0) || ($subSlave.mpreg == 0 && canDoVaginal($subSlave) && $subSlave.vagina > 0)>> - so you don a strap-on and take _him2 + so you don a strap-on and take _him2 <<if $PC.belly >= 5000>> <<if $subSlave.belly >= 300000>> over _his2 own _subBelly belly. Such discomfort doesn't bother _him2 since it means _he2 gets to enjoy the sensation of your own gravid middle rubbing the small of _his2 back <<else>> on the edge of your desk. _He2 doesn't mind the hard surface, not when it means your gravid middle is pushing against _his2 _subBelly own <</if>> - as you languidly take _him2. + as you languidly take _him2. <<else>> on the couch, spooning so that _his2 <<if $subSlave.belly >= 300000>> @@ -308,7 +308,7 @@ $subSlave.slaveName gets inspected more regularly than your other slaves, since <<else>> but _his2 fertile hole is off limits at the moment, so _he2'll have to settle for some cuddling instead. You embrace _him2 on the couch, <<if $PC.belly >= 5000>> - as closely as you can with your own gravidity in the way and languidly fondle _him2; one arm wrapped around behind to _his2 breast and the other alternating between fecund bulges. The two of you share a deep kiss as your bellies run against each other. + as closely as you can with your own gravidity in the way and languidly fondle _him2; one arm wrapped around behind to _his2 breast and the other alternating between fecund bulges. The two of you share a deep kiss as your bellies run against each other. <<else>> spooning so that _his2 <<if $subSlave.belly >= 300000>> @@ -630,7 +630,7 @@ There was a glint of envy <<if canSee($activeSlave)>>in $his eyes when $he saw<< <<else>> subject, $he's forced to use delightfully humiliating gestures <</if>> - to communicate $his desire to be abused. + to communicate $his desire to be abused. <<elseif $activeSlave.voice == 0>> $He's <<if $activeSlave.amp == 1>> diff --git a/src/uncategorized/RESS.tw b/src/uncategorized/RESS.tw index 23b412939982b851f72aab023ad5227be0219e45..abd6615ae56c0420488a4d19ebe8cf6f4a220daf 100644 --- a/src/uncategorized/RESS.tw +++ b/src/uncategorized/RESS.tw @@ -3396,11 +3396,11 @@ May I?" $He spins, <<if $activeSlave.belly >= 5000>>spreading $his legs for $his As you manage your empire from your office, a constant traffic of slaves passes by its door. The glass walls allow a good view of them, and since you naturally own what you find appealing, the passing girls often draw your eye. For example, this morning you notice <<EventNameLink $activeSlave>> almost bounce into view. $He's physically fit, at a healthy weight, <<if $activeSlave.belly >= 10000>> <<if $activeSlave.bellyPreg >= 3000>> - heavily pregnant, + heavily pregnant, <<elseif $activeSlave.bellyImplant >= 3000>> - despite $his _belly fake belly, + despite $his _belly fake belly, <<else>> - completely full of $activeSlave.inflationType, + completely full of $activeSlave.inflationType, <</if>> <</if>> <<if $activeSlave.physicalAge > 35>> @@ -4290,7 +4290,7 @@ You are working late tonight, poring over some particularly troublesome business <<elseif $PC.refreshmentType == 1>> glass of $PC.refreshment <<elseif $PC.refreshmentType == 2>> - plate of $PC.refreshment + plate of $PC.refreshment <<elseif $PC.refreshmentType == 3>> line of $PC.refreshment <<elseif $PC.refreshmentType == 4>> @@ -5281,7 +5281,7 @@ brought in to you. This time <<EventNameLink $activeSlave>> has been sent to del <<if $PC.butt == 0>> ass, <<elseif $PC.butt == 1>> - with some effort, + with some effort, <<else>> with a struggle, <</if>> @@ -10602,7 +10602,7 @@ You tell her kindly that you understand, and that $he'll be trained to address t After some continued whining through her tears, $he gives up and just @@.gold;lets you@@ rape her sore vagina. <<= VaginalVCheck()>> <</if>> - When you finally <<if ($PC.dick == 1)>>fill her <<if canDoAnal($activeSlave)>>butt<<else>>pussy<</if>> with your ejaculate and pull out,<<if $PC.vagina == 1>> the motion releasing a waft of the combined cum and pussyjuice smell of a satisfied futa,<</if>><<else>>shudder with orgasm and withdraw your strap-on,<</if>> $he slumps and turns to go, looking a bit sad for some reason. + When you finally <<if ($PC.dick == 1)>>fill her <<if canDoAnal($activeSlave)>>butt<<else>>pussy<</if>> with your ejaculate and pull out,<<if $PC.vagina == 1>> the motion releasing a waft of the combined cum and pussyjuice smell of a satisfied futa,<</if>><<else>>shudder with orgasm and withdraw your strap-on,<</if>> $he slumps and turns to go, looking a bit sad for some reason. <<set $activeSlave.trust += 4>> <</replace>> <</link>> @@ -10813,11 +10813,11 @@ You tell her kindly that you understand, and that $he'll be trained to address t <<elseif canDoAnal($activeSlave)>> butt is right at the edge of the desk. <<= AnalVCheck(3)>> - You give it a good fuck and then + You give it a good fuck and then <<elseif canDoVaginal($activeSlave)>> pussy is right at the edge of the desk. <<= VaginalVCheck(3)>> - You give it a good fuck and then + You give it a good fuck and then <<else>> mouth is right at the edge of the desk. You give it a good fuck and then <<set $activeSlave.oralCount += 3, $oralTotal += 3>> @@ -13054,7 +13054,7 @@ You tell her kindly that you understand, and that $he'll be trained to address t <<else>> <<if $activeSlave.belly > 20>>gingerly lowers her <<if $activeSlave.bellyPreg >= 3000>>pregnant <</if>>bulk onto it,<</if>> and fucks her little ass open on the dildo. You keep her up there until $his legs give out<<if $activeSlave.belly >= 10000 || $activeSlave.weight > 190>>and her <<if $activeSlave.bellyPreg >= 3000>>gravid <</if>>weight pins her on the toy;<<else>>, and<</if>> then let her lie down on <</if>> - the couch, telling $him to keep working the dildo with $his hands or suffer another whipping. After $he's had $his ass filled for a good while, $he has no trouble taking a <<if $PC.dick == 0>>strap-on<<else>>real dick<</if>> for the first time, and is by this point too exhausted to do anything but lie there and be a good little anal slave. @@.gold;$He fears you,@@ and @@.lime;her butthole has been broken in.@@ + the couch, telling $him to keep working the dildo with $his hands or suffer another whipping. After $he's had $his ass filled for a good while, $he has no trouble taking a <<if $PC.dick == 0>>strap-on<<else>>real dick<</if>> for the first time, and is by this point too exhausted to do anything but lie there and be a good little anal slave. @@.gold;$He fears you,@@ and @@.lime;her butthole has been broken in.@@ <<set $activeSlave.trust -= 5, $activeSlave.anus = 1>> <<= AnalVCheck()>> <</replace>> @@ -15632,7 +15632,7 @@ You tell her kindly that you understand, and that $he'll be trained to address t <br><br> "Oh noo, I'm going to be taken to heaven," <<case "cherub">> - cutie?" she says cutely, already reaching down to start schlicking away. "You get to be my best friend for the evening!" + cutie?" she says cutely, already reaching down to start schlicking away. "You get to be my best friend for the evening!" <br><br> "Oh noo, I'm going to get bapti<<s>>ed by a <<s>>quirting little angel," <<case "incubus">> @@ -17842,7 +17842,7 @@ You tell her kindly that you understand, and that $he'll be trained to address t since $he's fully confirmed in her status as a sub, $he @@.hotpink;glows with devotion@@ <<set $activeSlave.devotion += 3>> <</if>> - as $he washes $himself in the shower with you. + as $he washes $himself in the shower with you. <<else>> $He seems utterly dissipated by the fucking $he just got, and may have just had the best sex of her life. @@.lightsalmon;$He's a submissive!@@ <<set $activeSlave.fetishKnown = 1>> @@ -19716,7 +19716,7 @@ You tell her kindly that you understand, and that $he'll be trained to address t <<else>> on your pussy and asshole quickly have you hot and bothered. <</if>> - You can't stop yourself from rubbing against the squirming mass, enjoying the unique undulations across your junk. It doesn't take long to coat $his stomach in a layer of fluids. After a few hours of objectifying degradation in this way, you rise from your enjoyable seat to attend business elsewhere in your penthouse and dismiss $activeSlave.slaveName. Although you didn't penetrate $him, her experience as a sex toy for your amusement @@.hotpink;has increased her submissiveness@@. + You can't stop yourself from rubbing against the squirming mass, enjoying the unique undulations across your junk. It doesn't take long to coat $his stomach in a layer of fluids. After a few hours of objectifying degradation in this way, you rise from your enjoyable seat to attend business elsewhere in your penthouse and dismiss $activeSlave.slaveName. Although you didn't penetrate $him, her experience as a sex toy for your amusement @@.hotpink;has increased her submissiveness@@. <<else>> After a few hours of objectifying degradation in this way, you rise from your novel seat to attend business elsewhere in your penthouse and dismiss $activeSlave.slaveName. Although you didn't fuck $him, her experience as a piece of furniture for your comfort @@.hotpink;has increased her submissiveness@@. <</if>> @@ -20499,7 +20499,7 @@ You tell her kindly that you understand, and that $he'll be trained to address t <<link "Comfort $him">> <<EventNameDelink $activeSlave>> <<replace "#result">> - You set the $PC.refreshment aside on your desk for now, and take $him gently by the hand. You lead $him out onto the balcony of the Penthouse over to the railing. $He obediently assumes a position for you, bracing $his arms on the railing, arching $his back and sticking $his bottom out to present $himself for use. Much to $his surprise, your hand guides $him back into a comfortable position, and simply pulls $him close into you. You explain to $him that $he is a good $girl who tries $his best, and that you don't want $him to fear you. After a little coddling, you fall silent, and simply hold $him tight, watching the street lights of $arcologies[0].name blink to life one after the other, slowly transforming the arcology into a vibrant, elegant light show. $activeSlave.slaveName can hardly believe whats happening, but eventually is able to relax fully, melting into your arms like butter into a hot pan. $He rests $his head lovingly against your chest and silently appreciates the view with you. When $he eventually departs, $he does so with @@.hotpink;tears of joy@@, @@.mediumaquamarine;rather than fear@@, welling behind $his eyes. + You set the $PC.refreshment aside on your desk for now, and take $him gently by the hand. You lead $him out onto the balcony of the Penthouse over to the railing. $He obediently assumes a position for you, bracing $his arms on the railing, arching $his back and sticking $his bottom out to present $himself for use. Much to $his surprise, your hand guides $him back into a comfortable position, and simply pulls $him close into you. You explain to $him that $he is a good $girl who tries $his best, and that you don't want $him to fear you. After a little coddling, you fall silent, and simply hold $him tight, watching the street lights of $arcologies[0].name blink to life one after the other, slowly transforming the arcology into a vibrant, elegant light show. $activeSlave.slaveName can hardly believe whats happening, but eventually is able to relax fully, melting into your arms like butter into a hot pan. $He rests $his head lovingly against your chest and silently appreciates the view with you. When $he eventually departs, $he does so with @@.hotpink;tears of joy@@, @@.mediumaquamarine;rather than fear@@, welling behind $his eyes. <<set $activeSlave.devotion += 15>> <<set $activeSlave.trust += 15>> <</replace>> diff --git a/src/uncategorized/clinicReport.tw b/src/uncategorized/clinicReport.tw index 068ce849760a5adf6f19a283f9efafe5054ffe60..85450de427a85b2ab4857ec63dab1c1ef58a59f3 100644 --- a/src/uncategorized/clinicReport.tw +++ b/src/uncategorized/clinicReport.tw @@ -265,6 +265,7 @@ <<if ($slaves[$i].health <= 40)>> <<elseif ($Nurse != 0) && ($slaves[$i].chem > 15) && ($clinicUpgradeFilters == 1)>> <<elseif ($Nurse != 0) && ($slaves[$i].pregKnown == 1) && ($clinicSpeedGestation >= 0 || $slaves[$i].pregControl == "speed up")>> + <<elseif ($Nurse != 0) && ($slaves[$i].pregAdaptation*1000 < $slaves[$i].bellyPreg || $slaves[$i].preg > 30)>> <<elseif ($Nurse != 0) && ($clinicInflateBelly > 0) && ($slaves[$i].bellyImplant >= 0) && ($slaves[$i].bellyImplant <= ($arcologies[0].FSTransformationFetishistResearch ? 800000 : 130000))>> <<else>> <br><br>''__@@.pink;$slaves[$i].slaveName@@__'' has been returned to health<<if ($Nurse != 0) && ($clinicUpgradeFilters == 1)>> and purity<</if>>, so @@.yellow;$his assignment has defaulted to rest.@@ diff --git a/src/uncategorized/endWeek.tw b/src/uncategorized/endWeek.tw index ac03144992d4d747582c89436a5c585eeb277acf..920eef66c6436f6e55bd535de629255ed723a3f2 100644 --- a/src/uncategorized/endWeek.tw +++ b/src/uncategorized/endWeek.tw @@ -128,7 +128,7 @@ <<elseif $PC.physicalAge >= 21>> <<set $PC.sexualEnergy += 3>> <<elseif $PC.physicalAge >= 13>> - <<set $PC.sexualEnergy +=4>> + <<set $PC.sexualEnergy += 4>> <<elseif $PC.physicalAge == 12>> <<set $PC.sexualEnergy += 1>> <<elseif $PC.physicalAge == 11>> diff --git a/src/uncategorized/freeRangeDairyAssignmentScene.tw b/src/uncategorized/freeRangeDairyAssignmentScene.tw index 87f79fbbc481a4c741d54cc3b3eac55bd4d2ecb1..2f470ade001bf1292aecc42bcaf7ff7279b169cf 100644 --- a/src/uncategorized/freeRangeDairyAssignmentScene.tw +++ b/src/uncategorized/freeRangeDairyAssignmentScene.tw @@ -166,13 +166,13 @@ Suction cups are attached <<if $activeSlave.nipples == "fuckable">>over<<else>>t <</if>> <br/> <<if $dairyFeedersSetting == 1>> - Near the headrest of the chair, an artificial phallus is installed. The cow can easily reach it with $his mouth. The phallus provides hydration and nutrition when sucked. The supplement consists of excess- or low-quality milk and cum from the dairy itself as well as aphrodisiacs and hormones enhancing lactation and semen production. + Near the headrest of the chair, an artificial phallus is installed. The cow can easily reach it with $his mouth. The phallus provides hydration and nutrition when sucked. The supplement consists of excess or low-quality milk and cum from the dairy itself as well as aphrodisiacs and hormones enhancing lactation and semen production. <<if $activeSlave.sexualFlaw == "cum addict" || $activeSlave.fetish == "cumslut">> $activeSlave.slaveName eagerly shoves the artificial phallus into $his mouth. $He gives it an experimental suckle. To $his joy, $he soon is rewarded with a fresh spurt of semen-like nutrition supplement. Then $he readjusts the holder to keep the phallus lodged in $his mouth, effectively forcing $himself to keep sucking the artificial dick. <</if>> <</if>> <br/> -The milking chair comes with a small screen, providing mental stimulation for the cow. It is highly pornographic, of course. It also includes live-streams of close-ups from the cow's being milked or their orifices being penetrated. $activeSlave.slaveName selects $his favorite program<<if !canSee($activeSlave)>> to listen to<</if>>. It features +The milking chair comes with a small screen, providing mental stimulation for the cow. It is highly pornographic, of course. It also includes live-streams of close-ups from the cows being milked or their orifices being penetrated. $activeSlave.slaveName selects $his favorite program<<if !canSee($activeSlave)>> to listen to<</if>>. It features <<if $activeSlave.attrXY > $activeSlave.attrXX || $activeSlave.behavioralQuirk == "adores men">> men <<else>> diff --git a/src/uncategorized/neighborsDevelopment.tw b/src/uncategorized/neighborsDevelopment.tw index 3015f7f46ce9e14842e3b3ed0fb5f12dc237bcd2..1e2510f2148e727c0a5ea649f96e7ed96f4ecf6f 100644 --- a/src/uncategorized/neighborsDevelopment.tw +++ b/src/uncategorized/neighborsDevelopment.tw @@ -506,7 +506,7 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcol <<set _Catchtchance = 100>> <</if>> <<set _weekModifier = Math.max(1, (100-($week*2)))>> - <<set $arcologies[$i].prosperity -= $arcologies[0].CyberEconomic*2, _WarSpoils = 10+Math.max(((100/_weekModifier)*$arcologies[$i].prosperity*$arcologies[0].CyberEconomic),0)>> + <<set $arcologies[$i].prosperity -= $arcologies[0].CyberEconomic*2, _WarSpoils = Math.ceil(10+Math.max(((100/_weekModifier)*$arcologies[$i].prosperity*$arcologies[0].CyberEconomic),0))>> <<set $arcologies[$i].prosperity = Math.clamp($arcologies[$i].prosperity, 1, 300)>> <<if random(0,100) >= _Catchchance-(10*$arcologies[0].CyberEconomic)>> <<set $arcologies[0].prosperity -= $arcologies[0].CyberEconomic*3, $rep -= random(100,200), _redHanded = 1>> diff --git a/src/uncategorized/reNickname.tw b/src/uncategorized/reNickname.tw index 349c2a3a197efcf3bed0ad5431ee57f047d3e5dd..c53c670328e7b57ad1a35edf0924865451e60fe9 100644 --- a/src/uncategorized/reNickname.tw +++ b/src/uncategorized/reNickname.tw @@ -20,30 +20,30 @@ <<if ($seeRace == 1)>> <<switch $activeSlave.race>> -<<case "white">> - <<set $qualifiedNicknames.push("white")>> +<<case "amerindian">> + <<set $qualifiedNicknames.push("amerindian")>> <<case "asian">> <<set $qualifiedNicknames.push("asian")>> -<<case "latina">> - <<set $qualifiedNicknames.push("latina")>> <<case "black">> <<set $qualifiedNicknames.push("black")>> -<<case "pacific islander">> - <<set $qualifiedNicknames.push("pacific islander")>> -<<case "southern european">> - <<set $qualifiedNicknames.push("southern european")>> -<<case "amerindian">> - <<set $qualifiedNicknames.push("amerindian")>> +<<case "indo-aryan">> + <<set $qualifiedNicknames.push("indo-aryan")>> +<<case "latina">> + <<set $qualifiedNicknames.push("latina")>> <<case "malay">> <<set $qualifiedNicknames.push("malay")>> -<<case "semitic">> - <<set $qualifiedNicknames.push("semitic")>> <<case "middle eastern">> <<set $qualifiedNicknames.push("middle eastern")>> -<<case "indo-aryan">> - <<set $qualifiedNicknames.push("indo-aryan")>> <<case "mixed race">> <<set $qualifiedNicknames.push("mixed race")>> +<<case "pacific islander">> + <<set $qualifiedNicknames.push("pacific islander")>> +<<case "semitic">> + <<set $qualifiedNicknames.push("semitic")>> +<<case "southern european">> + <<set $qualifiedNicknames.push("southern european")>> +<<case "white">> + <<set $qualifiedNicknames.push("white")>> <</switch>> <</if>> @@ -694,9 +694,9 @@ <<set $applyDesc = "is a little proud of $his national nickname, as a reminder of who $he was and a mark that $he still has an identity.">> <<set $notApplyDesc = "realizes that $his new identity is truly stateless. In the Free Cities, it does not matter where a slave is from, so long as that slave has value. All slaves belong to the singular nation of the owned, the subordinated, the fucked.">> -<<case "white">> - <<set $nickname = either("'Ang Mo'", "'Casper'", "'Caucasian'", "'Caucasoid'", "'Cracker'", "'Cumskin'", "'Dixie'", "'Down Home'", "'Duchess'", "'Euro Trash'", "'Europa'", "'European'", "'Farang'", "'Grits'", "'Gweilo'", "'Hick'", "'Hillbilly'", "'Hollywood'", "'Honky'", "'Ice Monkey'", "'Ice Queen'", "'Mayo'", "'Memphis'", "'Pale'", "'Paleface'", "'Pasty'", "'Peckerwood'", "'Princess'", "'Snowflake'", "'Top Dollar'", "'Valley Girl'", "'Vanilla'", "'Vegas'", "'White Bread'", "'White Devil'", "'White Trash'", "'White'", "'Whitey'", "'Wigger'", "'Yankee'")>> - <<set $situationDesc = "is white, which is not uncommon given the collapse of many erstwhile first world nations into depression and the proximity of many Free Cities to majority white areas. Slaves casually reference race as much or more than free citizens. They absorb the racial peccadilloes of their owners, and many of them bring prejudices from the old world into their slave lives.">> +<<case "amerindian">> + <<set $nickname = either("'Amerindian'", "'Chug'", "'Deerskin'", "'Eskimo'", "'Eskimo Sister'", "'Firewater'", "'First Nations'", "'Indian'", "'Indio'", "'Injun'", "'Ke-mo Sah-bee'", "'La Malinche'", "'Métis Mother'", "'Moccasins'", "'Native'", "'Nitchie'", "'Peace Pipe'", "'Pocahontas'", "'Red'", "'Redskin'", "'Reservation'", "'Savage'", "'Scalper'", "'Smoke Signal'", "'Squaw'", "'Tiger Lily'", "'Tipi Warmer'", "'Totem Pole'", "'Tonto'", "'Tribal'", "'Warpath'", "'Wigwam'")>> + <<set $situationDesc = "is amerindian, which is not uncommon given the poverty that still plagues those long-suffering peoples. Slaves casually reference race as much or more than free citizens. They absorb the racial peccadilloes of their owners, and many of them bring prejudices from the old world into their slave lives.">> <<set $applyDesc = "now has a constant reminder that as a sex slave $he is judged on $his appearance first.">> <<set $notApplyDesc = "may feel some gratitude due to your preference that $he not be defined by $his ethnicity, but this is counterbalanced by the increased independence your kindness inspires.">> @@ -706,12 +706,6 @@ <<set $applyDesc = "now has a constant reminder that as a sex slave $he is judged on $his appearance first.">> <<set $notApplyDesc = "may feel some gratitude due to your preference that $he not be defined by $his ethnicity, but this is counterbalanced by the increased independence your kindness inspires.">> -<<case "latina">> - <<set $nickname = either("'Adorada'", "'Banana Republic'", "'Brown'", "'Cafe'", "'Chica'", "'Chiquita'", "'Chola'", "'Cuzinho'", "'Facil'", "'Hispanic'", "'Latin'", "'Latina'", "'Mestiza'", "'Mexicali'", "'One Peso'", "'Rio Grande'", "'Senora'", "'Senorita'", "'Shakira'", "'South of the Border'", "'Spic'", "'Spicy'", "'Wetback'", "'Yeyo'")>> - <<set $situationDesc = "is latina, which is not uncommon given the poor state of many Central and South American countries and the long diaspora of poor natives of those areas. Slaves casually reference race as much or more than free citizens. They absorb the racial peccadilloes of their owners, and many of them bring prejudices from the old world into their slave lives.">> - <<set $applyDesc = "now has a constant reminder that as a sex slave $he is judged on $his appearance first.">> - <<set $notApplyDesc = "may feel some gratitude due to your preference that $he not be defined by $his ethnicity, but this is counterbalanced by the increased independence your kindness inspires.">> - <<case "black">> <<set $nickname = either("'African'", "'B-Girl'", "'Black'", "'Blackie'", "'Bottom Bitch'", "'Burrhead'", "'Cocoa'", "'Coon'", "'Cotton'", "'Dark'", "'Ebony'", "'Gangsta'", "'His Girl Friday'", "'House Slave'", "'Jungle Bunny'", "'Jungle Fever'", "'Mammy'", "'Miss'", "'Missie'", "'Mulatto'", "'N-Word'", "'Negro'", "'Negroid'", "'Nigga'", "'Nigger'", "'Porch Monkey'", "'Quadroon'", "'Sambo'", "'Sheboon'", "'Spade'", "'Spook'")>> <<set $situationDesc = "is black, which is not uncommon given the urban collapse afflicting the first world and the wars raging in Africa. Slaves casually reference race as much as free citizens. Slaves casually reference race as much or more than free citizens. They absorb the racial peccadilloes of their owners, and many of them bring prejudices from the old world into their slave lives.">> @@ -724,21 +718,9 @@ <<set $applyDesc = "now has a constant reminder that as a sex slave $he is judged on $his appearance first.">> <<set $notApplyDesc = "may feel some gratitude due to your preference that $he not be defined by $his ethnicity, but this is counterbalanced by the increased independence your kindness inspires.">> -<<case "middle eastern">> - <<set $nickname = either("'Arab'", "'Arabian'", "'Arabian Nights'", "'Arabush'", "'Bibi'", "'Bougnoule'", "'Caliph'", "'Camel Jockey'", "'Chai Girl'", "'Desert Sun'", "'Dune Coon'", "'Dune'", "'Durka Durka'", "'Flying Carpet'", "'Halal'", "'Harem Girl'", "'Hijabi'", "'Jasmine'", "'Kebab'", "'Middle Eastern'", "'Moromierda'", "'Raghead'", "'Sand Nigger'", "'Sand'", "'Sandy'", "'Scheherazade'", "'Soosmar-Khor'", "'Third Wife'", "'Towelhead'")>> - <<set $situationDesc = "is middle eastern, which is not uncommon given the interminable wars and disruptions in that part of the world. Slaves casually reference race as much or more than free citizens. They absorb the racial peccadilloes of their owners, and many of them bring prejudices from the old world into their slave lives.">> - <<set $applyDesc = "now has a constant reminder that as a sex slave $he is judged on $his appearance first.">> - <<set $notApplyDesc = "may feel some gratitude due to your preference that $he not be defined by $his ethnicity, but this is counterbalanced by the increased independence your kindness inspires.">> - -<<case "mixed race">> - <<set $nickname = either("'Chola'", "'Colonial'", "'Colored'", "'Creole'", "'Diverse'", "'Diversity'", "'HÄfu'", "'Half and Half'", "'Half-breed'", "'Half-caste'", "'Integration'", "'Interracial'", "'Melting Pot'", "'Melungeon'", "'Mestiza'", "'Miscegenation'", "'Mixed Race'", "'Mixed'", "'Mongrel'", "'Mulatto'", "'Multiracial'", "'Mutt'", "'Octaroon'", "'Pardo'", "'Quadroon'", "'Zambo'")>> - <<set $situationDesc = "is mixed race, an ethnic makeup that has always been a target for abuse. Slaves of all races can find something about $him to dislike. They absorb the racial peccadilloes of their owners, and many of them bring prejudices from the old world into their slave lives.">> - <<set $applyDesc = "now has a constant reminder that as a sex slave $he is judged on $his appearance first.">> - <<set $notApplyDesc = "may feel some gratitude due to your preference that $he not be defined by $his ethnicity, but this is counterbalanced by the increased independence your kindness inspires.">> - -<<case "semitic">> - <<set $nickname = either("'Abie'", "'Abrahamic'", "'Baal Worshipper'", "'Biblical'", "'Canaanite'", "'Dead Sea'", "'Golden Calf'", "'Good Samaritan'", "'Hebrew'", "'Heeb'", "'Holy land'", "'Hymie'", "'Inanna'", "'Ishtar'", "'Kike'", "'Kosher'", "'Levantine'", "'Lilith'", "'Lost Ark'", "'Nephilim'", "'Oven Dodger'", "'Oy Vey'", "'Philistine'", "'Qedesha'", "'Red Sea'", "'Salome'", "'Semite'", "'Semitic'", "'Sheeny'", "'Shylock'", "'Sodom and Gomorrah'", "'Whore of Babylon'", "'Yid'")>> - <<set $situationDesc = "is semitic, which is not uncommon given the many conflicts in countries with semitic minorities. Slaves casually reference race as much or more than free citizens. They absorb the racial peccadilloes of their owners, and many of them bring prejudices from the old world into their slave lives.">> +<<case "latina">> + <<set $nickname = either("'Adorada'", "'Banana Republic'", "'Brown'", "'Cafe'", "'Chica'", "'Chiquita'", "'Chola'", "'Cuzinho'", "'Facil'", "'Hispanic'", "'Latin'", "'Latina'", "'Mestiza'", "'Mexicali'", "'One Peso'", "'Rio Grande'", "'Senora'", "'Senorita'", "'Shakira'", "'South of the Border'", "'Spic'", "'Spicy'", "'Wetback'", "'Yeyo'")>> + <<set $situationDesc = "is latina, which is not uncommon given the poor state of many Central and South American countries and the long diaspora of poor natives of those areas. Slaves casually reference race as much or more than free citizens. They absorb the racial peccadilloes of their owners, and many of them bring prejudices from the old world into their slave lives.">> <<set $applyDesc = "now has a constant reminder that as a sex slave $he is judged on $his appearance first.">> <<set $notApplyDesc = "may feel some gratitude due to your preference that $he not be defined by $his ethnicity, but this is counterbalanced by the increased independence your kindness inspires.">> @@ -748,9 +730,15 @@ <<set $applyDesc = "now has a constant reminder that as a sex slave $he is judged on $his appearance first.">> <<set $notApplyDesc = "may feel some gratitude due to your preference that $he not be defined by $his ethnicity, but this is counterbalanced by the increased independence your kindness inspires.">> -<<case "amerindian">> - <<set $nickname = either("'Amerindian'", "'Chug'", "'Deerskin'", "'Eskimo'", "'Eskimo Sister'", "'Firewater'", "'First Nations'", "'Indian'", "'Indio'", "'Injun'", "'Ke-mo Sah-bee'", "'La Malinche'", "'Métis Mother'", "'Moccasins'", "'Native'", "'Nitchie'", "'Peace Pipe'", "'Pocahontas'", "'Red'", "'Redskin'", "'Reservation'", "'Savage'", "'Scalper'", "'Smoke Signal'", "'Squaw'", "'Tiger Lily'", "'Tipi Warmer'", "'Totem Pole'", "'Tonto'", "'Tribal'", "'Warpath'", "'Wigwam'")>> - <<set $situationDesc = "is amerindian, which is not uncommon given the poverty that still plagues those long-suffering peoples. Slaves casually reference race as much or more than free citizens. They absorb the racial peccadilloes of their owners, and many of them bring prejudices from the old world into their slave lives.">> +<<case "middle eastern">> + <<set $nickname = either("'Arab'", "'Arabian'", "'Arabian Nights'", "'Arabush'", "'Bibi'", "'Bougnoule'", "'Caliph'", "'Camel Jockey'", "'Chai Girl'", "'Desert Sun'", "'Dune Coon'", "'Dune'", "'Durka Durka'", "'Flying Carpet'", "'Halal'", "'Harem Girl'", "'Hijabi'", "'Jasmine'", "'Kebab'", "'Middle Eastern'", "'Moromierda'", "'Raghead'", "'Sand Nigger'", "'Sand'", "'Sandy'", "'Scheherazade'", "'Soosmar-Khor'", "'Third Wife'", "'Towelhead'")>> + <<set $situationDesc = "is middle eastern, which is not uncommon given the interminable wars and disruptions in that part of the world. Slaves casually reference race as much or more than free citizens. They absorb the racial peccadilloes of their owners, and many of them bring prejudices from the old world into their slave lives.">> + <<set $applyDesc = "now has a constant reminder that as a sex slave $he is judged on $his appearance first.">> + <<set $notApplyDesc = "may feel some gratitude due to your preference that $he not be defined by $his ethnicity, but this is counterbalanced by the increased independence your kindness inspires.">> + +<<case "mixed race">> + <<set $nickname = either("'Chola'", "'Colonial'", "'Colored'", "'Creole'", "'Diverse'", "'Diversity'", "'HÄfu'", "'Half and Half'", "'Half-breed'", "'Half-caste'", "'Integration'", "'Interracial'", "'Melting Pot'", "'Melungeon'", "'Mestiza'", "'Miscegenation'", "'Mixed Race'", "'Mixed'", "'Mongrel'", "'Mulatto'", "'Multiracial'", "'Mutt'", "'Octaroon'", "'Pardo'", "'Quadroon'", "'Zambo'")>> + <<set $situationDesc = "is mixed race, an ethnic makeup that has always been a target for abuse. Slaves of all races can find something about $him to dislike. They absorb the racial peccadilloes of their owners, and many of them bring prejudices from the old world into their slave lives.">> <<set $applyDesc = "now has a constant reminder that as a sex slave $he is judged on $his appearance first.">> <<set $notApplyDesc = "may feel some gratitude due to your preference that $he not be defined by $his ethnicity, but this is counterbalanced by the increased independence your kindness inspires.">> @@ -760,12 +748,24 @@ <<set $applyDesc = "now has a constant reminder that as a sex slave $he is judged on $his appearance first.">> <<set $notApplyDesc = "may feel some gratitude due to your preference that $he not be defined by $his ethnicity, but this is counterbalanced by the increased independence your kindness inspires.">> +<<case "semitic">> + <<set $nickname = either("'Abie'", "'Abrahamic'", "'Baal Worshipper'", "'Biblical'", "'Canaanite'", "'Dead Sea'", "'Golden Calf'", "'Good Samaritan'", "'Hebrew'", "'Heeb'", "'Holy land'", "'Hymie'", "'Inanna'", "'Ishtar'", "'Kike'", "'Kosher'", "'Levantine'", "'Lilith'", "'Lost Ark'", "'Nephilim'", "'Oven Dodger'", "'Oy Vey'", "'Philistine'", "'Qedesha'", "'Red Sea'", "'Salome'", "'Semite'", "'Semitic'", "'Sheeny'", "'Shylock'", "'Sodom and Gomorrah'", "'Whore of Babylon'", "'Yid'")>> + <<set $situationDesc = "is semitic, which is not uncommon given the many conflicts in countries with semitic minorities. Slaves casually reference race as much or more than free citizens. They absorb the racial peccadilloes of their owners, and many of them bring prejudices from the old world into their slave lives.">> + <<set $applyDesc = "now has a constant reminder that as a sex slave $he is judged on $his appearance first.">> + <<set $notApplyDesc = "may feel some gratitude due to your preference that $he not be defined by $his ethnicity, but this is counterbalanced by the increased independence your kindness inspires.">> + <<case "southern european">> <<set $nickname = either("'Aphrodite'", "'Bella'", "'Dago'", "'Doña'", "'Fine Wine'", "'Garlic Breath'", "'Goombah'", "'Greaseball'", "'Greaser'", "'Grecian'", "'Guido'", "'Guinea'", "'Infamis'", "'Lupa'", "'Mediterranean'", "'Meretrix'", "'Odalisque'", "'Olive Oil'", "'Olive'", "'Pizzahead'", "'Riviera'", "'Roman Nose'", "'Southern European'", "'Venus'", "'Wog'", "'Wop'")>> <<set $situationDesc = "is southern european, which is not uncommon given the endemic corruption and political collapse in that part of the world. Slaves casually reference race as much or more than free citizens. They absorb the racial peccadilloes of their owners, and many of them bring prejudices from the old world into their slave lives.">> <<set $applyDesc = "now has a constant reminder that as a sex slave $he is judged on $his appearance first.">> <<set $notApplyDesc = "may feel some gratitude due to your preference that $he not be defined by $his ethnicity, but this is counterbalanced by the increased independence your kindness inspires.">> +<<case "white">> + <<set $nickname = either("'Ang Mo'", "'Casper'", "'Caucasian'", "'Caucasoid'", "'Cracker'", "'Cumskin'", "'Dixie'", "'Down Home'", "'Duchess'", "'Euro Trash'", "'Europa'", "'European'", "'Farang'", "'Grits'", "'Gweilo'", "'Hick'", "'Hillbilly'", "'Hollywood'", "'Honky'", "'Ice Monkey'", "'Ice Queen'", "'Mayo'", "'Memphis'", "'Pale'", "'Paleface'", "'Pasty'", "'Peckerwood'", "'Princess'", "'Snowflake'", "'Top Dollar'", "'Valley Girl'", "'Vanilla'", "'Vegas'", "'White Bread'", "'White Devil'", "'White Trash'", "'White'", "'Whitey'", "'Wigger'", "'Yankee'")>> + <<set $situationDesc = "is white, which is not uncommon given the collapse of many erstwhile first world nations into depression and the proximity of many Free Cities to majority white areas. Slaves casually reference race as much or more than free citizens. They absorb the racial peccadilloes of their owners, and many of them bring prejudices from the old world into their slave lives.">> + <<set $applyDesc = "now has a constant reminder that as a sex slave $he is judged on $his appearance first.">> + <<set $notApplyDesc = "may feel some gratitude due to your preference that $he not be defined by $his ethnicity, but this is counterbalanced by the increased independence your kindness inspires.">> + <<case "vaginalWhiner">> <<set $nickname = either("'Crybaby'", "'Cunt Vise'", "'Pussy Bitch'", "'Pussy Pain'", "'Rape Bait'", "'Shallow'", "'Squealer'", "'Struggles'", "'Tight Cunt'", "'Vaginal Whiner'", "'Whiner'", "'Whiny'")>> <<set $situationDesc = "has a tight pussy and not much skill using it. $He still gets fucked, which results in frequent painful situations for $him. $His moaning as $he takes a big dick earns $him the scorn of $his fellow slaves.">> diff --git a/src/uncategorized/reputation.tw b/src/uncategorized/reputation.tw index ec4c37294aaa0cf64b15834e5539240f4f574294..f5266d03067f9aceb353c54403fd5aa818213de2 100644 --- a/src/uncategorized/reputation.tw +++ b/src/uncategorized/reputation.tw @@ -517,20 +517,20 @@ On formal occasions, you are announced as $PCTitle. <<if ($arcologies[0].FSRepopulationFocus != "unset")>> <<if $IntelligenceEugenicsSMR == 1 || $HeightEugenicsSMR == 1 || $FaceEugenicsSMR == 1>> - Society @@.red;disapproves@@ of your policies sterilizing potential mothers. Your insistence on eugenics hinders adoption of your new society. - <<set _noEugenics = -1*($IntelligenceEugenicsSMR+$HeightEugenicsSMR+$FaceEugenicsSMR)>> - <<FSChange "Repopulationist" _noEugenics>> + Society @@.red;disapproves@@ of your policies sterilizing potential mothers. Your insistence on eugenics hinders adoption of your new society. + <<set _noEugenics = -1*($IntelligenceEugenicsSMR+$HeightEugenicsSMR+$FaceEugenicsSMR)>> + <<FSChange "Repopulationist" _noEugenics>> <</if>> <<elseif $arcologies[0].FSPaternalist != "unset">> <<if $IntelligenceEugenicsSMR == 1 || $HeightEugenicsSMR == 1 || $FaceEugenicsSMR == 1>> - Society @@.red;disapproves@@ of your policies forcefully sterilizing slaves, especially when they snuff out the life growing within them. - <<set _noEugenics = -1*($IntelligenceEugenicsSMR+$HeightEugenicsSMR+$FaceEugenicsSMR)>> - <<FSChange "Paternalist" _noEugenics>> + Society @@.red;disapproves@@ of your policies forcefully sterilizing slaves, especially when they snuff out the life growing within them. + <<set _noEugenics = -1*($IntelligenceEugenicsSMR+$HeightEugenicsSMR+$FaceEugenicsSMR)>> + <<FSChange "Paternalist" _noEugenics>> <</if>> <<elseif ($arcologies[0].FSRestart != "unset") && $arcologies[0].FSPaternalist == "unset">> <<if ($IntelligenceEugenicsSMR == 1 || $HeightEugenicsSMR == 1 || $FaceEugenicsSMR == 1) && $arcologies[0].FSRestartSMR != 1>> Society @@.green; approves@@ of your slave eugenics policies, easing them into more thorough eugenics. - <<set _yesEugenics = ($IntelligenceEugenicsSMR+$HeightEugenicsSMR+$FaceEugenicsSMR)>> + <<set _yesEugenics = ($IntelligenceEugenicsSMR+$HeightEugenicsSMR+$FaceEugenicsSMR)>> <<FSChange "Eugenics" _yesEugenics>> <<set $failedElite -= 1*($IntelligenceEugenicsSMR+$HeightEugenicsSMR+$FaceEugenicsSMR)>> <<elseif $arcologies[0].FSRestartSMR == 1>> @@ -658,7 +658,7 @@ On formal occasions, you are announced as $PCTitle. <<set $enduringRep = 0>> <<elseif $PC.degeneracy > 75>> There are @@.red;severe rumors@@ about you spreading across the arcology. - <<set $rep -= 10*($PC.degeneracy*2)>> + <<set $rep -= 20*($PC.degeneracy)>> <<elseif $PC.degeneracy > 50>> There are @@.red;bad rumors@@ about you spreading across the arcology. <<set $rep -= 10*$PC.degeneracy>> @@ -667,7 +667,7 @@ On formal occasions, you are announced as $PCTitle. <<set $rep -= 5*$PC.degeneracy>> <<elseif $PC.degeneracy > 10>> There are @@.red;minor rumors@@ about you spreading across the arcology. - <<set $rep -= $PC.degeneracy*2>> + <<set $rep -= 2*$PC.degeneracy>> <<else>> The occasional rumor about you can be heard throughout the arcology. <<set $rep -= $PC.degeneracy>> diff --git a/src/uncategorized/slaveInteract.tw b/src/uncategorized/slaveInteract.tw index 9d8c7cda179461c0cde199a58fbd5fc881646830..f1b9fee3190e5ed668c5ac7db88c3c680dd30b02 100644 --- a/src/uncategorized/slaveInteract.tw +++ b/src/uncategorized/slaveInteract.tw @@ -563,7 +563,7 @@ <<if $activeSlave.fuckdoll == 0>> /* NON-FUCKDOLL FACILITIES */ <<if $clinic != 0>> - <<if $clinic > $clinicSlaves && ($activeSlave.health < 20 || ($Nurse != 0 && ($activeSlave.chem > 15 && $clinicUpgradeFilters == 1) || ($bellyImplants == 1 && $activeSlave.bellyImplant > -1) || ($activeSlave.pregKnown == 1 && ($clinicSpeedGestation >= 0 || $activeSlave.pregControl == "speed up"))))>> + <<if $clinic > $clinicSlaves && ($activeSlave.health < 20 || ($Nurse != 0 && (($activeSlave.chem > 15 && $clinicUpgradeFilters == 1) || ($bellyImplants == 1 && $activeSlave.bellyImplant > -1) || ($activeSlave.pregKnown == 1 && ($clinicSpeedGestation >= 0 || $activeSlave.pregControl == "speed up")) || ($activeSlave.pregAdaptation*1000 < $activeSlave.bellyPreg || $activeSlave.preg > 30))))>> [[Clinic|Assign][$assignTo = "Clinic", $i = -1]] /* $i = -1 tells Assign to use $activeSlave as-is */ <<else>>Clinic<</if>> <<if _numFacilities-- > 1>>|<</if>> diff --git a/src/uncategorized/slaveSummary.tw b/src/uncategorized/slaveSummary.tw index 3efe499ec9467d605432d4fef90202db05c70b9b..7d06050c284d0a3a2fee33fb42f83bcb2bce8fd1 100644 --- a/src/uncategorized/slaveSummary.tw +++ b/src/uncategorized/slaveSummary.tw @@ -353,7 +353,7 @@ <<case "Clinic">> <<if $Flag == 0>> <<if $clinic <= $clinicSlaves>><<continue>><</if>> - <<if (_Slave.health < 20) || ($Nurse != 0 && (_Slave.chem > 15 && $clinicUpgradeFilters == 1) || ($bellyImplants == 1 && _Slave.bellyImplant > -1) || (_Slave.pregKnown == 1 && ($clinicSpeedGestation >= 0 || _Slave.pregControl == "speed up")))>> + <<if (_Slave.health < 20) || ($Nurse != 0 && ((_Slave.chem > 15 && $clinicUpgradeFilters == 1) || ($bellyImplants == 1 && _Slave.bellyImplant > -1) || (_Slave.pregKnown == 1 && ($clinicSpeedGestation >= 0 || _Slave.pregControl == "speed up")) || (_Slave.pregAdaptation*1000 < _Slave.bellyPreg || _Slave.preg > 30)))>> <br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if ($seeImages == 1) && ($seeSummaryImages == 1)>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>> [[_slaveName|Slave Interact][$activeSlave = $slaves[_ssi]]] <<else>> @@ -690,7 +690,7 @@ will <<if _Slave.fuckdoll == 0>> /* NON-FUCKDOLL FACILITIES */ <<if $clinic != 0>> - <<if $clinic > $clinicSlaves && (_Slave.health < 20 || ($Nurse != 0 && (_Slave.chem > 15 && $clinicUpgradeFilters == 1) || ($bellyImplants == 1 && _Slave.bellyImplant > -1) || (_Slave.pregKnown == 1 && ($clinicSpeedGestation >= 0 || _Slave.pregControl == "speed up"))))>> + <<if $clinic > $clinicSlaves && (_Slave.health < 20 || ($Nurse != 0 && ((_Slave.chem > 15 && $clinicUpgradeFilters == 1) || ($bellyImplants == 1 && _Slave.bellyImplant > -1) || (_Slave.pregKnown == 1 && ($clinicSpeedGestation >= 0 || _Slave.pregControl == "speed up")) || (_Slave.pregAdaptation*1000 < _Slave.bellyPreg || _Slave.preg > 30))))>> [[Clinic|Assign][$assignTo = "Clinic", $i = _ssi]] /* $i = -1 tells Assign to use _Slave as-is */ <<else>>Clinic<</if>> <<if _numFacilities-- > 1>>|<</if>>